[IMP] account_reconcile_oca: Add some tests for supplier invoices

pull/577/head
Enric Tobella 2023-08-27 18:11:51 +02:00
parent 8a01c66f2a
commit 14007a53e1
1 changed files with 64 additions and 4 deletions

View File

@ -252,11 +252,71 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
f.manual_reference = "account.move.line;%s" % receivable2.id
self.assertEqual(f.manual_amount, -30)
self.assertTrue(f.can_reconcile)
self.assertEqual(inv1.amount_residual, 100)
self.assertEqual(inv2.amount_residual, 100)
self.assertEqual(inv1.amount_residual_signed, 100)
self.assertEqual(inv2.amount_residual_signed, 100)
bank_stmt_line.reconcile_bank_line()
self.assertEqual(inv1.amount_residual, 30)
self.assertEqual(inv2.amount_residual, 70)
self.assertEqual(inv1.amount_residual_signed, 30)
self.assertEqual(inv2.amount_residual_signed, 70)
def test_reconcile_invoice_partial_supplier(self):
"""
We want to partially reconcile two invoices from a single payment.
As a result, both invoices must be partially reconciled
"""
inv1 = self.create_invoice(
currency_id=self.currency_euro_id,
invoice_amount=100,
move_type="in_invoice",
)
inv2 = self.create_invoice(
currency_id=self.currency_euro_id,
invoice_amount=100,
move_type="in_invoice",
)
bank_stmt = self.acc_bank_stmt_model.create(
{
"company_id": self.env.ref("base.main_company").id,
"journal_id": self.bank_journal_euro.id,
"date": time.strftime("%Y-07-15"),
"name": "test",
}
)
bank_stmt_line = self.acc_bank_stmt_line_model.create(
{
"name": "testLine",
"journal_id": self.bank_journal_euro.id,
"statement_id": bank_stmt.id,
"amount": -100,
"date": time.strftime("%Y-07-15"),
}
)
receivable1 = inv1.line_ids.filtered(
lambda l: l.account_id.account_type == "liability_payable"
)
receivable2 = inv2.line_ids.filtered(
lambda l: l.account_id.account_type == "liability_payable"
)
with Form(
bank_stmt_line,
view="account_reconcile_oca.bank_statement_line_form_reconcile_view",
) as f:
self.assertFalse(f.can_reconcile)
f.add_account_move_line_id = receivable1
self.assertFalse(f.add_account_move_line_id)
self.assertTrue(f.can_reconcile)
f.manual_reference = "account.move.line;%s" % receivable1.id
self.assertEqual(f.manual_amount, 100)
f.manual_amount = 70
self.assertFalse(f.can_reconcile)
f.add_account_move_line_id = receivable2
f.manual_reference = "account.move.line;%s" % receivable2.id
self.assertEqual(f.manual_amount, 30)
self.assertTrue(f.can_reconcile)
self.assertEqual(inv1.amount_residual_signed, -100)
self.assertEqual(inv2.amount_residual_signed, -100)
bank_stmt_line.reconcile_bank_line()
self.assertEqual(inv1.amount_residual_signed, -30)
self.assertEqual(inv2.amount_residual_signed, -70)
def test_reconcile_model(self):
"""