diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 547fd89d7c7..21f5b96848b 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -67,6 +67,8 @@ class account_move_line(osv.osv): 'date': obj_line.date, 'account_id': obj_line.analytic_account_id.id, 'unit_amount':obj_line.quantity, + 'product_id': obj_line.product_id and obj_line.product_id.id or False, + 'product_uom_id': obj_line.product_uom_id and obj_line.product_uom_id.id or False, 'amount': amt, 'general_account_id': obj_line.account_id.id, 'journal_id': obj_line.journal_id.analytic_journal_id.id, @@ -305,6 +307,8 @@ class account_move_line(osv.osv): _columns = { 'name': fields.char('Name', size=64, required=True), 'quantity': fields.float('Quantity', digits=(16,2), help="The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very usefull for some reports."), + 'product_uom_id': fields.many2one('product.uom', 'UoM'), + 'product_id': fields.many2one('product.product', 'Product'), 'debit': fields.float('Debit', digits=(16,2)), 'credit': fields.float('Credit', digits=(16,2)), 'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade", domain=[('type','<>','view'), ('type', '<>', 'closed')], select=2), diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 4b9d1a4f6f3..732792fb6ae 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -611,6 +611,8 @@ class account_invoice(osv.osv): 'tax_amount': x.get('tax_amount', False), 'ref':x.get('ref',False), 'quantity':x.get('quantity',1.00), + 'product_id':x.get('product_id', False), + 'product_uom_id':x.get('uos_id',False), 'analytic_account_id':x.get('account_analytic_id',False), } diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index e3190659e9a..55ee01770b5 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -280,6 +280,12 @@ class account_move_line(osv.osv): 'analytics_id':fields.many2one('account.analytic.plan.instance','Analytic Distribution'), } + def _default_get_move_form_hook(self, cursor, user, data): + data = super(account_move_line, self)._default_get_move_form_hook(cursor, user, data) + if data.has_key('analytics_id'): + del(data['analytics_id']) + return data + def create_analytic_lines(self, cr, uid, ids, context={}): super(account_move_line, self).create_analytic_lines(cr, uid, ids, context) for line in self.browse(cr, uid, ids, context): @@ -293,9 +299,10 @@ class account_move_line(osv.osv): al_vals={ 'name': line.name, 'date': line.date, - 'unit_amount':1, - 'product_id':12, 'account_id': line2.analytic_account_id.id, + 'unit_amount': line.quantity, + 'product_id': line.product_id and line.product_id.id or False, + 'product_uom_id': line.product_uom_id and line.product_uom_id.id or False, 'amount': amt, 'general_account_id': line.account_id.id, 'move_id': line.id, diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 4bb55187891..acd8debb18b 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -17,6 +17,27 @@ + + account.move.form.inherit + account.move + form + + + + + + + + + + + + + + + + + account.move.line.form.inherit account.move.line @@ -29,17 +50,6 @@ - - account.move.line.tree.inherit - account.move.line - tree - - - - - - - @@ -68,6 +78,7 @@ + account.analytic.plan.instance.form account.analytic.plan.instance @@ -88,7 +99,6 @@ - account.analytic.plan.instance.tree account.analytic.plan.instance