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