class Category: __name__ = 'product.category' account_depreciation = fields.Property( fields.Many2One('account.account', 'Account Depreciation', domain=[ ('kind', '=', 'other'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), })) account_depreciation_used = MissingFunction( fields.Many2One('account.account', 'Account Depreciation Used'), 'missing_account', 'get_account') account_asset = fields.Property( fields.Many2One('account.account', 'Account Asset', domain=[ ('kind', '=', 'expense'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), })) account_asset_used = MissingFunction( fields.Many2One('account.account', 'Account Asset Used'), 'missing_account', 'get_account')
class Template: __name__ = 'product.template' account_cogs = fields.Property( fields.Many2One( 'account.account', 'Account Cost of Goods Sold', domain=[ ('kind', '!=', 'view'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': ((~Eval('context', {}).get('company')) | Eval('account_category') | (Eval('type') != 'goods')), }, help='This account will be used instead of the one defined ' 'on the category.', depends=['account_category', 'type'])) account_cogs_used = MissingFunction( fields.Many2One('account.account', 'Account Cost of Goods Sold Used'), 'missing_account', 'get_account')
class Category: __name__ = 'product.category' account_cogs = fields.Property( fields.Many2One('account.account', 'Account Cost of Goods Sold', domain=[ ('kind', '!=', 'view'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval( 'context', {}, ).get('company') | Eval('account_parent')), }, depends=['account_parent'])) account_cogs_used = MissingFunction( fields.Many2One('account.account', 'Account Cost of Goods Sold Used'), 'missing_account', 'get_account')
class Template: __name__ = 'product.template' depreciable = fields.Boolean('Depreciable', states={ 'readonly': ~Eval('active', True), 'invisible': Eval('type', '') != 'assets', }, depends=['active', 'type']) account_depreciation = fields.Property( fields.Many2One( 'account.account', 'Account Depreciation', domain=[ ('kind', '=', 'other'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'readonly': ~Eval('active', True), 'required': ~Eval('account_category') & Eval('depreciable'), 'invisible': (~Eval('depreciable') | (Eval('type', '') != 'assets') | ~Eval('context', {}).get('company') | Eval('account_category')), }, depends=['active', 'depreciable', 'type', 'account_category'])) account_depreciation_used = MissingFunction( fields.Many2One('account.account', 'Account Depreciation Used'), 'missing_account', 'get_account') account_asset = fields.Property( fields.Many2One( 'account.account', 'Account Asset', domain=[ ('kind', '=', 'expense'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'readonly': ~Eval('active', True), 'required': ~Eval('account_category') & Eval('depreciable'), 'invisible': (~Eval('depreciable') | (Eval('type', '') != 'assets') | ~Eval('context', {}).get('company') | Eval('account_category')), }, depends=['active', 'depreciable', 'type', 'account_category'])) account_asset_used = MissingFunction( fields.Many2One('account.account', 'Account Asset Used'), 'missing_account', 'get_account') depreciation_duration = fields.Property( fields.Numeric('Depreciation Duration', digits=(16, 0), states={ 'readonly': ~Eval('active', True), 'invisible': (~Eval('depreciable') | (Eval('type', '') != 'assets') | ~Eval('context', {}).get('company')), }, depends=['active', 'depreciable', 'type'], help='In months'))
class Category: __name__ = 'product.category' account_stock = fields.Property( fields.Many2One('account.account', 'Account Stock', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), }, depends=['account_parent'])) account_stock_supplier = fields.Property( fields.Many2One('account.account', 'Account Stock Supplier', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), }, depends=['account_parent'])) account_stock_customer = fields.Property( fields.Many2One('account.account', 'Account Stock Customer', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), }, depends=['account_parent'])) account_stock_production = fields.Property( fields.Many2One('account.account', 'Account Stock Production', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), }, depends=['account_parent'])) account_stock_lost_found = fields.Property( fields.Many2One('account.account', 'Account Stock Lost and Found', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_parent')), }, depends=['account_parent'])) account_stock_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Used'), 'missing_account', 'get_account') account_stock_supplier_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Supplier Used'), 'missing_account', 'get_account') account_stock_customer_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Customer Used'), 'missing_account', 'get_account') account_stock_production_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Production Used'), 'missing_account', 'get_account') account_stock_lost_found_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Lost and Found'), 'missing_account', 'get_account')
class Template: __name__ = 'product.template' account_stock = fields.Property( fields.Many2One( 'account.account', 'Account Stock', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_category') | (Eval('type') != 'goods')), }, help='This account will be used instead of the one defined ' 'on the category.', depends=['account_category', 'type'])) account_stock_supplier = fields.Property( fields.Many2One( 'account.account', 'Account Stock Supplier', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_category') | (Eval('type') != 'goods')), }, help='This account will be used instead of the one defined ' 'on the category.', depends=['account_category', 'type'])) account_stock_customer = fields.Property( fields.Many2One( 'account.account', 'Account Stock Customer', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_category') | (Eval('type') != 'goods')), }, help='This account will be used instead of the one defined ' 'on the category.', depends=['account_category', 'type'])) account_stock_production = fields.Property( fields.Many2One( 'account.account', 'Account Stock Production', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_category') | (Eval('type') != 'goods')), }, help='This account will be used instead of the one defined ' 'on the category.', depends=['account_category', 'type'])) account_stock_lost_found = fields.Property( fields.Many2One( 'account.account', 'Account Stock Lost and Found', domain=[ ('kind', '=', 'stock'), ('company', '=', Eval('context', {}).get('company', -1)), ], states={ 'invisible': (~Eval('context', {}).get('company') | Eval('account_category') | (Eval('type') != 'goods')), }, help='This account will be used instead of the one defined ' 'on the category.', depends=['account_category', 'type'])) account_stock_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Used'), 'missing_account', 'get_account') account_stock_supplier_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Supplier Used'), 'missing_account', 'get_account') account_stock_customer_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Customer Used'), 'missing_account', 'get_account') account_stock_production_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Production Used'), 'missing_account', 'get_account') account_stock_lost_found_used = MissingFunction( fields.Many2One('account.account', 'Account Stock Lost and Found'), 'missing_account', 'get_account') @classmethod def __setup__(cls): super(Template, cls).__setup__() cls._modify_no_move.append(('cost_price', 'change_cost_price')) cls._error_messages.update({ 'change_cost_price': ('You cannot change the cost price for ' 'a product which is associated to stock moves.\n' 'You must use the "Update Cost Price" wizard.'), })