33 lines
1.6 KiB
SQL
33 lines
1.6 KiB
SQL
CREATE OR REPLACE VIEW RV_STORAGE
|
|
(AD_CLIENT_ID, AD_ORG_ID, M_PRODUCT_ID, VALUE, NAME,
|
|
DESCRIPTION, UPC, SKU, C_UOM_ID, M_PRODUCT_CATEGORY_ID,
|
|
CLASSIFICATION, WEIGHT, VOLUME, VERSIONNO, GUARANTEEDAYS,
|
|
GUARANTEEDAYSMIN, M_LOCATOR_ID, M_WAREHOUSE_ID, X, Y,
|
|
Z, QTYONHAND, QTYRESERVED, QTYAVAILABLE, QTYORDERED,
|
|
DATELASTINVENTORY, M_ATTRIBUTESETINSTANCE_ID, M_ATTRIBUTESET_ID, SERNO, LOT,
|
|
M_LOT_ID, GUARANTEEDATE, SHELFLIFEDAYS, GOODFORDAYS, SHELFLIFEREMAININGPCT)
|
|
AS
|
|
SELECT s.AD_Client_ID, s.AD_Org_ID,
|
|
-- Product
|
|
s.M_Product_ID,p.Value,p.Name,p.Description,p.UPC,p.SKU,
|
|
p.C_UOM_ID,p.M_Product_Category_ID,p.Classification, p.Weight,p.Volume,p.VersionNo,
|
|
p.GuaranteeDays,p.GuaranteeDaysMin,
|
|
-- Locator
|
|
s.M_Locator_ID, l.M_Warehouse_ID, l.X, l.Y, l.Z,
|
|
-- Storage
|
|
s.QtyOnHand, s.QtyReserved, s.QtyOnHand-s.QtyReserved AS QtyAvailable,
|
|
s.QtyOrdered, s.DateLastInventory,
|
|
-- Instance
|
|
s.M_AttributeSetInstance_ID, asi.M_AttributeSet_ID, asi.SerNo, asi.Lot, asi.M_Lot_ID,
|
|
asi.GuaranteeDate, -- see PAttributeInstance.java
|
|
daysBetween(asi.GuaranteeDate,getdate()) AS ShelfLifeDays,
|
|
daysBetween(asi.GuaranteeDate,getdate())-p.GuaranteeDaysMin AS GoodForDays,
|
|
CASE WHEN COALESCE(p.GuaranteeDays,0)>0 THEN ROUND((daysBetween(asi.GuaranteeDate,getdate())/p.GuaranteeDays)*100,0) ELSE NULL END AS ShelfLifeRemainingPct
|
|
FROM M_Storage s
|
|
INNER JOIN M_Locator l ON (s.M_Locator_ID=l.M_Locator_ID)
|
|
INNER JOIN M_Product p ON (s.M_Product_ID=p.M_Product_ID)
|
|
LEFT OUTER JOIN M_AttributeSetInstance asi ON (s.M_AttributeSetInstance_ID=asi.M_AttributeSetInstance_ID);
|
|
|
|
|
|
|