mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
Merge pull request #339 from Tecnativa/9.0-account_payment_partner-invoice_payment_mode_fill-imp
[IMP] account_payment_partner: Fill payment mode in invoices if none is provided
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
{
|
||||
'name': 'Account Banking Mandate',
|
||||
'summary': 'Banking mandates',
|
||||
'version': '9.0.1.0.0',
|
||||
'version': '9.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],
|
||||
)
|
||||
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
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{
|
||||
'name': 'Account Payment Partner',
|
||||
'version': '9.0.1.0.0',
|
||||
'version': '9.0.1.1.0',
|
||||
'category': 'Banking addons',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Adds payment mode on partners and invoices',
|
||||
|
||||
@@ -19,7 +19,7 @@ class AccountInvoice(models.Model):
|
||||
|
||||
@api.onchange('partner_id', 'company_id')
|
||||
def _onchange_partner_id(self):
|
||||
super(AccountInvoice, self)._onchange_partner_id()
|
||||
res = super(AccountInvoice, self)._onchange_partner_id()
|
||||
if self.partner_id:
|
||||
if self.type == 'in_invoice':
|
||||
pay_mode = self.partner_id.supplier_payment_mode_id
|
||||
@@ -41,6 +41,25 @@ class AccountInvoice(models.Model):
|
||||
self.payment_mode_id = False
|
||||
if self.type == 'in_invoice':
|
||||
self.partner_bank_id = False
|
||||
return res
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
"""Fill the payment_mode_id from the partner if none is provided on
|
||||
creation, using same method as upstream."""
|
||||
onchanges = {
|
||||
'_onchange_partner_id': ['payment_mode_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],
|
||||
)
|
||||
return super(AccountInvoice, self).create(vals)
|
||||
|
||||
@api.onchange('payment_mode_id')
|
||||
def payment_mode_id_change(self):
|
||||
|
||||
Reference in New Issue
Block a user