[FIX] account: Recompute the account set on payment terms when changing the partner.
- Create an invoice without partner. - Set a custom receivable account. - Set a partner => the account used as payment terms is not recomputed that is wrong. closes odoo/odoo#48898 X-original-commit: 33de1c8f5e459eb26194736c17c053dce3a1c206 Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com> Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
This commit is contained in:
@@ -332,12 +332,21 @@ class AccountMove(models.Model):
|
||||
if p.invoice_warn == 'block':
|
||||
self.partner_id = False
|
||||
return {'warning': warning}
|
||||
for line in self.line_ids:
|
||||
line.partner_id = self.partner_id.commercial_partner_id
|
||||
|
||||
if self.is_sale_document(include_receipts=True) and self.partner_id.property_payment_term_id:
|
||||
self.invoice_payment_term_id = self.partner_id.property_payment_term_id
|
||||
new_term_account = self.partner_id.commercial_partner_id.property_account_receivable_id
|
||||
elif self.is_purchase_document(include_receipts=True) and self.partner_id.property_supplier_payment_term_id:
|
||||
self.invoice_payment_term_id = self.partner_id.property_supplier_payment_term_id
|
||||
new_term_account = self.partner_id.commercial_partner_id.property_account_payable_id
|
||||
else:
|
||||
new_term_account = None
|
||||
|
||||
for line in self.line_ids:
|
||||
line.partner_id = self.partner_id.commercial_partner_id
|
||||
|
||||
if new_term_account and line.account_id.user_type_id.type in ('receivable', 'payable'):
|
||||
line.account_id = new_term_account
|
||||
|
||||
self._compute_bank_partner_id()
|
||||
self.invoice_partner_bank_id = self.bank_partner_id.bank_ids and self.bank_partner_id.bank_ids[0]
|
||||
|
||||
@@ -625,6 +625,7 @@ class TestAccountMoveInInvoiceOnchanges(AccountTestInvoicingCommon):
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'partner_id': self.partner_b.id,
|
||||
'account_id': self.partner_b.property_account_payable_id.id,
|
||||
'price_unit': -789.6,
|
||||
'price_subtotal': -789.6,
|
||||
'price_total': -789.6,
|
||||
@@ -635,6 +636,7 @@ class TestAccountMoveInInvoiceOnchanges(AccountTestInvoicingCommon):
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'partner_id': self.partner_b.id,
|
||||
'account_id': self.partner_b.property_account_payable_id.id,
|
||||
'price_unit': -338.4,
|
||||
'price_subtotal': -338.4,
|
||||
'price_total': -338.4,
|
||||
|
||||
@@ -337,6 +337,7 @@ class TestAccountMoveInRefundOnchanges(AccountTestInvoicingCommon):
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'partner_id': self.partner_b.id,
|
||||
'account_id': self.partner_b.property_account_payable_id.id,
|
||||
'price_unit': -338.4,
|
||||
'price_subtotal': -338.4,
|
||||
'price_total': -338.4,
|
||||
@@ -346,6 +347,7 @@ class TestAccountMoveInRefundOnchanges(AccountTestInvoicingCommon):
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'partner_id': self.partner_b.id,
|
||||
'account_id': self.partner_b.property_account_payable_id.id,
|
||||
'price_unit': -789.6,
|
||||
'price_subtotal': -789.6,
|
||||
'price_total': -789.6,
|
||||
|
||||
@@ -626,6 +626,7 @@ class TestAccountMoveOutInvoiceOnchanges(AccountTestInvoicingCommon):
|
||||
{
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'account_id': self.partner_b.property_account_receivable_id.id,
|
||||
'partner_id': self.partner_b.id,
|
||||
'price_unit': -423.0,
|
||||
'price_subtotal': -423.0,
|
||||
@@ -635,6 +636,7 @@ class TestAccountMoveOutInvoiceOnchanges(AccountTestInvoicingCommon):
|
||||
{
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'account_id': self.partner_b.property_account_receivable_id.id,
|
||||
'partner_id': self.partner_b.id,
|
||||
'price_unit': -987.0,
|
||||
'price_subtotal': -987.0,
|
||||
|
||||
@@ -337,6 +337,7 @@ class TestAccountMoveOutRefundOnchanges(AccountTestInvoicingCommon):
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'partner_id': self.partner_b.id,
|
||||
'account_id': self.partner_b.property_account_receivable_id.id,
|
||||
'price_unit': -987.0,
|
||||
'price_subtotal': -987.0,
|
||||
'price_total': -987.0,
|
||||
@@ -347,6 +348,7 @@ class TestAccountMoveOutRefundOnchanges(AccountTestInvoicingCommon):
|
||||
**self.term_line_vals_1,
|
||||
'name': 'turlututu',
|
||||
'partner_id': self.partner_b.id,
|
||||
'account_id': self.partner_b.property_account_receivable_id.id,
|
||||
'price_unit': -423.0,
|
||||
'price_subtotal': -423.0,
|
||||
'price_total': -423.0,
|
||||
|
||||
Reference in New Issue
Block a user