Skip to content

Commit

Permalink
Merge PR #1189 into 15.0
Browse files Browse the repository at this point in the history
Signed-off-by pedrobaeza
  • Loading branch information
OCA-git-bot committed Nov 30, 2023
2 parents 6d6ab1e + 6b80347 commit d7ebe74
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
<field name="code">account.banking.mandate</field>
<field name="prefix">BM</field>
<field name="padding" eval="7" />
<field name="company_id" eval="False" />
</record>
</odoo>
20 changes: 11 additions & 9 deletions account_banking_mandate/models/account_banking_mandate.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def _get_default_partner_bank_id_domain(self):
required=True,
default=lambda self: self.env.company,
)
unique_mandate_reference = fields.Char(tracking=10, copy=False)
unique_mandate_reference = fields.Char(tracking=10, copy=False, default="/")
signature_date = fields.Date(
string="Date of Signature of the Mandate",
tracking=50,
Expand Down Expand Up @@ -173,14 +173,16 @@ def _check_valid_state(self):
% mandate.unique_mandate_reference
)

@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":
vals["unique_mandate_reference"] = (
self.env["ir.sequence"].next_by_code("account.banking.mandate") or "New"
)
return super().create(vals)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
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"
)
return super().create(vals_list)

@api.onchange("partner_bank_id")
def mandate_partner_bank_change(self):
Expand Down
27 changes: 14 additions & 13 deletions account_banking_mandate/models/account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,26 @@ class AccountMove(models.Model):
related="payment_mode_id.payment_method_id.mandate_required", readonly=True
)

@api.model
def create(self, vals):
@api.model_create_multi
def create(self, vals_list):
"""Fill the mandate_id from the partner if none is provided on
creation, using same method as upstream."""
onchanges = {
"_onchange_partner_id": ["mandate_id"],
"_onchange_payment_mode_id": ["mandate_id"],
}
for onchange_method, changed_fields in list(onchanges.items()):
if any(f not in vals for f in changed_fields):
move = self.new(vals)
move = move.with_company(move.company_id.id)
getattr(move, onchange_method)()
for field in changed_fields:
if field not in vals and move[field]:
vals[field] = move._fields[field].convert_to_write(
move[field], move
)
return super().create(vals)
for vals in vals_list:
for onchange_method, changed_fields in list(onchanges.items()):
if any(f not in vals for f in changed_fields):
move = self.new(vals)
move = move.with_company(move.company_id.id)
getattr(move, onchange_method)()
for field in changed_fields:
if field not in vals and move[field]:
vals[field] = move._fields[field].convert_to_write(
move[field], move
)
return super().create(vals_list)

def set_mandate(self):
if self.payment_mode_id.payment_method_id.mandate_required:
Expand Down
23 changes: 11 additions & 12 deletions account_banking_mandate/tests/test_mandate.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,41 +175,41 @@ def test_mandate_reference_02(self):

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(
{
"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_05(self):
def test_mandate_reference_04(self):
"""
Test case: create a mandate with False as reference
Expected result: the reference of the created mandate is not empty
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": False,
"unique_mandate_reference": "/",
}
)
self.assertTrue(mandate.unique_mandate_reference)
self.assertNotEqual(mandate.unique_mandate_reference, "/")

def test_mandate_reference_06(self):
def test_mandate_reference_05(self):
"""
Test case: create a mandate with a empty string 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")
Expand All @@ -218,7 +218,6 @@ def test_mandate_reference_06(self):
"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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<field
name="unique_mandate_reference"
class="oe_inline"
readonly="1"
attrs="{'readonly': [('id', '!=', False)]}"
/>
</h1>
</div>
Expand Down

0 comments on commit d7ebe74

Please sign in to comment.