mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[IMP] account_banking_mandate: Fill mandate in invoices if none is provided
Using same method as in upstream, mandate is filled on invoice creation if no one is provided. This way, we don't need to install account_banking_mandate_sale if we don't want to handle several mandates at sales level.
This commit is contained in:
committed by
Reyes4711
parent
85e99b716a
commit
1e50143246
@@ -7,7 +7,7 @@
|
||||
{
|
||||
'name': 'Account Banking Mandate',
|
||||
'summary': 'Banking mandates',
|
||||
'version': '10.0.1.0.0',
|
||||
'version': '10.0.1.1.0',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Compassion CH, "
|
||||
"Tecnativa, "
|
||||
|
||||
@@ -29,6 +29,24 @@ class AccountInvoice(models.Model):
|
||||
res['mandate_id'] = invoice.mandate_id.id or False
|
||||
return res
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
"""Fill the mandate_id from the partner if none is provided on
|
||||
creation, using same method as upstream."""
|
||||
onchanges = {
|
||||
'_onchange_partner_id': ['mandate_id'],
|
||||
}
|
||||
for onchange_method, changed_fields in onchanges.items():
|
||||
if any(f not in vals for f in changed_fields):
|
||||
invoice = self.new(vals)
|
||||
getattr(invoice, onchange_method)()
|
||||
for field in changed_fields:
|
||||
if field not in vals and invoice[field]:
|
||||
vals[field] = invoice._fields[field].convert_to_write(
|
||||
invoice[field], invoice,
|
||||
)
|
||||
return super(AccountInvoice, self).create(vals)
|
||||
|
||||
# If a customer pays via direct debit, it's refunds should
|
||||
# be deducted form the next debit by default. The module
|
||||
# account_payment_partner copies payment_mode_id from invoice
|
||||
|
||||
Reference in New Issue
Block a user