[Home] [Help]
PACKAGE BODY: APPS.OEP_CMERGE_OEPIC
Source
1 PACKAGE BODY OEP_CMERGE_OEPIC AS
2 /* $Header: oepicpb.pls 115.1 99/07/16 08:27:54 porting shi $ */
3
4
5 /*---------------------------- PRIVATE VARIABLES ----------------------------*/
6 g_count NUMBER := 0;
7
8
9 /*--------------------------- PRIVATE ROUTINES ------------------------------*/
10
11 PROCEDURE oe_pr (req_id NUMBER, set_num NUMBER, process_mode VARCHAR2) is
12
13 CURSOR c1 is
14 select picking_rule
15 from so_picking_rules
16 where site_use_id in (select m.duplicate_site_id
17 from ra_customer_merges m
18 where m.process_flag = 'N'
19 and m.request_id = req_id
20 and m.set_number = set_num)
21 for update nowait;
22
23 CURSOR c2 is
24 select picking_rule
25 from so_picking_rules
26 where customer_id in (select m.duplicate_id
27 from ra_customer_merges m
28 where m.process_flag = 'N'
29 and m.request_id = req_id
30 and m.set_number = set_num)
31 for update nowait;
32
33 BEGIN
34
35 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PR()+' );
36
37 /*-----------------------------+
38 | SO_PICKING_RULES |
39 +-----------------------------*/
40 /* both customer and site level */
41
42 IF( process_mode = 'LOCK' ) THEN
43
44 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
45 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_RULES', FALSE );
46
47 open c1;
48 close c1;
49
50 open c2;
51 close c2;
52
53 ELSE
54
55
56 /* site level update */
57 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
58 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_RULES', FALSE );
59
60 UPDATE SO_PICKING_RULES a
61 set (site_use_id) = (select distinct m.customer_site_id
62 from ra_customer_merges m
63 where a.site_use_id =
64 m.duplicate_site_id
65 and m.request_id = req_id
66 and m.process_flag = 'N'
67 and m.set_number = set_num),
68 last_update_date = sysdate,
69 last_updated_by = arp_standard.profile.user_id,
70 last_update_login = arp_standard.profile.last_update_login
71 where site_use_id in (select m.duplicate_site_id
72 from ra_customer_merges m
73 where m.process_flag = 'N'
74 and m.request_id = req_id
75 and m.set_number = set_num);
76
77 g_count := sql%rowcount;
78
79 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
80 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
81
82 /* customer level update */
83 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
84 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_RULES', FALSE );
85
86 UPDATE SO_PICKING_RULES a
87 set customer_id = (select distinct m.customer_id
88 from ra_customer_merges m
89 where a.customer_id =
90 m.duplicate_id
91 and m.process_flag = 'N'
92 and m.request_id = req_id
93 and m.set_number = set_num),
94 last_update_date = sysdate,
95 last_updated_by = arp_standard.profile.user_id,
96 last_update_login = arp_standard.profile.last_update_login
97 where customer_id in (select m.duplicate_id
98 from ra_customer_merges m
99 where m.process_flag = 'N'
100 and m.request_id = req_id
101 and m.set_number = set_num);
102
103 g_count := sql%rowcount;
104
105 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
106 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
107
108 END IF;
109
110 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PR()-' );
111
112
113 EXCEPTION
114 when others then
115 arp_message.set_error( 'OEP_CMERGE_OEPIC.OE_PR');
116 raise;
117
118 END;
119
120
121 PROCEDURE oe_pb (req_id NUMBER, set_num NUMBER, process_mode VARCHAR2) is
122
123 CURSOR c1 is
124 select batch_id
125 from so_picking_batches
126 where site_use_id in (select m.duplicate_site_id
127 from ra_customer_merges m
128 where m.process_flag = 'N'
129 and m.request_id = req_id
130 and m.set_number = set_num)
131 for update nowait;
132
133 CURSOR c2 is
134 select batch_id
135 from so_picking_batches
136 where customer_id in (select m.duplicate_id
137 from ra_customer_merges m
138 where m.process_flag = 'N'
139 and m.request_id = req_id
140 and m.set_number = set_num)
141 for update nowait;
142
143 BEGIN
144
145 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PB()+' );
146
147 /*-----------------------------+
148 | SO_PICKING_BATCHES |
149 +-----------------------------*/
150 /* both customer and site level */
151
152 IF( process_mode = 'LOCK' ) THEN
153
154 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
155 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_BATCHES', FALSE );
156
157 open c1;
158 close c1;
159
160 open c2;
161 close c2;
162
163 ELSE
164
165
166 /* site level update */
167 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
168 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_BATCHES', FALSE );
169
170 UPDATE SO_PICKING_BATCHES a
171 set (site_use_id) = (select distinct m.customer_site_id
172 from ra_customer_merges m
173 where a.site_use_id =
174 m.duplicate_site_id
175 and m.request_id = req_id
176 and m.process_flag = 'N'
177 and m.set_number = set_num),
178 last_update_date = sysdate,
179 last_updated_by = arp_standard.profile.user_id,
180 last_update_login = arp_standard.profile.last_update_login
181 where site_use_id in (select m.duplicate_site_id
182 from ra_customer_merges m
183 where m.process_flag = 'N'
184 and m.request_id = req_id
185 and m.set_number = set_num);
186
187 g_count := sql%rowcount;
188
189 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
190 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
191
192 /* customer level update */
193 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
194 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_BATCHES', FALSE );
195
196 UPDATE SO_PICKING_BATCHES a
197 set customer_id = (select distinct m.customer_id
198 from ra_customer_merges m
199 where a.customer_id =
200 m.duplicate_id
201 and m.process_flag = 'N'
202 and m.request_id = req_id
203 and m.set_number = set_num),
204 last_update_date = sysdate,
205 last_updated_by = arp_standard.profile.user_id,
206 last_update_login = arp_standard.profile.last_update_login
207 where customer_id in (select m.duplicate_id
208 from ra_customer_merges m
209 where m.process_flag = 'N'
210 and m.request_id = req_id
211 and m.set_number = set_num);
212
213 g_count := sql%rowcount;
214
215 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
216 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
217
218 END IF;
219
220 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PB()-' );
221
222
223 EXCEPTION
224 when others then
225 arp_message.set_error( 'OEP_CMERGE_OEPIC.OE_PB');
226 raise;
227
228 END;
229
230
231
232 PROCEDURE oe_ph (req_id NUMBER, set_num NUMBER, process_mode VARCHAR2) is
233
234 CURSOR c1 is
235 select picking_header_id
236 from so_picking_headers
237 where ship_to_site_use_id in (select m.duplicate_site_id
238 from ra_customer_merges m
239 where m.process_flag = 'N'
240 and m.request_id = req_id
241 and m.set_number = set_num)
242 for update nowait;
243
244 BEGIN
245
246 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PH()+' );
247
248 /*-----------------------------+
249 | SO_PICKING_HEADERS |
250 +-----------------------------*/
251 /* both customer and site level */
252
253 IF( process_mode = 'LOCK' ) THEN
254
255 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
256 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_HEADERS', FALSE );
257
258 open c1;
259 close c1;
260
261 ELSE
262
263
264 /* site level update */
265 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
266 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_HEADERS', FALSE );
267
268 UPDATE SO_PICKING_HEADERS a
269 set (ship_to_site_use_id) = (select distinct m.customer_site_id
270 from ra_customer_merges m
271 where a.ship_to_site_use_id =
272 m.duplicate_site_id
273 and m.request_id = req_id
274 and m.process_flag = 'N'
275 and m.set_number = set_num),
276 last_update_date = sysdate,
277 last_updated_by = arp_standard.profile.user_id,
278 last_update_login = arp_standard.profile.last_update_login
279 where ship_to_site_use_id in (select m.duplicate_site_id
280 from ra_customer_merges m
281 where m.process_flag = 'N'
282 and m.request_id = req_id
283 and m.set_number = set_num);
284
285 g_count := sql%rowcount;
286
287 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
288 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
289
290 END IF;
291
292 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PH()-' );
293
294
295 EXCEPTION
296 when others then
297 arp_message.set_error( 'OEP_CMERGE_OEPIC.OE_PH');
298 raise;
299
300 END;
301
302
303 PROCEDURE oe_pl (req_id NUMBER, set_num NUMBER, process_mode VARCHAR2) is
304
305 CURSOR c1 is
306 select picking_line_id
307 from so_picking_lines
308 where ship_to_site_use_id in (select m.duplicate_site_id
309 from ra_customer_merges m
310 where m.process_flag = 'N'
311 and m.request_id = req_id
312 and m.set_number = set_num)
313 for update nowait;
314
315 BEGIN
316
317 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PL()+' );
318
319 /*-----------------------------+
320 | SO_PICKING_LINES |
321 +-----------------------------*/
322 /* both customer and site level */
323
324 IF( process_mode = 'LOCK' ) THEN
325
326 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
327 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_LINES', FALSE );
328
329 open c1;
330 close c1;
331
332 ELSE
333
334
335 /* site level update */
336 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
337 arp_message.set_token( 'TABLE_NAME', 'SO_PICKING_LINES', FALSE );
338
339 UPDATE SO_PICKING_LINES a
340 set (ship_to_site_use_id) = (select distinct m.customer_site_id
341 from ra_customer_merges m
342 where a.ship_to_site_use_id =
343 m.duplicate_site_id
344 and m.request_id = req_id
345 and m.process_flag = 'N'
346 and m.set_number = set_num),
347 last_update_date = sysdate,
348 last_updated_by = arp_standard.profile.user_id,
349 last_update_login = arp_standard.profile.last_update_login
350 where ship_to_site_use_id in (select m.duplicate_site_id
351 from ra_customer_merges m
352 where m.process_flag = 'N'
353 and m.request_id = req_id
354 and m.set_number = set_num);
355
356 g_count := sql%rowcount;
357
358 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
359 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
360
361 END IF;
362
363 arp_message.set_line( 'OEP_CMERGE_OEPIC.OE_PL()-' );
364
365
366 EXCEPTION
367 when others then
368 arp_message.set_error( 'OEP_CMERGE_OEPIC.OE_PL');
369 raise;
370
371 END;
372
373
374 /*---------------------------- PUBLIC ROUTINES ------------------------------*/
375
376
377 PROCEDURE MERGE (REQ_ID NUMBER, SET_NUM NUMBER, PROCESS_MODE VARCHAR2) IS
378 BEGIN
379
380 arp_message.set_line( 'OEP_CMERGE_OEPIC.MERGE()+' );
381
382 oe_pr( req_id, set_num, process_mode );
383 oe_pb( req_id, set_num, process_mode );
384 oe_ph( req_id, set_num, process_mode );
385 oe_pl( req_id, set_num, process_mode );
386
387 arp_message.set_line( 'OEP_CMERGE_OEPIC.MERGE()-' );
388
389 EXCEPTION
390 when others then
391 raise;
392
393 END MERGE;
394 END OEP_CMERGE_OEPIC;