diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index ef11adb11cf..14f2545f559 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -1361,7 +1361,8 @@ class AccountMove(models.Model): 'line_ids.amount_residual', 'line_ids.amount_residual_currency', 'line_ids.payment_id.state', - 'line_ids.full_reconcile_id') + 'line_ids.full_reconcile_id', + 'state') def _compute_amount(self): stored_ids = tuple(self.ids) if stored_ids: @@ -1437,7 +1438,7 @@ class AccountMove(models.Model): total_tax_currency += line.amount_currency total += line.balance total_currency += line.amount_currency - elif line.account_id.user_type_id.type in ('receivable', 'payable'): + elif line.account_id.user_type_id.type in ('receivable', 'payable') and move.state == 'posted': # Residual amount. total_to_pay += line.balance total_residual += line.amount_residual diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml index 79c5a6de189..e9a3664b9d6 100644 --- a/addons/account/views/account_move_views.xml +++ b/addons/account/views/account_move_views.xml @@ -424,6 +424,7 @@
diff --git a/addons/l10n_ch/tests/test_gen_isr_reference.py b/addons/l10n_ch/tests/test_gen_isr_reference.py index 3862a93392a..046a2e72f3f 100644 --- a/addons/l10n_ch/tests/test_gen_isr_reference.py +++ b/addons/l10n_ch/tests/test_gen_isr_reference.py @@ -43,6 +43,8 @@ class TestGenISRReference(AccountTestInvoicingCommon): self.invoice.partner_bank_id = self.bank_acc_isr self.invoice.name = "INV/01234567890" + # Post invoice to have the expected amount due (amount_residual) + self.invoice.action_post() expected_isr = "000000000000000012345678903" expected_isr_spaced = "00 00000 00000 00001 23456 78903" @@ -66,6 +68,8 @@ class TestGenISRReference(AccountTestInvoicingCommon): self.invoice.partner_bank_id = self.bank_acc_isr self.invoice.name = "INV/123456789012345678901234567890" + # Post invoice to have the expected amount due (amount_residual) + self.invoice.action_post() expected_isr = "567890123456789012345678901" expected_isr_spaced = "56 78901 23456 78901 23456 78901" diff --git a/addons/stock_account/tests/test_account_move.py b/addons/stock_account/tests/test_account_move.py index 7b2607004c5..a9948e2394b 100644 --- a/addons/stock_account/tests/test_account_move.py +++ b/addons/stock_account/tests/test_account_move.py @@ -57,7 +57,7 @@ class TestAccountMove(AccountTestInvoicingCommon): invoice = move_form.save() self.assertAlmostEqual(self.product_A.lst_price * rate, invoice.amount_total) - self.assertAlmostEqual(self.product_A.lst_price * rate, invoice.amount_residual) + self.assertAlmostEqual(0, invoice.amount_residual) self.assertEqual(len(invoice.mapped("line_ids")), 2) self.assertEqual(len(invoice.mapped("line_ids.currency_id")), 1) @@ -82,7 +82,7 @@ class TestAccountMove(AccountTestInvoicingCommon): invoice = move_form.save() self.assertAlmostEqual(self.product_A.lst_price * rate, invoice.amount_total) - self.assertAlmostEqual(self.product_A.lst_price * rate, invoice.amount_residual) + self.assertAlmostEqual(0, invoice.amount_residual) self.assertEqual(len(invoice.mapped("line_ids")), 2) self.assertEqual(len(invoice.mapped("line_ids.currency_id")), 1) @@ -107,7 +107,7 @@ class TestAccountMove(AccountTestInvoicingCommon): invoice = move_form.save() self.assertAlmostEqual(self.product_A.lst_price * rate, invoice.amount_total) - self.assertAlmostEqual(self.product_A.lst_price * rate, invoice.amount_residual) + self.assertAlmostEqual(0, invoice.amount_residual) self.assertEqual(len(invoice.mapped("line_ids")), 2) self.assertEqual(len(invoice.mapped("line_ids.currency_id")), 1)