[FIX] account_reconcile_oca: Fix wrong display on reconciled moves
If your reconcile an invoice and in the old option, the reconcile widget shows something weird with three lines but we should have only two. The data was right with 2 lines only.pull/808/head
parent
fdd41f1e94
commit
b9d1d6dbc0
|
@ -438,7 +438,7 @@ class AccountBankStatementLine(models.Model):
|
||||||
return
|
return
|
||||||
self.partner_id = self.manual_partner_id
|
self.partner_id = self.manual_partner_id
|
||||||
|
|
||||||
@api.depends("reconcile_data")
|
@api.depends("reconcile_data", "is_reconciled")
|
||||||
def _compute_reconcile_data_info(self):
|
def _compute_reconcile_data_info(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if record.reconcile_data:
|
if record.reconcile_data:
|
||||||
|
@ -553,11 +553,6 @@ class AccountBankStatementLine(models.Model):
|
||||||
reconcile_auxiliary_id,
|
reconcile_auxiliary_id,
|
||||||
self.manual_reference,
|
self.manual_reference,
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
other_lines = (
|
|
||||||
other_lines.matched_credit_ids.credit_move_id
|
|
||||||
| other_lines.matched_debit_ids.debit_move_id
|
|
||||||
)
|
|
||||||
for line in other_lines:
|
for line in other_lines:
|
||||||
reconcile_auxiliary_id, lines = self._get_reconcile_line(
|
reconcile_auxiliary_id, lines = self._get_reconcile_line(
|
||||||
line, "other", from_unreconcile=from_unreconcile
|
line, "other", from_unreconcile=from_unreconcile
|
||||||
|
@ -579,7 +574,7 @@ class AccountBankStatementLine(models.Model):
|
||||||
result = getattr(self, "_reconcile_bank_line_%s" % self.reconcile_mode)(
|
result = getattr(self, "_reconcile_bank_line_%s" % self.reconcile_mode)(
|
||||||
self._prepare_reconcile_line_data(self.reconcile_data_info["data"])
|
self._prepare_reconcile_line_data(self.reconcile_data_info["data"])
|
||||||
)
|
)
|
||||||
self.reconcile_data_info = False
|
self.reconcile_data = False
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def _reconcile_bank_line_edit(self, data):
|
def _reconcile_bank_line_edit(self, data):
|
||||||
|
|
|
@ -200,7 +200,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
lambda r: r.account_id == self.bank_journal_euro.suspense_account_id
|
lambda r: r.account_id == self.bank_journal_euro.suspense_account_id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertTrue(bank_stmt_line.is_reconciled)
|
self.assertTrue(bank_stmt_line.is_reconciled)
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
bank_stmt_line.move_id.line_ids.filtered(
|
bank_stmt_line.move_id.line_ids.filtered(
|
||||||
|
@ -267,7 +271,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
self.assertTrue(f.can_reconcile)
|
self.assertTrue(f.can_reconcile)
|
||||||
self.assertEqual(inv1.amount_residual_signed, 100)
|
self.assertEqual(inv1.amount_residual_signed, 100)
|
||||||
self.assertEqual(inv2.amount_residual_signed, 100)
|
self.assertEqual(inv2.amount_residual_signed, 100)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertEqual(inv1.amount_residual_signed, 30)
|
self.assertEqual(inv1.amount_residual_signed, 30)
|
||||||
self.assertEqual(inv2.amount_residual_signed, 70)
|
self.assertEqual(inv2.amount_residual_signed, 70)
|
||||||
|
|
||||||
|
@ -327,7 +335,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
self.assertTrue(f.can_reconcile)
|
self.assertTrue(f.can_reconcile)
|
||||||
self.assertEqual(inv1.amount_residual_signed, -100)
|
self.assertEqual(inv1.amount_residual_signed, -100)
|
||||||
self.assertEqual(inv2.amount_residual_signed, -100)
|
self.assertEqual(inv2.amount_residual_signed, -100)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertEqual(inv1.amount_residual_signed, -30)
|
self.assertEqual(inv1.amount_residual_signed, -30)
|
||||||
self.assertEqual(inv2.amount_residual_signed, -70)
|
self.assertEqual(inv2.amount_residual_signed, -70)
|
||||||
|
|
||||||
|
@ -360,7 +372,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
self.assertFalse(f.can_reconcile)
|
self.assertFalse(f.can_reconcile)
|
||||||
f.manual_model_id = self.rule
|
f.manual_model_id = self.rule
|
||||||
self.assertTrue(f.can_reconcile)
|
self.assertTrue(f.can_reconcile)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertEqual(2, len(bank_stmt_line.move_id.line_ids))
|
self.assertEqual(2, len(bank_stmt_line.move_id.line_ids))
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
bank_stmt_line.move_id.line_ids.filtered(
|
bank_stmt_line.move_id.line_ids.filtered(
|
||||||
|
@ -400,7 +416,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
self.assertFalse(f.can_reconcile)
|
self.assertFalse(f.can_reconcile)
|
||||||
f.manual_model_id = self.rule
|
f.manual_model_id = self.rule
|
||||||
self.assertTrue(f.can_reconcile)
|
self.assertTrue(f.can_reconcile)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertEqual(3, len(bank_stmt_line.move_id.line_ids))
|
self.assertEqual(3, len(bank_stmt_line.move_id.line_ids))
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
bank_stmt_line.move_id.line_ids.filtered(
|
bank_stmt_line.move_id.line_ids.filtered(
|
||||||
|
@ -453,7 +473,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
self.assertFalse(f.can_reconcile)
|
self.assertFalse(f.can_reconcile)
|
||||||
f.manual_model_id = self.rule
|
f.manual_model_id = self.rule
|
||||||
self.assertTrue(f.can_reconcile)
|
self.assertTrue(f.can_reconcile)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertNotEqual(self.current_assets_account, receivable1.account_id)
|
self.assertNotEqual(self.current_assets_account, receivable1.account_id)
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
bank_stmt_line.move_id.line_ids.filtered(
|
bank_stmt_line.move_id.line_ids.filtered(
|
||||||
|
@ -541,7 +565,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
f.add_account_move_line_id = receivable1
|
f.add_account_move_line_id = receivable1
|
||||||
self.assertFalse(f.add_account_move_line_id)
|
self.assertFalse(f.add_account_move_line_id)
|
||||||
self.assertTrue(bank_stmt_line.can_reconcile)
|
self.assertTrue(bank_stmt_line.can_reconcile)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
self.bank_journal_euro.suspense_account_id,
|
self.bank_journal_euro.suspense_account_id,
|
||||||
bank_stmt_line.mapped("move_id.line_ids.account_id"),
|
bank_stmt_line.mapped("move_id.line_ids.account_id"),
|
||||||
|
@ -1018,7 +1046,11 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
|
||||||
self.assertFalse(f.add_account_move_line_id)
|
self.assertFalse(f.add_account_move_line_id)
|
||||||
self.assertTrue(f.can_reconcile)
|
self.assertTrue(f.can_reconcile)
|
||||||
self.assertTrue(bank_stmt_line.can_reconcile)
|
self.assertTrue(bank_stmt_line.can_reconcile)
|
||||||
|
number_of_lines = len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
bank_stmt_line.reconcile_bank_line()
|
bank_stmt_line.reconcile_bank_line()
|
||||||
|
self.assertEqual(
|
||||||
|
number_of_lines, len(bank_stmt_line.reconcile_data_info["data"])
|
||||||
|
)
|
||||||
self.assertEqual(0, inv1.amount_residual)
|
self.assertEqual(0, inv1.amount_residual)
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
inv1.line_ids.filtered(
|
inv1.line_ids.filtered(
|
||||||
|
|
Loading…
Reference in New Issue