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

57 lines
1.7 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.model import (
MatchMixin, ModelSQL, ModelView, fields, sequence_ordered)
from trytond.pyson import Eval
from trytond.transaction import Transaction
from .account import AnalyticMixin
class Rule(sequence_ordered(), MatchMixin, AnalyticMixin, ModelSQL, ModelView):
__name__ = 'analytic_account.rule'
company = fields.Many2One(
'company.company', "Company", required=True)
account = fields.Many2One(
'account.account', "Account",
domain=[
('company', '=', Eval('company', -1)),
('type', '!=', None),
('closed', '!=', True),
])
party = fields.Many2One(
'party.party', "Party",
states={
'invisible': ~Eval('party_visible'),
},
context={
'company': Eval('company', -1),
},
depends={'company'})
party_visible = fields.Function(fields.Boolean("Party Visible"),
'on_change_with_party_visible')
journal = fields.Many2One(
'account.journal', "Journal",
context={
'company': Eval('company', -1),
},
depends={'company'})
@classmethod
def __setup__(cls):
super().__setup__()
cls.analytic_accounts.domain = [
('company', '=', Eval('company', -1)),
]
@classmethod
def default_company(cls):
return Transaction().context.get('company')
@fields.depends('account')
def on_change_with_party_visible(self, name=None):
if self.account:
return self.account.party_required
return False