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