diff --git a/account_banking_mandate/models/account_banking_mandate.py b/account_banking_mandate/models/account_banking_mandate.py index 64626675a..6eea0682e 100644 --- a/account_banking_mandate/models/account_banking_mandate.py +++ b/account_banking_mandate/models/account_banking_mandate.py @@ -173,14 +173,16 @@ class AccountBankingMandate(models.Model): % 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 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_list) @api.onchange("partner_bank_id") def mandate_partner_bank_change(self): diff --git a/account_banking_mandate/models/account_move.py b/account_banking_mandate/models/account_move.py index 8af23c772..943edc6bd 100644 --- a/account_banking_mandate/models/account_move.py +++ b/account_banking_mandate/models/account_move.py @@ -20,8 +20,8 @@ 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 = { @@ -29,16 +29,17 @@ class AccountMove(models.Model): "_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: + 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: