[Home] [Help]
PACKAGE BODY: APPS.OE_CUST_MERGE
Source
1 PACKAGE BODY OE_CUST_MERGE AS
2 /* $Header: OEXCMOEB.pls 120.8.12010000.1 2008/07/25 07:46:42 appldev ship $ */
3
4 /*---------------------------- PRIVATE VARIABLES ----------------------------*/
5
6 TYPE num_table IS VARRAY(20000) OF NUMBER;
7 TYPE vchar240_table is VARRAY(20000) of varchar2(240);
8 g_count NUMBER := 0;
9 TYPE MERGE_ID_LIST_TYPE IS TABLE OF
10 RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
11 INDEX BY BINARY_INTEGER;
12
13 TYPE num_bin_table IS TABLE OF NUMBER;
14 TYPE var_bin_table IS TABLE OF VARCHAR2(1);
15 TYPE date_bin_table IS TABLE OF DATE;
16
17 dbi_header_header_id_tab num_bin_table := num_bin_table();
18 dbi_header_update_date_tab date_bin_table := date_bin_table();
19
20 dbi_line_header_id_tab num_bin_table := num_bin_table();
21 dbi_line_line_id_tab num_bin_table := num_bin_table();
22 dbi_line_update_date_tab date_bin_table := date_bin_table();
23 dbi_line_status_tab var_bin_table := var_bin_table();
24
25 TYPE num_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
26 dbi_header_id_tab num_binary_int;
27
28 l_dbi_profile varchar2(10);
29
30 PROCEDURE Oe_Update_DBI_log;
31
32 /*--------------------------- PRIVATE ROUTINES ------------------------------*/
33
34 /*------------------------------------------------*/
35 /*--- PRIVATE Procedure OE_Merge_Headers ---*/
36 /*------------------------------------------------*/
37
38 Procedure OE_Merge_Headers (Req_Id IN NUMBER,
39 Set_Num IN NUMBER,
40 Process_Mode IN VARCHAR2)
41 IS
42
43 CURSOR MERGE_SITES IS
44 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
45 from ra_customer_merges m
46 where m.process_flag = 'N'
47 and m.request_id = req_id
48 and m.set_number = set_num;
49
50 --bug6071855
51 CURSOR MERGE_HEADERS IS
52 SELECT /*+ PARALLEL (H) PARALLEL (M1) PARALLEL(M2)
53 PARALLEL (M3) PARALLEL (M4) PARALLEL (M5)
54 PARALLEL (M6) PARALLEL (M7) */
55 H.HEADER_ID , H.LAST_UPDATE_DATE, H.HEADER_ID, H.SOLD_TO_ORG_ID,
56 H.INVOICE_TO_ORG_ID, H.SHIP_TO_ORG_ID, H.DELIVER_TO_ORG_ID,
57 H.SOLD_TO_SITE_USE_ID, H.END_CUSTOMER_SITE_USE_ID,
58 H.END_CUSTOMER_ID,
59 NVL(M1.CUSTOMER_MERGE_ID,NVL(M2.CUSTOMER_MERGE_ID,NVL(M3.CUSTOMER_MERGE_ID,
60 NVL(M4.CUSTOMER_MERGE_ID,nvl(M5.CUSTOMER_MERGE_ID,
61 NVL(M6.CUSTOMER_MERGE_ID,M7.CUSTOMER_MERGE_ID))))))
62 FROM RA_CUSTOMER_MERGES M1,
63 RA_CUSTOMER_MERGES M2,
64 RA_CUSTOMER_MERGES M3,
65 RA_CUSTOMER_MERGES M4,
66 RA_CUSTOMER_MERGES M5,
67 RA_CUSTOMER_MERGES M6,
68 RA_CUSTOMER_MERGES M7,
69 OE_ORDER_HEADERS H
70 WHERE ( H.SOLD_TO_ORG_ID = M1.DUPLICATE_ID(+)
71 AND H.INVOICE_TO_ORG_ID = M2.DUPLICATE_SITE_ID(+)
72 AND H.SHIP_TO_ORG_ID = M3.DUPLICATE_SITE_ID(+)
73 AND H.SOLD_TO_SITE_USE_ID = M4.DUPLICATE_SITE_ID(+)
74 AND H.DELIVER_TO_ORG_ID = M5.DUPLICATE_SITE_ID(+)
75 AND H.END_CUSTOMER_SITE_USE_ID = M6.DUPLICATE_SITE_ID(+)
76 AND H.END_CUSTOMER_ID = M7.DUPLICATE_ID(+) )
77 AND (M1.DUPLICATE_SITE_ID IS NOT NULL
78 OR M2.DUPLICATE_ID IS NOT NULL
79 OR M3.DUPLICATE_ID IS NOT NULL
80 OR M4.DUPLICATE_ID IS NOT NULL
81 OR M5.DUPLICATE_ID IS NOT NULL
82 OR M6.DUPLICATE_ID IS NOT NULL
83 OR M7.DUPLICATE_SITE_ID IS NOT NULL)
84 AND M1.PROCESS_FLAG(+) = 'N'
85 AND M2.PROCESS_FLAG(+) = 'N'
86 AND M3.PROCESS_FLAG(+) = 'N'
87 AND M4.PROCESS_FLAG(+) = 'N'
88 AND M5.PROCESS_FLAG(+) = 'N'
89 AND M6.PROCESS_FLAG(+) = 'N'
90 AND M7.PROCESS_FLAG(+) = 'N'
91 AND M1.REQUEST_ID(+) =req_id
92 AND M2.REQUEST_ID(+) =req_id
93 AND M3.REQUEST_ID(+) =req_id
94 AND M4.REQUEST_ID(+) =req_id
95 AND M5.REQUEST_ID(+) =req_id
96 AND M6.REQUEST_ID(+) =req_id
97 AND M7.REQUEST_ID(+) =req_id
98 AND M1.SET_NUMBER(+) =set_num
99 AND M2.SET_NUMBER(+) =set_num
100 AND M3.SET_NUMBER(+) =set_num
101 AND M4.SET_NUMBER(+) =set_num
102 AND M5.SET_NUMBER(+) =set_num
103 AND M6.SET_NUMBER(+) =set_num
104 AND M7.SET_NUMBER(+) =set_num
105 for update nowait;
106
107 --bug6071855
108 CURSOR MERGE_HEADERS_2 IS
109 SELECT /*+ PARALLEL (H) PARALLEL (M1) PARALLEL(M2)
110 PARALLEL (M3) PARALLEL (M4) PARALLEL (M5)
111 PARALLEL (M6) PARALLEL (M7) */
112 H.HEADER_ID , H.LAST_UPDATE_DATE, H.HEADER_ID, H.SOLD_TO_ORG_ID,
113 H.INVOICE_TO_ORG_ID, H.SHIP_TO_ORG_ID, H.DELIVER_TO_ORG_ID,
114 H.SOLD_TO_SITE_USE_ID, H.END_CUSTOMER_SITE_USE_ID,
115 H.END_CUSTOMER_ID,
116 NVL(M1.CUSTOMER_MERGE_ID,NVL(M2.CUSTOMER_MERGE_ID,NVL(M3.CUSTOMER_MERGE_ID,
117 NVL(M4.CUSTOMER_MERGE_ID,nvl(M5.CUSTOMER_MERGE_ID,
118 NVL(M6.CUSTOMER_MERGE_ID,M7.CUSTOMER_MERGE_ID))))))
119 FROM RA_CUSTOMER_MERGES M1,
120 RA_CUSTOMER_MERGES M2,
121 RA_CUSTOMER_MERGES M3,
122 RA_CUSTOMER_MERGES M4,
123 RA_CUSTOMER_MERGES M5,
124 RA_CUSTOMER_MERGES M6,
125 RA_CUSTOMER_MERGES M7,
126 OE_ORDER_HEADERS H
127 WHERE ( H.SOLD_TO_ORG_ID = M1.DUPLICATE_ID(+)
128 AND H.INVOICE_TO_ORG_ID = M2.DUPLICATE_SITE_ID(+)
129 AND H.SHIP_TO_ORG_ID = M3.DUPLICATE_SITE_ID(+)
130 AND H.SOLD_TO_SITE_USE_ID = M4.DUPLICATE_SITE_ID(+)
131 AND H.DELIVER_TO_ORG_ID = M5.DUPLICATE_SITE_ID(+)
132 AND H.END_CUSTOMER_SITE_USE_ID = M6.DUPLICATE_SITE_ID(+)
133 AND H.END_CUSTOMER_ID = M7.DUPLICATE_ID(+) )
134 AND (M1.DUPLICATE_SITE_ID IS NOT NULL
135 OR M2.DUPLICATE_ID IS NOT NULL
136 OR M3.DUPLICATE_ID IS NOT NULL
137 OR M4.DUPLICATE_ID IS NOT NULL
138 OR M5.DUPLICATE_ID IS NOT NULL
139 OR M6.DUPLICATE_ID IS NOT NULL
140 OR M7.DUPLICATE_SITE_ID IS NOT NULL)
141 AND M1.PROCESS_FLAG(+) = 'N'
142 AND M2.PROCESS_FLAG(+) = 'N'
143 AND M3.PROCESS_FLAG(+) = 'N'
144 AND M4.PROCESS_FLAG(+) = 'N'
145 AND M5.PROCESS_FLAG(+) = 'N'
146 AND M6.PROCESS_FLAG(+) = 'N'
147 AND M7.PROCESS_FLAG(+) = 'N'
148 AND M1.REQUEST_ID(+) =req_id
149 AND M2.REQUEST_ID(+) =req_id
150 AND M3.REQUEST_ID(+) =req_id
151 AND M4.REQUEST_ID(+) =req_id
152 AND M5.REQUEST_ID(+) =req_id
153 AND M6.REQUEST_ID(+) =req_id
154 AND M7.REQUEST_ID(+) =req_id
155 AND M1.SET_NUMBER(+) =set_num
156 AND M2.SET_NUMBER(+) =set_num
157 AND M3.SET_NUMBER(+) =set_num
158 AND M4.SET_NUMBER(+) =set_num
159 AND M5.SET_NUMBER(+) =set_num
160 AND M6.SET_NUMBER(+) =set_num
161 AND M7.SET_NUMBER(+) =set_num;
162
163 hdr_header_id_tab num_table;
164 hdr_sold_to_org_id_tab num_table;
165 hdr_invoice_to_org_id_tab num_table;
166 hdr_ship_to_org_id_tab num_table;
167 hdr_deliver_to_org_id_tab num_table;
168 hdr_sold_to_site_use_id_tab num_table;
169 hdr_end_cust_site_use_id_tab num_table;
170 hdr_end_cust_id_tab num_table;
171
172 old_hdr_sold_to_org_id_tab num_table;
173 old_hdr_invoice_to_org_id_tab num_table;
174 old_hdr_ship_to_org_id_tab num_table;
175 old_hdr_deliver_to_org_id_tab num_table;
176 old_hdr_sold_to_site_id_tab num_table;
177 old_hdr_end_cust_site_tab num_table;
178 old_hdr_end_cust_id_tab num_table;
179
180 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
181 customer_id_tab num_table_binary_int;
182 customer_site_id_tab num_table_binary_int;
183 MERGE_HEADER_ID_LIST MERGE_ID_LIST_TYPE;
184
185 l_profile_val VARCHAR2(30);
186
187 dbi_local_hdr_header_id_tab num_bin_table := num_bin_table();
188 dbi_local_hdr_update_date_tab date_bin_table := date_bin_table();
189 l_global_count number :=0;
190
191 BEGIN
192
193 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Headers()+' );
194
195 IF (process_mode = 'LOCK') THEN
196
197 -- try to open table for update, if it fails the exception will
198 -- tell us that the merge was going to block
199
200 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
201 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADERS_ALL', FALSE );
202
203 open merge_headers;
204 close merge_headers;
205
206 ELSE
207
208 FOR C IN MERGE_SITES LOOP
209 IF c.duplicate_id IS NOT NULL
210 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
211 customer_id_tab(c.duplicate_id) := c.customer_id;
212 END IF;
213
214 IF c.duplicate_site_id IS NOT NULL
215 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
216 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
217 END IF;
218
219 END LOOP;
220
221 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
222 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
223
224
225 OPEN merge_headers_2;
226 LOOP
227 FETCH merge_headers_2
228 BULK COLLECT INTO hdr_header_id_tab,
229 dbi_local_hdr_update_date_tab,
230 dbi_local_hdr_header_id_tab,
231 hdr_sold_to_org_id_tab,
232 hdr_invoice_to_org_id_tab,
233 hdr_ship_to_org_id_tab,
234 hdr_deliver_to_org_id_tab,
235 hdr_sold_to_site_use_id_tab,
236 hdr_end_cust_site_use_id_tab,
237 hdr_end_cust_id_tab,
238 MERGE_HEADER_ID_LIST
239 LIMIT 20000;
240
241
242 old_hdr_sold_to_org_id_tab := hdr_sold_to_org_id_tab;
243 old_hdr_invoice_to_org_id_tab := hdr_invoice_to_org_id_tab;
244 old_hdr_ship_to_org_id_tab := hdr_ship_to_org_id_tab;
245 old_hdr_deliver_to_org_id_tab := hdr_deliver_to_org_id_tab;
246 old_hdr_sold_to_site_id_tab := hdr_sold_to_site_use_id_tab;
247 old_hdr_end_cust_site_tab := hdr_end_cust_site_use_id_tab;
248 old_hdr_end_cust_id_tab := hdr_end_cust_id_tab;
249
250
251 IF l_dbi_profile = 'Y' then
252 arp_message.set_line(' update_date_tab_count for hdr='||dbi_local_hdr_update_date_tab.COUNT);
253 IF dbi_local_hdr_update_date_tab.COUNT > 0 then
254
255
256 IF dbi_header_update_date_tab.COUNT > 0 then
257 l_global_count := dbi_header_update_date_tab.COUNT;
258 ELSE
259 l_global_count := 0;
260 END IF;
261
262 dbi_header_update_date_tab.EXTEND(dbi_local_hdr_update_date_tab.COUNT);
263 dbi_header_header_id_tab.EXTEND(dbi_local_hdr_update_date_tab.COUNT);
264
265 END IF;
266 END IF;
267
268
269 if hdr_header_id_tab.COUNT <> 0 then
270 for i in hdr_header_id_tab.FIRST..hdr_header_id_tab.LAST LOOP
271
272 IF l_dbi_profile = 'Y' then
273 dbi_header_id_tab(hdr_header_id_tab(i)) := 1;
274 dbi_header_update_date_tab(l_global_count + i) := dbi_local_hdr_update_date_tab(i);
275 dbi_header_header_id_tab(l_global_count + i) := dbi_local_hdr_header_id_tab(i);
276 END IF;
277
278 -- Access directly by the index position of the ids in the
279 -- values stored in customer_id_tab and customer_site_id_tab tables
280
281 if customer_id_tab.exists(hdr_sold_to_org_id_tab(i)) then
282 hdr_sold_to_org_id_tab(i):= customer_id_tab(hdr_sold_to_org_id_tab(i));
283 end if;
284
285 if customer_site_id_tab.exists(hdr_invoice_to_org_id_tab(i)) then
286 hdr_invoice_to_org_id_tab(i):= customer_site_id_tab(hdr_invoice_to_org_id_tab(i));
287 end if;
288
289 if customer_site_id_tab.exists(hdr_ship_to_org_id_tab(i)) then
290 hdr_ship_to_org_id_tab(i):= customer_site_id_tab(hdr_ship_to_org_id_tab(i));
291 end if;
292
293 if customer_site_id_tab.exists(hdr_deliver_to_org_id_tab(i)) then
294 hdr_deliver_to_org_id_tab(i):= customer_site_id_tab(hdr_deliver_to_org_id_tab(i));
295 end if;
296
297 if customer_site_id_tab.exists(hdr_sold_to_site_use_id_tab(i)) then
298 hdr_sold_to_site_use_id_tab(i):= customer_site_id_tab(hdr_sold_to_site_use_id_tab(i));
299 end if;
300
301 if customer_site_id_tab.exists(hdr_end_cust_site_use_id_tab(i)) then
302 hdr_end_cust_site_use_id_tab(i):= customer_site_id_tab(hdr_end_cust_site_use_id_tab(i));
303 end if;
304
305 if customer_id_tab.exists(hdr_end_cust_id_tab(i)) then
306 hdr_end_cust_id_tab(i):= customer_id_tab(hdr_end_cust_id_tab(i));
307 end if;
308
309 end loop;
310 end if;
311 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Headers():3' );
312 --insert audit information for customer merge
313 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
314 IF hdr_header_id_tab.COUNT <> 0 THEN
315 forall i in hdr_header_id_tab.FIRST..hdr_header_id_tab.LAST
316 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
317 MERGE_LOG_ID,
318 TABLE_NAME,
319 MERGE_HEADER_ID,
320 PRIMARY_KEY_ID1,
321 NUM_COL1_ORIG,
322 NUM_COL1_NEW,
323 NUM_COL2_ORIG,
324 NUM_COL2_NEW,
325 NUM_COL3_ORIG,
326 NUM_COL3_NEW,
327 NUM_COL4_ORIG,
328 NUM_COL4_NEW,
329 NUM_COL5_ORIG,
330 NUM_COL5_NEW,
331 NUM_COL6_ORIG,
332 NUM_COL6_NEW,
333 NUM_COL7_ORIG,
334 NUM_COL7_NEW,
335 ACTION_FLAG,
336 REQUEST_ID,
337 CREATED_BY,
338 CREATION_DATE,
339 LAST_UPDATE_LOGIN,
340 LAST_UPDATE_DATE,
341 LAST_UPDATED_BY
342 ) VALUES (
343 HZ_CUSTOMER_MERGE_LOG_s.nextval,
344 'OE_ORDER_HEADERS_ALL',
345 MERGE_HEADER_ID_LIST(I),
346 hdr_header_id_tab(I),
347 old_hdr_sold_to_org_id_tab(I),
348 decode(hdr_sold_to_org_id_tab(I),NULL,old_hdr_sold_to_org_id_tab(I),hdr_sold_to_org_id_tab(i)),
349 old_hdr_invoice_to_org_id_tab(I),
350 decode(hdr_invoice_to_org_id_tab(I),NULL,old_hdr_invoice_to_org_id_tab(I),hdr_invoice_to_org_id_tab(i)),
351 old_hdr_ship_to_org_id_tab(I),
352 decode(hdr_ship_to_org_id_tab(I),NULL,old_hdr_ship_to_org_id_tab(I),hdr_ship_to_org_id_tab(i)),
353 old_hdr_deliver_to_org_id_tab(I),
354 decode(hdr_deliver_to_org_id_tab(I),NULL,old_hdr_deliver_to_org_id_tab(I),hdr_deliver_to_org_id_tab(i)),
355 old_hdr_sold_to_site_id_tab(I),
356 decode(hdr_sold_to_site_use_id_tab(I),NULL,old_hdr_sold_to_site_id_tab(I),hdr_sold_to_site_use_id_tab(i)),
357 old_hdr_end_cust_site_tab(I),
358 decode(hdr_end_cust_site_use_id_tab(I),NULL,old_hdr_end_cust_site_tab(I),hdr_end_cust_site_use_id_tab(i)),
359 old_hdr_end_cust_id_tab(I),
360 decode(hdr_end_cust_id_tab(I),NULL,old_hdr_end_cust_id_tab(I),hdr_end_cust_id_tab(i)),
361 'U',
362 req_id,
363 hz_utility_pub.CREATED_BY,
364 hz_utility_pub.CREATION_DATE,
365 hz_utility_pub.LAST_UPDATE_LOGIN,
366 hz_utility_pub.LAST_UPDATE_DATE,
367 hz_utility_pub.LAST_UPDATED_BY
368 );
369
370 end if;
371 end if;
372
373
374 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
375 arp_message.set_token( 'TABLE_NAME', 'oe_order_headers_all', FALSE );
376 IF hdr_header_id_tab.COUNT <> 0 THEN
377
378 FORALL i in hdr_header_id_tab.FIRST..hdr_header_id_tab.LAST
379 UPDATE OE_ORDER_HEADERS_ALL H
380 SET sold_to_org_id = decode(hdr_sold_to_org_id_tab(i),null,sold_to_org_id,hdr_sold_to_org_id_tab(i)),
381 invoice_to_org_id = decode(hdr_invoice_to_org_id_tab(i),null,invoice_to_org_id,hdr_invoice_to_org_id_tab(i)),
382 ship_to_org_id = decode(hdr_ship_to_org_id_tab(i),null,ship_to_org_id,hdr_ship_to_org_id_tab(i)),
383 deliver_to_org_id = decode(hdr_deliver_to_org_id_tab(i),null,deliver_to_org_id,hdr_deliver_to_org_id_tab(i)),
384 sold_to_site_use_id = decode(hdr_sold_to_site_use_id_tab(i),null,sold_to_site_use_id,hdr_sold_to_site_use_id_tab(i)),
385 end_customer_site_use_id = decode(hdr_end_cust_site_use_id_tab(i),null,end_customer_site_use_id,hdr_end_cust_site_use_id_tab(i)),
386 end_customer_id = decode(hdr_end_cust_id_tab(i),null,end_customer_id,hdr_end_cust_id_tab(i)),
387 last_update_date = sysdate,
388 last_updated_by = arp_standard.profile.user_id,
389 last_update_login = arp_standard.profile.last_update_login,
390 request_id = req_id,
391 program_application_id = arp_standard.profile.program_application_id ,
392 program_id = arp_standard.profile.program_id,
393 program_update_date = SYSDATE,
394 lock_control = lock_control+1
395 WHERE header_id = hdr_header_id_tab(i)
396 RETURNING last_update_date bulk collect into dbi_header_update_date_tab;
397
398 g_count := sql%rowcount;
399 ELSE
400 g_count := 0;
401 END IF;
402 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
403 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
404 EXIT WHEN merge_headers_2%NOTFOUND;
405
406 hdr_header_id_tab.DELETE;
407 hdr_sold_to_org_id_tab.DELETE;
408 hdr_invoice_to_org_id_tab.DELETE;
409 hdr_ship_to_org_id_tab.DELETE;
410 hdr_deliver_to_org_id_tab.DELETE;
411 hdr_sold_to_site_use_id_tab.DELETE;
412 hdr_end_cust_site_use_id_tab.DELETE;
413 hdr_end_cust_id_tab.DELETE;
414
415 old_hdr_sold_to_org_id_tab.DELETE;
416 old_hdr_invoice_to_org_id_tab.DELETE;
417 old_hdr_ship_to_org_id_tab.DELETE;
418 old_hdr_deliver_to_org_id_tab.DELETE;
419 old_hdr_sold_to_site_id_tab.DELETE;
420 old_hdr_end_cust_site_tab.DELETE;
421 old_hdr_end_cust_id_tab.DELETE;
422
423 END LOOP; -- cursor merge_headers_2
424
425 CLOSE merge_headers_2;
426 END IF;
427 customer_id_tab.DELETE;
428 customer_site_id_tab.DELETE;
429 dbi_local_hdr_header_id_tab.DELETE;
430 dbi_local_hdr_update_date_tab.DELETE;
431
432 arp_message.set_line(' header_id_tab_count for hdr='||dbi_header_header_id_tab.COUNT);
433 arp_message.set_line(' update_date_tab_count for hdr='||dbi_header_update_date_tab.COUNT);
434
435 arp_message.set_line( ' END OE_CUST_MERGE.OE_Merge_Headers()-' );
436
437 EXCEPTION
438 when others then
439 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Headers-' );
440 raise;
441
442 END OE_Merge_Headers;
443
444
445 /*-------------------------------------------------*/
446 /*--- PRIVATE Procedure OE_Merge_Header_History ---*/
447 /*-------------------------------------------------*/
448
449 Procedure OE_Merge_Header_History (Req_Id IN NUMBER,
450 Set_Num IN NUMBER,
451 Process_Mode IN VARCHAR2)
452 IS
453 --3196900
454 CURSOR MERGE_SITES IS
455 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
456 from ra_customer_merges m
457 where m.process_flag = 'N'
458 and m.request_id = req_id
459 and m.set_number = set_num;
460 /* MOAC_SQL_CHANGE */
461 CURSOR MERGE_HEADERS_HISTORY IS
462 SELECT /*+ PARALLEL(L)
463 PARALLEL(M1)
464 PARALLEL(M2)
465 PARALLEL(M3)
466 PARALLEL(M4)
467 PARALLEL(M5)
468 PARALLEL(M6)
469 PARALLEL(M7) */
470 hist.header_id ,
471 hist.sold_to_org_id,
472 hist.invoice_to_org_id,
473 hist.ship_to_org_id,
474 hist.sold_to_site_use_id,
475 hist.deliver_to_org_id,
476 hist.end_customer_site_use_id,
477 hist.end_customer_id
478 FROM RA_CUSTOMER_MERGES M1,
479 RA_CUSTOMER_MERGES M2,
480 RA_CUSTOMER_MERGES M3,
481 RA_CUSTOMER_MERGES M4,
482 RA_CUSTOMER_MERGES M5,
483 RA_CUSTOMER_MERGES M6,
484 RA_CUSTOMER_MERGES M7,
485 OE_ORDER_HEADER_HISTORY HIST,
486 -- Changed by Srini for MOAC
487 -- This MOAC change has been reverted.
488 -- For more information please
489 -- see the bug #5050382
490 OE_ORDER_HEADERS H
491 WHERE
492 ( hist.sold_to_org_id = m1.duplicate_id(+)
493 and hist.invoice_to_org_id = m2.duplicate_site_id(+)
494 and hist.ship_to_org_id = m3.duplicate_site_id(+)
495 and hist.sold_to_site_use_id = m4.duplicate_site_id(+)
496 and hist.deliver_to_org_id = m5.duplicate_site_id(+)
497 and hist.end_customer_site_use_id = m6.duplicate_site_id(+)
498 and hist.end_customer_id = m7.duplicate_id(+)
499 )
500 and
501 (m1.duplicate_site_id is not null or
502 m2.duplicate_id is not null or
503 m3.duplicate_id is not null or
504 m4.duplicate_id is not null or
505 m5.duplicate_id is not null or
506 m6.duplicate_id is not null or
507 m7.duplicate_site_id is not null)
508 and m1.process_flag(+) = 'N'
509 and m2.process_flag(+) = 'N'
510 and m3.process_flag(+) = 'N'
511 and m4.process_flag(+) = 'N'
512 and m5.process_flag(+) = 'N'
513 and m6.process_flag(+) = 'N'
514 and m7.process_flag(+) = 'N'
515 and m1.request_id(+) =req_id
516 and m2.request_id(+) =req_id
517 and m3.request_id(+) =req_id
518 and m4.request_id(+) =req_id
519 and m5.request_id(+) =req_id
520 and m6.request_id(+) =req_id
521 and m7.request_id(+) =req_id
522 and m1.set_number(+) =set_num
523 and m2.set_number(+) =set_num
524 and m3.set_number(+) =set_num
525 and m4.set_number(+) =set_num
526 and m5.set_number(+) =set_num
527 and m6.set_number(+) =set_num
528 and m7.set_number(+) =set_num
529 and hist.header_id=h.header_id
530 for update nowait;
531
532 /* MOAC_SQL_CHANGE */
533 CURSOR MERGE_HEADERS_HISTORY_2 IS
534 SELECT /*+ PARALLEL(L)
535 PARALLEL(M1)
536 PARALLEL(M2)
537 PARALLEL(M3)
538 PARALLEL(M4)
539 PARALLEL(M5)
540 PARALLEL(M6)
541 PARALLEL(M7) */
542 hist.header_id ,
543 hist.sold_to_org_id,
544 hist.invoice_to_org_id,
545 hist.ship_to_org_id,
546 hist.sold_to_site_use_id,
547 hist.deliver_to_org_id,
548 hist.end_customer_site_use_id,
549 hist.end_customer_id
550 FROM RA_CUSTOMER_MERGES M1,
551 RA_CUSTOMER_MERGES M2,
552 RA_CUSTOMER_MERGES M3,
553 RA_CUSTOMER_MERGES M4,
554 RA_CUSTOMER_MERGES M5,
555 RA_CUSTOMER_MERGES M6,
556 RA_CUSTOMER_MERGES M7,
557 OE_ORDER_HEADER_HISTORY HIST,
558 --Changed for MOAC
559 OE_ORDER_HEADERS_ALL H
560 WHERE
561 ( hist.sold_to_org_id = m1.duplicate_id(+)
562 and hist.invoice_to_org_id = m2.duplicate_site_id(+)
563 and hist.ship_to_org_id = m3.duplicate_site_id(+)
564 and hist.sold_to_site_use_id = m4.duplicate_site_id(+)
565 and hist.deliver_to_org_id = m5.duplicate_site_id(+)
566 and hist.end_customer_site_use_id = m6.duplicate_site_id(+)
567 and hist.end_customer_id = m7.duplicate_id(+)
568 )
569 and
570 (m1.duplicate_site_id is not null or
571 m2.duplicate_id is not null or
572 m3.duplicate_id is not null or
573 m4.duplicate_id is not null or
574 m5.duplicate_id is not null or
575 m6.duplicate_id is not null or
576 m7.duplicate_site_id is not null)
577 and m1.process_flag(+) = 'N'
578 and m2.process_flag(+) = 'N'
579 and m3.process_flag(+) = 'N'
580 and m4.process_flag(+) = 'N'
581 and m5.process_flag(+) = 'N'
582 and m6.process_flag(+) = 'N'
583 and m7.process_flag(+) = 'N'
584 and m1.request_id(+) =req_id
585 and m2.request_id(+) =req_id
586 and m3.request_id(+) =req_id
587 and m4.request_id(+) =req_id
588 and m5.request_id(+) =req_id
589 and m6.request_id(+) =req_id
590 and m7.request_id(+) =req_id
591 and m1.set_number(+) =set_num
592 and m2.set_number(+) =set_num
593 and m3.set_number(+) =set_num
594 and m4.set_number(+) =set_num
595 and m5.set_number(+) =set_num
596 and m6.set_number(+) =set_num
597 and m7.set_number(+) =set_num
598 and hist.header_id=h.header_id;
599
600 hhst_header_id_tab num_table;
601 hhst_sold_to_org_id_tab num_table;
602 hhst_invoice_to_org_id_tab num_table;
603 hhst_ship_to_org_id_tab num_table;
604 hhst_sold_to_site_use_id_tab num_table;
605 hhst_deliver_to_org_id_tab num_table;
606 hhst_end_cust_site_use_id_tab num_table;
607 hhst_end_cust_id_tab num_table;
608
609 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
610 customer_id_tab num_table_binary_int;
611 customer_site_id_tab num_table_binary_int;
612
613 BEGIN
614
615 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_HEADER_History()+' );
616
617 IF (process_mode = 'LOCK') THEN
618
619 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
620 arp_message.set_token( 'TABLE_NAME', 'oe_order_header_history', FALSE );
621
622 open merge_headers_history;
623 close merge_headers_history;
624
625 ELSE
626
627 FOR C IN MERGE_SITES LOOP
628 IF c.duplicate_id IS NOT NULL
629 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
630 customer_id_tab(c.duplicate_id) := c.customer_id;
631 END IF;
632
633 IF c.duplicate_site_id IS NOT NULL
634 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
635 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
636 END IF;
637
638 END LOOP;
639
640 OPEN merge_headers_history_2;
641 LOOP
642 FETCH merge_headers_history_2
643 BULK COLLECT INTO hhst_header_id_tab,
644 hhst_sold_to_org_id_tab,
645 hhst_invoice_to_org_id_tab,
646 hhst_ship_to_org_id_tab,
647 hhst_sold_to_site_use_id_tab,
648 hhst_deliver_to_org_id_tab,
649 hhst_end_cust_site_use_id_tab,
650 hhst_end_cust_id_tab
651 LIMIT 20000;
652
653
654 if hhst_header_id_tab.COUNT <> 0 then
655 for i in hhst_header_id_tab.FIRST..hhst_header_id_tab.LAST LOOP
656
657 -- Access directly by the index position of the ids in the
658 -- values stored in customer_id_tab and customer_site_id_tab tables
659
660 if customer_id_tab.exists(hhst_sold_to_org_id_tab(i)) then
661 hhst_sold_to_org_id_tab(i):= customer_id_tab(hhst_sold_to_org_id_tab(i));
662 end if;
663
664 if customer_site_id_tab.exists(hhst_invoice_to_org_id_tab(i)) then
665 hhst_invoice_to_org_id_tab(i):= customer_site_id_tab(hhst_invoice_to_org_id_tab(i));
666 end if;
667
668 if customer_site_id_tab.exists(hhst_ship_to_org_id_tab(i)) then
669 hhst_ship_to_org_id_tab(i):= customer_site_id_tab(hhst_ship_to_org_id_tab(i));
670 end if;
671
672 if customer_site_id_tab.exists(hhst_sold_to_site_use_id_tab(i)) then
673 hhst_sold_to_site_use_id_tab(i):= customer_site_id_tab(hhst_sold_to_site_use_id_tab(i));
674 end if;
675
676 if customer_site_id_tab.exists(hhst_deliver_to_org_id_tab(i)) then
677 hhst_deliver_to_org_id_tab(i):= customer_site_id_tab(hhst_deliver_to_org_id_tab(i));
678 end if;
679
680 if customer_site_id_tab.exists(hhst_end_cust_site_use_id_tab(i)) then
681 hhst_end_cust_site_use_id_tab(i):= customer_site_id_tab(hhst_end_cust_site_use_id_tab(i));
682 end if;
683
684 if customer_id_tab.exists(hhst_end_cust_id_tab(i)) then
685 hhst_end_cust_id_tab(i):= customer_id_tab(hhst_end_cust_id_tab(i));
686 end if;
687
688 end loop;
689 end if;
690
691
692 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
693 arp_message.set_token( 'TABLE_NAME', 'oe_order_header_history', FALSE );
694
695 IF hhst_header_id_tab.COUNT <> 0 THEN
696 FORALL i in hhst_header_id_tab.FIRST..hhst_header_id_tab.LAST
697 UPDATE OE_ORDER_HEADER_HISTORY HHIST
698 SET sold_to_org_id = decode(hhst_sold_to_org_id_tab(i),null,sold_to_org_id,hhst_sold_to_org_id_tab(i)),
699 invoice_to_org_id = decode(hhst_invoice_to_org_id_tab(i),null,invoice_to_org_id,hhst_invoice_to_org_id_tab(i)),
700 ship_to_org_id = decode(hhst_ship_to_org_id_tab(i),null,ship_to_org_id,hhst_ship_to_org_id_tab(i)),
701 sold_to_site_use_id = decode(hhst_sold_to_site_use_id_tab(i),null,sold_to_site_use_id,hhst_sold_to_site_use_id_tab(i)),
702 deliver_to_org_id = decode(hhst_deliver_to_org_id_tab(i),null,deliver_to_org_id,hhst_deliver_to_org_id_tab(i)),
703 end_customer_site_use_id = decode(hhst_end_cust_site_use_id_tab(i),null,end_customer_site_use_id,hhst_end_cust_site_use_id_tab(i)),
704 end_customer_id = decode(hhst_end_cust_id_tab(i),null,end_customer_id,hhst_end_cust_id_tab(i)),
705 last_update_date = sysdate,
706 last_updated_by = arp_standard.profile.user_id,
707 last_update_login = arp_standard.profile.last_update_login,
708 request_id = req_id,
709 program_application_id = arp_standard.profile.program_application_id ,
710 program_id = arp_standard.profile.program_id,
711 program_update_date = SYSDATE
712 WHERE header_id = hhst_header_id_tab(i);
713
714 g_count := sql%rowcount;
715
716 ELSE
717 g_count := 0;
718 END IF;
719
720 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
721 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
722 EXIT WHEN merge_headers_history_2%NOTFOUND;
723
724 hhst_header_id_tab.DELETE;
725 hhst_sold_to_org_id_tab.DELETE;
726 hhst_invoice_to_org_id_tab.DELETE;
727 hhst_ship_to_org_id_tab.DELETE;
728 hhst_sold_to_site_use_id_tab.DELETE;
729 hhst_deliver_to_org_id_tab.DELETE;
730 hhst_end_cust_site_use_id_tab.DELETE;
731 hhst_end_cust_id_tab.DELETE;
732
733 END LOOP; -- cursor merge_headers_history_2
734
735 CLOSE merge_headers_history_2;
736
737 END IF;
738 customer_id_tab.DELETE;
739 customer_site_id_tab.DELETE;
740 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Header_History()-' );
741
742 EXCEPTION
743 when others then
744 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Header_History-' );
745 raise;
746
747 END OE_MERGE_HEADER_HISTORY; -- 3196900
748
749 /* CURSOR c1 is
750 select HEADER_ID
751 from oe_order_header_history
752 where ship_to_org_id in
753 (select m.duplicate_site_id
754 from ra_customer_merges m
755 where m.process_flag = 'N'
756 and m.request_id = req_id
757 and m.set_number = set_num)
758 for update nowait;
759
760
761 CURSOR c2 is
762 select HEADER_ID
763 from oe_order_header_history
764 where invoice_to_org_id in
765 (select m.duplicate_site_id
766 from ra_customer_merges m
767 where m.process_flag = 'N'
768 and m.request_id = req_id
769 and m.set_number = set_num)
770 for update nowait;
771
772
773 CURSOR c3 is
774 select HEADER_ID
775 from oe_order_header_history
776 where deliver_to_org_id in
777 (select m.duplicate_site_id
778 from ra_customer_merges m
779 where m.process_flag = 'N'
780 and m.request_id = req_id
781 and m.set_number = set_num)
782 for update nowait;
783
784
785 CURSOR c4 is
786 select HEADER_ID
787 from oe_order_header_history
788 where sold_to_org_id in
789 (select m.duplicate_id
790 from ra_customer_merges m
791 where m.process_flag = 'N'
792 and m.request_id = req_id
793 and m.set_number = set_num)
794 for update nowait;
795
796 CURSOR c5 is
797 select HEADER_ID
798 from oe_order_header_history
799 where sold_to_site_use_id in
800 (select m.duplicate_id
801 from ra_customer_merges m
802 where m.process_flag = 'N'
803 and m.request_id = req_id
804 and m.set_number = set_num)
805 for update nowait;
806
807 CURSOR c6 is
808 select HEADER_ID
809 from oe_order_header_history
810 where end_customer_site_use_id in
811 (select m.duplicate_id
812 from ra_customer_merges m
813 where m.process_flag = 'N'
814 and m.request_id = req_id
815 and m.set_number = set_num)
816 for update nowait;
817
818 CURSOR c7 is
819 select HEADER_ID
820 from oe_order_header_history
821 where end_customer_id in
822 (select m.duplicate_id
823 from ra_customer_merges m
824 where m.process_flag = 'N'
825 and m.request_id = req_id
826 and m.set_number = set_num)
827 for update nowait;
828
829 BEGIN
830 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Header_History()+' );
831
832 -- both customer and site level
833
834 IF( process_mode = 'LOCK' ) THEN
835
836 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
837 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
838
839 open c1;
840 close c1;
841
842 open c2;
843 close c2;
844
845 open c3;
846 close c3;
847
848 open c4;
849 close c4;
850
851 open c5;
852 close c5;
853
854 open c6;
855 close c6;
856
857 open c7;
858 close c7;
859
860 ELSE
861
862
863 -- site level update
864 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
865 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
866
867 UPDATE oe_order_header_history a
868 set ship_to_org_id = (select distinct m.customer_site_id
869 from ra_customer_merges m
870 where a.ship_to_org_id = m.duplicate_site_id
871 and m.request_id = req_id
872 and m.process_flag = 'N'
873 and m.set_number = set_num),
874 last_update_date = sysdate,
875 last_updated_by = arp_standard.profile.user_id,
876 last_update_login = arp_standard.profile.last_update_login,
877 request_id = req_id,
878 program_application_id =arp_standard.profile.program_application_id,
879 program_id = arp_standard.profile.program_id,
880 program_update_date = sysdate
881 where ship_to_org_id in (select m.duplicate_site_id
882 from ra_customer_merges m
883 where m.process_flag = 'N'
884 and m.request_id = req_id
885 and m.set_number = set_num);
886 g_count := sql%rowcount;
887 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
888 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
889
890
891 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
892 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
893
894 UPDATE oe_order_header_history a
895 set invoice_to_org_id = (select distinct m.customer_site_id
896 from ra_customer_merges m
897 where a.invoice_to_org_id = m.duplicate_site_id
898 and m.request_id = req_id
899 and m.process_flag = 'N'
900 and m.set_number = set_num),
901 last_update_date = sysdate,
902 last_updated_by = arp_standard.profile.user_id,
903 last_update_login = arp_standard.profile.last_update_login,
904 request_id = req_id,
905 program_application_id =arp_standard.profile.program_application_id,
906 program_id = arp_standard.profile.program_id,
907 program_update_date = sysdate
908 where invoice_to_org_id in (select m.duplicate_site_id
909 from ra_customer_merges m
910 where m.process_flag = 'N'
911 and m.request_id = req_id
912 and m.set_number = set_num);
913 g_count := sql%rowcount;
914 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
915 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
916
917 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
918 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
919
920 UPDATE oe_order_header_history a
921 set deliver_to_org_id = (select distinct m.customer_site_id
922 from ra_customer_merges m
923 where a.deliver_to_org_id = m.duplicate_site_id
924 and m.request_id = req_id
925 and m.process_flag = 'N'
926 and m.set_number = set_num),
927 last_update_date = sysdate,
928 last_updated_by = arp_standard.profile.user_id,
929 last_update_login = arp_standard.profile.last_update_login,
930 request_id = req_id,
931 program_application_id =arp_standard.profile.program_application_id,
932 program_id = arp_standard.profile.program_id,
933 program_update_date = sysdate
934 where deliver_to_org_id in (select m.duplicate_site_id
935 from ra_customer_merges m
936 where m.process_flag = 'N'
937 and m.request_id = req_id
938 and m.set_number = set_num);
939 g_count := sql%rowcount;
940 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
941 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
942
943 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
944 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
945
946
947 -- customer level update --
948
949 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
950 arp_message.set_token( 'TABLE_NAME', 'oe_order_header_history', FALSE );
951
952 UPDATE oe_order_header_history a
953 set sold_to_org_id = (select distinct m.customer_id
954 from ra_customer_merges m
955 where a.sold_to_org_id = m.duplicate_id
956 and m.process_flag = 'N'
957 and m.request_id = req_id
958 and m.set_number = set_num),
959 last_update_date = sysdate,
960 last_updated_by = arp_standard.profile.user_id,
961 last_update_login = arp_standard.profile.last_update_login,
962 request_id = req_id,
963 program_application_id =arp_standard.profile.program_application_id,
964 program_id = arp_standard.profile.program_id,
965 program_update_date = sysdate
966 where sold_to_org_id in (select m.duplicate_id
967 from ra_customer_merges m
968 where m.process_flag = 'N'
969 and m.request_id = req_id
970 and m.set_number = set_num);
971
972 g_count := sql%rowcount;
973
974 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
975 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
976
977 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
978 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
979
980 UPDATE oe_order_header_history a
981 set sold_to_site_use_id = (select distinct m.customer_id
982 from ra_customer_merges m
983 where a.sold_to_site_use_id = m.duplicate_id
984 and m.process_flag = 'N'
985 and m.request_id = req_id
986 and m.set_number = set_num),
987 last_update_date = sysdate,
988 last_updated_by = arp_standard.profile.user_id,
989 last_update_login = arp_standard.profile.last_update_login,
990 request_id = req_id,
991 program_application_id =arp_standard.profile.program_application_id,
992 program_id = arp_standard.profile.program_id,
993 program_update_date = sysdate
994 where sold_to_site_use_id in (select m.duplicate_id
995 from ra_customer_merges m
996 where m.process_flag = 'N'
997 and m.request_id = req_id
998 and m.set_number = set_num);
999
1000 g_count := sql%rowcount;
1001
1002 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1003 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1004
1005 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1006 arp_message.set_token( 'TABLE_NAME', 'OE_ORDER_HEADER_HISTORY', FALSE );
1007
1008 UPDATE oe_order_header_history a
1009 set end_customer_site_use_id = (select distinct m.customer_id
1010 from ra_customer_merges m
1011 where a.end_customer_site_use_id = m.duplicate_id
1012 and m.process_flag = 'N'
1013 and m.request_id = req_id
1014 and m.set_number = set_num),
1015 last_update_date = sysdate,
1016 last_updated_by = arp_standard.profile.user_id,
1017 last_update_login = arp_standard.profile.last_update_login,
1018 request_id = req_id,
1019 program_application_id =arp_standard.profile.program_application_id,
1020 program_id = arp_standard.profile.program_id,
1021 program_update_date = sysdate
1022 where end_customer_site_use_id in (select m.duplicate_id
1023 from ra_customer_merges m
1024 where m.process_flag = 'N'
1025 and m.request_id = req_id
1026 and m.set_number = set_num);
1027
1028 g_count := sql%rowcount;
1029
1030 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1031 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1032
1033 -- customer level update --
1034
1035 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1036 arp_message.set_token( 'TABLE_NAME', 'oe_order_header_history', FALSE );
1037
1038 UPDATE oe_order_header_history a
1039 set end_customer_id = (select distinct m.customer_id
1040 from ra_customer_merges m
1041 where a.end_customer_id = m.duplicate_id
1042 and m.process_flag = 'N'
1043 and m.request_id = req_id
1044 and m.set_number = set_num),
1045 last_update_date = sysdate,
1046 last_updated_by = arp_standard.profile.user_id,
1047 last_update_login = arp_standard.profile.last_update_login,
1048 request_id = req_id,
1049 program_application_id =arp_standard.profile.program_application_id,
1050 program_id = arp_standard.profile.program_id,
1051 program_update_date = sysdate
1052 where end_customer_id in (select m.duplicate_id
1053 from ra_customer_merges m
1054 where m.process_flag = 'N'
1055 and m.request_id = req_id
1056 and m.set_number = set_num);
1057
1058 g_count := sql%rowcount;
1059
1060 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1061 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1062
1063 END IF;
1064
1065 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Header_History()-' );
1066
1067 EXCEPTION
1068 When others then
1069 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Header_History-' );
1070 raise;
1071
1072 END OE_Merge_Header_History; */
1073
1074 /*------------------------------------------------*/
1075 /*--- PRIVATE PROCEDURE OE_Merge_Headers_IFACE ---*/
1076 /*------------------------------------------------*/
1077
1078 /* -- Interface tables need not be updated
1079 -- Not logging merge for Interface tables
1080
1081 Procedure OE_Merge_Headers_IFACE (Req_Id IN NUMBER,
1082 Set_Num IN NUMBER,
1083 Process_Mode IN VARCHAR2)
1084 IS
1085 CURSOR c1 is
1086 select HEADER_ID
1087 from oe_headers_iface_all
1088 where ship_to_org_id in
1089 (select m.duplicate_site_id
1090 from ra_customer_merges m
1091 where m.process_flag = 'N'
1092 and m.request_id = req_id
1093 and m.set_number = set_num)
1094 for update nowait;
1095
1096
1097 CURSOR c2 is
1098 select HEADER_ID
1099 from oe_headers_iface_all
1100 where invoice_to_org_id in
1101 (select m.duplicate_site_id
1102 from ra_customer_merges m
1103 where m.process_flag = 'N'
1104 and m.request_id = req_id
1105 and m.set_number = set_num)
1106 for update nowait;
1107
1108
1109 CURSOR c3 is
1110 select HEADER_ID
1111 from oe_headers_iface_all
1112 where deliver_to_org_id in
1113 (select m.duplicate_site_id
1114 from ra_customer_merges m
1115 where m.process_flag = 'N'
1116 and m.request_id = req_id
1117 and m.set_number = set_num)
1118 for update nowait;
1119
1120 CURSOR c4 is
1121 select HEADER_ID
1122 from oe_headers_iface_all
1123 where sold_to_org_id in
1124 (select m.duplicate_id
1125 from ra_customer_merges m
1126 where m.process_flag = 'N'
1127 and m.request_id = req_id
1128 and m.set_number = set_num)
1129 for update nowait;
1130
1131
1132
1133
1134 BEGIN
1135 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Headers_IFACE()+' );
1136
1137 -- both customer and site level
1138
1139 IF( process_mode = 'LOCK' ) THEN
1140
1141 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
1142 arp_message.set_token( 'TABLE_NAME', 'oe_headers_iface_all', FALSE );
1143
1144 open c1;
1145 close c1;
1146
1147 open c2;
1148 close c2;
1149
1150 open c3;
1151 close c3;
1152
1153 open c4;
1154 close c4;
1155
1156
1157 ELSE
1158
1159 -- site level update
1160 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1161 arp_message.set_token( 'TABLE_NAME', 'oe_headers_iface_all', FALSE );
1162
1163 UPDATE oe_headers_iface_all a
1164 set ship_to_org_id = (select distinct m.customer_site_id
1165 from ra_customer_merges m
1166 where a.ship_to_org_id = m.duplicate_site_id
1167 and m.request_id = req_id
1168 and m.process_flag = 'N'
1169 and m.set_number = set_num),
1170 last_update_date = sysdate,
1171 last_updated_by = arp_standard.profile.user_id,
1172 last_update_login = arp_standard.profile.last_update_login,
1173 request_id = req_id,
1174 program_application_id =arp_standard.profile.program_application_id,
1175 program_id = arp_standard.profile.program_id,
1176 program_update_date = sysdate
1177 where ship_to_org_id in (select m.duplicate_site_id
1178 from ra_customer_merges m
1179 where m.process_flag = 'N'
1180 and m.request_id = req_id
1181 and m.set_number = set_num);
1182 g_count := sql%rowcount;
1183 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1184 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1185
1186 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1187 arp_message.set_token( 'TABLE_NAME', 'oe_headers_iface_all', FALSE );
1188
1189 UPDATE oe_headers_iface_all a
1190 set invoice_to_org_id = (select distinct m.customer_site_id
1191 from ra_customer_merges m
1192 where a.invoice_to_org_id = m.duplicate_site_id
1193 and m.request_id = req_id
1194 and m.process_flag = 'N'
1195 and m.set_number = set_num),
1196 last_update_date = sysdate,
1197 last_updated_by = arp_standard.profile.user_id,
1198 last_update_login = arp_standard.profile.last_update_login,
1199 request_id = req_id,
1200 program_application_id =arp_standard.profile.program_application_id,
1201 program_id = arp_standard.profile.program_id,
1202 program_update_date = sysdate
1203 where invoice_to_org_id in (select m.duplicate_site_id
1204 from ra_customer_merges m
1205 where m.process_flag = 'N'
1206 and m.request_id = req_id
1207 and m.set_number = set_num);
1208 g_count := sql%rowcount;
1209 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1210 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1211
1212 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1213 arp_message.set_token( 'TABLE_NAME', 'oe_headers_iface_all', FALSE );
1214
1215 UPDATE oe_headers_iface_all a
1216 set deliver_to_org_id = (select distinct m.customer_site_id
1217 from ra_customer_merges m
1218 where a.deliver_to_org_id = m.duplicate_site_id
1219 and m.request_id = req_id
1220 and m.process_flag = 'N'
1221 and m.set_number = set_num),
1222 last_update_date = sysdate,
1223 last_updated_by = arp_standard.profile.user_id,
1224 last_update_login = arp_standard.profile.last_update_login,
1225 request_id = req_id,
1226 program_application_id =arp_standard.profile.program_application_id,
1227 program_id = arp_standard.profile.program_id,
1228 program_update_date = sysdate
1229 where deliver_to_org_id in (select m.duplicate_site_id
1230 from ra_customer_merges m
1231 where m.process_flag = 'N'
1232 and m.request_id = req_id
1233 and m.set_number = set_num);
1234 g_count := sql%rowcount;
1235 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1236 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1237
1238 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1239 arp_message.set_token( 'TABLE_NAME', 'oe_headers_iface_all', FALSE );
1240
1241
1242 -- customer level update
1243 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1244 arp_message.set_token( 'TABLE_NAME', 'oe_headers_iface_all', FALSE );
1245
1246 UPDATE oe_headers_iface_all a
1247 set sold_to_org_id = (select distinct m.customer_id
1248 from ra_customer_merges m
1249 where a.sold_to_org_id = m.duplicate_id
1250 and m.process_flag = 'N'
1251 and m.request_id = req_id
1252 and m.set_number = set_num),
1253 last_update_date = sysdate,
1254 last_updated_by = arp_standard.profile.user_id,
1255 last_update_login = arp_standard.profile.last_update_login,
1256 request_id = req_id,
1257 program_application_id =arp_standard.profile.program_application_id,
1258 program_id = arp_standard.profile.program_id,
1259 program_update_date = sysdate
1260 where sold_to_org_id in (select m.duplicate_id
1261 from ra_customer_merges m
1262 where m.process_flag = 'N'
1263 and m.request_id = req_id
1264 and m.set_number = set_num);
1265
1266 g_count := sql%rowcount;
1267
1268 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1269 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1270
1271 END IF;
1272
1273 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Headers_IFACE()-' );
1274
1275 EXCEPTION
1276 When others then
1277 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Headers_IFACE-' );
1278 raise;
1279
1280 END OE_Merge_Headers_IFACE;
1281
1282 Interface tables need not be updated */
1283
1284 /*------------------------------------------------*/
1285 /*--- PRIVATE PROCEDURE OE_Merge_Header_ACKS ---*/
1286 /*------------------------------------------------*/
1287
1288
1289 Procedure OE_Merge_Header_ACKS (Req_Id IN NUMBER,
1290 Set_Num IN NUMBER,
1291 Process_Mode IN VARCHAR2)
1292 IS
1293 CURSOR c1 is
1294 select HEADER_ID
1295 from OE_HEADER_ACKS
1296 where ship_to_org_id in
1297 (select m.duplicate_site_id
1298 from ra_customer_merges m
1299 where m.process_flag = 'N'
1300 and m.request_id = req_id
1301 and m.set_number = set_num)
1302 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1303 for update nowait;
1304
1305
1306 CURSOR c2 is
1307 select HEADER_ID
1308 from OE_HEADER_ACKS
1309 where invoice_to_org_id in
1310 (select m.duplicate_site_id
1311 from ra_customer_merges m
1312 where m.process_flag = 'N'
1313 and m.request_id = req_id
1314 and m.set_number = set_num)
1315 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1316 for update nowait;
1317
1318
1319 CURSOR c3 is
1320 select HEADER_ID
1321 from OE_HEADER_ACKS
1322 where deliver_to_org_id in
1323 (select m.duplicate_site_id
1324 from ra_customer_merges m
1325 where m.process_flag = 'N'
1326 and m.request_id = req_id
1327 and m.set_number = set_num)
1328 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1329 for update nowait;
1330
1331 CURSOR c4 is
1332 --changed for bug 3196900
1333 select /* MOAC_SQL_CHANGE */ a.HEADER_ID
1334 from OE_HEADER_ACKS a, OE_ORDER_HEADERS_all h
1335 where a.sold_to_org_id in
1336 (select m.duplicate_id
1337 from ra_customer_merges m
1338 where m.process_flag = 'N'
1339 and m.request_id = req_id
1340 and m.set_number = set_num)
1341 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1342 --changed for bug 3196900
1343 and a.header_id=h.header_id
1344 for update nowait;
1345
1346 CURSOR c5 is
1347 select HEADER_ID
1348 from OE_HEADER_ACKS
1349 where sold_to_site_use_id in
1350 (select m.duplicate_id
1351 from ra_customer_merges m
1352 where m.process_flag = 'N'
1353 and m.request_id = req_id
1354 and m.set_number = set_num)
1355 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1356 for update nowait;
1357
1358 CURSOR c6 is
1359 select HEADER_ID
1360 from OE_HEADER_ACKS
1361 where end_customer_site_use_id in
1362 (select m.duplicate_id
1363 from ra_customer_merges m
1364 where m.process_flag = 'N'
1365 and m.request_id = req_id
1366 and m.set_number = set_num)
1367 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1368 for update nowait;
1369
1370 CURSOR c7 is
1371 --changed for bug 3196900
1372 select a.HEADER_ID
1373 from OE_HEADER_ACKS a,OE_ORDER_HEADERS h
1374 where a.end_customer_id in
1375 (select m.duplicate_id
1376 from ra_customer_merges m
1377 where m.process_flag = 'N'
1378 and m.request_id = req_id
1379 and m.set_number = set_num)
1380 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1381 -- changed for bug 3196900
1382 and a.header_id=h.header_id
1383 for update nowait;
1384
1385 l_profile_val VARCHAR2(30);
1386
1387 BEGIN
1388 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Header_ACKS()+' );
1389
1390 /* both customer and site level */
1391
1392 IF( process_mode = 'LOCK' ) THEN
1393
1394 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
1395 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1396
1397 open c1;
1398 close c1;
1399
1400 open c2;
1401 close c2;
1402
1403 open c3;
1404 close c3;
1405
1406 open c4;
1407 close c4;
1408
1409 open c5;
1410 close c5;
1411
1412 open c6;
1413 close c6;
1414
1415 open c7;
1416 close c7;
1417
1418 ELSE
1419
1420 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
1421 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
1422
1423 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1424 insert into HZ_CUSTOMER_MERGE_LOG (
1425 MERGE_LOG_ID,
1426 TABLE_NAME,
1427 MERGE_HEADER_ID,
1428 PRIMARY_KEY1,
1429 NUM_COL3_ORIG,
1430 NUM_COL3_NEW,
1431 ACTION_FLAG,
1432 REQUEST_ID,
1433 CREATED_BY,
1434 CREATION_DATE,
1435 LAST_UPDATE_LOGIN,
1436 LAST_UPDATE_DATE,
1437 LAST_UPDATED_BY
1438 )
1439 select
1440 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1441 'OE_HEADER_ACKS',
1442 m.CUSTOMER_MERGE_HEADER_ID,
1443 h.ORIG_SYS_DOCUMENT_REF,
1444 h.ship_to_org_id,
1445 m.customer_site_id,
1446 'U',
1447 req_id,
1448 hz_utility_pub.CREATED_BY,
1449 hz_utility_pub.CREATION_DATE,
1450 hz_utility_pub.LAST_UPDATE_LOGIN,
1451 hz_utility_pub.LAST_UPDATE_DATE,
1452 hz_utility_pub.LAST_UPDATED_BY
1453 from oe_header_acks h,
1454 ra_customer_merges m
1455 where h.ship_to_org_id=m.duplicate_site_id
1456 and m.process_flag = 'N'
1457 and m.request_id = req_id
1458 and m.set_number = set_num
1459 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1460 end if;
1461
1462 /* site level update */
1463 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1464 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1465
1466 UPDATE OE_HEADER_ACKS a
1467 set ship_to_org_id = (select distinct m.customer_site_id
1468 from ra_customer_merges m
1469 where a.ship_to_org_id = m.duplicate_site_id
1470 and m.request_id = req_id
1471 and m.process_flag = 'N'
1472 and m.set_number = set_num),
1473 last_update_date = sysdate,
1474 last_updated_by = arp_standard.profile.user_id,
1475 last_update_login = arp_standard.profile.last_update_login,
1476 request_id = req_id,
1477 program_application_id =arp_standard.profile.program_application_id,
1478 program_id = arp_standard.profile.program_id,
1479 program_update_date = sysdate
1480 where ship_to_org_id in (select m.duplicate_site_id
1481 from ra_customer_merges m
1482 where m.process_flag = 'N'
1483 and m.request_id = req_id
1484 and m.set_number = set_num)
1485 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1486 g_count := sql%rowcount;
1487 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1488 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1489
1490 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1491 insert into HZ_CUSTOMER_MERGE_LOG (
1492 MERGE_LOG_ID,
1493 TABLE_NAME,
1494 MERGE_HEADER_ID,
1495 PRIMARY_KEY1,
1496 NUM_COL2_ORIG,
1497 NUM_COL2_NEW,
1498 ACTION_FLAG,
1499 REQUEST_ID,
1500 CREATED_BY,
1501 CREATION_DATE,
1502 LAST_UPDATE_LOGIN,
1503 LAST_UPDATE_DATE,
1504 LAST_UPDATED_BY
1505 )
1506 select
1507 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1508 'OE_HEADERS_ACKS',
1509 m.CUSTOMER_MERGE_HEADER_ID,
1510 h.ORIG_SYS_DOCUMENT_REF,
1511 h.invoice_to_org_id,
1512 m.customer_site_id,
1513 'U',
1514 req_id,
1515 hz_utility_pub.CREATED_BY,
1516 hz_utility_pub.CREATION_DATE,
1517 hz_utility_pub.LAST_UPDATE_LOGIN,
1518 hz_utility_pub.LAST_UPDATE_DATE,
1519 hz_utility_pub.LAST_UPDATED_BY
1520 from oe_header_acks h,
1521 ra_customer_merges m
1522 where h.invoice_to_org_id=m.duplicate_site_id
1523 and m.process_flag = 'N'
1524 and m.request_id = req_id
1525 and m.set_number = set_num
1526 and NVL(h.ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1527 end if;
1528
1529 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1530 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1531
1532 UPDATE OE_HEADER_ACKS a
1533 set invoice_to_org_id = (select distinct m.customer_site_id
1534 from ra_customer_merges m
1535 where a.invoice_to_org_id = m.duplicate_site_id
1536 and m.request_id = req_id
1537 and m.process_flag = 'N'
1538 and m.set_number = set_num),
1539 last_update_date = sysdate,
1540 last_updated_by = arp_standard.profile.user_id,
1541 last_update_login = arp_standard.profile.last_update_login,
1542 request_id = req_id,
1543 program_application_id =arp_standard.profile.program_application_id,
1544 program_id = arp_standard.profile.program_id,
1545 program_update_date = sysdate
1546 where invoice_to_org_id in (select m.duplicate_site_id
1547 from ra_customer_merges m
1548 where m.process_flag = 'N'
1549 and m.request_id = req_id
1550 and m.set_number = set_num)
1551 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1552 g_count := sql%rowcount;
1553 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1554 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1555
1556 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1557 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1558
1559 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1560 insert into HZ_CUSTOMER_MERGE_LOG (
1561 MERGE_LOG_ID,
1562 TABLE_NAME,
1563 MERGE_HEADER_ID,
1564 PRIMARY_KEY1,
1565 NUM_COL4_ORIG,
1566 NUM_COL4_NEW,
1567 ACTION_FLAG,
1568 REQUEST_ID,
1569 CREATED_BY,
1570 CREATION_DATE,
1571 LAST_UPDATE_LOGIN,
1572 LAST_UPDATE_DATE,
1573 LAST_UPDATED_BY
1574 )
1575 select
1576 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1577 'OE_HEADER_ACKS',
1578 m.CUSTOMER_MERGE_HEADER_ID,
1579 h.ORIG_SYS_DOCUMENT_REF,
1580 h.deliver_to_org_id,
1581 m.customer_site_id,
1582 'U',
1583 req_id,
1584 hz_utility_pub.CREATED_BY,
1585 hz_utility_pub.CREATION_DATE,
1586 hz_utility_pub.LAST_UPDATE_LOGIN,
1587 hz_utility_pub.LAST_UPDATE_DATE,
1588 hz_utility_pub.LAST_UPDATED_BY
1589 from oe_header_acks h,
1590 ra_customer_merges m
1591 where h.deliver_to_org_id=m.duplicate_site_id
1592 and m.process_flag = 'N'
1593 and m.request_id = req_id
1594 and m.set_number = set_num
1595 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1596 end if;
1597
1598 UPDATE OE_HEADER_ACKS a
1599 set deliver_to_org_id = (select distinct m.customer_site_id
1600 from ra_customer_merges m
1601 where a.deliver_to_org_id = m.duplicate_site_id
1602 and m.request_id = req_id
1603 and m.process_flag = 'N'
1604 and m.set_number = set_num),
1605 last_update_date = sysdate,
1606 last_updated_by = arp_standard.profile.user_id,
1607 last_update_login = arp_standard.profile.last_update_login,
1608 request_id = req_id,
1609 program_application_id =arp_standard.profile.program_application_id,
1610 program_id = arp_standard.profile.program_id,
1611 program_update_date = sysdate
1612 where deliver_to_org_id in (select m.duplicate_site_id
1613 from ra_customer_merges m
1614 where m.process_flag = 'N'
1615 and m.request_id = req_id
1616 and m.set_number = set_num)
1617 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1618 g_count := sql%rowcount;
1619 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1620 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1621
1622 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1623 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1624
1625
1626 /* customer level update */
1627 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1628 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1629
1630 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1631 insert into HZ_CUSTOMER_MERGE_LOG (
1632 MERGE_LOG_ID,
1633 TABLE_NAME,
1634 MERGE_HEADER_ID,
1635 PRIMARY_KEY1,
1636 NUM_COL1_ORIG,
1637 NUM_COL1_NEW,
1638 ACTION_FLAG,
1639 REQUEST_ID,
1640 CREATED_BY,
1641 CREATION_DATE,
1642 LAST_UPDATE_LOGIN,
1643 LAST_UPDATE_DATE,
1644 LAST_UPDATED_BY
1645 )
1646 select
1647 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1648 'OE_HEADER_ACKS',
1649 m.CUSTOMER_MERGE_HEADER_ID,
1650 h.ORIG_SYS_DOCUMENT_REF,
1651 h.sold_to_org_id,
1652 m.customer_site_id,
1653 'U',
1654 req_id,
1655 hz_utility_pub.CREATED_BY,
1656 hz_utility_pub.CREATION_DATE,
1657 hz_utility_pub.LAST_UPDATE_LOGIN,
1658 hz_utility_pub.LAST_UPDATE_DATE,
1659 hz_utility_pub.LAST_UPDATED_BY
1660 from oe_header_acks h,
1661 ra_customer_merges m
1662 where h.sold_to_org_id=m.duplicate_site_id
1663 and m.process_flag = 'N'
1664 and m.request_id = req_id
1665 and m.set_number = set_num
1666 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1667 end if;
1668
1669 UPDATE OE_HEADER_ACKS a
1670 set sold_to_org_id = (select distinct m.customer_id
1671 from ra_customer_merges m
1672 where a.sold_to_org_id = m.duplicate_id
1673 and m.process_flag = 'N'
1674 and m.request_id = req_id
1675 and m.set_number = set_num),
1676 last_update_date = sysdate,
1677 last_updated_by = arp_standard.profile.user_id,
1678 last_update_login = arp_standard.profile.last_update_login,
1679 request_id = req_id,
1680 program_application_id =arp_standard.profile.program_application_id,
1681 program_id = arp_standard.profile.program_id,
1682 program_update_date = sysdate
1683 where sold_to_org_id in (select m.duplicate_id
1684 from ra_customer_merges m
1685 where m.process_flag = 'N'
1686 and m.request_id = req_id
1687 and m.set_number = set_num)
1688 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1689 --changed for bug 3196900
1690 and a.header_id in (select header_id from oe_order_headers);
1691
1692 g_count := sql%rowcount;
1693
1694 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1695 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1696
1697 -- sold_to_site_use_id merge
1698
1699 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1700 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1701
1702 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1703 insert into HZ_CUSTOMER_MERGE_LOG (
1704 MERGE_LOG_ID,
1705 TABLE_NAME,
1706 MERGE_HEADER_ID,
1707 PRIMARY_KEY1,
1708 NUM_COL5_ORIG,
1709 NUM_COL5_NEW,
1710 ACTION_FLAG,
1711 REQUEST_ID,
1712 CREATED_BY,
1713 CREATION_DATE,
1714 LAST_UPDATE_LOGIN,
1715 LAST_UPDATE_DATE,
1716 LAST_UPDATED_BY
1717 )
1718 select
1719 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1720 'OE_HEADER_ACKS',
1721 m.CUSTOMER_MERGE_HEADER_ID,
1722 h.ORIG_SYS_DOCUMENT_REF,
1723 h.sold_to_site_use_id,
1724 m.customer_site_id,
1725 'U',
1726 req_id,
1727 hz_utility_pub.CREATED_BY,
1728 hz_utility_pub.CREATION_DATE,
1729 hz_utility_pub.LAST_UPDATE_LOGIN,
1730 hz_utility_pub.LAST_UPDATE_DATE,
1731 hz_utility_pub.LAST_UPDATED_BY
1732 from oe_header_acks h,
1733 ra_customer_merges m
1734 where
1735 h.sold_to_site_use_id=m.duplicate_site_id
1736 and
1737 m.process_flag = 'N'
1738 and m.request_id = req_id
1739 and m.set_number = set_num
1740 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1741 end if;
1742
1743 UPDATE OE_HEADER_ACKS a
1744 set sold_to_site_use_id = (select distinct m.customer_id
1745 from ra_customer_merges m
1746 where a.sold_to_site_use_id = m.duplicate_id
1747 and m.process_flag = 'N'
1748 and m.request_id = req_id
1749 and m.set_number = set_num),
1750 last_update_date = sysdate,
1751 last_updated_by = arp_standard.profile.user_id,
1752 last_update_login = arp_standard.profile.last_update_login,
1753 request_id = req_id,
1754 program_application_id =arp_standard.profile.program_application_id,
1755 program_id = arp_standard.profile.program_id,
1756 program_update_date = sysdate
1757 where sold_to_site_use_id in (select m.duplicate_id
1758 from ra_customer_merges m
1759 where m.process_flag = 'N'
1760 and m.request_id = req_id
1761 and m.set_number = set_num)
1762 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1763
1764 g_count := sql%rowcount;
1765
1766 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1767 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1768
1769
1770 -- end_customer_site_use_id merge
1771
1772 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1773 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1774
1775 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1776 insert into HZ_CUSTOMER_MERGE_LOG (
1777 MERGE_LOG_ID,
1778 TABLE_NAME,
1779 MERGE_HEADER_ID,
1780 PRIMARY_KEY1,
1781 NUM_COL6_ORIG,
1782 NUM_COL6_NEW,
1783 ACTION_FLAG,
1784 REQUEST_ID,
1785 CREATED_BY,
1786 CREATION_DATE,
1787 LAST_UPDATE_LOGIN,
1788 LAST_UPDATE_DATE,
1789 LAST_UPDATED_BY
1790 )
1791 select
1792 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1793 'OE_HEADER_ACKS',
1794 m.CUSTOMER_MERGE_HEADER_ID,
1795 h.ORIG_SYS_DOCUMENT_REF,
1796 h.end_customer_site_use_id,
1797 m.customer_site_id,
1798 'U',
1799 req_id,
1800 hz_utility_pub.CREATED_BY,
1801 hz_utility_pub.CREATION_DATE,
1802 hz_utility_pub.LAST_UPDATE_LOGIN,
1803 hz_utility_pub.LAST_UPDATE_DATE,
1804 hz_utility_pub.LAST_UPDATED_BY
1805 from oe_header_acks h,
1806 ra_customer_merges m
1807 where
1808 h.end_customer_site_use_id=m.duplicate_site_id
1809 and
1810 m.process_flag = 'N'
1811 and m.request_id = req_id
1812 and m.set_number = set_num
1813 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1814 end if;
1815
1816 UPDATE OE_HEADER_ACKS a
1817 set end_customer_site_use_id = (select distinct m.customer_id
1818 from ra_customer_merges m
1819 where a.end_customer_site_use_id = m.duplicate_id
1820 and m.process_flag = 'N'
1821 and m.request_id = req_id
1822 and m.set_number = set_num),
1823 last_update_date = sysdate,
1824 last_updated_by = arp_standard.profile.user_id,
1825 last_update_login = arp_standard.profile.last_update_login,
1826 request_id = req_id,
1827 program_application_id =arp_standard.profile.program_application_id,
1828 program_id = arp_standard.profile.program_id,
1829 program_update_date = sysdate
1830 where
1831 end_customer_site_use_id in (select m.duplicate_id
1832 from ra_customer_merges m
1833 where m.process_flag = 'N'
1834 and m.request_id = req_id
1835 and m.set_number = set_num)
1836 and
1837 NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1838
1839 g_count := sql%rowcount;
1840
1841 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1842 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1843
1844 /* customer level update */
1845 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
1846 arp_message.set_token( 'TABLE_NAME', 'OE_HEADER_ACKS', FALSE );
1847
1848 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
1849 insert into HZ_CUSTOMER_MERGE_LOG (
1850 MERGE_LOG_ID,
1851 TABLE_NAME,
1852 MERGE_HEADER_ID,
1853 PRIMARY_KEY1,
1854 NUM_COL7_ORIG,
1855 NUM_COL7_NEW,
1856 ACTION_FLAG,
1857 REQUEST_ID,
1858 CREATED_BY,
1859 CREATION_DATE,
1860 LAST_UPDATE_LOGIN,
1861 LAST_UPDATE_DATE,
1862 LAST_UPDATED_BY
1863 )
1864 select
1865 HZ_CUSTOMER_MERGE_LOG_s.nextval,
1866 'OE_HEADER_ACKS',
1867 m.CUSTOMER_MERGE_HEADER_ID,
1868 h.ORIG_SYS_DOCUMENT_REF,
1869 h.end_customer_id,
1870 m.customer_site_id,
1871 'U',
1872 req_id,
1873 hz_utility_pub.CREATED_BY,
1874 hz_utility_pub.CREATION_DATE,
1875 hz_utility_pub.LAST_UPDATE_LOGIN,
1876 hz_utility_pub.LAST_UPDATE_DATE,
1877 hz_utility_pub.LAST_UPDATED_BY
1878 from oe_header_acks h,
1879 ra_customer_merges m
1880 where
1881 h.end_customer_id=m.duplicate_site_id
1882 and
1883 m.process_flag = 'N'
1884 and m.request_id = req_id
1885 and m.set_number = set_num
1886 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
1887 end if;
1888
1889 UPDATE OE_HEADER_ACKS a
1890 set end_customer_id = (select distinct m.customer_id
1891 from ra_customer_merges m
1892 where a.end_customer_id = m.duplicate_id
1893 and m.process_flag = 'N'
1894 and m.request_id = req_id
1895 and m.set_number = set_num),
1896 last_update_date = sysdate,
1897 last_updated_by = arp_standard.profile.user_id,
1898 last_update_login = arp_standard.profile.last_update_login,
1899 request_id = req_id,
1900 program_application_id =arp_standard.profile.program_application_id,
1901 program_id = arp_standard.profile.program_id,
1902 program_update_date = sysdate
1903 where end_customer_id in (select m.duplicate_id
1904 from ra_customer_merges m
1905 where m.process_flag = 'N'
1906 and m.request_id = req_id
1907 and m.set_number = set_num)
1908 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
1909 --changed for bug 3196900
1910 and a.header_id in (select header_id from oe_order_headers);
1911
1912 g_count := sql%rowcount;
1913
1914 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
1915 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
1916
1917 END IF;
1918
1919 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Header_ACKS()-' );
1920
1921 EXCEPTION
1922 When others then
1923 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Header_ACKS-' );
1924 raise;
1925
1926 END OE_Merge_Header_ACKS;
1927
1928 /*------------------------------------------------*/
1929 /*--- PRIVATE PROCEDURE OE_Merge_Lines ---*/
1930 /*------------------------------------------------*/
1931
1932 Procedure OE_Merge_Lines (Req_Id IN NUMBER,
1933 Set_Num IN NUMBER,
1934 Process_Mode IN VARCHAR2)
1935 IS
1936
1937 CURSOR MERGE_SITES IS
1938 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
1939 from ra_customer_merges m
1940 where m.process_flag = 'N'
1941 and m.request_id = req_id
1942 and m.set_number = set_num;
1943
1944 /* Commented for bug 6449945
1945 --bug6071855
1946 CURSOR MERGE_LINES IS
1947 SELECT / *+ LEADING (M) PARALLEL (L) PARALLEL (M) * /
1948 l.line_id ,
1949 l.header_id,
1950 l.last_update_date,
1951 l.line_id,
1952 'Y',
1953 sold_to_org_id,
1954 invoice_to_org_id,
1955 ship_to_org_id,
1956 intmed_ship_to_org_id,
1957 deliver_to_org_id,
1958 end_customer_site_use_id,
1959 end_customer_id,
1960 m.customer_merge_id
1961 FROM RA_CUSTOMER_MERGES M,
1962 -- change for bug 3196900
1963 -- OE_ORDER_LINES_ALL L
1964 OE_ORDER_LINES L
1965 WHERE
1966 (l.sold_to_org_id = m.duplicate_id
1967 or l.invoice_to_org_id = m.duplicate_site_id
1968 or l.ship_to_org_id = m.duplicate_site_id
1969 or l.intmed_ship_to_org_id = m.duplicate_site_id
1970 or l.end_customer_site_use_id = m.duplicate_site_id
1971 or l.end_customer_id = m.duplicate_id
1972 or l.deliver_to_org_id = m.duplicate_site_id)
1973 and m.process_flag = 'N'
1974 and m.request_id = req_id
1975 and m.set_number = set_num
1976 for update nowait;
1977 */
1978
1979 CURSOR MERGE_LINES IS
1980 SELECT /*+ PARALLEL (L) PARALLEL (M1) PARALLEL(M2)
1981 PARALLEL (M3) PARALLEL (M4) PARALLEL (M5)
1982 PARALLEL (M6) PARALLEL (M7) */
1983 L.LINE_ID , L.HEADER_ID, L.LAST_UPDATE_DATE, L.LINE_ID, 'Y',
1984 SOLD_TO_ORG_ID, INVOICE_TO_ORG_ID, SHIP_TO_ORG_ID,
1985 INTMED_SHIP_TO_ORG_ID, DELIVER_TO_ORG_ID,
1986 END_CUSTOMER_SITE_USE_ID, END_CUSTOMER_ID,
1987 NVL(M1.CUSTOMER_MERGE_ID,NVL(M2.CUSTOMER_MERGE_ID,NVL(M3.CUSTOMER_MERGE_ID,
1988 NVL(M4.CUSTOMER_MERGE_ID,NVL(M5.CUSTOMER_MERGE_ID,
1989 NVL(M6.CUSTOMER_MERGE_ID,M7.CUSTOMER_MERGE_ID))))))
1990 FROM RA_CUSTOMER_MERGES M1,
1991 RA_CUSTOMER_MERGES M2,
1992 RA_CUSTOMER_MERGES M3,
1993 RA_CUSTOMER_MERGES M4,
1994 RA_CUSTOMER_MERGES M5,
1995 RA_CUSTOMER_MERGES M6,
1996 RA_CUSTOMER_MERGES M7,
1997 OE_ORDER_LINES L
1998 WHERE ( L.SOLD_TO_ORG_ID = M1.DUPLICATE_ID(+)
1999 AND L.INVOICE_TO_ORG_ID = M2.DUPLICATE_SITE_ID(+)
2000 AND L.SHIP_TO_ORG_ID = M3.DUPLICATE_SITE_ID(+)
2001 AND L.INTMED_SHIP_TO_ORG_ID = M4.DUPLICATE_SITE_ID(+)
2002 AND L.END_CUSTOMER_SITE_USE_ID = M5.DUPLICATE_SITE_ID(+)
2003 AND L.END_CUSTOMER_ID = M6.DUPLICATE_SITE_ID(+)
2004 AND L.DELIVER_TO_ORG_ID = M7.DUPLICATE_ID(+) )
2005 AND (M1.DUPLICATE_SITE_ID IS NOT NULL
2006 OR M2.DUPLICATE_ID IS NOT NULL
2007 OR M3.DUPLICATE_ID IS NOT NULL
2008 OR M4.DUPLICATE_ID IS NOT NULL
2009 OR M5.DUPLICATE_ID IS NOT NULL
2010 OR M6.DUPLICATE_ID IS NOT NULL
2011 OR M7.DUPLICATE_SITE_ID IS NOT NULL)
2012 AND M1.PROCESS_FLAG(+) = 'N'
2013 AND M2.PROCESS_FLAG(+) = 'N'
2014 AND M3.PROCESS_FLAG(+) = 'N'
2015 AND M4.PROCESS_FLAG(+) = 'N'
2016 AND M5.PROCESS_FLAG(+) = 'N'
2017 AND M6.PROCESS_FLAG(+) = 'N'
2018 AND M7.PROCESS_FLAG(+) = 'N'
2019 AND M1.REQUEST_ID(+) = req_id
2020 AND M2.REQUEST_ID(+) = req_id
2021 AND M3.REQUEST_ID(+) = req_id
2022 AND M4.REQUEST_ID(+) = req_id
2023 AND M5.REQUEST_ID(+) = req_id
2024 AND M6.REQUEST_ID(+) = req_id
2025 AND M7.REQUEST_ID(+) = req_id
2026 AND M1.SET_NUMBER(+) = set_num
2027 AND M2.SET_NUMBER(+) = set_num
2028 AND M3.SET_NUMBER(+) = set_num
2029 AND M4.SET_NUMBER(+) = set_num
2030 AND M5.SET_NUMBER(+) = set_num
2031 AND M6.SET_NUMBER(+) = set_num
2032 AND M7.SET_NUMBER(+) = set_num
2033 FOR UPDATE NOWAIT;
2034
2035 /* Commented for bug 6449945
2036 --bug6071855
2037 CURSOR MERGE_LINES_2 IS
2038 SELECT / *+ LEADING (M) PARALLEL (L) PARALLEL (M) * /
2039 l.line_id ,
2040 l.header_id,
2041 l.last_update_date,
2042 l.line_id,
2043 'Y',
2044 sold_to_org_id,
2045 invoice_to_org_id,
2046 ship_to_org_id,
2047 intmed_ship_to_org_id,
2048 deliver_to_org_id,
2049 end_customer_site_use_id,
2050 end_customer_id,
2051 m.customer_merge_id
2052 FROM RA_CUSTOMER_MERGES M,
2053 -- changed for bug 3196900
2054 -- OE_ORDER_LINES_ALL L
2055 OE_ORDER_LINES L
2056 WHERE
2057 (l.sold_to_org_id = m.duplicate_id
2058 or l.invoice_to_org_id = m.duplicate_site_id
2059 or l.ship_to_org_id = m.duplicate_site_id
2060 or l.intmed_ship_to_org_id = m.duplicate_site_id
2061 or l.end_customer_site_use_id = m.duplicate_site_id
2062 or l.end_customer_id = m.duplicate_id
2063 or l.deliver_to_org_id = m.duplicate_site_id)
2064 and m.process_flag = 'N'
2065 and m.request_id = req_id
2066 and m.set_number = set_num;
2067 */
2068
2069 CURSOR MERGE_LINES_2 IS
2070 SELECT /*+ PARALLEL (L) PARALLEL (M1) PARALLEL(M2)
2071 PARALLEL (M3) PARALLEL (M4) PARALLEL (M5)
2072 PARALLEL (M6) PARALLEL (M7) */
2073 L.LINE_ID , L.HEADER_ID, L.LAST_UPDATE_DATE, L.LINE_ID, 'Y',
2074 SOLD_TO_ORG_ID, INVOICE_TO_ORG_ID, SHIP_TO_ORG_ID,
2075 INTMED_SHIP_TO_ORG_ID, DELIVER_TO_ORG_ID,
2076 END_CUSTOMER_SITE_USE_ID, END_CUSTOMER_ID,
2077 NVL(M1.CUSTOMER_MERGE_ID,NVL(M2.CUSTOMER_MERGE_ID,NVL(M3.CUSTOMER_MERGE_ID,
2078 NVL(M4.CUSTOMER_MERGE_ID,NVL(M5.CUSTOMER_MERGE_ID,
2079 NVL(M6.CUSTOMER_MERGE_ID,M7.CUSTOMER_MERGE_ID))))))
2080 FROM RA_CUSTOMER_MERGES M1,
2081 RA_CUSTOMER_MERGES M2,
2082 RA_CUSTOMER_MERGES M3,
2083 RA_CUSTOMER_MERGES M4,
2084 RA_CUSTOMER_MERGES M5,
2085 RA_CUSTOMER_MERGES M6,
2086 RA_CUSTOMER_MERGES M7,
2087 OE_ORDER_LINES L
2088 WHERE ( L.SOLD_TO_ORG_ID = M1.DUPLICATE_ID(+)
2089 AND L.INVOICE_TO_ORG_ID = M2.DUPLICATE_SITE_ID(+)
2090 AND L.SHIP_TO_ORG_ID = M3.DUPLICATE_SITE_ID(+)
2091 AND L.INTMED_SHIP_TO_ORG_ID = M4.DUPLICATE_SITE_ID(+)
2092 AND L.END_CUSTOMER_SITE_USE_ID = M5.DUPLICATE_SITE_ID(+)
2093 AND L.END_CUSTOMER_ID = M6.DUPLICATE_SITE_ID(+)
2094 AND L.DELIVER_TO_ORG_ID = M7.DUPLICATE_ID(+) )
2095 AND (M1.DUPLICATE_SITE_ID IS NOT NULL
2096 OR M2.DUPLICATE_ID IS NOT NULL
2097 OR M3.DUPLICATE_ID IS NOT NULL
2098 OR M4.DUPLICATE_ID IS NOT NULL
2099 OR M5.DUPLICATE_ID IS NOT NULL
2100 OR M6.DUPLICATE_ID IS NOT NULL
2101 OR M7.DUPLICATE_SITE_ID IS NOT NULL)
2102 AND M1.PROCESS_FLAG(+) = 'N'
2103 AND M2.PROCESS_FLAG(+) = 'N'
2104 AND M3.PROCESS_FLAG(+) = 'N'
2105 AND M4.PROCESS_FLAG(+) = 'N'
2106 AND M5.PROCESS_FLAG(+) = 'N'
2107 AND M6.PROCESS_FLAG(+) = 'N'
2108 AND M7.PROCESS_FLAG(+) = 'N'
2109 AND M1.REQUEST_ID(+) = req_id
2110 AND M2.REQUEST_ID(+) = req_id
2111 AND M3.REQUEST_ID(+) = req_id
2112 AND M4.REQUEST_ID(+) = req_id
2113 AND M5.REQUEST_ID(+) = req_id
2114 AND M6.REQUEST_ID(+) = req_id
2115 AND M7.REQUEST_ID(+) = req_id
2116 AND M1.SET_NUMBER(+) = set_num
2117 AND M2.SET_NUMBER(+) = set_num
2118 AND M3.SET_NUMBER(+) = set_num
2119 AND M4.SET_NUMBER(+) = set_num
2120 AND M5.SET_NUMBER(+) = set_num
2121 AND M6.SET_NUMBER(+) = set_num
2122 AND M7.SET_NUMBER(+) = set_num;
2123
2124 line_line_id_tab num_table;
2125 line_sold_to_org_id_tab num_table;
2126 line_invoice_to_org_id_tab num_table;
2127 line_ship_to_org_id_tab num_table;
2128 line_intmed_ship_to_org_id_tab num_table;
2129 line_deliver_to_org_id_tab num_table;
2130 line_end_cust_site_use_id num_table;
2131 line_end_cust_id_tab num_table;
2132
2133 old_line_sold_to_org_id_tab num_table;
2134 old_line_invoice_to_org_id_tab num_table;
2135 old_line_ship_to_org_id_tab num_table;
2136 old_intmed_ship_to_org_id_tab num_table;
2137 old_line_deliver_to_org_id_tab num_table;
2138 old_line_end_cust_site_use_id num_table;
2139 old_line_end_cust_id_tab num_table;
2140
2141 MERGE_HEADER_ID_LIST MERGE_ID_LIST_TYPE;
2142 l_profile_val VARCHAR2(30);
2143
2144 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
2145 customer_id_tab num_table_binary_int;
2146 customer_site_id_tab num_table_binary_int;
2147
2148 dbi_local_line_header_id_tab num_bin_table :=num_bin_table();
2149 dbi_local_line_update_date_tab date_bin_table :=date_bin_table();
2150 dbi_local_line_line_id_tab num_bin_table :=num_bin_table();
2151 dbi_local_line_status_tab var_bin_table :=var_bin_table();
2152 l_global_count number :=0;
2153
2154 BEGIN
2155
2156 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Lines()+' );
2157
2158 IF (process_mode = 'LOCK') THEN
2159
2160 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
2161 arp_message.set_token( 'TABLE_NAME', 'oe_order_lines_all', FALSE );
2162
2163 open merge_lines;
2164 close merge_lines;
2165
2166 ELSE
2167
2168 FOR C IN MERGE_SITES LOOP
2169 IF c.duplicate_id IS NOT NULL
2170 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
2171 customer_id_tab(c.duplicate_id) := c.customer_id;
2172 END IF;
2173
2174 IF c.duplicate_site_id IS NOT NULL
2175 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
2176 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
2177 END IF;
2178
2179 END LOOP;
2180
2181 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
2182 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
2183
2184 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Lines():1' );
2185
2186 OPEN merge_lines_2;
2187 LOOP
2188 FETCH merge_lines_2
2189 BULK COLLECT INTO line_line_id_tab,
2190 dbi_local_line_header_id_tab,
2191 dbi_local_line_update_date_tab,
2192 dbi_local_line_line_id_tab,
2193 dbi_local_line_status_tab,
2194 line_sold_to_org_id_tab,
2195 line_invoice_to_org_id_tab,
2196 line_ship_to_org_id_tab,
2197 line_intmed_ship_to_org_id_tab,
2198 line_deliver_to_org_id_tab,
2199 line_end_cust_site_use_id,
2200 line_end_cust_id_tab,
2201 MERGE_HEADER_ID_LIST
2202 LIMIT 20000;
2203
2204
2205 arp_message.set_line('local line_hdr_id_count='||dbi_local_line_header_id_tab.COUNT);
2206 arp_message.set_line('local line_line__id_count='||dbi_local_line_line_id_tab.COUNT);
2207 arp_message.set_line('local line_date_count='||dbi_local_line_update_date_tab.COUNT);
2208 arp_message.set_line('local line_status_count='||dbi_local_line_status_tab.COUNT);
2209 IF l_dbi_profile = 'Y' then
2210 IF dbi_local_line_update_date_tab.COUNT > 0 then
2211
2212
2213 IF dbi_line_update_date_tab.COUNT > 0 then
2214 l_global_count := dbi_line_update_date_tab.COUNT;
2215 ELSE
2216 l_global_count := 0;
2217 END IF;
2218
2219 dbi_line_update_date_tab.EXTEND(dbi_local_line_update_date_tab.COUNT);
2220 dbi_line_header_id_tab.EXTEND(dbi_local_line_update_date_tab.COUNT);
2221 dbi_line_line_id_tab.EXTEND(dbi_local_line_update_date_tab.COUNT);
2222 dbi_line_status_tab.EXTEND(dbi_local_line_update_date_tab.COUNT);
2223
2224 END IF;
2225 END IF;
2226 old_intmed_ship_to_org_id_tab := line_intmed_ship_to_org_id_tab;
2227 old_line_sold_to_org_id_tab := line_sold_to_org_id_tab;
2228 old_line_invoice_to_org_id_tab := line_invoice_to_org_id_tab;
2229 old_line_ship_to_org_id_tab := line_ship_to_org_id_tab;
2230 old_line_deliver_to_org_id_tab := line_deliver_to_org_id_tab;
2231 old_line_end_cust_site_use_id := line_end_cust_site_use_id;
2232 old_line_end_cust_id_tab := line_end_cust_id_tab;
2233
2234 if line_line_id_tab.COUNT <> 0 then
2235 for i in line_line_id_tab.FIRST..line_line_id_tab.LAST LOOP
2236
2237 IF l_dbi_profile = 'Y' then
2238 dbi_line_update_date_tab(l_global_count + i):=dbi_local_line_update_date_tab(i);
2239 dbi_line_header_id_tab(l_global_count + i):=dbi_local_line_header_id_tab(i);
2240 dbi_line_line_id_tab(l_global_count + i):=dbi_local_line_line_id_tab(i);
2241 dbi_line_status_tab(l_global_count + i):=dbi_local_line_status_tab(i);
2242 END IF;
2243
2244
2245 -- Access directly by the index position of the ids in the
2246 -- values stored in customer_id_tab and customer_site_id_tab tables
2247
2248 if customer_id_tab.exists(line_sold_to_org_id_tab(i)) then
2249 line_sold_to_org_id_tab(i):= customer_id_tab(line_sold_to_org_id_tab(i));
2250 end if;
2251
2252 if customer_site_id_tab.exists(line_invoice_to_org_id_tab(i)) then
2253 line_invoice_to_org_id_tab(i):= customer_site_id_tab(line_invoice_to_org_id_tab(i));
2254 end if;
2255
2256 if customer_site_id_tab.exists(line_ship_to_org_id_tab(i)) then
2257 line_ship_to_org_id_tab(i):= customer_site_id_tab(line_ship_to_org_id_tab(i));
2258 end if;
2259
2260 if customer_site_id_tab.exists(line_intmed_ship_to_org_id_tab(i)) then
2261 line_intmed_ship_to_org_id_tab(i):= customer_site_id_tab(line_intmed_ship_to_org_id_tab(i));
2262 end if;
2263
2264 if customer_site_id_tab.exists(line_deliver_to_org_id_tab(i)) then
2265 line_deliver_to_org_id_tab(i):= customer_site_id_tab(line_deliver_to_org_id_tab(i));
2266 end if;
2267
2268 if customer_site_id_tab.exists(line_end_cust_site_use_id(i)) then
2269 line_end_cust_site_use_id(i):= customer_site_id_tab(line_end_cust_site_use_id(i));
2270 end if;
2271
2272 if customer_id_tab.exists(line_end_cust_id_tab(i)) then
2273 line_end_cust_id_tab(i):= customer_id_tab(line_end_cust_id_tab(i));
2274 end if;
2275
2276 end loop;
2277 end if;
2278
2279 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
2280 IF line_line_id_tab.COUNT <> 0 THEN
2281 forall i in line_line_id_tab.FIRST..line_line_id_tab.LAST
2282 --insert audit information for customer merge
2283 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
2284 MERGE_LOG_ID,
2285 TABLE_NAME,
2286 MERGE_HEADER_ID,
2287 PRIMARY_KEY_ID1,
2288 NUM_COL1_ORIG,
2289 NUM_COL1_NEW,
2290 NUM_COL2_ORIG,
2291 NUM_COL2_NEW,
2292 NUM_COL3_ORIG,
2293 NUM_COL3_NEW,
2294 NUM_COL4_ORIG,
2295 NUM_COL4_NEW,
2296 NUM_COL5_ORIG,
2297 NUM_COL5_NEW,
2298 NUM_COL6_ORIG,
2299 NUM_COL6_NEW,
2300 ACTION_FLAG,
2301 REQUEST_ID,
2302 CREATED_BY,
2303 CREATION_DATE,
2304 LAST_UPDATE_LOGIN,
2305 LAST_UPDATE_DATE,
2306 LAST_UPDATED_BY
2307 ) VALUES (
2308 HZ_CUSTOMER_MERGE_LOG_s.nextval,
2309 'OE_ORDER_LINES_ALL',
2310 MERGE_HEADER_ID_LIST(I),
2311 line_line_id_tab(I),
2312 line_sold_to_org_id_tab(I),
2313 decode(line_sold_to_org_id_tab(I),NULL,old_line_sold_to_org_id_tab(I),line_sold_to_org_id_tab(i)),
2314 line_invoice_to_org_id_tab(I),
2315 decode(line_invoice_to_org_id_tab(I),NULL,old_line_invoice_to_org_id_tab(I),line_invoice_to_org_id_tab(i)),
2316 line_ship_to_org_id_tab(I),
2317 decode(line_ship_to_org_id_tab(I),NULL,old_line_ship_to_org_id_tab(I),line_ship_to_org_id_tab(i)),
2318 line_deliver_to_org_id_tab(I),
2319 decode(line_deliver_to_org_id_tab(I),NULL,old_line_deliver_to_org_id_tab(I),line_deliver_to_org_id_tab(i)),
2320 line_end_cust_site_use_id(I),
2321 decode(line_end_cust_site_use_id(I),NULL,old_line_end_cust_site_use_id(I),line_end_cust_site_use_id(i)),
2322 line_end_cust_id_tab(I),
2323 decode(line_end_cust_id_tab(I),NULL,old_line_end_cust_id_tab(I),line_end_cust_id_tab(i)),
2324 'U',
2325 req_id,
2326 hz_utility_pub.CREATED_BY,
2327 hz_utility_pub.CREATION_DATE,
2328 hz_utility_pub.LAST_UPDATE_LOGIN,
2329 hz_utility_pub.LAST_UPDATE_DATE,
2330 hz_utility_pub.LAST_UPDATED_BY
2331 );
2332
2333 end if;
2334 end if;
2335
2336 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2337 arp_message.set_token( 'TABLE_NAME', 'oe_order_lines_all', FALSE );
2338 IF line_line_id_tab.COUNT <> 0 THEN
2339 FORALL i in line_line_id_tab.FIRST..line_line_id_tab.LAST
2340 UPDATE OE_ORDER_LINES_ALL L
2341 SET sold_to_org_id = decode(line_sold_to_org_id_tab(i),null,sold_to_org_id,line_sold_to_org_id_tab(i)),
2342 invoice_to_org_id = decode(line_invoice_to_org_id_tab(i),null,invoice_to_org_id,line_invoice_to_org_id_tab(i)),
2343 ship_to_org_id = decode(line_ship_to_org_id_tab(i),null,ship_to_org_id,line_ship_to_org_id_tab(i)),
2344 intmed_ship_to_org_id = decode(line_intmed_ship_to_org_id_tab(i),null,intmed_ship_to_org_id,line_intmed_ship_to_org_id_tab(i)),
2345 deliver_to_org_id = decode(line_deliver_to_org_id_tab(i),null,deliver_to_org_id,line_deliver_to_org_id_tab(i)),
2346 end_customer_site_use_id = decode(line_end_cust_site_use_id(i),null,end_customer_site_use_id,line_end_cust_site_use_id(i)),
2347 end_customer_id = decode(line_end_cust_id_tab(i),null,end_customer_id,line_end_cust_id_tab(i)),
2348 last_update_date = sysdate,
2349 last_updated_by = arp_standard.profile.user_id,
2350 last_update_login = arp_standard.profile.last_update_login,
2351 request_id = req_id,
2352 program_application_id = arp_standard.profile.program_application_id ,
2353 program_id = arp_standard.profile.program_id,
2354 program_update_date = SYSDATE,
2355 lock_control = lock_control+1
2356 WHERE line_id = line_line_id_tab(i)
2357 RETURNING last_update_date bulk collect into dbi_line_update_date_tab;
2358
2359 g_count := sql%rowcount;
2360
2361 ELSE
2362 g_count := 0;
2363 END IF;
2364 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
2365 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
2366 EXIT WHEN merge_lines_2%NOTFOUND;
2367 line_line_id_tab.DELETE;
2368 line_sold_to_org_id_tab.DELETE;
2369 line_invoice_to_org_id_tab.DELETE;
2370 line_ship_to_org_id_tab.DELETE;
2371 line_intmed_ship_to_org_id_tab.DELETE;
2372 line_deliver_to_org_id_tab.DELETE;
2373 line_end_cust_site_use_id.DELETE;
2374 line_end_cust_id_tab.DELETE;
2375
2376 old_line_sold_to_org_id_tab.DELETE;
2377 old_line_invoice_to_org_id_tab.DELETE;
2378 old_line_ship_to_org_id_tab.DELETE;
2379 old_intmed_ship_to_org_id_tab.DELETE;
2380 old_line_deliver_to_org_id_tab.DELETE;
2381 old_line_end_cust_site_use_id.DELETE;
2382 old_line_end_cust_id_tab.DELETE;
2383
2384 END LOOP; -- cursor merge_lines_2
2385
2386 CLOSE merge_lines_2;
2387 END IF;
2388 customer_id_tab.DELETE;
2389 customer_site_id_tab.DELETE;
2390 dbi_local_line_header_id_tab.DELETE;
2391 dbi_local_line_update_date_tab.DELETE;
2392 dbi_local_line_line_id_tab.DELETE;
2393 dbi_local_line_status_tab.DELETE;
2394
2395 arp_message.set_line(' line_hdr_id_count='||dbi_line_header_id_tab.COUNT);
2396 arp_message.set_line(' line_line__id_count='||dbi_line_line_id_tab.COUNT);
2397 arp_message.set_line(' line_date_count='||dbi_line_update_date_tab.COUNT);
2398 arp_message.set_line(' line_status_count='||dbi_line_status_tab.COUNT);
2399 arp_message.set_line( ' END OE_CUST_MERGE.OE_Merge_Lines()-' );
2400
2401 EXCEPTION
2402 when others then
2403 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Lines-' );
2404 raise;
2405
2406 END OE_Merge_Lines;
2407
2408 /*-------------------------------------------------*/
2409 /*--- PRIVATE PROCEDURE OE_Merge_Lines_History ---*/
2410 /*-------------------------------------------------*/
2411
2412 Procedure OE_Merge_Lines_History (Req_Id IN NUMBER,
2413 Set_Num IN NUMBER,
2414 Process_Mode IN VARCHAR2)
2415 IS
2416
2417 CURSOR MERGE_SITES IS
2418 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
2419 from ra_customer_merges m
2420 where m.process_flag = 'N'
2421 and m.request_id = req_id
2422 and m.set_number = set_num;
2423 /* MOAC_SQL_CHANGE */
2424 --bug6071855
2425 CURSOR MERGE_LINES_HISTORY IS
2426 SELECT /*+ ordered PARALLEL(L) PARALLEL (LN)
2427 PARALLEL(M1) PARALLEL(M2) PARALLEL(M3) PARALLEL(M4)
2428 PARALLEL (M5) PARALLEL(M6) PARALLEL(M7)
2429 PARALLEL (LN) */
2430 l.line_id ,
2431 -- changed for bug 3196900 added l. for every attribute
2432 l.sold_to_org_id,
2433 l.invoice_to_org_id,
2434 l.ship_to_org_id,
2435 l.intmed_ship_to_org_id,
2436 l.deliver_to_org_id,
2437 l.end_customer_site_use_id,
2438 l.end_customer_id
2439 FROM OE_ORDER_LINES_HISTORY L,
2440 RA_CUSTOMER_MERGES M1,
2441 RA_CUSTOMER_MERGES M2,
2442 RA_CUSTOMER_MERGES M3,
2443 RA_CUSTOMER_MERGES M4,
2444 RA_CUSTOMER_MERGES M5,
2445 RA_CUSTOMER_MERGES M6,
2446 RA_CUSTOMER_MERGES M7,
2447 -- changed for bug 3196900
2448 -- OE_ORDER_LINES_HISTORY L
2449 OE_ORDER_LINES_ALL LN
2450 -- Changed for MOAC
2451 WHERE
2452 ( l.sold_to_org_id = m1.duplicate_id(+)
2453 and l.invoice_to_org_id = m2.duplicate_site_id(+)
2454 and l.ship_to_org_id = m3.duplicate_site_id(+)
2455 and l.intmed_ship_to_org_id = m4.duplicate_site_id(+)
2456 and l.deliver_to_org_id = m5.duplicate_site_id(+)
2457 and l.end_customer_site_use_id = m6.duplicate_site_id(+)
2458 and l.end_customer_id = m7.duplicate_id(+) )
2459 and
2460 (m1.duplicate_site_id is not null or
2461 m2.duplicate_id is not null or
2462 m3.duplicate_id is not null or
2463 m4.duplicate_id is not null or
2464 m5.duplicate_id is not null or
2465 m6.duplicate_id is not null or
2466 m7.duplicate_site_id is not null)
2467 and m1.process_flag(+) = 'N'
2468 and m2.process_flag(+) = 'N'
2469 and m3.process_flag(+) = 'N'
2470 and m4.process_flag(+) = 'N'
2471 and m5.process_flag(+) = 'N'
2472 and m6.process_flag(+) = 'N'
2473 and m7.process_flag(+) = 'N'
2474 and m1.request_id(+) =req_id
2475 and m2.request_id(+) =req_id
2476 and m3.request_id(+) =req_id
2477 and m4.request_id(+) =req_id
2478 and m5.request_id(+) =req_id
2479 and m6.request_id(+) =req_id
2480 and m7.request_id(+) =req_id
2481 and m1.set_number(+) =set_num
2482 and m2.set_number(+) =set_num
2483 and m3.set_number(+) =set_num
2484 and m4.set_number(+) =set_num
2485 and m5.set_number(+) =set_num
2486 and m6.set_number(+) =set_num
2487 and m7.set_number(+) =set_num
2488 -- added for bug 3196900
2489 and l.line_id=ln.line_id
2490 for update nowait;
2491
2492 /* MOAC_SQL_CHANGE */
2493 --bug6071855
2494 CURSOR MERGE_LINES_HISTORY_2 IS
2495 SELECT /*+ ordered PARALLEL(L) PARALLEL (LN)
2496 PARALLEL(M1) PARALLEL(M2) PARALLEL(M3) PARALLEL(M4)
2497 PARALLEL (M5) PARALLEL(M6) PARALLEL(M7)
2498 PARALLEL (LN) */
2499 l.line_id ,
2500 --changed for bug 3196900 , added l. for every attribute
2501 l.sold_to_org_id,
2502 l.invoice_to_org_id,
2503 l.ship_to_org_id,
2504 l.intmed_ship_to_org_id,
2505 l.deliver_to_org_id,
2506 l.end_customer_site_use_id,
2507 l.end_customer_id
2508 FROM OE_ORDER_LINES_HISTORY L ,
2509 RA_CUSTOMER_MERGES M1,
2510 RA_CUSTOMER_MERGES M2,
2511 RA_CUSTOMER_MERGES M3,
2512 RA_CUSTOMER_MERGES M4,
2513 RA_CUSTOMER_MERGES M5,
2514 RA_CUSTOMER_MERGES M6,
2515 RA_CUSTOMER_MERGES M7,
2516 --changed for bug 3196900
2517 -- OE_ORDER_LINES_HISTORY L
2518 OE_ORDER_LINES_ALL LN
2519 --Changed for MOAC
2520 WHERE
2521 ( l.sold_to_org_id = m1.duplicate_id(+)
2522 and l.invoice_to_org_id = m2.duplicate_site_id(+)
2523 and l.ship_to_org_id = m3.duplicate_site_id(+)
2524 and l.intmed_ship_to_org_id = m4.duplicate_site_id(+)
2525 and l.deliver_to_org_id = m5.duplicate_site_id(+)
2526 and l.end_customer_site_use_id = m6.duplicate_site_id(+)
2527 and l.end_customer_id = m7.duplicate_id(+) )
2528 and
2529 (m1.duplicate_site_id is not null or
2530 m2.duplicate_id is not null or
2531 m3.duplicate_id is not null or
2532 m4.duplicate_id is not null or
2533 m5.duplicate_id is not null or
2534 m6.duplicate_id is not null or
2535 m7.duplicate_site_id is not null)
2536 and m1.process_flag(+) = 'N'
2537 and m2.process_flag(+) = 'N'
2538 and m3.process_flag(+) = 'N'
2539 and m4.process_flag(+) = 'N'
2540 and m5.process_flag(+) = 'N'
2541 and m6.process_flag(+) = 'N'
2542 and m7.process_flag(+) = 'N'
2543 and m1.request_id(+) =req_id
2544 and m2.request_id(+) =req_id
2545 and m3.request_id(+) =req_id
2546 and m4.request_id(+) =req_id
2547 and m5.request_id(+) =req_id
2548 and m6.request_id(+) =req_id
2549 and m7.request_id(+) =req_id
2550 and m1.set_number(+) =set_num
2551 and m2.set_number(+) =set_num
2552 and m3.set_number(+) =set_num
2553 and m4.set_number(+) =set_num
2554 and m5.set_number(+) =set_num
2555 and m6.set_number(+) =set_num
2556 and m7.set_number(+) =set_num
2557 -- added for bug 3196900
2558 and l.line_id=ln.line_id;
2559
2560 lhst_line_id_tab num_table;
2561 lhst_sold_to_org_id_tab num_table;
2562 lhst_invoice_to_org_id_tab num_table;
2563 lhst_ship_to_org_id_tab num_table;
2564 lhst_intmed_ship_to_org_id_tab num_table;
2565 lhst_deliver_to_org_id_tab num_table;
2566 lhst_end_cust_site_use_id_tab num_table;
2567 lhst_end_cust_id_tab num_table;
2568
2569 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
2570 customer_id_tab num_table_binary_int;
2571 customer_site_id_tab num_table_binary_int;
2572
2573 BEGIN
2574
2575 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Lines_History()+' );
2576
2577 IF (process_mode = 'LOCK') THEN
2578
2579 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
2580 arp_message.set_token( 'TABLE_NAME', 'oe_order_lines_history', FALSE );
2581
2582 open merge_lines_history;
2583 close merge_lines_history;
2584
2585 ELSE
2586
2587 FOR C IN MERGE_SITES LOOP
2588 IF c.duplicate_id IS NOT NULL
2589 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
2590 customer_id_tab(c.duplicate_id) := c.customer_id;
2591 END IF;
2592
2593 IF c.duplicate_site_id IS NOT NULL
2594 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
2595 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
2596 END IF;
2597
2598 END LOOP;
2599
2600 OPEN merge_lines_history_2;
2601 LOOP
2602 FETCH merge_lines_history_2
2603 BULK COLLECT INTO lhst_line_id_tab,
2604 lhst_sold_to_org_id_tab,
2605 lhst_invoice_to_org_id_tab,
2606 lhst_ship_to_org_id_tab,
2607 lhst_intmed_ship_to_org_id_tab,
2608 lhst_deliver_to_org_id_tab,
2609 lhst_end_cust_site_use_id_tab,
2610 lhst_end_cust_id_tab
2611 LIMIT 20000;
2612
2613
2614 if lhst_line_id_tab.COUNT <> 0 then
2615 for i in lhst_line_id_tab.FIRST..lhst_line_id_tab.LAST LOOP
2616
2617 -- Access directly by the index position of the ids in the
2618 -- values stored in customer_id_tab and customer_site_id_tab tables
2619
2620 if customer_id_tab.exists(lhst_sold_to_org_id_tab(i)) then
2621 lhst_sold_to_org_id_tab(i):= customer_id_tab(lhst_sold_to_org_id_tab(i));
2622 end if;
2623
2624 if customer_site_id_tab.exists(lhst_invoice_to_org_id_tab(i)) then
2625 lhst_invoice_to_org_id_tab(i):= customer_site_id_tab(lhst_invoice_to_org_id_tab(i));
2626 end if;
2627
2628 if customer_site_id_tab.exists(lhst_ship_to_org_id_tab(i)) then
2629 lhst_ship_to_org_id_tab(i):= customer_site_id_tab(lhst_ship_to_org_id_tab(i));
2630 end if;
2631
2632 if customer_site_id_tab.exists(lhst_intmed_ship_to_org_id_tab(i)) then
2633 lhst_intmed_ship_to_org_id_tab(i):= customer_site_id_tab(lhst_intmed_ship_to_org_id_tab(i));
2634 end if;
2635
2636 if customer_site_id_tab.exists(lhst_deliver_to_org_id_tab(i)) then
2637 lhst_deliver_to_org_id_tab(i):= customer_site_id_tab(lhst_deliver_to_org_id_tab(i));
2638 end if;
2639
2640 if customer_site_id_tab.exists(lhst_end_cust_site_use_id_tab(i)) then
2641 lhst_end_cust_site_use_id_tab(i):= customer_site_id_tab(lhst_end_cust_site_use_id_tab(i));
2642 end if;
2643
2644 if customer_id_tab.exists(lhst_end_cust_id_tab(i)) then
2645 lhst_end_cust_id_tab(i):= customer_id_tab(lhst_end_cust_id_tab(i));
2646 end if;
2647
2648 end loop;
2649 end if;
2650
2651
2652 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2653 arp_message.set_token( 'TABLE_NAME', 'oe_order_lines_history', FALSE );
2654
2655 IF lhst_line_id_tab.COUNT <> 0 THEN
2656 FORALL i in lhst_line_id_tab.FIRST..lhst_line_id_tab.LAST
2657 UPDATE OE_ORDER_LINES_HISTORY LHIST
2658 SET sold_to_org_id = decode(lhst_sold_to_org_id_tab(i),null,sold_to_org_id,lhst_sold_to_org_id_tab(i)),
2659 invoice_to_org_id = decode(lhst_invoice_to_org_id_tab(i),null,invoice_to_org_id,lhst_invoice_to_org_id_tab(i)),
2660 ship_to_org_id = decode(lhst_ship_to_org_id_tab(i),null,ship_to_org_id,lhst_ship_to_org_id_tab(i)),
2661 intmed_ship_to_org_id = decode(lhst_intmed_ship_to_org_id_tab(i),null,intmed_ship_to_org_id,lhst_intmed_ship_to_org_id_tab(i)),
2662 deliver_to_org_id = decode(lhst_deliver_to_org_id_tab(i),null,deliver_to_org_id,lhst_deliver_to_org_id_tab(i)),
2663 end_customer_site_use_id = decode(lhst_end_cust_site_use_id_tab(i),null,end_customer_site_use_id,lhst_end_cust_site_use_id_tab(i)),
2664 end_customer_id = decode(lhst_end_cust_id_tab(i),null,end_customer_id,lhst_end_cust_id_tab(i)),
2665 last_update_date = sysdate,
2666 last_updated_by = arp_standard.profile.user_id,
2667 last_update_login = arp_standard.profile.last_update_login,
2668 request_id = req_id,
2669 program_application_id = arp_standard.profile.program_application_id ,
2670 program_id = arp_standard.profile.program_id,
2671 program_update_date = SYSDATE
2672 WHERE line_id = lhst_line_id_tab(i);
2673
2674 g_count := sql%rowcount;
2675
2676 ELSE
2677 g_count := 0;
2678 END IF;
2679
2680 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
2681 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
2682 EXIT WHEN merge_lines_history_2%NOTFOUND;
2683
2684 lhst_line_id_tab.DELETE;
2685 lhst_sold_to_org_id_tab.DELETE;
2686 lhst_invoice_to_org_id_tab.DELETE;
2687 lhst_ship_to_org_id_tab.DELETE;
2688 lhst_intmed_ship_to_org_id_tab.DELETE;
2689 lhst_deliver_to_org_id_tab.DELETE;
2690 lhst_end_cust_site_use_id_tab.DELETE;
2691
2692 END LOOP; -- cursor merge_lines_history_2
2693
2694 CLOSE merge_lines_history_2;
2695
2696 END IF;
2697 customer_id_tab.DELETE;
2698 customer_site_id_tab.DELETE;
2699 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Lines_History()-' );
2700
2701 EXCEPTION
2702 when others then
2703 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Lines_History-' );
2704 raise;
2705
2706 END OE_Merge_Lines_History;
2707
2708 /*-------------------------------------------------*/
2709 /*--- PRIVATE PROCEDURE OE_Merge_Lines_IFACE ---*/
2710 /*-------------------------------------------------*/
2711
2712 /* Interface tables need not be updated
2713 Not logging merge for Interface tables
2714
2715 Procedure OE_Merge_Lines_IFACE (Req_Id IN NUMBER,
2716 Set_Num IN NUMBER,
2717 Process_Mode IN VARCHAR2)
2718 IS
2719 CURSOR c1 is
2720 select line_id
2721 from oe_lines_iface_all
2722 where ship_to_org_id in
2723 (select m.duplicate_site_id
2724 from ra_customer_merges m
2725 where m.process_flag = 'N'
2726 and m.request_id = req_id
2727 and m.set_number = set_num)
2728 for update nowait;
2729
2730
2731 CURSOR c2 is
2732 select line_id
2733 from oe_lines_iface_all
2734 where invoice_to_org_id in
2735 (select m.duplicate_site_id
2736 from ra_customer_merges m
2737 where m.process_flag = 'N'
2738 and m.request_id = req_id
2739 and m.set_number = set_num)
2740 for update nowait;
2741
2742
2743 CURSOR c3 is
2744 select line_id
2745 from oe_lines_iface_all
2746 where deliver_to_org_id in
2747 (select m.duplicate_site_id
2748 from ra_customer_merges m
2749 where m.process_flag = 'N'
2750 and m.request_id = req_id
2751 and m.set_number = set_num)
2752 for update nowait;
2753
2754
2755 CURSOR c4 is
2756 select line_id
2757 from oe_lines_iface_all
2758 where sold_to_org_id in
2759 (select m.duplicate_id
2760 from ra_customer_merges m
2761 where m.process_flag = 'N'
2762 and m.request_id = req_id
2763 and m.set_number = set_num)
2764 for update nowait;
2765
2766 BEGIN
2767 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Lines_IFACE()+' );
2768
2769 -- both customer and site level
2770
2771 IF( process_mode = 'LOCK' ) THEN
2772
2773 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
2774 arp_message.set_token( 'TABLE_NAME', 'oe_lines_iface_all', FALSE );
2775
2776 open c1;
2777 close c1;
2778
2779 open c2;
2780 close c2;
2781
2782 open c3;
2783 close c3;
2784
2785 open c4;
2786 close c4;
2787
2788 ELSE
2789 -- site level update
2790 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2791 arp_message.set_token( 'TABLE_NAME', 'oe_lines_iface_all', FALSE );
2792
2793 UPDATE oe_lines_iface_all a
2794 set ship_to_org_id = (select distinct m.customer_site_id
2795 from ra_customer_merges m
2796 where a.ship_to_org_id = m.duplicate_site_id
2797 and m.request_id = req_id
2798 and m.process_flag = 'N'
2799 and m.set_number = set_num),
2800 last_update_date = sysdate,
2801 last_updated_by = arp_standard.profile.user_id,
2802 last_update_login = arp_standard.profile.last_update_login,
2803 request_id = req_id,
2804 program_application_id =arp_standard.profile.program_application_id,
2805 program_id = arp_standard.profile.program_id,
2806 program_update_date = sysdate
2807 where ship_to_org_id in (select m.duplicate_site_id
2808 from ra_customer_merges m
2809 where m.process_flag = 'N'
2810 and m.request_id = req_id
2811 and m.set_number = set_num);
2812 g_count := sql%rowcount;
2813 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
2814 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
2815
2816 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2817 arp_message.set_token( 'TABLE_NAME', 'oe_lines_iface_all', FALSE );
2818
2819 UPDATE oe_lines_iface_all a
2820 set invoice_to_org_id = (select distinct m.customer_site_id
2821 from ra_customer_merges m
2822 where a.invoice_to_org_id = m.duplicate_site_id
2823 and m.request_id = req_id
2824 and m.process_flag = 'N'
2825 and m.set_number = set_num),
2826 last_update_date = sysdate,
2827 last_updated_by = arp_standard.profile.user_id,
2828 last_update_login = arp_standard.profile.last_update_login,
2829 request_id = req_id,
2830 program_application_id =arp_standard.profile.program_application_id,
2831 program_id = arp_standard.profile.program_id,
2832 program_update_date = sysdate
2833 where invoice_to_org_id in (select m.duplicate_site_id
2834 from ra_customer_merges m
2835 where m.process_flag = 'N'
2836 and m.request_id = req_id
2837 and m.set_number = set_num);
2838 g_count := sql%rowcount;
2839 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
2840 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
2841
2842 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2843 arp_message.set_token( 'TABLE_NAME', 'oe_lines_iface_all', FALSE );
2844
2845 UPDATE oe_lines_iface_all a
2846 set deliver_to_org_id = (select distinct m.customer_site_id
2847 from ra_customer_merges m
2848 where a.deliver_to_org_id = m.duplicate_site_id
2849 and m.request_id = req_id
2850 and m.process_flag = 'N'
2851 and m.set_number = set_num),
2852 last_update_date = sysdate,
2853 last_updated_by = arp_standard.profile.user_id,
2854 last_update_login = arp_standard.profile.last_update_login,
2855 request_id = req_id,
2856 program_application_id =arp_standard.profile.program_application_id,
2857 program_id = arp_standard.profile.program_id,
2858 program_update_date = sysdate
2859 where deliver_to_org_id in (select m.duplicate_site_id
2860 from ra_customer_merges m
2861 where m.process_flag = 'N'
2862 and m.request_id = req_id
2863 and m.set_number = set_num);
2864 g_count := sql%rowcount;
2865 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
2866 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
2867
2868 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2869 arp_message.set_token( 'TABLE_NAME', 'oe_lines_iface_all', FALSE );
2870
2871 -- customer level update
2872 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
2873 arp_message.set_token( 'TABLE_NAME', 'oe_lines_iface_all', FALSE );
2874
2875 UPDATE oe_lines_iface_all a
2876 set sold_to_org_id = (select distinct m.customer_id
2877 from ra_customer_merges m
2878 where a.sold_to_org_id = m.duplicate_id
2879 and m.process_flag = 'N'
2880 and m.request_id = req_id
2881 and m.set_number = set_num),
2882 last_update_date = sysdate,
2883 last_updated_by = arp_standard.profile.user_id,
2884 last_update_login = arp_standard.profile.last_update_login,
2885 request_id = req_id,
2886 program_application_id =arp_standard.profile.program_application_id,
2887 program_id = arp_standard.profile.program_id,
2888 program_update_date = sysdate
2889 where sold_to_org_id in (select m.duplicate_id
2890 from ra_customer_merges m
2891 where m.process_flag = 'N'
2892 and m.request_id = req_id
2893 and m.set_number = set_num);
2894
2895 g_count := sql%rowcount;
2896
2897 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
2898 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
2899
2900 END IF;
2901
2902 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Lines_IFACE()-' );
2903
2904 EXCEPTION
2905 When others then
2906 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Lines_IFACE-' );
2907 raise;
2908
2909 END OE_Merge_Lines_IFACE;
2910
2911 Interface tables need not be updated */
2912
2913 /*-------------------------------------------------*/
2914 /*--- PRIVATE PROCEDURE OE_Merge_Line_ACKS ---*/
2915 /*-------------------------------------------------*/
2916 Procedure OE_Merge_Line_ACKS (Req_Id IN NUMBER,
2917 Set_Num IN NUMBER,
2918 Process_Mode IN VARCHAR2)
2919 IS
2920 CURSOR c1 is
2921 select line_id
2922 from oe_line_acks
2923 where ship_to_org_id in
2924 (select m.duplicate_site_id
2925 from ra_customer_merges m
2926 where m.process_flag = 'N'
2927 and m.request_id = req_id
2928 and m.set_number = set_num)
2929 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
2930 for update nowait;
2931
2932
2933 CURSOR c2 is
2934 select line_id
2935 from oe_line_acks
2936 where invoice_to_org_id in
2937 (select m.duplicate_site_id
2938 from ra_customer_merges m
2939 where m.process_flag = 'N'
2940 and m.request_id = req_id
2941 and m.set_number = set_num)
2942 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
2943 for update nowait;
2944
2945
2946 CURSOR c3 is
2947 select line_id
2948 from oe_line_acks
2949 where deliver_to_org_id in
2950 (select m.duplicate_site_id
2951 from ra_customer_merges m
2952 where m.process_flag = 'N'
2953 and m.request_id = req_id
2954 and m.set_number = set_num)
2955 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
2956 for update nowait;
2957
2958
2959 CURSOR c4 is
2960 select line_id
2961 from oe_line_acks
2962 where intmed_ship_to_org_id in
2963 (select m.duplicate_site_id
2964 from ra_customer_merges m
2965 where m.process_flag = 'N'
2966 and m.request_id = req_id
2967 and m.set_number = set_num)
2968 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
2969 for update nowait;
2970
2971 CURSOR c5 is
2972 --changed for bug 3196900
2973 select a.line_id
2974 from oe_line_acks a, oe_order_lines l
2975 where a.sold_to_org_id in
2976 (select m.duplicate_id
2977 from ra_customer_merges m
2978 where m.process_flag = 'N'
2979 and m.request_id = req_id
2980 and m.set_number = set_num)
2981 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
2982 --changed for bug 3196900
2983 and a.line_id=l.line_id
2984 for update nowait;
2985
2986 CURSOR c6 is
2987 select line_id
2988 from oe_line_acks
2989 where end_customer_site_use_id in
2990 (select m.duplicate_id
2991 from ra_customer_merges m
2992 where m.process_flag = 'N'
2993 and m.request_id = req_id
2994 and m.set_number = set_num)
2995 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
2996 for update nowait;
2997
2998 CURSOR c7 is
2999 --changed for bug 3196900
3000 select a.line_id
3001 from oe_line_acks a,oe_order_lines l
3002 where a.end_customer_id in
3003 (select m.duplicate_id
3004 from ra_customer_merges m
3005 where m.process_flag = 'N'
3006 and m.request_id = req_id
3007 and m.set_number = set_num)
3008 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
3009 --changed for bug 3196900
3010 and a.line_id=l.line_id
3011 for update nowait;
3012
3013 l_profile_val VARCHAR2(30);
3014
3015 BEGIN
3016 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Line_ACKS()+' );
3017
3018 /* both customer and site level */
3019
3020 IF( process_mode = 'LOCK' ) THEN
3021
3022 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
3023 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3024
3025 open c1;
3026 close c1;
3027
3028 open c2;
3029 close c2;
3030
3031 open c3;
3032 close c3;
3033
3034 open c4;
3035 close c4;
3036
3037 open c5;
3038 close c5;
3039
3040 open c6;
3041 close c6;
3042
3043 open c7;
3044 close c7;
3045
3046 ELSE
3047
3048 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
3049 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
3050
3051 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3052 insert into HZ_CUSTOMER_MERGE_LOG (
3053 MERGE_LOG_ID,
3054 TABLE_NAME,
3055 MERGE_HEADER_ID,
3056 PRIMARY_KEY1,
3057 PRIMARY_KEY2,
3058 NUM_COL3_ORIG,
3059 NUM_COL3_NEW,
3060 ACTION_FLAG,
3061 REQUEST_ID,
3062 CREATED_BY,
3063 CREATION_DATE,
3064 LAST_UPDATE_LOGIN,
3065 LAST_UPDATE_DATE,
3066 LAST_UPDATED_BY
3067 )
3068 select
3069 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3070 'OE_LINE_ACKS',
3071 m.CUSTOMER_MERGE_HEADER_ID,
3072 a.ORIG_SYS_DOCUMENT_REF,
3073 a.ORIG_SYS_LINE_REF,
3074 a.ship_to_org_id,
3075 m.customer_site_id,
3076 'U',
3077 req_id,
3078 hz_utility_pub.CREATED_BY,
3079 hz_utility_pub.CREATION_DATE,
3080 hz_utility_pub.LAST_UPDATE_LOGIN,
3081 hz_utility_pub.LAST_UPDATE_DATE,
3082 hz_utility_pub.LAST_UPDATED_BY
3083 from oe_line_acks a,
3084 ra_customer_merges m
3085 where m.process_flag = 'N'
3086 and a.ship_to_org_id = m.duplicate_site_id
3087 and m.request_id = req_id
3088 and m.set_number = set_num
3089 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3090 end if;
3091
3092 /* site level update */
3093 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3094 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3095
3096 UPDATE oe_line_acks a
3097 set ship_to_org_id = (select distinct m.customer_site_id
3098 from ra_customer_merges m
3099 where a.ship_to_org_id = m.duplicate_site_id
3100 and m.request_id = req_id
3101 and m.process_flag = 'N'
3102 and m.set_number = set_num),
3103 last_update_date = sysdate,
3104 last_updated_by = arp_standard.profile.user_id,
3105 last_update_login = arp_standard.profile.last_update_login,
3106 request_id = req_id,
3107 program_application_id =arp_standard.profile.program_application_id,
3108 program_id = arp_standard.profile.program_id,
3109 program_update_date = sysdate
3110 where ship_to_org_id in (select m.duplicate_site_id
3111 from ra_customer_merges m
3112 where m.process_flag = 'N'
3113 and m.request_id = req_id
3114 and m.set_number = set_num)
3115 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3116 g_count := sql%rowcount;
3117 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3118 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3119
3120 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3121 insert into HZ_CUSTOMER_MERGE_LOG (
3122 MERGE_LOG_ID,
3123 TABLE_NAME,
3124 MERGE_HEADER_ID,
3125 PRIMARY_KEY1,
3126 PRIMARY_KEY2,
3127 NUM_COL2_ORIG,
3128 NUM_COL2_NEW,
3129 ACTION_FLAG,
3130 REQUEST_ID,
3131 CREATED_BY,
3132 CREATION_DATE,
3133 LAST_UPDATE_LOGIN,
3134 LAST_UPDATE_DATE,
3135 LAST_UPDATED_BY
3136 )
3137 select
3138 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3139 'OE_LINE_ACKS',
3140 m.CUSTOMER_MERGE_HEADER_ID,
3141 a.ORIG_SYS_DOCUMENT_REF,
3142 a.ORIG_SYS_LINE_REF,
3143 a.invoice_to_org_id,
3144 m.customer_site_id,
3145 'U',
3146 req_id,
3147 hz_utility_pub.CREATED_BY,
3148 hz_utility_pub.CREATION_DATE,
3149 hz_utility_pub.LAST_UPDATE_LOGIN,
3150 hz_utility_pub.LAST_UPDATE_DATE,
3151 hz_utility_pub.LAST_UPDATED_BY
3152 from oe_line_acks a,
3153 ra_customer_merges m
3154 where m.process_flag = 'N'
3155 and a.invoice_to_org_id = m.duplicate_site_id
3156 and m.request_id = req_id
3157 and m.set_number = set_num
3158 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3159 end if;
3160
3161 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3162 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3163
3164 UPDATE oe_line_acks a
3165 set invoice_to_org_id = (select distinct m.customer_site_id
3166 from ra_customer_merges m
3167 where a.invoice_to_org_id = m.duplicate_site_id
3168 and m.request_id = req_id
3169 and m.process_flag = 'N'
3170 and m.set_number = set_num),
3171 last_update_date = sysdate,
3172 last_updated_by = arp_standard.profile.user_id,
3173 last_update_login = arp_standard.profile.last_update_login,
3174 request_id = req_id,
3175 program_application_id =arp_standard.profile.program_application_id,
3176 program_id = arp_standard.profile.program_id,
3177 program_update_date = sysdate
3178 where invoice_to_org_id in (select m.duplicate_site_id
3179 from ra_customer_merges m
3180 where m.process_flag = 'N'
3181 and m.request_id = req_id
3182 and m.set_number = set_num)
3183 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3184 g_count := sql%rowcount;
3185 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3186 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3187
3188 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3189 insert into HZ_CUSTOMER_MERGE_LOG (
3190 MERGE_LOG_ID,
3191 TABLE_NAME,
3192 MERGE_HEADER_ID,
3193 PRIMARY_KEY1,
3194 PRIMARY_KEY2,
3195 NUM_COL4_ORIG,
3196 NUM_COL4_NEW,
3197 ACTION_FLAG,
3198 REQUEST_ID,
3199 CREATED_BY,
3200 CREATION_DATE,
3201 LAST_UPDATE_LOGIN,
3202 LAST_UPDATE_DATE,
3203 LAST_UPDATED_BY
3204 )
3205 select
3206 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3207 'OE_LINE_ACKS',
3208 m.CUSTOMER_MERGE_HEADER_ID,
3209 a.ORIG_SYS_DOCUMENT_REF,
3210 a.ORIG_SYS_LINE_REF,
3211 a.deliver_to_org_id,
3212 m.customer_site_id,
3213 'U',
3214 req_id,
3215 hz_utility_pub.CREATED_BY,
3216 hz_utility_pub.CREATION_DATE,
3217 hz_utility_pub.LAST_UPDATE_LOGIN,
3218 hz_utility_pub.LAST_UPDATE_DATE,
3219 hz_utility_pub.LAST_UPDATED_BY
3220 from oe_line_acks a,
3221 ra_customer_merges m
3222 where m.process_flag = 'N'
3223 and a.deliver_to_org_id = m.duplicate_site_id
3224 and m.request_id = req_id
3225 and m.set_number = set_num
3226 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3227 end if;
3228
3229 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3230 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3231
3232 UPDATE oe_line_acks a
3233 set deliver_to_org_id = (select distinct m.customer_site_id
3234 from ra_customer_merges m
3235 where a.deliver_to_org_id = m.duplicate_site_id
3236 and m.request_id = req_id
3237 and m.process_flag = 'N'
3238 and m.set_number = set_num),
3239 last_update_date = sysdate,
3240 last_updated_by = arp_standard.profile.user_id,
3241 last_update_login = arp_standard.profile.last_update_login,
3242 request_id = req_id,
3243 program_application_id =arp_standard.profile.program_application_id,
3244 program_id = arp_standard.profile.program_id,
3245 program_update_date = sysdate
3246 where deliver_to_org_id in (select m.duplicate_site_id
3247 from ra_customer_merges m
3248 where m.process_flag = 'N'
3249 and m.request_id = req_id
3250 and m.set_number = set_num)
3251 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3252 g_count := sql%rowcount;
3253 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3254 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3255
3256 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3257 insert into HZ_CUSTOMER_MERGE_LOG (
3258 MERGE_LOG_ID,
3259 TABLE_NAME,
3260 MERGE_HEADER_ID,
3261 PRIMARY_KEY1,
3262 PRIMARY_KEY2,
3263 NUM_COL5_ORIG,
3264 NUM_COL5_NEW,
3265 ACTION_FLAG,
3266 REQUEST_ID,
3267 CREATED_BY,
3268 CREATION_DATE,
3269 LAST_UPDATE_LOGIN,
3270 LAST_UPDATE_DATE,
3271 LAST_UPDATED_BY
3272 )
3273 select
3274 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3275 'OE_LINE_ACKS',
3276 m.CUSTOMER_MERGE_HEADER_ID,
3277 a.ORIG_SYS_DOCUMENT_REF,
3278 a.ORIG_SYS_LINE_REF,
3279 a.intmed_ship_to_org_id,
3280 m.customer_site_id,
3281 'U',
3282 req_id,
3283 hz_utility_pub.CREATED_BY,
3284 hz_utility_pub.CREATION_DATE,
3285 hz_utility_pub.LAST_UPDATE_LOGIN,
3286 hz_utility_pub.LAST_UPDATE_DATE,
3287 hz_utility_pub.LAST_UPDATED_BY
3288 from oe_line_acks a,
3289 ra_customer_merges m
3290 where m.process_flag = 'N'
3291 and a.intmed_ship_to_org_id = m.duplicate_site_id
3292 and m.request_id = req_id
3293 and m.set_number = set_num
3294 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3295 end if;
3296
3297 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3298 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3299
3300
3301 UPDATE oe_line_acks a
3302 set intmed_ship_to_org_id = (select distinct m.customer_site_id
3303 from ra_customer_merges m
3304 where a.intmed_ship_to_org_id = m.duplicate_site_id
3305 and m.request_id = req_id
3306 and m.process_flag = 'N'
3307 and m.set_number = set_num),
3308 last_update_date = sysdate,
3309 last_updated_by = arp_standard.profile.user_id,
3310 last_update_login = arp_standard.profile.last_update_login,
3311 request_id = req_id,
3312 program_application_id =arp_standard.profile.program_application_id,
3313 program_id = arp_standard.profile.program_id,
3314 program_update_date = sysdate
3315 where intmed_ship_to_org_id in (select m.duplicate_site_id
3316 from ra_customer_merges m
3317 where m.process_flag = 'N'
3318 and m.request_id = req_id
3319 and m.set_number = set_num)
3320 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3321 g_count := sql%rowcount;
3322
3323 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3324 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3325
3326 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3327 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3328
3329
3330 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3331 insert into HZ_CUSTOMER_MERGE_LOG (
3332 MERGE_LOG_ID,
3333 TABLE_NAME,
3334 MERGE_HEADER_ID,
3335 PRIMARY_KEY1,
3336 PRIMARY_KEY2,
3337 NUM_COL1_ORIG,
3338 NUM_COL1_NEW,
3339 ACTION_FLAG,
3340 REQUEST_ID,
3341 CREATED_BY,
3342 CREATION_DATE,
3343 LAST_UPDATE_LOGIN,
3344 LAST_UPDATE_DATE,
3345 LAST_UPDATED_BY
3346 )
3347 select
3348 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3349 'OE_LINE_ACKS',
3350 m.CUSTOMER_MERGE_HEADER_ID,
3351 a.ORIG_SYS_DOCUMENT_REF,
3352 a.ORIG_SYS_LINE_REF,
3353 a.sold_to_org_id,
3354 m.customer_site_id,
3355 'U',
3356 req_id,
3357 hz_utility_pub.CREATED_BY,
3358 hz_utility_pub.CREATION_DATE,
3359 hz_utility_pub.LAST_UPDATE_LOGIN,
3360 hz_utility_pub.LAST_UPDATE_DATE,
3361 hz_utility_pub.LAST_UPDATED_BY
3362 from oe_line_acks a,
3363 ra_customer_merges m
3364 where m.process_flag = 'N'
3365 and a.sold_to_org_id = m.duplicate_site_id
3366 and m.request_id = req_id
3367 and m.set_number = set_num
3368 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3369 end if;
3370
3371 /* customer level update */
3372 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3373 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3374
3375 UPDATE oe_line_acks a
3376 set sold_to_org_id = (select distinct m.customer_id
3377 from ra_customer_merges m
3378 where a.sold_to_org_id = m.duplicate_id
3379 and m.process_flag = 'N'
3380 and m.request_id = req_id
3381 and m.set_number = set_num),
3382 last_update_date = sysdate,
3383 last_updated_by = arp_standard.profile.user_id,
3384 last_update_login = arp_standard.profile.last_update_login,
3385 request_id = req_id,
3386 program_application_id =arp_standard.profile.program_application_id,
3387 program_id = arp_standard.profile.program_id,
3388 program_update_date = sysdate
3389 where sold_to_org_id in (select m.duplicate_id
3390 from ra_customer_merges m
3391 where m.process_flag = 'N'
3392 and m.request_id = req_id
3393 and m.set_number = set_num)
3394 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
3395 --added for bug 3196900
3396 and a.line_id in (select line_id from oe_order_lines);
3397
3398 g_count := sql%rowcount;
3399
3400 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3401 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3402
3403 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3404 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3405
3406
3407 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3408 insert into HZ_CUSTOMER_MERGE_LOG (
3409 MERGE_LOG_ID,
3410 TABLE_NAME,
3411 MERGE_HEADER_ID,
3412 PRIMARY_KEY1,
3413 PRIMARY_KEY2,
3414 NUM_COL6_ORIG,
3415 NUM_COL6_NEW,
3416 ACTION_FLAG,
3417 REQUEST_ID,
3418 CREATED_BY,
3419 CREATION_DATE,
3420 LAST_UPDATE_LOGIN,
3421 LAST_UPDATE_DATE,
3422 LAST_UPDATED_BY
3423 )
3424 select
3425 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3426 'OE_LINE_ACKS',
3427 m.CUSTOMER_MERGE_HEADER_ID,
3428 a.ORIG_SYS_DOCUMENT_REF,
3429 a.ORIG_SYS_LINE_REF,
3430 a.end_customer_site_use_id,
3431 m.customer_site_id,
3432 'U',
3433 req_id,
3434 hz_utility_pub.CREATED_BY,
3435 hz_utility_pub.CREATION_DATE,
3436 hz_utility_pub.LAST_UPDATE_LOGIN,
3437 hz_utility_pub.LAST_UPDATE_DATE,
3438 hz_utility_pub.LAST_UPDATED_BY
3439 from oe_line_acks a,
3440 ra_customer_merges m
3441 where m.process_flag = 'N'
3442 and a.sold_to_org_id = m.duplicate_site_id
3443 and m.request_id = req_id
3444 and m.set_number = set_num
3445 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3446 end if;
3447
3448 /* customer level update */
3449 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3450 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3451
3452 UPDATE oe_line_acks a
3453 set end_customer_site_use_id = (select distinct m.customer_id
3454 from ra_customer_merges m
3455 where a.end_customer_site_use_id = m.duplicate_id
3456 and m.process_flag = 'N'
3457 and m.request_id = req_id
3458 and m.set_number = set_num),
3459 last_update_date = sysdate,
3460 last_updated_by = arp_standard.profile.user_id,
3461 last_update_login = arp_standard.profile.last_update_login,
3462 request_id = req_id,
3463 program_application_id =arp_standard.profile.program_application_id,
3464 program_id = arp_standard.profile.program_id,
3465 program_update_date = sysdate
3466 where end_customer_site_use_id in (select m.duplicate_id
3467 from ra_customer_merges m
3468 where m.process_flag = 'N'
3469 and m.request_id = req_id
3470 and m.set_number = set_num)
3471 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3472
3473 g_count := sql%rowcount;
3474
3475 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3476 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3477
3478 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3479 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3480
3481
3482 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3483 insert into HZ_CUSTOMER_MERGE_LOG (
3484 MERGE_LOG_ID,
3485 TABLE_NAME,
3486 MERGE_HEADER_ID,
3487 PRIMARY_KEY1,
3488 PRIMARY_KEY2,
3489 NUM_COL7_ORIG,
3490 NUM_COL7_NEW,
3491 ACTION_FLAG,
3492 REQUEST_ID,
3493 CREATED_BY,
3494 CREATION_DATE,
3495 LAST_UPDATE_LOGIN,
3496 LAST_UPDATE_DATE,
3497 LAST_UPDATED_BY
3498 )
3499 select
3500 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3501 'OE_LINE_ACKS',
3502 m.CUSTOMER_MERGE_HEADER_ID,
3503 a.ORIG_SYS_DOCUMENT_REF,
3504 a.ORIG_SYS_LINE_REF,
3505 a.end_customer_id,
3506 m.customer_site_id,
3507 'U',
3508 req_id,
3509 hz_utility_pub.CREATED_BY,
3510 hz_utility_pub.CREATION_DATE,
3511 hz_utility_pub.LAST_UPDATE_LOGIN,
3512 hz_utility_pub.LAST_UPDATE_DATE,
3513 hz_utility_pub.LAST_UPDATED_BY
3514 from oe_line_acks a,
3515 ra_customer_merges m
3516 where m.process_flag = 'N'
3517 and a.end_customer_id = m.duplicate_site_id
3518 and m.request_id = req_id
3519 and m.set_number = set_num
3520 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y';
3521 end if;
3522
3523 /* customer level update */
3524 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3525 arp_message.set_token( 'TABLE_NAME', 'oe_line_acks', FALSE );
3526
3527 UPDATE oe_line_acks a
3528 set end_customer_id = (select distinct m.customer_id
3529 from ra_customer_merges m
3530 where a.end_customer_id = m.duplicate_id
3531 and m.process_flag = 'N'
3532 and m.request_id = req_id
3533 and m.set_number = set_num),
3534 last_update_date = sysdate,
3535 last_updated_by = arp_standard.profile.user_id,
3536 last_update_login = arp_standard.profile.last_update_login,
3537 request_id = req_id,
3538 program_application_id =arp_standard.profile.program_application_id,
3539 program_id = arp_standard.profile.program_id,
3540 program_update_date = sysdate
3541 where end_customer_id in (select m.duplicate_id
3542 from ra_customer_merges m
3543 where m.process_flag = 'N'
3544 and m.request_id = req_id
3545 and m.set_number = set_num)
3546 and NVL(ACKNOWLEDGMENT_FLAG,'N') <> 'Y'
3547 --added for bug 3196900
3548 and a.line_id in (select line_id from oe_order_lines);
3549
3550 g_count := sql%rowcount;
3551
3552 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3553 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3554
3555 END IF;
3556
3557 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Line_ACKS()-' );
3558
3559 EXCEPTION
3560 When others then
3561 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Line_ACKS-' );
3562 raise;
3563
3564 END OE_Merge_Line_ACKS;
3565 -----------------------------------------------------------------
3566 --
3567 -- MAIN PROCEDURE
3568 --
3569 -- Procedure Name: Merge
3570 -- Parameter: Req_id, Set_Num, Process_Mode
3571 --
3572 -- This is the main procedure to do customer merge for ONT product.
3573 -- This procedure will call other internal procedures to process
3574 -- the merging based on the functional areas. Please see the HLD for
3575 -- Customer Merge for detail information (cmerge_hld.rtf).
3576 --
3577 --------------------------------------------------------------------
3578
3579 Procedure Merge (Req_Id IN NUMBER,
3580 Set_Num IN NUMBER,
3581 Process_Mode IN VARCHAR2
3582 ) IS
3583 sql_stmnt varchar2(200);
3584
3585 BEGIN
3586
3587 arp_message.set_line( 'OE_CUST_MERGE.Merge()+' );
3588 -- sql_stmnt := 'Alter Session set hash_area_size=61440000';
3589 -- EXECUTE IMMEDIATE sql_stmnt;
3590 l_dbi_profile := NVL(FND_PROFILE.VALUE('ONT_DBI_INSTALLED'), 'Y');
3591 arp_message.set_line(' Dbi Profile='||l_dbi_profile);
3592 OE_CUST_MERGE.OE_Attachment_Merge (Req_Id, Set_Num, Process_Mode);
3593 OE_CUST_MERGE.OE_Defaulting_Merge (Req_Id, Set_Num, Process_Mode);
3594 OE_CUST_MERGE.OE_Hold_Merge (Req_Id, Set_Num, Process_Mode);
3595 OE_CUST_MERGE.OE_Constraints_Merge (Req_Id, Set_Num, Process_Mode);
3596 OE_CUST_MERGE.OE_Sets_Merge (Req_Id, Set_Num, Process_Mode);
3597 -- drop ship are po line location id and not site ids of accounts
3598 --OE_CUST_MERGE.OE_Drop_Ship_Merge (Req_Id, Set_Num, Process_Mode);
3599 OE_CUST_MERGE.OE_Ship_Tolerance_Merge (Req_Id, Set_Num, Process_Mode);
3600 OE_CUST_MERGE.OE_Order_Merge (Req_Id, Set_Num, Process_Mode);
3601 arp_message.set_line( 'OE_CUST_MERGE.Merge()-' );
3602
3603 /* this part will be calling other internal procedures */
3604
3605 EXCEPTION
3606 When others then
3607 arp_message.set_error( 'OE_CUST_MERGE.Merge-' );
3608 raise;
3609
3610
3611 END Merge;
3612
3613
3614 Procedure OE_Attachment_Merge(Req_Id IN NUMBER,
3615 Set_Num IN NUMBER,
3616 Process_Mode IN VARCHAR2
3617 )
3618 IS
3619 CURSOR c1 is
3620 select RULE_ELEMENT_ID
3621 from oe_attachment_rule_elements
3622 where attribute_value in (select to_char(m.duplicate_site_id)
3623 from ra_customer_merges m
3624 where m.process_flag = 'N'
3625 and m.request_id = req_id
3626 and m.set_number = set_num)
3627 and attribute_code = 'SHIP_TO_ORG_ID'
3628 for update nowait;
3629
3630 CURSOR c2 is
3631 select RULE_ELEMENT_ID
3632 from oe_attachment_rule_elements
3633 where attribute_value in (select to_char(m.duplicate_site_id)
3634 from ra_customer_merges m
3635 where m.process_flag = 'N'
3636 and m.request_id = req_id
3637 and m.set_number = set_num)
3638 and attribute_code = 'INVOICE_TO_ORG_ID'
3639 for update nowait;
3640
3641 CURSOR c3 is
3642 select RULE_ELEMENT_ID
3643 from oe_attachment_rule_elements
3644 where attribute_value in (select to_char(m.duplicate_id)
3645 from ra_customer_merges m
3646 where m.process_flag = 'N'
3647 and m.request_id = req_id
3648 and m.set_number = set_num)
3649 and attribute_code = 'SOLD_TO_ORG_ID'
3650 for update nowait;
3651
3652 l_profile_val VARCHAR2(30);
3653
3654 BEGIN
3655 arp_message.set_line( 'OE_CUST_MERGE.OE_Attachment_Merge()+' );
3656
3657 /*-----------------------------+
3658 | OE_ATTACHMENTS_RULE_ELEMENTS|
3659 +-----------------------------*/
3660 /* both customer and site level */
3661
3662 IF( process_mode = 'LOCK' ) THEN
3663
3664 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
3665 arp_message.set_token( 'TABLE_NAME', 'OE_ATTACHMENT_RULE_ELEMENTS', FALSE );
3666
3667 open c1;
3668 close c1;
3669
3670 open c2;
3671 close c2;
3672
3673 open c3;
3674 close c3;
3675
3676
3677 ELSE
3678
3679 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
3680 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
3681
3682 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3683 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
3684 MERGE_LOG_ID,
3685 TABLE_NAME,
3686 MERGE_HEADER_ID,
3687 PRIMARY_KEY_ID1,
3688 VCHAR_COL3_ORIG,
3689 VCHAR_COL3_NEW,
3690 ACTION_FLAG,
3691 REQUEST_ID,
3692 CREATED_BY,
3693 CREATION_DATE,
3694 LAST_UPDATE_LOGIN,
3695 LAST_UPDATE_DATE,
3696 LAST_UPDATED_BY
3697 )
3698 select
3699 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3700 'OE_ATTACHMENT_RULE_ELEMENTS',
3701 m.customer_merge_header_id,
3702 a.rule_element_id,
3703 a.attribute_value,
3704 to_char(m.customer_site_id),
3705 'U',
3706 req_id,
3707 hz_utility_pub.CREATED_BY,
3708 hz_utility_pub.CREATION_DATE,
3709 hz_utility_pub.LAST_UPDATE_LOGIN,
3710 hz_utility_pub.LAST_UPDATE_DATE,
3711 hz_utility_pub.LAST_UPDATED_BY
3712 from OE_ATTACHMENT_RULE_ELEMENTS a,
3713 ra_customer_merges m
3714 where a.attribute_value = to_char(m.duplicate_site_id)
3715 and m.process_flag = 'N'
3716 and m.request_id = req_id
3717 and m.set_number = set_num
3718 and a.attribute_code = 'SHIP_TO_ORG_ID';
3719
3720 END IF;
3721
3722 /* site level update */
3723 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3724 arp_message.set_token( 'TABLE_NAME', 'OE_ATTACHMENT_RULE_ELEMENTS', FALSE );
3725
3726 UPDATE OE_ATTACHMENT_RULE_ELEMENTS a
3727 set (attribute_value) = (select distinct to_char(m.customer_site_id)
3728 from ra_customer_merges m
3729 where a.attribute_value =
3730 to_char(m.duplicate_site_id)
3731 and m.request_id = req_id
3732 and m.process_flag = 'N'
3733 and m.set_number = set_num),
3734 last_update_date = sysdate,
3735 last_updated_by = arp_standard.profile.user_id,
3736 last_update_login = arp_standard.profile.last_update_login
3737 where attribute_value in (select to_char(m.duplicate_site_id)
3738 from ra_customer_merges m
3739 where m.process_flag = 'N'
3740 and m.request_id = req_id
3741 and m.set_number = set_num)
3742 and attribute_code = 'SHIP_TO_ORG_ID';
3743
3744 g_count := sql%rowcount;
3745
3746 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3747 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3748
3749
3750 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3751 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
3752 MERGE_LOG_ID,
3753 TABLE_NAME,
3754 MERGE_HEADER_ID,
3755 PRIMARY_KEY_ID1,
3756 VCHAR_COL2_ORIG,
3757 VCHAR_COL2_NEW,
3758 ACTION_FLAG,
3759 REQUEST_ID,
3760 CREATED_BY,
3761 CREATION_DATE,
3762 LAST_UPDATE_LOGIN,
3763 LAST_UPDATE_DATE,
3764 LAST_UPDATED_BY
3765 )
3766 select
3767 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3768 'OE_ATTACHMENT_RULE_ELEMENTS',
3769 m.customer_merge_header_id,
3770 a.rule_element_id,
3771 a.attribute_value,
3772 to_char(m.customer_site_id),
3773 'U',
3774 req_id,
3775 hz_utility_pub.CREATED_BY,
3776 hz_utility_pub.CREATION_DATE,
3777 hz_utility_pub.LAST_UPDATE_LOGIN,
3778 hz_utility_pub.LAST_UPDATE_DATE,
3779 hz_utility_pub.LAST_UPDATED_BY
3780 from OE_ATTACHMENT_RULE_ELEMENTS a,
3781 ra_customer_merges m
3782 where a.attribute_value = to_char(m.duplicate_site_id)
3783 and m.process_flag = 'N'
3784 and m.request_id = req_id
3785 and m.set_number = set_num
3786 and a.attribute_code = 'INVOICE_TO_ORG_ID';
3787
3788 END IF;
3789
3790 /* site level update */
3791 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3792 arp_message.set_token( 'TABLE_NAME', 'OE_ATTACHMENT_RULE_ELEMENTS', FALSE );
3793
3794 UPDATE OE_ATTACHMENT_RULE_ELEMENTS a
3795 set (attribute_value) = (select distinct to_char(m.customer_site_id)
3796 from ra_customer_merges m
3797 where a.attribute_value =
3798 to_char(m.duplicate_site_id)
3799 and m.request_id = req_id
3800 and m.process_flag = 'N'
3801 and m.set_number = set_num),
3802 last_update_date = sysdate,
3803 last_updated_by = arp_standard.profile.user_id,
3804 last_update_login = arp_standard.profile.last_update_login
3805 where attribute_value in (select to_char(m.duplicate_site_id)
3806 from ra_customer_merges m
3807 where m.process_flag = 'N'
3808 and m.request_id = req_id
3809 and m.set_number = set_num)
3810 and attribute_code = 'INVOICE_TO_ORG_ID';
3811
3812 g_count := sql%rowcount;
3813
3814 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3815 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3816
3817
3818
3819 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
3820 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
3821 MERGE_LOG_ID,
3822 TABLE_NAME,
3823 MERGE_HEADER_ID,
3824 PRIMARY_KEY_ID1,
3825 VCHAR_COL1_ORIG,
3826 VCHAR_COL1_NEW,
3827 ACTION_FLAG,
3828 REQUEST_ID,
3829 CREATED_BY,
3830 CREATION_DATE,
3831 LAST_UPDATE_LOGIN,
3832 LAST_UPDATE_DATE,
3833 LAST_UPDATED_BY
3834 )
3835 select
3836 HZ_CUSTOMER_MERGE_LOG_s.nextval,
3837 'OE_ATTACHMENT_RULE_ELEMENTS',
3838 m.customer_merge_header_id,
3839 a.rule_element_id,
3840 a.attribute_value,
3841 to_char(m.customer_site_id),
3842 'U',
3843 req_id,
3844 hz_utility_pub.CREATED_BY,
3845 hz_utility_pub.CREATION_DATE,
3846 hz_utility_pub.LAST_UPDATE_LOGIN,
3847 hz_utility_pub.LAST_UPDATE_DATE,
3848 hz_utility_pub.LAST_UPDATED_BY
3849 from OE_ATTACHMENT_RULE_ELEMENTS a,
3850 ra_customer_merges m
3851 where a.attribute_value = to_char(m.duplicate_site_id)
3852 and m.process_flag = 'N'
3853 and m.request_id = req_id
3854 and m.set_number = set_num
3855 and a.attribute_code = 'SOLD_TO_ORG_ID';
3856
3857 END IF;
3858
3859 /* customer level update */
3860 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
3861 arp_message.set_token( 'TABLE_NAME', 'OE_ATTACHMENT_RULE_ELEMENTS', FALSE );
3862
3863 UPDATE OE_ATTACHMENT_RULE_ELEMENTS a
3864 set (attribute_value) = (select distinct to_char(m.customer_id)
3865 from ra_customer_merges m
3866 where a.attribute_value =
3867 to_char(m.duplicate_id)
3868 and m.request_id = req_id
3869 and m.process_flag = 'N'
3870 and m.set_number = set_num),
3871 last_update_date = sysdate,
3872 last_updated_by = arp_standard.profile.user_id,
3873 last_update_login = arp_standard.profile.last_update_login
3874 where attribute_value in (select to_char(m.duplicate_id)
3875 from ra_customer_merges m
3876 where m.process_flag = 'N'
3877 and m.request_id = req_id
3878 and m.set_number = set_num)
3879 and attribute_code = 'SOLD_TO_ORG_ID';
3880
3881
3882 g_count := sql%rowcount;
3883
3884 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
3885 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
3886
3887 END IF;
3888
3889 arp_message.set_line( 'OE_CUST_MERGE.OE_Attachment_Merge()-' );
3890
3891
3892 EXCEPTION
3893 when others then
3894 arp_message.set_line( 'OE_CUST_MERGE.OE_Attachment_Merge' );
3895 raise;
3896
3897
3898 END OE_Attachment_Merge;
3899
3900
3901 Procedure OE_Defaulting_Merge (Req_Id IN NUMBER,
3902 Set_Num IN NUMBER,
3903 Process_Mode IN VARCHAR2
3904 )
3905 IS
3906 CURSOR c1 is
3907 select CONDITION_ELEMENT_ID
3908 from oe_def_condn_elems
3909 where value_string in (select to_char(m.duplicate_site_id)
3910 from ra_customer_merges m
3911 where m.process_flag = 'N'
3912 and m.request_id = req_id
3913 and m.set_number = set_num)
3914 and attribute_code = 'SHIP_TO_ORG_ID'
3915 for update nowait;
3916
3917 CURSOR c2 is
3918 select CONDITION_ELEMENT_ID
3919 from oe_def_condn_elems
3920 where value_string in (select to_char(m.duplicate_site_id)
3921 from ra_customer_merges m
3922 where m.process_flag = 'N'
3923 and m.request_id = req_id
3924 and m.set_number = set_num)
3925 and attribute_code = 'INVOICE_TO_ORG_ID'
3926 for update nowait;
3927
3928 CURSOR c4 is
3929 select CONDITION_ELEMENT_ID
3930 from oe_def_condn_elems
3931 where value_string in (select to_char(m.duplicate_site_id)
3932 from ra_customer_merges m
3933 where m.process_flag = 'N'
3934 and m.request_id = req_id
3935 and m.set_number = set_num)
3936 and attribute_code = 'INTMED_SHIP_TO_ORG_ID'
3937 for update nowait;
3938
3939 CURSOR c3 is
3940 select CONDITION_ELEMENT_ID
3941 from oe_def_condn_elems
3942 where value_string in (select to_char(m.duplicate_id)
3943 from ra_customer_merges m
3944 where m.process_flag = 'N'
3945 and m.request_id = req_id
3946 and m.set_number = set_num)
3947 and attribute_code = 'SOLD_TO_ORG_ID'
3948 for update nowait;
3949
3950 CURSOR c5 is
3951 select ATTR_DEF_RULE_ID
3952 from oe_def_attr_def_rules
3953 where src_constant_value in (select to_char(m.duplicate_site_id)
3954 from ra_customer_merges m
3955 where m.process_flag = 'N'
3956 and m.request_id = req_id
3957 and m.set_number = set_num)
3958 and attribute_code = 'SHIP_TO_ORG_ID'
3959 for update nowait;
3960
3961 CURSOR c6 is
3962 select ATTR_DEF_RULE_ID
3963 from oe_def_attr_def_rules
3964 where src_constant_value in (select to_char(m.duplicate_site_id)
3965 from ra_customer_merges m
3966 where m.process_flag = 'N'
3967 and m.request_id = req_id
3968 and m.set_number = set_num)
3969 and attribute_code = 'INVOICE_TO_ORG_ID'
3970 for update nowait;
3971
3972 CURSOR c7 is
3973 select ATTR_DEF_RULE_ID
3974 from oe_def_attr_def_rules
3975 where src_constant_value in (select to_char(m.duplicate_site_id)
3976 from ra_customer_merges m
3977 where m.process_flag = 'N'
3978 and m.request_id = req_id
3979 and m.set_number = set_num)
3980 and attribute_code = 'INTMED_SHIP_TO_ORG_ID'
3981 for update nowait;
3982
3983 CURSOR c8 is
3984 select ATTR_DEF_RULE_ID
3985 from oe_def_attr_def_rules
3986 where src_constant_value in (select to_char(m.duplicate_id)
3987 from ra_customer_merges m
3988 where m.process_flag = 'N'
3989 and m.request_id = req_id
3990 and m.set_number = set_num)
3991 and attribute_code = 'SOLD_TO_ORG_ID'
3992 for update nowait;
3993
3994 l_profile_val VARCHAR2(30);
3995
3996 BEGIN
3997 arp_message.set_line( 'OE_CUST_MERGE.OE_Defaulting_Merge()+' );
3998
3999 /*-----------------------------+
4000 | OE_DEF_CONDN_ELEMS|
4001 +-----------------------------*/
4002 /* both customer and site level */
4003
4004 IF( process_mode = 'LOCK' ) THEN
4005
4006 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
4007 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_CONDN_ELEMS', FALSE );
4008
4009
4010 open c1;
4011 close c1;
4012
4013 open c2;
4014 close c2;
4015
4016 open c3;
4017 close c3;
4018
4019 open c4;
4020 close c4;
4021
4022 open c5;
4023 close c5;
4024
4025 open c6;
4026 close c6;
4027
4028 open c7;
4029 close c7;
4030
4031 open c8;
4032 close c8;
4033
4034
4035 ELSE
4036
4037 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
4038 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
4039 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4040 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4041 MERGE_LOG_ID,
4042 TABLE_NAME,
4043 MERGE_HEADER_ID,
4044 PRIMARY_KEY_ID1,
4045 VCHAR_COL1_ORIG,
4046 VCHAR_COL1_NEW,
4047 ACTION_FLAG,
4048 REQUEST_ID,
4049 CREATED_BY,
4050 CREATION_DATE,
4051 LAST_UPDATE_LOGIN,
4052 LAST_UPDATE_DATE,
4053 LAST_UPDATED_BY
4054 )
4055 select
4056 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4057 'OE_DEF_CONDN_ELEMS',
4058 m.customer_merge_header_id,
4059 a.condition_element_id,
4060 a.value_string,
4061 to_char(m.customer_site_id),
4062 'U',
4063 req_id,
4064 hz_utility_pub.CREATED_BY,
4065 hz_utility_pub.CREATION_DATE,
4066 hz_utility_pub.LAST_UPDATE_LOGIN,
4067 hz_utility_pub.LAST_UPDATE_DATE,
4068 hz_utility_pub.LAST_UPDATED_BY
4069 from OE_DEF_CONDN_ELEMS a,
4070 ra_customer_merges m
4071 where a.value_string = to_char(m.duplicate_site_id)
4072 and m.process_flag = 'N'
4073 and m.request_id = req_id
4074 and m.set_number = set_num
4075 and a.attribute_code = 'SHIP_TO_ORG_ID';
4076
4077 END IF;
4078
4079 /* site level update */
4080 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4081 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_CONDN_ELEMS', FALSE );
4082
4083 UPDATE OE_DEF_CONDN_ELEMS a
4084 set value_string = (select distinct to_char(m.customer_site_id)
4085 from ra_customer_merges m
4086 where a.value_string =
4087 to_char(m.duplicate_site_id)
4088
4089 and m.request_id = req_id
4090 and m.process_flag = 'N'
4091 and m.set_number = set_num),
4092 last_update_date = sysdate,
4093 last_updated_by = arp_standard.profile.user_id,
4094 last_update_login = arp_standard.profile.last_update_login
4095 where value_string in (select to_char(m.duplicate_site_id)
4096 from ra_customer_merges m
4097 where m.process_flag = 'N'
4098 and m.request_id = req_id
4099 and m.set_number = set_num)
4100 and attribute_code = 'SHIP_TO_ORG_ID';
4101
4102 g_count := sql%rowcount;
4103
4104 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4105 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4106 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4107 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4108 MERGE_LOG_ID,
4109 TABLE_NAME,
4110 MERGE_HEADER_ID,
4111 PRIMARY_KEY_ID1,
4112 VCHAR_COL1_ORIG,
4113 VCHAR_COL1_NEW,
4114 ACTION_FLAG,
4115 REQUEST_ID,
4116 CREATED_BY,
4117 CREATION_DATE,
4118 LAST_UPDATE_LOGIN,
4119 LAST_UPDATE_DATE,
4120 LAST_UPDATED_BY
4121 )
4122 select
4123 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4124 'OE_DEF_CONDN_ELEMS',
4125 m.customer_merge_header_id,
4126 a.condition_element_id,
4127 a.value_string,
4128 to_char(m.customer_site_id),
4129 'U',
4130 req_id,
4131 hz_utility_pub.CREATED_BY,
4132 hz_utility_pub.CREATION_DATE,
4133 hz_utility_pub.LAST_UPDATE_LOGIN,
4134 hz_utility_pub.LAST_UPDATE_DATE,
4135 hz_utility_pub.LAST_UPDATED_BY
4136 from OE_DEF_CONDN_ELEMS a,
4137 ra_customer_merges m
4138 where a.value_string = to_char(m.duplicate_site_id)
4139 and m.process_flag = 'N'
4140 and m.request_id = req_id
4141 and m.set_number = set_num
4142 and a.attribute_code = 'INVOICE_TO_ORG_ID';
4143
4144 END IF;
4145
4146
4147 /* site level update */
4148 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4149 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_CONDN_ELEMS', FALSE );
4150
4151 UPDATE OE_DEF_CONDN_ELEMS a
4152 set value_string = (select distinct to_char(m.customer_site_id)
4153 from ra_customer_merges m
4154 where a.value_string =
4155 to_char(m.duplicate_site_id)
4156
4157 and m.request_id = req_id
4158 and m.process_flag = 'N'
4159 and m.set_number = set_num),
4160 last_update_date = sysdate,
4161 last_updated_by = arp_standard.profile.user_id,
4162 last_update_login = arp_standard.profile.last_update_login
4163 where value_string in (select to_char(m.duplicate_site_id)
4164 from ra_customer_merges m
4165 where m.process_flag = 'N'
4166 and m.request_id = req_id
4167 and m.set_number = set_num)
4168 and attribute_code = 'INVOICE_TO_ORG_ID';
4169
4170 g_count := sql%rowcount;
4171
4172 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4173 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4174
4175 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4176 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4177 MERGE_LOG_ID,
4178 TABLE_NAME,
4179 MERGE_HEADER_ID,
4180 PRIMARY_KEY_ID1,
4181 VCHAR_COL1_ORIG,
4182 VCHAR_COL1_NEW,
4183 ACTION_FLAG,
4184 REQUEST_ID,
4185 CREATED_BY,
4186 CREATION_DATE,
4187 LAST_UPDATE_LOGIN,
4188 LAST_UPDATE_DATE,
4189 LAST_UPDATED_BY
4190 )
4191 select
4192 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4193 'OE_DEF_CONDN_ELEMS',
4194 m.customer_merge_header_id,
4195 a.condition_element_id,
4196 a.value_string,
4197 to_char(m.customer_site_id),
4198 'U',
4199 req_id,
4200 hz_utility_pub.CREATED_BY,
4201 hz_utility_pub.CREATION_DATE,
4202 hz_utility_pub.LAST_UPDATE_LOGIN,
4203 hz_utility_pub.LAST_UPDATE_DATE,
4204 hz_utility_pub.LAST_UPDATED_BY
4205 from OE_DEF_CONDN_ELEMS a,
4206 ra_customer_merges m
4207 where a.value_string = to_char(m.duplicate_site_id)
4208 and m.process_flag = 'N'
4209 and m.request_id = req_id
4210 and m.set_number = set_num
4211 and a.attribute_code = 'INTMED_SHIP_TO_ORG_ID';
4212
4213 END IF;
4214
4215 /* site level update */
4216 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4217 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_CONDN_ELEMS', FALSE );
4218
4219 UPDATE OE_DEF_CONDN_ELEMS a
4220 set value_string = (select distinct to_char(m.customer_site_id)
4221 from ra_customer_merges m
4222 where a.value_string =
4223 to_char(m.duplicate_site_id)
4224
4225 and m.request_id = req_id
4226 and m.process_flag = 'N'
4227 and m.set_number = set_num),
4228 last_update_date = sysdate,
4229 last_updated_by = arp_standard.profile.user_id,
4230 last_update_login = arp_standard.profile.last_update_login
4231 where value_string in (select to_char(m.duplicate_site_id)
4232 from ra_customer_merges m
4233 where m.process_flag = 'N'
4234 and m.request_id = req_id
4235 and m.set_number = set_num)
4236 and attribute_code = 'INTMED_SHIP_TO_ORG_ID';
4237
4238 g_count := sql%rowcount;
4239
4240 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4241 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4242
4243 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4244 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4245 MERGE_LOG_ID,
4246 TABLE_NAME,
4247 MERGE_HEADER_ID,
4248 PRIMARY_KEY_ID1,
4249 VCHAR_COL1_ORIG,
4250 VCHAR_COL1_NEW,
4251 ACTION_FLAG,
4252 REQUEST_ID,
4253 CREATED_BY,
4254 CREATION_DATE,
4255 LAST_UPDATE_LOGIN,
4256 LAST_UPDATE_DATE,
4257 LAST_UPDATED_BY
4258 )
4259 select
4260 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4261 'OE_DEF_CONDN_ELEMS',
4262 m.customer_merge_header_id,
4263 a.condition_element_id,
4264 a.value_string,
4265 to_char(m.customer_id),
4266 'U',
4267 req_id,
4268 hz_utility_pub.CREATED_BY,
4269 hz_utility_pub.CREATION_DATE,
4270 hz_utility_pub.LAST_UPDATE_LOGIN,
4271 hz_utility_pub.LAST_UPDATE_DATE,
4272 hz_utility_pub.LAST_UPDATED_BY
4273 from OE_DEF_CONDN_ELEMS a,
4274 ra_customer_merges m
4275 where a.value_string = to_char(m.duplicate_id)
4276 and m.process_flag = 'N'
4277 and m.request_id = req_id
4278 and m.set_number = set_num
4279 and a.attribute_code = 'SOLD_TO_ORG_ID';
4280
4281 END IF;
4282
4283 /* customer level update */
4284 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4285 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_CONDN_ELEMS', FALSE );
4286
4287 UPDATE OE_DEF_CONDN_ELEMS a
4288 set value_string = (select distinct to_char(m.customer_id)
4289 from ra_customer_merges m
4290 where a.value_string =
4291 to_char(m.duplicate_id)
4292
4293 and m.request_id = req_id
4294 and m.process_flag = 'N'
4295 and m.set_number = set_num),
4296 last_update_date = sysdate,
4297 last_updated_by = arp_standard.profile.user_id,
4298 last_update_login = arp_standard.profile.last_update_login
4299 where value_string in (select to_char(m.duplicate_id)
4300 from ra_customer_merges m
4301 where m.process_flag = 'N'
4302 and m.request_id = req_id
4303 and m.set_number = set_num)
4304 and attribute_code = 'SOLD_TO_ORG_ID';
4305
4306
4307 g_count := sql%rowcount;
4308
4309 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4310 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4311
4312
4313 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4314 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4315 MERGE_LOG_ID,
4316 TABLE_NAME,
4317 MERGE_HEADER_ID,
4318 PRIMARY_KEY_ID1,
4319 VCHAR_COL2_ORIG,
4320 VCHAR_COL2_NEW,
4321 ACTION_FLAG,
4322 REQUEST_ID,
4323 CREATED_BY,
4324 CREATION_DATE,
4325 LAST_UPDATE_LOGIN,
4326 LAST_UPDATE_DATE,
4327 LAST_UPDATED_BY
4328 )
4329 select
4330 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4331 'OE_DEF_ATTR_DEF_RULES',
4332 m.customer_merge_header_id,
4333 a.attr_def_rule_id,
4334 a.src_constant_value,
4335 to_char(m.customer_site_id),
4336 'U',
4337 req_id,
4338 hz_utility_pub.CREATED_BY,
4339 hz_utility_pub.CREATION_DATE,
4340 hz_utility_pub.LAST_UPDATE_LOGIN,
4341 hz_utility_pub.LAST_UPDATE_DATE,
4342 hz_utility_pub.LAST_UPDATED_BY
4343 from OE_DEF_ATTR_DEF_RULES a,
4344 ra_customer_merges m
4345 where a.src_constant_value = to_char(m.duplicate_site_id)
4346 and m.process_flag = 'N'
4347 and m.request_id = req_id
4348 and m.set_number = set_num
4349 and a.attribute_code = 'SHIP_TO_ORG_ID';
4350
4351 END IF;
4352
4353 /* site level update */
4354 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4355 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_ATTR_DEF_RULES', FALSE );
4356
4357
4358
4359 UPDATE OE_DEF_ATTR_DEF_RULES a
4360 set src_constant_value = (select distinct to_char(m.customer_site_id)
4361 from ra_customer_merges m
4362 where a.src_constant_value =
4363 to_char(m.duplicate_site_id)
4364
4365 and m.request_id = req_id
4366 and m.process_flag = 'N'
4367 and m.set_number = set_num),
4368 last_update_date = sysdate,
4369 last_updated_by = arp_standard.profile.user_id,
4370 last_update_login = arp_standard.profile.last_update_login
4371 where src_constant_value in (select to_char(m.duplicate_site_id)
4372 from ra_customer_merges m
4373 where m.process_flag = 'N'
4374 and m.request_id = req_id
4375 and m.set_number = set_num)
4376 and attribute_code = 'SHIP_TO_ORG_ID';
4377
4378 g_count := sql%rowcount;
4379
4380 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4381 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4382
4383 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4384 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4385 MERGE_LOG_ID,
4386 TABLE_NAME,
4387 MERGE_HEADER_ID,
4388 PRIMARY_KEY_ID1,
4389 VCHAR_COL2_ORIG,
4390 VCHAR_COL2_NEW,
4391 ACTION_FLAG,
4392 REQUEST_ID,
4393 CREATED_BY,
4394 CREATION_DATE,
4395 LAST_UPDATE_LOGIN,
4396 LAST_UPDATE_DATE,
4397 LAST_UPDATED_BY
4398 )
4399 select
4400 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4401 'OE_DEF_ATTR_DEF_RULES',
4402 m.customer_merge_header_id,
4403 a.attr_def_rule_id,
4404 a.src_constant_value,
4405 to_char(m.customer_site_id),
4406 'U',
4407 req_id,
4408 hz_utility_pub.CREATED_BY,
4409 hz_utility_pub.CREATION_DATE,
4410 hz_utility_pub.LAST_UPDATE_LOGIN,
4411 hz_utility_pub.LAST_UPDATE_DATE,
4412 hz_utility_pub.LAST_UPDATED_BY
4413 from OE_DEF_ATTR_DEF_RULES a,
4414 ra_customer_merges m
4415 where a.src_constant_value = to_char(m.duplicate_site_id)
4416 and m.process_flag = 'N'
4417 and m.request_id = req_id
4418 and m.set_number = set_num
4419 and a.attribute_code = 'INVOICE_TO_ORG_ID';
4420
4421 END IF;
4422
4423 /* site level update */
4424 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4425 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_ATTR_DEF_RULES', FALSE );
4426
4427 UPDATE OE_DEF_ATTR_DEF_RULES a
4428 set src_constant_value = (select distinct to_char(m.customer_site_id)
4429 from ra_customer_merges m
4430 where a.src_constant_value =
4431 to_char(m.duplicate_site_id)
4432
4433 and m.request_id = req_id
4434 and m.process_flag = 'N'
4435 and m.set_number = set_num),
4436 last_update_date = sysdate,
4437 last_updated_by = arp_standard.profile.user_id,
4438 last_update_login = arp_standard.profile.last_update_login
4439 where src_constant_value in (select to_char(m.duplicate_site_id)
4440 from ra_customer_merges m
4441 where m.process_flag = 'N'
4442 and m.request_id = req_id
4443 and m.set_number = set_num)
4444 and attribute_code = 'INVOICE_TO_ORG_ID';
4445
4446 g_count := sql%rowcount;
4447
4448 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4449 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4450
4451 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4452 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4453 MERGE_LOG_ID,
4454 TABLE_NAME,
4455 MERGE_HEADER_ID,
4456 PRIMARY_KEY_ID1,
4457 VCHAR_COL2_ORIG,
4458 VCHAR_COL2_NEW,
4459 ACTION_FLAG,
4460 REQUEST_ID,
4461 CREATED_BY,
4462 CREATION_DATE,
4463 LAST_UPDATE_LOGIN,
4464 LAST_UPDATE_DATE,
4465 LAST_UPDATED_BY
4466 )
4467 select
4468 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4469 'OE_DEF_ATTR_DEF_RULES',
4470 m.customer_merge_header_id,
4471 a.attr_def_rule_id,
4472 a.src_constant_value,
4473 to_char(m.customer_site_id),
4474 'U',
4475 req_id,
4476 hz_utility_pub.CREATED_BY,
4477 hz_utility_pub.CREATION_DATE,
4478 hz_utility_pub.LAST_UPDATE_LOGIN,
4479 hz_utility_pub.LAST_UPDATE_DATE,
4480 hz_utility_pub.LAST_UPDATED_BY
4481 from OE_DEF_ATTR_DEF_RULES a,
4482 ra_customer_merges m
4483 where a.src_constant_value = to_char(m.duplicate_site_id)
4484 and m.process_flag = 'N'
4485 and m.request_id = req_id
4486 and m.set_number = set_num
4487 and a.attribute_code = 'INTMED_SHIP_TO_ORG_ID';
4488
4489 END IF;
4490
4491 /* site level update */
4492 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4493 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_ATTR_DEF_RULES', FALSE );
4494
4495 UPDATE OE_DEF_ATTR_DEF_RULES a
4496 set src_constant_value = (select distinct to_char(m.customer_site_id)
4497 from ra_customer_merges m
4498 where a.src_constant_value =
4499 to_char(m.duplicate_site_id)
4500
4501 and m.request_id = req_id
4502 and m.process_flag = 'N'
4503 and m.set_number = set_num),
4504 last_update_date = sysdate,
4505 last_updated_by = arp_standard.profile.user_id,
4506 last_update_login = arp_standard.profile.last_update_login
4507 where src_constant_value in (select to_char(m.duplicate_site_id)
4508 from ra_customer_merges m
4509 where m.process_flag = 'N'
4510 and m.request_id = req_id
4511 and m.set_number = set_num)
4512 and attribute_code = 'INTMED_SHIP_TO_ORG_ID';
4513
4514 g_count := sql%rowcount;
4515
4516 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4517 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4518
4519
4520 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4521 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4522 MERGE_LOG_ID,
4523 TABLE_NAME,
4524 MERGE_HEADER_ID,
4525 PRIMARY_KEY_ID1,
4526 VCHAR_COL2_ORIG,
4527 VCHAR_COL2_NEW,
4528 ACTION_FLAG,
4529 REQUEST_ID,
4530 CREATED_BY,
4531 CREATION_DATE,
4532 LAST_UPDATE_LOGIN,
4533 LAST_UPDATE_DATE,
4534 LAST_UPDATED_BY
4535 )
4536 select
4537 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4538 'OE_DEF_ATTR_DEF_RULES',
4539 m.customer_merge_header_id,
4540 a.attr_def_rule_id,
4541 a.src_constant_value,
4542 to_char(m.customer_site_id),
4543 'U',
4544 req_id,
4545 hz_utility_pub.CREATED_BY,
4546 hz_utility_pub.CREATION_DATE,
4547 hz_utility_pub.LAST_UPDATE_LOGIN,
4548 hz_utility_pub.LAST_UPDATE_DATE,
4549 hz_utility_pub.LAST_UPDATED_BY
4550 from OE_DEF_ATTR_DEF_RULES a,
4551 ra_customer_merges m
4552 where a.src_constant_value = to_char(m.duplicate_site_id)
4553 and m.process_flag = 'N'
4554 and m.request_id = req_id
4555 and m.set_number = set_num
4556 and a.attribute_code = 'SOLD_TO_ORG_ID';
4557
4558 END IF;
4559
4560 /* customer level update */
4561 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4562 arp_message.set_token( 'TABLE_NAME', 'OE_DEF_ATTR_DEF_RULES', FALSE );
4563
4564 UPDATE OE_DEF_ATTR_DEF_RULES a
4565 set src_constant_value = (select distinct to_char(m.customer_id)
4566 from ra_customer_merges m
4567 where a.src_constant_value =
4568 to_char(m.duplicate_id)
4569
4570 and m.request_id = req_id
4571 and m.process_flag = 'N'
4572 and m.set_number = set_num),
4573 last_update_date = sysdate,
4574 last_updated_by = arp_standard.profile.user_id,
4575 last_update_login = arp_standard.profile.last_update_login
4576 where src_constant_value in (select to_char(m.duplicate_id)
4577 from ra_customer_merges m
4578 where m.process_flag = 'N'
4579 and m.request_id = req_id
4580 and m.set_number = set_num)
4581 and attribute_code = 'SOLD_TO_ORG_ID';
4582
4583
4584 g_count := sql%rowcount;
4585
4586 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4587 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4588
4589
4590
4591 END IF;
4592
4593 arp_message.set_line( 'OE_CUST_MERGE.OE_Defaulting_Merge()-' );
4594
4595
4596 EXCEPTION
4597 when others then
4598 arp_message.set_line( 'OE_CUST_MERGE.OE_Defaulting_Merge' );
4599 raise;
4600
4601
4602
4603 END OE_Defaulting_Merge;
4604
4605 Procedure OE_Constraints_Merge (Req_Id IN NUMBER,
4606 Set_Num IN NUMBER,
4607 Process_Mode IN VARCHAR2
4608 )
4609 IS
4610 CURSOR c1 is
4611 select VALIDATION_TMPLT_ID
4612 from oe_pc_vtmplt_cols
4613 where value_string in (select to_char(m.duplicate_site_id)
4614 from ra_customer_merges m
4615 where m.process_flag = 'N'
4616 and m.request_id = req_id
4617 and m.set_number = set_num)
4618 and column_name = 'SHIP_TO_ORG_ID'
4619 for update nowait;
4620
4621 CURSOR c2 is
4622 select VALIDATION_TMPLT_ID
4623 from oe_pc_vtmplt_cols
4624 where value_string in (select to_char(m.duplicate_site_id)
4625 from ra_customer_merges m
4626 where m.process_flag = 'N'
4627 and m.request_id = req_id
4628 and m.set_number = set_num)
4629 and column_name = 'INVOICE_TO_ORG_ID'
4630 for update nowait;
4631
4632 CURSOR c4 is
4633 select VALIDATION_TMPLT_ID
4634 from oe_pc_vtmplt_cols
4635 where value_string in (select to_char(m.duplicate_site_id)
4636 from ra_customer_merges m
4637 where m.process_flag = 'N'
4638 and m.request_id = req_id
4639 and m.set_number = set_num)
4640 and column_name = 'INTMED_SHIP_TO_ORG_ID'
4641 for update nowait;
4642
4643 CURSOR c3 is
4644 select VALIDATION_TMPLT_ID
4645 from oe_pc_vtmplt_cols
4646 where value_string in (select to_char(m.duplicate_id)
4647 from ra_customer_merges m
4648 where m.process_flag = 'N'
4649 and m.request_id = req_id
4650 and m.set_number = set_num)
4651 and column_name = 'SOLD_TO_ORG_ID'
4652 for update nowait;
4653
4654 l_profile_val VARCHAR2(30);
4655
4656 BEGIN
4657 arp_message.set_line( 'OE_CUST_MERGE.Constraints_Merge()+' );
4658
4659 /*-----------------------------+
4660 | oe_pc_vtmplt_cols|
4661 +-----------------------------*/
4662 /* both customer and site level */
4663
4664 IF( process_mode = 'LOCK' ) THEN
4665
4666 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
4667 arp_message.set_token( 'TABLE_NAME', 'OE_PC_VTMPLT_COLS', FALSE );
4668
4669
4670 open c1;
4671 close c1;
4672
4673 open c2;
4674 close c2;
4675
4676 open c3;
4677 close c3;
4678
4679 open c4;
4680 close c4;
4681
4682
4683 ELSE
4684
4685 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
4686 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
4687
4688 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4689 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4690 MERGE_LOG_ID,
4691 TABLE_NAME,
4692 MERGE_HEADER_ID,
4693 PRIMARY_KEY_ID1,
4694 VCHAR_COL1_ORIG,
4695 VCHAR_COL1_NEW,
4696 ACTION_FLAG,
4697 REQUEST_ID,
4698 CREATED_BY,
4699 CREATION_DATE,
4700 LAST_UPDATE_LOGIN,
4701 LAST_UPDATE_DATE,
4702 LAST_UPDATED_BY
4703 )
4704 select
4705 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4706 'OE_PC_VTMPLT_COLS',
4707 m.customer_merge_header_id,
4708 a.validation_tmplt_id,
4709 a.value_string,
4710 to_char(m.customer_site_id),
4711 'U',
4712 req_id,
4713 hz_utility_pub.CREATED_BY,
4714 hz_utility_pub.CREATION_DATE,
4715 hz_utility_pub.LAST_UPDATE_LOGIN,
4716 hz_utility_pub.LAST_UPDATE_DATE,
4717 hz_utility_pub.LAST_UPDATED_BY
4718 from OE_PC_VTMPLT_COLS a,
4719 ra_customer_merges m
4720 where a.value_string = to_char(m.duplicate_site_id)
4721 and m.process_flag = 'N'
4722 and m.request_id = req_id
4723 and m.set_number = set_num
4724 and a.column_name = 'SHIP_TO_ORG_ID';
4725
4726 END IF;
4727
4728 /* site level update */
4729 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4730 arp_message.set_token( 'TABLE_NAME', 'OE_PC_VTMPLT_COLS', FALSE );
4731
4732 UPDATE OE_PC_VTMPLT_COLS a
4733 set value_string = (select distinct to_char(m.customer_site_id)
4734 from ra_customer_merges m
4735 where a.value_string =
4736 to_char(m.duplicate_site_id)
4737
4738 and m.request_id = req_id
4739 and m.process_flag = 'N'
4740 and m.set_number = set_num),
4741 last_update_date = sysdate,
4742 last_updated_by = arp_standard.profile.user_id,
4743 last_update_login = arp_standard.profile.last_update_login
4744 where value_string in (select to_char(m.duplicate_site_id)
4745 from ra_customer_merges m
4746 where m.process_flag = 'N'
4747 and m.request_id = req_id
4748 and m.set_number = set_num)
4749 and column_name = 'SHIP_TO_ORG_ID';
4750
4751 g_count := sql%rowcount;
4752
4753 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4754 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4755
4756 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4757 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4758 MERGE_LOG_ID,
4759 TABLE_NAME,
4760 MERGE_HEADER_ID,
4761 PRIMARY_KEY_ID1,
4762 VCHAR_COL1_ORIG,
4763 VCHAR_COL1_NEW,
4764 ACTION_FLAG,
4765 REQUEST_ID,
4766 CREATED_BY,
4767 CREATION_DATE,
4768 LAST_UPDATE_LOGIN,
4769 LAST_UPDATE_DATE,
4770 LAST_UPDATED_BY
4771 )
4772 select
4773 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4774 'OE_PC_VTMPLT_COLS',
4775 m.customer_merge_header_id,
4776 a.validation_tmplt_id,
4777 a.value_string,
4778 to_char(m.customer_site_id),
4779 'U',
4780 req_id,
4781 hz_utility_pub.CREATED_BY,
4782 hz_utility_pub.CREATION_DATE,
4783 hz_utility_pub.LAST_UPDATE_LOGIN,
4784 hz_utility_pub.LAST_UPDATE_DATE,
4785 hz_utility_pub.LAST_UPDATED_BY
4786 from OE_PC_VTMPLT_COLS a,
4787 ra_customer_merges m
4788 where a.value_string = to_char(m.duplicate_site_id)
4789 and m.process_flag = 'N'
4790 and m.request_id = req_id
4791 and m.set_number = set_num
4792 and a.column_name = 'INVOICE_TO_ORG_ID';
4793
4794 END IF;
4795
4796 /* site level update */
4797 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4798 arp_message.set_token( 'TABLE_NAME', 'OE_PC_VTMPLT_COLS', FALSE );
4799
4800 UPDATE OE_PC_VTMPLT_COLS a
4801 set value_string = (select distinct to_char(m.customer_site_id)
4802 from ra_customer_merges m
4803 where a.value_string =
4804 to_char(m.duplicate_site_id)
4805
4806 and m.request_id = req_id
4807 and m.process_flag = 'N'
4808 and m.set_number = set_num),
4809 last_update_date = sysdate,
4810 last_updated_by = arp_standard.profile.user_id,
4811 last_update_login = arp_standard.profile.last_update_login
4812 where value_string in (select to_char(m.duplicate_site_id)
4813 from ra_customer_merges m
4814 where m.process_flag = 'N'
4815 and m.request_id = req_id
4816 and m.set_number = set_num)
4817 and column_name = 'INVOICE_TO_ORG_ID';
4818
4819 g_count := sql%rowcount;
4820
4821 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4822 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4823
4824 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4825 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4826 MERGE_LOG_ID,
4827 TABLE_NAME,
4828 MERGE_HEADER_ID,
4829 PRIMARY_KEY_ID1,
4830 VCHAR_COL1_ORIG,
4831 VCHAR_COL1_NEW,
4832 ACTION_FLAG,
4833 REQUEST_ID,
4834 CREATED_BY,
4835 CREATION_DATE,
4836 LAST_UPDATE_LOGIN,
4837 LAST_UPDATE_DATE,
4838 LAST_UPDATED_BY
4839 )
4840 select
4841 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4842 'OE_PC_VTMPLT_COLS',
4843 m.customer_merge_header_id,
4844 a.validation_tmplt_id,
4845 a.value_string,
4846 to_char(m.customer_site_id),
4847 'U',
4848 req_id,
4849 hz_utility_pub.CREATED_BY,
4850 hz_utility_pub.CREATION_DATE,
4851 hz_utility_pub.LAST_UPDATE_LOGIN,
4852 hz_utility_pub.LAST_UPDATE_DATE,
4853 hz_utility_pub.LAST_UPDATED_BY
4854 from OE_PC_VTMPLT_COLS a,
4855 ra_customer_merges m
4856 where a.value_string = to_char(m.duplicate_site_id)
4857 and m.process_flag = 'N'
4858 and m.request_id = req_id
4859 and m.set_number = set_num
4860 and a.column_name = 'INTMED_SHIP_TO_ORG_ID';
4861
4862 END IF;
4863
4864 /* site level update */
4865 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4866 arp_message.set_token( 'TABLE_NAME', 'OE_PC_VTMPLT_COLS', FALSE );
4867
4868 UPDATE OE_PC_VTMPLT_COLS a
4869 set value_string = (select distinct to_char(m.customer_site_id)
4870 from ra_customer_merges m
4871 where a.value_string =
4872 to_char(m.duplicate_site_id)
4873
4874 and m.request_id = req_id
4875 and m.process_flag = 'N'
4876 and m.set_number = set_num),
4877 last_update_date = sysdate,
4878 last_updated_by = arp_standard.profile.user_id,
4879 last_update_login = arp_standard.profile.last_update_login
4880 where value_string in (select to_char(m.duplicate_site_id)
4881 from ra_customer_merges m
4882 where m.process_flag = 'N'
4883 and m.request_id = req_id
4884 and m.set_number = set_num)
4885 and column_name = 'INTMED_SHIP_TO_ORG_ID';
4886
4887 g_count := sql%rowcount;
4888
4889 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4890 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4891
4892
4893 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4894 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4895 MERGE_LOG_ID,
4896 TABLE_NAME,
4897 MERGE_HEADER_ID,
4898 PRIMARY_KEY_ID1,
4899 VCHAR_COL2_ORIG,
4900 VCHAR_COL2_NEW,
4901 ACTION_FLAG,
4902 REQUEST_ID,
4903 CREATED_BY,
4904 CREATION_DATE,
4905 LAST_UPDATE_LOGIN,
4906 LAST_UPDATE_DATE,
4907 LAST_UPDATED_BY
4908 )
4909 select
4910 HZ_CUSTOMER_MERGE_LOG_s.nextval,
4911 'OE_PC_VTMPLT_COLS',
4912 m.customer_merge_header_id,
4913 a.validation_tmplt_id,
4914 a.value_string,
4915 to_char(m.customer_id),
4916 'U',
4917 req_id,
4918 hz_utility_pub.CREATED_BY,
4919 hz_utility_pub.CREATION_DATE,
4920 hz_utility_pub.LAST_UPDATE_LOGIN,
4921 hz_utility_pub.LAST_UPDATE_DATE,
4922 hz_utility_pub.LAST_UPDATED_BY
4923 from OE_PC_VTMPLT_COLS a,
4924 ra_customer_merges m
4925 where a.value_string = to_char(m.duplicate_id)
4926 and m.process_flag = 'N'
4927 and m.request_id = req_id
4928 and m.set_number = set_num
4929 and a.column_name = 'SOLD_TO_ORG_ID';
4930
4931 END IF;
4932
4933 /* customer level update */
4934 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
4935 arp_message.set_token( 'TABLE_NAME', 'OE_PC_VTMPLT_COLS', FALSE );
4936
4937 UPDATE OE_PC_VTMPLT_COLS a
4938 set value_string = (select distinct to_char(m.customer_id)
4939 from ra_customer_merges m
4940 where a.value_string =
4941 to_char(m.duplicate_id)
4942
4943 and m.request_id = req_id
4944 and m.process_flag = 'N'
4945 and m.set_number = set_num),
4946 last_update_date = sysdate,
4947 last_updated_by = arp_standard.profile.user_id,
4948 last_update_login = arp_standard.profile.last_update_login
4949 where value_string in (select to_char(m.duplicate_id)
4950 from ra_customer_merges m
4951 where m.process_flag = 'N'
4952 and m.request_id = req_id
4953 and m.set_number = set_num)
4954 and column_name = 'SOLD_TO_ORG_ID';
4955
4956
4957 g_count := sql%rowcount;
4958
4959 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
4960 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
4961
4962 END IF;
4963
4964 arp_message.set_line( 'OE_CUST_MERGE.OE_Constraints_Merge()-' );
4965
4966
4967 EXCEPTION
4968 when others then
4969 arp_message.set_line( 'OE_CUST_MERGE.OE_Constraints_Merge' );
4970 raise;
4971
4972 END OE_Constraints_Merge;
4973
4974
4975
4976
4977 Procedure OE_Hold_Merge (Req_Id IN NUMBER,
4978 Set_Num IN NUMBER,
4979 Process_Mode IN VARCHAR2
4980 )
4981 IS
4982 CURSOR c1 is
4983 select hold_source_id
4984 from oe_hold_sources
4985 where hold_entity_id in (select m.duplicate_site_id
4986 from ra_customer_merges m
4987 where m.process_flag = 'N'
4988 and m.request_id = req_id
4989 and m.set_number = set_num)
4990 and hold_entity_code = 'S'
4991 for update nowait;
4992
4993 CURSOR c2 is
4994 select hold_source_id
4995 from oe_hold_sources
4996 where hold_entity_id in (select m.duplicate_site_id
4997 from ra_customer_merges m
4998 where m.process_flag = 'N'
4999 and m.request_id = req_id
5000 and m.set_number = set_num)
5001 and hold_entity_code = 'B'
5002 for update nowait;
5003
5004
5005 CURSOR c3 is
5006 select hold_source_id
5007 from oe_hold_sources
5008 where hold_entity_id in (select m.duplicate_id
5009 from ra_customer_merges m
5010 where m.process_flag = 'N'
5011 and m.request_id = req_id
5012 and m.set_number = set_num)
5013 and hold_entity_code = 'C'
5014 for update nowait;
5015
5016 l_profile_val VARCHAR2(30);
5017
5018 BEGIN
5019
5020 arp_message.set_line( 'OE_CUST_MERGE.OE_Hold_Merge()+' );
5021 /*-----------------------------+
5022 | OE_HOLD_SOURCES |
5023 +-----------------------------*/
5024 /* both customer and site level */
5025
5026 IF( process_mode = 'LOCK' ) THEN
5027
5028 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
5029 arp_message.set_token( 'TABLE_NAME', 'OE_HOLD_SOURCES', FALSE );
5030
5031 open c1;
5032 close c1;
5033
5034 open c2;
5035 close c2;
5036
5037 open c3;
5038 close c3;
5039
5040 ELSE
5041
5042 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5043 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5044
5045 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5046 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5047 MERGE_LOG_ID,
5048 TABLE_NAME,
5049 MERGE_HEADER_ID,
5050 PRIMARY_KEY_ID1,
5051 VCHAR_COL1_ORIG,
5052 VCHAR_COL1_NEW,
5053 ACTION_FLAG,
5054 REQUEST_ID,
5055 CREATED_BY,
5056 CREATION_DATE,
5057 LAST_UPDATE_LOGIN,
5058 LAST_UPDATE_DATE,
5059 LAST_UPDATED_BY
5060 )
5061 select
5062 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5063 'OE_HOLD_SOURCES',
5064 m.customer_merge_header_id,
5065 a.hold_source_id,
5066 to_char(a.hold_entity_id),
5067 to_char(m.customer_site_id),
5068 'U',
5069 req_id,
5070 hz_utility_pub.CREATED_BY,
5071 hz_utility_pub.CREATION_DATE,
5072 hz_utility_pub.LAST_UPDATE_LOGIN,
5073 hz_utility_pub.LAST_UPDATE_DATE,
5074 hz_utility_pub.LAST_UPDATED_BY
5075 from OE_HOLD_SOURCES a,
5076 ra_customer_merges m
5077 where a.hold_entity_id = to_char(m.duplicate_site_id)
5078 and m.process_flag = 'N'
5079 and m.request_id = req_id
5080 and m.set_number = set_num
5081 and a.hold_entity_code = 'S';
5082
5083 END IF;
5084
5085 /* site level update */
5086 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5087 arp_message.set_token( 'TABLE_NAME', 'OE_HOLD_SOURCES', FALSE );
5088
5089 UPDATE OE_HOLD_SOURCES a
5090 set (hold_entity_id) = (select distinct m.customer_site_id
5091 from ra_customer_merges m
5092 where a.hold_entity_id =
5093 m.duplicate_site_id
5094 and m.request_id = req_id
5095 and m.process_flag = 'N'
5096 and m.set_number = set_num),
5097 last_update_date = sysdate,
5098
5099 last_updated_by = arp_standard.profile.user_id,
5100 last_update_login = arp_standard.profile.last_update_login
5101 where hold_entity_id in (select m.duplicate_site_id
5102 from ra_customer_merges m
5103 where m.process_flag = 'N'
5104 and m.request_id = req_id
5105 and m.set_number = set_num)
5106 and hold_entity_code = 'S';
5107
5108 g_count := sql%rowcount;
5109
5110 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5111 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5112
5113 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5114 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5115 MERGE_LOG_ID,
5116 TABLE_NAME,
5117 MERGE_HEADER_ID,
5118 PRIMARY_KEY_ID1,
5119 VCHAR_COL1_ORIG,
5120 VCHAR_COL1_NEW,
5121 ACTION_FLAG,
5122 REQUEST_ID,
5123 CREATED_BY,
5124 CREATION_DATE,
5125 LAST_UPDATE_LOGIN,
5126 LAST_UPDATE_DATE,
5127 LAST_UPDATED_BY
5128 )
5129 select
5130 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5131 'OE_HOLD_SOURCES',
5132 m.customer_merge_header_id,
5133 a.hold_source_id,
5134 to_char(a.hold_entity_id),
5135 to_char(m.customer_site_id),
5136 'U',
5137 req_id,
5138 hz_utility_pub.CREATED_BY,
5139 hz_utility_pub.CREATION_DATE,
5140 hz_utility_pub.LAST_UPDATE_LOGIN,
5141 hz_utility_pub.LAST_UPDATE_DATE,
5142 hz_utility_pub.LAST_UPDATED_BY
5143 from OE_HOLD_SOURCES a,
5144 ra_customer_merges m
5145 where a.hold_entity_id = to_char(m.duplicate_site_id)
5146 and m.process_flag = 'N'
5147 and m.request_id = req_id
5148 and m.set_number = set_num
5149 and a.hold_entity_code = 'B';
5150
5151 END IF;
5152
5153 /* site level update */
5154 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5155 arp_message.set_token( 'TABLE_NAME', 'SO_HOLD_SOURCES', FALSE );
5156
5157 UPDATE OE_HOLD_SOURCES a
5158 set (hold_entity_id) = (select distinct m.customer_site_id
5159 from ra_customer_merges m
5160 where a.hold_entity_id =
5161
5162 m.duplicate_site_id
5163 and m.request_id = req_id
5164 and m.process_flag = 'N'
5165 and m.set_number = set_num),
5166 last_update_date = sysdate,
5167 last_updated_by = arp_standard.profile.user_id,
5168 last_update_login = arp_standard.profile.last_update_login
5169 where hold_entity_id in (select m.duplicate_site_id
5170 from ra_customer_merges m
5171 where m.process_flag = 'N'
5172 and m.request_id = req_id
5173 and m.set_number = set_num)
5174 and hold_entity_code = 'B';
5175
5176 g_count := sql%rowcount;
5177
5178 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5179 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5180
5181
5182 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5183 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5184 MERGE_LOG_ID,
5185 TABLE_NAME,
5186 MERGE_HEADER_ID,
5187 PRIMARY_KEY_ID1,
5188 VCHAR_COL1_ORIG,
5189 VCHAR_COL1_NEW,
5190 ACTION_FLAG,
5191 REQUEST_ID,
5192 CREATED_BY,
5193 CREATION_DATE,
5194 LAST_UPDATE_LOGIN,
5195 LAST_UPDATE_DATE,
5196 LAST_UPDATED_BY
5197 )
5198 select
5199 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5200 'OE_HOLD_SOURCES',
5201 m.customer_merge_header_id,
5202 a.hold_source_id,
5203 to_char(a.hold_entity_id),
5204 to_char(m.customer_id),
5205 'U',
5206 req_id,
5207 hz_utility_pub.CREATED_BY,
5208 hz_utility_pub.CREATION_DATE,
5209 hz_utility_pub.LAST_UPDATE_LOGIN,
5210 hz_utility_pub.LAST_UPDATE_DATE,
5211 hz_utility_pub.LAST_UPDATED_BY
5212 from OE_HOLD_SOURCES a,
5213 ra_customer_merges m
5214 where a.hold_entity_id = to_char(m.duplicate_id)
5215 and m.process_flag = 'N'
5216 and m.request_id = req_id
5217 and m.set_number = set_num
5218 and a.hold_entity_code = 'S';
5219
5220 END IF;
5221
5222 /* customer level update */
5223 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5224 arp_message.set_token( 'TABLE_NAME', 'SO_HOLD_SOURCES', FALSE );
5225
5226 UPDATE OE_HOLD_SOURCES a
5227 set hold_entity_id = (select distinct m.customer_id
5228 from ra_customer_merges m
5229 where a.hold_entity_id =
5230 m.duplicate_id
5231 and m.process_flag = 'N'
5232 and m.request_id = req_id
5233 and m.set_number = set_num),
5234 last_update_date = sysdate,
5235 last_updated_by = arp_standard.profile.user_id,
5236 last_update_login = arp_standard.profile.last_update_login
5237 where hold_entity_id in (select m.duplicate_id
5238 from ra_customer_merges m
5239 where m.process_flag = 'N'
5240 and m.request_id = req_id
5241 and m.set_number = set_num)
5242 and hold_entity_code = 'C';
5243
5244 g_count := sql%rowcount;
5245
5246 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5247 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5248
5249 END IF;
5250
5251 arp_message.set_line( 'OE_CUST_MERGE.OE_Hold_Merge()-' );
5252
5253
5254 EXCEPTION
5255 when others then
5256 arp_message.set_line( 'OE_CUST_MERGE.OE_Hold_Merge' );
5257 raise;
5258
5259 END OE_Hold_Merge;
5260
5261 Procedure OE_Drop_SHip_Merge (Req_Id IN NUMBER,
5262 Set_Num IN NUMBER,
5263 Process_Mode IN VARCHAR2)
5264 IS
5265 CURSOR c1 is
5266 select DROP_SHIP_SOURCE_ID
5267 from oe_drop_ship_sources
5268 where LINE_LOCATION_ID in
5269 (select m.duplicate_site_id
5270 from ra_customer_merges m
5271 where m.process_flag = 'N'
5272 and m.request_id = req_id
5273 and m.set_number = set_num)
5274 for update nowait;
5275
5276 l_profile_val VARCHAR2(30);
5277
5278 BEGIN
5279 arp_message.set_line( 'OE_CUST_MERGE.OE_Drop_SHip_Merge()+' );
5280
5281 /* both customer and site level */
5282
5283 IF( process_mode = 'LOCK' ) THEN
5284
5285 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
5286 arp_message.set_token( 'TABLE_NAME', 'OE_DROP_SHIP_SOURCES', FALSE );
5287
5288 open c1;
5289 close c1;
5290
5291 ELSE
5292
5293 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5294 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5295
5296 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5297 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5298 MERGE_LOG_ID,
5299 TABLE_NAME,
5300 MERGE_HEADER_ID,
5301 PRIMARY_KEY_ID1,
5302 VCHAR_COL1_ORIG,
5303 VCHAR_COL1_NEW,
5304 ACTION_FLAG,
5305 REQUEST_ID,
5306 CREATED_BY,
5307 CREATION_DATE,
5308 LAST_UPDATE_LOGIN,
5309 LAST_UPDATE_DATE,
5310 LAST_UPDATED_BY
5311 )
5312 select
5313 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5314 'OE_DROP_SHIP_SOURCES',
5315 m.customer_merge_header_id,
5316 a.drop_ship_source_id,
5317 to_char(a.line_location_id),
5318 to_char(m.customer_site_id),
5319 'U',
5320 req_id,
5321 hz_utility_pub.CREATED_BY,
5322 hz_utility_pub.CREATION_DATE,
5323 hz_utility_pub.LAST_UPDATE_LOGIN,
5324 hz_utility_pub.LAST_UPDATE_DATE,
5325 hz_utility_pub.LAST_UPDATED_BY
5326 from OE_DROP_SHIP_SOURCES a,
5327 ra_customer_merges m
5328 where a.line_location_id = to_char(m.duplicate_site_id)
5329 and m.process_flag = 'N'
5330 and m.request_id = req_id
5331 and m.set_number = set_num;
5332
5333 END IF;
5334
5335 /* site level update */
5336 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5337 arp_message.set_token( 'TABLE_NAME', 'OE_DROP_SHIP_SOURCES', FALSE );
5338
5339 UPDATE OE_DROP_SHIP_SOURCES a
5340 set line_location_id = (select distinct m.customer_site_id
5341 from ra_customer_merges m
5342 where a.line_location_id = m.duplicate_site_id
5343 and m.request_id = req_id
5344 and m.process_flag = 'N'
5345 and m.set_number = set_num),
5346 last_update_date = sysdate,
5347 last_updated_by = arp_standard.profile.user_id,
5348 last_update_login = arp_standard.profile.last_update_login
5349 where line_location_id in (select m.duplicate_site_id
5350 from ra_customer_merges m
5351 where m.process_flag = 'N'
5352 and m.request_id = req_id
5353 and m.set_number = set_num);
5354 g_count := sql%rowcount;
5355 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5356 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5357
5358 END IF;
5359
5360 arp_message.set_line( 'OE_CUST_MERGE.OE_Drop_SHip_Merge()-' );
5361
5362 EXCEPTION
5363 When others then
5364 arp_message.set_error( 'OE_CUST_MERGE.OE_Drop_SHip_Merge-' );
5365 raise;
5366
5367 END OE_Drop_Ship_Merge;
5368
5369 Procedure OE_Ship_Tolerance_Merge (Req_Id IN NUMBER,
5370 Set_Num IN NUMBER,
5371 Process_Mode IN VARCHAR2)
5372 IS
5373 CURSOR c1 is
5374 select CUST_ITEM_SETTING_ID
5375 from oe_cust_item_settings
5376 where site_use_id in
5377 (select m.duplicate_site_id
5378 from ra_customer_merges m
5379 where m.process_flag = 'N'
5380 and m.request_id = req_id
5381 and m.set_number = set_num)
5382 for update nowait;
5383
5384 CURSOR c2 is
5385 select CUST_ITEM_SETTING_ID
5386 from oe_cust_item_settings
5387 where customer_id in
5388 (select m.duplicate_id
5389 from ra_customer_merges m
5390 where m.process_flag = 'N'
5391 and m.request_id = req_id
5392 and m.set_number = set_num)
5393 for update nowait;
5394
5395 l_profile_val VARCHAR2(30);
5396
5397 BEGIN
5398 arp_message.set_line( 'OE_CUST_MERGE.OE_ship_tolerance_merge()+' );
5399
5400 /* both customer and site level */
5401
5402 IF( process_mode = 'LOCK' ) THEN
5403
5404 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
5405 arp_message.set_token( 'TABLE_NAME', 'OE_CUST_ITEM_SETTINGS', FALSE );
5406
5407 open c1;
5408 close c1;
5409
5410 open c2;
5411 close c2;
5412
5413
5414
5415 ELSE
5416
5417 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5418 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5419
5420 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5421 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5422 MERGE_LOG_ID,
5423 TABLE_NAME,
5424 MERGE_HEADER_ID,
5425 PRIMARY_KEY_ID1,
5426 NUM_COL1_ORIG,
5427 NUM_COL1_NEW,
5428 ACTION_FLAG,
5429 REQUEST_ID,
5430 CREATED_BY,
5431 CREATION_DATE,
5432 LAST_UPDATE_LOGIN,
5433 LAST_UPDATE_DATE,
5434 LAST_UPDATED_BY
5435 )
5436 select
5437 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5438 'OE_CUST_ITEM_SETTINGS',
5439 m.customer_merge_header_id,
5440 a.cust_item_setting_id,
5441 a.site_use_id,
5442 m.customer_site_id,
5443 'U',
5444 req_id,
5445 hz_utility_pub.CREATED_BY,
5446 hz_utility_pub.CREATION_DATE,
5447 hz_utility_pub.LAST_UPDATE_LOGIN,
5448 hz_utility_pub.LAST_UPDATE_DATE,
5449 hz_utility_pub.LAST_UPDATED_BY
5450 from OE_CUST_ITEM_SETTINGS a,
5451 ra_customer_merges m
5452 where a.site_use_id = m.duplicate_site_id
5453 and m.process_flag = 'N'
5454 and m.request_id = req_id
5455 and m.set_number = set_num;
5456
5457 END IF;
5458
5459 /* site level update */
5460 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5461 arp_message.set_token( 'TABLE_NAME', 'OE_CUST_ITEM_SETTINGS', FALSE );
5462
5463 UPDATE OE_CUST_ITEM_SETTINGS a
5464 set site_use_id = (select distinct m.customer_site_id
5465 from ra_customer_merges m
5466 where a.site_use_id = m.duplicate_site_id
5467 and m.request_id = req_id
5468 and m.process_flag = 'N'
5469 and m.set_number = set_num),
5470 last_update_date = sysdate,
5471 last_updated_by = arp_standard.profile.user_id,
5472 last_update_login = arp_standard.profile.last_update_login
5473 where site_use_id in (select m.duplicate_site_id
5474 from ra_customer_merges m
5475 where m.process_flag = 'N'
5476 and m.request_id = req_id
5477 and m.set_number = set_num);
5478 g_count := sql%rowcount;
5479 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5480 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5481
5482 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5483 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5484 MERGE_LOG_ID,
5485 TABLE_NAME,
5486 MERGE_HEADER_ID,
5487 PRIMARY_KEY_ID1,
5488 NUM_COL2_ORIG,
5489 NUM_COL2_NEW,
5490 ACTION_FLAG,
5491 REQUEST_ID,
5492 CREATED_BY,
5493 CREATION_DATE,
5494 LAST_UPDATE_LOGIN,
5495 LAST_UPDATE_DATE,
5496 LAST_UPDATED_BY
5497 )
5498 select
5499 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5500 'OE_CUST_ITEM_SETTINGS',
5501 m.customer_merge_header_id,
5502 a.cust_item_setting_id,
5503 a.customer_id,
5504 m.customer_id,
5505 'U',
5506 req_id,
5507 hz_utility_pub.CREATED_BY,
5508 hz_utility_pub.CREATION_DATE,
5509 hz_utility_pub.LAST_UPDATE_LOGIN,
5510 hz_utility_pub.LAST_UPDATE_DATE,
5511 hz_utility_pub.LAST_UPDATED_BY
5512 from OE_CUST_ITEM_SETTINGS a,
5513 ra_customer_merges m
5514 where a.customer_id = m.duplicate_id
5515 and m.process_flag = 'N'
5516 and m.request_id = req_id
5517 and m.set_number = set_num;
5518
5519 END IF;
5520
5521 /* customer level update */
5522 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5523 arp_message.set_token( 'TABLE_NAME', 'OE_CUST_ITEM_SETTINGS', FALSE );
5524
5525 UPDATE OE_CUST_ITEM_SETTINGS a
5526 set customer_id = (select distinct m.customer_id
5527 from ra_customer_merges m
5528 where a.customer_id = m.duplicate_id
5529 and m.request_id = req_id
5530 and m.process_flag = 'N'
5531 and m.set_number = set_num),
5532 last_update_date = sysdate,
5533 last_updated_by = arp_standard.profile.user_id,
5534 last_update_login = arp_standard.profile.last_update_login
5535 where customer_id in (select m.duplicate_id
5536 from ra_customer_merges m
5537 where m.process_flag = 'N'
5538 and m.request_id = req_id
5539 and m.set_number = set_num);
5540 g_count := sql%rowcount;
5541 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5542 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5543
5544 END IF;
5545
5546 arp_message.set_line( 'OE_CUST_MERGE.OE_Ship_Tolerance_Merge()-' );
5547
5548 EXCEPTION
5549 When others then
5550 arp_message.set_error( 'OE_CUST_MERGE.OE_Ship_Tolerance_Merge-' );
5551 raise;
5552
5553 END OE_Ship_Tolerance_Merge;
5554
5555
5556 Procedure OE_Sets_Merge (Req_Id IN NUMBER,
5557 Set_Num IN NUMBER,
5558 Process_Mode IN VARCHAR2)
5559 IS
5560 CURSOR SETS_MERGE IS
5561 SELECT /*+ FULL(M)
5562 FULL(S)
5563 PARALLEL(S,30)
5564 PARALLEL(M,30)
5565 USE_HASH(M,S) */
5566 s.set_id , s.ship_to_org_id , m.customer_merge_id
5567 FROM RA_CUSTOMER_MERGES M, OE_SETS S
5568 WHERE
5569 s.ship_to_org_id = m.duplicate_site_id
5570 and m.process_flag = 'N'
5571 and m.request_id = req_id
5572 and m.set_number = set_num
5573 for update nowait;
5574
5575 CURSOR SETS_MERGE_2 IS
5576 SELECT /*+ FULL(M)
5577 FULL(S)
5578 PARALLEL(S,30)
5579 PARALLEL(M,30)
5580 USE_HASH(M,S) */
5581 s.set_id , s.ship_to_org_id ,m.customer_merge_id
5582 FROM RA_CUSTOMER_MERGES M, OE_SETS S
5583 WHERE
5584 s.ship_to_org_id = m.duplicate_site_id
5585 and m.process_flag = 'N'
5586 and m.request_id = req_id
5587 and m.set_number = set_num;
5588
5589 sets_set_id_tab num_table;
5590 sets_ship_to_org_id_tab num_table;
5591
5592 MERGE_HEADER_ID_LIST MERGE_ID_LIST_TYPE;
5593 l_profile_val VARCHAR2(30);
5594
5595 BEGIN
5596
5597 arp_message.set_line( 'OE_CUST_MERGE.OE_Sets_Merge()+' );
5598
5599 IF (process_mode = 'LOCK') THEN
5600
5601 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
5602 arp_message.set_token( 'TABLE_NAME', 'oe_sets', FALSE );
5603
5604 open sets_merge;
5605 close sets_merge;
5606
5607 ELSE
5608
5609 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5610 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5611
5612 OPEN sets_merge_2;
5613 LOOP
5614 FETCH sets_merge_2
5615 BULK COLLECT INTO sets_set_id_tab,
5616 sets_ship_to_org_id_tab,
5617 MERGE_HEADER_ID_LIST
5618 LIMIT 20000;
5619
5620 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5621 IF sets_set_id_tab.COUNT <> 0 THEN
5622 forall i in sets_set_id_tab.FIRST..sets_set_id_tab.LAST
5623 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5624 MERGE_LOG_ID,
5625 TABLE_NAME,
5626 MERGE_HEADER_ID,
5627 PRIMARY_KEY_ID1,
5628 NUM_COL1_ORIG,
5629 NUM_COL1_NEW,
5630 ACTION_FLAG,
5631 REQUEST_ID,
5632 CREATED_BY,
5633 CREATION_DATE,
5634 LAST_UPDATE_LOGIN,
5635 LAST_UPDATE_DATE,
5636 LAST_UPDATED_BY
5637 ) VALUES (
5638 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5639 'OE_SETS',
5640 MERGE_HEADER_ID_LIST(I),
5641 sets_set_id_tab(I),
5642 sets_ship_to_org_id_tab(I),
5643 sets_ship_to_org_id_tab(I),
5644 'U',
5645 req_id,
5646 hz_utility_pub.CREATED_BY,
5647 hz_utility_pub.CREATION_DATE,
5648 hz_utility_pub.LAST_UPDATE_LOGIN,
5649 hz_utility_pub.LAST_UPDATE_DATE,
5650 hz_utility_pub.LAST_UPDATED_BY
5651 );
5652 end if;
5653 end if;
5654
5655
5656 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5657 arp_message.set_token( 'TABLE_NAME', 'oe_sets', FALSE );
5658
5659 IF sets_set_id_tab.COUNT <> 0 THEN
5660 FORALL i in sets_set_id_tab.FIRST..sets_set_id_tab.LAST
5661 UPDATE OE_SETS S
5662 SET ship_to_org_id = sets_ship_to_org_id_tab(i),
5663 update_date = sysdate,
5664 updated_by = arp_standard.profile.user_id,
5665 update_login = arp_standard.profile.last_update_login
5666 WHERE set_id = sets_set_id_tab(i);
5667
5668 g_count := sql%rowcount;
5669
5670 ELSE
5671 g_count := 0;
5672 END IF;
5673
5674 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5675 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5676 EXIT WHEN sets_merge_2%NOTFOUND;
5677
5678 sets_set_id_tab.DELETE;
5679 sets_ship_to_org_id_tab.DELETE;
5680 MERGE_HEADER_ID_LIST.DELETE;
5681
5682 END LOOP; -- cursor sets_merge_2
5683
5684 CLOSE sets_merge_2;
5685
5686 END IF;
5687 arp_message.set_line( 'OE_CUST_MERGE.OE_Sets_Merge()-' );
5688
5689 EXCEPTION
5690 when others then
5691 arp_message.set_error( 'OE_CUST_MERGE.OE_Sets_Merge-' );
5692 raise;
5693
5694 END OE_Sets_merge;
5695
5696 Procedure OE_Merge_Price_Adj_Attribs (Req_Id IN NUMBER,
5697 Set_Num IN NUMBER,
5698 Process_Mode IN VARCHAR2
5699 )
5700 IS
5701 -- For 'Ship To' Qualifier Attribute
5702 --bug6071855
5703 CURSOR c1 IS
5704 SELECT /*+ USE_NL (M A)
5705 INDEX (A,OE_PRICE_ADJ_ATTRIBS_N2) */
5706 a.price_adj_attrib_id ,
5707 decode(a.pricing_attribute, 'QUALIFIER_ATTRIBUTE2',
5708 m.customer_id, m.customer_site_id) attrib_value_from, a.pricing_attr_value_from,
5709 m.customer_merge_id
5710 --changed for bug 3196900
5711 -- FROM RA_CUSTOMER_MERGES M, OE_PRICE_ADJ_ATTRIBS A
5712 FROM RA_CUSTOMER_MERGES M, OE_PRICE_ADJ_ATTRIBS A,OE_PRICE_ADJUSTMENTS P,OE_ORDER_HEADERS H
5713 WHERE
5714 a.pricing_context = 'CUSTOMER'
5715 and ((a.pricing_attribute in ('QUALIFIER_ATTRIBUTE11',
5716 'QUALIFIER_ATTRIBUTE5',
5717 'QUALIFIER_ATTRIBUTE14')
5718 and a.pricing_attr_value_from = to_char(m.duplicate_site_id))
5719 OR (a.pricing_attribute = 'QUALIFIER_ATTRIBUTE2'
5720 and a.pricing_attr_value_from = to_char(m.duplicate_id)))
5721 and m.process_flag = 'N'
5722 and m.request_id = req_id
5723 and m.set_number = set_num
5724 --added for bug 3196900
5725 and a.price_adjustment_id=p.price_adjustment_id
5726 and p.header_id=h.header_id
5727 for update nowait;
5728
5729 --bug6071855
5730 CURSOR c1_2 IS
5731 SELECT /*+ USE_NL (M A)
5732 INDEX (A,OE_PRICE_ADJ_ATTRIBS_N2) */
5733 a.price_adj_attrib_id ,
5734 decode(a.pricing_attribute, 'QUALIFIER_ATTRIBUTE2',
5735 m.customer_id, m.customer_site_id) attrib_value_from, a.pricing_attr_value_from,
5736 m.customer_merge_id
5737 --changed for bug 3196900
5738 -- FROM RA_CUSTOMER_MERGES M, OE_PRICE_ADJ_ATTRIBS A
5739 FROM RA_CUSTOMER_MERGES M, OE_PRICE_ADJ_ATTRIBS A , OE_PRICE_ADJUSTMENTS P,
5740 OE_ORDER_HEADERS H
5741 WHERE
5742 a.pricing_context = 'CUSTOMER'
5743 and ((a.pricing_attribute in ('QUALIFIER_ATTRIBUTE11',
5744 'QUALIFIER_ATTRIBUTE5',
5745 'QUALIFIER_ATTRIBUTE14')
5746 and a.pricing_attr_value_from = to_char(m.duplicate_site_id))
5747 OR (a.pricing_attribute = 'QUALIFIER_ATTRIBUTE2'
5748 and a.pricing_attr_value_from = to_char(m.duplicate_id)))
5749 and m.process_flag = 'N'
5750 and m.request_id = req_id
5751 and m.set_number = set_num
5752 --added for bug 3196900
5753 and a.price_adjustment_id=p.price_adjustment_id
5754 and p.header_id=h.header_id;
5755
5756 attrib_id_tab num_table;
5757 attrib_value_from_tab num_table;
5758 pricing_attr_value_from_tab vchar240_table;
5759 merge_header_id_list merge_id_list_type;
5760
5761 l_profile_val varchar2(30);
5762
5763 BEGIN
5764
5765 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Price_Adj_Attribs()+' );
5766 IF (process_mode = 'LOCK') THEN
5767
5768 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
5769 arp_message.set_token( 'TABLE_NAME', 'oe_price_adj_attribs', FALSE );
5770
5771 open c1;
5772 close c1;
5773
5774 ELSE
5775
5776 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5777 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5778
5779 OPEN c1_2;
5780 LOOP
5781 FETCH c1_2
5782 BULK COLLECT INTO attrib_id_tab,
5783 attrib_value_from_tab,
5784 pricing_attr_value_from_tab,
5785 MERGE_HEADER_ID_LIST
5786 LIMIT 20000;
5787
5788 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5789 IF attrib_id_tab.COUNT <> 0 THEN
5790 FORALL I in attrib_id_tab.FIRST..attrib_id_tab.LAST
5791 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5792 MERGE_LOG_ID,
5793 TABLE_NAME,
5794 MERGE_HEADER_ID,
5795 PRIMARY_KEY_ID1,
5796 VCHAR_COL1_ORIG,
5797 VCHAR_COL1_NEW,
5798 ACTION_FLAG,
5799 REQUEST_ID,
5800 CREATED_BY,
5801 CREATION_DATE,
5802 LAST_UPDATE_LOGIN,
5803 LAST_UPDATE_DATE,
5804 LAST_UPDATED_BY
5805 ) VALUES (
5806 HZ_CUSTOMER_MERGE_LOG_s.nextval,
5807 'OE_PRICE_ADJ_ATTRIBS',
5808 MERGE_HEADER_ID_LIST(I),
5809 attrib_id_tab(I),
5810 pricing_attr_value_from_tab(I),
5811 to_char(attrib_value_from_tab(I)),
5812 'U',
5813 req_id,
5814 hz_utility_pub.CREATED_BY,
5815 hz_utility_pub.CREATION_DATE,
5816 hz_utility_pub.LAST_UPDATE_LOGIN,
5817 hz_utility_pub.LAST_UPDATE_DATE,
5818 hz_utility_pub.LAST_UPDATED_BY
5819 );
5820
5821 END IF;
5822 end if;
5823
5824 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
5825 arp_message.set_token( 'TABLE_NAME', 'oe_price_adj_attribs', FALSE );
5826
5827 IF attrib_id_tab.COUNT <> 0 THEN
5828 FORALL i in attrib_id_tab.FIRST..attrib_id_tab.LAST
5829 UPDATE OE_PRICE_ADJ_ATTRIBS S
5830 SET pricing_attr_value_from = to_char(attrib_value_from_tab(i)),
5831 last_update_date = sysdate,
5832 last_updated_by = arp_standard.profile.user_id,
5833 last_update_login = arp_standard.profile.last_update_login
5834 WHERE price_adj_attrib_id = attrib_id_tab(i);
5835
5836 g_count := sql%rowcount;
5837
5838 ELSE
5839 g_count := 0;
5840 END IF;
5841
5842 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
5843 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
5844 EXIT WHEN c1_2%NOTFOUND;
5845
5846 attrib_id_tab.DELETE;
5847 attrib_value_from_tab.DELETE;
5848 pricing_attr_value_from_tab.DELETE;
5849 merge_header_id_list.DELETE;
5850
5851 END LOOP; -- cursor c1_2
5852
5853 CLOSE c1_2;
5854
5855 END IF;
5856 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Price_Adj_Attribs()-' );
5857
5858 EXCEPTION
5859 when others then
5860 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Price_Adj_Attribs-' );
5861 raise;
5862
5863 END OE_Merge_Price_Adj_Attribs;
5864
5865 -- Bug 2814785 => Enable account/account site merge for blankets tables
5866 /*------------------------------------------------*/
5867 /*--- PRIVATE Procedure OE_Merge_Blanket_Headers ---*/
5868 /*------------------------------------------------*/
5869
5870 Procedure OE_Merge_Blanket_Headers (Req_Id IN NUMBER,
5871 Set_Num IN NUMBER,
5872 Process_Mode IN VARCHAR2)
5873 IS
5874
5875 CURSOR MERGE_SITES IS
5876 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
5877 from ra_customer_merges m
5878 where m.process_flag = 'N'
5879 and m.request_id = req_id
5880 and m.set_number = set_num;
5881
5882
5883 CURSOR MERGE_HEADERS IS
5884 SELECT /*+ PARALLEL(H)
5885 PARALLEL(M1)
5886 PARALLEL(M2)
5887 PARALLEL(M3)
5888 PARALLEL(M4)
5889 PARALLEL(M5) */
5890 h.header_id ,
5891 h.sold_to_org_id,
5892 h.invoice_to_org_id,
5893 h.ship_to_org_id,
5894 h.deliver_to_org_id,
5895 h.sold_to_site_use_id,
5896 nvl(m1.customer_merge_id,nvl(m2.customer_merge_id,nvl(m3.customer_merge_id,nvl(m4.customer_merge_id,m5.customer_merge_id))))
5897 FROM RA_CUSTOMER_MERGES M1,
5898 RA_CUSTOMER_MERGES M2,
5899 RA_CUSTOMER_MERGES M3,
5900 RA_CUSTOMER_MERGES M4,
5901 RA_CUSTOMER_MERGES M5,
5902 -- changed for bug 3196900
5903 -- OE_BLANKET_HEADERS_ALL H
5904 OE_BLANKET_HEADERS H
5905 WHERE
5906 ( h.sold_to_org_id = m1.duplicate_id(+)
5907 and h.invoice_to_org_id = m2.duplicate_site_id(+)
5908 and h.ship_to_org_id = m3.duplicate_site_id(+)
5909 and h.deliver_to_org_id = m4.duplicate_site_id(+)
5910 and h.sold_to_site_use_id = m5.duplicate_site_id(+) )
5911 and
5912 (m1.duplicate_site_id is not null or
5913 m2.duplicate_id is not null or
5914 m3.duplicate_id is not null or
5915 m4.duplicate_id is not null or
5916 m5.duplicate_id is not null )
5917 and m1.process_flag(+) = 'N'
5918 and m2.process_flag(+) = 'N'
5919 and m3.process_flag(+) = 'N'
5920 and m4.process_flag(+) = 'N'
5921 and m5.process_flag(+) = 'N'
5922 and m1.request_id(+) =req_id
5923 and m2.request_id(+) =req_id
5924 and m3.request_id(+) =req_id
5925 and m4.request_id(+) =req_id
5926 and m5.request_id(+) =req_id
5927 and m1.set_number(+) =set_num
5928 and m2.set_number(+) =set_num
5929 and m3.set_number(+) =set_num
5930 and m4.set_number(+) =set_num
5931 and m5.set_number(+) =set_num
5932 for update nowait;
5933
5934
5935 CURSOR MERGE_HEADERS_2 IS
5936 SELECT /*+ PARALLEL(H)
5937 PARALLEL(M1)
5938 PARALLEL(M2)
5939 PARALLEL(M3)
5940 PARALLEL(M4)
5941 PARALLEL(M5) */
5942 h.header_id ,
5943 h.sold_to_org_id,
5944 h.invoice_to_org_id,
5945 h.ship_to_org_id,
5946 h.deliver_to_org_id,
5947 h.sold_to_site_use_id,
5948 nvl(m1.customer_merge_id,nvl(m2.customer_merge_id,nvl(m3.customer_merge_id,nvl(m4.customer_merge_id,m5.customer_merge_id))))
5949 FROM RA_CUSTOMER_MERGES M1,
5950 RA_CUSTOMER_MERGES M2,
5951 RA_CUSTOMER_MERGES M3,
5952 RA_CUSTOMER_MERGES M4,
5953 RA_CUSTOMER_MERGES M5,
5954 -- changed for bug 3196900
5955 -- OE_BLANKET_HEADERS_ALL H
5956 OE_BLANKET_HEADERS H
5957 WHERE
5958 ( h.sold_to_org_id = m1.duplicate_id(+)
5959 and h.invoice_to_org_id = m2.duplicate_site_id(+)
5960 and h.ship_to_org_id = m3.duplicate_site_id(+)
5961 and h.deliver_to_org_id = m4.duplicate_site_id(+)
5962 and h.sold_to_site_use_id = m5.duplicate_site_id(+) )
5963 and
5964 (m1.duplicate_site_id is not null or
5965 m2.duplicate_id is not null or
5966 m3.duplicate_id is not null or
5967 m4.duplicate_id is not null or
5968 m5.duplicate_id is not null )
5969 and m1.process_flag(+) = 'N'
5970 and m2.process_flag(+) = 'N'
5971 and m3.process_flag(+) = 'N'
5972 and m4.process_flag(+) = 'N'
5973 and m5.process_flag(+) = 'N'
5974 and m1.request_id(+) =req_id
5975 and m2.request_id(+) =req_id
5976 and m3.request_id(+) =req_id
5977 and m4.request_id(+) =req_id
5978 and m5.request_id(+) =req_id
5979 and m1.set_number(+) =set_num
5980 and m2.set_number(+) =set_num
5981 and m3.set_number(+) =set_num
5982 and m4.set_number(+) =set_num
5983 and m5.set_number(+) =set_num;
5984
5985 hdr_header_id_tab num_table;
5986 hdr_sold_to_org_id_tab num_table;
5987 hdr_invoice_to_org_id_tab num_table;
5988 hdr_ship_to_org_id_tab num_table;
5989 hdr_deliver_to_org_id_tab num_table;
5990 hdr_sold_to_site_use_id_tab num_table;
5991 old_hdr_sold_to_org_id_tab num_table;
5992 old_hdr_invoice_to_org_id_tab num_table;
5993 old_hdr_ship_to_org_id_tab num_table;
5994 old_hdr_deliver_to_org_id_tab num_table;
5995 old_hdr_sold_to_site_id_tab num_table;
5996
5997 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
5998 customer_id_tab num_table_binary_int;
5999 customer_site_id_tab num_table_binary_int;
6000 MERGE_HEADER_ID_LIST MERGE_ID_LIST_TYPE;
6001
6002 l_profile_val VARCHAR2(30);
6003 BEGIN
6004
6005 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blanket_Headers()+' );
6006
6007 IF (process_mode = 'LOCK') THEN
6008
6009 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
6010 arp_message.set_token( 'TABLE_NAME', 'OE_BLANKET_HEADERS_ALL', FALSE );
6011
6012 open merge_headers;
6013 close merge_headers;
6014
6015 ELSE
6016
6017 FOR C IN MERGE_SITES LOOP
6018 IF c.duplicate_id IS NOT NULL
6019 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
6020 customer_id_tab(c.duplicate_id) := c.customer_id;
6021 END IF;
6022
6023 IF c.duplicate_site_id IS NOT NULL
6024 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
6025 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
6026 END IF;
6027
6028 END LOOP;
6029
6030 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
6031 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
6032
6033
6034 OPEN merge_headers_2;
6035 LOOP
6036 FETCH merge_headers_2
6037 BULK COLLECT INTO hdr_header_id_tab,
6038 hdr_sold_to_org_id_tab,
6039 hdr_invoice_to_org_id_tab,
6040 hdr_ship_to_org_id_tab,
6041 hdr_deliver_to_org_id_tab,
6042 hdr_sold_to_site_use_id_tab,
6043 MERGE_HEADER_ID_LIST
6044 LIMIT 20000;
6045
6046 old_hdr_sold_to_org_id_tab := hdr_sold_to_org_id_tab;
6047 old_hdr_invoice_to_org_id_tab := hdr_invoice_to_org_id_tab;
6048 old_hdr_ship_to_org_id_tab := hdr_ship_to_org_id_tab;
6049 old_hdr_deliver_to_org_id_tab := hdr_deliver_to_org_id_tab;
6050 old_hdr_sold_to_site_id_tab := hdr_sold_to_site_use_id_tab;
6051
6052 if hdr_header_id_tab.COUNT <> 0 then
6053 for i in hdr_header_id_tab.FIRST..hdr_header_id_tab.LAST LOOP
6054
6055 -- Access directly by the index position of the ids in the
6056 -- values stored in customer_id_tab and customer_site_id_tab tables
6057
6058 if customer_id_tab.exists(hdr_sold_to_org_id_tab(i)) then
6059 hdr_sold_to_org_id_tab(i):= customer_id_tab(hdr_sold_to_org_id_tab(i));
6060 end if;
6061
6062 if customer_site_id_tab.exists(hdr_invoice_to_org_id_tab(i)) then
6063 hdr_invoice_to_org_id_tab(i):= customer_site_id_tab(hdr_invoice_to_org_id_tab(i));
6064 end if;
6065
6066 if customer_site_id_tab.exists(hdr_ship_to_org_id_tab(i)) then
6067 hdr_ship_to_org_id_tab(i):= customer_site_id_tab(hdr_ship_to_org_id_tab(i));
6068 end if;
6069
6070 if customer_site_id_tab.exists(hdr_deliver_to_org_id_tab(i)) then
6071 hdr_deliver_to_org_id_tab(i):= customer_site_id_tab(hdr_deliver_to_org_id_tab(i));
6072 end if;
6073
6074 if customer_site_id_tab.exists(hdr_sold_to_site_use_id_tab(i)) then
6075 hdr_sold_to_site_use_id_tab(i):= customer_site_id_tab(hdr_sold_to_site_use_id_tab(i));
6076 end if;
6077
6078 end loop;
6079 end if;
6080
6081 --insert audit information for customer merge
6082 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6083 IF hdr_header_id_tab.COUNT <> 0 THEN
6084 forall i in hdr_header_id_tab.FIRST..hdr_header_id_tab.LAST
6085 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
6086 MERGE_LOG_ID,
6087 TABLE_NAME,
6088 MERGE_HEADER_ID,
6089 PRIMARY_KEY_ID1,
6090 NUM_COL1_ORIG,
6091 NUM_COL1_NEW,
6092 NUM_COL2_ORIG,
6093 NUM_COL2_NEW,
6094 NUM_COL3_ORIG,
6095 NUM_COL3_NEW,
6096 NUM_COL4_ORIG,
6097 NUM_COL4_NEW,
6098 NUM_COL5_ORIG,
6099 NUM_COL5_NEW,
6100 ACTION_FLAG,
6101 REQUEST_ID,
6102 CREATED_BY,
6103 CREATION_DATE,
6104 LAST_UPDATE_LOGIN,
6105 LAST_UPDATE_DATE,
6106 LAST_UPDATED_BY
6107 ) VALUES (
6108 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6109 'OE_BLANKET_HEADERS_ALL',
6110 MERGE_HEADER_ID_LIST(I),
6111 hdr_header_id_tab(I),
6112 old_hdr_sold_to_org_id_tab(I),
6113 decode(hdr_sold_to_org_id_tab(I),NULL,old_hdr_sold_to_org_id_tab(I),hdr_sold_to_org_id_tab(i)),
6114 old_hdr_invoice_to_org_id_tab(I),
6115 decode(hdr_invoice_to_org_id_tab(I),NULL,old_hdr_invoice_to_org_id_tab(I),hdr_invoice_to_org_id_tab(i)),
6116 old_hdr_ship_to_org_id_tab(I),
6117 decode(hdr_ship_to_org_id_tab(I),NULL,old_hdr_ship_to_org_id_tab(I),hdr_ship_to_org_id_tab(i)),
6118 old_hdr_deliver_to_org_id_tab(I),
6119 decode(hdr_deliver_to_org_id_tab(I),NULL,old_hdr_deliver_to_org_id_tab(I),hdr_deliver_to_org_id_tab(i)),
6120 old_hdr_sold_to_site_id_tab(I),
6121 decode(hdr_sold_to_site_use_id_tab(I),NULL,old_hdr_sold_to_site_id_tab(I),hdr_sold_to_site_use_id_tab(i)),
6122 'U',
6123 req_id,
6124 hz_utility_pub.CREATED_BY,
6125 hz_utility_pub.CREATION_DATE,
6126 hz_utility_pub.LAST_UPDATE_LOGIN,
6127 hz_utility_pub.LAST_UPDATE_DATE,
6128 hz_utility_pub.LAST_UPDATED_BY
6129 );
6130
6131 end if;
6132 end if;
6133
6134
6135 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6136 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_all', FALSE );
6137
6138 IF hdr_header_id_tab.COUNT <> 0 THEN
6139
6140 FORALL i in hdr_header_id_tab.FIRST..hdr_header_id_tab.LAST
6141 UPDATE OE_BLANKET_HEADERS_ALL H
6142 SET sold_to_org_id = decode(hdr_sold_to_org_id_tab(i),null,sold_to_org_id,hdr_sold_to_org_id_tab(i)),
6143 invoice_to_org_id = decode(hdr_invoice_to_org_id_tab(i),null,invoice_to_org_id,hdr_invoice_to_org_id_tab(i)),
6144 ship_to_org_id = decode(hdr_ship_to_org_id_tab(i),null,ship_to_org_id,hdr_ship_to_org_id_tab(i)),
6145 deliver_to_org_id = decode(hdr_deliver_to_org_id_tab(i),null,deliver_to_org_id,hdr_deliver_to_org_id_tab(i)),
6146 sold_to_site_use_id = decode(hdr_sold_to_site_use_id_tab(i),null,sold_to_site_use_id,hdr_sold_to_site_use_id_tab(i)),
6147 last_update_date = sysdate,
6148 last_updated_by = arp_standard.profile.user_id,
6149 last_update_login = arp_standard.profile.last_update_login,
6150 request_id = req_id,
6151 program_application_id = arp_standard.profile.program_application_id ,
6152 program_id = arp_standard.profile.program_id,
6153 program_update_date = SYSDATE,
6154 lock_control = lock_control+1
6155 WHERE header_id = hdr_header_id_tab(i);
6156
6157
6158 g_count := sql%rowcount;
6159 ELSE
6160 g_count := 0;
6161 END IF;
6162
6163 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6164 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6165 EXIT WHEN merge_headers_2%NOTFOUND;
6166
6167 hdr_header_id_tab.DELETE;
6168 hdr_sold_to_org_id_tab.DELETE;
6169 hdr_invoice_to_org_id_tab.DELETE;
6170 hdr_ship_to_org_id_tab.DELETE;
6171 hdr_deliver_to_org_id_tab.DELETE;
6172 hdr_sold_to_site_use_id_tab.DELETE;
6173
6174 old_hdr_sold_to_org_id_tab.DELETE;
6175 old_hdr_invoice_to_org_id_tab.DELETE;
6176 old_hdr_ship_to_org_id_tab.DELETE;
6177 old_hdr_deliver_to_org_id_tab.DELETE;
6178 old_hdr_sold_to_site_id_tab.DELETE;
6179
6180 END LOOP; -- cursor merge_headers_2
6181
6182 CLOSE merge_headers_2;
6183
6184 END IF;
6185 customer_id_tab.DELETE;
6186 customer_site_id_tab.DELETE;
6187 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blanket_Headers()-' );
6188
6189 EXCEPTION
6190 when others then
6191 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Blanket_Headers-' );
6192 raise;
6193
6194 END OE_Merge_Blanket_Headers;
6195
6196
6197 /*-------------------------------------------------*/
6198 /*--- PRIVATE Procedure OE_Merge_Blkt_Hdrs_Hist ---*/
6199 /*-------------------------------------------------*/
6200
6201 Procedure OE_Merge_Blkt_Hdrs_Hist (Req_Id IN NUMBER,
6202 Set_Num IN NUMBER,
6203 Process_Mode IN VARCHAR2)
6204 IS
6205 CURSOR c1 is
6206 --changed for bug 3196900
6207 select hist.HEADER_ID
6208 from oe_blanket_headers_hist hist,oe_blanket_headers h
6209 where hist.ship_to_org_id in
6210 (select m.duplicate_site_id
6211 from ra_customer_merges m
6212 where m.process_flag = 'N'
6213 and m.request_id = req_id
6214 and m.set_number = set_num)
6215 --added for bug 3196900
6216 and hist.header_id=h.header_id
6217 for update nowait;
6218
6219
6220 CURSOR c2 is
6221 --changed for bug 3196900
6222 select hist.HEADER_ID
6223 from oe_blanket_headers_hist hist,oe_blanket_headers h
6224 where hist.invoice_to_org_id in
6225 (select m.duplicate_site_id
6226 from ra_customer_merges m
6227 where m.process_flag = 'N'
6228 and m.request_id = req_id
6229 and m.set_number = set_num)
6230 --changed for bug 3196900
6231 and hist.header_id=h.header_id
6232 for update nowait;
6233
6234
6235 CURSOR c3 is
6236 --changed for bug 3196900
6237 select hist.HEADER_ID
6238 from oe_blanket_headers_hist hist, oe_blanket_headers h
6239 where hist.deliver_to_org_id in
6240 (select m.duplicate_site_id
6241 from ra_customer_merges m
6242 where m.process_flag = 'N'
6243 and m.request_id = req_id
6244 and m.set_number = set_num)
6245 --added for bug 3196900
6246 and hist.header_id=h.header_id
6247 for update nowait;
6248
6249
6250 CURSOR c4 is
6251 --changed for bug 3196900
6252 select hist.HEADER_ID
6253 from oe_blanket_headers_hist hist, oe_blanket_headers h
6254 where hist.sold_to_org_id in
6255 (select m.duplicate_id
6256 from ra_customer_merges m
6257 where m.process_flag = 'N'
6258 and m.request_id = req_id
6259 and m.set_number = set_num)
6260 --added for bug 3196900
6261 and hist.header_id=h.header_id
6262 for update nowait;
6263
6264 CURSOR c5 is
6265 --changed for bug 3196900
6266 select hist.HEADER_ID
6267 from oe_blanket_headers_hist hist,oe_blanket_headers h
6268 where hist.sold_to_site_use_id in
6269 (select m.duplicate_id
6270 from ra_customer_merges m
6271 where m.process_flag = 'N'
6272 and m.request_id = req_id
6273 and m.set_number = set_num)
6274 --added for bug 3196900
6275 and hist.header_id=h.header_id
6276 for update nowait;
6277
6278 l_profile_val VARCHAR2(30);
6279
6280 BEGIN
6281 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blkt_Hdrs_Hist()+' );
6282
6283 -- both customer and site level
6284
6285 IF( process_mode = 'LOCK' ) THEN
6286
6287 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
6288 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_hist', FALSE );
6289
6290 open c1;
6291 close c1;
6292
6293 open c2;
6294 close c2;
6295
6296 open c3;
6297 close c3;
6298
6299 open c4;
6300 close c4;
6301
6302 open c5;
6303 close c5;
6304
6305 ELSE
6306
6307 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
6308 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
6309
6310 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6311 insert into HZ_CUSTOMER_MERGE_LOG (
6312 MERGE_LOG_ID,
6313 TABLE_NAME,
6314 MERGE_HEADER_ID,
6315 PRIMARY_KEY_ID1,
6316 PRIMARY_KEY_ID2,
6317 NUM_COL3_ORIG,
6318 NUM_COL3_NEW,
6319 ACTION_FLAG,
6320 REQUEST_ID,
6321 CREATED_BY,
6322 CREATION_DATE,
6323 LAST_UPDATE_LOGIN,
6324 LAST_UPDATE_DATE,
6325 LAST_UPDATED_BY
6326 )
6327 select
6328 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6329 'OE_BLANKET_HEADERS_HIST',
6330 m.customer_merge_header_id,
6331 h.header_id,
6332 h.version_number,
6333 h.ship_to_org_id,
6334 m.customer_site_id,
6335 'U',
6336 req_id,
6337 hz_utility_pub.CREATED_BY,
6338 hz_utility_pub.CREATION_DATE,
6339 hz_utility_pub.LAST_UPDATE_LOGIN,
6340 hz_utility_pub.LAST_UPDATE_DATE,
6341 hz_utility_pub.LAST_UPDATED_BY
6342 from oe_blanket_headers_hist h,
6343 ra_customer_merges m
6344 where h.ship_to_org_id=m.duplicate_site_id
6345 and m.process_flag = 'N'
6346 and m.request_id = req_id
6347 and m.set_number = set_num;
6348 end if;
6349
6350 -- site level update
6351 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6352 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_hist', FALSE );
6353
6354 UPDATE oe_blanket_headers_hist a
6355 set ship_to_org_id = (select distinct m.customer_site_id
6356 from ra_customer_merges m
6357 where a.ship_to_org_id = m.duplicate_site_id
6358 and m.request_id = req_id
6359 and m.process_flag = 'N'
6360 and m.set_number = set_num),
6361 last_update_date = sysdate,
6362 last_updated_by = arp_standard.profile.user_id,
6363 last_update_login = arp_standard.profile.last_update_login,
6364 request_id = req_id,
6365 program_application_id =arp_standard.profile.program_application_id,
6366 program_id = arp_standard.profile.program_id,
6367 program_update_date = sysdate
6368 where ship_to_org_id in (select m.duplicate_site_id
6369 from ra_customer_merges m
6370 where m.process_flag = 'N'
6371 and m.request_id = req_id
6372 and m.set_number = set_num);
6373 g_count := sql%rowcount;
6374 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6375 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6376
6377 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6378 insert into HZ_CUSTOMER_MERGE_LOG (
6379 MERGE_LOG_ID,
6380 TABLE_NAME,
6381 MERGE_HEADER_ID,
6382 PRIMARY_KEY_ID1,
6383 PRIMARY_KEY_ID2,
6384 NUM_COL2_ORIG,
6385 NUM_COL2_NEW,
6386 ACTION_FLAG,
6387 REQUEST_ID,
6388 CREATED_BY,
6389 CREATION_DATE,
6390 LAST_UPDATE_LOGIN,
6391 LAST_UPDATE_DATE,
6392 LAST_UPDATED_BY
6393 )
6394 select
6395 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6396 'OE_BLANKET_HEADERS_HIST',
6397 m.CUSTOMER_MERGE_HEADER_ID,
6398 h.version_number,
6399 h.header_id,
6400 h.invoice_to_org_id,
6401 m.customer_site_id,
6402 'U',
6403 req_id,
6404 hz_utility_pub.CREATED_BY,
6405 hz_utility_pub.CREATION_DATE,
6406 hz_utility_pub.LAST_UPDATE_LOGIN,
6407 hz_utility_pub.LAST_UPDATE_DATE,
6408 hz_utility_pub.LAST_UPDATED_BY
6409 from oe_blanket_headers_hist h,
6410 ra_customer_merges m
6411 where h.invoice_to_org_id=m.duplicate_site_id
6412 and m.process_flag = 'N'
6413 and m.request_id = req_id
6414 and m.set_number = set_num;
6415 end if;
6416
6417 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6418 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_hist', FALSE );
6419
6420 UPDATE oe_blanket_headers_hist a
6421 set invoice_to_org_id = (select distinct m.customer_site_id
6422 from ra_customer_merges m
6423 where a.invoice_to_org_id = m.duplicate_site_id
6424 and m.request_id = req_id
6425 and m.process_flag = 'N'
6426 and m.set_number = set_num),
6427 last_update_date = sysdate,
6428 last_updated_by = arp_standard.profile.user_id,
6429 last_update_login = arp_standard.profile.last_update_login,
6430 request_id = req_id,
6431 program_application_id =arp_standard.profile.program_application_id,
6432 program_id = arp_standard.profile.program_id,
6433 program_update_date = sysdate
6434 where invoice_to_org_id in (select m.duplicate_site_id
6435 from ra_customer_merges m
6436 where m.process_flag = 'N'
6437 and m.request_id = req_id
6438 and m.set_number = set_num);
6439 g_count := sql%rowcount;
6440 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6441 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6442
6443
6444 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6445 insert into HZ_CUSTOMER_MERGE_LOG (
6446 MERGE_LOG_ID,
6447 TABLE_NAME,
6448 MERGE_HEADER_ID,
6449 PRIMARY_KEY_ID1,
6450 PRIMARY_KEY_ID2,
6451 NUM_COL4_ORIG,
6452 NUM_COL4_NEW,
6453 ACTION_FLAG,
6454 REQUEST_ID,
6455 CREATED_BY,
6456 CREATION_DATE,
6457 LAST_UPDATE_LOGIN,
6458 LAST_UPDATE_DATE,
6459 LAST_UPDATED_BY
6460 )
6461 select
6462 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6463 'OE_BLANKET_HEADERS_HIST',
6464 m.CUSTOMER_MERGE_HEADER_ID,
6465 h.header_id,
6466 h.version_number,
6467 h.deliver_to_org_id,
6468 m.customer_site_id,
6469 'U',
6470 req_id,
6471 hz_utility_pub.CREATED_BY,
6472 hz_utility_pub.CREATION_DATE,
6473 hz_utility_pub.LAST_UPDATE_LOGIN,
6474 hz_utility_pub.LAST_UPDATE_DATE,
6475 hz_utility_pub.LAST_UPDATED_BY
6476 from oe_blanket_headers_hist h,
6477 ra_customer_merges m
6478 where h.deliver_to_org_id=m.duplicate_site_id
6479 and m.process_flag = 'N'
6480 and m.request_id = req_id
6481 and m.set_number = set_num;
6482 end if;
6483 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6484 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_hist', FALSE );
6485
6486 UPDATE oe_blanket_headers_hist a
6487 set deliver_to_org_id = (select distinct m.customer_site_id
6488 from ra_customer_merges m
6489 where a.deliver_to_org_id = m.duplicate_site_id
6490 and m.request_id = req_id
6491 and m.process_flag = 'N'
6492 and m.set_number = set_num),
6493 last_update_date = sysdate,
6494 last_updated_by = arp_standard.profile.user_id,
6495 last_update_login = arp_standard.profile.last_update_login,
6496 request_id = req_id,
6497 program_application_id =arp_standard.profile.program_application_id,
6498 program_id = arp_standard.profile.program_id,
6499 program_update_date = sysdate
6500 where deliver_to_org_id in (select m.duplicate_site_id
6501 from ra_customer_merges m
6502 where m.process_flag = 'N'
6503 and m.request_id = req_id
6504 and m.set_number = set_num);
6505 g_count := sql%rowcount;
6506 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6507 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6508
6509 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6510 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_hist', FALSE );
6511
6512
6513 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6514 insert into HZ_CUSTOMER_MERGE_LOG (
6515 MERGE_LOG_ID,
6516 TABLE_NAME,
6517 MERGE_HEADER_ID,
6518 PRIMARY_KEY_ID1,
6519 PRIMARY_KEY_ID2,
6520 NUM_COL1_ORIG,
6521 NUM_COL1_NEW,
6522 ACTION_FLAG,
6523 REQUEST_ID,
6524 CREATED_BY,
6525 CREATION_DATE,
6526 LAST_UPDATE_LOGIN,
6527 LAST_UPDATE_DATE,
6528 LAST_UPDATED_BY
6529 )
6530 select
6531 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6532 'OE_BLANKET_HEADERS_HIST',
6533 m.customer_merge_header_id,
6534 h.header_id,
6535 h.version_number,
6536 h.sold_to_org_id,
6537 m.customer_site_id,
6538 'U',
6539 req_id,
6540 hz_utility_pub.CREATED_BY,
6541 hz_utility_pub.CREATION_DATE,
6542 hz_utility_pub.LAST_UPDATE_LOGIN,
6543 hz_utility_pub.LAST_UPDATE_DATE,
6544 hz_utility_pub.LAST_UPDATED_BY
6545 from oe_blanket_headers_hist h,
6546 ra_customer_merges m
6547 where h.sold_to_org_id=m.duplicate_site_id
6548 and m.process_flag = 'N'
6549 and m.request_id = req_id
6550 and m.set_number = set_num;
6551 end if;
6552 -- customer level update --
6553
6554 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6555 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_headers_hist', FALSE );
6556
6557 UPDATE oe_blanket_headers_hist a
6558 set sold_to_org_id = (select distinct m.customer_id
6559 from ra_customer_merges m
6560 where a.sold_to_org_id = m.duplicate_id
6561 and m.process_flag = 'N'
6562 and m.request_id = req_id
6563 and m.set_number = set_num),
6564 last_update_date = sysdate,
6565 last_updated_by = arp_standard.profile.user_id,
6566 last_update_login = arp_standard.profile.last_update_login,
6567 request_id = req_id,
6568 program_application_id =arp_standard.profile.program_application_id,
6569 program_id = arp_standard.profile.program_id,
6570 program_update_date = sysdate
6571 where sold_to_org_id in (select m.duplicate_id
6572 from ra_customer_merges m
6573 where m.process_flag = 'N'
6574 and m.request_id = req_id
6575 and m.set_number = set_num);
6576
6577 g_count := sql%rowcount;
6578
6579 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6580 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6581
6582 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6583 arp_message.set_token( 'TABLE_NAME', 'OE_BLANKET_HEADERS_HIST', FALSE );
6584
6585
6586 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6587 insert into HZ_CUSTOMER_MERGE_LOG (
6588 MERGE_LOG_ID,
6589 TABLE_NAME,
6590 MERGE_HEADER_ID,
6591 PRIMARY_KEY_ID1,
6592 PRIMARY_KEY_ID2,
6593 NUM_COL5_ORIG,
6594 NUM_COL5_NEW,
6595 ACTION_FLAG,
6596 REQUEST_ID,
6597 CREATED_BY,
6598 CREATION_DATE,
6599 LAST_UPDATE_LOGIN,
6600 LAST_UPDATE_DATE,
6601 LAST_UPDATED_BY
6602 )
6603 select
6604 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6605 'OE_BLANKET_HEADERS_HIST',
6606 m.customer_merge_header_id,
6607 h.header_id,
6608 h.version_number,
6609 h.sold_to_site_use_id,
6610 m.customer_site_id,
6611 'U',
6612 req_id,
6613 hz_utility_pub.CREATED_BY,
6614 hz_utility_pub.CREATION_DATE,
6615 hz_utility_pub.LAST_UPDATE_LOGIN,
6616 hz_utility_pub.LAST_UPDATE_DATE,
6617 hz_utility_pub.LAST_UPDATED_BY
6618 from oe_blanket_headers_hist h,
6619 ra_customer_merges m
6620 where h.sold_to_org_id=m.duplicate_site_id
6621 and m.process_flag = 'N'
6622 and m.request_id = req_id
6623 and m.set_number = set_num;
6624 end if;
6625 -- customer level update --
6626
6627 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6628 arp_message.set_token( 'TABLE_NAME', 'OE_BLANKET_HEADERS_HIST', FALSE );
6629
6630 UPDATE oe_blanket_headers_hist a
6631 set sold_to_site_use_id = (select distinct m.customer_id
6632 from ra_customer_merges m
6633 where a.sold_to_site_use_id = m.duplicate_id
6634 and m.process_flag = 'N'
6635 and m.request_id = req_id
6636 and m.set_number = set_num),
6637 last_update_date = sysdate,
6638 last_updated_by = arp_standard.profile.user_id,
6639 last_update_login = arp_standard.profile.last_update_login,
6640 request_id = req_id,
6641 program_application_id =arp_standard.profile.program_application_id,
6642 program_id = arp_standard.profile.program_id,
6643 program_update_date = sysdate
6644 where sold_to_site_use_id in (select m.duplicate_id
6645 from ra_customer_merges m
6646 where m.process_flag = 'N'
6647 and m.request_id = req_id
6648 and m.set_number = set_num);
6649
6650 g_count := sql%rowcount;
6651
6652 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6653 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6654
6655 END IF;
6656
6657 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blkt_Hdrs_Hist()-' );
6658
6659 EXCEPTION
6660 When others then
6661 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Blkt_Hdrs_Hist-' );
6662 raise;
6663
6664 END OE_Merge_Blkt_Hdrs_Hist;
6665
6666 /*------------------------------------------------*/
6667 /*--- PRIVATE PROCEDURE OE_Merge_Blanket_Lines ---*/
6668 /*------------------------------------------------*/
6669
6670 Procedure OE_Merge_Blanket_Lines (Req_Id IN NUMBER,
6671 Set_Num IN NUMBER,
6672 Process_Mode IN VARCHAR2)
6673 IS
6674
6675 CURSOR MERGE_SITES IS
6676 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
6677 from ra_customer_merges m
6678 where m.process_flag = 'N'
6679 and m.request_id = req_id
6680 and m.set_number = set_num;
6681
6682 CURSOR MERGE_LINES IS
6683 SELECT /*+ PARALLEL(L)
6684 PARALLEL(M1)
6685 PARALLEL(M2)
6686 PARALLEL(M3)
6687 PARALLEL(M4)
6688 PARALLEL(M5) */
6689 l.line_id ,
6690 sold_to_org_id,
6691 invoice_to_org_id,
6692 ship_to_org_id,
6693 intmed_ship_to_org_id,
6694 deliver_to_org_id,
6695 nvl(m1.customer_merge_id,nvl(m2.customer_merge_id,nvl(m3.customer_merge_id,nvl(m4.customer_merge_id,m5.customer_merge_id))))
6696 FROM RA_CUSTOMER_MERGES M1,
6697 RA_CUSTOMER_MERGES M2,
6698 RA_CUSTOMER_MERGES M3,
6699 RA_CUSTOMER_MERGES M4,
6700 RA_CUSTOMER_MERGES M5,
6701 -- changed for bug 3196900
6702 -- OE_BLANKET_LINES_ALL L
6703 OE_BLANKET_LINES L
6704 WHERE
6705 ( l.sold_to_org_id = m1.duplicate_id(+)
6706 and l.invoice_to_org_id = m2.duplicate_site_id(+)
6707 and l.ship_to_org_id = m3.duplicate_site_id(+)
6708 and l.intmed_ship_to_org_id = m4.duplicate_site_id(+)
6709 and l.deliver_to_org_id = m5.duplicate_site_id(+) )
6710 and
6711 (m1.duplicate_site_id is not null or
6712 m2.duplicate_id is not null or
6713 m3.duplicate_id is not null or
6714 m4.duplicate_id is not null or
6715 m5.duplicate_id is not null )
6716 and m1.process_flag(+) = 'N'
6717 and m2.process_flag(+) = 'N'
6718 and m3.process_flag(+) = 'N'
6719 and m4.process_flag(+) = 'N'
6720 and m5.process_flag(+) = 'N'
6721 and m1.request_id(+) =req_id
6722 and m2.request_id(+) =req_id
6723 and m3.request_id(+) =req_id
6724 and m4.request_id(+) =req_id
6725 and m5.request_id(+) =req_id
6726 and m1.set_number(+) =set_num
6727 and m2.set_number(+) =set_num
6728 and m3.set_number(+) =set_num
6729 and m4.set_number(+) =set_num
6730 and m5.set_number(+) =set_num
6731 for update nowait;
6732
6733
6734 CURSOR MERGE_LINES_2 IS
6735 SELECT /*+ PARALLEL(L)
6736 PARALLEL(M1)
6737 PARALLEL(M2)
6738 PARALLEL(M3)
6739 PARALLEL(M4)
6740 PARALLEL(M5) */
6741 l.line_id ,
6742 sold_to_org_id,
6743 invoice_to_org_id,
6744 ship_to_org_id,
6745 intmed_ship_to_org_id,
6746 deliver_to_org_id,
6747 nvl(m1.customer_merge_id,nvl(m2.customer_merge_id,nvl(m3.customer_merge_id,nvl(m4.customer_merge_id,m5.customer_merge_id))))
6748 FROM RA_CUSTOMER_MERGES M1,
6749 RA_CUSTOMER_MERGES M2,
6750 RA_CUSTOMER_MERGES M3,
6751 RA_CUSTOMER_MERGES M4,
6752 RA_CUSTOMER_MERGES M5,
6753 --changed for bug 3196900
6754 -- OE_BLANKET_LINES_ALL L
6755 OE_BLANKET_LINES L
6756 WHERE
6757 ( l.sold_to_org_id = m1.duplicate_id(+)
6758 and l.invoice_to_org_id = m2.duplicate_site_id(+)
6759 and l.ship_to_org_id = m3.duplicate_site_id(+)
6760 and l.intmed_ship_to_org_id = m4.duplicate_site_id(+)
6761 and l.deliver_to_org_id = m5.duplicate_site_id(+) )
6762 and
6763 (m1.duplicate_site_id is not null or
6764 m2.duplicate_id is not null or
6765 m3.duplicate_id is not null or
6766 m4.duplicate_id is not null or
6767 m5.duplicate_id is not null )
6768 and m1.process_flag(+) = 'N'
6769 and m2.process_flag(+) = 'N'
6770 and m3.process_flag(+) = 'N'
6771 and m4.process_flag(+) = 'N'
6772 and m5.process_flag(+) = 'N'
6773 and m1.request_id(+) =req_id
6774 and m2.request_id(+) =req_id
6775 and m3.request_id(+) =req_id
6776 and m4.request_id(+) =req_id
6777 and m5.request_id(+) =req_id
6778 and m1.set_number(+) =set_num
6779 and m2.set_number(+) =set_num
6780 and m3.set_number(+) =set_num
6781 and m4.set_number(+) =set_num
6782 and m5.set_number(+) =set_num;
6783
6784
6785 line_line_id_tab num_table;
6786 line_sold_to_org_id_tab num_table;
6787 line_invoice_to_org_id_tab num_table;
6788 line_ship_to_org_id_tab num_table;
6789 line_intmed_ship_to_org_id_tab num_table;
6790 line_deliver_to_org_id_tab num_table;
6791
6792 old_line_sold_to_org_id_tab num_table;
6793 old_line_invoice_to_org_id_tab num_table;
6794 old_line_ship_to_org_id_tab num_table;
6795 old_intmed_ship_to_org_id_tab num_table;
6796 old_line_deliver_to_org_id_tab num_table;
6797
6798 MERGE_HEADER_ID_LIST MERGE_ID_LIST_TYPE;
6799 l_profile_val VARCHAR2(30);
6800
6801 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
6802 customer_id_tab num_table_binary_int;
6803 customer_site_id_tab num_table_binary_int;
6804
6805 BEGIN
6806
6807 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blanket_Lines()+' );
6808
6809 IF (process_mode = 'LOCK') THEN
6810
6811 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
6812 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_lines_all', FALSE );
6813
6814 open merge_lines;
6815 close merge_lines;
6816
6817 ELSE
6818
6819 FOR C IN MERGE_SITES LOOP
6820 IF c.duplicate_id IS NOT NULL
6821 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
6822 customer_id_tab(c.duplicate_id) := c.customer_id;
6823 END IF;
6824
6825 IF c.duplicate_site_id IS NOT NULL
6826 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
6827 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
6828 END IF;
6829
6830 END LOOP;
6831
6832 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
6833 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
6834
6835 OPEN merge_lines_2;
6836 LOOP
6837 FETCH merge_lines_2
6838 BULK COLLECT INTO line_line_id_tab,
6839 line_sold_to_org_id_tab,
6840 line_invoice_to_org_id_tab,
6841 line_ship_to_org_id_tab,
6842 line_intmed_ship_to_org_id_tab,
6843 line_deliver_to_org_id_tab,
6844 MERGE_HEADER_ID_LIST
6845 LIMIT 20000;
6846
6847 old_intmed_ship_to_org_id_tab := line_intmed_ship_to_org_id_tab;
6848 old_line_sold_to_org_id_tab := line_sold_to_org_id_tab;
6849 old_line_invoice_to_org_id_tab := line_invoice_to_org_id_tab;
6850 old_line_ship_to_org_id_tab := line_ship_to_org_id_tab;
6851 old_line_deliver_to_org_id_tab := line_deliver_to_org_id_tab;
6852
6853 if line_line_id_tab.COUNT <> 0 then
6854 for i in line_line_id_tab.FIRST..line_line_id_tab.LAST LOOP
6855
6856 -- Access directly by the index position of the ids in the
6857 -- values stored in customer_id_tab and customer_site_id_tab tables
6858
6859 if customer_id_tab.exists(line_sold_to_org_id_tab(i)) then
6860 line_sold_to_org_id_tab(i):= customer_id_tab(line_sold_to_org_id_tab(i));
6861 end if;
6862
6863 if customer_site_id_tab.exists(line_invoice_to_org_id_tab(i)) then
6864 line_invoice_to_org_id_tab(i):= customer_site_id_tab(line_invoice_to_org_id_tab(i));
6865 end if;
6866
6867 if customer_site_id_tab.exists(line_ship_to_org_id_tab(i)) then
6868 line_ship_to_org_id_tab(i):= customer_site_id_tab(line_ship_to_org_id_tab(i));
6869 end if;
6870
6871 if customer_site_id_tab.exists(line_intmed_ship_to_org_id_tab(i)) then
6872 line_intmed_ship_to_org_id_tab(i):= customer_site_id_tab(line_intmed_ship_to_org_id_tab(i));
6873 end if;
6874
6875 if customer_site_id_tab.exists(line_deliver_to_org_id_tab(i)) then
6876 line_deliver_to_org_id_tab(i):= customer_site_id_tab(line_deliver_to_org_id_tab(i));
6877 end if;
6878
6879 end loop;
6880 end if;
6881
6882 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6883 IF line_line_id_tab.COUNT <> 0 THEN
6884 forall i in line_line_id_tab.FIRST..line_line_id_tab.LAST
6885 --insert audit information for customer merge
6886 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
6887 MERGE_LOG_ID,
6888 TABLE_NAME,
6889 MERGE_HEADER_ID,
6890 PRIMARY_KEY_ID1,
6891 NUM_COL1_ORIG,
6892 NUM_COL1_NEW,
6893 NUM_COL2_ORIG,
6894 NUM_COL2_NEW,
6895 NUM_COL3_ORIG,
6896 NUM_COL3_NEW,
6897 NUM_COL4_ORIG,
6898 NUM_COL4_NEW,
6899 ACTION_FLAG,
6900 REQUEST_ID,
6901 CREATED_BY,
6902 CREATION_DATE,
6903 LAST_UPDATE_LOGIN,
6904 LAST_UPDATE_DATE,
6905 LAST_UPDATED_BY
6906 ) VALUES (
6907 HZ_CUSTOMER_MERGE_LOG_s.nextval,
6908 'OE_BLANKET_LINES_ALL',
6909 MERGE_HEADER_ID_LIST(I),
6910 line_line_id_tab(I),
6911 line_sold_to_org_id_tab(I),
6912 decode(line_sold_to_org_id_tab(I),NULL,old_line_sold_to_org_id_tab(I),line_sold_to_org_id_tab(i)),
6913 line_invoice_to_org_id_tab(I),
6914 decode(line_invoice_to_org_id_tab(I),NULL,old_line_invoice_to_org_id_tab(I),line_invoice_to_org_id_tab(i)),
6915 line_ship_to_org_id_tab(I),
6916 decode(line_ship_to_org_id_tab(I),NULL,old_line_ship_to_org_id_tab(I),line_ship_to_org_id_tab(i)),
6917 line_deliver_to_org_id_tab(I),
6918 decode(line_deliver_to_org_id_tab(I),NULL,old_line_deliver_to_org_id_tab(I),line_deliver_to_org_id_tab(i)),
6919 'U',
6920 req_id,
6921 hz_utility_pub.CREATED_BY,
6922 hz_utility_pub.CREATION_DATE,
6923 hz_utility_pub.LAST_UPDATE_LOGIN,
6924 hz_utility_pub.LAST_UPDATE_DATE,
6925 hz_utility_pub.LAST_UPDATED_BY
6926 );
6927
6928 end if;
6929 end if;
6930
6931 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
6932 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_lines_all', FALSE );
6933
6934 IF line_line_id_tab.COUNT <> 0 THEN
6935 FORALL i in line_line_id_tab.FIRST..line_line_id_tab.LAST
6936 UPDATE OE_BLANKET_LINES_ALL L
6937 SET sold_to_org_id = decode(line_sold_to_org_id_tab(i),null,sold_to_org_id,line_sold_to_org_id_tab(i)),
6938 invoice_to_org_id = decode(line_invoice_to_org_id_tab(i),null,invoice_to_org_id,line_invoice_to_org_id_tab(i)),
6939 ship_to_org_id = decode(line_ship_to_org_id_tab(i),null,ship_to_org_id,line_ship_to_org_id_tab(i)),
6940 intmed_ship_to_org_id = decode(line_intmed_ship_to_org_id_tab(i),null,intmed_ship_to_org_id,line_intmed_ship_to_org_id_tab(i)),
6941 deliver_to_org_id = decode(line_deliver_to_org_id_tab(i),null,deliver_to_org_id,line_deliver_to_org_id_tab(i)),
6942 last_update_date = sysdate,
6943 last_updated_by = arp_standard.profile.user_id,
6944 last_update_login = arp_standard.profile.last_update_login,
6945 request_id = req_id,
6946 program_application_id = arp_standard.profile.program_application_id ,
6947 program_id = arp_standard.profile.program_id,
6948 program_update_date = SYSDATE,
6949 lock_control = lock_control+1
6950 WHERE line_id = line_line_id_tab(i);
6951
6952 g_count := sql%rowcount;
6953
6954 ELSE
6955 g_count := 0;
6956 END IF;
6957
6958 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
6959 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
6960 EXIT WHEN merge_lines_2%NOTFOUND;
6961
6962 line_line_id_tab.DELETE;
6963 line_sold_to_org_id_tab.DELETE;
6964 line_invoice_to_org_id_tab.DELETE;
6965 line_ship_to_org_id_tab.DELETE;
6966 line_intmed_ship_to_org_id_tab.DELETE;
6967 line_deliver_to_org_id_tab.DELETE;
6968
6969 old_line_sold_to_org_id_tab.DELETE;
6970 old_line_invoice_to_org_id_tab.DELETE;
6971 old_line_ship_to_org_id_tab.DELETE;
6972 old_intmed_ship_to_org_id_tab.DELETE;
6973 old_line_deliver_to_org_id_tab.DELETE;
6974
6975 END LOOP; -- cursor merge_lines_2
6976
6977 CLOSE merge_lines_2;
6978
6979 END IF;
6980 customer_id_tab.DELETE;
6981 customer_site_id_tab.DELETE;
6982 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blanket_Lines()-' );
6983
6984 EXCEPTION
6985 when others then
6986 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Blanket_Lines-' );
6987 raise;
6988
6989 END OE_Merge_Blanket_Lines;
6990
6991 /*-------------------------------------------------*/
6992 /*--- PRIVATE PROCEDURE OE_Merge_Blkt_Lines_Hist ---*/
6993 /*-------------------------------------------------*/
6994
6995 Procedure OE_Merge_Blkt_Lines_Hist (Req_Id IN NUMBER,
6996 Set_Num IN NUMBER,
6997 Process_Mode IN VARCHAR2)
6998 IS
6999
7000 CURSOR MERGE_SITES IS
7001 select duplicate_id, customer_id, duplicate_site_id, customer_site_id
7002 from ra_customer_merges m
7003 where m.process_flag = 'N'
7004 and m.request_id = req_id
7005 and m.set_number = set_num;
7006 /* MOAC_SQL_CHANGE */
7007 CURSOR MERGE_LINES_HISTORY IS
7008 SELECT /*+ PARALLEL(L)
7009 PARALLEL(M1)
7010 PARALLEL(M2)
7011 PARALLEL(M3)
7012 PARALLEL(M4)
7013 PARALLEL(M5) */
7014 l.line_id ,
7015 --changed for bug 3196900 , added l. for all the attributes
7016 l.sold_to_org_id,
7017 l.invoice_to_org_id,
7018 l.ship_to_org_id,
7019 l.intmed_ship_to_org_id,
7020 l.deliver_to_org_id,
7021 l.version_number,
7022 nvl(m1.customer_merge_id,nvl(m2.customer_merge_id,nvl(m3.customer_merge_id,nvl(m4.customer_merge_id,m5.customer_merge_id))))
7023 FROM RA_CUSTOMER_MERGES M1,
7024 RA_CUSTOMER_MERGES M2,
7025 RA_CUSTOMER_MERGES M3,
7026 RA_CUSTOMER_MERGES M4,
7027 RA_CUSTOMER_MERGES M5,
7028 --changed for bug 3196900
7029 -- OE_BLANKET_LINES_HIST L
7030 OE_BLANKET_LINES_HIST L , OE_BLANKET_LINES_ALL LN
7031 -- Changed for MOAC
7032 WHERE
7033 ( l.sold_to_org_id = m1.duplicate_id(+)
7034 and l.invoice_to_org_id = m2.duplicate_site_id(+)
7035 and l.ship_to_org_id = m3.duplicate_site_id(+)
7036 and l.intmed_ship_to_org_id = m4.duplicate_site_id(+)
7037 and l.deliver_to_org_id = m5.duplicate_site_id(+) )
7038 and
7039 (m1.duplicate_site_id is not null or
7040 m2.duplicate_id is not null or
7041 m3.duplicate_id is not null or
7042 m4.duplicate_id is not null or
7043 m5.duplicate_id is not null )
7044 and m1.process_flag(+) = 'N'
7045 and m2.process_flag(+) = 'N'
7046 and m3.process_flag(+) = 'N'
7047 and m4.process_flag(+) = 'N'
7048 and m5.process_flag(+) = 'N'
7049 and m1.request_id(+) =req_id
7050 and m2.request_id(+) =req_id
7051 and m3.request_id(+) =req_id
7052 and m4.request_id(+) =req_id
7053 and m5.request_id(+) =req_id
7054 and m1.set_number(+) =set_num
7055 and m2.set_number(+) =set_num
7056 and m3.set_number(+) =set_num
7057 and m4.set_number(+) =set_num
7058 and m5.set_number(+) =set_num
7059 --added for bug 3196900
7060 and l.line_id=ln.line_id
7061 for update nowait;
7062
7063 /* MOAC_SQL_CHANGE */
7064 CURSOR MERGE_LINES_HISTORY_2 IS
7065 SELECT /*+ PARALLEL(L)
7066 PARALLEL(M1)
7067 PARALLEL(M2)
7068 PARALLEL(M3)
7069 PARALLEL(M4)
7070 PARALLEL(M5) */
7071 l.line_id ,
7072 --changed for bug 3196900, added l. for all the attributes
7073 l.sold_to_org_id,
7074 l.invoice_to_org_id,
7075 l.ship_to_org_id,
7076 l.intmed_ship_to_org_id,
7077 l.deliver_to_org_id,
7078 l.version_number,
7079 nvl(m1.customer_merge_id,nvl(m2.customer_merge_id,nvl(m3.customer_merge_id,nvl(m4.customer_merge_id,m5.customer_merge_id))))
7080 FROM RA_CUSTOMER_MERGES M1,
7081 RA_CUSTOMER_MERGES M2,
7082 RA_CUSTOMER_MERGES M3,
7083 RA_CUSTOMER_MERGES M4,
7084 RA_CUSTOMER_MERGES M5,
7085 --changed for bug 3196900
7086 -- OE_BLANKET_LINES_HIST L
7087 OE_BLANKET_LINES_HIST L , OE_BLANKET_LINES_all LN
7088 -- Changed for MOAC
7089 WHERE
7090 ( l.sold_to_org_id = m1.duplicate_id(+)
7091 and l.invoice_to_org_id = m2.duplicate_site_id(+)
7092 and l.ship_to_org_id = m3.duplicate_site_id(+)
7093 and l.intmed_ship_to_org_id = m4.duplicate_site_id(+)
7094 and l.deliver_to_org_id = m5.duplicate_site_id(+) )
7095 and
7096 (m1.duplicate_site_id is not null or
7097 m2.duplicate_id is not null or
7098 m3.duplicate_id is not null or
7099 m4.duplicate_id is not null or
7100 m5.duplicate_id is not null )
7101 and m1.process_flag(+) = 'N'
7102 and m2.process_flag(+) = 'N'
7103 and m3.process_flag(+) = 'N'
7104 and m4.process_flag(+) = 'N'
7105 and m5.process_flag(+) = 'N'
7106 and m1.request_id(+) =req_id
7107 and m2.request_id(+) =req_id
7108 and m3.request_id(+) =req_id
7109 and m4.request_id(+) =req_id
7110 and m5.request_id(+) =req_id
7111 and m1.set_number(+) =set_num
7112 and m2.set_number(+) =set_num
7113 and m3.set_number(+) =set_num
7114 and m4.set_number(+) =set_num
7115 and m5.set_number(+) =set_num
7116 --added for bug 3196900
7117 and l.line_id=ln.line_id;
7118
7119 lhst_line_id_tab num_table;
7120 lhst_sold_to_org_id_tab num_table;
7121 lhst_invoice_to_org_id_tab num_table;
7122 lhst_ship_to_org_id_tab num_table;
7123 lhst_intmed_ship_to_org_id_tab num_table;
7124 lhst_deliver_to_org_id_tab num_table;
7125 lhst_version_number_tab num_table;
7126
7127 old_lhst_sold_to_org_id_tab num_table;
7128 old_lhst_invoice_to_org_id_tab num_table;
7129 old_lhst_ship_to_org_id_tab num_table;
7130 old_intmed_ship_to_org_id_tab num_table;
7131 old_lhst_deliver_to_org_id_tab num_table;
7132
7133 TYPE num_table_binary_int IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
7134 customer_id_tab num_table_binary_int;
7135 customer_site_id_tab num_table_binary_int;
7136
7137 MERGE_HEADER_ID_LIST MERGE_ID_LIST_TYPE;
7138 l_profile_val VARCHAR2(30);
7139
7140 BEGIN
7141
7142 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blkt_Lines_Hist()+' );
7143
7144 IF (process_mode = 'LOCK') THEN
7145
7146 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
7147 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_lines_hist', FALSE );
7148
7149 open merge_lines_history;
7150 close merge_lines_history;
7151
7152 ELSE
7153
7154 FOR C IN MERGE_SITES LOOP
7155 IF c.duplicate_id IS NOT NULL
7156 AND NOT customer_id_tab.EXISTS(c.duplicate_id) THEN
7157 customer_id_tab(c.duplicate_id) := c.customer_id;
7158 END IF;
7159
7160 IF c.duplicate_site_id IS NOT NULL
7161 AND NOT customer_site_id_tab.EXISTS(c.duplicate_site_id) THEN
7162 customer_site_id_tab(c.duplicate_site_id) := c.customer_site_id;
7163 END IF;
7164
7165 END LOOP;
7166
7167 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
7168 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
7169
7170 OPEN merge_lines_history_2;
7171 LOOP
7172 FETCH merge_lines_history_2
7173 BULK COLLECT INTO lhst_line_id_tab,
7174 lhst_sold_to_org_id_tab,
7175 lhst_invoice_to_org_id_tab,
7176 lhst_ship_to_org_id_tab,
7177 lhst_intmed_ship_to_org_id_tab,
7178 lhst_deliver_to_org_id_tab,
7179 lhst_version_number_tab,
7180 MERGE_HEADER_ID_LIST
7181 LIMIT 20000;
7182
7183 old_intmed_ship_to_org_id_tab := lhst_intmed_ship_to_org_id_tab;
7184 old_lhst_sold_to_org_id_tab := lhst_sold_to_org_id_tab;
7185 old_lhst_invoice_to_org_id_tab := lhst_invoice_to_org_id_tab;
7186 old_lhst_ship_to_org_id_tab := lhst_ship_to_org_id_tab;
7187 old_lhst_deliver_to_org_id_tab := lhst_deliver_to_org_id_tab;
7188
7189 if lhst_line_id_tab.COUNT <> 0 then
7190 for i in lhst_line_id_tab.FIRST..lhst_line_id_tab.LAST LOOP
7191
7192 -- Access directly by the index position of the ids in the
7193 -- values stored in customer_id_tab and customer_site_id_tab tables
7194
7195 if customer_id_tab.exists(lhst_sold_to_org_id_tab(i)) then
7196 lhst_sold_to_org_id_tab(i):= customer_id_tab(lhst_sold_to_org_id_tab(i));
7197 end if;
7198
7199 if customer_site_id_tab.exists(lhst_invoice_to_org_id_tab(i)) then
7200 lhst_invoice_to_org_id_tab(i):= customer_site_id_tab(lhst_invoice_to_org_id_tab(i));
7201 end if;
7202
7203 if customer_site_id_tab.exists(lhst_ship_to_org_id_tab(i)) then
7204 lhst_ship_to_org_id_tab(i):= customer_site_id_tab(lhst_ship_to_org_id_tab(i));
7205 end if;
7206
7207 if customer_site_id_tab.exists(lhst_intmed_ship_to_org_id_tab(i)) then
7208 lhst_intmed_ship_to_org_id_tab(i):= customer_site_id_tab(lhst_intmed_ship_to_org_id_tab(i));
7209 end if;
7210
7211 if customer_site_id_tab.exists(lhst_deliver_to_org_id_tab(i)) then
7212 lhst_deliver_to_org_id_tab(i):= customer_site_id_tab(lhst_deliver_to_org_id_tab(i));
7213 end if;
7214
7215 end loop;
7216 end if;
7217
7218 --insert audit information for customer merge
7219 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
7220 IF lhst_line_id_tab.COUNT <> 0 THEN
7221 forall i in lhst_line_id_tab.FIRST..lhst_line_id_tab.LAST
7222 INSERT INTO HZ_CUSTOMER_MERGE_LOG (
7223 MERGE_LOG_ID,
7224 TABLE_NAME,
7225 MERGE_HEADER_ID,
7226 PRIMARY_KEY_ID1,
7227 PRIMARY_KEY_ID2,
7228 NUM_COL1_ORIG,
7229 NUM_COL1_NEW,
7230 NUM_COL2_ORIG,
7231 NUM_COL2_NEW,
7232 NUM_COL3_ORIG,
7233 NUM_COL3_NEW,
7234 NUM_COL4_ORIG,
7235 NUM_COL4_NEW,
7236 ACTION_FLAG,
7237 REQUEST_ID,
7238 CREATED_BY,
7239 CREATION_DATE,
7240 LAST_UPDATE_LOGIN,
7241 LAST_UPDATE_DATE,
7242 LAST_UPDATED_BY
7243 ) VALUES (
7244 HZ_CUSTOMER_MERGE_LOG_s.nextval,
7245 'OE_BLANKET_LINES_HIST',
7246 MERGE_HEADER_ID_LIST(I),
7247 lhst_line_id_tab(I),
7248 lhst_version_number_tab(I),
7249 lhst_sold_to_org_id_tab(I),
7250 decode(lhst_sold_to_org_id_tab(I),NULL,old_lhst_sold_to_org_id_tab(I),lhst_sold_to_org_id_tab(i)),
7251 lhst_invoice_to_org_id_tab(I),
7252 decode(lhst_invoice_to_org_id_tab(I),NULL,old_lhst_invoice_to_org_id_tab(I),lhst_invoice_to_org_id_tab(i)),
7253 lhst_ship_to_org_id_tab(I),
7254 decode(lhst_ship_to_org_id_tab(I),NULL,old_lhst_ship_to_org_id_tab(I),lhst_ship_to_org_id_tab(i)),
7255 lhst_deliver_to_org_id_tab(I),
7256 decode(lhst_deliver_to_org_id_tab(I),NULL,old_lhst_deliver_to_org_id_tab(I),lhst_deliver_to_org_id_tab(i)),
7257 'U',
7258 req_id,
7259 hz_utility_pub.CREATED_BY,
7260 hz_utility_pub.CREATION_DATE,
7261 hz_utility_pub.LAST_UPDATE_LOGIN,
7262 hz_utility_pub.LAST_UPDATE_DATE,
7263 hz_utility_pub.LAST_UPDATED_BY
7264 );
7265
7266 end if;
7267 end if;
7268
7269 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
7270 arp_message.set_token( 'TABLE_NAME', 'oe_blanket_lines_hist', FALSE );
7271
7272 IF lhst_line_id_tab.COUNT <> 0 THEN
7273 FORALL i in lhst_line_id_tab.FIRST..lhst_line_id_tab.LAST
7274 UPDATE OE_BLANKET_LINES_HIST LHIST
7275 SET sold_to_org_id = decode(lhst_sold_to_org_id_tab(i),null,sold_to_org_id,lhst_sold_to_org_id_tab(i)),
7276 invoice_to_org_id = decode(lhst_invoice_to_org_id_tab(i),null,invoice_to_org_id,lhst_invoice_to_org_id_tab(i)),
7277 ship_to_org_id = decode(lhst_ship_to_org_id_tab(i),null,ship_to_org_id,lhst_ship_to_org_id_tab(i)),
7278 intmed_ship_to_org_id = decode(lhst_intmed_ship_to_org_id_tab(i),null,intmed_ship_to_org_id,lhst_intmed_ship_to_org_id_tab(i)),
7279 deliver_to_org_id = decode(lhst_deliver_to_org_id_tab(i),null,deliver_to_org_id,lhst_deliver_to_org_id_tab(i)),
7280 last_update_date = sysdate,
7281 last_updated_by = arp_standard.profile.user_id,
7282 last_update_login = arp_standard.profile.last_update_login,
7283 request_id = req_id,
7284 program_application_id = arp_standard.profile.program_application_id ,
7285 program_id = arp_standard.profile.program_id,
7286 program_update_date = SYSDATE
7287 WHERE line_id = lhst_line_id_tab(i);
7288
7289 g_count := sql%rowcount;
7290
7291 ELSE
7292 g_count := 0;
7293 END IF;
7294
7295 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
7296 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
7297 EXIT WHEN merge_lines_history_2%NOTFOUND;
7298
7299 lhst_line_id_tab.DELETE;
7300 lhst_sold_to_org_id_tab.DELETE;
7301 lhst_invoice_to_org_id_tab.DELETE;
7302 lhst_ship_to_org_id_tab.DELETE;
7303 lhst_intmed_ship_to_org_id_tab.DELETE;
7304 lhst_deliver_to_org_id_tab.DELETE;
7305 lhst_version_number_tab.DELETE;
7306
7307 old_lhst_sold_to_org_id_tab.DELETE;
7308 old_lhst_invoice_to_org_id_tab.DELETE;
7309 old_lhst_ship_to_org_id_tab.DELETE;
7310 old_intmed_ship_to_org_id_tab.DELETE;
7311 old_lhst_deliver_to_org_id_tab.DELETE;
7312
7313 END LOOP; -- cursor merge_lines_history_2
7314
7315 CLOSE merge_lines_history_2;
7316
7317 END IF;
7318 customer_id_tab.DELETE;
7319 customer_site_id_tab.DELETE;
7320 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_Blkt_Lines_Hist()-' );
7321
7322 EXCEPTION
7323 when others then
7324 arp_message.set_error( 'OE_CUST_MERGE.OE_Merge_Blkt_Lines_Hist-' );
7325 raise;
7326
7327 END OE_Merge_Blkt_Lines_Hist;
7328
7329
7330 /*-------------------------------------------------------*/
7331 /*--- PRIVATE PROCEDURE OE_Merge_OI_Tracking */
7332 /*-------------------------------------------------------*/
7333
7334
7335 Procedure OE_Merge_OI_Tracking (Req_Id IN NUMBER,
7336 Set_Num IN NUMBER,
7337 Process_Mode IN VARCHAR2)
7338 IS
7339
7340 CURSOR c1 is
7341 select header_id
7342 --changed for bug 3196900
7343 -- from OE_EM_INFORMATION_ALL
7344 from OE_EM_INFORMATION
7345 where sold_to_org_id in
7346 (select m.duplicate_id
7347 from ra_customer_merges m
7348 where m.process_flag = 'N'
7349 and m.request_id = req_id
7350 and m.set_number = set_num)
7351 for update nowait;
7352
7353
7354 l_profile_val VARCHAR2(30);
7355
7356 BEGIN
7357 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_OI_Tracking()+' );
7358 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL < '110510' THEN
7359 arp_message.set_line( 'OE_CUST_MERGE.OE_Merge_OI_Tracking()-' );
7360 Return;
7361 END IF;
7362
7363 -- both customer and site level
7364
7365 IF( process_mode = 'LOCK' ) THEN
7366
7367 arp_message.set_name( 'AR', 'AR_LOCKING_TABLE');
7368 arp_message.set_token( 'TABLE_NAME', 'OE_EM_INFORMATION_ALL', FALSE );
7369
7370 open c1;
7371 close c1;
7372
7373
7374 ELSE
7375
7376 HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
7377 l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
7378
7379
7380 -- customer level update
7381 arp_message.set_name( 'AR', 'AR_UPDATING_TABLE');
7382 arp_message.set_token( 'TABLE_NAME', 'OE_EM_INFORMATION_ALL', FALSE );
7383
7384 IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
7385 insert into HZ_CUSTOMER_MERGE_LOG (
7386 MERGE_LOG_ID,
7387 TABLE_NAME,
7388 MERGE_HEADER_ID,
7389 PRIMARY_KEY1,
7390 NUM_COL1_ORIG,
7391 NUM_COL1_NEW,
7392 ACTION_FLAG,
7393 REQUEST_ID,
7394 CREATED_BY,
7395 CREATION_DATE,
7396 LAST_UPDATE_LOGIN,
7397 LAST_UPDATE_DATE,
7398 LAST_UPDATED_BY)
7399
7400 SELECT
7401 HZ_CUSTOMER_MERGE_LOG_s.nextval,
7402 'OE_EM_INFORMATION_ALL',
7403 m.CUSTOMER_MERGE_HEADER_ID,
7404 h.ORIG_SYS_DOCUMENT_REF,
7405 h.sold_to_org_id,
7406 m.customer_site_id,
7407 'U',
7408 req_id,
7409 hz_utility_pub.CREATED_BY,
7410 hz_utility_pub.CREATION_DATE,
7411 hz_utility_pub.LAST_UPDATE_LOGIN,
7412 hz_utility_pub.LAST_UPDATE_DATE,
7413 hz_utility_pub.LAST_UPDATED_BY
7414 from oe_em_information_All h,
7415 ra_customer_merges m
7416 where h.sold_to_org_id=m.duplicate_site_id
7417 and m.process_flag = 'N'
7418 and m.request_id = req_id
7419 and m.set_number = set_num;
7420
7421 end if;
7422
7423 UPDATE OE_EM_INFORMATION_ALL a
7424 set sold_to_org_id = (select distinct m.customer_id
7425 from ra_customer_merges m
7426 where a.sold_to_org_id = m.duplicate_id
7427 and m.process_flag = 'N'
7428 and m.request_id = req_id
7429 and m.set_number = set_num),
7430 last_update_date = sysdate,
7431 last_updated_by = arp_standard.profile.user_id,
7432 last_update_login = arp_standard.profile.last_update_login,
7433 request_id = req_id,
7434 program_application_id =arp_standard.profile.program_application_id,
7435 program_id = arp_standard.profile.program_id,
7436 program_update_date = sysdate
7437 where sold_to_org_id in (select m.duplicate_id
7438 from ra_customer_merges m
7439 where m.process_flag = 'N'
7440 and m.request_id = req_id
7441 and m.set_number = set_num)
7442 --added for bug3196900
7443 and (a.document_id,a.em_transaction_type_code) in
7444 (select document_id,em_transaction_type_code from oe_em_information);
7445
7446
7447 g_count := sql%rowcount;
7448
7449 arp_message.set_name( 'AR', 'AR_ROWS_UPDATED' );
7450 arp_message.set_token( 'NUM_ROWS', to_char(g_count) );
7451
7452 END IF;
7453
7454 arp_message.set_line( 'OE_CUST_MERGE. OE_Merge_OI_Tracking()-' );
7455
7456 EXCEPTION
7457 When others then
7458 arp_message.set_error( 'OE_CUST_MERGE. OE_Merge_OI_Tracking-' );
7459 raise;
7460
7461 END OE_Merge_OI_Tracking;
7462
7463
7464
7465 Procedure OE_Order_Merge (Req_Id IN NUMBER,
7466 Set_Num IN NUMBER,
7467 Process_Mode IN VARCHAR2
7468 )
7469 IS
7470
7471 BEGIN
7472 arp_message.set_line( 'OE_CUST_MERGE.OE_Order_Merge()+' );
7473
7474 OE_Merge_Headers(Req_Id, Set_Num, Process_Mode);
7475 OE_Merge_Lines(Req_Id, Set_Num, Process_Mode);
7476 OE_Merge_Header_History(Req_Id, Set_Num, Process_Mode);
7477 OE_Merge_Lines_History(Req_Id, Set_Num, Process_Mode);
7478 -- OE_Merge_Headers_IFACE(Req_Id, Set_Num, Process_Mode); -- Interface tables need not be updated
7479 -- OE_Merge_Lines_IFACE(Req_Id, Set_Num, Process_Mode); -- Interface tables need not be updated
7480 OE_Merge_Header_ACKS(Req_Id, Set_Num, Process_Mode);
7481 OE_Merge_Line_ACKS(Req_Id, Set_Num, Process_Mode);
7482 OE_Merge_Price_Adj_Attribs(Req_Id, Set_Num, Process_Mode);
7483 OE_Merge_Blanket_Headers(Req_Id, Set_Num, Process_Mode);
7484 OE_Merge_Blanket_Lines(Req_Id, Set_Num, Process_Mode);
7485 OE_Merge_Blkt_Hdrs_Hist(Req_Id, Set_Num, Process_Mode);
7486 OE_Merge_Blkt_Lines_Hist(Req_Id, Set_Num, Process_Mode);
7487 OE_Merge_OI_Tracking (Req_Id, Set_Num, Process_Mode);
7488 arp_message.set_line( 'calling dbi now...' );
7489 oe_update_dbi_log();
7490 arp_message.set_line( 'OE_CUST_MERGE.Order_Merge()-' );
7491
7492 EXCEPTION
7493 When others then
7494 arp_message.set_error( 'OE_CUST_MERGE.OE_Order_Merge-' );
7495 raise;
7496
7497 END OE_Order_Merge;
7498
7499
7500 Procedure OE_Workflow_Merge (Req_Id IN NUMBER,
7501 Set_Num IN NUMBER,
7502 Process_Mode IN VARCHAR2
7503 )
7504 IS
7505
7506 BEGIN
7507
7508 NULL;
7509
7510 END OE_Workflow_Merge;
7511
7512 PROCEDURE Oe_Update_DBI_log IS
7513
7514 CURSOR c_get_lines(p_header_id number) IS
7515 SELECT l.line_id
7516 FROM oe_order_lines_all l
7517 WHERE l.header_id = p_header_id;
7518
7519 CURSOR c_set_of_books_id IS
7520 SELECT SYS.SET_OF_BOOKS_ID
7521 FROM AR_SYSTEM_PARAMETERS SYS;
7522
7523 l_line_id number;
7524 l_set_of_books_id number;
7525 l_update_date date;
7526
7527 BEGIN
7528
7529 IF l_dbi_profile = 'Y' then
7530 arp_message.set_line(' inside update_dbi count hder_id_tab='||dbi_header_header_id_tab.COUNT);
7531 arp_message.set_line(' count lin hdr_id_tab='||dbi_line_header_id_tab.COUNT);
7532
7533
7534 IF dbi_header_header_id_tab.COUNT <> 0 then
7535 FOR i in dbi_header_header_id_tab.FIRST..dbi_header_header_id_tab.LAST
7536 LOOP
7537 arp_message.set_line('header.header_id:'||dbi_header_header_id_tab(i));
7538 end loop;
7539 end if;
7540
7541 IF dbi_line_header_id_tab.COUNT <> 0 then
7542 FOR i in dbi_line_header_id_tab.FIRST..dbi_line_header_id_tab.LAST
7543 LOOP
7544 arp_message.set_line('line.header_id:'||dbi_line_header_id_tab(i));
7545 end loop;
7546 end if;
7547
7548 IF dbi_line_line_id_tab.COUNT <> 0 then
7549 FOR i in dbi_line_line_id_tab.FIRST..dbi_line_line_id_tab.LAST
7550 LOOP
7551 arp_message.set_line('line.line_id:'||dbi_line_line_id_tab(i));
7552 end loop;
7553 end if;
7554
7555
7556
7557 -- Removing Those Line Ids for whose headers already exists from hdr merge
7558 IF dbi_line_header_id_tab.COUNT <> 0 then
7559
7560 arp_message.set_line('count line_header_id_tab='||dbi_line_header_id_tab.COUNT);
7561 FOR i in dbi_line_header_id_tab.FIRST..dbi_line_header_id_tab.LAST
7562 LOOP
7563
7564 arp_message.set_line('count header_id_tab='||dbi_header_id_tab.COUNT);
7565 IF dbi_header_id_tab.EXISTS(dbi_line_header_id_tab(i)) THEN
7566 arp_message.set_line( 'DBI:matched line.header_id and header.header_id of '||dbi_line_header_id_tab(i)||', deleting');
7567 dbi_line_status_tab(i) := 'N';
7568 END IF;
7569
7570 END LOOP;
7571 END IF; -- if line header id tab is not null
7572
7573 IF dbi_line_status_tab.COUNT <> 0 then
7574 FOR i in dbi_line_status_tab.FIRST..dbi_line_status_tab.LAST
7575 LOOP
7576 arp_message.set_line( 'status '||i|| '='||dbi_line_status_tab(i));
7577 END LOOP;
7578 END IF;
7579
7580 OPEN c_set_of_books_id;
7581 FETCH c_set_of_books_id
7582 INTO l_set_of_books_id;
7583 CLOSE c_set_of_books_id;
7584
7585 IF l_set_of_books_id is NULL THEN
7586 l_set_of_books_id := -99;
7587 END IF;
7588
7589 -- Updating DBI LOG for Header Id and Line Ids from Header Merge
7590 IF dbi_header_header_id_tab.COUNT > 0 then
7591 FORALL i in dbi_header_header_id_tab.FIRST..dbi_header_header_id_tab.LAST
7592
7593 INSERT INTO ONT_DBI_CHANGE_LOG
7594 (HEADER_ID
7595 ,LINE_ID
7596 ,SET_OF_BOOKS_ID
7597 ,CURRENCY_CODE
7598 ,LAST_UPDATE_DATE
7599 )
7600
7601 SELECT
7602 dbi_header_header_id_tab(i)
7603 ,l.line_id
7604 ,l_set_of_books_id
7605 ,'XXX'
7606 ,dbi_header_update_date_tab(i)
7607
7608 FROM OE_ORDER_LINES_ALL l, oe_order_headers_all h
7609 WHERE l.header_id = dbi_header_header_id_tab(i)
7610 AND h.header_id = l.header_id
7611 AND h.booked_flag = 'Y';
7612
7613 arp_message.set_line(' Hdr insert count='||sql%rowcount);
7614
7615 END IF; -- because of hdr merge
7616
7617
7618 -- Updating DBI LOG for Line Ids from Line Merge
7619 IF dbi_line_line_id_tab.COUNT > 0 then
7620 FORALL i in dbi_line_line_id_tab.FIRST..dbi_line_line_id_tab.LAST
7621
7622 INSERT INTO ONT_DBI_CHANGE_LOG
7623 (HEADER_ID
7624 ,LINE_ID
7625 ,SET_OF_BOOKS_ID
7626 ,CURRENCY_CODE
7627 ,LAST_UPDATE_DATE
7628 )
7629
7630 SELECT
7631 dbi_line_header_id_tab(i)
7632 ,l.line_id
7633 ,l_set_of_books_id
7634 ,'XXX'
7635 ,dbi_line_update_date_tab(i)
7636 FROM OE_ORDER_LINES_ALL l
7637 WHERE l.line_id = dbi_line_line_id_tab(i)
7638 AND l.booked_flag = 'Y'
7639 AND dbi_line_status_tab(i) = 'Y';
7640 arp_message.set_line(' line insert count='||sql%rowcount);
7641
7642 END IF; -- because of line merge
7643
7644 END IF; -- if dbi is installed
7645
7646 dbi_header_id_tab.DELETE;
7647 dbi_header_header_id_tab.DELETE;
7648 dbi_header_update_date_tab.DELETE;
7649
7650 dbi_line_header_id_tab.DELETE;
7651 dbi_line_line_id_tab.DELETE;
7652 dbi_line_update_date_tab.DELETE;
7653 dbi_line_status_tab.DELETE;
7654 dbi_header_id_tab.DELETE;
7655
7656 arp_message.set_line(' End Update DBI');
7657
7658 EXCEPTION
7659 WHEN OTHERS THEN
7660 oe_debug_pub.add('when others oe_cust_merge.update_dbi_log'||SQLERRM||
7661 SQLCODE);
7662
7663 END oe_update_dbi_log;
7664
7665 END OE_CUST_MERGE;