DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_CUST_MERGE

Source


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