Odoo18-Base/addons/l10n_latam_check/models/account_journal.py
2025-03-10 11:12:23 +07:00

29 lines
1.5 KiB
Python

from odoo import models, fields, api, _
from odoo.exceptions import UserError
class AccountJournal(models.Model):
_inherit = 'account.journal'
l10n_latam_manual_checks = fields.Boolean(
string='Use electronic and deferred checks',
help="* Allows putting numbers manually\n"
"* Enables Check Cash-In Date feature\n"
"* Disables printing"
)
@api.constrains('l10n_latam_manual_checks', 'check_manual_sequencing')
def _check_l10n_latam_manual_checks(self):
""" Protect from setting check_manual_sequencing (Manual Numbering) + Use electronic/deferred checks for these reasons
* Printing checks for manual checks (electronic/deferred) is not implemented and using a "check printing" option together with the manual
checks is confusing
* The next check number field shown when choosing "Manual Numbering" don't have any meaning when using manual checks (electronic/deferred)
* Some methods of account_check_printing module behave differently if "Manual Numbering" is configured
"""
recs = self.filtered(
lambda x: x.check_manual_sequencing and x.l10n_latam_manual_checks)
if recs:
raise UserError(_(
"Manual checks (electronic/deferred) can't be used together with check manual sequencing (check printing functionality), "
"please choose one or the other. Journals: %s", ",".join(recs.mapped("name"))))