[IMP] better useability
[odoo/odoo.git] / addons / account / product.py
1 # -*- coding: utf-8 -*-
2 ##############################################################################
3 #
4 #    OpenERP, Open Source Management Solution
5 #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
6 #
7 #    This program is free software: you can redistribute it and/or modify
8 #    it under the terms of the GNU Affero General Public License as
9 #    published by the Free Software Foundation, either version 3 of the
10 #    License, or (at your option) any later version.
11 #
12 #    This program is distributed in the hope that it will be useful,
13 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #    GNU Affero General Public License for more details.
16 #
17 #    You should have received a copy of the GNU Affero General Public License
18 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 #
20 ##############################################################################
21
22 import time
23 import netsvc
24 from osv import fields, osv
25
26 class product_category(osv.osv):
27     _inherit = "product.category"
28     _columns = {
29         'property_account_income_categ': fields.property(
30             'account.account',
31             type='many2one',
32             relation='account.account',
33             string="Income Account",
34             method=True,
35             view_load=True,
36             help="This account will be used for invoices to value sales for the current product category"),
37         'property_account_expense_categ': fields.property(
38             'account.account',
39             type='many2one',
40             relation='account.account',
41             string="Expense Account",
42             method=True,
43             view_load=True,
44             help="This account will be used for invoices to value expenses for the current product category"),
45     }
46 product_category()
47
48 #----------------------------------------------------------
49 # Products
50 #----------------------------------------------------------
51
52 class product_template(osv.osv):
53     _inherit = "product.template"
54     _columns = {
55         'taxes_id': fields.many2many('account.tax', 'product_taxes_rel',
56             'prod_id', 'tax_id', 'Customer Taxes',
57             domain=[('parent_id','=',False),('type_tax_use','in',['sale','all'])]),
58         'supplier_taxes_id': fields.many2many('account.tax',
59             'product_supplier_taxes_rel', 'prod_id', 'tax_id',
60             'Supplier Taxes', domain=[('parent_id', '=', False),('type_tax_use','in',['purchase','all'])]),
61         'property_account_income': fields.property(
62             'account.account',
63             type='many2one',
64             relation='account.account',
65             string="Income Account",
66             method=True,
67             view_load=True,
68             help="This account will be used for invoices instead of the default one to value sales for the current product"),
69         'property_account_expense': fields.property(
70             'account.account',
71             type='many2one',
72             relation='account.account',
73             string="Expense Account",
74             method=True,
75             view_load=True,
76             help="This account will be used for invoices instead of the default one to value expenses for the current product"),
77     }
78 product_template()
79