Skip to content

Commit

Permalink
[IMP] account_reconcile_oca: Add auto-reconcile compatibility (Exampl…
Browse files Browse the repository at this point in the history
…e: Rule to match invoices/bills)

TT52146
  • Loading branch information
victoralmau committed Dec 10, 2024
1 parent 75ba5c1 commit 839e42d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
12 changes: 11 additions & 1 deletion account_reconcile_oca/models/account_bank_statement_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,14 @@ def _default_reconcile_data(self, from_unreconcile=False):
res = (
self.env["account.reconcile.model"]
.search(
[("rule_type", "in", ["invoice_matching", "writeoff_suggestion"])]
[
(
"rule_type",
"in",
["invoice_matching", "writeoff_suggestion"],
),
("company_id", "=", self.company_id.id),
]
)
._apply_rules(self, self._retrieve_partner())
)
Expand All @@ -555,6 +562,8 @@ def _default_reconcile_data(self, from_unreconcile=False):
)
amount -= sum(line.get("amount") for line in line_data)
data += line_data
if res.get("auto_reconcile"):
self.reconcile_bank_line()
return self._recompute_suspense_line(
data,
reconcile_auxiliary_id,
Expand Down Expand Up @@ -745,6 +754,7 @@ def create(self, mvals):
models = self.env["account.reconcile.model"].search(
[
("rule_type", "in", ["invoice_matching", "writeoff_suggestion"]),
("company_id", "in", result.mapped("company_id").ids),
("auto_reconcile", "=", True),
]
)
Expand Down
11 changes: 11 additions & 0 deletions account_reconcile_oca/tests/test_bank_account_reconcile.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ class TestReconciliationWidget(TestAccountReconciliationCommon):
@classmethod
def setUpClass(cls, chart_template_ref=None):
super().setUpClass(chart_template_ref=chart_template_ref)
# Auto-disable reconciliation model created automatically with
# generate_account_reconcile_model() to avoid side effects in tests
cls.invoice_matching_model = cls.env["account.reconcile.model"].search(
[
("rule_type", "=", "invoice_matching"),
("auto_reconcile", "=", True),
("company_id", "=", cls.company.id),
]
)
cls.invoice_matching_model.active = False

cls.acc_bank_stmt_model = cls.env["account.bank.statement"]
cls.acc_bank_stmt_line_model = cls.env["account.bank.statement.line"]
Expand Down Expand Up @@ -988,6 +998,7 @@ def test_partner_name_with_parent(self):
}
)

self.invoice_matching_model.active = True
bank_stmt_line = self.acc_bank_stmt_line_model.create(
{
"name": "testLine",
Expand Down

0 comments on commit 839e42d

Please sign in to comment.