diff --git a/addons/account_anglo_saxon/invoice.py b/addons/account_anglo_saxon/invoice.py index 72e21f08328..83fcc7e0a4f 100644 --- a/addons/account_anglo_saxon/invoice.py +++ b/addons/account_anglo_saxon/invoice.py @@ -91,7 +91,13 @@ class account_invoice_line(osv.osv): if not cacc: cacc = i_line.product_id.categ_id.property_account_expense_categ and i_line.product_id.categ_id.property_account_expense_categ.id if dacc and cacc: - price_unit = i_line.move_id and i_line.move_id.price_unit or i_line.product_id.standard_price + if i_line.move_id: + price = i_line.move_id.product_id.standard_price + from_unit = i_line.move_id.product_tmpl_id.uom_id.id + to_unit = i_line.move_id.product_uom.id + price_unit = self.pool['product.uom']._compute_price(cr, uid, from_unit, price, to_uom_id=to_unit) + else: + price_unit = i_line.product_id.standard_price return [ { 'type':'src', diff --git a/addons/stock_account/stock.py b/addons/stock_account/stock.py index b6d932a82dd..de3b8c8a192 100644 --- a/addons/stock_account/stock.py +++ b/addons/stock_account/stock.py @@ -319,9 +319,9 @@ class stock_picking(osv.osv): invoice_line_vals['invoice_id'] = invoices[key] invoice_line_vals['origin'] = origin if not is_extra_move[move.id]: - product_price_unit[invoice_line_vals['product_id']] = invoice_line_vals['price_unit'] - if is_extra_move[move.id] and invoice_line_vals['product_id'] in product_price_unit: - invoice_line_vals['price_unit'] = product_price_unit[invoice_line_vals['product_id']] + product_price_unit[invoice_line_vals['product_id'], invoice_line_vals['uos_id']] = invoice_line_vals['price_unit'] + if is_extra_move[move.id] and (invoice_line_vals['product_id'], invoice_line_vals['uos_id']) in product_price_unit: + invoice_line_vals['price_unit'] = product_price_unit[invoice_line_vals['product_id'], invoice_line_vals['uos_id']] if is_extra_move[move.id]: desc = (inv_type == 'out_invoice' and move.product_id.product_tmpl_id.description_sale) or \ (inv_type == 'in_invoice' and move.product_id.product_tmpl_id.description_purchase)