diff --git a/account_statement_base/models/account_bank_statement.py b/account_statement_base/models/account_bank_statement.py index 21381eb0..df80a0ff 100644 --- a/account_statement_base/models/account_bank_statement.py +++ b/account_statement_base/models/account_bank_statement.py @@ -1,4 +1,4 @@ -from odoo import models +from odoo import _, models class AccountBankStatement(models.Model): @@ -13,3 +13,20 @@ class AccountBankStatement(models.Model): ) action.update({"domain": [("statement_id", "=", self.id)]}) return action + + def open_entries(self): + self.ensure_one() + return { + "name": _("Journal Items"), + "view_mode": "tree,form", + "res_model": "account.move.line", + "view_id": False, + "type": "ir.actions.act_window", + "context": {"search_default_group_by_move": 1, "expand": 1}, + "search_view_id": self.env.ref("account.view_account_move_line_filter").id, + "domain": [ + "&", + ("parent_state", "=", "posted"), + ("statement_id", "=", self.id), + ], + } diff --git a/account_statement_base/models/account_bank_statement_line.py b/account_statement_base/models/account_bank_statement_line.py index 1d2a6587..857619b9 100644 --- a/account_statement_base/models/account_bank_statement_line.py +++ b/account_statement_base/models/account_bank_statement_line.py @@ -5,7 +5,6 @@ from odoo import models class AccountBankStatementLine(models.Model): - _inherit = "account.bank.statement.line" def action_open_journal_entry(self): diff --git a/account_statement_base/tests/__init__.py b/account_statement_base/tests/__init__.py new file mode 100644 index 00000000..7543554d --- /dev/null +++ b/account_statement_base/tests/__init__.py @@ -0,0 +1 @@ +from . import test_account_statement_base diff --git a/account_statement_base/tests/test_account_statement_base.py b/account_statement_base/tests/test_account_statement_base.py new file mode 100644 index 00000000..e1f12fdd --- /dev/null +++ b/account_statement_base/tests/test_account_statement_base.py @@ -0,0 +1,90 @@ +from odoo import Command +from odoo.tests import tagged + +from odoo.addons.account.tests.common import TestAccountReconciliationCommon + + +@tagged("post_install", "-at_install") +class TestReconciliationWidget(TestAccountReconciliationCommon): + @classmethod + def setUpClass(cls, chart_template_ref=None): + super().setUpClass(chart_template_ref=chart_template_ref) + cls.acc_bank_stmt_model = cls.env["account.bank.statement"] + cls.account_move_model = cls.env["account.move"] + cls.account_move_line_model = cls.env["account.move.line"] + cls.current_assets_account = cls.env["account.account"].search( + [ + ("account_type", "=", "asset_current"), + ("company_id", "=", cls.company.id), + ], + limit=1, + ) + cls.current_assets_account.reconcile = True + cls.non_current_assets_account = cls.env["account.account"].search( + [ + ("account_type", "=", "asset_non_current"), + ("company_id", "=", cls.company.id), + ], + limit=1, + ) + cls.non_current_assets_account.reconcile = True + + def test_01_test_open_entries(self): + move = self.account_move_model.create( + { + "line_ids": [ + Command.create( + { + "account_id": self.current_assets_account.id, + "name": "DEMO", + "credit": 100, + } + ), + Command.create( + { + "account_id": self.non_current_assets_account.id, + "name": "DEMO", + "debit": 100, + } + ), + ] + } + ) + move.action_post() + statement = self.acc_bank_stmt_model.create( + { + "name": "Test Bank Statement", + "line_ids": [ + Command.create( + { + "date": "2024-01-01", + "amount": 100.0, + "payment_ref": move.name, + "line_ids": [Command.set([move.line_ids[0].id])], + } + ), + Command.create( + { + "date": "2024-01-01", + "amount": 100.0, + "payment_ref": move.name, + "line_ids": [Command.set([move.line_ids[1].id])], + } + ), + ], + } + ) + domain = [ + "&", + ("parent_state", "=", "posted"), + ("statement_id", "=", statement.id), + ] + result = statement.open_entries() + move_lines = self.env[result["res_model"]].search(result["domain"]) + self.assertTrue(result) + self.assertEqual(result.get("res_model"), "account.move.line") + self.assertEqual(result.get("context").get("search_default_group_by_move"), 1) + self.assertEqual(result.get("context").get("expand"), 1) + self.assertEqual(result.get("domain"), domain) + self.assertIn(statement.line_ids.line_ids[0], move_lines) + self.assertIn(statement.line_ids.line_ids[1], move_lines) diff --git a/account_statement_base/views/account_bank_statement.xml b/account_statement_base/views/account_bank_statement.xml index 3f4612c2..b295cdd8 100644 --- a/account_statement_base/views/account_bank_statement.xml +++ b/account_statement_base/views/account_bank_statement.xml @@ -28,6 +28,16 @@ context="{'search_default_statement_id': id}" string="Transactions" /> +