Source: DMF/PuC/AIF/DR1 scripts/inventory_adjustment.sql
-- INVENTORY ADJUSTMENTS --
-- 1. Insert into CTRL (ORI_INV_ADJUST_CTRL) table:
INSERT INTO ORI_INV_ADJUST_CTRL(ITEM
,ORG_NUM
,DAY_DT
,REASON_CODE
,INVADJ_TYPE_CODE
,INVADJ_QTY
,INVADJ_COST_AMT_LCL
,INVADJ_RTL_AMT_LCL
,DOC_CURR_CODE
,LOC_CURR_CODE
,DATASOURCE_NUM_ID)
SELECT
m.MATNR ITEM,
CASE
WHEN sc.STORE IS NOT NULL THEN
LTRIM(m.WERKS, '0')
ELSE
LTRIM(w.V_WH, '0')
END ORG_NUM,
TO_DATE(m.BUDAT_MKPF, 'YYYYMMDD') DAY_DT,
TO_CHAR(rx.ORACLE_CODE) REASON_CODE,
'22' INVADJ_TYPE_CODE,
CASE
WHEN m.SHKZG = 'H' THEN
-ABS(m.MENGE)
WHEN m.SHKZG = 'S' THEN
ABS(m.MENGE)
ELSE
m.MENGE
END INVADJ_QTY,
m.DMBTR INVADJ_COST_AMT_LCL,
(m.MENGE * current_price) INVADJ_RTL_AMT_LCL,
m.WAERS DOC_CURR_CODE,
'EUR' LOC_CURR_CODE,
1 DATASOURCE_NUM_ID
FROM sap_slt_prod_pv1.MSEG m
JOIN inv_adjustment_reason_xref rx ON rx.SAP_CODE = m.BWART
JOIN item_master_ctrl im
ON im.CTRL_STATUS = 'C'
AND im.ITEM = m.MATNR
LEFT JOIN store_add_ctrl sc ON sc.CTRL_STATUS = 'C' AND LTRIM(sc.STORE, '0') = LTRIM(m.WERKS, '0') /* STORE control (C) */
LEFT JOIN (SELECT wc.WH, wx.V_WH
FROM wh_ctrl wc,
xref_wh wx
Where wc.CTRL_STATUS = 'C'
AND wx.wh = wc.WH) w ON LTRIM(w.WH, '0') = LTRIM(m.WERKS, '0')
LEFT JOIN mv_current_price cp
ON cp.ITEM = m.MATNR
AND cp.STORE = sc.STORE
WHERE ((m.BWART IN ('551', '911', 'Z51', '552', '912', 'Z52', 'Z71', 'Z72', '701', '702')) or (m.BWART = '101' AND m.XBLNR_MKPF LIKE 'AUTO%'))
AND m.BUDAT_MKPF >= '20240101'
AND (sc.STORE IS NOT NULL OR (W.WH IS NOT NULL AND w.V_WH IS NOT NULL))
UNION ALL
SELECT
xi.ITEM_PV1 as ITEM,
LTRIM(m.WERKS, '0') ORG_NUM,
TO_DATE(m.BUDAT_MKPF, 'YYYYMMDD') DAY_DT,
TO_CHAR(rx.ORACLE_CODE) REASON_CODE,
'22' INVADJ_TYPE_CODE,
CASE
WHEN m.SHKZG = 'H' THEN
-ABS(m.MENGE)
WHEN m.SHKZG = 'S' THEN
ABS(m.MENGE)
ELSE
m.MENGE
END INVADJ_QTY,
m.DMBTR INVADJ_COST_AMT_LCL,
NULL INVADJ_RTL_AMT_LCL,
m.WAERS DOC_CURR_CODE,
'EUR' LOC_CURR_CODE,
1 DATASOURCE_NUM_ID
FROM sap_slt_prod_pr1.MSEG m
JOIN inv_adjustment_reason_xref rx ON rx.SAP_CODE = m.BWART
/* PR1 -> PV1 item */
JOIN xref_item_ibc_retail xi ON ITEM_PR1 = m.MATNR
JOIN item_master_ctrl im
ON im.CTRL_STATUS = 'C'
AND im.ITEM = xi.ITEM_PV1
LEFT JOIN (SELECT wc.WH, wx.V_WH
FROM wh_ctrl wc,
xref_wh wx
WHERE wc.CTRL_STATUS = 'C'
AND wx.wh = wc.WH) w ON LTRIM(w.WH, '0') = LTRIM(m.WERKS, '0')
WHERE ((m.BWART IN ('551', '911', 'Z51', '552', '912', 'Z52', 'Z71', 'Z72', '701', '702')) or (m.BWART = '101' AND m.XBLNR_MKPF LIKE 'AUTO%'))
AND m.BUDAT_MKPF >= '20240101'
AND W.WH IS NOT NULL
AND w.V_WH IS NOT NULL;
-- 3. Export inventory.csv
python oracleExport_adjustment.py