56 lines
1.7 KiB
Python
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'
|