DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_CUST_MERGE

Source


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