[IMP] account_banking_mandate: Allow to set a specific mandate reference or sequence

This commit is contained in:
Víctor Martínez
2023-09-19 16:18:29 +02:00
parent f9d1a49e9d
commit 66ae06b3a1
3 changed files with 26 additions and 27 deletions

View File

@@ -61,7 +61,7 @@ class AccountBankingMandate(models.Model):
default=lambda self: self.env.company,
)
unique_mandate_reference = fields.Char(
string="Unique Mandate Reference", tracking=10, copy=False
string="Unique Mandate Reference", tracking=10, copy=False, default="/"
)
signature_date = fields.Date(
string="Date of Signature of the Mandate",
@@ -177,8 +177,8 @@ class AccountBankingMandate(models.Model):
@api.model
def create(self, vals=None):
unique_mandate_reference = vals.get("unique_mandate_reference")
if not unique_mandate_reference or unique_mandate_reference == "New":
unique_mandate_reference = vals.get("unique_mandate_reference", "/")
if unique_mandate_reference == "/":
vals["unique_mandate_reference"] = (
self.env["ir.sequence"].next_by_code("account.banking.mandate") or "New"
)

View File

@@ -175,9 +175,8 @@ class TestMandate(TransactionCase):
def test_mandate_reference_03(self):
"""
Test case: create a mandate with "New" as reference
Expected result: the reference of the created mandate is not empty and
is not "New"
Test case: create a mandate with "TEST" as reference
Expected result: the reference of the created mandate is "TEST"
"""
bank_account = self.env.ref("account_payment_mode.res_partner_12_iban")
mandate = self.env["account.banking.mandate"].create(
@@ -185,15 +184,32 @@ class TestMandate(TransactionCase):
"partner_bank_id": bank_account.id,
"signature_date": "2015-01-01",
"company_id": self.company.id,
"unique_mandate_reference": "New",
"unique_mandate_reference": "TEST",
}
)
self.assertTrue(mandate.unique_mandate_reference)
self.assertNotEqual(mandate.unique_mandate_reference, "New")
self.assertEqual(mandate.unique_mandate_reference, "TEST")
def test_mandate_reference_04(self):
"""
Test case: create a mandate with "/" as reference
Expected result: the reference of the created mandate is not "/"
"""
bank_account = self.env.ref("account_payment_mode.res_partner_12_iban")
mandate = self.env["account.banking.mandate"].create(
{
"partner_bank_id": bank_account.id,
"signature_date": "2015-01-01",
"company_id": self.company.id,
"unique_mandate_reference": "/",
}
)
self.assertTrue(mandate.unique_mandate_reference)
self.assertNotEqual(mandate.unique_mandate_reference, "/")
def test_mandate_reference_05(self):
"""
Test case: create a mandate with False as reference
Test case: create a mandate without reference
Expected result: the reference of the created mandate is not empty
"""
bank_account = self.env.ref("account_payment_mode.res_partner_12_iban")
@@ -202,23 +218,6 @@ class TestMandate(TransactionCase):
"partner_bank_id": bank_account.id,
"signature_date": "2015-01-01",
"company_id": self.company.id,
"unique_mandate_reference": False,
}
)
self.assertTrue(mandate.unique_mandate_reference)
def test_mandate_reference_06(self):
"""
Test case: create a mandate with a empty string as reference
Expected result: the reference of the created mandate is not empty
"""
bank_account = self.env.ref("account_payment_mode.res_partner_12_iban")
mandate = self.env["account.banking.mandate"].create(
{
"partner_bank_id": bank_account.id,
"signature_date": "2015-01-01",
"company_id": self.company.id,
"unique_mandate_reference": "",
}
)
self.assertTrue(mandate.unique_mandate_reference)

View File

@@ -50,7 +50,7 @@
<field
name="unique_mandate_reference"
class="oe_inline"
readonly="1"
attrs="{'readonly': [('id', '!=', False)]}"
/>
</h1>
</div>