From ccbf1f434b8bf43e83dd0466dc9bfb226bb56f81 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 5 Apr 2011 10:50:41 +0530 Subject: [PATCH] [FIX]stock:Multiple UOM not handled by Inventory Analysis lp bug: https://launchpad.net/bugs/741457 fixed bzr revid: ron@tinyerp.com-20110405052041-hu8odbfg12cm2xc2 --- addons/stock/report/report_stock_move.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/addons/stock/report/report_stock_move.py b/addons/stock/report/report_stock_move.py index 15e430d0599..f489b824062 100644 --- a/addons/stock/report/report_stock_move.py +++ b/addons/stock/report/report_stock_move.py @@ -176,18 +176,23 @@ CREATE OR REPLACE view report_stock_inventory AS ( m.product_id as product_id, pt.categ_id as product_categ_id, l.usage as location_type, m.company_id, m.state as state, m.prodlot_id as prodlot_id, - coalesce(sum(-m.product_qty * u.factor)::decimal, 0.0) as product_qty, - coalesce(sum(-pt.standard_price * m.product_qty * u.factor)::decimal, 0.0) as value + coalesce(sum(-pt.standard_price * m.product_qty)::decimal, 0.0) as value, + CASE when pt.uom_id = m.product_uom + THEN + coalesce(sum(-m.product_qty)::decimal, 0.0) + ELSE + coalesce(sum(-m.product_qty * pu.factor)::decimal, 0.0) END as product_qty FROM stock_move m LEFT JOIN stock_picking p ON (m.picking_id=p.id) LEFT JOIN product_product pp ON (m.product_id=pp.id) LEFT JOIN product_template pt ON (pp.product_tmpl_id=pt.id) + LEFT JOIN product_uom pu ON (pt.uom_id=pu.id) LEFT JOIN product_uom u ON (m.product_uom=u.id) LEFT JOIN stock_location l ON (m.location_id=l.id) GROUP BY m.id, m.product_id, m.product_uom, pt.categ_id, m.address_id, m.location_id, m.location_dest_id, - m.prodlot_id, m.date, m.state, l.usage, m.company_id + m.prodlot_id, m.date, m.state, l.usage, m.company_id,pt.uom_id ) UNION ALL ( SELECT -m.id as id, m.date as date, @@ -195,18 +200,23 @@ CREATE OR REPLACE view report_stock_inventory AS ( m.product_id as product_id, pt.categ_id as product_categ_id, l.usage as location_type, m.company_id, m.state as state, m.prodlot_id as prodlot_id, - coalesce(sum(m.product_qty*u.factor)::decimal, 0.0) as product_qty, - coalesce(sum(pt.standard_price * m.product_qty * u.factor)::decimal, 0.0) as value + coalesce(sum(pt.standard_price * m.product_qty )::decimal, 0.0) as value, + CASE when pt.uom_id = m.product_uom + THEN + coalesce(sum(m.product_qty)::decimal, 0.0) + ELSE + coalesce(sum(m.product_qty * pu.factor)::decimal, 0.0) END as product_qty FROM stock_move m LEFT JOIN stock_picking p ON (m.picking_id=p.id) LEFT JOIN product_product pp ON (m.product_id=pp.id) LEFT JOIN product_template pt ON (pp.product_tmpl_id=pt.id) + LEFT JOIN product_uom pu ON (pt.uom_id=pu.id) LEFT JOIN product_uom u ON (m.product_uom=u.id) LEFT JOIN stock_location l ON (m.location_dest_id=l.id) GROUP BY m.id, m.product_id, m.product_uom, pt.categ_id, m.address_id, m.location_id, m.location_dest_id, - m.prodlot_id, m.date, m.state, l.usage, m.company_id + m.prodlot_id, m.date, m.state, l.usage, m.company_id,pt.uom_id ) ); """)