diff --git a/REPORTS/OBHOISTLK/Customer_Specific_Report.sql b/REPORTS/OBHOISTLK/Customer_Specific_Report.sql new file mode 100644 index 0000000..d277d44 --- /dev/null +++ b/REPORTS/OBHOISTLK/Customer_Specific_Report.sql @@ -0,0 +1,364 @@ +Select * + from (Select Customer_No, + "Customer Name", + Company, + Site, + E1.Part_No, + Label_1, + Label_2, + Description, + Status, + Cat1, + Cat2, + Decoration, + Inventory, + Incoming_Qty, + "Oldest Lot", + "Open Order", + Safety, + "SO Qty", + Qty_Not_Reserved "Qty Not Reserved", + Remaining_Issue "Rem_Issue", + PO "PO Qty", + Next_Receipt_Date "PO Next Receipt Date", + X_Ref, + "X Ref Description", + E1.Supersedes, + E1.Superseded_By, + Related_Supersedes, + Related_Superseded + from (Select D.Customer_No, + CI.Name "Customer Name", + D.Contract Site, + D.Company, + D.Part_No, + pc.Description, + Inventory_Part_Status_Par_API.Get_Description(i.part_status) Status, + D.Cat1, + Cat2.Cat2, + Deco.Decoration, + X.X_Ref, + X.CATALOG_DESC "X Ref Description", + Q.QTY Inventory, + Q.Qty - Q.Qty_Reserved Qty_Not_Reserved, + Incoming_Qty, + i.supersedes, + INVENTORY_PART_API.Get_Superseded_By(i.CONTRACT, + i.PART_NO) Superseded_By, + Q.Last_Receipt_Date "Oldest Lot", + CO.Open_Order "Open Order", + IPP.Safety_Stock Safety, + WO.QTY "SO Qty", + Remaining_Issue, + D.Label_1, + D.Label_2, + PO.PO, + PO.Next_Receipt_Date, + D.Parent, + ROW_NUMBER() over(Partition by D.Contract, D.Part_No Order By D.Cat1) as Row_Num + From (Select C.Company, + i.Contract, + i.Part_No Parent, + i.Part_No, + C6.Label_1, + C6.Label_2, + ID.Customer_No, + 'FG' as Cat1 + From Inventory_Part i + inner join COMPANY_SITE CS + on i.Contract = CS.Contract + inner join Company_Finance C + on C.Company = CS.Company + inner join (Select PART_NO, + CONTRACT, + ATTR_VALUE_ALPHA Customer_No + from INVENTORY_PART_CHAR_ALL + where CHARACTERISTIC_CODE = '00032' + and ATTR_VALUE_ALPHA = '&Customer_ID') ID + on i.Contract = ID.Contract + and i.Part_No = ID.Part_No + + left join (Select ms.Part_No, + ms.Contract, + Min(COMPONENT_PART) Label_1, + Decode(Min(COMPONENT_PART), + Max(Component_Part), + '', + Max(Component_Part)) Label_2 + From MANUF_STRUCTURE MS + inner join INVENTORY_PART_CHAR_ALL c + on ms.contract = c.contract + and ms.component_part = c.part_no + + where MANUF_STRUCT_ALTERNATE_API.Get_State(ms.contract, + ms.part_no, + ms.eng_chg_level, + ms.bom_type, + ms.alternative_no) = + 'Buildable' + and ms.ALTERNATIVE_NO = '*' + and ms.EFF_PHASE_OUT_DATE is null + and ms.BOM_TYPE_DB = 'M' + and c.CHARACTERISTIC_CODE = '00006' + and c.ATTR_VALUE_ALPHA in + ('IML', + 'PAPER INSERT', + 'HEAT TRANSFER', + 'PSL') + group by ms.Part_No, ms.Contract) C6 + on i.contract = c6.contract + and i.part_no = c6.part_no + + Where i.ENG_ATTRIBUTE in ('00008', '00010') + and i.PART_STATUS in ('A', 'D', 'Q') + + UNION + + Select A.Company, + A.Contract, + B.Part_No Parent, + B.Component_Part Part_No, + B.Component_Part Label_1, + '' as Label_2, + A.Customer_No, + 'RM' as Cat1 + from (Select C.Company, + i.Contract, + i.Part_No, + ID.Customer_No, + 'FG' as Cat1 + From Inventory_Part i + inner join COMPANY_SITE CS + on i.Contract = CS.Contract + inner join Company_Finance C + on C.Company = CS.Company + inner join (Select PART_NO, + CONTRACT, + ATTR_VALUE_ALPHA Customer_No + from INVENTORY_PART_CHAR_ALL + where CHARACTERISTIC_CODE = + '00032' + and ATTR_VALUE_ALPHA = + '&Customer_ID') ID + on i.Contract = ID.Contract + and i.Part_No = ID.Part_No + + Where i.ENG_ATTRIBUTE in ('00008', '00010') + and i.PART_STATUS in ('A', 'D', 'Q')) A + + inner join (Select Contract, Part_No, COMPONENT_PART + from MANUF_STRUCTURE M + Where M.BOM_TYPE_db = 'M' + and M.ALTERNATIVE_NO = '*' + and M.EFF_PHASE_OUT_DATE is null + and OPERATION_NO = '10' + and MANUF_STRUCT_ALTERNATE_API.Get_State(M.contract, + M.part_no, + M.eng_chg_level, + M.bom_type, + M.alternative_no) = + 'Buildable') B + on A.Company = B.Contract + and A.Part_No = B.Part_No + + inner join (Select Contract, PART_NO, ATTR_VALUE_ALPHA + from INVENTORY_PART_CHAR_ALL + where CHARACTERISTIC_CODE = '00006' + and ATTR_VALUE_ALPHA in + ('IML', + 'PAPER INSERT', + 'HEAT TRANSFER', + 'PSL')) C + on B.Contract = C.Contract + and B.Component_Part = C.Part_No + + UNION + Select ic.Contract Company, + ic.Contract, + ic.Part_No Parent, + ic.Part_No, + '' as Label_1, + '' as Label_2, + ic.ATTR_VALUE_ALPHA Customer_No, + 'XX' as Cat1 + from INVENTORY_PART_CHAR_ALL ic + inner join Inventory_Part i + on ic.Contract = i.Contract + and ic.Part_No = i.Part_No + where CHARACTERISTIC_CODE = '00032' + and ATTR_VALUE_ALPHA = '&Customer_ID' + and i.Part_Status in ('A', 'D', 'Q') + + ) D + + inner join CUSTOMER_INFO CI + on D.Customer_No = CI.Customer_ID + inner join Inventory_part i + on D.Contract = i.Contract + and D.Part_No = i.Part_No + inner join Part_Catalog pc + on D.Part_No = pc.Part_No + inner join Inventory_Part_Planning IPP + on D.Contract = IPP.Contract + and D.Part_NO = IPP.Part_No + + left join (Select Contract, + Catalog_No, + CUSTOMER_PART_NO X_Ref, + CATALOG_DESC + from SALES_PART_CROSS_REFERENCE) x + on D.Contract = X.Contract + and D.Part_No = X.Catalog_No + + left join (Select C.Part_No, + C.Contract, + sum(C.BUY_QTY_DUE - C.QTY_SHIPPED) Open_Order + From customer_order_join_cfv C + Where C.objstate in + ('Released', + 'Blocked', + 'Reserved', + 'Picked', + 'PartiallyDelivered') + and C.Customer_No not like ('W%') + Group By C.Part_No, C.Contract) CO + on D.Part_No = CO.Part_No + and D.Contract = CO.Contract + + left join (Select S.Contract, + S.Part_No, + sum(S.QTY_ONHAND) QTY, + sum(S.QTY_RESERVED) Qty_Reserved, + TO_CHAR(min(S.RECEIPT_DATE), 'yyyy-mm-dd') Last_Receipt_Date + From Inventory_part_in_stock_UIV S + inner join Inventory_Part i + on S.Contract = i.Contract + and S.Part_No = i.Part_No + Where S.QTY_ONHAND > 0 + Group by S.Contract, S.Part_No) Q + on D.Part_NO = Q.Part_NO + and D.Contract = Q.Contract + + left join (Select SOURCE_PART_NO, + CONTRACT, + sum(DISPATCH_SOURCE_QTY) Incoming_Qty + From RECEIVABLE_DISPATCH_ADV_LINE + Where STATE = 'Created' + Group by SOURCE_PART_NO, CONTRACT) r + on r.contract = d.contract + and r.SOURCE_PART_NO = d.part_no + + left join (Select Contract, + Part_No, + sum(REMAINING_NET_SUPPLY_QTY) QTY + from Shop_Ord + where State in ('Released', + 'Started', + 'Parked', + 'Reserved') + and order_code_db = 'M' + Group By Contract, Part_No) WO + on D.Contract = WO.Contract + and D.Part_No = WO.Part_No + + left join (Select Contract, + Part_No, + sum(qty_remain_to_issue) Remaining_Issue + from SHOP_MATERIAL_ALLOC_UIV + where SOSTATE in ('Released', + 'Started', + 'Parked', + 'Reserved') + and order_code_db = 'M' + Group By Contract, Part_No) SM + on D.Contract = SM.Contract + and D.Part_No = SM.Part_No + + left join (Select distinct Contract, + Part_No, + CHARACTERISTIC_TEMPLATE_API.GET_DESCRIPTION(INVENTORY_PART_API.Get_Eng_Attribute(contract, + PART_NO)) Cat2 + from INVENTORY_PART_CHAR_ALL) Cat2 + on Cat2.Contract = D.Contract + and Cat2.Part_No = D.Part_No + + left join (Select distinct Contract, + Part_No, + ATTR_VALUE_ALPHA Decoration + from INVENTORY_PART_CHAR_ALL + where CHARACTERISTIC_CODE = '00034') Deco + on Deco.Contract = D.Contract + and Deco.Part_No = D.Part_No + + left join (SELECT Contract, + part_No, + sum(CF$_REM_QTY_RECEIVE) PO, + TO_CHAR(min(PLANNED_RECEIPT_DATE), + 'yyyy-mm-dd') Next_Receipt_Date + FROM purchase_order_line_all_cfv + WHERE state in ('Released', 'Confirmed') + GROUP BY Contract, Part_No) PO + on PO.Contract = D.Contract + and PO.Part_No = D.Part_No + + ) E1 + + left join (Select Q1.*, PS2.Part_No Related_Supersedes + from (Select PS.Contract, + PS.Part_No, + PS.COMPONENT_PART, + IP.SUPERSEDES, + INVENTORY_PART_API.Get_Superseded_By(IP.CONTRACT, + IP.PART_NO) Superseded_By_Comp + From PROD_STRUCTURE PS + inner join Inventory_part_cfv IP + on PS.Contract = IP.Contract + and PS.COMPONENT_PART = IP.Part_No + Where PS.EFF_PHASE_OUT_DATE is null + and PS.BOM_TYPE_db = 'M' + and IP.CF$_PURCHASE_CAT2 in + ('RM07A - IML Label', + 'RM04P - CARDBOARD INSERT - NO COST', + 'RM07B - PSL Label')) Q1 + + inner join PROD_STRUCTURE PS2 + on Q1.Contract = PS2.Contract + and Q1.Superseded_By_Comp = PS2.Component_Part + + where PS2.EFF_PHASE_OUT_DATE is null + and PS2.BOM_TYPE_db = 'M') S1 + on E1.Part_No = S1.Part_No + and E1.Site = S1.Contract + + left join (Select Q1.*, PS2.Part_No Related_Superseded + from (Select PS.Contract, + PS.Part_No, + PS.COMPONENT_PART, + IP.SUPERSEDES, + INVENTORY_PART_API.Get_Superseded_By(IP.CONTRACT, + IP.PART_NO) Superseded_By_Comp + + from PROD_STRUCTURE PS + inner join Inventory_part_cfv IP + on PS.Contract = IP.Contract + and PS.COMPONENT_PART = IP.Part_No + + Where PS.EFF_PHASE_OUT_DATE is null + and PS.BOM_TYPE_db = 'M' + and IP.CF$_PURCHASE_CAT2 in + ('RM07A - IML Label', + 'RM04P - CARDBOARD INSERT - NO COST', + 'RM07B - PSL Label')) Q1 + inner join PROD_STRUCTURE PS2 + on Q1.Contract = PS2.Contract + and Q1.Supersedes = PS2.Component_Part + where PS2.EFF_PHASE_OUT_DATE is null + and PS2.BOM_TYPE_db = 'M') S2 + on E1.Part_No = S2.Part_No + and E1.Site = S2.Contract + + Where Row_Num = 1 + and COMPANY LIKE NVL('&COMPANY', '%') + Order By Parent, Label_1, Cat1, Site) + +-- Lov reference is removed due to limitations in IFS cloud \ No newline at end of file