Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m31s
45 lines
1.9 KiB
Python
45 lines
1.9 KiB
Python
from odoo import api, models, _
|
|
from odoo.exceptions import UserError
|
|
|
|
class AccountBankStatement(models.Model):
|
|
_inherit = "account.bank.statement"
|
|
|
|
def unlink(self):
|
|
for statement in self:
|
|
if not statement.journal_id.allow_bank_statement_deletion:
|
|
raise UserError(
|
|
_("The deletion of bank statements is not allowed for the journal %s.") % statement.journal_id.display_name
|
|
)
|
|
# we delete all the statement lines before deleting the statement itself
|
|
for line in statement.line_ids:
|
|
line.unlink()
|
|
return super(AccountBankStatement, self).unlink()
|
|
|
|
|
|
class AccountBankStatementLine(models.Model):
|
|
_inherit = "account.bank.statement.line"
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
# Condition on action_name is here to check permissions only for the manual creation.
|
|
# Import of files and pulling online bank statements should not be concerned
|
|
if self.env.context.get("action_name") == "action_bank_statement_tree":
|
|
for vals in vals_list:
|
|
journal_id = vals.get("journal_id")
|
|
if journal_id:
|
|
journal = self.env["account.journal"].browse(journal_id)
|
|
if not journal.allow_bank_statement_line_creation:
|
|
raise UserError(
|
|
_("Manual creation of bank statement lines is not allowed for the journal %s.")
|
|
% journal.display_name
|
|
)
|
|
return super().create(vals_list)
|
|
|
|
def unlink(self):
|
|
for line in self:
|
|
if not line.journal_id.allow_bank_statement_deletion:
|
|
raise UserError(
|
|
_("The deletion of bank statement lines is not allowed for the journal %s.") % line.journal_id.display_name
|
|
)
|
|
return super(AccountBankStatementLine, self).unlink()
|