Add: create Customer_Specific_Report.sql for generating detailed customer-specific reports with inventory and order information
parent
b343184028
commit
4e5154792b
@ -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
|
||||||
Loading…
Reference in New Issue