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

56 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.pool import Pool, PoolMeta
from trytond.transaction import Transaction
class _AccountUsed:
__slots__ = ()
@property
def account_expense_used(self):
with Transaction().set_context(account_type='expense'):
return super().account_expense_used
@property
def account_revenue_used(self):
with Transaction().set_context(account_type='revenue'):
return super().account_revenue_used
@property
def account_stock_used(self):
with Transaction().set_context(account_type='stock'):
return super().account_stock_used
@property
def account_stock_in_used(self):
with Transaction().set_context(account_type='stock'):
return super().account_stock_in_used
@property
def account_stock_out_used(self):
with Transaction().set_context(account_type='stock'):
return super().account_stock_out_used
@property
def account_cogs_used(self):
with Transaction().set_context(account_type='stock'):
return super().account_cogs_used
class Category(_AccountUsed, metaclass=PoolMeta):
__name__ = 'product.category'
def get_account(self, name, **pattern):
pool = Pool()
AccountRule = pool.get('account.account.rule')
account = super().get_account(name, **pattern)
if not self.account_parent:
with Transaction().set_context(self._context):
account = AccountRule.apply(account)
return account
class Template(_AccountUsed, metaclass=PoolMeta):
__name__ = 'product.template'