first commit
This commit is contained in:
36
modules/account_statement/bank.py
Normal file
36
modules/account_statement/bank.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# 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))
|
||||
Reference in New Issue
Block a user