187 lines
7.5 KiB
MySQL
187 lines
7.5 KiB
MySQL
|
CREATE TABLE compiere.MPC_Order_Node_Trl
|
||
|
(
|
||
|
ad_language varchar(6) NOT NULL,
|
||
|
mpc_order_node_id int4 NOT NULL,
|
||
|
mpc_order_id int4 NOT NULL,
|
||
|
ad_client_id int4 NOT NULL,
|
||
|
ad_org_id int4 NOT NULL,
|
||
|
isactive char(1) NOT NULL DEFAULT 'Y'::bpchar,
|
||
|
created timestamp NOT NULL DEFAULT ('now'::text)::timestamp(6) with time zone,
|
||
|
createdby int4 NOT NULL,
|
||
|
updated timestamp NOT NULL DEFAULT ('now'::text)::timestamp(6) with time zone,
|
||
|
updatedby int4 NOT NULL,
|
||
|
name varchar(60) NOT NULL,
|
||
|
description varchar(255),
|
||
|
help varchar(2000),
|
||
|
istranslated char(1) NOT NULL DEFAULT 'N'::bpchar,
|
||
|
CONSTRAINT mpc_order_node_trl_key PRIMARY KEY (ad_language, mpc_order_node_id),
|
||
|
CONSTRAINT ad_language_ordernodetrl FOREIGN KEY (ad_language) REFERENCES compiere.ad_language (ad_language) ON UPDATE NO ACTION ON DELETE NO ACTION,
|
||
|
CONSTRAINT mpc_ordernodetrl FOREIGN KEY (mpc_order_node_id, mpc_order_id) REFERENCES compiere.mpc_order_node (mpc_order_node_id, mpc_order_id) ON UPDATE NO ACTION ON DELETE CASCADE
|
||
|
)
|
||
|
WITH OIDS;
|
||
|
|
||
|
CREATE TABLE compiere.mpc_order_workflow_trl
|
||
|
(
|
||
|
mpc_order_workflow_id int4 NOT NULL,
|
||
|
mpc_order_id int4 NOT NULL,
|
||
|
ad_language varchar(6) NOT NULL,
|
||
|
ad_client_id int4 NOT NULL,
|
||
|
ad_org_id int4 NOT NULL,
|
||
|
isactive char(1) NOT NULL DEFAULT 'Y'::bpchar,
|
||
|
created timestamp NOT NULL DEFAULT ('now'::text)::timestamp(6) with time zone,
|
||
|
createdby int4 NOT NULL,
|
||
|
updated timestamp NOT NULL DEFAULT ('now'::text)::timestamp(6) with time zone,
|
||
|
updatedby int4 NOT NULL,
|
||
|
name varchar(60) NOT NULL,
|
||
|
description varchar(255),
|
||
|
help varchar(2000),
|
||
|
istranslated char(1) NOT NULL DEFAULT 'N'::bpchar,
|
||
|
CONSTRAINT mpc_order_workflow_trl_key PRIMARY KEY (ad_language, mpc_order_workflow_id),
|
||
|
CONSTRAINT ad_language_workflowtrl FOREIGN KEY (ad_language) REFERENCES compiere.ad_language (ad_language) ON UPDATE NO ACTION ON DELETE NO ACTION,
|
||
|
CONSTRAINT mpc_order_workflowtrl FOREIGN KEY (mpc_order_workflow_id, mpc_order_id) REFERENCES compiere.mpc_order_workflow (mpc_order_workflow_id, mpc_order_id) ON UPDATE NO ACTION ON DELETE CASCADE
|
||
|
)
|
||
|
WITH OIDS;
|
||
|
|
||
|
CREATE OR REPLACE VIEW RV_MPC_Order AS
|
||
|
SELECT o.AD_Client_ID, o.AD_Org_ID,o.IsActive,o.Created, o.CreatedBy, o.Updated, o.UpdatedBy,
|
||
|
o.MPC_Order_ID, o.DocumentNo,o.DocStatus,o.M_Warehouse_ID,o.M_Product_ID,o.QtyEntered,
|
||
|
o.QtyReject,o.QtyScrap,o.QtyBatchs, o.QtyBatchSize,o.DateOrdered, o.DatePromised,o.DateStart,
|
||
|
o.DateStartSchedule,o.DateFinish,o.DateFinishSchedule,o.DateConfirm,o.DateDelivered,o.Lot,
|
||
|
o.MPC_Product_BOM_ID,o.AD_Workflow_ID, (select p.Weight from M_Product p where p.M_Product_ID=o.M_Product_ID) as Weight
|
||
|
FROM MPC_Order o;
|
||
|
|
||
|
CREATE OR REPLACE VIEW RV_MPC_Order_BOMLine AS
|
||
|
SELECT
|
||
|
obl.AD_Client_ID ,
|
||
|
obl.AD_Org_ID ,
|
||
|
obl.CreatedBy ,
|
||
|
obl.UpdatedBY ,
|
||
|
obl.Updated ,
|
||
|
obl.Created ,
|
||
|
obl.IsActive ,
|
||
|
obl.MPC_Order_BOM_ID,
|
||
|
obl.MPC_Order_BOMLine_ID ,
|
||
|
obl.MPC_Order_ID ,
|
||
|
obl.IsCritical ,
|
||
|
obl.ComponentType,
|
||
|
obl.M_Product_ID ,
|
||
|
obl.C_UOM_ID ,
|
||
|
ROUND(obl.QtyRequiered ,4) AS QtyRequiered ,
|
||
|
ROUND(BOMQtyReserved(obl.M_Product_ID,obl.M_Warehouse_ID,0), 4) AS QtyReserved ,
|
||
|
ROUND(BOMQtyAvailable(obl.M_Product_ID,obl.M_Warehouse_ID,0),4) AS QtyAvailable ,
|
||
|
ROUND(BOMQtyOnHand(obl.M_Product_ID,obl.M_Warehouse_ID,0),4) AS QtyOnHand ,
|
||
|
obl.M_Warehouse_ID ,
|
||
|
ROUND(obl.QtyBom,4) AS QtyBom,
|
||
|
obl.isQtyPercentage ,
|
||
|
ROUND(obl.QtyBatch,4) AS QtyBatch,
|
||
|
CASE WHEN o.QtyBatchs = 0 THEN 1 ELSE ROUND( obl.QtyRequiered / o.QtyBatchs, 4) END AS QtyBatchSize
|
||
|
--DECODE(o.QtyBatchs , 0 , 0 , ROUND( obl.QtyRequiered / o.QtyBatchs, 4) ) AS QtyBatchSize
|
||
|
FROM MPC_Order_BOMLine obl INNER JOIN MPC_Order o ON (o.MPC_Order_ID = obl.MPC_Order_ID);
|
||
|
|
||
|
--DROP VIEW RV_MPC_Order_Storage;
|
||
|
CREATE OR REPLACE VIEW RV_MPC_Order_Storage AS
|
||
|
SELECT
|
||
|
obl.AD_Client_ID ,
|
||
|
obl.AD_Org_ID ,
|
||
|
obl.CreatedBy ,
|
||
|
obl.UpdatedBY ,
|
||
|
obl.Updated ,
|
||
|
obl.Created ,
|
||
|
obl.IsActive ,
|
||
|
obl.MPC_Order_BOM_ID,
|
||
|
obl.MPC_Order_BOMLine_ID ,
|
||
|
obl.MPC_Order_ID ,
|
||
|
obl.IsCritical ,
|
||
|
obl.M_Product_ID ,
|
||
|
(Select p.Name FROM M_Product p Where p.M_Product_ID=o.M_Product_ID) as Name,
|
||
|
obl.C_UOM_ID ,
|
||
|
s.QtyOnhand ,
|
||
|
ROUND(obl.QtyRequiered ,4) AS QtyRequiered ,
|
||
|
CASE WHEN o.QtyBatchs = 0 THEN 1 ELSE ROUND( obl.QtyRequiered / o.QtyBatchs, 4) END AS QtyBatchSize,
|
||
|
--DECODE(o.QtyBatchs , 0 , 0 , ROUND( obl.QtyRequiered / o.QtyBatchs, 4) ) AS QtyBatchSize,
|
||
|
ROUND(BOMQtyReserved(obl.M_Product_ID,obl.M_Warehouse_ID,0), 4) AS QtyReserved ,
|
||
|
ROUND(BOMQtyAvailable(obl.M_Product_ID,obl.M_Warehouse_ID,0),4) AS QtyAvailable ,
|
||
|
obl.M_Warehouse_ID ,
|
||
|
obl.QtyBom ,
|
||
|
obl.isQtyPercentage ,
|
||
|
ROUND(obl.QtyBatch,4) AS QtyBatch ,
|
||
|
l.M_Locator_ID ,
|
||
|
s.m_attributesetinstance_id,
|
||
|
l.x ,
|
||
|
l.y ,
|
||
|
l.z
|
||
|
FROM MPC_Order_BOMLine obl INNER JOIN MPC_Order o ON (o.MPC_Order_ID = obl.MPC_Order_ID) LEFT OUTER JOIN M_Storage s ON ( s.M_Product_ID = obl.M_Product_ID AND s.QtyOnHand <> 0 AND obl.M_Warehouse_ID = (SELECT ld.M_Warehouse_ID FROM M_Locator ld WHERE s.M_Locator_ID=ld.M_Locator_ID)) LEFT OUTER JOIN M_Locator l ON (l.M_Locator_ID = s.M_Locator_ID) ORDER BY obl.M_Product_ID
|
||
|
;
|
||
|
|
||
|
CREATE OR REPLACE VIEW RV_MPC_Order_Transactions AS
|
||
|
SELECT DISTINCT o.AD_Client_ID,o.AD_Org_ID, o.IsActive, o.Created, o.CreatedBy, o.UpdatedBy, o.Updated,o.DocumentNo,ol.M_Product_ID, mt.M_Locator_ID,mt.MovementDate,o.MPC_Order_ID,
|
||
|
o.QtyDelivered, o.QtyScrap ,ol.QtyDelivered AS QtyDeliveredLine , (o.QtyDelivered * ol.QtyBatch)/100 AS QtyIssueShouldbe,
|
||
|
ol.QtyScrap AS QtyScrapLine , (o.QtyScrap * ol.QtyBatch)/100 AS QtyIssueScrapShouldBe , mt.CreatedBy AS CreatedByIssue, mt.UpdatedBy AS UpdatedByIssue,
|
||
|
(SELECT SUM(t.MovementQty) FROM M_Transaction t WHERE t.MPC_Order_BOMLine_ID=ol.MPC_Order_BOMLine_ID) AS QtyToDeliver,
|
||
|
((((o.QtyDelivered + o.QtyScrap) * ol.QtyBatch)/100) + (SELECT SUM(t.MovementQty) FROM M_Transaction t WHERE t.MPC_Order_BOMLine_ID = ol.MPC_Order_BOMLine_ID)) AS DifferenceQty
|
||
|
FROM MPC_Order o INNER JOIN MPC_Order_BOMLine ol ON (ol.MPC_Order_ID=o.MPC_Order_ID) LEFT JOIN M_Transaction mt ON( mt.MPC_Order_BOMLine_ID = ol.MPC_Order_BOMLine_ID)
|
||
|
;
|
||
|
|
||
|
--DROP VIEW RV_MPC_PRODUCT_BOMLINE ;
|
||
|
--DROP VIEW RV_MPC_PRODUCT_BOMLINE ;
|
||
|
CREATE OR REPLACE VIEW RV_MPC_PRODUCT_BOMLINE AS
|
||
|
SELECT
|
||
|
t.SeqNo,
|
||
|
t.LevelNo,
|
||
|
t.Levels,
|
||
|
t.AD_Client_ID ,
|
||
|
t.AD_Org_ID ,
|
||
|
t.CreatedBy ,
|
||
|
t.UpdatedBy ,
|
||
|
t.Updated ,
|
||
|
t.Created ,
|
||
|
t.AD_PInstance_ID,
|
||
|
bl.IsActive ,
|
||
|
bl.MPC_Product_BOM_ID,
|
||
|
bl.MPC_Product_BOMLine_ID ,
|
||
|
bl.Description,
|
||
|
bl.IsCritical ,
|
||
|
bl.ComponentType,
|
||
|
t.M_Product_ID ,
|
||
|
bl.C_UOM_ID ,
|
||
|
bl.IssueMethod,
|
||
|
bl.Line,
|
||
|
bl.M_AttributeSetInstance_ID,
|
||
|
bl.Scrap,
|
||
|
bl.ValidFrom,
|
||
|
bl.ValidTo,
|
||
|
bl.QtyBom,
|
||
|
bl.QtyBatch,
|
||
|
bl.isQtyPercentage
|
||
|
FROM MPC_Product_BOMLine bl RIGHT JOIN T_BOMLine t ON (t.MPC_Product_BOMLine_ID = bl.MPC_Product_BOMLine_ID) ORDER BY SeqNo ;
|
||
|
create view compiere.mpc_order_receipt_issue as
|
||
|
select
|
||
|
obl.mpc_order_bomline_id,
|
||
|
obl.iscritical,
|
||
|
p.value,
|
||
|
obl.m_product_id,
|
||
|
mos.name as productname,
|
||
|
mos.m_attributesetinstance_id,
|
||
|
asi.description as instancename,
|
||
|
mos.c_uom_id,
|
||
|
u.name as uomname,
|
||
|
obl.qtyrequiered,
|
||
|
obl.qtyreserved as qtyreserved_order,
|
||
|
mos.qtyonhand,
|
||
|
mos.qtyreserved as qtyreserved_storage,
|
||
|
mos.qtyavailable,
|
||
|
mos.m_locator_id,
|
||
|
mos.m_warehouse_id,
|
||
|
w.name as warehousename,
|
||
|
mos.qtybom,
|
||
|
mos.isqtypercentage,
|
||
|
mos.qtybatch,
|
||
|
obl.ComponentType,
|
||
|
mos.QtyRequiered - obl.QtyDelivered AS QtyOpen,
|
||
|
obl.mpc_order_id
|
||
|
from compiere.rv_mpc_order_storage mos
|
||
|
inner join compiere.mpc_order_bomline obl on mos.mpc_order_bomline_id = obl.mpc_order_bomline_id
|
||
|
inner join compiere.m_attributesetinstance asi on mos.m_attributesetinstance_id = asi.m_attributesetinstance_id
|
||
|
inner join compiere.c_uom u on mos.c_uom_id = u.c_uom_id
|
||
|
inner join compiere.m_product p on mos.m_product_id = p.m_product_id
|
||
|
inner join compiere.m_warehouse w on mos.m_warehouse_id = w.m_warehouse_id;
|