From 217188b3f06f2018420243f4b995864e94c71b0b Mon Sep 17 00:00:00 2001 From: mjudd Date: Tue, 2 Feb 2010 21:28:17 +0000 Subject: [PATCH] [ BF 2944056 ] - Fix quantities for Substitute & Related products in InfoProduct https://sourceforge.net/tracker/index.php?func=detail&aid=2944056&group_id=176962&atid=879332 Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=2944056 --- .../views/M_PRODUCT_SUBSTITUTERELATED_V.sql | 96 ++++++++++--- .../views/M_PRODUCT_SUBSTITUTERELATED_V.sql | 133 ++++++++++-------- 2 files changed, 156 insertions(+), 73 deletions(-) diff --git a/db/ddlutils/oracle/views/M_PRODUCT_SUBSTITUTERELATED_V.sql b/db/ddlutils/oracle/views/M_PRODUCT_SUBSTITUTERELATED_V.sql index efb27c4b3f..ebf9a84b4c 100644 --- a/db/ddlutils/oracle/views/M_PRODUCT_SUBSTITUTERELATED_V.sql +++ b/db/ddlutils/oracle/views/M_PRODUCT_SUBSTITUTERELATED_V.sql @@ -1,18 +1,78 @@ -CREATE OR REPLACE VIEW M_Product_SubstituteRelated_V AS -SELECT s.AD_Client_ID, s.AD_Org_ID, s.IsActive, s.Created, s.CreatedBy, s.Updated, s.UpdatedBy, s.m_product_id, s.substitute_id, s.description, 'S' AS ROWTYPE, (ms.qtyonhand - ms.qtyreserved) AS qtyavailable, ms.qtyonhand, ms.qtyreserved, mpr.pricestd, mpr.m_pricelist_version_id, mw.m_warehouse_id, mp.NAME, org.NAME AS orgname -FROM M_SUBSTITUTE s -JOIN M_STORAGE ms ON ms.m_product_id = s.substitute_id -JOIN M_PRODUCT mp ON ms.m_product_id = mp.m_product_id -JOIN M_LOCATOR ml ON ms.m_locator_id = ml.m_locator_id -JOIN M_WAREHOUSE mw ON ml.m_warehouse_id = mw.m_warehouse_id -JOIN M_PRODUCTPRICE mpr ON ms.m_product_id = mpr.m_product_id -JOIN AD_ORG org ON org.ad_org_id = mw.ad_org_id -UNION -SELECT r.ad_client_id, r.ad_org_id, r.IsActive, r.Created, r.CreatedBy, r.Updated, r.UpdatedBy, r.m_product_id, r.relatedproduct_id, r.description, 'R' AS ROWTYPE, (ms.qtyonhand - ms.qtyreserved) AS qtyavailable, ms.qtyonhand, ms.qtyreserved, mpr.pricestd, mpr.m_pricelist_version_id, mw.m_warehouse_id, mp.NAME, org.NAME AS orgname -FROM M_RELATEDPRODUCT r -JOIN M_STORAGE ms ON ms.m_product_id = r.relatedproduct_id -JOIN M_PRODUCT mp ON ms.m_product_id = mp.m_product_id -JOIN M_LOCATOR ml ON ms.m_locator_id = ml.m_locator_id -JOIN M_WAREHOUSE mw ON ml.m_warehouse_id = mw.m_warehouse_id -JOIN M_PRODUCTPRICE mpr ON ms.m_product_id = mpr.m_product_id -JOIN AD_ORG org ON org.ad_org_id = mw.ad_org_id; \ No newline at end of file +CREATE OR REPLACE VIEW M_PRODUCT_SUBSTITUTERELATED_V AS +SELECT s.ad_client_id, + s.ad_org_id, + s.isactive, + s.created, + s.createdby, + s.updated, + s.updatedby, + s.m_product_id, + s.substitute_id, + 'S' AS rowtype, + mp.name, + sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable, + sum(ms.qtyonhand) AS qtyonhand, + sum(ms.qtyreserved) AS qtyreserved, + ROUND(MAX(mpr.pricestd),0) AS pricestd, + mpr.m_pricelist_version_id, + mw.m_warehouse_id, + org.name AS orgname + FROM m_substitute s + JOIN m_storage ms ON ms.m_product_id = s.substitute_id + JOIN m_product mp ON ms.m_product_id = mp.m_product_id + JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id + JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id + JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id + JOIN ad_org org ON org.ad_org_id = mw.ad_org_id + GROUP BY s.ad_client_id, + s.ad_org_id, + s.isactive, + s.created, + s.createdby, + s.updated, + s.updatedby, + s.m_product_id, + s.substitute_id, + mw.m_warehouse_id, + mpr.m_pricelist_version_id, + org.name, + mp.name + UNION + SELECT r.ad_client_id, + r.ad_org_id, + r.isactive, + r.created, + r.createdby, + r.updated, + r.updatedby, + r.m_product_id, + r.relatedproduct_id AS substitute_id, + 'R' AS rowtype, + mp.name, + sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable, + sum(ms.qtyonhand) AS qtyonhand, + sum(ms.qtyreserved) AS qtyreserved, + ROUND(MAX(mpr.pricestd),0) AS pricestd, + mpr.m_pricelist_version_id, + mw.m_warehouse_id, + org.name AS orgname + FROM m_relatedproduct r + JOIN m_storage ms ON ms.m_product_id = r.relatedproduct_id + JOIN m_product mp ON ms.m_product_id = mp.m_product_id + JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id + JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id + JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id + JOIN ad_org org ON org.ad_org_id = mw.ad_org_id + GROUP BY r.ad_client_id, + r.ad_org_id, + r.isactive, + r.created, + r.createdby, + r.updated, + r.updatedby, + r.m_product_id, + r.relatedproduct_id, + mw.m_warehouse_id, + mpr.m_pricelist_version_id, + org.name, + mp.name; \ No newline at end of file diff --git a/db/ddlutils/postgresql/views/M_PRODUCT_SUBSTITUTERELATED_V.sql b/db/ddlutils/postgresql/views/M_PRODUCT_SUBSTITUTERELATED_V.sql index 205488a3f1..ebf9a84b4c 100644 --- a/db/ddlutils/postgresql/views/M_PRODUCT_SUBSTITUTERELATED_V.sql +++ b/db/ddlutils/postgresql/views/M_PRODUCT_SUBSTITUTERELATED_V.sql @@ -1,55 +1,78 @@ -CREATE OR -REPLACE VIEW m_product_substituterelated_v AS -SELECT s.ad_client_id, - s.ad_org_id, - s.isactive, - s.created, - s.createdby, - s.updated, - s.updatedby, - s.m_product_id, - s.substitute_id, - s.description, - 'S' AS ROWTYPE, - (ms.qtyonhand - ms.qtyreserved) AS qtyavailable, - mp.NAME, - ms.qtyonhand, - ms.qtyreserved, - mpr.pricestd, - mpr.m_pricelist_version_id, - mw.m_warehouse_id, - org.NAME AS orgname -FROM M_SUBSTITUTE s - JOIN M_STORAGE ms ON ms.m_product_id = s.substitute_id - JOIN M_PRODUCT mp ON ms.m_product_id = mp.m_product_id - JOIN M_LOCATOR ml ON ms.m_locator_id = ml.m_locator_id - JOIN M_WAREHOUSE mw ON ml.m_warehouse_id = mw.m_warehouse_id - JOIN M_PRODUCTPRICE mpr ON ms.m_product_id = mpr.m_product_id - JOIN AD_ORG org ON org.ad_org_id = mw.ad_org_id -UNION -SELECT r.ad_client_id, - r.ad_org_id, - r.isactive, - r.created, - r.createdby, - r.updated, - r.updatedby, - r.m_product_id, - r.relatedproduct_id AS substitute_id, - r.description, - 'R' AS ROWTYPE, - (ms.qtyonhand - ms.qtyreserved) AS qtyavailable, - mp.NAME, - ms.qtyonhand, - ms.qtyreserved, - mpr.pricestd, - mpr.m_pricelist_version_id, - mw.m_warehouse_id, - org.NAME AS orgname -FROM M_RELATEDPRODUCT r - JOIN M_STORAGE ms ON ms.m_product_id = r.relatedproduct_id - JOIN M_PRODUCT mp ON ms.m_product_id = mp.m_product_id - JOIN M_LOCATOR ml ON ms.m_locator_id = ml.m_locator_id - JOIN M_WAREHOUSE mw ON ml.m_warehouse_id = mw.m_warehouse_id - JOIN M_PRODUCTPRICE mpr ON ms.m_product_id = mpr.m_product_id - JOIN AD_ORG org ON org.ad_org_id = mw.ad_org_id; \ No newline at end of file +CREATE OR REPLACE VIEW M_PRODUCT_SUBSTITUTERELATED_V AS +SELECT s.ad_client_id, + s.ad_org_id, + s.isactive, + s.created, + s.createdby, + s.updated, + s.updatedby, + s.m_product_id, + s.substitute_id, + 'S' AS rowtype, + mp.name, + sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable, + sum(ms.qtyonhand) AS qtyonhand, + sum(ms.qtyreserved) AS qtyreserved, + ROUND(MAX(mpr.pricestd),0) AS pricestd, + mpr.m_pricelist_version_id, + mw.m_warehouse_id, + org.name AS orgname + FROM m_substitute s + JOIN m_storage ms ON ms.m_product_id = s.substitute_id + JOIN m_product mp ON ms.m_product_id = mp.m_product_id + JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id + JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id + JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id + JOIN ad_org org ON org.ad_org_id = mw.ad_org_id + GROUP BY s.ad_client_id, + s.ad_org_id, + s.isactive, + s.created, + s.createdby, + s.updated, + s.updatedby, + s.m_product_id, + s.substitute_id, + mw.m_warehouse_id, + mpr.m_pricelist_version_id, + org.name, + mp.name + UNION + SELECT r.ad_client_id, + r.ad_org_id, + r.isactive, + r.created, + r.createdby, + r.updated, + r.updatedby, + r.m_product_id, + r.relatedproduct_id AS substitute_id, + 'R' AS rowtype, + mp.name, + sum(ms.qtyonhand - ms.qtyreserved) AS qtyavailable, + sum(ms.qtyonhand) AS qtyonhand, + sum(ms.qtyreserved) AS qtyreserved, + ROUND(MAX(mpr.pricestd),0) AS pricestd, + mpr.m_pricelist_version_id, + mw.m_warehouse_id, + org.name AS orgname + FROM m_relatedproduct r + JOIN m_storage ms ON ms.m_product_id = r.relatedproduct_id + JOIN m_product mp ON ms.m_product_id = mp.m_product_id + JOIN m_locator ml ON ms.m_locator_id = ml.m_locator_id + JOIN m_warehouse mw ON ml.m_warehouse_id = mw.m_warehouse_id + JOIN m_productprice mpr ON ms.m_product_id = mpr.m_product_id + JOIN ad_org org ON org.ad_org_id = mw.ad_org_id + GROUP BY r.ad_client_id, + r.ad_org_id, + r.isactive, + r.created, + r.createdby, + r.updated, + r.updatedby, + r.m_product_id, + r.relatedproduct_id, + mw.m_warehouse_id, + mpr.m_pricelist_version_id, + org.name, + mp.name; \ No newline at end of file