diff --git a/__init__.py b/__init__.py index 7e7a279b7f..571a6ed8c3 100644 --- a/__init__.py +++ b/__init__.py @@ -20,7 +20,6 @@ def register(): product.Category, product.CategoryAccount, product.Template, - product.TemplateAccount, product.Product, invoice.InvoiceLine, account.Configuration, diff --git a/product.py b/product.py index 7915ad3be7..ccc5c69b1d 100644 --- a/product.py +++ b/product.py @@ -7,8 +7,7 @@ from trytond.pool import PoolMeta, Pool from trytond.modules.account_product.product import ( account_used, template_property) -__all__ = ['Category', 'CategoryAccount', 'Template', 'TemplateAccount', - 'Product'] +__all__ = ['Category', 'CategoryAccount', 'Template', 'Product'] class Category: @@ -104,35 +103,6 @@ class Template: 'readonly': ~Eval('active', True), 'invisible': Eval('type', '') != 'assets', }, depends=['active', 'type']) - account_depreciation = fields.MultiValue(fields.Many2One('account.account', - 'Account Depreciation', domain=[ - ('kind', '=', 'other'), - ('company', '=', Eval('context', {}).get('company', -1)), - ], - states={ - 'readonly': ~Eval('active', True), - 'required': ~Eval('accounts_category') & Eval('depreciable'), - 'invisible': (~Eval('depreciable') - | (Eval('type', '') != 'assets') - | ~Eval('context', {}).get('company') - | Eval('accounts_category')), - }, - depends=['active', 'depreciable', 'type', 'accounts_category'])) - account_asset = fields.MultiValue(fields.Many2One('account.account', - 'Account Asset', - domain=[ - ('kind', '=', 'expense'), - ('company', '=', Eval('context', {}).get('company', -1)), - ], - states={ - 'readonly': ~Eval('active', True), - 'required': ~Eval('accounts_category') & Eval('depreciable'), - 'invisible': (~Eval('depreciable') - | (Eval('type', '') != 'assets') - | ~Eval('context', {}).get('company') - | Eval('accounts_category')), - }, - depends=['active', 'depreciable', 'type', 'accounts_category'])) depreciation_duration = fields.Integer( "Depreciation Duration", states={ @@ -143,65 +113,17 @@ class Template: depends=['active', 'depreciable', 'type'], help='In months') - @classmethod - def multivalue_model(cls, field): - pool = Pool() - if field in {'account_depreciation', 'account_asset'}: - return pool.get('product.template.account') - return super(Template, cls).multivalue_model(field) - @property - @account_used('account_depreciation') + @account_used('account_depreciation', 'account_category') def account_depreciation_used(self): pass @property - @account_used('account_asset') + @account_used('account_asset', 'account_category') def account_asset_used(self): pass -class TemplateAccount: - __metaclass__ = PoolMeta - __name__ = 'product.template.account' - account_depreciation = fields.Many2One( - 'account.account', "Account Depreciation", - domain=[ - ('kind', '=', 'other'), - ('company', '=', Eval('company', -1)), - ], - depends=['company']) - account_asset = fields.Many2One( - 'account.account', "Account Asset", - domain=[ - ('kind', '=', 'expense'), - ('company', '=', Eval('company', -1)), - ], - depends=['company']) - - @classmethod - def __register__(cls, module_name): - TableHandler = backend.get('TableHandler') - exist = TableHandler.table_exist(cls._table) - if exist: - table = TableHandler(cls, module_name) - exist &= (table.column_exist('account_depreciation') - and table.column_exist('account_asset')) - - super(TemplateAccount, cls).__register__(module_name) - - if not exist: - # Re-migration - cls._migrate_property([], [], []) - - @classmethod - def _migrate_property(cls, field_names, value_names, fields): - field_names.extend(['account_depreciation', 'account_asset']) - value_names.extend(['account_depreciation', 'account_asset']) - super(TemplateAccount, cls)._migrate_property( - field_names, value_names, fields) - - class Product: __metaclass__ = PoolMeta __name__ = 'product.product' diff --git a/tests/scenario_account_asset.rst b/tests/scenario_account_asset.rst index c8d85f0af4..c9e149f70f 100644 --- a/tests/scenario_account_asset.rst +++ b/tests/scenario_account_asset.rst @@ -43,6 +43,17 @@ Create chart of accounts:: >>> expense = accounts['expense'] >>> depreciation_account = accounts['depreciation'] +Create account category:: + + >>> ProductCategory = Model.get('product.category') + >>> account_category = ProductCategory(name="Account Category") + >>> account_category.accounting = True + >>> account_category.account_expense = expense + >>> account_category.account_revenue = revenue + >>> account_category.account_asset = asset_account + >>> account_category.account_depreciation = depreciation_account + >>> account_category.save() + Create an asset:: >>> ProductUom = Model.get('product.uom') @@ -55,11 +66,8 @@ Create an asset:: >>> asset_template.type = 'assets' >>> asset_template.default_uom = unit >>> asset_template.list_price = Decimal('1000') + >>> asset_template.account_category = account_category >>> asset_template.depreciable = True - >>> asset_template.account_expense = expense - >>> asset_template.account_revenue = revenue - >>> asset_template.account_asset = asset_account - >>> asset_template.account_depreciation = depreciation_account >>> asset_template.depreciation_duration = 24 >>> asset_template.save() >>> asset_product, = asset_template.products diff --git a/tests/scenario_purchase_asset.rst b/tests/scenario_purchase_asset.rst index 6aa61660f3..c8caf8e5e9 100644 --- a/tests/scenario_purchase_asset.rst +++ b/tests/scenario_purchase_asset.rst @@ -43,6 +43,17 @@ Create chart of accounts:: >>> expense = accounts['expense'] >>> depreciation_account = accounts['depreciation'] +Create account category:: + + >>> ProductCategory = Model.get('product.category') + >>> account_category = ProductCategory(name="Account Category") + >>> account_category.accounting = True + >>> account_category.account_expense = expense + >>> account_category.account_revenue = revenue + >>> account_category.account_asset = asset_account + >>> account_category.account_depreciation = depreciation_account + >>> account_category.save() + Create products:: >>> ProductUom = Model.get('product.uom') @@ -55,10 +66,7 @@ Create products:: >>> asset_template.list_price = Decimal('1000') >>> asset_template.depreciable = True >>> asset_template.purchasable = True - >>> asset_template.account_expense = expense - >>> asset_template.account_revenue = revenue - >>> asset_template.account_asset = asset_account - >>> asset_template.account_depreciation = depreciation_account + >>> asset_template.account_category = account_category >>> asset_template.depreciation_duration = 24 >>> asset_template.save() >>> service_product, = asset_template.products @@ -69,8 +77,7 @@ Create products:: >>> service_template.default_uom = unit >>> service_template.list_price = Decimal('10') >>> service_template.purchasable = True - >>> service_template.account_expense = expense - >>> service_template.account_revenue = revenue + >>> service_template.account_category = account_category >>> service_template.save() >>> service_product, = service_template.products diff --git a/view/template_form.xml b/view/template_form.xml index e1295f4da8..27ee33c355 100644 --- a/view/template_form.xml +++ b/view/template_form.xml @@ -2,9 +2,7 @@ - + - -