-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEOMStockLinesProcExecIm.sql
More file actions
215 lines (200 loc) · 11.9 KB
/
EOMStockLinesProcExecIm.sql
File metadata and controls
215 lines (200 loc) · 11.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
/* First run this file with variables set in header - declare variables - drop tables, recreate tables, insert into tables - then query tables */
/* EOM_INVOICING_CREATE_TABLES.sql */
--Admin Order Data by Parent or Customer
/*decalre variables These are being declared via the stored procedure - just need to redeclare cust so as we can get the rates*/
var cust2 varchar2(20)
exec eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in := 'TABCORP'
var nx NUMBER
EXEC :nx := 1810105
var cust varchar2(20)
exec :cust := 'TABCORP'
var ordernum varchar2(20)
exec :ordernum := '1363806'
var stock varchar2(20)
exec :stock := 'COURIER*'
var stock2 varchar2(20)
exec :stock2 := 'FEE*'
var source varchar2(20)
exec :source := 'BSPRINTNSW'
var sAnalysis varchar2(20) /*VerbalOrderEntryFee*/
exec SELECT RM_ANAL INTO :sAnalysis FROM RM where RM_CUST = :cust;
var anal varchar2(20)
exec :anal := '72'
var start_date varchar2(20)
exec :start_date := To_Date('2-Apr-2014')
var end_date varchar2(20)
exec :end_date := To_Date('8-Apr-2014')
--EXEC EOM_INVOICING();--:cust,:ordernum,:stock,:source,:sAnalysis,:start_date,:end_date);
/*insert into temp admin data table*/
INSERT into tbl_AdminData
(Customer ,Parent ,CostCentre ,OrderNum ,OrderwareNum ,CustRef ,Pickslip ,PickNum , DespatchNote ,DespatchDate ,FeeType ,Item ,Description ,Qty ,UOI ,UnitPrice ,OW_Unit_Sell_Price ,Sell_Excl ,Sell_Excl_Total ,Sell_Incl ,Sell_Incl_Total ,ReportingPrice ,Address ,Address2 ,Suburb ,State ,Postcode , DeliverTo ,AttentionTo ,Weight ,Packages ,OrderSource ,ILNOTE2 ,NILOCN ,NIAVAILACTUAL ,CountOfStocks , Email , Brand , OwnedBy , sProfile , WaiveFee , Cost )
/*insert into temp admin data table*/
/*Stocks*/
CREATE OR REPLACE PROCEDURE STOCK_DESP_LIST
(
sdl_cust_in IN IM.IM_CUST%TYPE,
sdl_cust_not_in IN IM.IM_CUST%TYPE,
sdl_nx_ext_type_in IN NI.NI_NV_EXT_TYPE%TYPE,
sdl_stock_not_in IN IM.IM_STOCK%TYPE,
sdl_stock_not_in2 IN IM.IM_STOCK%TYPE,
sdl_start_date_in IN ST.ST_DESP_DATE%TYPE,
sdl_end_date_in IN ST.ST_DESP_DATE%TYPE
) IS
/*DECLARE
sdl_cust_in varchar2(20);
sdl_cust_not_in varchar2(20);
sdl_nx_ext_type_in varchar2(20);
sdl_stock_not_in varchar2(20);
sdl_stock_not_in2 varchar2(20);
sdl_start_date_in varchar2(20);
sdl_end_date_in varchar2(20); */
BEGIN
EXECUTE IMMEDIATE
'SELECT IM_STOCK FROM IM WHERE IM_CUST = 'ZIONS';
End;
q'{SELECT s.SH_CUST AS "Customer",
r.RM_PARENT AS "Parent",
CASE WHEN i.IM_CUST <> eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in THEN s.SH_SPARE_STR_4
WHEN i.IM_CUST = eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in THEN i.IM_XX_COST_CENTRE01
ELSE i.IM_XX_COST_CENTRE01
END AS "CostCentre",
s.SH_ORDER AS "Order",
s.SH_SPARE_STR_5 AS "OrderwareNum",
s.SH_CUST_REF AS "CustomerRef",
t.ST_PICK AS "Pickslip",
d.SD_XX_PICKLIST_NUM AS "PickNum",
t.ST_PSLIP AS "DespatchNote",
substr(To_Char(t.ST_DESP_DATE),0,10) AS "DespatchDate",
CASE WHEN d.SD_STOCK IS NOT NULL THEN d.SD_STOCK
ELSE NULL
END AS "FeeType",
d.SD_STOCK AS "Item",
d.SD_DESC AS "Description",
l.SL_PSLIP_QTY AS "Qty",
d.SD_QTY_UNIT AS "UOI",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 0 THEN d.SD_SELL_PRICE
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 1 THEN n.NI_SELL_VALUE/n.NI_NX_QUANTITY
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NOT NULL THEN eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NULL THEN d.SD_XX_OW_UNIT_PRICE
ELSE NULL
END AS "Batch/UnitPrice",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' THEN To_Number(i.IM_REPORTING_PRICE)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' THEN eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND (SELECT vUnitPrice FROM Tmp_Admin_Data_BreakPrices WHERE vIIStock = d.SD_STOCK AND vIICust = r.RM_GROUP_CUST) IS NULL THEN d.SD_XX_OW_UNIT_PRICE
ELSE NULL
END AS "OWUnitPrice",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 0 THEN d.SD_SELL_PRICE * d.SD_QTY_DESP
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 1 THEN (n.NI_SELL_VALUE/n.NI_NX_QUANTITY) * d.SD_QTY_DESP
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NOT NULL THEN eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) * d.SD_QTY_DESP
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NULL THEN d.SD_XX_OW_UNIT_PRICE * d.SD_QTY_DESP
ELSE NULL
END AS "DExcl",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' THEN To_Number(i.IM_REPORTING_PRICE)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' THEN eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NULL THEN d.SD_XX_OW_UNIT_PRICE
ELSE NULL
END AS "Excl_Total",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 0 THEN (d.SD_SELL_PRICE * d.SD_QTY_DESP) * 1.1
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 1 THEN ((n.NI_SELL_VALUE/n.NI_NX_QUANTITY) * d.SD_QTY_DESP) * 1.1
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NOT NULL THEN (eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) * d.SD_QTY_DESP) * 1.1
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NULL THEN (d.SD_XX_OW_UNIT_PRICE * d.SD_QTY_DESP) * 1.1
ELSE NULL
END AS "DIncl",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 0 THEN (d.SD_SELL_PRICE * d.SD_QTY_DESP) * 1.1
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND i.IM_OWNED_BY = 1 THEN ((n.NI_SELL_VALUE/n.NI_NX_QUANTITY) * d.SD_QTY_DESP) * 1.1
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NOT NULL THEN (eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) * d.SD_QTY_DESP) * 1.1
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NULL THEN (d.SD_XX_OW_UNIT_PRICE * d.SD_QTY_DESP) * 1.1
ELSE NULL
END AS "Incl_Total",
CASE WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST <> ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' THEN To_Number(i.IM_REPORTING_PRICE)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' THEN eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK)
WHEN d.SD_STOCK IS NOT NULL AND i.IM_CUST = ' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_not_in || ' AND eom_report_pkg.F_BREAK_UNIT_PRICE2(r.RM_GROUP_CUST,d.SD_STOCK) IS NULL THEN d.SD_XX_OW_UNIT_PRICE
ELSE NULL
END AS "ReportingPrice",
s.SH_ADDRESS AS "Address",
s.SH_SUBURB AS "Address2",
s.SH_CITY AS "Suburb",
s.SH_STATE AS "State",
s.SH_POST_CODE AS "Postcode",
s.SH_NOTE_1 AS "DeliverTo",
s.SH_NOTE_2 AS "AttentionTo" ,
t.ST_WEIGHT AS "Weight",
t.ST_PACKAGES AS "Packages",
s.SH_SPARE_DBL_9 AS "OrderSource",
NULL AS "Pallet/Shelf Space", /*Pallet/Space*/
NULL AS "Locn", /*Locn*/
0 AS "AvailSOH",/*Avail SOH*/
0 AS "CountOfStocks",
CASE WHEN regexp_substr(s.SH_SPARE_STR_3,'[a-z]+', 1, 2) IS NOT NULL THEN s.SH_SPARE_STR_3 || '@' || s.SH_SPARE_STR_1
ELSE ''
END AS Email,
i.IM_BRAND AS Brand,
NULL AS OwnedBy,
NULL AS sProfile,
NULL AS WaiveFee,
NULL AS Cost
FROM PWIN175.SD d
RIGHT JOIN PWIN175.SH s ON s.SH_ORDER = d.SD_ORDER
LEFT JOIN PWIN175.ST t ON t.ST_PICK = d.SD_LAST_PICK_NUM
LEFT JOIN PWIN175.SL l ON l.SL_PICK = t.ST_PICK
INNER JOIN PWIN175.RM r ON r.RM_CUST = s.SH_CUST
INNER JOIN PWIN175.IM i ON i.IM_STOCK = d.SD_STOCK
INNER JOIN PWIN175.NI n ON n.NI_NV_EXT_KEY = l.SL_UID
WHERE NI_NV_EXT_TYPE = ' || eom_report_pkg.STOCK_DESP_LIST.sdl_nx_ext_type_in || 'AND NI_STRENGTH = 3 AND NI_DATE = t.ST_DESP_DATE AND NI_STOCK = d.SD_STOCK AND NI_STATUS <> 0
AND s.SH_STATUS <> 3
AND i.IM_CUST IN (' ||eom_report_pkg.STOCK_DESP_LIST.sdl_cust_in|| ')
AND s.SH_ORDER = t.ST_ORDER
--AND d.SD_STOCK NOT IN (' || eom_report_pkg.STOCK_DESP_LIST.stock,eom_report_pkg.STOCK_DESP_LIST.stock2 || ')
AND t.ST_DESP_DATE >= ' ||eom_report_pkg.STOCK_DESP_LIST.start_date || ' AND t.ST_DESP_DATE <= ' ||eom_report_pkg.STOCK_DESP_LIST.end_date || '
AND d.SD_LAST_PICK_NUM = t.ST_PICK
GROUP BY s.SH_CUST,
s.SH_NOTE_1,
s.SH_CAMPAIGN,
s.SH_SPARE_STR_4,
i.IM_XX_COST_CENTRE01,
i.IM_CUST,
r.RM_PARENT,
s.SH_ORDER,
t.ST_PICK,
d.SD_XX_PICKLIST_NUM,
i.IM_REPORTING_PRICE,
i.IM_NOMINAL_VALUE,
t.ST_PSLIP,
t.ST_DESP_DATE,
d.SD_QTY_ORDER,
d.SD_QTY_UNIT,
d.SD_STOCK,
d.SD_DESC,
d.SD_LINE,
d.SD_EXCL,
d.SD_INCL,
d.SD_SELL_PRICE,
d.SD_XX_OW_UNIT_PRICE,
d.SD_QTY_ORDER,
d.SD_QTY_ORDER,
s.SH_ADDRESS,
s.SH_SUBURB,
s.SH_CITY,
s.SH_STATE,
s.SH_POST_CODE,
s.SH_NOTE_1,
s.SH_NOTE_2,
t.ST_WEIGHT,
t.ST_PACKAGES,
s.SH_SPARE_DBL_9,
r.RM_GROUP_CUST,
r.RM_PARENT,
s.SH_SPARE_STR_5,
s.SH_CUST_REF,s.SH_SPARE_STR_3,s.SH_SPARE_STR_1,
d.SD_SELL_PRICE,
i.IM_OWNED_BY,
d.SD_QTY_DESP,
n.NI_SELL_VALUE,
n.NI_NX_QUANTITY,
i.IM_BRAND,
l.SL_PSLIP_QTY }';
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('ERROR displaying Table');
END STOCK_DESP_LIST;
EXECUTE STOCK_DESP_LIST('TABCORP','TABCORP',1810105,'COURIER', 'FEE', '1-Apr-2014','7-Apr_2014')