[IMP] account_move_protect_deleting : use the move_id to check if it’s CASH deposit or CHQ deposit

This commit is contained in:
Boris Gallet
2024-05-15 09:07:29 +02:00
parent 727025a8d0
commit 851e71e5a6

View File

@@ -1,6 +1,5 @@
from odoo import models, api, _
from odoo.exceptions import UserError
import re
class AccountMove(models.Model):
_inherit = 'account.move'
@@ -9,18 +8,26 @@ class AccountMove(models.Model):
def _check_posted(self):
""" Prevent deletion of a account move if it has been posted
exeptions : Check deposit or Cash deposit. In V16 in odoo the account move is deleted
when the check deposit is reset to draft.
when the check deposit is reset to draft.
This work the same with Cash deposit
"""
pattern_CHQ_DEPOSIT = r"DEP\d{3}"
pattern_CASH_DEPOSIT = r"CASH-DEP-\d{3}"
# search in account.cash.deposit if account move is this one
for cash_deposit in self.env['account.cash.deposit'].search([]):
if cash_deposit.move_id == self:
print (cash_deposit.move_id, self)
is_cash_deposit = True
# search in account.check.deposit if account move is this one
for check_deposit in self.env['account.check.deposit'].search([]):
if check_deposit.move_id == self:
is_check_deposit = True
if (
self.posted_before and
(
not re.search(pattern_CHQ_DEPOSIT, self.ref)
and not re.search(pattern_CASH_DEPOSIT, self.ref)
self.posted_before and
(
not is_cash_deposit
and not is_check_deposit
)
):
raise UserError(_(""