Files
tradon/modules/account_statement/bank.py
2026-03-14 09:42:12 +00:00

37 lines
1.5 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.i18n import gettext
from trytond.modules.bank.exceptions import AccountValidationError
from trytond.pool import Pool, PoolMeta
from trytond.tools import grouped_slice
class Account(metaclass=PoolMeta):
__name__ = 'bank.account'
@classmethod
def validate_fields(cls, accounts, field_names):
super().validate_fields(accounts, field_names)
cls.check_currency_statement_journal(accounts, field_names)
@classmethod
def check_currency_statement_journal(cls, accounts, field_names):
pool = Pool()
Journal = pool.get('account.statement.journal')
if field_names and 'currency' not in field_names:
return
for sub_accounts in grouped_slice(accounts):
sub_account_ids = [a.id for a in sub_accounts]
journals = Journal.search([
('bank_account', 'in', sub_account_ids),
])
for journal in journals:
if (journal.currency != journal.bank_account.currency
and journal.bank_account.currency):
raise AccountValidationError(
gettext('account_statement.msg_bank_account_currency',
bank_account=journal.bank_account.rec_name,
currency=journal.currency.rec_name,
journal=journal.rec_name))