54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
from odoo import _, models
|
|
|
|
|
|
class AccountBankStatement(models.Model):
|
|
_inherit = "account.bank.statement"
|
|
|
|
def action_open_statement_lines(self):
|
|
self.ensure_one()
|
|
if not self:
|
|
return {}
|
|
action = self.env["ir.actions.act_window"]._for_xml_id(
|
|
"account_statement_base.account_bank_statement_line_action"
|
|
)
|
|
action.update(
|
|
{
|
|
"domain": [("statement_id", "=", self.id)],
|
|
"context": {
|
|
"default_statement_id": self.id,
|
|
"default_journal_id": self._context.get("active_id")
|
|
if self._context.get("active_model") == "account.journal"
|
|
else None,
|
|
"account_bank_statement_line_main_view": True,
|
|
},
|
|
}
|
|
)
|
|
|
|
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),
|
|
],
|
|
}
|
|
|
|
def _compute_balance_end(self):
|
|
# Consider new lines amount in the balance
|
|
# Remove if merged: https://github.com/odoo/odoo/pull/188675
|
|
res = super()._compute_balance_end()
|
|
for stmt in self:
|
|
lines = stmt.line_ids.filtered(lambda x: not x._origin)
|
|
stmt.balance_end += sum(lines.mapped("amount"))
|
|
return res
|