DBA Data[Home] [Help]

PACKAGE BODY: APPS.FV_CMERGE

Source


1 package body FV_CMERGE AS
2 -- $Header: FVARCMGB.pls 120.10 2004/05/06 18:03:05 manumand ship $
3   g_module_name VARCHAR2(100) := 'fv.plsql.FV_CMERGE.';
4 
5  PROCEDURE FV_CUST_FINANCE_CHRGS (
6         req_id                       NUMBER,
7         set_num                      NUMBER,
8         process_mode                 VARCHAR2);
9 
10 
11  PROCEDURE FV_CUST_VEND_XREFS (
12         req_id                       NUMBER,
13         set_num                      NUMBER,
14         process_mode                 VARCHAR2);
15 
16  PROCEDURE FV_INTERAGENCY_FUNDS (
17         req_id                       NUMBER,
18         set_num                      NUMBER,
19         process_mode                 VARCHAR2);
20 
21  PROCEDURE FV_INTERIM_CASH_RECEIPTS (
22         req_id                       NUMBER,
23         set_num                      NUMBER,
24         process_mode                 VARCHAR2);
25 
26  PROCEDURE FV_INVOICE_FINANCE_CHRGS (
27         req_id                       NUMBER,
28         set_num                      NUMBER,
29         process_mode                 VARCHAR2);
30 
31  PROCEDURE FV_IPAC_TRX (
32         req_id                       NUMBER,
33         set_num                      NUMBER,
34         process_mode                 VARCHAR2);
35 
36 
37 
38 ------------------------------------------------------------------------------
39 -- Merge Routine for FV_CUST_FINANCE_CHRGS table
40 ------------------------------------------------------------------------------
41 PROCEDURE FV_CUST_FINANCE_CHRGS (
42         req_id                       NUMBER,
43         set_num                      NUMBER,
44         process_mode                 VARCHAR2) IS
45   l_module_name VARCHAR2(200) := g_module_name || 'FV_CUST_FINANCE_CHRGS';
46   l_errbuf      VARCHAR2(1024);
47 
48   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
49        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
50        INDEX BY BINARY_INTEGER;
51   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
52 
53   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
54          FV_CUST_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
55         INDEX BY BINARY_INTEGER;
56   PRIMARY_KEY1_LIST CUSTOMER_ID_LIST_TYPE;
57 
58   TYPE CHARGE_ID_LIST_TYPE IS TABLE OF
59          FV_CUST_FINANCE_CHRGS_ALL.CHARGE_ID%TYPE
60         INDEX BY BINARY_INTEGER;
61   PRIMARY_KEY2_LIST CHARGE_ID_LIST_TYPE;
62 
63   TYPE CUSTOMER_ID_LIST_TYPE1 IS TABLE OF
64          FV_CUST_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
65         INDEX BY BINARY_INTEGER;
66   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE1;
67   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE1;
68 
69   l_profile_val VARCHAR2(30);
70   CURSOR merged_records IS
71         SELECT distinct CUSTOMER_MERGE_HEADER_ID
72               ,yt.CUSTOMER_ID
73               ,yt.CHARGE_ID
74               ,yt.CUSTOMER_ID
75          FROM FV_CUST_FINANCE_CHRGS yt, ra_customer_merges m
76          WHERE (
77             yt.CUSTOMER_ID = m.DUPLICATE_ID
78          ) AND    m.process_flag = 'N'
79          AND    m.request_id = req_id
80          AND    m.set_number = set_num;
81   l_last_fetch BOOLEAN := FALSE;
82   l_count NUMBER := 0;
83 BEGIN
84   IF process_mode='LOCK' THEN
85     NULL;
86   ELSE
87     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
88     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_CUST_FINANCE_CHRGS',FALSE);
89     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
90       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
91     END IF;
92 
93     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
94     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
95 
96     --remove records from table that will be duplicates when merged.
97     delete from fv_cust_finance_chrgs
98                 where (customer_id, charge_id) in
99                                 (select duplicate_id, charge_id
100                                    from ra_customer_merges racm,
101                                         fv_cust_finance_chrgs fcfc
102                                      where  racm.process_flag = 'N'
103                                        and racm.request_id = req_id
104                                        and racm.set_number = set_num
105                              and racm.customer_id = fcfc.customer_id
106                              and fcfc.charge_id in
107                                 (select charge_id
108                                    from fv_cust_finance_chrgs
109                                   where customer_id = racm.duplicate_id));
110 
111     open merged_records;
112     LOOP
113       FETCH merged_records BULK COLLECT INTO
114          MERGE_HEADER_ID_LIST
115           , PRIMARY_KEY1_LIST
116           , PRIMARY_KEY2_LIST
117           , NUM_COL1_ORIG_LIST
118           limit 1000
119           ;
120       IF merged_records%NOTFOUND THEN
121          l_last_fetch := TRUE;
122       END IF;
123       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
124         exit;
125       END IF;
126       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
127          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
128       END LOOP;
129       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
130         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
131          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
132            MERGE_LOG_ID,
133            TABLE_NAME,
134            MERGE_HEADER_ID,
135            PRIMARY_KEY1,
136            PRIMARY_KEY2,
137            NUM_COL1_ORIG,
138            NUM_COL1_NEW,
139            ACTION_FLAG,
140            REQUEST_ID,
141            CREATED_BY,
142            CREATION_DATE,
143            LAST_UPDATE_LOGIN,
144            LAST_UPDATE_DATE,
145            LAST_UPDATED_BY
146       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
147          'FV_CUST_FINANCE_CHRGS',
148          MERGE_HEADER_ID_LIST(I),
149          PRIMARY_KEY1_LIST(I),
150          PRIMARY_KEY2_LIST(I),
151          NUM_COL1_ORIG_LIST(I),
152          NUM_COL1_NEW_LIST(I),
153          'U',
154          req_id,
155          hz_utility_pub.CREATED_BY,
156          hz_utility_pub.CREATION_DATE,
157          hz_utility_pub.LAST_UPDATE_LOGIN,
158          hz_utility_pub.LAST_UPDATE_DATE,
159          hz_utility_pub.LAST_UPDATED_BY
160       );
161 
162     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
163       UPDATE FV_CUST_FINANCE_CHRGS yt SET
164            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
165           , LAST_UPDATE_DATE=SYSDATE
166           , last_updated_by=arp_standard.profile.user_id
167           , last_update_login=arp_standard.profile.last_update_login
168       WHERE CUSTOMER_ID=PRIMARY_KEY1_LIST(I)
169       AND CHARGE_ID=PRIMARY_KEY2_LIST(I)
170          ;
171       l_count := l_count + SQL%ROWCOUNT;
172       IF l_last_fetch THEN
173          EXIT;
174       END IF;
175     END LOOP;
176 
177     arp_message.set_name('AR','AR_ROWS_UPDATED');
178     arp_message.set_token('NUM_ROWS',to_char(l_count));
179     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
180       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
181     END IF;
182   END IF;
183 EXCEPTION
184   WHEN OTHERS THEN
185     l_errbuf := SQLERRM;
186     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
187     arp_message.set_line( 'FV_CUST_FINANCE_CHRGS');
188     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
189       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
190     END IF;
191     RAISE;
192 END FV_CUST_FINANCE_CHRGS;
193 
194 ------------------------------------------------------------------------------
195 -- Merge Routine for FV_CUST_VEND_XREFS table
196 -----------------------------------------------------------------------------
197 
198 PROCEDURE FV_CUST_VEND_XREFS (
199         req_id                       NUMBER,
200         set_num                      NUMBER,
201         process_mode                 VARCHAR2) IS
202   l_module_name VARCHAR2(200) := g_module_name || 'FV_CUST_VEND_XREFS';
203   l_errbuf      VARCHAR2(1024);
204 
205   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
206        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
207        INDEX BY BINARY_INTEGER;
208   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
209 
210   TYPE CUST_VEND_XREF_ID_LIST_TYPE IS TABLE OF
211         FV.FV_CUST_VEND_XREFS.CUST_VEND_XREF_ID%TYPE
212         INDEX BY BINARY_INTEGER;
213   PRIMARY_KEY_ID_LIST CUST_VEND_XREF_ID_LIST_TYPE;
214 
215   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
216          FV.FV_CUST_VEND_XREFS.CUSTOMER_ID%TYPE
217         INDEX BY BINARY_INTEGER;
218   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
219   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
220 
221   l_profile_val VARCHAR2(30);
222   CURSOR merged_records IS
223         SELECT distinct CUSTOMER_MERGE_HEADER_ID
224               ,CUST_VEND_XREF_ID
225               ,yt.CUSTOMER_ID
226          FROM FV_CUST_VEND_XREFS yt, ra_customer_merges m
227          WHERE (
228             yt.CUSTOMER_ID = m.DUPLICATE_ID
229          ) AND    m.process_flag = 'N'
230          AND    m.request_id = req_id
231          AND    m.set_number = set_num;
232   l_last_fetch BOOLEAN := FALSE;
233   l_count NUMBER := 0;
234   g_count NUMBER := 0;
235 BEGIN
236   IF process_mode='LOCK' THEN
237     NULL;
238   ELSE
239     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
240     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_CUST_VEND_XREFS',FALSE);
241     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
242       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
243     END IF;
244     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
245     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
246 
247     -- remove the records that will be duplicates when merged.
248     delete from fv_cust_vend_xrefs
249                  where customer_id IN (select  duplicate_id
250                                         from ra_customer_merges racm,
251                                              fv_cust_vend_xrefs t
252                                       where  racm.process_flag = 'N'
253                                         and racm.request_id =  req_id
254                                         and racm.set_number = set_num
255                                         and racm.customer_id = t.customer_id);
256 
257      g_count := SQL%ROWCOUNT;
258 
259     arp_message.set_name('AR','AR_ROWS_DELETED');
260     arp_message.set_token('NUM_ROWS',to_char(g_count));
261     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
262       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
263     END IF;
264 
265     open merged_records;
266     LOOP
267       FETCH merged_records BULK COLLECT INTO
268          MERGE_HEADER_ID_LIST
269           , PRIMARY_KEY_ID_LIST
270           , NUM_COL1_ORIG_LIST
271           limit 1000
272           ;
273       IF merged_records%NOTFOUND THEN
274          l_last_fetch := TRUE;
275       END IF;
276       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
277         exit;
278       END IF;
279       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
280          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
281       END LOOP;
282       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
283         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
284          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
285            MERGE_LOG_ID,
286            TABLE_NAME,
287            MERGE_HEADER_ID,
288            PRIMARY_KEY_ID,
289            NUM_COL1_ORIG,
290            NUM_COL1_NEW,
291            ACTION_FLAG,
292            REQUEST_ID,
293            CREATED_BY,
294            CREATION_DATE,
295            LAST_UPDATE_LOGIN,
296            LAST_UPDATE_DATE,
297            LAST_UPDATED_BY
298       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
299          'FV_CUST_VEND_XREFS',
300          MERGE_HEADER_ID_LIST(I),
301          PRIMARY_KEY_ID_LIST(I),
302          NUM_COL1_ORIG_LIST(I),
303          NUM_COL1_NEW_LIST(I),
304          'U',
305          req_id,
306          hz_utility_pub.CREATED_BY,
307          hz_utility_pub.CREATION_DATE,
308          hz_utility_pub.LAST_UPDATE_LOGIN,
309          hz_utility_pub.LAST_UPDATE_DATE,
310          hz_utility_pub.LAST_UPDATED_BY
311       );
312 
313     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
314       UPDATE FV_CUST_VEND_XREFS yt SET
315            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
316           , LAST_UPDATE_DATE=SYSDATE
317           , last_updated_by=arp_standard.profile.user_id
318           , last_update_login=arp_standard.profile.last_update_login
319       WHERE CUST_VEND_XREF_ID=PRIMARY_KEY_ID_LIST(I)
320          ;
321       l_count := l_count + SQL%ROWCOUNT;
322       IF l_last_fetch THEN
323          EXIT;
324       END IF;
325     END LOOP;
326 
327     arp_message.set_name('AR','AR_ROWS_UPDATED');
328     arp_message.set_token('NUM_ROWS',to_char(l_count));
329     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
330       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
331     END IF;
332   END IF;
333 EXCEPTION
334   WHEN OTHERS THEN
335     l_errbuf := SQLERRM;
336     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
337     arp_message.set_line( 'FV_CUST_VEND_XREFS');
338     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
339       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
340     END IF;
341     RAISE;
342 END FV_CUST_VEND_XREFS;
343 
344 ------------------------------------------------------------------------------
345 -- Merge Routine for FV_INTERAGENCY_FUNDS table
346 ------------------------------------------------------------------------------
347 
348 PROCEDURE FV_INTERAGENCY_FUNDS (
349         req_id                       NUMBER,
350         set_num                      NUMBER,
351         process_mode                 VARCHAR2) IS
352   l_module_name VARCHAR2(200) := g_module_name || 'FV_INTERAGENCY_FUNDS';
353   l_errbuf      VARCHAR2(1024);
354 
355   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
356        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
357        INDEX BY BINARY_INTEGER;
358   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
359 
360   TYPE INTERAGENCY_FUND_ID_LIST_TYPE IS TABLE OF
361          FV_INTERAGENCY_FUNDS_ALL.INTERAGENCY_FUND_ID%TYPE
362         INDEX BY BINARY_INTEGER;
363   PRIMARY_KEY_ID_LIST INTERAGENCY_FUND_ID_LIST_TYPE;
364 
365   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
366          FV_INTERAGENCY_FUNDS_ALL.CUSTOMER_ID%TYPE
367         INDEX BY BINARY_INTEGER;
368   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
369   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
370 
371   l_profile_val VARCHAR2(30);
372   CURSOR merged_records IS
373         SELECT distinct CUSTOMER_MERGE_HEADER_ID
374               ,INTERAGENCY_FUND_ID
375               ,yt.CUSTOMER_ID
376          FROM FV_INTERAGENCY_FUNDS yt, ra_customer_merges m
377          WHERE (
378             yt.CUSTOMER_ID = m.DUPLICATE_ID
379          ) AND    m.process_flag = 'N'
380          AND    m.request_id = req_id
381          AND    m.set_number = set_num;
382   l_last_fetch BOOLEAN := FALSE;
383   l_count NUMBER := 0;
384 BEGIN
385   IF process_mode='LOCK' THEN
386     NULL;
387   ELSE
388     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
389     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_INTERAGENCY_FUNDS',FALSE);
390     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
391       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
392     END IF;
393     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
394     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
395 
396     open merged_records;
397     LOOP
398       FETCH merged_records BULK COLLECT INTO
399          MERGE_HEADER_ID_LIST
400           , PRIMARY_KEY_ID_LIST
401           , NUM_COL1_ORIG_LIST
402           limit 1000
403           ;
404       IF merged_records%NOTFOUND THEN
405          l_last_fetch := TRUE;
406       END IF;
407       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
408         exit;
409       END IF;
410       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
411          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
412       END LOOP;
413       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
414         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
415          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
416            MERGE_LOG_ID,
417            TABLE_NAME,
418            MERGE_HEADER_ID,
419            PRIMARY_KEY_ID,
420            NUM_COL1_ORIG,
421            NUM_COL1_NEW,
422            ACTION_FLAG,
423            REQUEST_ID,
424            CREATED_BY,
425            CREATION_DATE,
426            LAST_UPDATE_LOGIN,
427            LAST_UPDATE_DATE,
428            LAST_UPDATED_BY
429       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
430          'FV_INTERAGENCY_FUNDS',
431          MERGE_HEADER_ID_LIST(I),
432          PRIMARY_KEY_ID_LIST(I),
433          NUM_COL1_ORIG_LIST(I),
434          NUM_COL1_NEW_LIST(I),
435          'U',
436          req_id,
437          hz_utility_pub.CREATED_BY,
438          hz_utility_pub.CREATION_DATE,
439          hz_utility_pub.LAST_UPDATE_LOGIN,
440          hz_utility_pub.LAST_UPDATE_DATE,
441          hz_utility_pub.LAST_UPDATED_BY
442       );
443 
444     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
445       UPDATE FV_INTERAGENCY_FUNDS yt SET
446            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
447           , LAST_UPDATE_DATE=SYSDATE
448           , last_updated_by=arp_standard.profile.user_id
449           , last_update_login=arp_standard.profile.last_update_login
450       WHERE INTERAGENCY_FUND_ID=PRIMARY_KEY_ID_LIST(I)
451          ;
452       l_count := l_count + SQL%ROWCOUNT;
453       IF l_last_fetch THEN
454          EXIT;
455       END IF;
456     END LOOP;
457 
458     arp_message.set_name('AR','AR_ROWS_UPDATED');
459     arp_message.set_token('NUM_ROWS',to_char(l_count));
460     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
461       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
462     END IF;
463   END IF;
464 EXCEPTION
465   WHEN OTHERS THEN
466     l_errbuf := SQLERRM;
467     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
468     arp_message.set_line( 'FV_INTERAGENCY_FUNDS');
469     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
470       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
471     END IF;
472     RAISE;
473 END FV_INTERAGENCY_FUNDS;
474 ------------------------------------------------------------------------------
475 -- Merge Routine for FV_INTERIM_CASH_RECEIPTS table
476 ------------------------------------------------------------------------------
477 PROCEDURE FV_INTERIM_CASH_RECEIPTS (
478         req_id                       NUMBER,
479         set_num                      NUMBER,
480         process_mode                 VARCHAR2) IS
481   l_module_name VARCHAR2(200) := g_module_name || 'FV_INTERIM_CASH_RECEIPTS';
482   l_errbuf      VARCHAR2(1024);
483 
484   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
485        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
486        INDEX BY BINARY_INTEGER;
487   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
488 
489   TYPE BATCH_ID_LIST_TYPE IS TABLE OF
490         FV_INTERIM_CASH_RECEIPTS_ALL.BATCH_ID%TYPE
491         INDEX BY BINARY_INTEGER;
492   PRIMARY_KEY1_LIST BATCH_ID_LIST_TYPE;
493 
494   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
495          FV_INTERIM_CASH_RECEIPTS_ALL.CUSTOMER_ID%TYPE
496         INDEX BY BINARY_INTEGER;
497   PRIMARY_KEY2_LIST CUSTOMER_ID_LIST_TYPE;
498 
499   TYPE CUSTOMER_TRX_ID_LIST_TYPE IS TABLE OF
500          FV_INTERIM_CASH_RECEIPTS_ALL.CUSTOMER_TRX_ID%TYPE
501         INDEX BY BINARY_INTEGER;
502   PRIMARY_KEY3_LIST CUSTOMER_TRX_ID_LIST_TYPE;
503 
504   TYPE RECEIPT_NUMBER_LIST_TYPE IS TABLE OF
505          FV_INTERIM_CASH_RECEIPTS_ALL.RECEIPT_NUMBER%TYPE
506         INDEX BY BINARY_INTEGER;
507   PRIMARY_KEY4_LIST RECEIPT_NUMBER_LIST_TYPE;
508 
509   TYPE CUSTOMER_ID_LIST_TYPE1 IS TABLE OF
510          FV_INTERIM_CASH_RECEIPTS_ALL.CUSTOMER_ID%TYPE
511         INDEX BY BINARY_INTEGER;
512   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE1;
513   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE1;
514 
515   TYPE SITE_USE_ID_LIST_TYPE IS TABLE OF
516          FV_INTERIM_CASH_RECEIPTS_ALL.SITE_USE_ID%TYPE
517         INDEX BY BINARY_INTEGER;
518   NUM_COL2_ORIG_LIST SITE_USE_ID_LIST_TYPE;
519   NUM_COL2_NEW_LIST SITE_USE_ID_LIST_TYPE;
520 
521   l_profile_val VARCHAR2(30);
522   CURSOR merged_records IS
523         SELECT distinct CUSTOMER_MERGE_HEADER_ID
524               ,BATCH_ID
525               ,yt.CUSTOMER_ID
526               ,CUSTOMER_TRX_ID
527               ,RECEIPT_NUMBER
528               ,yt.CUSTOMER_ID
529               ,yt.SITE_USE_ID
530          FROM FV_INTERIM_CASH_RECEIPTS yt, ra_customer_merges m
531          WHERE (
532             yt.CUSTOMER_ID = m.DUPLICATE_ID
533             OR yt.SITE_USE_ID = m.DUPLICATE_SITE_ID
534          ) AND    m.process_flag = 'N'
535          AND    m.request_id = req_id
536          AND    m.set_number = set_num;
537   l_last_fetch BOOLEAN := FALSE;
538   l_count NUMBER := 0;
539 BEGIN
540   IF process_mode='LOCK' THEN
541     NULL;
542   ELSE
543     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
544     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_INTERIM_CASH_RECEIPTS',FALSE);
545     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
546       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
547     END IF;
548     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
549     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
550 
551     open merged_records;
552     LOOP
553       FETCH merged_records BULK COLLECT INTO
554          MERGE_HEADER_ID_LIST
555           , PRIMARY_KEY1_LIST
556           , PRIMARY_KEY2_LIST
557           , PRIMARY_KEY3_LIST
558           , PRIMARY_KEY4_LIST
559           , NUM_COL1_ORIG_LIST
560           , NUM_COL2_ORIG_LIST
561           limit 1000
562           ;
563       IF merged_records%NOTFOUND THEN
564          l_last_fetch := TRUE;
565       END IF;
566       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
567         exit;
568       END IF;
569       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
570          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
571          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
572       END LOOP;
573       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
574         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
575          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
576            MERGE_LOG_ID,
577            TABLE_NAME,
578            MERGE_HEADER_ID,
579            PRIMARY_KEY1,
580            PRIMARY_KEY2,
581            PRIMARY_KEY3,
582            PRIMARY_KEY4,
583            NUM_COL1_ORIG,
584            NUM_COL1_NEW,
585            NUM_COL2_ORIG,
586            NUM_COL2_NEW,
587            ACTION_FLAG,
588            REQUEST_ID,
589            CREATED_BY,
590            CREATION_DATE,
591            LAST_UPDATE_LOGIN,
592            LAST_UPDATE_DATE,
593            LAST_UPDATED_BY
594       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
595          'FV_INTERIM_CASH_RECEIPTS',
596          MERGE_HEADER_ID_LIST(I),
597          PRIMARY_KEY1_LIST(I),
598          PRIMARY_KEY2_LIST(I),
599          PRIMARY_KEY3_LIST(I),
600          PRIMARY_KEY4_LIST(I),
601          NUM_COL1_ORIG_LIST(I),
602          NUM_COL1_NEW_LIST(I),
603          NUM_COL2_ORIG_LIST(I),
604          NUM_COL2_NEW_LIST(I),
605          'U',
606          req_id,
607          hz_utility_pub.CREATED_BY,
608          hz_utility_pub.CREATION_DATE,
609          hz_utility_pub.LAST_UPDATE_LOGIN,
610          hz_utility_pub.LAST_UPDATE_DATE,
611          hz_utility_pub.LAST_UPDATED_BY
612       );
613 
614     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
615       UPDATE FV_INTERIM_CASH_RECEIPTS yt SET
616            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
617           ,SITE_USE_ID=NUM_COL2_NEW_LIST(I)
618           , LAST_UPDATE_DATE=SYSDATE
619           , last_updated_by=arp_standard.profile.user_id
620           , last_update_login=arp_standard.profile.last_update_login
621       WHERE BATCH_ID=PRIMARY_KEY1_LIST(I)
622       AND CUSTOMER_ID=PRIMARY_KEY2_LIST(I)
623       AND CUSTOMER_TRX_ID=PRIMARY_KEY3_LIST(I)
624       AND RECEIPT_NUMBER=PRIMARY_KEY4_LIST(I)
625          ;
626       l_count := l_count + SQL%ROWCOUNT;
627       IF l_last_fetch THEN
628          EXIT;
629       END IF;
630     END LOOP;
631 
632     arp_message.set_name('AR','AR_ROWS_UPDATED');
633     arp_message.set_token('NUM_ROWS',to_char(l_count));
634     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
635       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
636     END IF;
637   END IF;
638 EXCEPTION
639   WHEN OTHERS THEN
640     l_errbuf := SQLERRM;
641     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
642     arp_message.set_line( 'FV_INTERIM_CASH_RECEIPTS');
643     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
644       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
645     END IF;
646     RAISE;
647 END FV_INTERIM_CASH_RECEIPTS;
648 
649 ------------------------------------------------------------------------------
650 -- Merge Routine for FV_INVOICE_FINANCE_CHRGS table
651 -----------------------------------------------------------------------------
652 
653 PROCEDURE FV_INVOICE_FINANCE_CHRGS (
654         req_id                       NUMBER,
655         set_num                      NUMBER,
656         process_mode                 VARCHAR2) IS
657   l_module_name VARCHAR2(200) := g_module_name || 'FV_INVOICE_FINANCE_CHRGS';
658   l_errbuf      VARCHAR2(1024);
659 
660   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
661        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
662        INDEX BY BINARY_INTEGER;
663   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
664 
665   TYPE CUSTOMER_TRX_ID_LIST_TYPE IS TABLE OF
666          FV_INVOICE_FINANCE_CHRGS_ALL.CUSTOMER_TRX_ID%TYPE
667         INDEX BY BINARY_INTEGER;
668   PRIMARY_KEY1_LIST CUSTOMER_TRX_ID_LIST_TYPE;
669 
670   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
671          FV_INVOICE_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
672         INDEX BY BINARY_INTEGER;
673   PRIMARY_KEY2_LIST CUSTOMER_ID_LIST_TYPE;
674 
675   TYPE CHARGE_ID_LIST_TYPE IS TABLE OF
676          FV_INVOICE_FINANCE_CHRGS_ALL.CHARGE_ID%TYPE
677         INDEX BY BINARY_INTEGER;
678   PRIMARY_KEY3_LIST CHARGE_ID_LIST_TYPE;
679 
680   TYPE CUSTOMER_ID_LIST_TYPE1 IS TABLE OF
681          FV_INVOICE_FINANCE_CHRGS_ALL.CUSTOMER_ID%TYPE
682         INDEX BY BINARY_INTEGER;
683   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE1;
684   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE1;
685 
686   l_profile_val VARCHAR2(30);
687   CURSOR merged_records IS
688         SELECT distinct CUSTOMER_MERGE_HEADER_ID
689               ,CUSTOMER_TRX_ID
690               ,yt.CUSTOMER_ID
691               ,CHARGE_ID
692               ,yt.CUSTOMER_ID
693          FROM FV_INVOICE_FINANCE_CHRGS yt, ra_customer_merges m
694          WHERE (
695             yt.CUSTOMER_ID = m.DUPLICATE_ID
696          ) AND    m.process_flag = 'N'
697          AND    m.request_id = req_id
698          AND    m.set_number = set_num;
699   l_last_fetch BOOLEAN := FALSE;
700   l_count NUMBER := 0;
701 BEGIN
702   IF process_mode='LOCK' THEN
703     NULL;
704   ELSE
705     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
706     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_INVOICE_FINANCE_CHRGS',FALSE);
707     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
708       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
709     END IF;
710     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
711     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
712 
713     open merged_records;
714     LOOP
715       FETCH merged_records BULK COLLECT INTO
716          MERGE_HEADER_ID_LIST
717           , PRIMARY_KEY1_LIST
718           , PRIMARY_KEY2_LIST
719           , PRIMARY_KEY3_LIST
720           , NUM_COL1_ORIG_LIST
721           limit 1000
722           ;
723       IF merged_records%NOTFOUND THEN
724          l_last_fetch := TRUE;
725       END IF;
726       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
727         exit;
728       END IF;
729       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
730          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
731       END LOOP;
732       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
733         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
734          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
735            MERGE_LOG_ID,
736            TABLE_NAME,
737            MERGE_HEADER_ID,
738            PRIMARY_KEY1,
739            PRIMARY_KEY2,
740            PRIMARY_KEY3,
741            NUM_COL1_ORIG,
742            NUM_COL1_NEW,
743            ACTION_FLAG,
744            REQUEST_ID,
745            CREATED_BY,
746            CREATION_DATE,
747            LAST_UPDATE_LOGIN,
748            LAST_UPDATE_DATE,
749            LAST_UPDATED_BY
750       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
751          'FV_INVOICE_FINANCE_CHRGS',
752          MERGE_HEADER_ID_LIST(I),
753          PRIMARY_KEY1_LIST(I),
754          PRIMARY_KEY2_LIST(I),
755          PRIMARY_KEY3_LIST(I),
756          NUM_COL1_ORIG_LIST(I),
757          NUM_COL1_NEW_LIST(I),
758          'U',
759          req_id,
760          hz_utility_pub.CREATED_BY,
761          hz_utility_pub.CREATION_DATE,
762          hz_utility_pub.LAST_UPDATE_LOGIN,
763          hz_utility_pub.LAST_UPDATE_DATE,
764          hz_utility_pub.LAST_UPDATED_BY
765       );
766 
767     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
768       UPDATE FV_INVOICE_FINANCE_CHRGS yt SET
769            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
770           , LAST_UPDATE_DATE=SYSDATE
771           , last_updated_by=arp_standard.profile.user_id
772           , last_update_login=arp_standard.profile.last_update_login
773       WHERE CUSTOMER_TRX_ID=PRIMARY_KEY1_LIST(I)
774       AND CUSTOMER_ID=PRIMARY_KEY2_LIST(I)
775       AND CHARGE_ID=PRIMARY_KEY3_LIST(I)
776          ;
777       l_count := l_count + SQL%ROWCOUNT;
778       IF l_last_fetch THEN
779          EXIT;
780       END IF;
781     END LOOP;
782 
783     arp_message.set_name('AR','AR_ROWS_UPDATED');
784     arp_message.set_token('NUM_ROWS',to_char(l_count));
785     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
786       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
787     END IF;
788   END IF;
789 EXCEPTION
790   WHEN OTHERS THEN
791     l_errbuf := SQLERRM;
792     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
793     arp_message.set_line( 'FV_INVOICE_FINANCE_CHRGS');
794     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
795       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
796     END IF;
797     RAISE;
798 END FV_INVOICE_FINANCE_CHRGS;
799 
800 ------------------------------------------------------------------------------
801 -- Merge Routine for FV_IPAC_TRX table
802 -----------------------------------------------------------------------------
803 
804 
805 PROCEDURE FV_IPAC_TRX (
806         req_id                       NUMBER,
807         set_num                      NUMBER,
808         process_mode                 VARCHAR2) IS
809   l_module_name VARCHAR2(200) := g_module_name || 'FV_IPAC_TRX';
810   l_errbuf      VARCHAR2(1024);
811 
812   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
813        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
814        INDEX BY BINARY_INTEGER;
815   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
816 
817   TYPE IPAC_BILLING_ID_LIST_TYPE IS TABLE OF
818          FV_IPAC_TRX_ALL.IPAC_BILLING_ID%TYPE
819         INDEX BY BINARY_INTEGER;
820   PRIMARY_KEY1_LIST IPAC_BILLING_ID_LIST_TYPE;
821 
822   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
823          FV_IPAC_TRX_ALL.CUSTOMER_ID%TYPE
824         INDEX BY BINARY_INTEGER;
825   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
826   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
827 
828   l_profile_val VARCHAR2(30);
829   CURSOR merged_records IS
830         SELECT distinct CUSTOMER_MERGE_HEADER_ID
831               ,IPAC_BILLING_ID
832               ,yt.CUSTOMER_ID
833          FROM FV_IPAC_TRX yt, ra_customer_merges m
834          WHERE (
835             yt.CUSTOMER_ID = m.DUPLICATE_ID
836          ) AND    m.process_flag = 'N'
837          AND    m.request_id = req_id
838          AND    m.set_number = set_num;
839   l_last_fetch BOOLEAN := FALSE;
840   l_count NUMBER := 0;
841 BEGIN
842   IF process_mode='LOCK' THEN
843     NULL;
844   ELSE
845     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
846     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FV_IPAC_TRX',FALSE);
847     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
848       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
849     END IF;
850     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
851     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
852 
853     open merged_records;
854     LOOP
855       FETCH merged_records BULK COLLECT INTO
856          MERGE_HEADER_ID_LIST
857           , PRIMARY_KEY1_LIST
858           , NUM_COL1_ORIG_LIST
859           limit 1000
860           ;
861       IF merged_records%NOTFOUND THEN
862          l_last_fetch := TRUE;
863       END IF;
864       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
865         exit;
866       END IF;
867       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
868          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
869       END LOOP;
870       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
871         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
872          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
873            MERGE_LOG_ID,
874            TABLE_NAME,
875            MERGE_HEADER_ID,
876            PRIMARY_KEY1,
877            NUM_COL1_ORIG,
878            NUM_COL1_NEW,
879            ACTION_FLAG,
880            REQUEST_ID,
881            CREATED_BY,
882            CREATION_DATE,
883            LAST_UPDATE_LOGIN,
884            LAST_UPDATE_DATE,
885            LAST_UPDATED_BY
886       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
887          'FV_IPAC_TRX',
888          MERGE_HEADER_ID_LIST(I),
889          PRIMARY_KEY1_LIST(I),
890          NUM_COL1_ORIG_LIST(I),
891          NUM_COL1_NEW_LIST(I),
892          'U',
893          req_id,
894          hz_utility_pub.CREATED_BY,
895          hz_utility_pub.CREATION_DATE,
896          hz_utility_pub.LAST_UPDATE_LOGIN,
897          hz_utility_pub.LAST_UPDATE_DATE,
898          hz_utility_pub.LAST_UPDATED_BY
899       );
900 
901     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
902       UPDATE FV_IPAC_TRX yt SET
903            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
904           , LAST_UPDATE_DATE=SYSDATE
905           , last_updated_by=arp_standard.profile.user_id
906           , last_update_login=arp_standard.profile.last_update_login
907       WHERE IPAC_BILLING_ID=PRIMARY_KEY1_LIST(I)
908          ;
909       l_count := l_count + SQL%ROWCOUNT;
910       IF l_last_fetch THEN
911          EXIT;
912       END IF;
913     END LOOP;
914 
915     arp_message.set_name('AR','AR_ROWS_UPDATED');
916     arp_message.set_token('NUM_ROWS',to_char(l_count));
917     IF ( FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
918       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_EVENT, l_module_name);
919     END IF;
920   END IF;
921 EXCEPTION
922   WHEN OTHERS THEN
923     l_errbuf := SQLERRM;
924     FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
925     arp_message.set_line( 'FV_IPAC_TRX');
926     IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
927       FV_UTILITY.MESSAGE(FND_LOG.LEVEL_ERROR, l_module_name);
928     END IF;
929     RAISE;
930 END FV_IPAC_TRX;
931 
932 PROCEDURE merge(req_id IN Number,
933                  set_num IN NUMBER,
934                  process_mode IN VARCHAR2) IS
935   l_module_name VARCHAR2(200) := g_module_name || 'merge';
936   l_errbuf      VARCHAR2(1024);
937 
938 BEGIN
939  FV_CUST_FINANCE_CHRGS(req_id, set_num, process_mode);
940  FV_CUST_VEND_XREFS(req_id, set_num, process_mode);
941  FV_INTERAGENCY_FUNDS(req_id, set_num, process_mode);
942  FV_INTERIM_CASH_RECEIPTS(req_id, set_num, process_mode);
943  FV_INVOICE_FINANCE_CHRGS(req_id, set_num, process_mode);
944  FV_IPAC_TRX(req_id, set_num, process_mode);
945 EXCEPTION WHEN OTHERS THEN
946   l_errbuf := SQLERRM;
947   FV_UTILITY.LOG_MESG(FND_LOG.LEVEL_ERROR, l_module_name||'.final_exception', l_errbuf);
948   RAISE;
949 END merge;
950 
951 END fv_cmerge;