From 0758a02ee4e842926f39b344c30d065964154d86 Mon Sep 17 00:00:00 2001 From: alt-odoo Date: Wed, 29 Jan 2020 16:23:23 +0000 Subject: [PATCH] [FIX] point_of_sale: prevent deletion of POS bank statement Nothing prevents to delete a bank statement linked to an open pos session, which leads to a KeyError when validating and posting entries at closure. closes odoo/odoo#44787 X-original-commit: 7416340e0ff96bdabb0578f9c1eccd79baf83e17 Signed-off-by: Nicolas Martinelli (nim) --- addons/point_of_sale/i18n/point_of_sale.pot | 6 ++++++ addons/point_of_sale/models/account_bank_statement.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/addons/point_of_sale/i18n/point_of_sale.pot b/addons/point_of_sale/i18n/point_of_sale.pot index 84f63b19b28..53817395097 100644 --- a/addons/point_of_sale/i18n/point_of_sale.pot +++ b/addons/point_of_sale/i18n/point_of_sale.pot @@ -5110,6 +5110,12 @@ msgstr "" msgid "You cannot create a session before the accounting lock date." msgstr "" +#. module: point_of_sale +#: code:addons/point_of_sale/models/account_bank_statement.py:0 +#, python-format +msgid "You cannot delete a bank statement used in an open Point of Sale session." +msgstr "" + #. module: point_of_sale #: code:addons/point_of_sale/models/product.py:0 #: code:addons/point_of_sale/models/product.py:0 diff --git a/addons/point_of_sale/models/account_bank_statement.py b/addons/point_of_sale/models/account_bank_statement.py index 94e2af6be39..33533b8379d 100644 --- a/addons/point_of_sale/models/account_bank_statement.py +++ b/addons/point_of_sale/models/account_bank_statement.py @@ -17,6 +17,11 @@ class AccountBankStatement(models.Model): raise UserError(_("You can't validate a bank statement that is used in an opened Session of a Point of Sale.")) return super(AccountBankStatement, self).check_confirm_bank() + def unlink(self): + for bs in self: + if bs.pos_session_id: + raise UserError(_("You cannot delete a bank statement used in an open Point of Sale session.")) + return super( AccountBankStatement, self).unlink() class AccountBankStatementLine(models.Model): _inherit = 'account.bank.statement.line'