DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_PARTY_MERGE_PUB

Source


1 PACKAGE BODY OKL_PARTY_MERGE_PUB  AS
2 /* $Header: OKLPPMGB.pls 120.8.12010000.3 2008/10/21 22:47:54 apaul ship $ */
3 
4   L_MODULE                   FND_LOG_MESSAGES.MODULE%TYPE;
5   L_DEBUG_ENABLED            VARCHAR2(10);
6   IS_DEBUG_PROCEDURE_ON      BOOLEAN;
7   IS_DEBUG_STATEMENT_ON      BOOLEAN;
8   --------------------------------------------------------
9   -- Procedures and Functions
10   ---------------------------------------------------------------------------
11 
12   ------------------------------------------------------------------------------
13   -- Start of comments
14   -- Procedure Name  : CREATE_PARTY_SITE
15   -- Description     : This procedure create a new Party Site using the data from
16   --                   an existing party site. New Party Site is created for the
17   --                   party of the given customer account.
18   -- Business Rules  :
19   -- Parameters      :
20 	--   p_cust_acct_id -> is the customer account id, which is used to get the
21 	--                     party for which the site needs to be created
22   --   p_old_party_site_id -> is the party site id which is to be copied
23   -- Version         : 1.0
24   -- End of comments
25   ------------------------------------------------------------------------------
26   PROCEDURE CREATE_PARTY_SITE(
27     p_init_msg_list      IN  VARCHAR2,
28     p_cust_acct_id       IN  NUMBER,
29     p_old_party_site_id  IN  NUMBER,
30     x_new_party_site_id  OUT NOCOPY NUMBER,
31     x_return_status      OUT NOCOPY VARCHAR2,
32     x_msg_count          OUT NOCOPY NUMBER,
33     x_msg_data           OUT NOCOPY VARCHAR2)
34   IS
35     l_api_name              VARCHAR2(30) := 'CREATE_PARTY_SITE';
36     l_return_status         VARCHAR2(1);
37 
38     x_party_site_number     hz_party_sites.party_site_number%TYPE;
39     p_party_site_rec        HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE;
40     l_prof_value VARCHAR2(1);
41   BEGIN
42     l_return_status := OKL_API.G_RET_STS_SUCCESS;
43     L_MODULE := 'OKL.PLSQL.OKL_PARTY_MERGE_PUB.CREATE_PARTY_SITE';
44 
45     -- check for logging on PROCEDURE level
46     L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
47     IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
48     -- check for logging on STATEMENT level
49     IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
50 
51     -- call START_ACTIVITY to create savepoint, check compatibility
52     -- and initialize message list
53     l_return_status := OKL_API.START_ACTIVITY(
54                            p_api_name      => l_api_name
55                           ,p_init_msg_list => p_init_msg_list
56                           ,p_api_type      => G_API_TYPE
57                           ,x_return_status => l_return_status);
58 
59     -- check if activity started successfully
60     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
61       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
62     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
63       RAISE OKL_API.G_EXCEPTION_ERROR;
64     END IF;
65 
66     --Obtain the details of the given Party Site which is to be copied
67     SELECT LOCATION_ID
68        , PARTY_SITE_NUMBER
69        , orig_system_reference
70        , party_site_name
71        , language
72        , addressee
73        , global_location_number
74     INTO p_party_site_rec.location_id
75        , p_party_site_rec.party_site_number
76        , p_party_site_rec.orig_system_reference
77        , p_party_site_rec.party_site_name
78        , p_party_site_rec.language
79        , p_party_site_rec.addressee
80        , p_party_site_rec.global_location_number
81     FROM hz_party_sites
82     WHERE party_site_id = p_old_party_site_id;
83 
84     --Obtain the Party of the given Customer Account
85     SELECT PARTY_ID INTO p_party_site_rec.party_id
86     FROM HZ_CUST_ACCOUNTS_ALL HCA
87     WHERE HCA.CUST_ACCOUNT_ID = p_cust_acct_id;
88 
89     p_party_site_rec.identifying_address_flag := 'N';
90     p_party_site_rec.status := 'A';
91     p_party_site_rec.created_by_module := 'OKL';
92     p_party_site_rec.application_id := 540;
93 
94     --Obtain the profile value to find out whether site number is to be passed
95     --or not.
96     SELECT NVL(FND_PROFILE.VALUE('HZ_GENERATE_PARTY_SITE_NUMBER'), 'Y') INTO l_prof_value FROM DUAL;
97 
98     IF l_prof_value = 'Y'
99     THEN
100       p_party_site_rec.party_site_number := NULL;
101     END IF;
102 
103     --Call the Create Party Site API
104     IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
105     THEN
106       OKL_DEBUG_PUB.LOG_DEBUG(
107           FND_LOG.LEVEL_PROCEDURE
108          ,L_MODULE
109          ,'begin debug call HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE');
110     END IF;
111 
112     HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE(
113       p_init_msg_list         => p_init_msg_list,
114       p_party_site_rec        => p_party_site_rec,
115       x_party_site_id         => x_new_party_site_id,
116       x_party_site_number     => x_party_site_number,
117       x_return_status         => l_return_status,
118       x_msg_count             => x_msg_count,
119       x_msg_data              => x_msg_data);
120 
121     IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
122     THEN
123       OKL_DEBUG_PUB.LOG_DEBUG(
124           FND_LOG.LEVEL_PROCEDURE
125          ,L_MODULE
126          ,'end debug call HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE');
127     END IF;
128 
129     -- write to log
130     IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
131       OKL_DEBUG_PUB.LOG_DEBUG(
132           FND_LOG.LEVEL_STATEMENT
133          ,L_MODULE || ' Result of HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE'
134          ,'Party Site Number ' || x_party_site_number ||
135           ' New Party Site Id '|| x_new_party_site_id ||
136           ' result status ' || l_return_status ||
137           ' x_msg_data ' || x_msg_data);
138     END IF; -- end of statement level debug
139 
140     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
141       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
142     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
143       RAISE OKL_API.G_EXCEPTION_ERROR;
144     END IF;
145 
146     x_return_status := l_return_status;
147 
148     OKL_API.END_ACTIVITY(
149         x_msg_count => x_msg_count
150        ,x_msg_data  => x_msg_data);
151   EXCEPTION
152     WHEN OKL_API.G_EXCEPTION_ERROR
153     THEN
154       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
155                            p_api_name  => l_api_name,
156                            p_pkg_name  => G_PKG_NAME,
157                            p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
158                            x_msg_count => x_msg_count,
159                            x_msg_data  => x_msg_data,
160                            p_api_type  => G_API_TYPE);
161 
162     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
163     THEN
164       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
165                            p_api_name  => l_api_name,
166                            p_pkg_name  => G_PKG_NAME,
167                            p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
168                            x_msg_count => x_msg_count,
169                            x_msg_data  => x_msg_data,
170                            p_api_type  => G_API_TYPE);
171 
172     WHEN OTHERS
173     THEN
174       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
175                            p_api_name  => l_api_name,
176                            p_pkg_name  => G_PKG_NAME,
177                            p_exc_name  => 'OTHERS',
178                            x_msg_count => x_msg_count,
179                            x_msg_data  => x_msg_data,
180                            p_api_type  => G_API_TYPE);
181   END CREATE_PARTY_SITE;
182 
183   ------------------------------------------------------------------------------
184   -- Start of comments
185   -- Procedure Name  : CREATE_PARTY_SITE_USE
186   -- Description     : This procedure create a new Party Site Use using the data
187   --                   from an existing party site use. New Party Site Use is
188   --                   created for the given party site.
189   -- Business Rules  :
190   -- Parameters      :
191 	--   p_party_site_id -> is the party site id for which the site use needs to be
192   --                      created
193   --   p_old_party_site_use_id -> is the party site use id which is to be copied
194   -- Version         : 1.0
195   -- End of comments
196   ------------------------------------------------------------------------------
197   PROCEDURE CREATE_PARTY_SITE_USE(
198     p_init_msg_list          IN  VARCHAR2,
199     p_party_site_id          IN  NUMBER,
200     p_old_party_site_use_id  IN  NUMBER,
201     x_new_party_site_use_id  OUT NOCOPY NUMBER,
202     x_return_status          OUT NOCOPY VARCHAR2,
203     x_msg_count              OUT NOCOPY NUMBER,
204     x_msg_data               OUT NOCOPY VARCHAR2)
205   IS
206     l_api_name              VARCHAR2(30) := 'CREATE_PARTY_SITE_USE';
207     l_return_status         VARCHAR2(1);
208 
209     p_party_site_use_rec    HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
210   BEGIN
211     l_return_status := OKL_API.G_RET_STS_SUCCESS;
212     L_MODULE := 'OKL.PLSQL.OKL_PARTY_MERGE_PUB.CREATE_PARTY_SITE_USE';
213 
214     -- check for logging on PROCEDURE level
215     L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
216     IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
217     -- check for logging on STATEMENT level
218     IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
219 
220     -- call START_ACTIVITY to create savepoint, check compatibility
221     -- and initialize message list
222     l_return_status := OKL_API.START_ACTIVITY(
223                            p_api_name      => l_api_name
224                           ,p_init_msg_list => p_init_msg_list
225                           ,p_api_type      => G_API_TYPE
226                           ,x_return_status => l_return_status);
227 
228     -- check if activity started successfully
229     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
230       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
231     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
232       RAISE OKL_API.G_EXCEPTION_ERROR;
233     END IF;
234 
235     --Obtain the details of the existing Site Use
236     SELECT COMMENTS
237          , SITE_USE_TYPE
238          , PRIMARY_PER_TYPE
239          , STATUS
240     INTO p_party_site_use_rec.COMMENTS
241        , p_party_site_use_rec.SITE_USE_TYPE
242        , p_party_site_use_rec.PRIMARY_PER_TYPE
243        , p_party_site_use_rec.STATUS
244     FROM HZ_PARTY_SITE_USES
245     WHERE PARTY_SITE_USE_ID = p_old_party_site_use_id;
246 
247     p_party_site_use_rec.PARTY_SITE_ID := p_party_site_id;
248     p_party_site_use_rec.created_by_module := 'OKL';
249     p_party_site_use_rec.application_id := 540;
250 
251     --Call the API to create the site use
252     IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
253     THEN
254       OKL_DEBUG_PUB.LOG_DEBUG(
255           FND_LOG.LEVEL_PROCEDURE
256          ,L_MODULE
257          ,'begin debug call HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE_USE');
258     END IF;
259 
260     HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE_USE(
261       p_init_msg_list         => FND_API.G_TRUE,
262       p_party_site_use_rec    => p_party_site_use_rec,
263       x_party_site_use_id     => x_new_party_site_use_id,
264       x_return_status         => l_return_status,
265       x_msg_count             => x_msg_count,
266       x_msg_data              => x_msg_data);
267 
268     IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
269     THEN
270       OKL_DEBUG_PUB.LOG_DEBUG(
271           FND_LOG.LEVEL_PROCEDURE
272          ,L_MODULE
273          ,'end debug call HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE_USE');
274     END IF;
275 
276     -- write to log
277     IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
278       OKL_DEBUG_PUB.LOG_DEBUG(
279           FND_LOG.LEVEL_STATEMENT
280          ,L_MODULE || ' Result of HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE_USE'
281          ,' New Party Site Use Id '|| x_new_party_site_use_id ||
282           ' result status ' || l_return_status ||
283           ' x_msg_data ' || x_msg_data);
284     END IF; -- end of statement level debug
285 
286     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
287       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
288     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
289       RAISE OKL_API.G_EXCEPTION_ERROR;
290     END IF;
291 
292     x_return_status := l_return_status;
293 
294     OKL_API.END_ACTIVITY(
295         x_msg_count => x_msg_count
296        ,x_msg_data  => x_msg_data);
297   EXCEPTION
298     WHEN OKL_API.G_EXCEPTION_ERROR
299     THEN
300       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
301                            p_api_name  => l_api_name,
302                            p_pkg_name  => G_PKG_NAME,
303                            p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
304                            x_msg_count => x_msg_count,
305                            x_msg_data  => x_msg_data,
306                            p_api_type  => G_API_TYPE);
307 
308     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
309     THEN
310       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
311                            p_api_name  => l_api_name,
312                            p_pkg_name  => G_PKG_NAME,
313                            p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
314                            x_msg_count => x_msg_count,
315                            x_msg_data  => x_msg_data,
316                            p_api_type  => G_API_TYPE);
317 
318     WHEN OTHERS
319     THEN
320       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
321                            p_api_name  => l_api_name,
322                            p_pkg_name  => G_PKG_NAME,
323                            p_exc_name  => 'OTHERS',
324                            x_msg_count => x_msg_count,
325                            x_msg_data  => x_msg_data,
326                            p_api_type  => G_API_TYPE);
327   END CREATE_PARTY_SITE_USE;
328 
329   ------------------------------------------------------------------------------
330   -- Start of comments
331   -- Function  Name  : CHECK_IF_SAME_PARTY
332   -- Description     : This function checks whether the given two customer accounts
333   --                   belong to same party or not.
334   -- Business Rules  :
335   -- Parameters      : If both the customer accounts belong to same party then
336   --                   it returns TRUE else FALSE
337   -- Version         : 1.0
338   -- End of comments
339   ------------------------------------------------------------------------------
340   FUNCTION CHECK_IF_SAME_PARTY(
341       orig_cust_acct_id    IN NUMBER,
342       new_cust_acct_id     IN NUMBER) RETURN BOOLEAN
343   AS
344     l_api_name              VARCHAR2(30) := 'CHECK_IF_SAME_PARTY';
345     ret_val BOOLEAN DEFAULT FALSE;
346     --Cursor to check if Parties of both the Customer Accounts is same.
347     CURSOR same_party_csr(l_orig_cust_acct_id NUMBER, l_new_cust_acct_id NUMBER) IS
348       SELECT 1
349       FROM HZ_CUST_ACCOUNTS_ALL HCA1
350          , HZ_CUST_ACCOUNTS_ALL HCA2
351       WHERE HCA1.CUST_ACCOUNT_ID = l_orig_cust_acct_id
352         AND HCA2.CUST_ACCOUNT_ID = l_new_cust_acct_id
353         AND HCA1.PARTY_ID = HCA2.PARTY_ID;
354     same_party_val VARCHAR2(1);
355   BEGIN
356     --Use to cursor to identify if both the customer accounts belong to same party
357     OPEN same_party_csr(orig_cust_acct_id, new_cust_acct_id);
358     FETCH same_party_csr INTO same_party_val;
359     CLOSE same_party_csr;
360 
361     IF NVL(same_party_val, 'X') = 'X'
362     THEN
363       --If the value returned by cursor is null then return false as both the accounts
364       --do not belong to same party
365       ret_val := FALSE;
366     ELSE
367       --If a value returned by cursor then return true as both the accounts belong
368       --to same party
369       ret_val := TRUE;
370     END IF;
371     RETURN ret_val;
372   EXCEPTION
373     WHEN OTHERS
374     THEN
375       RETURN FALSE;
376   END CHECK_IF_SAME_PARTY;
377 
378   ------------------------------------------------------------------------------
379   -- Start of comments
380   -- Function  Name  : GET_NEW_PARTY_SITE
381   -- Description     :
382   -- Business Rules  :
383   -- Parameters      :
384   -- Version         : 1.0
385   -- End of comments
386   ------------------------------------------------------------------------------
387   FUNCTION GET_NEW_PARTY_SITE(
388       old_party_site_id    IN NUMBER,
389       new_cust_acct_id     IN NUMBER) RETURN NUMBER
390   AS
391     new_party_site_id NUMBER;
392     CURSOR new_party_site_csr(l_old_party_site_id NUMBER, l_new_cust_acct_id NUMBER) IS
393       SELECT HPSN.PARTY_SITE_ID
394       FROM HZ_PARTY_SITES HPS
395          , HZ_CUST_ACCOUNTS_ALL HCA
396          , HZ_PARTY_SITES HPSN
397       WHERE HPS.PARTY_SITE_ID = l_old_party_site_id
398         AND HCA.CUST_ACCOUNT_ID = l_new_cust_acct_id
399         AND HCA.PARTY_ID = HPSN.PARTY_ID
400         AND HPSN.LOCATION_ID = HPS.LOCATION_ID
401         AND ROWNUM < 2;
402 
403   BEGIN
404     OPEN new_party_site_csr(old_party_site_id, new_cust_acct_id);
405     FETCH new_party_site_csr INTO new_party_site_id;
406     CLOSE new_party_site_csr;
407 
408     RETURN new_party_site_id;
409   EXCEPTION
410     WHEN OTHERS
411     THEN
412       RETURN NULL;
413   END GET_NEW_PARTY_SITE;
414 
415   ------------------------------------------------------------------------------
416   -- Start of comments
417   -- FUNCTION  Name  : GET_NEW_PARTY_SITE_USE
418   -- Description     :
419   -- Business Rules  :
420   -- Parameters      :
421   -- Version         : 1.0
422   -- End of comments
423   ------------------------------------------------------------------------------
424   FUNCTION GET_NEW_PARTY_SITE_USE(
425       old_party_site_use_id   IN NUMBER,
426       new_cust_acct_id        IN NUMBER) RETURN NUMBER
427   AS
428     new_party_site_use_id NUMBER;
429     CURSOR new_party_site_use_csr(l_old_party_site_use_id NUMBER, l_new_cust_acct_id NUMBER) IS
430       SELECT HPSUN.PARTY_SITE_USE_ID
431       FROM HZ_PARTY_SITES HPS
432          , HZ_CUST_ACCOUNTS_ALL HCA
433          , HZ_PARTY_SITES HPSN
434          , HZ_PARTY_SITE_USES HPSU
435          , HZ_PARTY_SITE_USES HPSUN
436       WHERE HPSU.PARTY_SITE_USE_ID = l_old_party_site_use_id
437         AND HPS.PARTY_SITE_ID = HPSU.PARTY_SITE_ID
438         AND HCA.CUST_ACCOUNT_ID = l_new_cust_acct_id
439         AND HCA.PARTY_ID = HPSN.PARTY_ID
440         AND HPSN.LOCATION_ID = HPS.LOCATION_ID
441         AND HPSUN.PARTY_SITE_ID = HPSN.PARTY_SITE_ID
442         AND HPSUN.SITE_USE_TYPE = HPSU.SITE_USE_TYPE
443         AND ROWNUM < 2;
444 
445   BEGIN
446     OPEN new_party_site_use_csr(old_party_site_use_id, new_cust_acct_id);
447     FETCH new_party_site_use_csr INTO new_party_site_use_id;
448     CLOSE new_party_site_use_csr;
449 
450     RETURN new_party_site_use_id;
451   EXCEPTION
452     WHEN OTHERS
453     THEN
454       RETURN NULL;
455   END GET_NEW_PARTY_SITE_USE;
456 
457   ------------------------------------------------------------------------------
458   -- Start of comments
459   -- Procedure Name  : UPDATE_ASSET_LOCATION
460   -- Description     :
461   -- Business Rules  :
462   -- Parameters      :
463   -- Version         : 1.0
464   -- End of comments
465   ------------------------------------------------------------------------------
466   PROCEDURE UPDATE_ASSET_LOCATION(
467     p_init_msg_list      IN  VARCHAR2,
468     p_cust_acct_id       IN  NUMBER,
469     p_parent_object_id   IN  NUMBER,
470     p_parent_object_code IN  VARCHAR2,
471     p_merge_header_id    IN  RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE,
472     req_id               IN  NUMBER,
473     x_return_status      OUT NOCOPY VARCHAR2,
474     x_msg_count          OUT NOCOPY NUMBER,
475     x_msg_data           OUT NOCOPY VARCHAR2)
476   IS
477     l_api_name              VARCHAR2(30) := 'UPDATE_ASSET_LOCATION';
478     l_return_status         VARCHAR2(1);
479 
480     TYPE ASSET_ID_LIST_TYPE IS TABLE OF OKL_ASSETS_B.ID%TYPE
481       INDEX BY BINARY_INTEGER;
482     ASSET_ID_LIST ASSET_ID_LIST_TYPE;
483 
484     TYPE IS_ID_LIST_TYPE IS TABLE OF OKL_ASSETS_B.INSTALL_SITE_ID%TYPE
485       INDEX BY BINARY_INTEGER;
486     IS_ID_LIST IS_ID_LIST_TYPE;
487     NEW_IS_ID_LIST IS_ID_LIST_TYPE;
488 
489     TYPE PS_ID_LIST_TYPE IS TABLE OF HZ_PARTY_SITES.PARTY_SITE_ID%TYPE
490       INDEX BY BINARY_INTEGER;
491     PS_ID_LIST PS_ID_LIST_TYPE;
492     NEW_PS_ID_LIST PS_ID_LIST_TYPE;
493 
494     l_profile_val VARCHAR2(30);
495 
496     CURSOR LAP_ASSET_CSR(l_lap_id NUMBER) IS
497       SELECT ASS.ID ASSET_ID
498            , ASS.INSTALL_SITE_ID
499            , HPS.PARTY_SITE_ID
500       FROM OKL_ASSETS_B ASS
501          , OKL_LEASE_QUOTES_B LSQ
502          , OKL_LEASE_APPLICATIONS_B LAP
503          , HZ_PARTY_SITE_USES HPSU
504          , HZ_PARTY_SITES HPS
505       WHERE ASS.PARENT_OBJECT_CODE = 'LEASEQUOTE'
506         AND LSQ.ID = ASS.PARENT_OBJECT_ID
507         AND LSQ.PARENT_OBJECT_CODE = 'LEASEAPP'
508         AND LSQ.PARENT_OBJECT_ID = LAP.ID
509         AND HPSU.PARTY_SITE_USE_ID = ASS.INSTALL_SITE_ID
510         AND HPSU.PARTY_SITE_ID = HPS.PARTY_SITE_ID
511         AND LAP.ID = l_lap_id;
512 
513     CURSOR LOP_ASSET_CSR(l_lop_id NUMBER) IS
514       SELECT ASS.ID ASSET_ID
515            , ASS.INSTALL_SITE_ID
516            , HPS.PARTY_SITE_ID
517       FROM OKL_ASSETS_B ASS
518          , OKL_LEASE_QUOTES_B LSQ
519          , OKL_LEASE_OPPORTUNITIES_B LOP
520          , HZ_PARTY_SITE_USES HPSU
521          , HZ_PARTY_SITES HPS
522       WHERE ASS.PARENT_OBJECT_CODE = 'LEASEQUOTE'
523         AND LSQ.ID = ASS.PARENT_OBJECT_ID
524         AND LSQ.PARENT_OBJECT_CODE = 'LEASEOPP'
525         AND LSQ.PARENT_OBJECT_ID = LOP.ID
526         AND HPSU.PARTY_SITE_USE_ID = ASS.INSTALL_SITE_ID
527         AND HPSU.PARTY_SITE_ID = HPS.PARTY_SITE_ID
528         AND LOP.ID = l_lop_id;
529   BEGIN
530     l_return_status := OKL_API.G_RET_STS_SUCCESS;
531     L_MODULE := 'OKL.PLSQL.OKL_PARTY_MERGE_PUB.UPDATE_ASSET_LOCATION';
532 
533     -- check for logging on PROCEDURE level
534     L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
535     IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
536     -- check for logging on STATEMENT level
537     IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
538 
539     -- call START_ACTIVITY to create savepoint, check compatibility
540     -- and initialize message list
541     l_return_status := OKL_API.START_ACTIVITY(
542                            p_api_name      => l_api_name
543                           ,p_init_msg_list => p_init_msg_list
544                           ,p_api_type      => G_API_TYPE
545                           ,x_return_status => l_return_status);
546 
547     -- check if activity started successfully
548     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
549       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
550     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
551       RAISE OKL_API.G_EXCEPTION_ERROR;
552     END IF;
553 
554     IF(p_parent_object_code = 'LEASEAPP')
555     THEN
556       OPEN LAP_ASSET_CSR(p_parent_object_id);
557       FETCH LAP_ASSET_CSR BULK COLLECT INTO
558         ASSET_ID_LIST,
559         IS_ID_LIST,
560         PS_ID_LIST;
561       CLOSE LAP_ASSET_CSR;
562     ELSIF(p_parent_object_code = 'LEASEOPP')
563     THEN
564       OPEN LOP_ASSET_CSR(p_parent_object_id);
565       FETCH LOP_ASSET_CSR BULK COLLECT INTO
566         ASSET_ID_LIST,
567         IS_ID_LIST,
568         PS_ID_LIST;
569       CLOSE LOP_ASSET_CSR;
570     END IF;
571 
572     FOR I IN 1..ASSET_ID_LIST.COUNT
573     LOOP
574       IF(IS_ID_LIST(I) IS NOT NULL)
575       THEN
576         NEW_IS_ID_LIST(I) := GET_NEW_PARTY_SITE_USE(IS_ID_LIST(I), p_cust_acct_id);
577         IF(NEW_IS_ID_LIST(I) IS NULL)
578         THEN
579           NEW_PS_ID_LIST(I) := GET_NEW_PARTY_SITE(PS_ID_LIST(I), p_cust_acct_id);
580           IF(NEW_PS_ID_LIST(I) IS NULL)
581           THEN
582             --Call the Create Party Site API
583             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
584             THEN
585               OKL_DEBUG_PUB.LOG_DEBUG(
586                   FND_LOG.LEVEL_PROCEDURE
587                  ,L_MODULE
588                  ,'begin debug call CREATE_PARTY_SITE');
589             END IF;
590 
591             CREATE_PARTY_SITE(
592               p_init_msg_list      => p_init_msg_list,
593               p_cust_acct_id       => p_cust_acct_id,
594               p_old_party_site_id  => PS_ID_LIST(I),
595               x_new_party_site_id  => NEW_PS_ID_LIST(I),
596               x_return_status      => l_return_status,
597               x_msg_count          => x_msg_count,
598               x_msg_data           => x_msg_data);
599 
600             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
601             THEN
602               OKL_DEBUG_PUB.LOG_DEBUG(
603                   FND_LOG.LEVEL_PROCEDURE
604                  ,L_MODULE
605                  ,'end debug call CREATE_PARTY_SITE');
606             END IF;
607 
608             -- write to log
609             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
610               OKL_DEBUG_PUB.LOG_DEBUG(
611                   FND_LOG.LEVEL_STATEMENT
612                  ,L_MODULE || ' Result of CREATE_PARTY_SITE'
613                  ,' New Party Site Id '|| NEW_PS_ID_LIST(I) ||
614                   ' result status ' || l_return_status ||
615                   ' x_msg_data ' || x_msg_data);
616             END IF; -- end of statement level debug
617 
618             IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
619               RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
620             ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
621               RAISE OKL_API.G_EXCEPTION_ERROR;
622             END IF;
623           END IF;
624 
625           --Call the API to create the site use
626           IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
627           THEN
628             OKL_DEBUG_PUB.LOG_DEBUG(
629                 FND_LOG.LEVEL_PROCEDURE
630                ,L_MODULE
631                ,'begin debug call CREATE_PARTY_SITE_USE');
632           END IF;
633 
634           CREATE_PARTY_SITE_USE(
635             p_init_msg_list          => p_init_msg_list,
636             p_party_site_id          => NEW_PS_ID_LIST(I),
637             p_old_party_site_use_id  => IS_ID_LIST(I),
638             x_new_party_site_use_id  => NEW_IS_ID_LIST(I),
639             x_return_status          => l_return_status,
640             x_msg_count              => x_msg_count,
641             x_msg_data               => x_msg_data);
642 
643           IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
644           THEN
645             OKL_DEBUG_PUB.LOG_DEBUG(
646                 FND_LOG.LEVEL_PROCEDURE
647                ,L_MODULE
648                ,'end debug call CREATE_PARTY_SITE_USE');
649           END IF;
650 
651           -- write to log
652           IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
653             OKL_DEBUG_PUB.LOG_DEBUG(
654                 FND_LOG.LEVEL_STATEMENT
655                ,L_MODULE || ' Result of CREATE_PARTY_SITE_USE'
656                ,' New Party Site Use Id '|| NEW_IS_ID_LIST(I) ||
657                 ' result status ' || l_return_status ||
658                 ' x_msg_data ' || x_msg_data);
659           END IF; -- end of statement level debug
660 
661           IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
662             RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
663           ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
664             RAISE OKL_API.G_EXCEPTION_ERROR;
665           END IF;
666         END IF;
667       ELSE
668         NEW_IS_ID_LIST(I) := NULL;
669       END IF;
670     END LOOP;
671 
672     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
673 
674     IF l_profile_val IS NOT NULL AND l_profile_val = 'Y'
675     THEN
676       FORALL I in 1..ASSET_ID_LIST.COUNT
677         INSERT INTO HZ_CUSTOMER_MERGE_LOG (
678           MERGE_LOG_ID,
679           TABLE_NAME,
680           MERGE_HEADER_ID,
681           PRIMARY_KEY_ID,
682           NUM_COL1_ORIG,
683           NUM_COL1_NEW,
684           ACTION_FLAG,
685           REQUEST_ID,
686           CREATED_BY,
687           CREATION_DATE,
688           LAST_UPDATE_LOGIN,
689           LAST_UPDATE_DATE,
690           LAST_UPDATED_BY
691         )VALUES(
692           HZ_CUSTOMER_MERGE_LOG_S.nextval,
693           'OKL_ASSETS_B',
694           p_merge_header_id,
695           ASSET_ID_LIST(I),
696           IS_ID_LIST(I),
697           NEW_IS_ID_LIST(I),
698           'U',
699           req_id,
700           hz_utility_pub.CREATED_BY,
701           hz_utility_pub.CREATION_DATE,
702           hz_utility_pub.LAST_UPDATE_LOGIN,
703           hz_utility_pub.LAST_UPDATE_DATE,
704           hz_utility_pub.LAST_UPDATED_BY);
705     END IF;
706 
707     FORALL I IN 1..ASSET_ID_LIST.COUNT
708       UPDATE OKL_ASSETS_B SET
709             INSTALL_SITE_ID = NEW_IS_ID_LIST(I)
710           , LAST_UPDATE_DATE = SYSDATE
711           , last_updated_by = arp_standard.profile.user_id
712           , last_update_login = arp_standard.profile.last_update_login
713       WHERE ID = ASSET_ID_LIST(I);
714 
715     x_return_status := l_return_status;
716 
717     OKL_API.END_ACTIVITY(
718         x_msg_count => x_msg_count
719        ,x_msg_data  => x_msg_data);
720   EXCEPTION
721     WHEN OKL_API.G_EXCEPTION_ERROR
722     THEN
723       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
724                            p_api_name  => l_api_name,
725                            p_pkg_name  => G_PKG_NAME,
726                            p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
727                            x_msg_count => x_msg_count,
728                            x_msg_data  => x_msg_data,
729                            p_api_type  => G_API_TYPE);
730 
731     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
732     THEN
733       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
734                            p_api_name  => l_api_name,
735                            p_pkg_name  => G_PKG_NAME,
736                            p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
737                            x_msg_count => x_msg_count,
738                            x_msg_data  => x_msg_data,
739                            p_api_type  => G_API_TYPE);
740 
741     WHEN OTHERS
742     THEN
743       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
744                            p_api_name  => l_api_name,
745                            p_pkg_name  => G_PKG_NAME,
746                            p_exc_name  => 'OTHERS',
747                            x_msg_count => x_msg_count,
748                            x_msg_data  => x_msg_data,
749                            p_api_type  => G_API_TYPE);
750   END UPDATE_ASSET_LOCATION;
751 
752   ---------------------------------------------------------------------------
753   -- Start of comments
754   --
755   -- Function Name	: OKL_INSURANCE_PARTY_MERGE
756   -- Description	: To merge Insurance Provider
757   -- Business Rules	:
758   -- Parameters		:
759   -- Version		: 1.0
760   -- End of Comments
761   ---------------------------------------------------------------------------
762   PROCEDURE OKL_INSURANCE_PARTY_MERGE(
763            p_entity_name                IN   VARCHAR2,
764            p_from_id                    IN   NUMBER,
765            x_to_id                      OUT NOCOPY  NUMBER,
766            p_from_fk_id                 IN    NUMBER,
767            p_to_fk_id                   IN   NUMBER,
768            p_parent_entity_name         IN   VARCHAR2,
769            p_batch_id                   IN   NUMBER,
770            p_batch_party_id             IN   NUMBER,
771            x_return_status              OUT NOCOPY  VARCHAR2)
772   IS
773     l_merge_reason_code          VARCHAR2(30);
774     l_api_name                   VARCHAR2(30) := 'OKL_INSURANCE_PARTY_MERGE';
775     l_count                      NUMBER(10)   := 0;
776   BEGIN
777     fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_MERGE');
778     arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_MERGE()+');
779     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
780 
781     select merge_reason_code
782     into   l_merge_reason_code
783     from   hz_merge_batch
784     where  batch_id  = p_batch_id;
785 
786     if l_merge_reason_code = 'DUPLICATE' then
787       -- if reason code is duplicate then allow the party merge to happen without
788       -- any validations.
789       null;
790     else
791       -- if there are any validations to be done, include it in this section
792       null;
793     end if;
794 
795     -- If the parent has not changed (ie. Parent getting transferred) then nothing
796     -- needs to be done. Set Merged To Id is same as Merged From Id and return
797 
798     if p_from_fk_id = p_to_fk_id then
799       x_to_id := p_from_id;
800       return;
801     end if;
802 
803     -- If the parent has changed(ie. Parent is getting merged) then transfer the
804     -- dependent record to the new parent. Before transferring check if a similar
805     -- dependent record exists on the new parent. If a duplicate exists then do
806     -- not transfer and return the id of the duplicate record as the Merged To Id
807 
808     if p_from_fk_id <> p_to_fk_id then
809       begin
810         arp_message.set_name('AR','AR_UPDATING_TABLE');
811         arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
812 
813         UPDATE OKL_INS_POLICIES_ALL_B IPYB
814         SET IPYB.ISU_ID = p_to_fk_id
815           , IPYB.object_version_number = IPYB.object_version_number + 1
816           , IPYB.last_update_date      = SYSDATE
817           , IPYB.last_updated_by       = arp_standard.profile.user_id
818           , IPYB.last_update_login     = arp_standard.profile.last_update_login
819         WHERE IPYB.ISU_ID = p_from_fk_id
820           AND IPY_TYPE = 'THIRD_PARTY_POLICY';
821 
822         x_to_id := p_from_id;
823         l_count := sql%rowcount;
824         arp_message.set_name('AR','AR_ROWS_UPDATED');
825         arp_message.set_token('NUM_ROWS',to_char(l_count));
826 
827       exception
828         when others then
829           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
830           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
831             'OKL_INS_POLICIES for = '|| p_from_id));
832           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
833           x_return_status :=  FND_API.G_RET_STS_ERROR;
834       end;
835     end if;
836   END OKL_INSURANCE_PARTY_MERGE ;
837 
838   ---------------------------------------------------------------------------
839   -- Start of comments
840   --
841   -- Function Name	: OKL_INSURANCE_PARTY_SITE_MERGE
842   -- Description	:To merge Insurance Agency Site
843   -- Business Rules	:
844   -- Parameters		:
845   -- Version		: 1.0
846   -- End of Comments
847   ---------------------------------------------------------------------------
848   PROCEDURE OKL_INSURANCE_PARTY_SITE_MERGE (
849     p_entity_name                IN   VARCHAR2,
850     p_from_id                    IN   NUMBER,
851     x_to_id                      OUT NOCOPY NUMBER,
852     p_from_fk_id                 IN   NUMBER,
853     p_to_fk_id                   IN   NUMBER,
854     p_parent_entity_name         IN   VARCHAR2,
855     p_batch_id                   IN   NUMBER,
856     p_batch_party_id             IN   NUMBER,
857     x_return_status              OUT  NOCOPY VARCHAR2)
858   IS
859     l_merge_reason_code          VARCHAR2(30);
860     l_api_name                   VARCHAR2(30) := 'OKL_INSURANCE_PARTY_SITE_MERGE';
861     l_count                      NUMBER(10)   := 0;
862   BEGIN
863     fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_SITE_MERGE');
864     arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_PARTY_SITE_MERGE()+');
865     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
866 
867     select merge_reason_code
868     into   l_merge_reason_code
869     from   hz_merge_batch
870     where  batch_id  = p_batch_id;
871 
872     if l_merge_reason_code = 'DUPLICATE' then
873 	  -- if reason code is duplicate then allow the party merge to happen without
874 	  -- any validations.
875 	  null;
876     else
877 	  -- if there are any validations to be done, include it in this section
878 	  null;
879     end if;
880 
881     -- If the parent has not changed (ie. Parent getting transferred) then nothing
882     -- needs to be done. Set Merged To Id is same as Merged From Id and return
883 
884     if p_from_fk_id = p_to_fk_id then
885 	  x_to_id := p_from_id;
886       return;
887     end if;
888 
889     -- If the parent has changed(ie. Parent is getting merged) then transfer the
890     -- dependent record to the new parent. Before transferring check if a similar
891     -- dependent record exists on the new parent. If a duplicate exists then do
892     -- not transfer and return the id of the duplicate record as the Merged To Id
893 
894     if p_from_fk_id <> p_to_fk_id then
895       begin
896         arp_message.set_name('AR','AR_UPDATING_TABLE');
897         arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
898 
899         UPDATE OKL_INS_POLICIES_ALL_B IPYB
900         SET IPYB.AGENCY_SITE_ID = p_to_fk_id
901           , IPYB.object_version_number = IPYB.object_version_number + 1
902           , IPYB.last_update_date      = SYSDATE
903           , IPYB.last_updated_by       = arp_standard.profile.user_id
904           , IPYB.last_update_login     = arp_standard.profile.last_update_login
905         WHERE IPYB.AGENCY_SITE_ID = p_from_fk_id
906           AND IPY_TYPE = 'THIRD_PARTY_POLICY';
907 
908         l_count := sql%rowcount;
909         arp_message.set_name('AR','AR_ROWS_UPDATED');
910         arp_message.set_token('NUM_ROWS',to_char(l_count));
911 
912       exception
913         when others then
914           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
915           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
916             'OKL_INS_POLICIES for = '|| p_from_id));
917           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
918           x_return_status :=  FND_API.G_RET_STS_ERROR;
919       end;
920     end if;
921   END OKL_INSURANCE_PARTY_SITE_MERGE ;
922 
923   ---------------------------------------------------------------------------
924   -- Start of comments
925   --
926   -- Function Name	: OKL_INSURANCE_AGENT_MERGE
927   -- Description	:To merge Insurance Agent
928   -- Business Rules	:
929   -- Parameters		:
930   -- Version		: 1.0
931   -- End of Comments
932   ---------------------------------------------------------------------------
933   PROCEDURE OKL_INSURANCE_AGENT_MERGE (
934     p_entity_name                IN   VARCHAR2,
935     p_from_id                    IN   NUMBER,
936     x_to_id                      OUT NOCOPY  NUMBER,
937     p_from_fk_id                 IN   NUMBER,
938     p_to_fk_id                   IN   NUMBER,
939     p_parent_entity_name         IN   VARCHAR2,
940     p_batch_id                   IN   NUMBER,
941     p_batch_party_id             IN   NUMBER,
942     x_return_status              OUT NOCOPY  VARCHAR2)
943   IS
944     l_merge_reason_code          VARCHAR2(30);
945     l_api_name                   VARCHAR2(30) := 'OKL_INSURANCE_AGENT_MERGE';
946     l_count                      NUMBER(10)   := 0;
947   BEGIN
948     fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_MERGE');
949     arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_MERGE()+');
950     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
951 
952     select merge_reason_code
953     into   l_merge_reason_code
954     from   hz_merge_batch
955     where  batch_id  = p_batch_id;
956 
957     if l_merge_reason_code = 'DUPLICATE' then
958 	  -- if reason code is duplicate then allow the party merge to happen without
959 	  -- any validations.
960 	  null;
961     else
962 	  -- if there are any validations to be done, include it in this section
963 	  null;
964     end if;
965 
966     -- If the parent has not changed (ie. Parent getting transferred) then nothing
967     -- needs to be done. Set Merged To Id is same as Merged From Id and return
968 
969     if p_from_fk_id = p_to_fk_id then
970 	  x_to_id := p_from_id;
971       return;
972     end if;
973 
974     -- If the parent has changed(ie. Parent is getting merged) then transfer the
975     -- dependent record to the new parent. Before transferring check if a similar
976     -- dependent record exists on the new parent. If a duplicate exists then do
977     -- not transfer and return the id of the duplicate record as the Merged To Id
978 
979     if p_from_fk_id <> p_to_fk_id then
980       begin
981         arp_message.set_name('AR','AR_UPDATING_TABLE');
982         arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
983 
984         UPDATE OKL_INS_POLICIES_ALL_B IPYB
985         SET IPYB.INT_ID = p_to_fk_id
986           , IPYB.object_version_number = IPYB.object_version_number + 1
987           , IPYB.last_update_date      = SYSDATE
988           , IPYB.last_updated_by       = arp_standard.profile.user_id
989           , IPYB.last_update_login     = arp_standard.profile.last_update_login
990         WHERE IPYB.INT_ID = p_from_fk_id
991           AND IPY_TYPE = 'THIRD_PARTY_POLICY';
992 
993         l_count := sql%rowcount;
994         arp_message.set_name('AR','AR_ROWS_UPDATED');
995         arp_message.set_token('NUM_ROWS',to_char(l_count));
996 
997         exception
998           when others then
999             arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1000             fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1001               'OKL_INS_POLICIES for = '|| p_from_id));
1002             fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1003             x_return_status :=  FND_API.G_RET_STS_ERROR;
1004         end;
1005       end if;
1006   END OKL_INSURANCE_AGENT_MERGE ;
1007 
1008   ---------------------------------------------------------------------------
1009   -- Start of comments
1010   --
1011   -- Function Name	: OKL_INSURANCE_AGENT_SITE_MERGE
1012   -- Description	:To merge Insurance Agent Site
1013   -- Business Rules	:
1014   -- Parameters		:
1015   -- Version		: 1.0
1016   -- End of Comments
1017   ---------------------------------------------------------------------------
1018   PROCEDURE OKL_INSURANCE_AGENT_SITE_MERGE (
1019     p_entity_name                IN   VARCHAR2,
1020     p_from_id                    IN   NUMBER,
1021     x_to_id                      OUT  NOCOPY NUMBER,
1022     p_from_fk_id                 IN   NUMBER,
1023     p_to_fk_id                   IN   NUMBER,
1024     p_parent_entity_name         IN   VARCHAR2,
1025     p_batch_id                   IN   NUMBER,
1026     p_batch_party_id             IN   NUMBER,
1027     x_return_status              OUT NOCOPY VARCHAR2)
1028   IS
1029     l_merge_reason_code          VARCHAR2(30);
1030     l_api_name                   VARCHAR2(30) := 'OKL_INSURANCE_AGENT_SITE_MERGE';
1031     l_count                      NUMBER(10)   := 0;
1032   BEGIN
1033     fnd_file.put_line(fnd_file.log, 'OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_SITE_MERGE');
1034     arp_message.set_line('OKL_INSURANCE_POLICIES_PVT.OKL_INSURANCE_AGENT_SITE_MERGE()+');
1035     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1036 
1037     select merge_reason_code
1038     into   l_merge_reason_code
1039     from   hz_merge_batch
1040     where  batch_id  = p_batch_id;
1041 
1042     if l_merge_reason_code = 'DUPLICATE' then
1043 	  -- if reason code is duplicate then allow the party merge to happen without
1044 	  -- any validations.
1045 	  null;
1046     else
1047 	  -- if there are any validations to be done, include it in this section
1048 	  null;
1049     end if;
1050 
1051     -- If the parent has not changed (ie. Parent getting transferred) then nothing
1052     -- needs to be done. Set Merged To Id is same as Merged From Id and return
1053 
1054     if p_from_fk_id = p_to_fk_id then
1055       x_to_id := p_from_id;
1056       return;
1057     end if;
1058 
1059     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1060     -- dependent record to the new parent. Before transferring check if a similar
1061     -- dependent record exists on the new parent. If a duplicate exists then do
1062     -- not transfer and return the id of the duplicate record as the Merged To Id
1063     if p_from_fk_id <> p_to_fk_id then
1064       begin
1065         arp_message.set_name('AR','AR_UPDATING_TABLE');
1066         arp_message.set_token('TABLE_NAME','OKL_INS_POLICIES',FALSE);
1067 
1068         UPDATE OKL_INS_POLICIES_ALL_B IPYB
1069         SET IPYB.AGENT_SITE_ID = p_to_fk_id
1070           , IPYB.object_version_number = IPYB.object_version_number + 1
1071           , IPYB.last_update_date      = SYSDATE
1072           , IPYB.last_updated_by       = arp_standard.profile.user_id
1073           , IPYB.last_update_login     = arp_standard.profile.last_update_login
1074         WHERE IPYB.AGENT_SITE_ID = p_from_fk_id
1075           AND IPY_TYPE = 'THIRD_PARTY_POLICY';
1076 
1077         l_count := sql%rowcount;
1078         arp_message.set_name('AR','AR_ROWS_UPDATED');
1079         arp_message.set_token('NUM_ROWS',to_char(l_count));
1080 
1081       exception
1082         when others then
1083           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1084           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1085             'OKL_INS_POLICIES for = '|| p_from_id));
1086           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1087           x_return_status :=  FND_API.G_RET_STS_ERROR;
1088       end;
1089     end if;
1090   END OKL_INSURANCE_AGENT_SITE_MERGE ;
1091 
1092   ---------------------------------------------------
1093   ----------- API BODY-----------------------------
1094   ----------------------------------------------------
1095   ---- Party Merge
1096   PROCEDURE OKL_OPEN_INT_PARTY_MERGE (
1097     p_entity_name                IN   VARCHAR2,
1098     p_from_id                    IN   NUMBER,
1099     x_to_id                      OUT  NOCOPY NUMBER,
1100     p_from_fk_id                 IN   NUMBER,
1101     p_to_fk_id                   IN   NUMBER,
1102     p_parent_entity_name         IN   VARCHAR2,
1103     p_batch_id                   IN   NUMBER,
1104     p_batch_party_id             IN   NUMBER,
1105     x_return_status              OUT  NOCOPY VARCHAR2)
1106   IS
1107    l_merge_reason_code          VARCHAR2(30);
1108    l_api_name                   VARCHAR2(30) := 'OKL_OPEN_INT_PARTY_MERGE';
1109    l_count                      NUMBER(10)   := 0;
1110   BEGIN
1111    fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.OKL_OPEN_INT_PARTY_MERGE');
1112    arp_message.set_line('OKL_PARTY_MERGE_PUB.OKL_OPEN_INT_PARTY_MERGE()+');
1113    x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1114 
1115    select merge_reason_code
1116    into   l_merge_reason_code
1117    from   hz_merge_batch
1118    where  batch_id  = p_batch_id;
1119 
1120    if l_merge_reason_code = 'DUPLICATE' then
1121 	 -- if reason code is duplicate then allow the party merge to happen without
1122 	 -- any validations.
1123 	 null;
1124    else
1125 	 -- if there are any validations to be done, include it in this section
1126 	 null;
1127    end if;
1128 
1129    -- If the parent has not changed (ie. Parent getting transferred) then nothing
1130    -- needs to be done. Set Merged To Id is same as Merged From Id and return
1131    if p_from_fk_id = p_to_fk_id then
1132 	 x_to_id := p_from_id;
1133       return;
1134    end if;
1135 
1136    -- If the parent has changed(ie. Parent is getting merged) then transfer the
1137    -- dependent record to the new parent. Before transferring check if a similar
1138    -- dependent record exists on the new parent. If a duplicate exists then do
1139    -- not transfer and return the id of the duplicate record as the Merged To Id
1140    if p_from_fk_id <> p_to_fk_id then
1141       begin
1142         arp_message.set_name('AR','AR_UPDATING_TABLE');
1143         arp_message.set_token('TABLE_NAME','OKL_OPEN_INT_ALL',FALSE);
1144 
1145   UPDATE OKL_OPEN_INT_ALL opi
1146   SET opi.party_ID = p_to_fk_id
1147      ,opi.party_name = (select party_name from hz_parties where party_id = p_to_fk_id)
1148      ,opi.party_type = (select party_type from hz_parties where party_id = p_to_fk_id)
1149      ,opi.object_version_number = opi.object_version_number + 1
1150      ,opi.last_update_date      = SYSDATE
1151      ,opi.last_updated_by       = arp_standard.profile.user_id
1152      ,opi.last_update_login     = arp_standard.profile.last_update_login
1153   WHERE opi.party_ID = p_from_fk_id ;
1154 
1155   l_count := sql%rowcount;
1156   arp_message.set_name('AR','AR_ROWS_UPDATED');
1157   arp_message.set_token('NUM_ROWS',to_char(l_count));
1158 
1159   exception
1160     when others then
1161       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1162       fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1163 	       'OKL_OPEN_INT_ALL for = '|| p_from_id));
1164       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1165       x_return_status :=  FND_API.G_RET_STS_ERROR;
1166   end;
1167  end if;
1168 END OKL_OPEN_INT_PARTY_MERGE ;
1169 
1170   -- Start BAKUCHIB Bug#2892149
1171   -- Start of comments
1172   --
1173   -- Procedure Name       : party_merge_pac_id
1174   -- Description          : Procedure to merge Relocate Assets for PAC_ID
1175   -- Business Rules       :
1176   -- Parameters           :
1177   -- Version              : 1.0
1178   -- History              : BAKUCHIB 14-APR-03 Bug #2892149 Created
1179   -- End of comments
1180   PROCEDURE party_merge_pac_id (
1181     p_entity_name                IN   VARCHAR2,
1182     p_from_id                    IN   NUMBER,
1183     x_to_id                      OUT NOCOPY NUMBER,
1184     p_from_fk_id                 IN   NUMBER,
1185     p_to_fk_id                   IN   NUMBER,
1186     p_parent_entity_name         IN   VARCHAR2,
1187     p_batch_id                   IN   NUMBER,
1188     p_batch_party_id             IN   NUMBER,
1189     x_return_status              OUT  NOCOPY VARCHAR2)
1190     IS
1191     l_merge_reason_code          VARCHAR2(30);
1192     l_count                      NUMBER(10)   := 0;
1193     l_api_name                   VARCHAR2(30) := 'PARTY_MERGE_PAC_ID';
1194   BEGIN
1195     FND_FILE.put_line(fnd_file.log, 'OKL_AM_SHIPPING_INSTR_PVT.PARTY_MERGE_PAC_ID');
1196     ARP_MESSAGE.set_line('OKL_AM_SHIPPING_INSTR_PVT.PARTY_MERGE_PAC_ID()+');
1197     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1198 
1199     SELECT merge_reason_code
1200     INTO   l_merge_reason_code
1201     FROM   hz_merge_batch
1202     WHERE  batch_id  = p_batch_id;
1203 
1204     IF l_merge_reason_code = 'DUPLICATE' then
1205       -- if reason code is duplicate then allow the party merge to happen
1206       -- without any validations.
1207       NULL;
1208     ELSE
1209       -- if there are any validations to be done, include it in this section
1210       NULL;
1211     END IF;
1212 
1213     -- If the parent has not changed (ie. Parent getting transferred) then
1214     -- nothing needs to be done. Set Merged To Id is same as Merged From Id
1215     -- and return
1216     IF p_from_fk_id = p_to_fk_id then
1217       x_to_id := p_from_id;
1218       RETURN;
1219     END IF;
1220     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1221     -- dependent record to the new parent. Before transferring check if a
1222     -- similar dependent record exists on the new parent. If a duplicate
1223     -- exists then do not transfer and return the id of the duplicate record
1224     -- as the Merged To Id
1225     IF p_from_fk_id <> p_to_fk_id THEN
1226       BEGIN
1227         ARP_MESSAGE.set_name('AR','AR_UPDATING_TABLE');
1228         ARP_MESSAGE.set_token('TABLE_NAME','OKL_RELOCATE_ASTS_ALL_B',FALSE);
1229         UPDATE OKL_RELOCATE_ASTS_ALL_B RAB
1230         SET RAB.PAC_ID = p_to_fk_id,
1231         RAB.object_version_number = RAB.object_version_number + 1,
1232         RAB.last_update_date      = SYSDATE,
1233         RAB.last_updated_by       = arp_standard.profile.user_id,
1234         RAB.last_update_login     = arp_standard.profile.last_update_login
1235         WHERE RAB.PAC_ID = p_from_fk_id ;
1236         l_count := sql%rowcount;
1237         ARP_MESSAGE.set_name('AR','AR_ROWS_UPDATED');
1238         ARP_MESSAGE.set_token('NUM_ROWS',to_char(l_count));
1239       EXCEPTION
1240         WHEN OTHERS THEN
1241           ARP_MESSAGE.set_line(G_PKG_NAME|| '.' ||l_api_name||': '|| sqlerrm);
1242           FND_FILE.put_line(FND_FILE.log,
1243                            (G_PKG_NAME|| '.'||l_api_name ||'OKL_RELOCATE_ASTS_ALL_B for = '|| p_from_id));
1244           FND_FILE.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1245           x_return_status :=  FND_API.G_RET_STS_ERROR;
1246       END;
1247     END IF;
1248   END party_merge_pac_id ;
1249 
1250   -- Start of comments
1251   -- Procedure Name       : party_merge_ist_id
1252   -- Description          : Procedure to merge Relocate Assets for IST_ID
1253   -- Business Rules       :
1254   -- Parameters           :
1255   -- Version              : 1.0
1256   -- History              : BAKUCHIB 14-APR-03 Bug #2892149 Created
1257   -- End of comments
1258   PROCEDURE party_merge_ist_id (
1259     p_entity_name                IN   VARCHAR2,
1260     p_from_id                    IN   NUMBER,
1261     x_to_id                      OUT NOCOPY NUMBER,
1262     p_from_fk_id                 IN   NUMBER,
1263     p_to_fk_id                   IN   NUMBER,
1264     p_parent_entity_name         IN   VARCHAR2,
1265     p_batch_id                   IN   NUMBER,
1266     p_batch_party_id             IN   NUMBER,
1267     x_return_status              OUT NOCOPY VARCHAR2)
1268   IS
1269     l_merge_reason_code          VARCHAR2(30);
1270     l_count                      NUMBER(10)   := 0;
1271     l_api_name                   VARCHAR2(30) := 'PARTY_MERGE_IST_ID';
1272   BEGIN
1273     FND_FILE.put_line(fnd_file.log, 'OKL_AM_SHIPPING_INSTR_PVT.PARTY_MERGE_IST_ID');
1274     ARP_MESSAGE.set_line('OKL_AM_SHIPPING_INSTR_PVT.PARTY_MERGE_IST_ID()+');
1275     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1276 
1277     SELECT merge_reason_code
1278     INTO   l_merge_reason_code
1279     FROM   hz_merge_batch
1280     WHERE  batch_id  = p_batch_id;
1281 
1282     IF l_merge_reason_code = 'DUPLICATE' then
1283       -- if reason code is duplicate then allow the party merge to happen
1284       -- without any validations.
1285       NULL;
1286     ELSE
1287       -- if there are any validations to be done, include it in this section
1288       NULL;
1289     END IF;
1290 
1291     -- If the parent has not changed (ie. Parent getting transferred) then
1292     -- nothing needs to be done. Set Merged To Id is same as Merged From Id
1293     -- and return
1294 
1295     IF p_from_fk_id = p_to_fk_id then
1296       x_to_id := p_from_id;
1297       RETURN;
1298     END IF;
1299     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1300     -- dependent record to the new parent. Before transferring check if a
1301     -- similar dependent record exists on the new parent. If a duplicate
1302     -- exists then do not transfer and return the id of the duplicate record
1303     -- as the Merged To Id
1304     IF p_from_fk_id <> p_to_fk_id THEN
1305       BEGIN
1306         ARP_MESSAGE.set_name('AR','AR_UPDATING_TABLE');
1307         ARP_MESSAGE.set_token('TABLE_NAME','OKL_RELOCATE_ASTS_ALL_B',FALSE);
1308         UPDATE OKL_RELOCATE_ASTS_ALL_B RAB
1309         SET RAB.IST_ID = p_to_fk_id,
1310         RAB.object_version_number = RAB.object_version_number + 1,
1311         RAB.last_update_date      = SYSDATE,
1312         RAB.last_updated_by       = arp_standard.profile.user_id,
1313         RAB.last_update_login     = arp_standard.profile.last_update_login
1314         WHERE RAB.IST_ID = p_from_fk_id ;
1315         l_count := sql%rowcount;
1316         ARP_MESSAGE.set_name('AR','AR_ROWS_UPDATED');
1317         ARP_MESSAGE.set_token('NUM_ROWS',to_char(l_count));
1318       EXCEPTION
1319         WHEN OTHERS THEN
1320           ARP_MESSAGE.set_line(G_PKG_NAME|| '.' ||l_api_name||': '|| sqlerrm);
1321           FND_FILE.put_line(FND_FILE.log,
1322                            (G_PKG_NAME|| '.'||l_api_name ||'OKL_RELOCATE_ASTS_ALL_B for = '|| p_from_id));
1323           FND_FILE.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1324           x_return_status :=  FND_API.G_RET_STS_ERROR;
1325       END;
1326     END IF;
1327   END party_merge_ist_id ;
1328   -- End BAKUCHIB Bug#2892149
1329 
1330   --start merge code pjgomes
1331   PROCEDURE okl_cnr_party_merge (
1332     p_entity_name                IN   VARCHAR2,
1333     p_from_id                    IN   NUMBER,
1334     x_to_id                      OUT  NOCOPY NUMBER,
1335     p_from_fk_id                 IN   NUMBER,
1336     p_to_fk_id                   IN   NUMBER,
1337     p_parent_entity_name         IN   VARCHAR2,
1338     p_batch_id                   IN   NUMBER,
1339     p_batch_party_id             IN   NUMBER,
1340     x_return_status              OUT  NOCOPY VARCHAR2)
1341   IS
1342    l_api_name                   VARCHAR2(30) := 'okl_cnr_party_merge';
1343   BEGIN
1344     fnd_file.put_line(fnd_file.log, 'okl_cnr_pvt.okl_cnr_party_merge');
1345     arp_message.set_line('okl_cnr_pvt.okl_cnr_party_merge()+');
1346     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1347 
1348    --OKL_CNSLD_AR_HDRS_ALL_B stores reference to Customer Account Site Usage in column IBT_ID
1349    --Account Merge logic is moved to CNR_ACCOUNT_MERGE API which is called during
1350    --Account Merge process
1351 
1352   exception
1353     when others then
1354       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1355       fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1356         'OKL_CNR_PVT for = '|| p_from_id));
1357       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1358       x_return_status :=  FND_API.G_RET_STS_ERROR;
1359   END okl_cnr_party_merge;
1360 
1361   PROCEDURE OKL_XSI_PARTY_MERGE (
1362     p_entity_name                IN   VARCHAR2,
1363     p_from_id                    IN   NUMBER,
1364     x_to_id                      OUT  NOCOPY NUMBER,
1365     p_from_fk_id                 IN   NUMBER,
1366     p_to_fk_id                   IN   NUMBER,
1367     p_parent_entity_name         IN   VARCHAR2,
1368     p_batch_id                   IN   NUMBER,
1369     p_batch_party_id             IN   NUMBER,
1370     x_return_status              OUT  NOCOPY VARCHAR2)
1371   IS
1372    l_api_name                   VARCHAR2(30) := 'OKL_XSI_PARTY_MERGE';
1373   BEGIN
1374     fnd_file.put_line(fnd_file.log, 'Okl_Xsi_Pvt.OKL_XSI_PARTY_MERGE');
1375     arp_message.set_line('Okl_Xsi_Pvt.OKL_XSI_PARTY_MERGE()+');
1376     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1377 
1378    --OKL_EXT_SELL_INVS_ALL_B stores reference to Customer Account in column CUSTOMER_ID
1379    --Account Merge logic is moved to XSI_ACCOUNT_MERGE API which is called during
1380    --Account Merge process
1381 
1382   exception
1383     when others then
1384       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1385       fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1386         'OKL_XSI_PARTY_MERGE for = '|| p_from_id));
1387       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1388       x_return_status :=  FND_API.G_RET_STS_ERROR;
1389   END OKL_XSI_PARTY_MERGE ;
1390 
1391   PROCEDURE OKL_TAI_PARTY_MERGE (
1392     p_entity_name                IN   VARCHAR2,
1393     p_from_id                    IN   NUMBER,
1394     x_to_id                      OUT  NOCOPY NUMBER,
1395     p_from_fk_id                 IN   NUMBER,
1396     p_to_fk_id                   IN   NUMBER,
1397     p_parent_entity_name         IN   VARCHAR2,
1398     p_batch_id                   IN   NUMBER,
1399     p_batch_party_id             IN   NUMBER,
1400     x_return_status              OUT  NOCOPY VARCHAR2)
1401   IS
1402    l_api_name                   VARCHAR2(30) := 'OKL_TAI_PARTY_MERGE';
1403   BEGIN
1404    fnd_file.put_line(fnd_file.log, 'Okl_Tai_Pvt.OKL_TAI_PARTY_MERGE');
1405    arp_message.set_line('Okl_Tai_Pvt.OKL_TAI_PARTY_MERGE()+');
1406    x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1407 
1408    --OKL_TRX_AR_INVOICES_B stores reference to Customer Account Site Use in column IBT_ID
1409    --Account Merge logic is moved to TAI_ACCOUNT_MERGE API which is called during
1410    --Account Merge process
1411 
1412   exception
1413     when others then
1414       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1415       fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1416         'OKL_TAI_PARTY_MERGE for = '|| p_from_id));
1417       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1418       x_return_status :=  FND_API.G_RET_STS_ERROR;
1419   END OKL_TAI_PARTY_MERGE;
1420 
1421   --start merge code pjgomes
1422   --procedure for install at site  merge routine for party merge
1423   -- impacted entity :OKL_TXL_ITM_INSTS
1424   Procedure OKL_INSTALL_SITE_MERGE
1425     (p_entity_name                IN   VARCHAR2,
1426      p_from_id                    IN   NUMBER,
1427      x_to_id                      OUT NOCOPY  NUMBER,
1428      p_from_fk_id                 IN   NUMBER,
1429      p_to_fk_id                   IN   NUMBER,
1430      p_parent_entity_name         IN   VARCHAR2,
1431      p_batch_id                   IN   NUMBER,
1432      p_batch_party_id             IN   NUMBER,
1433      x_return_status              OUT NOCOPY  VARCHAR2)
1434   IS
1435     l_merge_reason_code          VARCHAR2(30);
1436     l_api_name                   VARCHAR2(30) := 'OKL_INSTALL_SITE_MERGE';
1437     l_count                      NUMBER(10)   := 0;
1438   BEGIN
1439     fnd_file.put_line(fnd_file.log, 'OKL_LLA_UTIL_PVT.INSTALL_AT_SITE_MERGE');
1440     arp_message.set_line('OKL_LLA_UTIL_PVT.INSTALL_AT_SITE_MERGE()+');
1441     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1442 
1443     select merge_reason_code
1444     into   l_merge_reason_code
1445     from   hz_merge_batch
1446     where  batch_id  = p_batch_id;
1447 
1448     if l_merge_reason_code = 'DUPLICATE' then
1449 	 -- if reason code is duplicate then allow the party merge to happen without
1450 	 -- any validations.
1451 	 null;
1452     else
1453 	 -- if there are any validations to be done, include it in this section
1454 	 null;
1455     end if;
1456 
1457     -- If the parent has not changed (ie. Parent getting transferred) then nothing
1458     -- needs to be done. Set Merged To Id is same as Merged From Id and return
1459 
1460     if p_from_fk_id = p_to_fk_id then
1461 	 x_to_id := p_from_id;
1462       return;
1463     end if;
1464 
1465     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1466     -- dependent record to the new parent. Before transferring check if a similar
1467     -- dependent record exists on the new parent. If a duplicate exists then do
1468     -- not transfer and return the id of the duplicate record as the Merged To Id
1469     if p_from_fk_id <> p_to_fk_id then
1470       begin
1471         arp_message.set_name('AR','AR_UPDATING_TABLE');
1472         arp_message.set_token('TABLE_NAME','OKL_TXL_ITM_INSTS',FALSE);
1473 
1474         UPDATE okl_txl_itm_insts iti
1475         SET iti.object_id1_old = p_to_fk_id
1476           , iti.object_version_number = iti.object_version_number + 1
1477           , iti.last_update_date      = SYSDATE
1478           , iti.last_updated_by       = arp_standard.profile.user_id
1479           , iti.last_update_login     = arp_standard.profile.last_update_login
1480         WHERE iti.object_id1_old      = p_from_fk_id
1481           AND JTOT_OBJECT_CODE_OLD = 'OKX_PARTSITE';
1482 
1483         l_count := sql%rowcount;
1484         arp_message.set_name('AR','AR_ROWS_UPDATED');
1485         arp_message.set_token('NUM_ROWS',to_char(l_count));
1486       exception
1487         when others then
1488           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1489 	      fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1490 	       'OKL_INSTALL_SITE_MERGE for = '|| p_from_id));
1491           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1492           x_return_status :=  FND_API.G_RET_STS_ERROR;
1493       end;
1494     end if;
1495   END OKL_INSTALL_SITE_MERGE ;
1496 
1497   ------------------------------------------------------------------------------
1498   -- Start of comments
1499   -- Procedure Name  : ITI_OBJECT_ID1_NEW
1500   -- Description     : Updating the table: OKL_TXL_ITM_INSTS for column: OBJECT_ID1_NEW
1501   -- Business Rules  : performing PARTY MERGE for table: OKL_TXL_ITM_INSTS and col: OBJECT_ID1_NEW
1502   -- Parameters      :
1503   -- Version         : 1.0
1504   -- End of comments
1505   ------------------------------------------------------------------------------
1506   PROCEDURE ITI_OBJECT_ID1_NEW(
1507 	p_entity_name          IN VARCHAR2,
1508 	p_from_id              IN NUMBER,
1509 	x_to_id                OUT NOCOPY NUMBER,
1510 	p_from_fk_id           IN NUMBER,
1511 	p_to_fk_id             IN NUMBER,
1512 	p_parent_entity_name   IN VARCHAR2,
1513 	p_batch_id             IN NUMBER,
1514 	p_batch_party_id       IN NUMBER,
1515 	x_return_status        OUT NOCOPY VARCHAR2 )
1516   IS
1517     l_merge_reason_code          VARCHAR2(30);
1518     l_api_name                   VARCHAR2(30) := 'ITI_OBJECT_ID1_NEW';
1519     l_count                      NUMBER(10)   := 0;
1520   BEGIN
1521     --Log statements for all input parameters and the procedure name
1522     fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.ITI_OBJECT_ID1_NEW');
1523     fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
1524     fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
1525     fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
1526     fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
1527     fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
1528     fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
1529     fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
1530     fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
1531 
1532     arp_message.set_line('OKL_PARTY_MERGE_PUB.ITI_OBJECT_ID1_NEW()+');
1533     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1534 
1535     select merge_reason_code into l_merge_reason_code
1536     from   hz_merge_batch
1537     where  batch_id  = p_batch_id;
1538 
1539     if l_merge_reason_code = 'DUPLICATE' then
1540       -- if reason code is duplicate then allow the party merge to happen without
1541       -- any validations.
1542       null;
1543     else
1544       -- if there are any validations to be done, include it in this section
1545       null;
1546     end if;
1547 
1548     -- If the parent has not changed (ie. Parent getting transferred) then nothing
1549     -- needs to be done. Set Merged To Id is same as Merged From Id and return
1550     if p_from_fk_id = p_to_fk_id
1551     then
1552       x_to_id := p_from_id;
1553       return;
1554     end if;
1555 
1556     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1557     -- dependent record to the new parent. Before transferring check if a similar
1558     -- dependent record exists on the new parent. If a duplicate exists then do
1559     -- not transfer and return the id of the duplicate record as the Merged To Id
1560     if p_from_fk_id <> p_to_fk_id
1561     then
1562       begin
1563         arp_message.set_name('AR','AR_UPDATING_TABLE');
1564         arp_message.set_token('TABLE_NAME','OKL_TXL_ITM_INSTS',FALSE);
1565 
1566         IF p_parent_entity_name = 'HZ_PARTY_SITE_USES'
1567         THEN
1568           --updating the OKL_TXL_ITM_INSTS table for column references PROSPECT_ID
1569           UPDATE OKL_TXL_ITM_INSTS TAB
1570             SET TAB.object_id1_new = p_to_fk_id
1571               , TAB.object_version_number = TAB.object_version_number + 1
1572               , TAB.last_update_date      = SYSDATE
1573               , TAB.last_updated_by       = arp_standard.profile.user_id
1574               , TAB.last_update_login     = arp_standard.profile.last_update_login
1575           WHERE TAB.object_id1_new = p_from_fk_id
1576           AND JTOT_OBJECT_CODE_NEW = 'OKX_PARTSITE';
1577         END IF;
1578         l_count := sql%rowcount;
1579         arp_message.set_name('AR','AR_ROWS_UPDATED');
1580         arp_message.set_token('NUM_ROWS',to_char(l_count));
1581       EXCEPTION
1582         when others
1583         then
1584           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1585           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1586                 'OKL_TXL_ITM_INSTS for = '|| p_from_id));
1587               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1588           x_return_status :=  FND_API.G_RET_STS_ERROR;
1589       END;
1590     END IF;
1591   END ITI_OBJECT_ID1_NEW ;
1592 
1593   ---- Party Merge
1594   PROCEDURE OKL_RCA_PARTY_MERGE (
1595     p_entity_name                IN   VARCHAR2,
1596     p_from_id                    IN   NUMBER,
1597     x_to_id                      OUT NOCOPY NUMBER,
1598     p_from_fk_id                 IN   NUMBER,
1599     p_to_fk_id                   IN   NUMBER,
1600     p_parent_entity_name         IN   VARCHAR2,
1601     p_batch_id                   IN   NUMBER,
1602     p_batch_party_id             IN   NUMBER,
1603     x_return_status              OUT NOCOPY VARCHAR2)
1604   IS
1605     l_api_name                   VARCHAR2(30) := 'OKL_RCA_PARTY_MERGE';
1606   BEGIN
1607     fnd_file.put_line(fnd_file.log, 'OKL_RCA_PVT.OKL_RCA_PARTY_MERGE');
1608     arp_message.set_line('OKL_RCA_PVT.OKL_RCA_PARTY_MERGE()+');
1609     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1610 
1611     --OKL_TXL_RCPT_APPS_ALL_B stores reference to Customer Account in column ILE_ID
1612     --Account Merge logic is moved to RCA_ACCOUNT_MERGE API which is called during
1613     --Account Merge process
1614 
1615   exception
1616     when others then
1617       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1618       fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1619 	       'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
1620       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1621       x_return_status :=  FND_API.G_RET_STS_ERROR;
1622   END OKL_RCA_PARTY_MERGE;
1623 
1624 ----------------------------------------------------------------------------------------------------------
1625 -- Start of comments
1626 -- Procedure Name  : ASS_INSTALL_SITE_ID
1627 -- Description     : Updating the table: OKL_ASSETS_B for column: INSTALL_SITE_ID
1628 -- Business Rules  : performing PARTY MERGE for table: OKL_ASSETS_B and col: INSTALL_SITE_ID
1629 -- Parameters      :
1630 -- Version         : 1.0
1631 -- End of comments
1632 -----------------------------------------------------------------------------------------------------------
1633   PROCEDURE ASS_INSTALL_SITE_ID (
1634 	p_entity_name          IN VARCHAR2,
1635 	p_from_id              IN NUMBER,
1636 	x_to_id                OUT NOCOPY NUMBER,
1637 	p_from_fk_id           IN NUMBER,
1638 	p_to_fk_id             IN NUMBER,
1639 	p_parent_entity_name   IN VARCHAR2,
1640 	p_batch_id             IN NUMBER,
1641 	p_batch_party_id       IN NUMBER,
1642 	x_return_status        OUT NOCOPY VARCHAR2 )
1643   IS
1644 
1645 	l_merge_reason_code          VARCHAR2(30);
1646 	l_api_name                   VARCHAR2(30) := 'ASS_INSTALL_SITE_ID';
1647 	l_count                      NUMBER(10)   := 0;
1648   BEGIN
1649 	--Log statements for all input parameters and the procedure name
1650 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.ASS_INSTALL_SITE_ID');
1651 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
1652 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
1653 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
1654 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
1655 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
1656 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
1657 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
1658 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
1659 
1660   arp_message.set_line('OKL_PARTY_MERGE_PUB.ASS_INSTALL_SITE_ID()+');
1661   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1662 
1663         select merge_reason_code
1664            into   l_merge_reason_code
1665         from   hz_merge_batch
1666         where  batch_id  = p_batch_id;
1667 
1668         if l_merge_reason_code = 'DUPLICATE' then
1669          -- if reason code is duplicate then allow the party merge to happen without
1670          -- any validations.
1671         null;
1672         else
1673         -- if there are any validations to be done, include it in this section
1674         null;
1675         end if;
1676 
1677         -- If the parent has not changed (ie. Parent getting transferred) then nothing
1678         -- needs to be done. Set Merged To Id is same as Merged From Id and return
1679 
1680         if p_from_fk_id = p_to_fk_id then
1681           x_to_id := p_from_id;
1682         return;
1683         end if;
1684 
1685         -- If the parent has changed(ie. Parent is getting merged) then transfer the
1686         -- dependent record to the new parent. Before transferring check if a similar
1687         -- dependent record exists on the new parent. If a duplicate exists then do
1688         -- not transfer and return the id of the duplicate record as the Merged To Id
1689 
1690         if p_from_fk_id <> p_to_fk_id then
1691           begin
1692              arp_message.set_name('AR','AR_UPDATING_TABLE');
1693              arp_message.set_token('TABLE_NAME','OKL_ASSETS_B',FALSE);
1694 
1695         --updating the OKL_ASSETS_B table for column references INSTALL_SITE_ID
1696 
1697         UPDATE OKL_ASSETS_B TAB
1698            SET TAB.INSTALL_SITE_ID = p_to_fk_id
1699            ,TAB.object_version_number = TAB.object_version_number + 1
1700            ,TAB.last_update_date      = SYSDATE
1701            ,TAB.last_updated_by       = arp_standard.profile.user_id
1702            ,TAB.last_update_login     = arp_standard.profile.last_update_login
1703         WHERE TAB.INSTALL_SITE_ID = p_from_fk_id ;
1704 
1705         l_count := sql%rowcount;
1706         arp_message.set_name('AR','AR_ROWS_UPDATED');
1707         arp_message.set_token('NUM_ROWS',to_char(l_count));
1708 
1709         exception
1710            when others then
1711               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1712               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1713                 'OKL_ASSETS_B for INSTALL_SITE_ID = '|| p_from_id));
1714               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1715               x_return_status :=  FND_API.G_RET_STS_ERROR;
1716            end;
1717         end if;
1718   END ASS_INSTALL_SITE_ID ;
1719 
1720 ----------------------------------------------------------------------------------------------------------
1721 -- Start of comments
1722 -- Procedure Name  : LAP_PARTY_MERGE
1723 -- Description     : Updating the table: OKL_LEASE_APPS_ALL_B for column:
1724 --                   PROSPECT_ID and PROSPECT_ADDRESS_ID
1725 -- Business Rules  : performing PARTY MERGE for table: OKL_LEASE_APPS_ALL_B
1726 --                   and col: PROSPECT_ID and PROSPECT_ADDRESS_ID
1727 -- Parameters      :
1728 -- Version         : 1.0
1729 -- End of comments
1730 -----------------------------------------------------------------------------------------------------------
1731   PROCEDURE LAP_PARTY_MERGE (
1732 	p_entity_name          IN VARCHAR2,
1733 	p_from_id              IN NUMBER,
1734 	x_to_id                OUT NOCOPY NUMBER,
1735 	p_from_fk_id           IN NUMBER,
1736 	p_to_fk_id             IN NUMBER,
1737 	p_parent_entity_name   IN VARCHAR2,
1738 	p_batch_id             IN NUMBER,
1739 	p_batch_party_id       IN NUMBER,
1740 	x_return_status        OUT NOCOPY VARCHAR2 )
1741   IS
1742 	l_merge_reason_code          VARCHAR2(30);
1743 	l_api_name                   VARCHAR2(30) := 'LAP_PARTY_MERGE';
1744 	l_count                      NUMBER(10)   := 0;
1745   BEGIN
1746     --Log statements for all input parameters and the procedure name
1747 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.LAP_PARTY_MERGE');
1748 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
1749 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
1750 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
1751 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
1752 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
1753 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
1754 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
1755 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
1756 
1757     arp_message.set_line('OKL_PARTY_MERGE_PUB.LAP_PROSPECT_ID()+');
1758 
1759     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1760 
1761     select merge_reason_code into l_merge_reason_code
1762     from   hz_merge_batch
1763     where  batch_id  = p_batch_id;
1764 
1765     if l_merge_reason_code = 'DUPLICATE' then
1766       -- if reason code is duplicate then allow the party merge to happen without
1767       -- any validations.
1768       null;
1769     else
1770       -- if there are any validations to be done, include it in this section
1771       null;
1772     end if;
1773 
1774     -- If the parent has not changed (ie. Parent getting transferred) then nothing
1775     -- needs to be done. Set Merged To Id is same as Merged From Id and return
1776 
1777     if p_from_fk_id = p_to_fk_id
1778     then
1779       x_to_id := p_from_id;
1780       return;
1781     end if;
1782 
1783     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1784     -- dependent record to the new parent. Before transferring check if a similar
1785     -- dependent record exists on the new parent. If a duplicate exists then do
1786     -- not transfer and return the id of the duplicate record as the Merged To Id
1787     if p_from_fk_id <> p_to_fk_id
1788     then
1789       begin
1790         arp_message.set_name('AR','AR_UPDATING_TABLE');
1791         arp_message.set_token('TABLE_NAME','OKL_LEASE_APPS_ALL_B',FALSE);
1792 
1793         IF p_parent_entity_name = 'HZ_PARTIES'
1794         THEN
1795           --updating the OKL_LEASE_APPS_ALL_B table for column references PROSPECT_ID
1796           UPDATE OKL_LEASE_APPS_ALL_B TAB
1797             SET TAB.PROSPECT_ID = p_to_fk_id
1798               , TAB.object_version_number = TAB.object_version_number + 1
1799               , TAB.last_update_date      = SYSDATE
1800               , TAB.last_updated_by       = arp_standard.profile.user_id
1801               , TAB.last_update_login     = arp_standard.profile.last_update_login
1802           WHERE TAB.PROSPECT_ID = p_from_fk_id;
1803         ELSIF p_parent_entity_name = 'HZ_PARTY_SITES'
1804         THEN
1805           --updating the OKL_LEASE_APPS_ALL_B table for column references PROSPECT_ADDRESS_ID
1806           UPDATE OKL_LEASE_APPS_ALL_B TAB
1807             SET TAB.PROSPECT_ADDRESS_ID = p_to_fk_id
1808               , TAB.object_version_number = TAB.object_version_number + 1
1809               , TAB.last_update_date      = SYSDATE
1810               , TAB.last_updated_by       = arp_standard.profile.user_id
1811               , TAB.last_update_login     = arp_standard.profile.last_update_login
1812           WHERE TAB.PROSPECT_ADDRESS_ID = p_from_fk_id ;
1813         END IF;
1814         l_count := sql%rowcount;
1815         arp_message.set_name('AR','AR_ROWS_UPDATED');
1816         arp_message.set_token('NUM_ROWS',to_char(l_count));
1817       EXCEPTION
1818         when others
1819         then
1820           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1821           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1822                 'OKL_LEASE_APPS_ALL_B for = '|| p_from_id));
1823               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1824           x_return_status :=  FND_API.G_RET_STS_ERROR;
1825       END;
1826     END IF;
1827   END LAP_PARTY_MERGE ;
1828 
1829 ----------------------------------------------------------------------------------------------------------
1830 -- Start of comments
1831 -- Procedure Name  : LOP_PARTY_MERGE
1832 -- Description     : Updating the table: OKL_LEASE_OPPS_ALL_B for column:
1833 --                   PROSPECT_ID, PROSPECT_ADDRESS_ID, INSTALL_SITE_ID and USAGE_LOCATION_ID
1834 -- Business Rules  : performing PARTY MERGE for table: OKL_LEASE_OPPS_ALL_B
1835 --                   and col: PROSPECT_ID, PROSPECT_ADDRESS_ID, INSTALL_SITE_ID and USAGE_LOCATION_ID
1836 -- Parameters      :
1837 -- Version         : 1.0
1838 -- End of comments
1839 -----------------------------------------------------------------------------------------------------------
1840   PROCEDURE LOP_PARTY_MERGE (
1841 	p_entity_name          IN VARCHAR2,
1842 	p_from_id              IN NUMBER,
1843 	x_to_id                OUT NOCOPY NUMBER,
1844 	p_from_fk_id           IN NUMBER,
1845 	p_to_fk_id             IN NUMBER,
1846 	p_parent_entity_name   IN VARCHAR2,
1847 	p_batch_id             IN NUMBER,
1848 	p_batch_party_id       IN NUMBER,
1849 	x_return_status        OUT NOCOPY VARCHAR2 )
1850   IS
1851 	l_merge_reason_code          VARCHAR2(30);
1852 	l_api_name                   VARCHAR2(30) := 'LOP_PARTY_MERGE';
1853 	l_count                      NUMBER(10)   := 0;
1854   BEGIN
1855 	--Log statements for all input parameters and the procedure name
1856 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.LOP_PARTY_MERGE');
1857 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
1858 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
1859 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
1860 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
1861 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
1862 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
1863 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
1864 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
1865 
1866   arp_message.set_line('OKL_PARTY_MERGE_PUB.LOP_PARTY_MERGE()+');
1867   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1868 
1869     select merge_reason_code into l_merge_reason_code
1870     from   hz_merge_batch
1871     where  batch_id  = p_batch_id;
1872 
1873     if l_merge_reason_code = 'DUPLICATE'
1874     then
1875       -- if reason code is duplicate then allow the party merge to happen without
1876       -- any validations.
1877       null;
1878     else
1879       -- if there are any validations to be done, include it in this section
1880       null;
1881     end if;
1882 
1883     -- If the parent has not changed (ie. Parent getting transferred) then nothing
1884     -- needs to be done. Set Merged To Id is same as Merged From Id and return
1885     if p_from_fk_id = p_to_fk_id
1886     then
1887       x_to_id := p_from_id;
1888       return;
1889     end if;
1890 
1891     -- If the parent has changed(ie. Parent is getting merged) then transfer the
1892     -- dependent record to the new parent. Before transferring check if a similar
1893     -- dependent record exists on the new parent. If a duplicate exists then do
1894     -- not transfer and return the id of the duplicate record as the Merged To Id
1895     if p_from_fk_id <> p_to_fk_id
1896     then
1897       begin
1898         arp_message.set_name('AR','AR_UPDATING_TABLE');
1899         arp_message.set_token('TABLE_NAME','OKL_LEASE_OPPS_ALL_B',FALSE);
1900 
1901         IF p_parent_entity_name = 'HZ_PARTIES'
1902         THEN
1903           --updating the OKL_LEASE_OPPS_ALL_B table for column references PROSPECT_ID
1904           UPDATE OKL_LEASE_OPPS_ALL_B TAB
1905             SET TAB.PROSPECT_ID = p_to_fk_id
1906               , TAB.object_version_number = TAB.object_version_number + 1
1907               , TAB.last_update_date      = SYSDATE
1908               , TAB.last_updated_by       = arp_standard.profile.user_id
1909               , TAB.last_update_login     = arp_standard.profile.last_update_login
1910           WHERE TAB.PROSPECT_ID = p_from_fk_id ;
1911         ELSIF p_parent_entity_name = 'HZ_PARTY_SITES'
1912         THEN
1913           --updating the OKL_LEASE_OPPS_ALL_B table for column references PROSPECT_ADDRESS_ID
1914           UPDATE OKL_LEASE_OPPS_ALL_B TAB
1915             SET TAB.PROSPECT_ADDRESS_ID = p_to_fk_id
1916               , TAB.object_version_number = TAB.object_version_number + 1
1917               , TAB.last_update_date      = SYSDATE
1918               , TAB.last_updated_by       = arp_standard.profile.user_id
1919               , TAB.last_update_login     = arp_standard.profile.last_update_login
1920           WHERE TAB.PROSPECT_ADDRESS_ID = p_from_fk_id ;
1921         ELSIF p_parent_entity_name = 'HZ_PARTY_SITE_USES'
1922         THEN
1923           --updating the OKL_LEASE_OPPS_ALL_B table for column references INSTALL_SITE_ID
1924           UPDATE OKL_LEASE_OPPS_ALL_B TAB
1925             SET TAB.INSTALL_SITE_ID = p_to_fk_id
1926               , TAB.object_version_number = TAB.object_version_number + 1
1927               , TAB.last_update_date      = SYSDATE
1928               , TAB.last_updated_by       = arp_standard.profile.user_id
1929               , TAB.last_update_login     = arp_standard.profile.last_update_login
1930           WHERE TAB.INSTALL_SITE_ID = p_from_fk_id ;
1931         END IF;
1932 
1933         l_count := sql%rowcount;
1934         arp_message.set_name('AR','AR_ROWS_UPDATED');
1935         arp_message.set_token('NUM_ROWS',to_char(l_count));
1936       exception
1937         when others
1938         then
1939           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
1940           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
1941                 'OKL_LEASE_OPPS_ALL_B for = '|| p_from_id));
1942               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
1943           x_return_status :=  FND_API.G_RET_STS_ERROR;
1944       END;
1945     END IF;
1946   END LOP_PARTY_MERGE ;
1947 
1948 ----------------------------------------------------------------------------------------------------------
1949 -- Start of comments
1950 -- Procedure Name  : LOP_USAGE_LOCATION
1951 -- Description     : Updating the table: OKL_LEASE_OPPS_ALL_B for column:
1952 --                   USAGE_LOCATION_ID
1953 -- Business Rules  : performing PARTY MERGE for table: OKL_LEASE_OPPS_ALL_B
1954 --                   and col: USAGE_LOCATION_ID
1955 -- Parameters      :
1956 -- Version         : 1.0
1957 -- End of comments
1958 -----------------------------------------------------------------------------------------------------------
1959   PROCEDURE LOP_USAGE_LOCATION (
1960 	p_entity_name          IN VARCHAR2,
1961 	p_from_id              IN NUMBER,
1962 	x_to_id                OUT NOCOPY NUMBER,
1963 	p_from_fk_id           IN NUMBER,
1964 	p_to_fk_id             IN NUMBER,
1965 	p_parent_entity_name   IN VARCHAR2,
1966 	p_batch_id             IN NUMBER,
1967 	p_batch_party_id       IN NUMBER,
1968 	x_return_status        OUT NOCOPY VARCHAR2 )
1969   IS
1970 	l_merge_reason_code          VARCHAR2(30);
1971 	l_api_name                   VARCHAR2(30) := 'LOP_USAGE_LOCATION';
1972 	l_count                      NUMBER(10)   := 0;
1973   BEGIN
1974 	--Log statements for all input parameters and the procedure name
1975 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.LOP_USAGE_LOCATION');
1976 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
1977 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
1978 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
1979 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
1980 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
1981 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
1982 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
1983 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
1984 
1985   arp_message.set_line('OKL_PARTY_MERGE_PUB.LOP_USAGE_LOCATION()+');
1986 	x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1987 
1988     select merge_reason_code into l_merge_reason_code
1989     from   hz_merge_batch
1990     where  batch_id  = p_batch_id;
1991 
1992     if l_merge_reason_code = 'DUPLICATE'
1993     then
1994       -- if reason code is duplicate then allow the party merge to happen without
1995       -- any validations.
1996       null;
1997     else
1998       -- if there are any validations to be done, include it in this section
1999       null;
2000     end if;
2001 
2002     -- If the parent has not changed (ie. Parent getting transferred) then nothing
2003     -- needs to be done. Set Merged To Id is same as Merged From Id and return
2004     if p_from_fk_id = p_to_fk_id
2005     then
2006       x_to_id := p_from_id;
2007       return;
2008     end if;
2009 
2010     -- If the parent has changed(ie. Parent is getting merged) then transfer the
2011     -- dependent record to the new parent. Before transferring check if a similar
2012     -- dependent record exists on the new parent. If a duplicate exists then do
2013     -- not transfer and return the id of the duplicate record as the Merged To Id
2014     if p_from_fk_id <> p_to_fk_id
2015     then
2016       begin
2017         arp_message.set_name('AR','AR_UPDATING_TABLE');
2018         arp_message.set_token('TABLE_NAME','OKL_LEASE_OPPS_ALL_B',FALSE);
2019 
2020         IF p_parent_entity_name = 'HZ_PARTY_SITE_USES'
2021         THEN
2022           --updating the OKL_LEASE_OPPS_ALL_B table for column references USAGE_LOCATION_ID
2023           UPDATE OKL_LEASE_OPPS_ALL_B TAB
2024             SET TAB.USAGE_LOCATION_ID = p_to_fk_id
2025               , TAB.object_version_number = TAB.object_version_number + 1
2026               , TAB.last_update_date      = SYSDATE
2027               , TAB.last_updated_by       = arp_standard.profile.user_id
2028               , TAB.last_update_login     = arp_standard.profile.last_update_login
2029           WHERE TAB.USAGE_LOCATION_ID = p_from_fk_id ;
2030         END IF;
2031 
2032         l_count := sql%rowcount;
2033         arp_message.set_name('AR','AR_ROWS_UPDATED');
2034         arp_message.set_token('NUM_ROWS',to_char(l_count));
2035       exception
2036         when others
2037         then
2038           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2039           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2040                 'OKL_LEASE_OPPS_ALL_B for = '|| p_from_id));
2041               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2042           x_return_status :=  FND_API.G_RET_STS_ERROR;
2043       END;
2044     END IF;
2045   END LOP_USAGE_LOCATION ;
2046 
2047   ------------------------------------------------------------------------------
2048   -- Start of comments
2049   -- Procedure Name  : TXS_BILL_TO_PARTY_MERGE
2050   -- Description     : Updating the table: OKL_TAX_SOURCES for column:
2051   --                   BILL_TO_PARTY_ID and BILL_TO_PARTY_SITE_ID
2052   -- Business Rules  : performing PARTY MERGE for table: OKL_TAX_SOURCES
2053   --                   and col: BILL_TO_PARTY_ID and BILL_TO_PARTY_SITE_ID
2054   -- Parameters      :
2055   -- Version         : 1.0
2056   -- End of comments
2057   ------------------------------------------------------------------------------
2058   PROCEDURE TXS_BILL_TO_PARTY_MERGE (
2059 	p_entity_name          IN VARCHAR2,
2060 	p_from_id              IN NUMBER,
2061 	x_to_id                OUT NOCOPY NUMBER,
2062 	p_from_fk_id           IN NUMBER,
2063 	p_to_fk_id             IN NUMBER,
2064 	p_parent_entity_name   IN VARCHAR2,
2065 	p_batch_id             IN NUMBER,
2066 	p_batch_party_id       IN NUMBER,
2067 	x_return_status        OUT NOCOPY VARCHAR2 )
2068   IS
2069 	l_merge_reason_code          VARCHAR2(30);
2070 	l_api_name                   VARCHAR2(30) := 'TXS_BILL_TO_PARTY_MERGE';
2071 	l_count                      NUMBER(10)   := 0;
2072   BEGIN
2073 	--Log statements for all input parameters and the procedure name
2074 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TXS_BILL_TO_PARTY_MERGE');
2075 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2076 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2077 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2078 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2079 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2080 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2081 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2082 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2083 
2084   arp_message.set_line('OKL_PARTY_MERGE_PUB.TXS_BILL_TO_PARTY_MERGE()+');
2085 	x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2086 
2087 	select merge_reason_code
2088     into   l_merge_reason_code
2089     from   hz_merge_batch
2090     where  batch_id  = p_batch_id;
2091 
2092     if l_merge_reason_code = 'DUPLICATE' then
2093       --if reason code is duplicate then allow the party merge to happen without
2094       --any validations.
2095       null;
2096     else
2097       --if there are any validations to be done, include it in this section
2098       null;
2099     end if;
2100 
2101     -- If the parent has not changed (ie. Parent getting transferred) then nothing
2102     -- needs to be done. Set Merged To Id is same as Merged From Id and return
2103     if p_from_fk_id = p_to_fk_id then
2104       x_to_id := p_from_id;
2105       return;
2106     end if;
2107 
2108     -- If the parent has changed(ie. Parent is getting merged) then transfer the
2109     -- dependent record to the new parent. Before transferring check if a similar
2110     -- dependent record exists on the new parent. If a duplicate exists then do
2111     -- not transfer and return the id of the duplicate record as the Merged To Id
2112     if p_from_fk_id <> p_to_fk_id then
2113       begin
2114         arp_message.set_name('AR','AR_UPDATING_TABLE');
2115         arp_message.set_token('TABLE_NAME','OKL_TAX_SOURCES',FALSE);
2116 
2117         IF p_parent_entity_name = 'HZ_PARTIES'
2118         THEN
2119           --updating the OKL_TAX_SOURCES table for column references BILL_TO_PARTY_ID
2120           UPDATE OKL_TAX_SOURCES TAB
2121             SET TAB.BILL_TO_PARTY_ID = p_to_fk_id
2122               , TAB.object_version_number = TAB.object_version_number + 1
2123               , TAB.last_update_date      = SYSDATE
2124               , TAB.last_updated_by       = arp_standard.profile.user_id
2125               , TAB.last_update_login     = arp_standard.profile.last_update_login
2126           WHERE TAB.BILL_TO_PARTY_ID = p_from_fk_id ;
2127         ELSIF p_parent_entity_name = 'HZ_PARTY_SITES'
2128         THEN
2129           --updating the OKL_TAX_SOURCES table for column references BILL_TO_PARTY_SITE_ID
2130           UPDATE OKL_TAX_SOURCES TAB
2131             SET TAB.BILL_TO_PARTY_SITE_ID = p_to_fk_id
2132               , TAB.object_version_number = TAB.object_version_number + 1
2133               , TAB.last_update_date      = SYSDATE
2134               , TAB.last_updated_by       = arp_standard.profile.user_id
2135               , TAB.last_update_login     = arp_standard.profile.last_update_login
2136           WHERE TAB.BILL_TO_PARTY_SITE_ID = p_from_fk_id ;
2137         END IF;
2138 
2139         l_count := sql%rowcount;
2140         arp_message.set_name('AR','AR_ROWS_UPDATED');
2141         arp_message.set_token('NUM_ROWS',to_char(l_count));
2142 
2143       exception
2144         when others then
2145           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2146           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2147             'OKL_TAX_SOURCES for = '|| p_from_id));
2148           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2149           x_return_status :=  FND_API.G_RET_STS_ERROR;
2150       end;
2151     end if;
2152   END TXS_BILL_TO_PARTY_MERGE ;
2153 
2154   ------------------------------------------------------------------------------
2155   -- Start of comments
2156   -- Procedure Name  : TXS_SHIP_TO_PARTY_MERGE
2157   -- Description     : Updating the table: OKL_TAX_SOURCES for column:
2158   --                   SHIP_TO_PARTY_ID and SHIP_TO_PARTY_SITE_ID
2159   -- Business Rules  : performing PARTY MERGE for table: OKL_TAX_SOURCES
2160   --                   and col: SHIP_TO_PARTY_ID and SHIP_TO_PARTY_SITE_ID
2161   -- Parameters      :
2162   -- Version         : 1.0
2163   -- End of comments
2164   ------------------------------------------------------------------------------
2165   PROCEDURE TXS_SHIP_TO_PARTY_MERGE (
2166 	p_entity_name          IN VARCHAR2,
2167 	p_from_id              IN NUMBER,
2168 	x_to_id                OUT NOCOPY NUMBER,
2169 	p_from_fk_id           IN NUMBER,
2170 	p_to_fk_id             IN NUMBER,
2171 	p_parent_entity_name   IN VARCHAR2,
2172 	p_batch_id             IN NUMBER,
2173 	p_batch_party_id       IN NUMBER,
2174 	x_return_status        OUT NOCOPY VARCHAR2 )
2175   IS
2176 	l_merge_reason_code          VARCHAR2(30);
2177 	l_api_name                   VARCHAR2(30) := 'TXS_SHIP_TO_PARTY_MERGE';
2178 	l_count                      NUMBER(10)   := 0;
2179   BEGIN
2180 	--Log statements for all input parameters and the procedure name
2181 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TXS_SHIP_TO_PARTY_MERGE');
2182 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2183 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2184 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2185 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2186 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2187 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2188 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2189 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2190 
2191     arp_message.set_line('OKL_PARTY_MERGE_PUB.TXS_SHIP_TO_PARTY_MERGE()+');
2192     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2193 
2194         select merge_reason_code
2195            into   l_merge_reason_code
2196         from   hz_merge_batch
2197         where  batch_id  = p_batch_id;
2198 
2199         if l_merge_reason_code = 'DUPLICATE' then
2200          -- if reason code is duplicate then allow the party merge to happen without
2201          -- any validations.
2202         null;
2203         else
2204         -- if there are any validations to be done, include it in this section
2205         null;
2206         end if;
2207 
2208         -- If the parent has not changed (ie. Parent getting transferred) then nothing
2209         -- needs to be done. Set Merged To Id is same as Merged From Id and return
2210 
2211         if p_from_fk_id = p_to_fk_id then
2212           x_to_id := p_from_id;
2213         return;
2214         end if;
2215 
2216         -- If the parent has changed(ie. Parent is getting merged) then transfer the
2217         -- dependent record to the new parent. Before transferring check if a similar
2218         -- dependent record exists on the new parent. If a duplicate exists then do
2219         -- not transfer and return the id of the duplicate record as the Merged To Id
2220 
2221     if p_from_fk_id <> p_to_fk_id then
2222       begin
2223         arp_message.set_name('AR','AR_UPDATING_TABLE');
2224         arp_message.set_token('TABLE_NAME','OKL_TAX_SOURCES',FALSE);
2225 
2226         IF p_parent_entity_name = 'HZ_PARTIES'
2227         THEN
2228           --updating the OKL_TAX_SOURCES table for column references SHIP_TO_PARTY_ID
2229           UPDATE OKL_TAX_SOURCES TAB
2230             SET TAB.SHIP_TO_PARTY_ID = p_to_fk_id
2231               , TAB.object_version_number = TAB.object_version_number + 1
2232               , TAB.last_update_date      = SYSDATE
2233               , TAB.last_updated_by       = arp_standard.profile.user_id
2234               , TAB.last_update_login     = arp_standard.profile.last_update_login
2235           WHERE TAB.SHIP_TO_PARTY_ID = p_from_fk_id ;
2236         ELSIF p_parent_entity_name = 'HZ_PARTY_SITES'
2237         THEN
2238           --updating the OKL_TAX_SOURCES table for column references SHIP_TO_PARTY_SITE_ID
2239           UPDATE OKL_TAX_SOURCES TAB
2240             SET TAB.SHIP_TO_PARTY_SITE_ID = p_to_fk_id
2241               , TAB.object_version_number = TAB.object_version_number + 1
2242               , TAB.last_update_date      = SYSDATE
2243               , TAB.last_updated_by       = arp_standard.profile.user_id
2244               , TAB.last_update_login     = arp_standard.profile.last_update_login
2245           WHERE TAB.SHIP_TO_PARTY_SITE_ID = p_from_fk_id ;
2246         END IF;
2247 
2248         l_count := sql%rowcount;
2249         arp_message.set_name('AR','AR_ROWS_UPDATED');
2250         arp_message.set_token('NUM_ROWS',to_char(l_count));
2251 
2252       exception
2253         when others then
2254           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2255           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2256                 'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2257           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2258           x_return_status :=  FND_API.G_RET_STS_ERROR;
2259       end;
2260     end if;
2261   END TXS_SHIP_TO_PARTY_MERGE ;
2262 
2263   ------------------------------------------------------------------------------
2264   -- Start of comments
2265   -- Procedure Name  : TXST_BILL_TO_PARTY_MERGE
2266   -- Description     : Updating the table: OKL_TAX_SOURCES_T for column:
2267   --                   BILL_TO_PARTY_ID and BILL_TO_PARTY_SITE_ID
2268   -- Business Rules  : performing PARTY MERGE for table: OKL_TAX_SOURCES_T
2269   --                   and col: BILL_TO_PARTY_ID and BILL_TO_PARTY_SITE_ID
2270   -- Parameters      :
2271   -- Version         : 1.0
2272   -- End of comments
2273   ------------------------------------------------------------------------------
2274   PROCEDURE TXST_BILL_TO_PARTY_MERGE(
2275 	p_entity_name          IN VARCHAR2,
2276 	p_from_id              IN NUMBER,
2277 	x_to_id                OUT NOCOPY NUMBER,
2278 	p_from_fk_id           IN NUMBER,
2279 	p_to_fk_id             IN NUMBER,
2280 	p_parent_entity_name   IN VARCHAR2,
2281 	p_batch_id             IN NUMBER,
2282 	p_batch_party_id       IN NUMBER,
2283 	x_return_status        OUT NOCOPY VARCHAR2 )
2284   IS
2285 
2286 	l_merge_reason_code          VARCHAR2(30);
2287 	l_api_name                   VARCHAR2(30) := 'TXST_BILL_TO_PARTY_MERGE';
2288 	l_count                      NUMBER(10)   := 0;
2289   BEGIN
2290 	--Log statements for all input parameters and the procedure name
2291 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TXST_BILL_TO_PARTY_MERGE');
2292 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2293 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2294 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2295 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2296 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2297 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2298 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2299 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2300 
2301     arp_message.set_line('OKL_PARTY_MERGE_PUB.TXST_BILL_TO_PARTY_MERGE()+');
2302     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2303 
2304     select merge_reason_code
2305       into   l_merge_reason_code
2306     from   hz_merge_batch
2307     where  batch_id  = p_batch_id;
2308 
2309     if l_merge_reason_code = 'DUPLICATE' then
2310          -- if reason code is duplicate then allow the party merge to happen without
2311          -- any validations.
2312         null;
2313     else
2314         -- if there are any validations to be done, include it in this section
2315         null;
2316     end if;
2317 
2318     -- If the parent has not changed (ie. Parent getting transferred) then nothing
2319     -- needs to be done. Set Merged To Id is same as Merged From Id and return
2320 
2321     if p_from_fk_id = p_to_fk_id then
2322       x_to_id := p_from_id;
2323       return;
2324     end if;
2325 
2326     -- If the parent has changed(ie. Parent is getting merged) then transfer the
2327     -- dependent record to the new parent. Before transferring check if a similar
2328     -- dependent record exists on the new parent. If a duplicate exists then do
2329     -- not transfer and return the id of the duplicate record as the Merged To Id
2330 
2331     if p_from_fk_id <> p_to_fk_id then
2332       begin
2333         arp_message.set_name('AR','AR_UPDATING_TABLE');
2334         arp_message.set_token('TABLE_NAME','OKL_TAX_SOURCES_T',FALSE);
2335 
2336         IF p_parent_entity_name = 'HZ_PARTIES'
2337         THEN
2338           --updating the OKL_TAX_SOURCES_T table for column references BILL_TO_PARTY_ID
2339           UPDATE OKL_TAX_SOURCES_T TAB
2340             SET TAB.BILL_TO_PARTY_ID = p_to_fk_id
2341               , TAB.object_version_number = TAB.object_version_number + 1
2342               , TAB.last_update_date      = SYSDATE
2343               , TAB.last_updated_by       = arp_standard.profile.user_id
2344               , TAB.last_update_login     = arp_standard.profile.last_update_login
2345           WHERE TAB.BILL_TO_PARTY_ID = p_from_fk_id ;
2346         ELSIF p_parent_entity_name = 'HZ_PARTY_SITES'
2347         THEN
2348           --updating the OKL_TAX_SOURCES_T table for column references BILL_TO_PARTY_SITE_ID
2349           UPDATE OKL_TAX_SOURCES_T TAB
2350             SET TAB.BILL_TO_PARTY_SITE_ID = p_to_fk_id
2351               , TAB.object_version_number = TAB.object_version_number + 1
2352               , TAB.last_update_date      = SYSDATE
2353               , TAB.last_updated_by       = arp_standard.profile.user_id
2354               , TAB.last_update_login     = arp_standard.profile.last_update_login
2355           WHERE TAB.BILL_TO_PARTY_SITE_ID = p_from_fk_id ;
2356         END IF;
2357 
2358         l_count := sql%rowcount;
2359         arp_message.set_name('AR','AR_ROWS_UPDATED');
2360         arp_message.set_token('NUM_ROWS',to_char(l_count));
2361 
2362       exception
2363         when others then
2364           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2365           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2366             'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2367           fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2368           x_return_status :=  FND_API.G_RET_STS_ERROR;
2369       end;
2370     end if;
2371   END TXST_BILL_TO_PARTY_MERGE ;
2372 
2373   ------------------------------------------------------------------------------
2374   -- Start of comments
2375   -- Procedure Name  : TXST_SHIP_TO_PARTY_MERGE
2376   -- Description     : Updating the table: OKL_TAX_SOURCES_T for column:
2377   --                   SHIP_TO_PARTY_ID and SHIP_TO_PARTY_SITE_ID
2378   -- Business Rules  : performing PARTY MERGE for table: OKL_TAX_SOURCES_T
2379   --                   and col: SHIP_TO_PARTY_ID and SHIP_TO_PARTY_SITE_ID
2380   -- Parameters      :
2381   -- Version         : 1.0
2382   -- End of comments
2383   ------------------------------------------------------------------------------
2384   PROCEDURE TXST_SHIP_TO_PARTY_MERGE (
2385 	p_entity_name          IN VARCHAR2,
2386 	p_from_id              IN NUMBER,
2387 	x_to_id                OUT NOCOPY NUMBER,
2388 	p_from_fk_id           IN NUMBER,
2389 	p_to_fk_id             IN NUMBER,
2390 	p_parent_entity_name   IN VARCHAR2,
2391 	p_batch_id             IN NUMBER,
2392 	p_batch_party_id       IN NUMBER,
2393 	x_return_status        OUT NOCOPY VARCHAR2 )
2394   IS
2395 	l_merge_reason_code          VARCHAR2(30);
2396 	l_api_name                   VARCHAR2(30) := 'TXST_SHIP_TO_PARTY_MERGE';
2397 	l_count                      NUMBER(10)   := 0;
2398   BEGIN
2399 	--Log statements for all input parameters and the procedure name
2400 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TXST_SHIP_TO_PARTY_MERGE');
2401 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2402 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2403 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2404 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2405 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2406 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2407 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2408 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2409 
2410     arp_message.set_line('OKL_PARTY_MERGE_PUB.TXST_SHIP_TO_PARTY_MERGE()+');
2411     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2412 
2413     select merge_reason_code
2414       into   l_merge_reason_code
2415     from   hz_merge_batch
2416     where  batch_id  = p_batch_id;
2417 
2418     if l_merge_reason_code = 'DUPLICATE' then
2419          -- if reason code is duplicate then allow the party merge to happen without
2420          -- any validations.
2421         null;
2422     else
2423         -- if there are any validations to be done, include it in this section
2424         null;
2425     end if;
2426 
2427     -- If the parent has not changed (ie. Parent getting transferred) then nothing
2428     -- needs to be done. Set Merged To Id is same as Merged From Id and return
2429 
2430     if p_from_fk_id = p_to_fk_id then
2431       x_to_id := p_from_id;
2432       return;
2433     end if;
2434 
2435     -- If the parent has changed(ie. Parent is getting merged) then transfer the
2436     -- dependent record to the new parent. Before transferring check if a similar
2437     -- dependent record exists on the new parent. If a duplicate exists then do
2438     -- not transfer and return the id of the duplicate record as the Merged To Id
2439 
2440     if p_from_fk_id <> p_to_fk_id then
2441       begin
2442         arp_message.set_name('AR','AR_UPDATING_TABLE');
2443         arp_message.set_token('TABLE_NAME','OKL_TAX_SOURCES_T',FALSE);
2444 
2445         IF p_parent_entity_name = 'HZ_PARTIES'
2446         THEN
2447           --updating the OKL_TAX_SOURCES_T table for column references SHIP_TO_PARTY_ID
2448           UPDATE OKL_TAX_SOURCES_T TAB
2449             SET TAB.SHIP_TO_PARTY_ID = p_to_fk_id
2450               , TAB.object_version_number = TAB.object_version_number + 1
2451               , TAB.last_update_date      = SYSDATE
2452               , TAB.last_updated_by       = arp_standard.profile.user_id
2453               , TAB.last_update_login     = arp_standard.profile.last_update_login
2454           WHERE TAB.SHIP_TO_PARTY_ID = p_from_fk_id ;
2455         ELSIF p_parent_entity_name = 'HZ_PARTY_SITES'
2456         THEN
2457           --updating the OKL_TAX_SOURCES_T table for column references SHIP_TO_PARTY_SITE_ID
2458           UPDATE OKL_TAX_SOURCES_T TAB
2459             SET TAB.SHIP_TO_PARTY_SITE_ID = p_to_fk_id
2460               , TAB.object_version_number = TAB.object_version_number + 1
2461               , TAB.last_update_date      = SYSDATE
2462               , TAB.last_updated_by       = arp_standard.profile.user_id
2463               , TAB.last_update_login     = arp_standard.profile.last_update_login
2464           WHERE TAB.SHIP_TO_PARTY_SITE_ID = p_from_fk_id;
2465         END IF;
2466 
2467         l_count := sql%rowcount;
2468         arp_message.set_name('AR','AR_ROWS_UPDATED');
2469         arp_message.set_token('NUM_ROWS',to_char(l_count));
2470 
2471         exception
2472            when others then
2473               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2474               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2475                 'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2476               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2477               x_return_status :=  FND_API.G_RET_STS_ERROR;
2478            end;
2479         end if;
2480   END TXST_SHIP_TO_PARTY_MERGE ;
2481 
2482 ----------------------------------------------------------------------------------------------------------
2483 -- Start of comments
2484 
2485 -- Procedure Name  : TCN_PARTY_REL_ID2_NEW
2486 -- Description     : Updating the table: OKL_TRX_CONTRACTS_ALL for column: PARTY_REL_ID2_NEW
2487 -- Business Rules  : performing PARTY MERGE for table: OKL_TRX_CONTRACTS_ALL and col: PARTY_REL_ID2_NEW
2488 -- Parameters      :
2489 -- Version         : 1.0
2490 -- End of comments
2491 -----------------------------------------------------------------------------------------------------------
2492   PROCEDURE TCN_PARTY_REL_ID2_NEW (
2493 	p_entity_name          IN VARCHAR2,
2494 	p_from_id              IN NUMBER,
2495 	x_to_id                OUT NOCOPY NUMBER,
2496 	p_from_fk_id           IN NUMBER,
2497 	p_to_fk_id             IN NUMBER,
2498 	p_parent_entity_name   IN VARCHAR2,
2499 	p_batch_id             IN NUMBER,
2500 	p_batch_party_id       IN NUMBER,
2501 	x_return_status        OUT NOCOPY VARCHAR2 )
2502   IS
2503 
2504 	l_merge_reason_code          VARCHAR2(30);
2505 	l_api_name                   VARCHAR2(30) := 'TCN_PARTY_REL_ID2_NEW';
2506 	l_count                      NUMBER(10)   := 0;
2507   BEGIN
2508 	--Log statements for all input parameters and the procedure name
2509 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID2_NEW');
2510 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2511 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2512 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2513 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2514 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2515 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2516 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2517 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2518 
2519   arp_message.set_line('OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID2_NEW()+');
2520   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2521 
2522         select merge_reason_code
2523            into   l_merge_reason_code
2524         from   hz_merge_batch
2525         where  batch_id  = p_batch_id;
2526 
2527         if l_merge_reason_code = 'DUPLICATE' then
2528          -- if reason code is duplicate then allow the party merge to happen without
2529          -- any validations.
2530         null;
2531         else
2532         -- if there are any validations to be done, include it in this section
2533         null;
2534         end if;
2535 
2536         -- If the parent has not changed (ie. Parent getting transferred) then nothing
2537         -- needs to be done. Set Merged To Id is same as Merged From Id and return
2538 
2539         if p_from_fk_id = p_to_fk_id then
2540           x_to_id := p_from_id;
2541         return;
2542         end if;
2543 
2544         -- If the parent has changed(ie. Parent is getting merged) then transfer the
2545         -- dependent record to the new parent. Before transferring check if a similar
2546         -- dependent record exists on the new parent. If a duplicate exists then do
2547         -- not transfer and return the id of the duplicate record as the Merged To Id
2548 
2549         if p_from_fk_id <> p_to_fk_id then
2550           begin
2551              arp_message.set_name('AR','AR_UPDATING_TABLE');
2552              arp_message.set_token('TABLE_NAME','OKL_TRX_CONTRACTS_ALL',FALSE);
2553 
2554         --updating the OKL_TRX_CONTRACTS_ALL table for column references PARTY_REL_ID2_NEW
2555 
2556         UPDATE OKL_TRX_CONTRACTS_ALL TAB
2557            SET TAB.PARTY_REL_ID2_NEW = p_to_fk_id
2558            ,TAB.object_version_number = TAB.object_version_number + 1
2559            ,TAB.last_update_date      = SYSDATE
2560            ,TAB.last_updated_by       = arp_standard.profile.user_id
2561            ,TAB.last_update_login     = arp_standard.profile.last_update_login
2562         WHERE TAB.PARTY_REL_ID2_NEW = to_char(p_from_fk_id); -- MGAAP 7263041
2563 --rkuttiya added for 12.1.1 multi gaap project
2564         --AND   TAB.REPRESENTATION_TYPE = 'PRIMARY' ;
2565 --
2566 
2567         l_count := sql%rowcount;
2568         arp_message.set_name('AR','AR_ROWS_UPDATED');
2569         arp_message.set_token('NUM_ROWS',to_char(l_count));
2570 
2571         exception
2572            when others then
2573               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2574               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2575                 'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2576               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2577               x_return_status :=  FND_API.G_RET_STS_ERROR;
2578            end;
2579         end if;
2580   END TCN_PARTY_REL_ID2_NEW ;
2581 
2582 ----------------------------------------------------------------------------------------------------------
2583 -- Start of comments
2584 
2585 -- Procedure Name  : QPY_PARTY_OBJECT1_ID1
2586 -- Description     : Updating the table: OKL_QUOTE_PARTIES for column: PARTY_OBJECT1_ID1
2587 -- Business Rules  : performing PARTY MERGE for table: OKL_QUOTE_PARTIES and col: PARTY_OBJECT1_ID1
2588 -- Parameters      :
2589 -- Version         : 1.0
2590 -- End of comments
2591 -----------------------------------------------------------------------------------------------------------
2592   PROCEDURE QPY_PARTY_OBJECT1_ID1 (
2593 	p_entity_name          IN VARCHAR2,
2594 	p_from_id              IN NUMBER,
2595 	x_to_id                OUT NOCOPY NUMBER,
2596 	p_from_fk_id           IN NUMBER,
2597 	p_to_fk_id             IN NUMBER,
2598 	p_parent_entity_name   IN VARCHAR2,
2599 	p_batch_id             IN NUMBER,
2600 	p_batch_party_id       IN NUMBER,
2601 	x_return_status        OUT NOCOPY VARCHAR2 )
2602   IS
2603 
2604 	l_merge_reason_code          VARCHAR2(30);
2605 	l_api_name                   VARCHAR2(30) := 'QPY_PARTY_OBJECT1_ID1';
2606 	l_count                      NUMBER(10)   := 0;
2607   BEGIN
2608 	--Log statements for all input parameters and the procedure name
2609 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.QPY_PARTY_OBJECT1_ID1');
2610 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2611 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2612 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2613 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2614 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2615 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2616 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2617 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2618 
2619   arp_message.set_line('OKL_PARTY_MERGE_PUB.QPY_PARTY_OBJECT1_ID1()+');
2620   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2621 
2622         select merge_reason_code
2623            into   l_merge_reason_code
2624         from   hz_merge_batch
2625         where  batch_id  = p_batch_id;
2626 
2627         if l_merge_reason_code = 'DUPLICATE' then
2628          -- if reason code is duplicate then allow the party merge to happen without
2629          -- any validations.
2630         null;
2631         else
2632         -- if there are any validations to be done, include it in this section
2633         null;
2634         end if;
2635 
2636         -- If the parent has not changed (ie. Parent getting transferred) then nothing
2637         -- needs to be done. Set Merged To Id is same as Merged From Id and return
2638          if p_from_fk_id = p_to_fk_id then
2639           x_to_id := p_from_id;
2640         return;
2641         end if;
2642 
2643         -- If the parent has changed(ie. Parent is getting merged) then transfer the
2644         -- dependent record to the new parent. Before transferring check if a similar
2645         -- dependent record exists on the new parent. If a duplicate exists then do
2646         -- not transfer and return the id of the duplicate record as the Merged To Id
2647         if p_from_fk_id <> p_to_fk_id then
2648           begin
2649              arp_message.set_name('AR','AR_UPDATING_TABLE');
2650              arp_message.set_token('TABLE_NAME','OKL_QUOTE_PARTIES',FALSE);
2651 
2652         --updating the OKL_QUOTE_PARTIES table for column references PARTY_OBJECT1_ID1
2653 
2654         UPDATE OKL_QUOTE_PARTIES TAB
2655            SET TAB.PARTY_OBJECT1_ID1 = p_to_fk_id
2656            ,TAB.object_version_number = TAB.object_version_number + 1
2657            ,TAB.last_update_date      = SYSDATE
2658            ,TAB.last_updated_by       = arp_standard.profile.user_id
2659            ,TAB.last_update_login     = arp_standard.profile.last_update_login
2660         WHERE TAB.PARTY_OBJECT1_ID1 = to_char(p_from_fk_id)
2661         AND PARTY_JTOT_OBJECT1_CODE = 'OKX_PARTY';
2662 
2663         l_count := sql%rowcount;
2664         arp_message.set_name('AR','AR_ROWS_UPDATED');
2665         arp_message.set_token('NUM_ROWS',to_char(l_count));
2666 
2667         exception
2668            when others then
2669               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2670               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2671                 'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2672               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2673               x_return_status :=  FND_API.G_RET_STS_ERROR;
2674            end;
2675         end if;
2676   END QPY_PARTY_OBJECT1_ID1 ;
2677 
2678 ----------------------------------------------------------------------------------------------------------
2679 -- Start of comments
2680 
2681 -- Procedure Name  : QPY_CONTACT_OBJECT1_ID1
2682 -- Description     : Updating the table: OKL_QUOTE_PARTIES for column: CONTACT_OBJECT1_ID1
2683 -- Business Rules  : performing PARTY MERGE for table: OKL_QUOTE_PARTIES and col: CONTACT_OBJECT1_ID1
2684 -- Parameters      :
2685 -- Version         : 1.0
2686 -- End of comments
2687 -----------------------------------------------------------------------------------------------------------
2688   PROCEDURE QPY_CONTACT_OBJECT1_ID1 (
2689 	p_entity_name          IN VARCHAR2,
2690 	p_from_id              IN NUMBER,
2691 	x_to_id                OUT NOCOPY NUMBER,
2692 	p_from_fk_id           IN NUMBER,
2693 	p_to_fk_id             IN NUMBER,
2694 	p_parent_entity_name   IN VARCHAR2,
2695 	p_batch_id             IN NUMBER,
2696 	p_batch_party_id       IN NUMBER,
2697 	x_return_status        OUT NOCOPY VARCHAR2 )
2698   IS
2699 
2700 	l_merge_reason_code          VARCHAR2(30);
2701 	l_api_name                   VARCHAR2(30) := 'QPY_CONTACT_OBJECT1_ID1';
2702 	l_count                      NUMBER(10)   := 0;
2703   BEGIN
2704 	--Log statements for all input parameters and the procedure name
2705 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.QPY_CONTACT_OBJECT1_ID1');
2706 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2707 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2708 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2709 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2710 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2711 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2712 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2713 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2714 
2715   arp_message.set_line('OKL_PARTY_MERGE_PUB.QPY_CONTACT_OBJECT1_ID1()+');
2716   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2717 
2718         select merge_reason_code
2719            into   l_merge_reason_code
2720         from   hz_merge_batch
2721         where  batch_id  = p_batch_id;
2722 
2723         if l_merge_reason_code = 'DUPLICATE' then
2724          -- if reason code is duplicate then allow the party merge to happen without
2725          -- any validations.
2726         null;
2727         else
2728         -- if there are any validations to be done, include it in this section
2729         null;
2730         end if;
2731 
2732         -- If the parent has not changed (ie. Parent getting transferred) then nothing
2733         -- needs to be done. Set Merged To Id is same as Merged From Id and return
2734         if p_from_fk_id = p_to_fk_id then
2735           x_to_id := p_from_id;
2736         return;
2737         end if;
2738 
2739         -- If the parent has changed(ie. Parent is getting merged) then transfer the
2740         -- dependent record to the new parent. Before transferring check if a similar
2741         -- dependent record exists on the new parent. If a duplicate exists then do
2742         -- not transfer and return the id of the duplicate record as the Merged To Id
2743         if p_from_fk_id <> p_to_fk_id then
2744           begin
2745              arp_message.set_name('AR','AR_UPDATING_TABLE');
2746              arp_message.set_token('TABLE_NAME','OKL_QUOTE_PARTIES',FALSE);
2747 
2748         --updating the OKL_QUOTE_PARTIES table for column references CONTACT_OBJECT1_ID1
2749 
2750         UPDATE OKL_QUOTE_PARTIES TAB
2751            SET TAB.CONTACT_OBJECT1_ID1 = p_to_fk_id
2752            ,TAB.object_version_number = TAB.object_version_number + 1
2753            ,TAB.last_update_date      = SYSDATE
2754            ,TAB.last_updated_by       = arp_standard.profile.user_id
2755            ,TAB.last_update_login     = arp_standard.profile.last_update_login
2756         WHERE TAB.CONTACT_OBJECT1_ID1 = to_char(p_from_fk_id)
2757         AND CONTACT_JTOT_OBJECT1_CODE = 'OKX_PARTY';
2758 
2759         l_count := sql%rowcount;
2760         arp_message.set_name('AR','AR_ROWS_UPDATED');
2761         arp_message.set_token('NUM_ROWS',to_char(l_count));
2762 
2763         exception
2764            when others then
2765               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2766               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2767                 'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2768               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2769               x_return_status :=  FND_API.G_RET_STS_ERROR;
2770            end;
2771         end if;
2772   END QPY_CONTACT_OBJECT1_ID1 ;
2773 
2774 ----------------------------------------------------------------------------------------------------------
2775 -- Start of comments
2776 
2777 -- Procedure Name  : TIN_PARTY_OBJECT_ID1
2778 -- Description     : Updating the table: OKL_TERMNT_INTF_PTY for column: PARTY_OBJECT_ID1
2779 -- Business Rules  : performing PARTY MERGE for table: OKL_TERMNT_INTF_PTY and col: PARTY_OBJECT_ID1
2780 -- Parameters      :
2781 -- Version         : 1.0
2782 -- End of comments
2783 -----------------------------------------------------------------------------------------------------------
2784   PROCEDURE TIN_PARTY_OBJECT_ID1 (
2785 	p_entity_name          IN VARCHAR2,
2786 	p_from_id              IN NUMBER,
2787 	x_to_id                OUT NOCOPY NUMBER,
2788 	p_from_fk_id           IN NUMBER,
2789 	p_to_fk_id             IN NUMBER,
2790 	p_parent_entity_name   IN VARCHAR2,
2791 	p_batch_id             IN NUMBER,
2792 	p_batch_party_id       IN NUMBER,
2793 	x_return_status        OUT NOCOPY VARCHAR2 )
2794   IS
2795 
2796 	l_merge_reason_code          VARCHAR2(30);
2797 	l_api_name                   VARCHAR2(30) := 'TIN_PARTY_OBJECT_ID1';
2798 	l_count                      NUMBER(10)   := 0;
2799   BEGIN
2800 	--Log statements for all input parameters and the procedure name
2801 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TIN_PARTY_OBJECT_ID1');
2802 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2803 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2804 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2805 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2806 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2807 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2808 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2809 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2810 
2811   arp_message.set_line('OKL_PARTY_MERGE_PUB.TIN_PARTY_OBJECT_ID1()+');
2812   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
2813 
2814         select merge_reason_code
2815            into   l_merge_reason_code
2816         from   hz_merge_batch
2817         where  batch_id  = p_batch_id;
2818 
2819         if l_merge_reason_code = 'DUPLICATE' then
2820          -- if reason code is duplicate then allow the party merge to happen without
2821          -- any validations.
2822         null;
2823         else
2824         -- if there are any validations to be done, include it in this section
2825         null;
2826         end if;
2827 
2828         -- If the parent has not changed (ie. Parent getting transferred) then nothing
2829         -- needs to be done. Set Merged To Id is same as Merged From Id and return
2830          if p_from_fk_id = p_to_fk_id then
2831           x_to_id := p_from_id;
2832         return;
2833         end if;
2834 
2835         -- If the parent has changed(ie. Parent is getting merged) then transfer the
2836         -- dependent record to the new parent. Before transferring check if a similar
2837         -- dependent record exists on the new parent. If a duplicate exists then do
2838         -- not transfer and return the id of the duplicate record as the Merged To Id
2839         if p_from_fk_id <> p_to_fk_id then
2840           begin
2841              arp_message.set_name('AR','AR_UPDATING_TABLE');
2842              arp_message.set_token('TABLE_NAME','OKL_TERMNT_INTF_PTY',FALSE);
2843 
2844         --updating the OKL_TERMNT_INTF_PTY table for column references PARTY_OBJECT_ID1
2845 
2846         UPDATE OKL_TERMNT_INTF_PTY TAB
2847            SET TAB.PARTY_OBJECT_ID1 = p_to_fk_id
2848            ,TAB.last_update_date      = SYSDATE
2849            ,TAB.last_updated_by       = arp_standard.profile.user_id
2850            ,TAB.last_update_login     = arp_standard.profile.last_update_login
2851         WHERE TAB.PARTY_OBJECT_ID1 = to_char(p_from_fk_id)
2852         AND PARTY_OBJECT_CODE = 'OKX_PARTY';
2853 
2854         l_count := sql%rowcount;
2855         arp_message.set_name('AR','AR_ROWS_UPDATED');
2856         arp_message.set_token('NUM_ROWS',to_char(l_count));
2857 
2858         exception
2859            when others then
2860               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
2861               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
2862                 'OKL_TXL_RCPT_APPS_B for = '|| p_from_id));
2863               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
2864               x_return_status :=  FND_API.G_RET_STS_ERROR;
2865            end;
2866         end if;
2867   END TIN_PARTY_OBJECT_ID1 ;
2868 
2869   ----------------------------------------------------------------------------------------------------------
2870   -- Start of comments
2871   -- Procedure Name  : CPL_PARTY_MERGE
2872   -- Description     : Updating the table: OKC_K_PARTY_ROLES_B for column: OBJECT1_ID1
2873   -- Business Rules  : performing PARTY MERGE for table: OKC_K_PARTY_ROLES_B and col: OBJECT1_ID1
2874   --                   for the records created for Lease Management
2875   -- Parameters      :
2876   -- Version         : 1.0
2877   -- End of comments
2878   -----------------------------------------------------------------------------------------------------------
2879   PROCEDURE CPL_PARTY_MERGE (
2880 	p_entity_name          IN VARCHAR2,
2881 	p_from_id              IN NUMBER,
2882 	x_to_id                OUT NOCOPY NUMBER,
2883 	p_from_fk_id           IN NUMBER,
2884 	p_to_fk_id             IN NUMBER,
2885 	p_parent_entity_name   IN VARCHAR2,
2886 	p_batch_id             IN NUMBER,
2887 	p_batch_party_id       IN NUMBER,
2888 	x_return_status        OUT NOCOPY VARCHAR2)
2889   IS
2890     l_api_version   CONSTANT NUMBER       DEFAULT 1.0;
2891     p_init_msg_list          VARCHAR2(1)  DEFAULT FND_API.G_FALSE;
2892     p_msg_count              NUMBER;
2893     p_msg_data               VARCHAR2(1000);
2894     l_return_status          VARCHAR2(1);
2895     l_merge_reason_code      VARCHAR2(30);
2896     l_api_name               VARCHAR2(30) := 'CPL_PARTY_MERGE';
2897     l_count                  NUMBER;
2898     l_cplv_rec               OKC_CPL_PVT.cplv_rec_type;
2899     l_kplv_rec               OKL_KPL_PVT.kplv_rec_type;
2900 
2901     --start NISINHA Bug# 6655434 declaring variables for storing source and destination party names
2902     l_src_party_name hz_parties.party_name%type;
2903     l_des_party_name hz_parties.party_name%type;
2904 
2905     --This cursor is used to get the party name based on the party id.
2906     CURSOR c_get_party_name(p_party_id IN NUMBER) IS
2907     SELECT party_name FROM hz_parties WHERE party_id = p_party_id;
2908     -- end NISINHA Bug#6655434
2909 
2910     --This cursor fetches all those contracts, which have both source and destination
2911     --Parties as the parties to the contract at header or line level
2912     CURSOR chk_vendor_chr_csr (p_src_party_id NUMBER, p_des_party_id NUMBER)
2913     IS
2914       SELECT CHR.CONTRACT_NUMBER
2915            , CHR.ID
2916            , NULL CLE_ID
2917            , CHR.SCS_CODE
2918            , SC.MEANING SCS_MEANING
2919            , CPRS.RLE_CODE
2920            , RLE.MEANING RLE_MEANING
2921            , CPRS.ID CPRS_CPL_ID
2922            , CPRD.ID CPRD_CPL_ID
2923            , CPRS.OBJECT1_ID1 CPRS_OBJECT1_ID1
2924            , CPRD.OBJECT1_ID1 CPRD_OBJECT1_ID1
2925       FROM OKC_K_HEADERS_ALL_B CHR
2926          , OKC_K_PARTY_ROLES_B CPRS
2927          , OKC_K_PARTY_ROLES_B CPRD
2928          , OKC_SUBCLASSES_V SC
2929          , FND_LOOKUPS RLE
2930       WHERE CPRS.CHR_ID = CHR.ID
2931         AND CPRS.DNZ_CHR_ID = CPRD.DNZ_CHR_ID
2932         AND CPRS.CHR_ID = CPRD.CHR_ID
2933         AND CPRS.RLE_CODE = CPRD.RLE_CODE
2934         AND CPRS.OBJECT1_ID1 <> CPRD.OBJECT1_ID1
2935         AND CPRS.OBJECT1_ID1 = p_src_party_id
2936         AND CPRD.OBJECT1_ID1 = p_des_party_id
2937         AND CPRS.JTOT_OBJECT1_CODE = 'OKX_PARTY'
2938         AND CPRD.JTOT_OBJECT1_CODE = 'OKX_PARTY'
2939         AND CHR.SCS_CODE = SC.CODE
2940         AND SC.CLS_CODE = 'OKL'
2941         AND RLE.LOOKUP_TYPE = 'OKC_ROLE'
2942         AND RLE.LOOKUP_CODE = CPRS.RLE_CODE
2943         AND CPRS.CLE_ID IS NULL
2944         AND CPRD.CLE_ID IS NULL
2945 
2946       UNION
2947 
2948       SELECT CHR.CONTRACT_NUMBER
2949            , CHR.ID
2950            , CPRD.CLE_ID
2951            , CHR.SCS_CODE
2952            , SC.MEANING SCS_MEANING
2953            , CPRS.RLE_CODE
2954            , RLE.MEANING RLE_MEANING
2955            , CPRS.ID CPRS_CPL_ID
2956            , CPRD.ID CPRD_CPL_ID
2957            , CPRS.OBJECT1_ID1 CPRS_OBJECT1_ID1
2958            , CPRD.OBJECT1_ID1 CPRD_OBJECT1_ID1
2959       FROM OKC_K_HEADERS_ALL_B CHR
2960          , OKC_K_PARTY_ROLES_B CPRS
2961          , OKC_K_PARTY_ROLES_B CPRD
2962          , OKC_SUBCLASSES_V SC
2963          , FND_LOOKUPS RLE
2964       WHERE CPRS.DNZ_CHR_ID = CHR.ID
2965         AND CPRS.DNZ_CHR_ID = CPRD.DNZ_CHR_ID
2966         AND CPRS.OBJECT1_ID1 <> CPRD.OBJECT1_ID1
2967         AND CPRS.OBJECT1_ID1 = p_src_party_id
2968         AND CPRD.OBJECT1_ID1 = p_des_party_id
2969         AND CPRS.JTOT_OBJECT1_CODE = 'OKX_PARTY'
2970         AND CPRD.JTOT_OBJECT1_CODE = 'OKX_PARTY'
2971         AND CHR.SCS_CODE = SC.CODE
2972         AND SC.CLS_CODE = 'OKL'
2973         AND RLE.LOOKUP_TYPE = 'OKC_ROLE'
2974         AND RLE.LOOKUP_CODE = CPRS.RLE_CODE
2975         AND CPRS.CHR_ID IS NULL
2976         AND CPRD.CHR_ID IS NULL
2977       ORDER BY CONTRACT_NUMBER;
2978 
2979     chk_vendor_chr_rec chk_vendor_chr_csr%ROWTYPE;
2980   BEGIN
2981     l_count := 0;
2982     l_return_status := OKL_API.G_RET_STS_SUCCESS;
2983     l_debug_enabled := okl_debug_pub.check_log_enabled;
2984     is_debug_procedure_on := okl_debug_pub.check_log_on(l_module
2985                                                        ,fnd_log.level_procedure);
2986     --Log statements for all input parameters and the procedure name
2987 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.CPL_PARTY_MERGE');
2988 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
2989 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
2990 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
2991 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
2992 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
2993 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
2994 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
2995 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
2996 
2997     arp_message.set_line('OKL_PARTY_MERGE_PUB.CPL_PARTY_MERGE()+');
2998 
2999     IF (l_debug_enabled = 'Y' AND is_debug_procedure_on) THEN
3000         okl_debug_pub.log_debug(fnd_log.level_procedure
3001                                ,l_module
3002                                ,'start debug okl_vendormerge_grp.merge_vendor');
3003     END IF;  -- check for logging on STATEMENT level
3004     is_debug_statement_on := okl_debug_pub.check_log_on(l_module
3005                                                         ,fnd_log.level_statement);
3006     -- call START_ACTIVITY to create savepoint, check compatibility
3007     -- and initialize message list
3008     l_return_status := okl_api.start_activity(p_api_name      => l_api_name
3009                                              ,p_pkg_name      => G_PKG_NAME
3010                                              ,p_init_msg_list => p_init_msg_list
3011                                              ,p_api_version   => l_api_version
3012                                              ,l_api_version   => l_api_version
3013                                              ,p_api_type      => G_API_TYPE
3014                                              ,x_return_status => l_return_status);
3015     -- check if activity started successfully
3016 
3017     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
3018       RAISE okl_api.g_exception_unexpected_error;
3019     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
3020       RAISE okl_api.g_exception_error;
3021     END IF;
3022 
3023     select merge_reason_code into l_merge_reason_code
3024     from   hz_merge_batch
3025     where  batch_id  = p_batch_id;
3026 
3027     if l_merge_reason_code = 'DUPLICATE' then
3028       -- if reason code is duplicate then allow the party merge to happen without
3029       -- any validations.
3030       null;
3031     else
3032       -- if there are any validations to be done, include it in this section
3033       null;
3034     end if;
3035 
3036     -- If the parent has not changed (ie. Parent getting transferred) then nothing
3037     -- needs to be done. Set Merged To Id is same as Merged From Id and return
3038 
3039     if p_from_fk_id = p_to_fk_id
3040     then
3041       x_to_id := p_from_id;
3042       return;
3043     end if;
3044 
3045     -- If the parent has changed(ie. Parent is getting merged) then transfer the
3046     -- dependent record to the new parent. Before transferring check if a similar
3047     -- dependent record exists on the new parent. If a duplicate exists then do
3048     -- not transfer and return the id of the duplicate record as the Merged To Id
3049     if p_from_fk_id <> p_to_fk_id
3050     then
3051       arp_message.set_name('AR','AR_UPDATING_TABLE');
3052       arp_message.set_token('TABLE_NAME','OKC_K_PARTY_ROLES_B',FALSE);
3053 
3054       IF p_parent_entity_name = 'HZ_PARTIES'
3055       THEN
3056         --Check if the parties to be merged are part of same type of contract
3057         OPEN chk_vendor_chr_csr(p_from_fk_id, p_to_fk_id);
3058         LOOP
3059           FETCH chk_vendor_chr_csr INTO chk_vendor_chr_rec;
3060           EXIT WHEN chk_vendor_chr_csr%NOTFOUND;
3061           IF ((chk_vendor_chr_rec.RLE_CODE = 'INVESTOR'
3062               AND chk_vendor_chr_rec.SCS_CODE IN ('INVESTOR', 'PROGRAM'))
3063               OR (chk_vendor_chr_rec.RLE_CODE = 'PRIVATE_LABEL'
3064               AND chk_vendor_chr_rec.SCS_CODE = 'LEASE'))
3065           THEN
3066             --If both the parties to be merged are part of same object with given
3067             --party role then set the message and raise the error.
3068             --Error should be raised if Party Role is "Investor" and is part of
3069             --"Investor Agreement" or "Program Agreement". And, also if party role
3070             --is "Private Label" and is part of "Lease Contracts"
3071 
3072             --Set the Error
3073 	     --start NISINHA Bug#6655434
3074 	     --getting the source party name based on p_from_fk_id
3075 	     OPEN c_get_party_name(p_from_fk_id);
3076 	     FETCH c_get_party_name INTO l_src_party_name;
3077 	     CLOSE c_get_party_name;
3078 
3079 	     --getting the des party name based on p_to_fk_id
3080 	     OPEN c_get_party_name(p_to_fk_id);
3081 	     FETCH c_get_party_name INTO l_des_party_name;
3082 	     CLOSE c_get_party_name;
3083 
3084 	     -- set the error message to stop the proceeding of party merge
3085 	     OKL_API.SET_MESSAGE
3086 		(
3087 			p_app_name      => G_APP_NAME,
3088 			p_msg_name      => 'OKL_BLOCK_PARTYMERGE_MSG',
3089 			p_token1        => 'SOURCE',
3090 			p_token1_value  => l_src_party_name,
3091 			p_token2        => 'DESTINATION',
3092 			p_token2_value  =>  l_des_party_name,
3093 			p_token3        => 'RLE_CODE',
3094 			p_token3_value  => chk_vendor_chr_rec.RLE_MEANING,
3095 			p_token4        => 'SCS_CODE_MEANING',
3096 			p_token4_value  => chk_vendor_chr_rec.SCS_MEANING,
3097 			p_token5        => 'NAME',
3098 			p_token5_value  => chk_vendor_chr_rec.CONTRACT_NUMBER
3099 		);
3100 	     --end NISINHA Bug#6655434
3101 
3102             l_return_status := OKL_API.G_RET_STS_ERROR;
3103             RAISE OKL_API.G_EXCEPTION_ERROR;
3104           ELSIF (chk_vendor_chr_rec.RLE_CODE IN ('BROKER', 'DEALER', 'EXTERNAL_PARTY', 'GUARANTOR', 'MANUFACTURER')
3105                  OR (chk_vendor_chr_rec.RLE_CODE = 'INVESTOR' AND chk_vendor_chr_rec.SCS_CODE = 'OPERATING'))
3106           THEN
3107             --If there is no passthrough setup which uses both the vendors at line level
3108             --then remove the party role using source vendor for the given line.
3109             l_kplv_rec.id := chk_vendor_chr_rec.CPRS_CPL_ID;
3110             l_cplv_rec.id := chk_vendor_chr_rec.CPRS_CPL_ID;
3111 
3112             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3113             THEN
3114               OKL_DEBUG_PUB.LOG_DEBUG(
3115                   FND_LOG.LEVEL_PROCEDURE
3116                  ,L_MODULE
3117                  ,'begin debug call OKL_KPL_PVT.DELETE_ROW');
3118             END IF;
3119 
3120             --Remove the Party Role at the line level for the vendor getting merged
3121             --Call the following API to remove the record in OKL
3122             OKL_KPL_PVT.DELETE_ROW
3123                  (p_api_version      => l_api_version,
3124                   p_init_msg_list    => 'F',
3125                   x_return_status    => l_return_status,
3126                   x_msg_count        => p_msg_count,
3127                   x_msg_data         => p_msg_data,
3128                   p_kplv_rec         => l_kplv_rec);
3129 
3130             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3131             THEN
3132               OKL_DEBUG_PUB.LOG_DEBUG(
3133                   FND_LOG.LEVEL_PROCEDURE
3134                  ,L_MODULE
3135                  ,'end debug call OKL_KPL_PVT.DELETE_ROW');
3136             END IF;
3137 
3138             -- write to log
3139             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3140               OKL_DEBUG_PUB.LOG_DEBUG(
3141                   FND_LOG.LEVEL_STATEMENT
3142                  ,L_MODULE || ' Result of OKL_KPL_PVT.DELETE_ROW'
3143                  ,'l_return_status ' || l_return_status);
3144             END IF; -- end of statement level debug
3145 
3146             IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3147               RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3148             ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3149               RAISE OKL_API.G_EXCEPTION_ERROR;
3150             END IF;
3151 
3152             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3153             THEN
3154               OKL_DEBUG_PUB.LOG_DEBUG(
3155                   FND_LOG.LEVEL_PROCEDURE
3156                  ,L_MODULE
3157                  ,'begin debug call OKC_CONTRACT_PARTY_PVT.DELETE_K_PARTY_ROLE');
3158             END IF;
3159 
3160             --Remove the Party Role at the line level for the vendor getting merged
3161             --Call the following API to remove the record in OKC
3162             OKC_CONTRACT_PARTY_PVT.DELETE_K_PARTY_ROLE
3163                  (p_api_version      => l_api_version,
3164                   p_init_msg_list    => 'F',
3165                   x_return_status    => l_return_status,
3166                   x_msg_count        => p_msg_count,
3167                   x_msg_data         => p_msg_data,
3168                   p_cplv_rec         => l_cplv_rec);
3169 
3170             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3171             THEN
3172               OKL_DEBUG_PUB.LOG_DEBUG(
3173                   FND_LOG.LEVEL_PROCEDURE
3174                  ,L_MODULE
3175                  ,'end debug call OKC_CONTRACT_PARTY_PVT.DELETE_K_PARTY_ROLE');
3176             END IF;
3177 
3178             -- write to log
3179             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3180               OKL_DEBUG_PUB.LOG_DEBUG(
3181                   FND_LOG.LEVEL_STATEMENT
3182                  ,L_MODULE || ' Result of OKC_CONTRACT_PARTY_PVT.DELETE_K_PARTY_ROLE'
3183                  ,'l_return_status ' || l_return_status);
3184             END IF; -- end of statement level debug
3185 
3186             IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3187               RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3188             ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3189               RAISE OKL_API.G_EXCEPTION_ERROR;
3190             END IF;
3191           END IF;
3192         END LOOP;
3193         CLOSE chk_vendor_chr_csr;
3194       END IF;
3195     END IF;
3196 
3197     x_return_status := l_return_status;
3198     okl_api.end_activity(x_msg_count =>  p_msg_count
3199                         ,x_msg_data  => p_msg_data);
3200 
3201     IF (l_debug_enabled = 'Y' AND is_debug_procedure_on)
3202     THEN
3203       okl_debug_pub.log_debug(fnd_log.level_procedure
3204                              ,l_module
3205                              ,'end debug okl_vendormerge_grp.merge_vendor');
3206     END IF;
3207 
3208   EXCEPTION
3209     WHEN OKL_API.G_EXCEPTION_ERROR
3210     THEN
3211           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3212           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
3213                 'OKC_K_PARTY_ROLES_B for = '|| p_from_id));
3214               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3215       IF chk_vendor_chr_csr%ISOPEN
3216       THEN
3217         CLOSE chk_vendor_chr_csr;
3218       END IF;
3219 
3220       --start NISINHA Bug#6655434 closing the cursor in exception block
3221       IF c_get_party_name%ISOPEN
3222       THEN
3223         CLOSE c_get_party_name;
3224       END IF;
3225       --end NISINHA 6655434
3226 
3227       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3228                            p_api_name  => l_api_name,
3229                            p_pkg_name  => G_PKG_NAME,
3230                            p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
3231                            x_msg_count => p_msg_count,
3232                            x_msg_data  => p_msg_data,
3233                            p_api_type  => G_API_TYPE);
3234     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
3235     THEN
3236           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3237           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
3238                 'OKC_K_PARTY_ROLES_B for = '|| p_from_id));
3239               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3240       IF chk_vendor_chr_csr%ISOPEN
3241       THEN
3242         CLOSE chk_vendor_chr_csr;
3243       END IF;
3244 
3245        --start NISINHA Bug#6655434 closing the cursor in exception block
3246        IF c_get_party_name%ISOPEN
3247       THEN
3248         CLOSE c_get_party_name;
3249       END IF;
3250       --end NISINHA 6655434
3251 
3252       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3253                            p_api_name  => l_api_name,
3254                            p_pkg_name  => G_PKG_NAME,
3255                            p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3256                            x_msg_count => p_msg_count,
3257                            x_msg_data  => p_msg_data,
3258                            p_api_type  => G_API_TYPE);
3259     WHEN OTHERS
3260     THEN
3261           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3262           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
3263                 'OKC_K_PARTY_ROLES_B for = '|| p_from_id));
3264               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3265       IF chk_vendor_chr_csr%ISOPEN
3266       THEN
3267         CLOSE chk_vendor_chr_csr;
3268       END IF;
3269 
3270       --start NISINHA Bug#6655434 closing the cursor in exception block
3271        IF c_get_party_name%ISOPEN
3272       THEN
3273         CLOSE c_get_party_name;
3274       END IF;
3275       --end NISINHA 6655434
3276 
3277       x_return_status := OKL_API.HANDLE_EXCEPTIONS(
3278                            p_api_name  => l_api_name,
3279                            p_pkg_name  => G_PKG_NAME,
3280                            p_exc_name  => 'OTHERS',
3281                            x_msg_count => p_msg_count,
3282                            x_msg_data  => p_msg_data,
3283                            p_api_type  => G_API_TYPE);
3284   END CPL_PARTY_MERGE ;
3285 
3286   ----------------------------------------------------------------------------------------------------------
3287   -- Start of comments
3288   -- Procedure Name  : CPL_PARTY_SITE_MERGE
3289   -- Description     : Updating the table: OKC_K_PARTY_ROLES_B for column: OBJECT1_ID1
3290   -- Business Rules  : performing PARTY MERGE for table: OKC_K_PARTY_ROLES_B and col: OBJECT1_ID1
3291   --                   for the records created by Lease Management for Party Site
3292   -- Parameters      :
3293   -- Version         : 1.0
3294   -- End of comments
3295   -----------------------------------------------------------------------------------------------------------
3296   PROCEDURE CPL_PARTY_SITE_MERGE (
3297 	p_entity_name          IN VARCHAR2,
3298 	p_from_id              IN NUMBER,
3299 	x_to_id                OUT NOCOPY NUMBER,
3300 	p_from_fk_id           IN NUMBER,
3301 	p_to_fk_id             IN NUMBER,
3302 	p_parent_entity_name   IN VARCHAR2,
3303 	p_batch_id             IN NUMBER,
3304 	p_batch_party_id       IN NUMBER,
3305 	x_return_status        OUT NOCOPY VARCHAR2)
3306   IS
3307 	l_merge_reason_code          VARCHAR2(30);
3308 	l_api_name                   VARCHAR2(30) := 'CPL_PARTY_SITE_MERGE';
3309 	l_count                      NUMBER(10)   := 0;
3310   BEGIN
3311     --Log statements for all input parameters and the procedure name
3312 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.CPL_PARTY_SITE_MERGE');
3313 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
3314 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
3315 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
3316 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
3317 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
3318 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
3319 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
3320 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
3321 
3322     arp_message.set_line('OKL_PARTY_MERGE_PUB.CPL_PARTY_SITE_MERGE()+');
3323 
3324     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
3325 
3326     select merge_reason_code into l_merge_reason_code
3327     from   hz_merge_batch
3328     where  batch_id  = p_batch_id;
3329 
3330     if l_merge_reason_code = 'DUPLICATE' then
3331       -- if reason code is duplicate then allow the party merge to happen without
3332       -- any validations.
3333       null;
3334     else
3335       -- if there are any validations to be done, include it in this section
3336       null;
3337     end if;
3338 
3339     -- If the parent has not changed (ie. Parent getting transferred) then nothing
3340     -- needs to be done. Set Merged To Id is same as Merged From Id and return
3341 
3342     if p_from_fk_id = p_to_fk_id
3343     then
3344       x_to_id := p_from_id;
3345       return;
3346     end if;
3347 
3348     -- If the parent has changed(ie. Parent is getting merged) then transfer the
3349     -- dependent record to the new parent. Before transferring check if a similar
3350     -- dependent record exists on the new parent. If a duplicate exists then do
3351     -- not transfer and return the id of the duplicate record as the Merged To Id
3352     if p_from_fk_id <> p_to_fk_id
3353     then
3354       begin
3355         arp_message.set_name('AR','AR_UPDATING_TABLE');
3356         arp_message.set_token('TABLE_NAME','OKC_K_PARTY_ROLES_B',FALSE);
3357 
3358         IF p_parent_entity_name = 'HZ_PARTY_SITES'
3359         THEN
3360           --updating the OKC_K_PARTY_ROLES_B table for column references OBJECT1_ID1
3361           --and JTOT_OBJECT1_CODE = 'OKL_PARTYSITE'
3362           UPDATE OKC_K_PARTY_ROLES_B TAB
3363             SET TAB.OBJECT1_ID1 = p_to_fk_id
3364               , TAB.object_version_number = TAB.object_version_number + 1
3365               , TAB.last_update_date      = SYSDATE
3366               , TAB.last_updated_by       = arp_standard.profile.user_id
3367               , TAB.last_update_login     = arp_standard.profile.last_update_login
3368           WHERE TAB.OBJECT1_ID1 = TO_CHAR(p_from_fk_id)
3369             AND JTOT_OBJECT1_CODE = 'OKL_PARTYSITE'
3370             AND DNZ_CHR_ID IN (SELECT ID FROM OKL_K_HEADERS);
3371         END IF;
3372         l_count := sql%rowcount;
3373         arp_message.set_name('AR','AR_ROWS_UPDATED');
3374         arp_message.set_token('NUM_ROWS',to_char(l_count));
3375       EXCEPTION
3376         when others
3377         then
3378           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3379           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
3380                 'OKC_K_PARTY_ROLES_B for = '|| p_from_id));
3381               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3382           x_return_status :=  FND_API.G_RET_STS_ERROR;
3383       END;
3384     END IF;
3385   END CPL_PARTY_SITE_MERGE;
3386 
3387   /*-------------------------------------------------------------
3388   | PROCEDURE
3389   |      LOP_ACCOUNT_MERGE
3390   | DESCRIPTION :
3391   |      Account merge procedure for the table, OKL_LEASE_OPPORTUNITIES_B
3392   |
3393   | NOTES:
3394   |--------------------------------------------------------------*/
3395   PROCEDURE LOP_ACCOUNT_MERGE (
3396         req_id                       NUMBER,
3397         set_num                      NUMBER,
3398         process_mode                 VARCHAR2)
3399   IS
3400     l_init_msg_list         VARCHAR2(1)  DEFAULT FND_API.G_FALSE;
3401     l_api_name              VARCHAR2(30) := 'LOP_ACCOUNT_MERGE';
3402     l_return_status         VARCHAR2(1);
3403     x_msg_count             NUMBER;
3404     x_msg_data              VARCHAR2(1000);
3405 
3406     TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
3407        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
3408        INDEX BY BINARY_INTEGER;
3409     MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
3410 
3411     TYPE ID_LIST_TYPE IS TABLE OF OKL_LEASE_OPPORTUNITIES_B.ID%TYPE
3412         INDEX BY BINARY_INTEGER;
3413     PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
3414 
3415     TYPE CUST_ACCT_ID_LIST_TYPE IS TABLE OF OKL_LEASE_OPPORTUNITIES_B.CUST_ACCT_ID%TYPE
3416         INDEX BY BINARY_INTEGER;
3417     NUM_COL1_ORIG_LIST CUST_ACCT_ID_LIST_TYPE;
3418     NUM_COL1_NEW_LIST CUST_ACCT_ID_LIST_TYPE;
3419 
3420     TYPE PROSPECT_ADDRESS_ID_LIST_TYPE IS TABLE OF
3421       OKL_LEASE_OPPORTUNITIES_B.PROSPECT_ADDRESS_ID%TYPE INDEX BY BINARY_INTEGER;
3422     PROSPECT_ADDRESS_ID_LIST PROSPECT_ADDRESS_ID_LIST_TYPE;
3423     PROSPECT_ADD_OLD_ID_LIST PROSPECT_ADDRESS_ID_LIST_TYPE;
3424 
3425     TYPE PROSPECT_ID_LIST_TYPE IS TABLE OF
3426       OKL_LEASE_OPPORTUNITIES_B.PROSPECT_ID%TYPE INDEX BY BINARY_INTEGER;
3427     PROSPECT_ID_LIST PROSPECT_ID_LIST_TYPE;
3428     PROSPECT_OLD_ID_LIST PROSPECT_ID_LIST_TYPE;
3429 
3430     TYPE IS_ID_LIST_TYPE IS TABLE OF
3431       OKL_LEASE_OPPORTUNITIES_B.INSTALL_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
3432     IS_ID_LIST IS_ID_LIST_TYPE;
3433     IS_OLD_ID_LIST IS_ID_LIST_TYPE;
3434 
3435     TYPE UL_ID_LIST_TYPE IS TABLE OF
3436       OKL_LEASE_OPPORTUNITIES_B.USAGE_LOCATION_ID%TYPE INDEX BY BINARY_INTEGER;
3437     UL_ID_LIST UL_ID_LIST_TYPE;
3438     UL_OLD_ID_LIST UL_ID_LIST_TYPE;
3439 
3440     l_party_site_id           HZ_PARTY_SITES.PARTY_SITE_ID%TYPE;
3441     l_new_party_site_id       HZ_PARTY_SITES.PARTY_SITE_ID%TYPE;
3442 
3443     l_profile_val VARCHAR2(30);
3444     CURSOR merged_records IS
3445       SELECT distinct CUSTOMER_MERGE_HEADER_ID
3446            , ID
3447            , CUST_ACCT_ID
3448       FROM OKL_LEASE_OPPORTUNITIES_B yt, ra_customer_merges m
3449       WHERE (yt.CUST_ACCT_ID = m.DUPLICATE_ID)
3450         AND m.process_flag = 'N'
3451         AND m.request_id = req_id
3452         AND m.set_number = set_num;
3453 
3454     l_last_fetch BOOLEAN := FALSE;
3455     l_count NUMBER;
3456   BEGIN
3457     l_return_status := OKL_API.G_RET_STS_SUCCESS;
3458     L_MODULE := 'OKL.PLSQL.OKL_PARTY_MERGE_PUB.LOP_ACCOUNT_MERGE';
3459 
3460     -- check for logging on PROCEDURE level
3461     L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
3462     IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
3463     -- check for logging on STATEMENT level
3464     IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
3465 
3466     -- call START_ACTIVITY to create savepoint, check compatibility
3467     -- and initialize message list
3468     l_return_status := OKL_API.START_ACTIVITY(
3469                            p_api_name      => l_api_name
3470                           ,p_init_msg_list => l_init_msg_list
3471                           ,p_api_type      => G_API_TYPE
3472                           ,x_return_status => l_return_status);
3473 
3474     -- check if activity started successfully
3475     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3476       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3477     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3478       RAISE OKL_API.G_EXCEPTION_ERROR;
3479     END IF;
3480 
3481     l_count := 0;
3482     IF process_mode='LOCK' THEN
3483       NULL;
3484     ELSE
3485       ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
3486       ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_LEASE_OPPORTUNITIES_B',FALSE);
3487       HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
3488       l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
3489 
3490       OPEN merged_records;
3491       LOOP
3492         FETCH merged_records BULK COLLECT INTO
3493             MERGE_HEADER_ID_LIST
3494           , PRIMARY_KEY_ID_LIST
3495           , NUM_COL1_ORIG_LIST;
3496 
3497         IF merged_records%NOTFOUND THEN
3498           l_last_fetch := TRUE;
3499         END IF;
3500         IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
3501           EXIT;
3502         END IF;
3503         FOR I in 1..MERGE_HEADER_ID_LIST.COUNT
3504         LOOP
3505           NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
3506           IF(NOT CHECK_IF_SAME_PARTY(NUM_COL1_ORIG_LIST(I), NUM_COL1_NEW_LIST(I)))
3507           THEN
3508             SELECT PARTY_ID INTO PROSPECT_ID_LIST(I)
3509             FROM HZ_CUST_ACCOUNTS_ALL
3510             WHERE CUST_ACCOUNT_ID = NUM_COL1_NEW_LIST(I);
3511             --check if there exists a party site with same location id under new party
3512             SELECT PROSPECT_ID
3513                  , PROSPECT_ADDRESS_ID
3514                  , INSTALL_SITE_ID
3515                  , USAGE_LOCATION_ID
3516             INTO PROSPECT_OLD_ID_LIST(I)
3517                , PROSPECT_ADD_OLD_ID_LIST(I)
3518                , IS_OLD_ID_LIST(I)
3519                , UL_OLD_ID_LIST(I)
3520             FROM OKL_LEASE_OPPORTUNITIES_B
3521             WHERE ID = PRIMARY_KEY_ID_LIST(I);
3522 
3523             IF(PROSPECT_ADD_OLD_ID_LIST(I) IS NOT NULL)
3524             THEN
3525               PROSPECT_ADDRESS_ID_LIST(I) := get_new_party_site(PROSPECT_ADD_OLD_ID_LIST(I), NUM_COL1_NEW_LIST(I));
3526               --if yes then update the party site id with that new party site id else
3527               IF(PROSPECT_ADDRESS_ID_LIST(I) IS NULL)
3528               THEN
3529                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3530                 THEN
3531                   OKL_DEBUG_PUB.LOG_DEBUG(
3532                       FND_LOG.LEVEL_PROCEDURE
3533                      ,L_MODULE
3534                      ,'begin debug call CREATE_PARTY_SITE');
3535                 END IF;
3536 
3537                 --copy the party site id under new party and update the party site id with
3538                 --the newly created party site id.
3539                 CREATE_PARTY_SITE(
3540                   p_init_msg_list      => FND_API.G_FALSE,
3541                   p_cust_acct_id       => NUM_COL1_NEW_LIST(I),
3542                   p_old_party_site_id  => PROSPECT_ADD_OLD_ID_LIST(I),
3543                   x_new_party_site_id  => PROSPECT_ADDRESS_ID_LIST(I),
3544                   x_return_status      => l_return_status,
3545                   x_msg_count          => x_msg_count,
3546                   x_msg_data           => x_msg_data);
3547 
3548                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3549                 THEN
3550                   OKL_DEBUG_PUB.LOG_DEBUG(
3551                       FND_LOG.LEVEL_PROCEDURE
3552                      ,L_MODULE
3553                      ,'end debug call CREATE_PARTY_SITE');
3554                 END IF;
3555 
3556                 -- write to log
3557                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3558                   OKL_DEBUG_PUB.LOG_DEBUG(
3559                       FND_LOG.LEVEL_STATEMENT
3560                      ,L_MODULE || ' Result of CREATE_PARTY_SITE'
3561                      ,'New Party Site Id '|| PROSPECT_ADDRESS_ID_LIST(I) ||
3562                       ' result status ' || l_return_status ||
3563                       ' x_msg_data ' || x_msg_data);
3564                 END IF; -- end of statement level debug
3565 
3566                 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3567                   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3568                 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3569                   RAISE OKL_API.G_EXCEPTION_ERROR;
3570                 END IF;
3571               END IF;
3572             ELSE
3573               PROSPECT_ADDRESS_ID_LIST(I) := NULL;
3574             END IF;
3575 
3576             IF(IS_OLD_ID_LIST(I) IS NOT NULL)
3577             THEN
3578               IS_ID_LIST(I) := GET_NEW_PARTY_SITE_USE(IS_OLD_ID_LIST(I), NUM_COL1_NEW_LIST(I));
3579               IF(IS_ID_LIST(I) IS NULL)
3580               THEN
3581                 SELECT PARTY_SITE_ID INTO l_party_site_id
3582                 FROM HZ_PARTY_SITE_USES
3583                 WHERE PARTY_SITE_USE_ID = IS_OLD_ID_LIST(I);
3584                 l_new_party_site_id := GET_NEW_PARTY_SITE(l_party_site_id, NUM_COL1_NEW_LIST(I));
3585                 IF(l_new_party_site_id IS NULL)
3586                 THEN
3587                   IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3588                   THEN
3589                     OKL_DEBUG_PUB.LOG_DEBUG(
3590                         FND_LOG.LEVEL_PROCEDURE
3591                        ,L_MODULE
3592                        ,'begin debug call CREATE_PARTY_SITE');
3593                   END IF;
3594 
3595                   CREATE_PARTY_SITE(
3596                     p_init_msg_list      => FND_API.G_FALSE,
3597                     p_cust_acct_id       => NUM_COL1_NEW_LIST(I),
3598                     p_old_party_site_id  => l_party_site_id,
3599                     x_new_party_site_id  => l_new_party_site_id,
3600                     x_return_status      => l_return_status,
3601                     x_msg_count          => x_msg_count,
3602                     x_msg_data           => x_msg_data);
3603 
3604                   IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3605                   THEN
3606                     OKL_DEBUG_PUB.LOG_DEBUG(
3607                         FND_LOG.LEVEL_PROCEDURE
3608                        ,L_MODULE
3609                        ,'end debug call CREATE_PARTY_SITE');
3610                   END IF;
3611 
3612                   -- write to log
3613                   IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3614                     OKL_DEBUG_PUB.LOG_DEBUG(
3615                         FND_LOG.LEVEL_STATEMENT
3616                        ,L_MODULE || ' Result of CREATE_PARTY_SITE'
3617                        ,'New Party Site Id '|| l_new_party_site_id ||
3618                         ' result status ' || l_return_status ||
3619                         ' x_msg_data ' || x_msg_data);
3620                   END IF; -- end of statement level debug
3621 
3622                   IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3623                     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3624                   ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3625                     RAISE OKL_API.G_EXCEPTION_ERROR;
3626                   END IF;
3627                 END IF;
3628 
3629                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3630                 THEN
3631                   OKL_DEBUG_PUB.LOG_DEBUG(
3632                       FND_LOG.LEVEL_PROCEDURE
3633                      ,L_MODULE
3634                      ,'begin debug call CREATE_PARTY_SITE_USE');
3635                 END IF;
3636 
3637                 CREATE_PARTY_SITE_USE(
3638                   p_init_msg_list          => FND_API.G_FALSE,
3639                   p_party_site_id          => l_new_party_site_id,
3640                   p_old_party_site_use_id  => IS_OLD_ID_LIST(I),
3641                   x_new_party_site_use_id  => IS_ID_LIST(I),
3642                   x_return_status          => l_return_status,
3643                   x_msg_count              => x_msg_count,
3644                   x_msg_data               => x_msg_data);
3645 
3646                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3647                 THEN
3648                   OKL_DEBUG_PUB.LOG_DEBUG(
3649                       FND_LOG.LEVEL_PROCEDURE
3650                      ,L_MODULE
3651                      ,'end debug call CREATE_PARTY_SITE_USE');
3652                 END IF;
3653 
3654                 -- write to log
3655                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3656                   OKL_DEBUG_PUB.LOG_DEBUG(
3657                       FND_LOG.LEVEL_STATEMENT
3658                      ,L_MODULE || ' Result of CREATE_PARTY_SITE_USE'
3659                      ,'New Party Site Use Id '|| IS_ID_LIST(I) ||
3660                       ' result status ' || l_return_status ||
3661                       ' x_msg_data ' || x_msg_data);
3662                 END IF; -- end of statement level debug
3663 
3664                 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3665                   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3666                 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3667                   RAISE OKL_API.G_EXCEPTION_ERROR;
3668                 END IF;
3669               END IF;
3670             ELSE
3671               IS_ID_LIST(I) := NULL;
3672             END IF;
3673 
3674             IF(UL_OLD_ID_LIST(I) IS NOT NULL)
3675             THEN
3676               UL_ID_LIST(I) := GET_NEW_PARTY_SITE_USE(UL_OLD_ID_LIST(I), NUM_COL1_NEW_LIST(I));
3677               IF(UL_ID_LIST(I) IS NULL)
3678               THEN
3679                 SELECT PARTY_SITE_ID INTO l_party_site_id
3680                 FROM HZ_PARTY_SITE_USES
3681                 WHERE PARTY_SITE_USE_ID = UL_OLD_ID_LIST(I);
3682                 l_new_party_site_id := GET_NEW_PARTY_SITE(l_party_site_id, NUM_COL1_NEW_LIST(I));
3683                 IF(l_new_party_site_id IS NULL)
3684                 THEN
3685                   IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3686                   THEN
3687                     OKL_DEBUG_PUB.LOG_DEBUG(
3688                         FND_LOG.LEVEL_PROCEDURE
3689                        ,L_MODULE
3690                        ,'begin debug call CREATE_PARTY_SITE');
3691                   END IF;
3692 
3693                   CREATE_PARTY_SITE(
3694                     p_init_msg_list      => FND_API.G_FALSE,
3695                     p_cust_acct_id       => NUM_COL1_NEW_LIST(I),
3696                     p_old_party_site_id  => l_party_site_id,
3697                     x_new_party_site_id  => l_new_party_site_id,
3698                     x_return_status      => l_return_status,
3699                     x_msg_count          => x_msg_count,
3700                     x_msg_data           => x_msg_data);
3701 
3702                   IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3703                   THEN
3704                     OKL_DEBUG_PUB.LOG_DEBUG(
3705                         FND_LOG.LEVEL_PROCEDURE
3706                        ,L_MODULE
3707                        ,'end debug call CREATE_PARTY_SITE');
3708                   END IF;
3709 
3710                   -- write to log
3711                   IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3712                     OKL_DEBUG_PUB.LOG_DEBUG(
3713                         FND_LOG.LEVEL_STATEMENT
3714                        ,L_MODULE || ' Result of CREATE_PARTY_SITE'
3715                        ,'New Party Site Id '|| l_new_party_site_id ||
3716                         ' result status ' || l_return_status ||
3717                         ' x_msg_data ' || x_msg_data);
3718                   END IF; -- end of statement level debug
3719 
3720                   IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3721                     RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3722                   ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3723                     RAISE OKL_API.G_EXCEPTION_ERROR;
3724                   END IF;
3725                 END IF;
3726 
3727                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3728                 THEN
3729                   OKL_DEBUG_PUB.LOG_DEBUG(
3730                       FND_LOG.LEVEL_PROCEDURE
3731                      ,L_MODULE
3732                      ,'begin debug call CREATE_PARTY_SITE_USE');
3733                 END IF;
3734 
3735                 CREATE_PARTY_SITE_USE(
3736                   p_init_msg_list          => FND_API.G_FALSE,
3737                   p_party_site_id          => l_new_party_site_id,
3738                   p_old_party_site_use_id  => UL_OLD_ID_LIST(I),
3739                   x_new_party_site_use_id  => UL_ID_LIST(I),
3740                   x_return_status          => l_return_status,
3741                   x_msg_count              => x_msg_count,
3742                   x_msg_data               => x_msg_data);
3743 
3744                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3745                 THEN
3746                   OKL_DEBUG_PUB.LOG_DEBUG(
3747                       FND_LOG.LEVEL_PROCEDURE
3748                      ,L_MODULE
3749                      ,'end debug call CREATE_PARTY_SITE_USE');
3750                 END IF;
3751 
3752                 -- write to log
3753                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3754                   OKL_DEBUG_PUB.LOG_DEBUG(
3755                       FND_LOG.LEVEL_STATEMENT
3756                      ,L_MODULE || ' Result of CREATE_PARTY_SITE_USE'
3757                      ,'New Party Site Use Id '|| UL_ID_LIST(I) ||
3758                       ' result status ' || l_return_status ||
3759                       ' x_msg_data ' || x_msg_data);
3760                 END IF; -- end of statement level debug
3761 
3762                 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3763                   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3764                 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3765                   RAISE OKL_API.G_EXCEPTION_ERROR;
3766                 END IF;
3767               END IF;
3768             ELSE
3769               UL_ID_LIST(I) := NULL;
3770             END IF;
3771 
3772             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3773             THEN
3774               OKL_DEBUG_PUB.LOG_DEBUG(
3775                   FND_LOG.LEVEL_PROCEDURE
3776                  ,L_MODULE
3777                  ,'begin debug call UPDATE_ASSET_LOCATION');
3778             END IF;
3779 
3780             --Also update the install location id in okl_assets_b for all the lease quotes
3781             --undet this lease application.
3782             UPDATE_ASSET_LOCATION(
3783               p_init_msg_list      => FND_API.G_FALSE,
3784               p_cust_acct_id       => NUM_COL1_NEW_LIST(I),
3785               p_parent_object_id   => PRIMARY_KEY_ID_LIST(I),
3786               p_parent_object_code => 'LEASEOPP',
3787               p_merge_header_id    => MERGE_HEADER_ID_LIST(I),
3788               req_id               => req_id,
3789               x_return_status      => l_return_status,
3790               x_msg_count          => x_msg_count,
3791               x_msg_data           => x_msg_data);
3792 
3793             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
3794             THEN
3795               OKL_DEBUG_PUB.LOG_DEBUG(
3796                   FND_LOG.LEVEL_PROCEDURE
3797                  ,L_MODULE
3798                  ,'end debug call UPDATE_ASSET_LOCATION');
3799             END IF;
3800 
3801             -- write to log
3802             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
3803               OKL_DEBUG_PUB.LOG_DEBUG(
3804                   FND_LOG.LEVEL_STATEMENT
3805                  ,L_MODULE || ' Result of UPDATE_ASSET_LOCATION'
3806                  ,' result status ' || l_return_status ||
3807                   ' x_msg_data ' || x_msg_data);
3808             END IF; -- end of statement level debug
3809 
3810             IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
3811               RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3812             ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
3813               RAISE OKL_API.G_EXCEPTION_ERROR;
3814             END IF;
3815           END IF;
3816         END LOOP;
3817 
3818         IF l_profile_val IS NOT NULL AND l_profile_val = 'Y'
3819         THEN
3820           FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
3821             INSERT INTO HZ_CUSTOMER_MERGE_LOG (
3822               MERGE_LOG_ID,
3823               TABLE_NAME,
3824               MERGE_HEADER_ID,
3825               PRIMARY_KEY_ID,
3826               NUM_COL1_ORIG,
3827               NUM_COL1_NEW,
3828               NUM_COL2_ORIG,
3829               NUM_COL2_NEW,
3830               NUM_COL3_ORIG,
3831               NUM_COL3_NEW,
3832               NUM_COL4_ORIG,
3833               NUM_COL4_NEW,
3834               NUM_COL5_ORIG,
3835               NUM_COL5_NEW,
3836               ACTION_FLAG,
3837               REQUEST_ID,
3838               CREATED_BY,
3839               CREATION_DATE,
3840               LAST_UPDATE_LOGIN,
3841               LAST_UPDATE_DATE,
3842               LAST_UPDATED_BY)
3843             VALUES(
3844               HZ_CUSTOMER_MERGE_LOG_s.nextval,
3845               'OKL_LEASE_OPPORTUNITIES_B',
3846               MERGE_HEADER_ID_LIST(I),
3847               PRIMARY_KEY_ID_LIST(I),
3848               NUM_COL1_ORIG_LIST(I),
3849               NUM_COL1_NEW_LIST(I),
3850               PROSPECT_OLD_ID_LIST(I),
3851               PROSPECT_ID_LIST(I),
3852               PROSPECT_ADD_OLD_ID_LIST(I),
3853               PROSPECT_ADDRESS_ID_LIST(I),
3854               IS_OLD_ID_LIST(I),
3855               IS_ID_LIST(I),
3856               UL_OLD_ID_LIST(I),
3857               UL_ID_LIST(I),
3858               'U',
3859               req_id,
3860               hz_utility_pub.CREATED_BY,
3861               hz_utility_pub.CREATION_DATE,
3862               hz_utility_pub.LAST_UPDATE_LOGIN,
3863               hz_utility_pub.LAST_UPDATE_DATE,
3864               hz_utility_pub.LAST_UPDATED_BY);
3865         END IF;
3866 
3867         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
3868           UPDATE OKL_LEASE_OPPORTUNITIES_B yt SET
3869              CUST_ACCT_ID=NUM_COL1_NEW_LIST(I)
3870            , PROSPECT_ID = PROSPECT_ID_LIST(I)
3871            , PROSPECT_ADDRESS_ID = PROSPECT_ADDRESS_ID_LIST(I)
3872            , INSTALL_SITE_ID = IS_ID_LIST(I)
3873            , USAGE_LOCATION_ID = UL_ID_LIST(I)
3874            , LAST_UPDATE_DATE=SYSDATE
3875            , last_updated_by=arp_standard.profile.user_id
3876            , last_update_login=arp_standard.profile.last_update_login
3877           WHERE ID=PRIMARY_KEY_ID_LIST(I);
3878 
3879         l_count := l_count + SQL%ROWCOUNT;
3880         IF l_last_fetch THEN
3881           EXIT;
3882         END IF;
3883       END LOOP;
3884 
3885       arp_message.set_name('AR','AR_ROWS_UPDATED');
3886       arp_message.set_token('NUM_ROWS',to_char(l_count));
3887     END IF;
3888 
3889     OKL_API.END_ACTIVITY(
3890         x_msg_count => x_msg_count
3891        ,x_msg_data  => x_msg_data);
3892   EXCEPTION
3893     WHEN OKL_API.G_EXCEPTION_ERROR
3894     THEN
3895       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3896       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3897       l_return_status := OKL_API.HANDLE_EXCEPTIONS(
3898                            p_api_name  => l_api_name,
3899                            p_pkg_name  => G_PKG_NAME,
3900                            p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
3901                            x_msg_count => x_msg_count,
3902                            x_msg_data  => x_msg_data,
3903                            p_api_type  => G_API_TYPE);
3904       RAISE;
3905     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
3906     THEN
3907       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3908       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3909       l_return_status := OKL_API.HANDLE_EXCEPTIONS(
3910                            p_api_name  => l_api_name,
3911                            p_pkg_name  => G_PKG_NAME,
3912                            p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
3913                            x_msg_count => x_msg_count,
3914                            x_msg_data  => x_msg_data,
3915                            p_api_type  => G_API_TYPE);
3916       RAISE;
3917     WHEN OTHERS
3918     THEN
3919       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
3920       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
3921       l_return_status := OKL_API.HANDLE_EXCEPTIONS(
3922                            p_api_name  => l_api_name,
3923                            p_pkg_name  => G_PKG_NAME,
3924                            p_exc_name  => 'OTHERS',
3925                            x_msg_count => x_msg_count,
3926                            x_msg_data  => x_msg_data,
3927                            p_api_type  => G_API_TYPE);
3928       RAISE;
3929   END LOP_ACCOUNT_MERGE;
3930 
3931   /*-------------------------------------------------------------
3932   |  PROCEDURE
3933   |      LAP_ACCOUNT_MERGE
3934   |  DESCRIPTION :
3935   |      Account merge procedure for the table, OKL_LEASE_APPLICATIONS_B
3936   |
3937   |  NOTES:
3938   |--------------------------------------------------------------*/
3939   PROCEDURE LAP_ACCOUNT_MERGE (
3940         req_id                       NUMBER,
3941         set_num                      NUMBER,
3942         process_mode                 VARCHAR2)
3943   IS
3944     l_init_msg_list         VARCHAR2(1)  DEFAULT FND_API.G_FALSE;
3945     l_api_name              VARCHAR2(30) := 'LAP_ACCOUNT_MERGE';
3946     l_return_status         VARCHAR2(1);
3947     x_msg_count             NUMBER;
3948     x_msg_data              VARCHAR2(1000);
3949 
3950     TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
3951        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
3952        INDEX BY BINARY_INTEGER;
3953     MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
3954 
3955     TYPE ID_LIST_TYPE IS TABLE OF OKL_LEASE_APPLICATIONS_B.ID%TYPE
3956         INDEX BY BINARY_INTEGER;
3957     PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
3958 
3959     TYPE CUST_ACCT_ID_LIST_TYPE IS TABLE OF OKL_LEASE_APPLICATIONS_B.CUST_ACCT_ID%TYPE
3960         INDEX BY BINARY_INTEGER;
3961     NUM_COL1_ORIG_LIST CUST_ACCT_ID_LIST_TYPE;
3962     NUM_COL1_NEW_LIST CUST_ACCT_ID_LIST_TYPE;
3963 
3964     TYPE PROSPECT_ADDRESS_ID_LIST_TYPE IS TABLE OF
3965       OKL_LEASE_APPLICATIONS_B.PROSPECT_ADDRESS_ID%TYPE INDEX BY BINARY_INTEGER;
3966     PROSPECT_ADDRESS_ID_LIST PROSPECT_ADDRESS_ID_LIST_TYPE;
3967     PROSPECT_ADD_OLD_ID_LIST PROSPECT_ADDRESS_ID_LIST_TYPE;
3968 
3969     TYPE PROSPECT_ID_LIST_TYPE IS TABLE OF
3970       OKL_LEASE_APPLICATIONS_B.PROSPECT_ID%TYPE INDEX BY BINARY_INTEGER;
3971     PROSPECT_ID_LIST PROSPECT_ID_LIST_TYPE;
3972     PROSPECT_OLD_ID_LIST PROSPECT_ID_LIST_TYPE;
3973 
3974     l_profile_val VARCHAR2(30);
3975     CURSOR merged_records IS
3976       SELECT distinct CUSTOMER_MERGE_HEADER_ID
3977            , ID
3978            , CUST_ACCT_ID
3979       FROM OKL_LEASE_APPLICATIONS_B yt, ra_customer_merges m
3980       WHERE (yt.CUST_ACCT_ID = m.DUPLICATE_ID)
3981         AND m.process_flag = 'N'
3982         AND m.request_id = req_id
3983         AND m.set_number = set_num;
3984     l_last_fetch BOOLEAN := FALSE;
3985     l_count NUMBER;
3986   BEGIN
3987     l_return_status := OKL_API.G_RET_STS_SUCCESS;
3988     L_MODULE := 'OKL.PLSQL.OKL_PARTY_MERGE_PUB.LAP_ACCOUNT_MERGE';
3989 
3990     -- check for logging on PROCEDURE level
3991     L_DEBUG_ENABLED := NVL(OKL_DEBUG_PUB.CHECK_LOG_ENABLED, 'N');
3992     IS_DEBUG_PROCEDURE_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_PROCEDURE), FALSE);
3993     -- check for logging on STATEMENT level
3994     IS_DEBUG_STATEMENT_ON := NVL(OKL_DEBUG_PUB.CHECK_LOG_ON(L_MODULE, FND_LOG.LEVEL_STATEMENT), FALSE);
3995 
3996     -- call START_ACTIVITY to create savepoint, check compatibility
3997     -- and initialize message list
3998     l_return_status := OKL_API.START_ACTIVITY(
3999                            p_api_name      => l_api_name
4000                           ,p_init_msg_list => l_init_msg_list
4001                           ,p_api_type      => G_API_TYPE
4002                           ,x_return_status => l_return_status);
4003 
4004     -- check if activity started successfully
4005     IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4006       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4007     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4008       RAISE OKL_API.G_EXCEPTION_ERROR;
4009     END IF;
4010 
4011     l_count := 0;
4012     IF process_mode='LOCK' THEN
4013       NULL;
4014     ELSE
4015       ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
4016       ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_LEASE_APPLICATIONS_B',FALSE);
4017       HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
4018       l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
4019 
4020       OPEN merged_records;
4021       LOOP
4022         FETCH merged_records BULK COLLECT INTO
4023             MERGE_HEADER_ID_LIST
4024           , PRIMARY_KEY_ID_LIST
4025           , NUM_COL1_ORIG_LIST;
4026 
4027         IF merged_records%NOTFOUND THEN
4028           l_last_fetch := TRUE;
4029         END IF;
4030         IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
4031           EXIT;
4032         END IF;
4033         FOR I in 1..MERGE_HEADER_ID_LIST.COUNT
4034         LOOP
4035           NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
4036           IF(NOT CHECK_IF_SAME_PARTY(NUM_COL1_ORIG_LIST(I), NUM_COL1_NEW_LIST(I)))
4037           THEN
4038             SELECT PARTY_ID INTO PROSPECT_ID_LIST(I)
4039             FROM HZ_CUST_ACCOUNTS_ALL
4040             WHERE CUST_ACCOUNT_ID = NUM_COL1_NEW_LIST(I);
4041 
4042             --check if there exists a party site with same location id under new party
4043             SELECT PROSPECT_ID
4044                  , PROSPECT_ADDRESS_ID
4045               INTO PROSPECT_OLD_ID_LIST(I)
4046                  , PROSPECT_ADD_OLD_ID_LIST(I)
4047             FROM OKL_LEASE_APPLICATIONS_B
4048             WHERE ID = PRIMARY_KEY_ID_LIST(I);
4049             IF(PROSPECT_ADD_OLD_ID_LIST(I) IS NOT NULL)
4050             THEN
4051               PROSPECT_ADDRESS_ID_LIST(I) := get_new_party_site(PROSPECT_ADD_OLD_ID_LIST(I), NUM_COL1_NEW_LIST(I));
4052               --if yes then update the party site id with that new party site id else
4053               IF(PROSPECT_ADDRESS_ID_LIST(I) IS NULL)
4054               THEN
4055                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4056                 THEN
4057                   OKL_DEBUG_PUB.LOG_DEBUG(
4058                       FND_LOG.LEVEL_PROCEDURE
4059                      ,L_MODULE
4060                      ,'begin debug call CREATE_PARTY_SITE');
4061                 END IF;
4062 
4063                 --copy the party site id under new party and update the party site id with
4064                 --the newly created party site id.
4065                 CREATE_PARTY_SITE(
4066                     p_init_msg_list      => FND_API.G_FALSE,
4067                     p_cust_acct_id       => NUM_COL1_NEW_LIST(I),
4068                     p_old_party_site_id  => PROSPECT_ADD_OLD_ID_LIST(I),
4069                     x_new_party_site_id  => PROSPECT_ADDRESS_ID_LIST(I),
4070                     x_return_status      => l_return_status,
4071                     x_msg_count          => x_msg_count,
4072                     x_msg_data           => x_msg_data);
4073 
4074                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4075                 THEN
4076                   OKL_DEBUG_PUB.LOG_DEBUG(
4077                       FND_LOG.LEVEL_PROCEDURE
4078                      ,L_MODULE
4079                      ,'end debug call CREATE_PARTY_SITE');
4080                 END IF;
4081 
4082                 -- write to log
4083                 IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4084                   OKL_DEBUG_PUB.LOG_DEBUG(
4085                       FND_LOG.LEVEL_STATEMENT
4086                      ,L_MODULE || ' Result of CREATE_PARTY_SITE'
4087                      ,'New Party Site Id '|| PROSPECT_ADDRESS_ID_LIST(I) ||
4088                       ' result status ' || l_return_status ||
4089                       ' x_msg_data ' || x_msg_data);
4090                 END IF; -- end of statement level debug
4091 
4092                 IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4093                   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4094                 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4095                   RAISE OKL_API.G_EXCEPTION_ERROR;
4096                 END IF;
4097               END IF;
4098             ELSE
4099               PROSPECT_ADDRESS_ID_LIST(I) := NULL;
4100             END IF;
4101 
4102             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4103             THEN
4104               OKL_DEBUG_PUB.LOG_DEBUG(
4105                   FND_LOG.LEVEL_PROCEDURE
4106                  ,L_MODULE
4107                  ,'begin debug call UPDATE_ASSET_LOCATION');
4108             END IF;
4109 
4110             --Also update the install location id in okl_assets_b for all the lease quotes
4111             --undet this lease application.
4112             UPDATE_ASSET_LOCATION(
4113                 p_init_msg_list      => FND_API.G_FALSE,
4114                 p_cust_acct_id       => NUM_COL1_NEW_LIST(I),
4115                 p_parent_object_id   => PRIMARY_KEY_ID_LIST(I),
4116                 p_parent_object_code => 'LEASEAPP',
4117                 p_merge_header_id    => MERGE_HEADER_ID_LIST(I),
4118                 req_id               => req_id,
4119                 x_return_status      => l_return_status,
4120                 x_msg_count          => x_msg_count,
4121                 x_msg_data           => x_msg_data);
4122 
4123             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_PROCEDURE_ON)
4124             THEN
4125               OKL_DEBUG_PUB.LOG_DEBUG(
4126                   FND_LOG.LEVEL_PROCEDURE
4127                  ,L_MODULE
4128                  ,'end debug call UPDATE_ASSET_LOCATION');
4129             END IF;
4130 
4131             -- write to log
4132             IF(L_DEBUG_ENABLED = 'Y' AND IS_DEBUG_STATEMENT_ON) THEN
4133               OKL_DEBUG_PUB.LOG_DEBUG(
4134                   FND_LOG.LEVEL_STATEMENT
4135                  ,L_MODULE || ' Result of UPDATE_ASSET_LOCATION'
4136                  ,' result status ' || l_return_status ||
4137                   ' x_msg_data ' || x_msg_data);
4138             END IF; -- end of statement level debug
4139 
4140             IF(l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR)THEN
4141               RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4142             ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR)THEN
4143               RAISE OKL_API.G_EXCEPTION_ERROR;
4144             END IF;
4145           END IF;
4146         END LOOP;
4147         IF l_profile_val IS NOT NULL AND l_profile_val = 'Y'
4148         THEN
4149           FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4150             INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4151               MERGE_LOG_ID,
4152               TABLE_NAME,
4153               MERGE_HEADER_ID,
4154               PRIMARY_KEY_ID,
4155               NUM_COL1_ORIG,
4156               NUM_COL1_NEW,
4157               NUM_COL2_ORIG,
4158               NUM_COL2_NEW,
4159               NUM_COL3_ORIG,
4160               NUM_COL3_NEW,
4161               ACTION_FLAG,
4162               REQUEST_ID,
4163               CREATED_BY,
4164               CREATION_DATE,
4165               LAST_UPDATE_LOGIN,
4166               LAST_UPDATE_DATE,
4167               LAST_UPDATED_BY
4168             )VALUES(
4169               HZ_CUSTOMER_MERGE_LOG_s.nextval,
4170               'OKL_LEASE_APPLICATIONS_B',
4171               MERGE_HEADER_ID_LIST(I),
4172               PRIMARY_KEY_ID_LIST(I),
4173               NUM_COL1_ORIG_LIST(I),
4174               NUM_COL1_NEW_LIST(I),
4175               PROSPECT_OLD_ID_LIST(I),
4176               PROSPECT_ID_LIST(I),
4177               PROSPECT_ADD_OLD_ID_LIST(I),
4178               PROSPECT_ADDRESS_ID_LIST(I),
4179               'U',
4180               req_id,
4181               hz_utility_pub.CREATED_BY,
4182               hz_utility_pub.CREATION_DATE,
4183               hz_utility_pub.LAST_UPDATE_LOGIN,
4184               hz_utility_pub.LAST_UPDATE_DATE,
4185               hz_utility_pub.LAST_UPDATED_BY);
4186 
4187         END IF;
4188         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4189           UPDATE OKL_LEASE_APPLICATIONS_B yt SET
4190               CUST_ACCT_ID=NUM_COL1_NEW_LIST(I)
4191             , PROSPECT_ID = PROSPECT_ID_LIST(I)
4192             , PROSPECT_ADDRESS_ID = PROSPECT_ADDRESS_ID_LIST(I)
4193             , LAST_UPDATE_DATE=SYSDATE
4194             , last_updated_by=arp_standard.profile.user_id
4195             , last_update_login=arp_standard.profile.last_update_login
4196           WHERE ID=PRIMARY_KEY_ID_LIST(I);
4197 
4198         l_count := l_count + SQL%ROWCOUNT;
4199         IF l_last_fetch THEN
4200           EXIT;
4201         END IF;
4202       END LOOP;
4203 
4204       arp_message.set_name('AR','AR_ROWS_UPDATED');
4205       arp_message.set_token('NUM_ROWS',to_char(l_count));
4206     END IF;
4207 
4208     OKL_API.END_ACTIVITY(
4209         x_msg_count => x_msg_count
4210        ,x_msg_data  => x_msg_data);
4211   EXCEPTION
4212     WHEN OKL_API.G_EXCEPTION_ERROR
4213     THEN
4214       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
4215       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
4216       l_return_status := OKL_API.HANDLE_EXCEPTIONS(
4217                            p_api_name  => l_api_name,
4218                            p_pkg_name  => G_PKG_NAME,
4219                            p_exc_name  => 'OKL_API.G_RET_STS_ERROR',
4220                            x_msg_count => x_msg_count,
4221                            x_msg_data  => x_msg_data,
4222                            p_api_type  => G_API_TYPE);
4223       RAISE;
4224     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR
4225     THEN
4226       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
4227       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
4228       l_return_status := OKL_API.HANDLE_EXCEPTIONS(
4229                            p_api_name  => l_api_name,
4230                            p_pkg_name  => G_PKG_NAME,
4231                            p_exc_name  => 'OKL_API.G_RET_STS_UNEXP_ERROR',
4232                            x_msg_count => x_msg_count,
4233                            x_msg_data  => x_msg_data,
4234                            p_api_type  => G_API_TYPE);
4235       RAISE;
4236     WHEN OTHERS
4237     THEN
4238       arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
4239       fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
4240       l_return_status := OKL_API.HANDLE_EXCEPTIONS(
4241                            p_api_name  => l_api_name,
4242                            p_pkg_name  => G_PKG_NAME,
4243                            p_exc_name  => 'OTHERS',
4244                            x_msg_count => x_msg_count,
4245                            x_msg_data  => x_msg_data,
4246                            p_api_type  => G_API_TYPE);
4247       RAISE;
4248   END LAP_ACCOUNT_MERGE;
4249 
4250 /*-------------------------------------------------------------
4251 |  PROCEDURE
4252 |      XSI_ACCOUNT_MERGE
4253 |  DESCRIPTION :
4254 |      Account merge procedure for the table, OKL_EXT_SELL_INVS_B
4255 |
4256 |  NOTES:
4257 |--------------------------------------------------------------*/
4258 PROCEDURE XSI_ACCOUNT_MERGE (
4259         req_id                       NUMBER,
4260         set_num                      NUMBER,
4261         process_mode                 VARCHAR2) IS
4262 
4263   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
4264        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
4265        INDEX BY BINARY_INTEGER;
4266   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
4267 
4268   TYPE ID_LIST_TYPE IS TABLE OF
4269          OKL_EXT_SELL_INVS_B.ID%TYPE
4270         INDEX BY BINARY_INTEGER;
4271   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
4272 
4273   TYPE CUSTOMER_ID_LIST_TYPE IS TABLE OF
4274          OKL_EXT_SELL_INVS_B.CUSTOMER_ID%TYPE
4275         INDEX BY BINARY_INTEGER;
4276   NUM_COL1_ORIG_LIST CUSTOMER_ID_LIST_TYPE;
4277   NUM_COL1_NEW_LIST CUSTOMER_ID_LIST_TYPE;
4278 
4279   TYPE CUSTOMER_ADDRESS_ID_LIST_TYPE IS TABLE OF
4280          OKL_EXT_SELL_INVS_B.CUSTOMER_ADDRESS_ID%TYPE
4281         INDEX BY BINARY_INTEGER;
4282   NUM_COL2_ORIG_LIST CUSTOMER_ADDRESS_ID_LIST_TYPE;
4283   NUM_COL2_NEW_LIST CUSTOMER_ADDRESS_ID_LIST_TYPE;
4284 
4285   l_profile_val VARCHAR2(30);
4286   CURSOR merged_records IS
4287         SELECT distinct CUSTOMER_MERGE_HEADER_ID
4288               ,yt.ID
4289               ,yt.CUSTOMER_ID
4290               ,yt.CUSTOMER_ADDRESS_ID
4291          FROM OKL_EXT_SELL_INVS_B yt, ra_customer_merges m
4292          WHERE (
4293             yt.CUSTOMER_ID = m.DUPLICATE_ID
4294             OR yt.CUSTOMER_ADDRESS_ID = m.DUPLICATE_ADDRESS_ID
4295          ) AND    m.process_flag = 'N'
4296          AND    m.request_id = req_id
4297          AND    m.set_number = set_num;
4298   l_last_fetch BOOLEAN := FALSE;
4299   l_count NUMBER;
4300 BEGIN
4301   l_count := 0;
4302   IF process_mode='LOCK' THEN
4303     NULL;
4304   ELSE
4305     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
4306     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_EXT_SELL_INVS_B',FALSE);
4307     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
4308     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
4309 
4310     open merged_records;
4311     LOOP
4312       FETCH merged_records BULK COLLECT INTO
4313          MERGE_HEADER_ID_LIST
4314           , PRIMARY_KEY_ID_LIST
4315           , NUM_COL1_ORIG_LIST
4316           , NUM_COL2_ORIG_LIST
4317           ;
4318       IF merged_records%NOTFOUND THEN
4319          l_last_fetch := TRUE;
4320       END IF;
4321       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
4322         exit;
4323       END IF;
4324       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
4325          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
4326          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE(NUM_COL2_ORIG_LIST(I));
4327 
4328       END LOOP;
4329       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4330         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4331          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4332            MERGE_LOG_ID,
4333            TABLE_NAME,
4334            MERGE_HEADER_ID,
4335            PRIMARY_KEY_ID1,
4336            NUM_COL1_ORIG,
4337            NUM_COL1_NEW,
4338            NUM_COL2_ORIG,
4339            NUM_COL2_NEW,
4340            ACTION_FLAG,
4341            REQUEST_ID,
4342            CREATED_BY,
4343            CREATION_DATE,
4344            LAST_UPDATE_LOGIN,
4345            LAST_UPDATE_DATE,
4346            LAST_UPDATED_BY
4347       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
4348          'OKL_EXT_SELL_INVS_B',
4349          MERGE_HEADER_ID_LIST(I),
4350          PRIMARY_KEY_ID_LIST(I),
4351          NUM_COL1_ORIG_LIST(I),
4352          NUM_COL1_NEW_LIST(I),
4353          NUM_COL2_ORIG_LIST(I),
4354          NUM_COL2_NEW_LIST(I),
4355          'U',
4356          req_id,
4357          hz_utility_pub.CREATED_BY,
4358          hz_utility_pub.CREATION_DATE,
4359          hz_utility_pub.LAST_UPDATE_LOGIN,
4360          hz_utility_pub.LAST_UPDATE_DATE,
4361          hz_utility_pub.LAST_UPDATED_BY
4362       );
4363 
4364     END IF;
4365     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4366       UPDATE OKL_EXT_SELL_INVS_B yt SET
4367            CUSTOMER_ID=NUM_COL1_NEW_LIST(I)
4368           ,CUSTOMER_ADDRESS_ID=NUM_COL2_NEW_LIST(I)
4369           , LAST_UPDATE_DATE=SYSDATE
4370           , last_updated_by=arp_standard.profile.user_id
4371           , last_update_login=arp_standard.profile.last_update_login
4372           , REQUEST_ID=req_id
4373           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
4374           , PROGRAM_ID=arp_standard.profile.program_id
4375           , PROGRAM_UPDATE_DATE=SYSDATE
4376       WHERE ID=PRIMARY_KEY_ID_LIST(I);
4377 
4378       l_count := l_count + SQL%ROWCOUNT;
4379       IF l_last_fetch THEN
4380          EXIT;
4381       END IF;
4382     END LOOP;
4383 
4384     arp_message.set_name('AR','AR_ROWS_UPDATED');
4385     arp_message.set_token('NUM_ROWS',to_char(l_count));
4386   END IF;
4387 EXCEPTION
4388   WHEN OTHERS THEN
4389     arp_message.set_line( 'XSI_ACCOUNT_MERGE');
4390     RAISE;
4391 END XSI_ACCOUNT_MERGE;
4392 
4393 /*-------------------------------------------------------------
4394 |  PROCEDURE
4395 |      TXST_ACCOUNT_MERGE
4396 |  DESCRIPTION :
4397 |      Account merge procedure for the table, OKL_TAX_SOURCES_T
4398 |
4399 |  NOTES:
4400 |--------------------------------------------------------------*/
4401 PROCEDURE TXST_ACCOUNT_MERGE (
4402         req_id                       NUMBER,
4403         set_num                      NUMBER,
4404         process_mode                 VARCHAR2) IS
4405 
4406   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
4407        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
4408        INDEX BY BINARY_INTEGER;
4409   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
4410 
4411   TYPE ID_LIST_TYPE IS TABLE OF
4412          OKL_TAX_SOURCES_T.ID%TYPE
4413         INDEX BY BINARY_INTEGER;
4414   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
4415 
4416   TYPE BILL_TO_CUST_ACCT_ID_LIST_TYPE IS TABLE OF
4417          OKL_TAX_SOURCES_T.BILL_TO_CUST_ACCT_ID%TYPE
4418         INDEX BY BINARY_INTEGER;
4419   NUM_COL1_ORIG_LIST BILL_TO_CUST_ACCT_ID_LIST_TYPE;
4420   NUM_COL1_NEW_LIST BILL_TO_CUST_ACCT_ID_LIST_TYPE;
4421 
4422   TYPE BT_CA_SU_ID_LIST_TYPE IS TABLE OF
4423          OKL_TAX_SOURCES_T.BILL_TO_CUST_ACCT_SITE_USE_ID%TYPE
4424         INDEX BY BINARY_INTEGER;
4425   NUM_COL2_ORIG_LIST BT_CA_SU_ID_LIST_TYPE;
4426   NUM_COL2_NEW_LIST BT_CA_SU_ID_LIST_TYPE;
4427 
4428   TYPE ST_CA_SU_ID_LIST_TYPE IS TABLE OF
4429          OKL_TAX_SOURCES_T.SHIP_TO_CUST_ACCT_SITE_USE_ID%TYPE
4430         INDEX BY BINARY_INTEGER;
4431   NUM_COL3_ORIG_LIST ST_CA_SU_ID_LIST_TYPE;
4432   NUM_COL3_NEW_LIST ST_CA_SU_ID_LIST_TYPE;
4433 
4434   TYPE ST_PAR_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES_T.SHIP_TO_PARTY_ID%TYPE
4435         INDEX BY BINARY_INTEGER;
4436   ST_PAR_ID_ORIG_LIST ST_PAR_ID_LIST_TYPE;
4437   ST_PAR_ID_NEW_LIST ST_PAR_ID_LIST_TYPE;
4438 
4439   TYPE ST_PAR_SITE_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES_T.SHIP_TO_PARTY_SITE_ID%TYPE
4440         INDEX BY BINARY_INTEGER;
4441   ST_PAR_SITE_ID_ORIG_LIST ST_PAR_SITE_ID_LIST_TYPE;
4442   ST_PAR_SITE_ID_NEW_LIST ST_PAR_SITE_ID_LIST_TYPE;
4443 
4444   TYPE ST_LOC_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES_T.SHIP_TO_LOCATION_ID%TYPE
4445         INDEX BY BINARY_INTEGER;
4446   ST_LOC_ID_ORIG_LIST ST_LOC_ID_LIST_TYPE;
4447   ST_LOC_ID_NEW_LIST ST_LOC_ID_LIST_TYPE;
4448 
4449   TYPE BT_PAR_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES_T.BILL_TO_PARTY_ID%TYPE
4450         INDEX BY BINARY_INTEGER;
4451   BT_PAR_ID_ORIG_LIST BT_PAR_ID_LIST_TYPE;
4452   BT_PAR_ID_NEW_LIST BT_PAR_ID_LIST_TYPE;
4453 
4454   TYPE BT_PAR_SITE_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES_T.BILL_TO_PARTY_SITE_ID%TYPE
4455         INDEX BY BINARY_INTEGER;
4456   BT_PAR_SITE_ID_ORIG_LIST BT_PAR_SITE_ID_LIST_TYPE;
4457   BT_PAR_SITE_ID_NEW_LIST BT_PAR_SITE_ID_LIST_TYPE;
4458 
4459   TYPE BT_LOC_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES_T.BILL_TO_LOCATION_ID%TYPE
4460         INDEX BY BINARY_INTEGER;
4461   BT_LOC_ID_ORIG_LIST BT_LOC_ID_LIST_TYPE;
4462   BT_LOC_ID_NEW_LIST BT_LOC_ID_LIST_TYPE;
4463 
4464   l_profile_val VARCHAR2(30);
4465   CURSOR merged_records IS
4466         SELECT distinct CUSTOMER_MERGE_HEADER_ID
4467               ,ID
4468               ,BILL_TO_CUST_ACCT_ID
4469               ,BILL_TO_CUST_ACCT_SITE_USE_ID
4470               ,SHIP_TO_CUST_ACCT_SITE_USE_ID
4471          FROM OKL_TAX_SOURCES_T yt, ra_customer_merges m
4472          WHERE (
4473             yt.BILL_TO_CUST_ACCT_ID = m.DUPLICATE_ID
4474             OR yt.BILL_TO_CUST_ACCT_SITE_USE_ID = m.DUPLICATE_SITE_ID
4475             OR yt.SHIP_TO_CUST_ACCT_SITE_USE_ID = m.DUPLICATE_SITE_ID
4476          ) AND    m.process_flag = 'N'
4477          AND    m.request_id = req_id
4478          AND    m.set_number = set_num;
4479 
4480   CURSOR tax_src_dtls_csr(l_tax_src_id NUMBER)
4481   IS
4482     SELECT BILL_TO_PARTY_ID
4483          , BILL_TO_PARTY_SITE_ID
4484          , BILL_TO_LOCATION_ID
4485          , SHIP_TO_PARTY_ID
4486          , SHIP_TO_PARTY_SITE_ID
4487          , SHIP_TO_LOCATION_ID
4488     FROM OKL_TAX_SOURCES_T
4489     WHERE id = l_tax_src_id;
4490 
4491   CURSOR bt_st_dtls_csr(l_site_use_id NUMBER)
4492   IS
4493     SELECT HPS.PARTY_ID
4494          , HPS.PARTY_SITE_ID
4495          , HPS.LOCATION_ID
4496     FROM HZ_PARTY_SITES HPS
4497        , HZ_CUST_ACCT_SITES_ALL CAS
4498        , HZ_CUST_SITE_USES_ALL CSU
4499     WHERE CSU.CUST_ACCT_SITE_ID = CAS.CUST_ACCT_SITE_ID
4500       AND CAS.PARTY_SITE_ID = HPS.PARTY_SITE_ID
4501       AND CSU.SITE_USE_ID = l_site_use_id;
4502 
4503   l_last_fetch BOOLEAN := FALSE;
4504   l_count NUMBER;
4505 BEGIN
4506   l_count := 0;
4507   IF process_mode='LOCK' THEN
4508     NULL;
4509   ELSE
4510     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
4511     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_TAX_SOURCES_T',FALSE);
4512     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
4513     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
4514 
4515     open merged_records;
4516     LOOP
4517       FETCH merged_records BULK COLLECT INTO
4518             MERGE_HEADER_ID_LIST
4519           , PRIMARY_KEY_ID_LIST
4520           , NUM_COL1_ORIG_LIST
4521           , NUM_COL2_ORIG_LIST
4522           , NUM_COL3_ORIG_LIST;
4523 
4524       IF merged_records%NOTFOUND THEN
4525          l_last_fetch := TRUE;
4526       END IF;
4527       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
4528         exit;
4529       END IF;
4530       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
4531          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
4532          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
4533          NUM_COL3_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL3_ORIG_LIST(I));
4534 
4535          OPEN tax_src_dtls_csr(PRIMARY_KEY_ID_LIST(I));
4536          FETCH tax_src_dtls_csr INTO
4537            BT_PAR_ID_ORIG_LIST(I),
4538            BT_PAR_SITE_ID_ORIG_LIST(I),
4539            BT_LOC_ID_ORIG_LIST(I),
4540            ST_PAR_ID_ORIG_LIST(I),
4541            ST_PAR_SITE_ID_ORIG_LIST(I),
4542            ST_LOC_ID_ORIG_LIST(I);
4543          CLOSE tax_src_dtls_csr;
4544 
4545          OPEN bt_st_dtls_csr(NUM_COL2_NEW_LIST(I));
4546          FETCH bt_st_dtls_csr INTO
4547            BT_PAR_ID_NEW_LIST(I),
4548            BT_PAR_SITE_ID_NEW_LIST(I),
4549            BT_LOC_ID_NEW_LIST(I);
4550          CLOSE bt_st_dtls_csr;
4551 
4552          OPEN bt_st_dtls_csr(NUM_COL3_NEW_LIST(I));
4553          FETCH bt_st_dtls_csr INTO
4554            ST_PAR_ID_NEW_LIST(I),
4555            ST_PAR_SITE_ID_NEW_LIST(I),
4556            ST_LOC_ID_NEW_LIST(I);
4557          CLOSE bt_st_dtls_csr;
4558       END LOOP;
4559       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4560         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4561          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4562            MERGE_LOG_ID,
4563            TABLE_NAME,
4564            MERGE_HEADER_ID,
4565            PRIMARY_KEY_ID1,
4566            NUM_COL1_ORIG,
4567            NUM_COL1_NEW,
4568            NUM_COL2_ORIG,
4569            NUM_COL2_NEW,
4570            NUM_COL3_ORIG,
4571            NUM_COL3_NEW,
4572            NUM_COL4_ORIG,
4573            NUM_COL4_NEW,
4574            NUM_COL5_ORIG,
4575            NUM_COL5_NEW,
4576            NUM_COL6_ORIG,
4577            NUM_COL6_NEW,
4578            NUM_COL7_ORIG,
4579            NUM_COL7_NEW,
4580            NUM_COL8_ORIG,
4581            NUM_COL8_NEW,
4582            VCHAR_COL1_ORIG,
4583            VCHAR_COL1_NEW,
4584            ACTION_FLAG,
4585            REQUEST_ID,
4586            CREATED_BY,
4587            CREATION_DATE,
4588            LAST_UPDATE_LOGIN,
4589            LAST_UPDATE_DATE,
4590            LAST_UPDATED_BY
4591       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
4592          'OKL_TAX_SOURCES_T',
4593          MERGE_HEADER_ID_LIST(I),
4594          PRIMARY_KEY_ID_LIST(I),
4595          NUM_COL1_ORIG_LIST(I),
4596          NUM_COL1_NEW_LIST(I),
4597          NUM_COL2_ORIG_LIST(I),
4598          NUM_COL2_NEW_LIST(I),
4599          NUM_COL3_ORIG_LIST(I),
4600          NUM_COL3_NEW_LIST(I),
4601          BT_PAR_ID_ORIG_LIST(I),
4602          BT_PAR_ID_NEW_LIST(I),
4603          BT_PAR_SITE_ID_ORIG_LIST(I),
4604          BT_PAR_SITE_ID_NEW_LIST(I),
4605          BT_LOC_ID_ORIG_LIST(I),
4606          BT_LOC_ID_NEW_LIST(I),
4607          ST_PAR_ID_ORIG_LIST(I),
4608          ST_PAR_ID_NEW_LIST(I),
4609          ST_PAR_SITE_ID_ORIG_LIST(I),
4610          ST_PAR_SITE_ID_NEW_LIST(I),
4611          ST_LOC_ID_ORIG_LIST(I),
4612          ST_LOC_ID_NEW_LIST(I),
4613          'U',
4614          req_id,
4615          hz_utility_pub.CREATED_BY,
4616          hz_utility_pub.CREATION_DATE,
4617          hz_utility_pub.LAST_UPDATE_LOGIN,
4618          hz_utility_pub.LAST_UPDATE_DATE,
4619          hz_utility_pub.LAST_UPDATED_BY
4620       );
4621 
4622     END IF;
4623     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4624       UPDATE OKL_TAX_SOURCES_T yt SET
4625             BILL_TO_CUST_ACCT_ID=NUM_COL1_NEW_LIST(I)
4626           , BILL_TO_CUST_ACCT_SITE_USE_ID=NUM_COL2_NEW_LIST(I)
4627           , SHIP_TO_CUST_ACCT_SITE_USE_ID=NUM_COL3_NEW_LIST(I)
4628           , BILL_TO_PARTY_ID = BT_PAR_ID_NEW_LIST(I)
4629           , BILL_TO_PARTY_SITE_ID = BT_PAR_SITE_ID_NEW_LIST(I)
4630           , BILL_TO_LOCATION_ID = BT_LOC_ID_NEW_LIST(I)
4631           , SHIP_TO_PARTY_ID = ST_PAR_ID_NEW_LIST(I)
4632           , SHIP_TO_PARTY_SITE_ID = ST_PAR_SITE_ID_NEW_LIST(I)
4633           , SHIP_TO_LOCATION_ID = ST_LOC_ID_NEW_LIST(I)
4634           , LAST_UPDATE_DATE=SYSDATE
4635           , last_updated_by=arp_standard.profile.user_id
4636           , last_update_login=arp_standard.profile.last_update_login
4637           , REQUEST_ID=req_id
4638           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
4639           , PROGRAM_ID=arp_standard.profile.program_id
4640           , PROGRAM_UPDATE_DATE=SYSDATE
4641       WHERE ID=PRIMARY_KEY_ID_LIST(I);
4642 
4643       l_count := l_count + SQL%ROWCOUNT;
4644       IF l_last_fetch THEN
4645          EXIT;
4646       END IF;
4647     END LOOP;
4648 
4649     arp_message.set_name('AR','AR_ROWS_UPDATED');
4650     arp_message.set_token('NUM_ROWS',to_char(l_count));
4651   END IF;
4652 EXCEPTION
4653   WHEN OTHERS THEN
4654     IF merged_records%ISOPEN
4655     THEN
4656       CLOSE merged_records;
4657     END IF;
4658     IF tax_src_dtls_csr%ISOPEN
4659     THEN
4660       CLOSE tax_src_dtls_csr;
4661     END IF;
4662     IF bt_st_dtls_csr%ISOPEN
4663     THEN
4664       CLOSE bt_st_dtls_csr;
4665     END IF;
4666     arp_message.set_line( 'TXST_ACCOUNT_MERGE');
4667     RAISE;
4668 END TXST_ACCOUNT_MERGE;
4669 
4670 /*-------------------------------------------------------------
4671 |  PROCEDURE
4672 |      TXS_ACCOUNT_MERGE
4673 |  DESCRIPTION :
4674 |      Account merge procedure for the table, OKL_TAX_SOURCES
4675 |
4676 |  NOTES:
4677 |--------------------------------------------------------------*/
4678 PROCEDURE TXS_ACCOUNT_MERGE (
4679         req_id                       NUMBER,
4680         set_num                      NUMBER,
4681         process_mode                 VARCHAR2) IS
4682 
4683   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
4684        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
4685        INDEX BY BINARY_INTEGER;
4686   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
4687 
4688   TYPE ID_LIST_TYPE IS TABLE OF
4689          OKL_TAX_SOURCES.ID%TYPE
4690         INDEX BY BINARY_INTEGER;
4691   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
4692 
4693   TYPE BILL_TO_CUST_ACCT_ID_LIST_TYPE IS TABLE OF
4694          OKL_TAX_SOURCES.BILL_TO_CUST_ACCT_ID%TYPE
4695         INDEX BY BINARY_INTEGER;
4696   NUM_COL1_ORIG_LIST BILL_TO_CUST_ACCT_ID_LIST_TYPE;
4697   NUM_COL1_NEW_LIST BILL_TO_CUST_ACCT_ID_LIST_TYPE;
4698 
4699   TYPE BT_CA_SU_ID_LIST_TYPE IS TABLE OF
4700          OKL_TAX_SOURCES.BILL_TO_CUST_ACCT_SITE_USE_ID%TYPE
4701         INDEX BY BINARY_INTEGER;
4702   NUM_COL2_ORIG_LIST BT_CA_SU_ID_LIST_TYPE;
4703   NUM_COL2_NEW_LIST BT_CA_SU_ID_LIST_TYPE;
4704 
4705   TYPE ST_CA_SU_ID_LIST_TYPE IS TABLE OF
4706          OKL_TAX_SOURCES.SHIP_TO_CUST_ACCT_SITE_USE_ID%TYPE
4707         INDEX BY BINARY_INTEGER;
4708   NUM_COL3_ORIG_LIST ST_CA_SU_ID_LIST_TYPE;
4709   NUM_COL3_NEW_LIST ST_CA_SU_ID_LIST_TYPE;
4710 
4711   TYPE ST_PAR_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES.SHIP_TO_PARTY_ID%TYPE
4712         INDEX BY BINARY_INTEGER;
4713   ST_PAR_ID_ORIG_LIST ST_PAR_ID_LIST_TYPE;
4714   ST_PAR_ID_NEW_LIST ST_PAR_ID_LIST_TYPE;
4715 
4716   TYPE ST_PAR_SITE_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES.SHIP_TO_PARTY_SITE_ID%TYPE
4717         INDEX BY BINARY_INTEGER;
4718   ST_PAR_SITE_ID_ORIG_LIST ST_PAR_SITE_ID_LIST_TYPE;
4719   ST_PAR_SITE_ID_NEW_LIST ST_PAR_SITE_ID_LIST_TYPE;
4720 
4721   TYPE ST_LOC_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES.SHIP_TO_LOCATION_ID%TYPE
4722         INDEX BY BINARY_INTEGER;
4723   ST_LOC_ID_ORIG_LIST ST_LOC_ID_LIST_TYPE;
4724   ST_LOC_ID_NEW_LIST ST_LOC_ID_LIST_TYPE;
4725 
4726   TYPE BT_PAR_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES.BILL_TO_PARTY_ID%TYPE
4727         INDEX BY BINARY_INTEGER;
4728   BT_PAR_ID_ORIG_LIST BT_PAR_ID_LIST_TYPE;
4729   BT_PAR_ID_NEW_LIST BT_PAR_ID_LIST_TYPE;
4730 
4731   TYPE BT_PAR_SITE_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES.BILL_TO_PARTY_SITE_ID%TYPE
4732         INDEX BY BINARY_INTEGER;
4733   BT_PAR_SITE_ID_ORIG_LIST BT_PAR_SITE_ID_LIST_TYPE;
4734   BT_PAR_SITE_ID_NEW_LIST BT_PAR_SITE_ID_LIST_TYPE;
4735 
4736   TYPE BT_LOC_ID_LIST_TYPE IS TABLE OF OKL_TAX_SOURCES.BILL_TO_LOCATION_ID%TYPE
4737         INDEX BY BINARY_INTEGER;
4738   BT_LOC_ID_ORIG_LIST BT_LOC_ID_LIST_TYPE;
4739   BT_LOC_ID_NEW_LIST BT_LOC_ID_LIST_TYPE;
4740 
4741   l_profile_val VARCHAR2(30);
4742   CURSOR merged_records IS
4743         SELECT distinct CUSTOMER_MERGE_HEADER_ID
4744               ,ID
4745               ,BILL_TO_CUST_ACCT_ID
4746               ,BILL_TO_CUST_ACCT_SITE_USE_ID
4747               ,SHIP_TO_CUST_ACCT_SITE_USE_ID
4748          FROM OKL_TAX_SOURCES yt, ra_customer_merges m
4749          WHERE (
4750             yt.BILL_TO_CUST_ACCT_ID = m.DUPLICATE_ID
4751             OR yt.BILL_TO_CUST_ACCT_SITE_USE_ID = m.DUPLICATE_SITE_ID
4752             OR yt.SHIP_TO_CUST_ACCT_SITE_USE_ID = m.DUPLICATE_SITE_ID
4753          ) AND    m.process_flag = 'N'
4754          AND    m.request_id = req_id
4755          AND    m.set_number = set_num;
4756 
4757   CURSOR tax_src_dtls_csr(l_tax_src_id NUMBER)
4758   IS
4759     SELECT BILL_TO_PARTY_ID
4760          , BILL_TO_PARTY_SITE_ID
4761          , BILL_TO_LOCATION_ID
4762          , SHIP_TO_PARTY_ID
4763          , SHIP_TO_PARTY_SITE_ID
4764          , SHIP_TO_LOCATION_ID
4765     FROM OKL_TAX_SOURCES
4766     WHERE id = l_tax_src_id;
4767 
4768   CURSOR bt_st_dtls_csr(l_site_use_id NUMBER)
4769   IS
4770     SELECT HPS.PARTY_ID
4771          , HPS.PARTY_SITE_ID
4772          , HPS.LOCATION_ID
4773     FROM HZ_PARTY_SITES HPS
4774        , HZ_CUST_ACCT_SITES_ALL CAS
4775        , HZ_CUST_SITE_USES_ALL CSU
4776     WHERE CSU.CUST_ACCT_SITE_ID = CAS.CUST_ACCT_SITE_ID
4777       AND CAS.PARTY_SITE_ID = HPS.PARTY_SITE_ID
4778       AND CSU.SITE_USE_ID = l_site_use_id;
4779 
4780   l_last_fetch BOOLEAN := FALSE;
4781   l_count NUMBER;
4782 BEGIN
4783   l_count := 0;
4784   IF process_mode='LOCK' THEN
4785     NULL;
4786   ELSE
4787     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
4788     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_TAX_SOURCES',FALSE);
4789     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
4790     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
4791 
4792     open merged_records;
4793     LOOP
4794       FETCH merged_records BULK COLLECT INTO
4795          MERGE_HEADER_ID_LIST
4796           , PRIMARY_KEY_ID_LIST
4797           , NUM_COL1_ORIG_LIST
4798           , NUM_COL2_ORIG_LIST
4799           , NUM_COL3_ORIG_LIST;
4800 
4801       IF merged_records%NOTFOUND THEN
4802          l_last_fetch := TRUE;
4803       END IF;
4804       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
4805         exit;
4806       END IF;
4807       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
4808          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
4809          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
4810          NUM_COL3_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL3_ORIG_LIST(I));
4811 
4812          OPEN tax_src_dtls_csr(PRIMARY_KEY_ID_LIST(I));
4813          FETCH tax_src_dtls_csr INTO
4814            BT_PAR_ID_ORIG_LIST(I),
4815            BT_PAR_SITE_ID_ORIG_LIST(I),
4816            BT_LOC_ID_ORIG_LIST(I),
4817            ST_PAR_ID_ORIG_LIST(I),
4818            ST_PAR_SITE_ID_ORIG_LIST(I),
4819            ST_LOC_ID_ORIG_LIST(I);
4820          CLOSE tax_src_dtls_csr;
4821 
4822          OPEN bt_st_dtls_csr(NUM_COL2_NEW_LIST(I));
4823          FETCH bt_st_dtls_csr INTO
4824            BT_PAR_ID_NEW_LIST(I),
4825            BT_PAR_SITE_ID_NEW_LIST(I),
4826            BT_LOC_ID_NEW_LIST(I);
4827          CLOSE bt_st_dtls_csr;
4828 
4829          OPEN bt_st_dtls_csr(NUM_COL3_NEW_LIST(I));
4830          FETCH bt_st_dtls_csr INTO
4831            ST_PAR_ID_NEW_LIST(I),
4832            ST_PAR_SITE_ID_NEW_LIST(I),
4833            ST_LOC_ID_NEW_LIST(I);
4834          CLOSE bt_st_dtls_csr;
4835       END LOOP;
4836       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
4837         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4838          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
4839            MERGE_LOG_ID,
4840            TABLE_NAME,
4841            MERGE_HEADER_ID,
4842            PRIMARY_KEY_ID1,
4843            NUM_COL1_ORIG,
4844            NUM_COL1_NEW,
4845            NUM_COL2_ORIG,
4846            NUM_COL2_NEW,
4847            NUM_COL3_ORIG,
4848            NUM_COL3_NEW,
4849            NUM_COL4_ORIG,
4850            NUM_COL4_NEW,
4851            NUM_COL5_ORIG,
4852            NUM_COL5_NEW,
4853            NUM_COL6_ORIG,
4854            NUM_COL6_NEW,
4855            NUM_COL7_ORIG,
4856            NUM_COL7_NEW,
4857            NUM_COL8_ORIG,
4858            NUM_COL8_NEW,
4859            VCHAR_COL1_ORIG,
4860            VCHAR_COL1_NEW,
4861            ACTION_FLAG,
4862            REQUEST_ID,
4863            CREATED_BY,
4864            CREATION_DATE,
4865            LAST_UPDATE_LOGIN,
4866            LAST_UPDATE_DATE,
4867            LAST_UPDATED_BY
4868       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
4869          'OKL_TAX_SOURCES',
4870          MERGE_HEADER_ID_LIST(I),
4871          PRIMARY_KEY_ID_LIST(I),
4872          NUM_COL1_ORIG_LIST(I),
4873          NUM_COL1_NEW_LIST(I),
4874          NUM_COL2_ORIG_LIST(I),
4875          NUM_COL2_NEW_LIST(I),
4876          NUM_COL3_ORIG_LIST(I),
4877          NUM_COL3_NEW_LIST(I),
4878          BT_PAR_ID_ORIG_LIST(I),
4879          BT_PAR_ID_NEW_LIST(I),
4880          BT_PAR_SITE_ID_ORIG_LIST(I),
4881          BT_PAR_SITE_ID_NEW_LIST(I),
4882          BT_LOC_ID_ORIG_LIST(I),
4883          BT_LOC_ID_NEW_LIST(I),
4884          ST_PAR_ID_ORIG_LIST(I),
4885          ST_PAR_ID_NEW_LIST(I),
4886          ST_PAR_SITE_ID_ORIG_LIST(I),
4887          ST_PAR_SITE_ID_NEW_LIST(I),
4888          ST_LOC_ID_ORIG_LIST(I),
4889          ST_LOC_ID_NEW_LIST(I),
4890          'U',
4891          req_id,
4892          hz_utility_pub.CREATED_BY,
4893          hz_utility_pub.CREATION_DATE,
4894          hz_utility_pub.LAST_UPDATE_LOGIN,
4895          hz_utility_pub.LAST_UPDATE_DATE,
4896          hz_utility_pub.LAST_UPDATED_BY
4897       );
4898 
4899     END IF;
4900     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
4901       UPDATE OKL_TAX_SOURCES yt SET
4902             BILL_TO_CUST_ACCT_ID=NUM_COL1_NEW_LIST(I)
4903           , BILL_TO_CUST_ACCT_SITE_USE_ID=NUM_COL2_NEW_LIST(I)
4904           , SHIP_TO_CUST_ACCT_SITE_USE_ID=NUM_COL3_NEW_LIST(I)
4905           , BILL_TO_PARTY_ID = BT_PAR_ID_NEW_LIST(I)
4906           , BILL_TO_PARTY_SITE_ID = BT_PAR_SITE_ID_NEW_LIST(I)
4907           , BILL_TO_LOCATION_ID = BT_LOC_ID_NEW_LIST(I)
4908           , SHIP_TO_PARTY_ID = ST_PAR_ID_NEW_LIST(I)
4909           , SHIP_TO_PARTY_SITE_ID = ST_PAR_SITE_ID_NEW_LIST(I)
4910           , SHIP_TO_LOCATION_ID = ST_LOC_ID_NEW_LIST(I)
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           , REQUEST_ID=req_id
4915           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
4916           , PROGRAM_ID=arp_standard.profile.program_id
4917           , PROGRAM_UPDATE_DATE=SYSDATE
4918       WHERE ID=PRIMARY_KEY_ID_LIST(I);
4919 
4920       l_count := l_count + SQL%ROWCOUNT;
4921       IF l_last_fetch THEN
4922          EXIT;
4923       END IF;
4924     END LOOP;
4925 
4926     arp_message.set_name('AR','AR_ROWS_UPDATED');
4927     arp_message.set_token('NUM_ROWS',to_char(l_count));
4928   END IF;
4929 EXCEPTION
4930   WHEN OTHERS THEN
4931     IF merged_records%ISOPEN
4932     THEN
4933       CLOSE merged_records;
4934     END IF;
4935     IF tax_src_dtls_csr%ISOPEN
4936     THEN
4937       CLOSE tax_src_dtls_csr;
4938     END IF;
4939     IF bt_st_dtls_csr%ISOPEN
4940     THEN
4941       CLOSE bt_st_dtls_csr;
4942     END IF;
4943     arp_message.set_line( 'TXS_ACCOUNT_MERGE');
4944     RAISE;
4945 END TXS_ACCOUNT_MERGE;
4946 
4947 /*-------------------------------------------------------------
4948 |  PROCEDURE
4949 |      TAI_ACCOUNT_MERGE
4950 |  DESCRIPTION :
4951 |      Account merge procedure for the table, OKL_TRX_AR_INVOICES_B
4952 |
4953 |  NOTES:
4954 |--------------------------------------------------------------*/
4955 PROCEDURE TAI_ACCOUNT_MERGE (
4956         req_id                       NUMBER,
4957         set_num                      NUMBER,
4958         process_mode                 VARCHAR2) IS
4959 
4960   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
4961        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
4962        INDEX BY BINARY_INTEGER;
4963   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
4964 
4965   TYPE ID_LIST_TYPE IS TABLE OF
4966          OKL_TRX_AR_INVOICES_B.ID%TYPE
4967         INDEX BY BINARY_INTEGER;
4968   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
4969 
4970   TYPE IBT_ID_LIST_TYPE IS TABLE OF
4971          OKL_TRX_AR_INVOICES_B.IBT_ID%TYPE
4972         INDEX BY BINARY_INTEGER;
4973   NUM_COL1_ORIG_LIST IBT_ID_LIST_TYPE;
4974   NUM_COL1_NEW_LIST IBT_ID_LIST_TYPE;
4975 
4976   TYPE IXX_ID_LIST_TYPE IS TABLE OF
4977          OKL_TRX_AR_INVOICES_B.IXX_ID%TYPE
4978         INDEX BY BINARY_INTEGER;
4979   NUM_COL2_ORIG_LIST IXX_ID_LIST_TYPE;
4980   NUM_COL2_NEW_LIST IXX_ID_LIST_TYPE;
4981 
4982   l_profile_val VARCHAR2(30);
4983   CURSOR merged_records IS
4984         SELECT distinct CUSTOMER_MERGE_HEADER_ID
4985               ,ID
4986               ,IBT_ID
4987               ,IXX_ID
4988          FROM OKL_TRX_AR_INVOICES_B yt, ra_customer_merges m
4989          WHERE (
4990             yt.IBT_ID = m.DUPLICATE_SITE_ID
4991             OR yt.IXX_ID = m.DUPLICATE_ID
4992          ) AND    m.process_flag = 'N'
4993          AND    m.request_id = req_id
4994          AND    m.set_number = set_num;
4995   l_last_fetch BOOLEAN := FALSE;
4996   l_count NUMBER;
4997 BEGIN
4998   l_count := 0;
4999   IF process_mode='LOCK' THEN
5000     NULL;
5001   ELSE
5002     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5003     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_TRX_AR_INVOICES_B',FALSE);
5004     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5005     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5006 
5007     open merged_records;
5008     LOOP
5009       FETCH merged_records BULK COLLECT INTO
5010          MERGE_HEADER_ID_LIST
5011           , PRIMARY_KEY_ID_LIST
5012           , NUM_COL1_ORIG_LIST
5013           , NUM_COL2_ORIG_LIST
5014           ;
5015       IF merged_records%NOTFOUND THEN
5016          l_last_fetch := TRUE;
5017       END IF;
5018       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5019         exit;
5020       END IF;
5021       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5022          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL1_ORIG_LIST(I));
5023          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL2_ORIG_LIST(I));
5024       END LOOP;
5025       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5026         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5027          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5028            MERGE_LOG_ID,
5029            TABLE_NAME,
5030            MERGE_HEADER_ID,
5031            PRIMARY_KEY_ID1,
5032            NUM_COL1_ORIG,
5033            NUM_COL1_NEW,
5034            NUM_COL2_ORIG,
5035            NUM_COL2_NEW,
5036            ACTION_FLAG,
5037            REQUEST_ID,
5038            CREATED_BY,
5039            CREATION_DATE,
5040            LAST_UPDATE_LOGIN,
5041            LAST_UPDATE_DATE,
5042            LAST_UPDATED_BY
5043       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5044          'OKL_TRX_AR_INVOICES_B',
5045          MERGE_HEADER_ID_LIST(I),
5046          PRIMARY_KEY_ID_LIST(I),
5047          NUM_COL1_ORIG_LIST(I),
5048          NUM_COL1_NEW_LIST(I),
5049          NUM_COL2_ORIG_LIST(I),
5050          NUM_COL2_NEW_LIST(I),
5051          'U',
5052          req_id,
5053          hz_utility_pub.CREATED_BY,
5054          hz_utility_pub.CREATION_DATE,
5055          hz_utility_pub.LAST_UPDATE_LOGIN,
5056          hz_utility_pub.LAST_UPDATE_DATE,
5057          hz_utility_pub.LAST_UPDATED_BY
5058       );
5059 
5060     END IF;
5061     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5062       UPDATE OKL_TRX_AR_INVOICES_B yt SET
5063            IBT_ID=NUM_COL1_NEW_LIST(I)
5064           ,IXX_ID=NUM_COL2_NEW_LIST(I)
5065           , LAST_UPDATE_DATE=SYSDATE
5066           , last_updated_by=arp_standard.profile.user_id
5067           , last_update_login=arp_standard.profile.last_update_login
5068           , REQUEST_ID=req_id
5069           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
5070           , PROGRAM_ID=arp_standard.profile.program_id
5071           , PROGRAM_UPDATE_DATE=SYSDATE
5072       WHERE ID=PRIMARY_KEY_ID_LIST(I);
5073 
5074       l_count := l_count + SQL%ROWCOUNT;
5075       IF l_last_fetch THEN
5076          EXIT;
5077       END IF;
5078     END LOOP;
5079 
5080     arp_message.set_name('AR','AR_ROWS_UPDATED');
5081     arp_message.set_token('NUM_ROWS',to_char(l_count));
5082   END IF;
5083 EXCEPTION
5084   WHEN OTHERS THEN
5085     arp_message.set_line( 'TAI_ACCOUNT_MERGE');
5086     RAISE;
5087 END TAI_ACCOUNT_MERGE;
5088 
5089 /*-------------------------------------------------------------
5090 |  PROCEDURE
5091 |      RCA_ACCOUNT_MERGE
5092 |  DESCRIPTION :
5093 |      Account merge procedure for the table, OKL_TXL_RCPT_APPS_B
5094 |
5095 |  NOTES:
5096 |--------------------------------------------------------------*/
5097 PROCEDURE RCA_ACCOUNT_MERGE (
5098         req_id                       NUMBER,
5099         set_num                      NUMBER,
5100         process_mode                 VARCHAR2) IS
5101 
5102   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
5103        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
5104        INDEX BY BINARY_INTEGER;
5105   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
5106 
5107   TYPE ID_LIST_TYPE IS TABLE OF
5108          OKL_TXL_RCPT_APPS_B.ID%TYPE
5109         INDEX BY BINARY_INTEGER;
5110   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
5111 
5112   TYPE ILE_ID_LIST_TYPE IS TABLE OF
5113          OKL_TXL_RCPT_APPS_B.ILE_ID%TYPE
5114         INDEX BY BINARY_INTEGER;
5115   NUM_COL1_ORIG_LIST ILE_ID_LIST_TYPE;
5116   NUM_COL1_NEW_LIST ILE_ID_LIST_TYPE;
5117 
5118   l_profile_val VARCHAR2(30);
5119   CURSOR merged_records IS
5120         SELECT distinct CUSTOMER_MERGE_HEADER_ID
5121               ,ID
5122               ,ILE_ID
5123          FROM OKL_TXL_RCPT_APPS_B yt, ra_customer_merges m
5124          WHERE (
5125             yt.ILE_ID = m.DUPLICATE_ID
5126          ) AND    m.process_flag = 'N'
5127          AND    m.request_id = req_id
5128          AND    m.set_number = set_num;
5129   l_last_fetch BOOLEAN := FALSE;
5130   l_count NUMBER;
5131 BEGIN
5132   l_count := 0;
5133   IF process_mode='LOCK' THEN
5134     NULL;
5135   ELSE
5136     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5137     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_TXL_RCPT_APPS_B',FALSE);
5138     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5139     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5140 
5141     open merged_records;
5142     LOOP
5143       FETCH merged_records BULK COLLECT INTO
5144          MERGE_HEADER_ID_LIST
5145           , PRIMARY_KEY_ID_LIST
5146           , NUM_COL1_ORIG_LIST
5147           ;
5148       IF merged_records%NOTFOUND THEN
5149          l_last_fetch := TRUE;
5150       END IF;
5151       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5152         exit;
5153       END IF;
5154       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5155          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
5156       END LOOP;
5157       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5158         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5159          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5160            MERGE_LOG_ID,
5161            TABLE_NAME,
5162            MERGE_HEADER_ID,
5163            PRIMARY_KEY_ID1,
5164            NUM_COL1_ORIG,
5165            NUM_COL1_NEW,
5166            ACTION_FLAG,
5167            REQUEST_ID,
5168            CREATED_BY,
5169            CREATION_DATE,
5170            LAST_UPDATE_LOGIN,
5171            LAST_UPDATE_DATE,
5172            LAST_UPDATED_BY
5173       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5174          'OKL_TXL_RCPT_APPS_B',
5175          MERGE_HEADER_ID_LIST(I),
5176          PRIMARY_KEY_ID_LIST(I),
5177          NUM_COL1_ORIG_LIST(I),
5178          NUM_COL1_NEW_LIST(I),
5179          'U',
5180          req_id,
5181          hz_utility_pub.CREATED_BY,
5182          hz_utility_pub.CREATION_DATE,
5183          hz_utility_pub.LAST_UPDATE_LOGIN,
5184          hz_utility_pub.LAST_UPDATE_DATE,
5185          hz_utility_pub.LAST_UPDATED_BY
5186       );
5187 
5188     END IF;
5189     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5190       UPDATE OKL_TXL_RCPT_APPS_B yt SET
5191            ILE_ID=NUM_COL1_NEW_LIST(I)
5192           , LAST_UPDATE_DATE=SYSDATE
5193           , last_updated_by=arp_standard.profile.user_id
5194           , last_update_login=arp_standard.profile.last_update_login
5195           , REQUEST_ID=req_id
5196           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
5197           , PROGRAM_ID=arp_standard.profile.program_id
5198           , PROGRAM_UPDATE_DATE=SYSDATE
5199       WHERE ID=PRIMARY_KEY_ID_LIST(I);
5200 
5201       l_count := l_count + SQL%ROWCOUNT;
5202       IF l_last_fetch THEN
5203          EXIT;
5204       END IF;
5205     END LOOP;
5206 
5207     arp_message.set_name('AR','AR_ROWS_UPDATED');
5208     arp_message.set_token('NUM_ROWS',to_char(l_count));
5209   END IF;
5210 EXCEPTION
5211   WHEN OTHERS THEN
5212     arp_message.set_line( 'RCA_ACCOUNT_MERGE');
5213     RAISE;
5214 END RCA_ACCOUNT_MERGE;
5215 
5216 /*-------------------------------------------------------------
5217 |  PROCEDURE
5218 |      CNR_ACCOUNT_MERGE
5219 |  DESCRIPTION :
5220 |      Account merge procedure for the table, OKL_CNSLD_AR_HDRS_B
5221 |
5222 |  NOTES:
5223 |--------------------------------------------------------------*/
5224 PROCEDURE CNR_ACCOUNT_MERGE (
5225         req_id                       NUMBER,
5226         set_num                      NUMBER,
5227         process_mode                 VARCHAR2) IS
5228 
5229   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
5230        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
5231        INDEX BY BINARY_INTEGER;
5232   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
5233 
5234   TYPE ID_LIST_TYPE IS TABLE OF
5235          OKL_CNSLD_AR_HDRS_B.ID%TYPE
5236         INDEX BY BINARY_INTEGER;
5237   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
5238 
5239   TYPE IXX_ID_LIST_TYPE IS TABLE OF
5240          OKL_CNSLD_AR_HDRS_B.IXX_ID%TYPE
5241         INDEX BY BINARY_INTEGER;
5242   NUM_COL1_ORIG_LIST IXX_ID_LIST_TYPE;
5243   NUM_COL1_NEW_LIST IXX_ID_LIST_TYPE;
5244 
5245   TYPE IBT_ID_LIST_TYPE IS TABLE OF
5246          OKL_CNSLD_AR_HDRS_B.IBT_ID%TYPE
5247         INDEX BY BINARY_INTEGER;
5248   NUM_COL2_ORIG_LIST IBT_ID_LIST_TYPE;
5249   NUM_COL2_NEW_LIST IBT_ID_LIST_TYPE;
5250 
5251   l_profile_val VARCHAR2(30);
5252   CURSOR merged_records IS
5253         SELECT distinct CUSTOMER_MERGE_HEADER_ID
5254               ,ID
5255               ,IXX_ID
5256               ,IBT_ID
5257          FROM OKL_CNSLD_AR_HDRS_B yt, ra_customer_merges m
5258          WHERE (
5259             yt.IXX_ID = m.DUPLICATE_ID
5260             OR yt.IBT_ID = m.DUPLICATE_SITE_ID
5261          ) AND    m.process_flag = 'N'
5262          AND    m.request_id = req_id
5263          AND    m.set_number = set_num;
5264   l_last_fetch BOOLEAN := FALSE;
5265   l_count NUMBER;
5266 BEGIN
5267   l_count := 0;
5268   IF process_mode='LOCK' THEN
5269     NULL;
5270   ELSE
5271     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5272     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_CNSLD_AR_HDRS_B',FALSE);
5273     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5274     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5275 
5276     open merged_records;
5277     LOOP
5278       FETCH merged_records BULK COLLECT INTO
5279          MERGE_HEADER_ID_LIST
5280           , PRIMARY_KEY_ID_LIST
5281           , NUM_COL1_ORIG_LIST
5282           , NUM_COL2_ORIG_LIST
5283           ;
5284       IF merged_records%NOTFOUND THEN
5285          l_last_fetch := TRUE;
5286       END IF;
5287       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5288         exit;
5289       END IF;
5290       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5291          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
5292          NUM_COL2_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL2_ORIG_LIST(I));
5293       END LOOP;
5294       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5295         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5296          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5297            MERGE_LOG_ID,
5298            TABLE_NAME,
5299            MERGE_HEADER_ID,
5300            PRIMARY_KEY_ID1,
5301            NUM_COL1_ORIG,
5302            NUM_COL1_NEW,
5303            NUM_COL2_ORIG,
5304            NUM_COL2_NEW,
5305            ACTION_FLAG,
5306            REQUEST_ID,
5307            CREATED_BY,
5308            CREATION_DATE,
5309            LAST_UPDATE_LOGIN,
5310            LAST_UPDATE_DATE,
5311            LAST_UPDATED_BY
5312       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5313          'OKL_CNSLD_AR_HDRS_B',
5314          MERGE_HEADER_ID_LIST(I),
5315          PRIMARY_KEY_ID_LIST(I),
5316          NUM_COL1_ORIG_LIST(I),
5317          NUM_COL1_NEW_LIST(I),
5318          NUM_COL2_ORIG_LIST(I),
5319          NUM_COL2_NEW_LIST(I),
5320          'U',
5321          req_id,
5322          hz_utility_pub.CREATED_BY,
5323          hz_utility_pub.CREATION_DATE,
5324          hz_utility_pub.LAST_UPDATE_LOGIN,
5325          hz_utility_pub.LAST_UPDATE_DATE,
5326          hz_utility_pub.LAST_UPDATED_BY
5327       );
5328 
5329     END IF;
5330     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5331       UPDATE OKL_CNSLD_AR_HDRS_B yt SET
5332            IXX_ID=NUM_COL1_NEW_LIST(I)
5333           ,IBT_ID=NUM_COL2_NEW_LIST(I)
5334           , LAST_UPDATE_DATE=SYSDATE
5335           , last_updated_by=arp_standard.profile.user_id
5336           , last_update_login=arp_standard.profile.last_update_login
5337           , REQUEST_ID=req_id
5338           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
5339           , PROGRAM_ID=arp_standard.profile.program_id
5340           , PROGRAM_UPDATE_DATE=SYSDATE
5341       WHERE ID=PRIMARY_KEY_ID_LIST(I);
5342 
5343       l_count := l_count + SQL%ROWCOUNT;
5344       IF l_last_fetch THEN
5345          EXIT;
5346       END IF;
5347     END LOOP;
5348 
5349     arp_message.set_name('AR','AR_ROWS_UPDATED');
5350     arp_message.set_token('NUM_ROWS',to_char(l_count));
5351   END IF;
5352 EXCEPTION
5353   WHEN OTHERS THEN
5354     arp_message.set_line( 'CNR_ACCOUNT_MERGE');
5355     RAISE;
5356 END CNR_ACCOUNT_MERGE;
5357 
5358 /*-------------------------------------------------------------
5359 |  PROCEDURE
5360 |      CLG_ACCOUNT_MERGE
5361 |  DESCRIPTION :
5362 |      Account merge procedure for the table, OKL_CNTR_LVLNG_GRPS_B
5363 |
5364 |  NOTES:
5365 |--------------------------------------------------------------*/
5366 PROCEDURE CLG_ACCOUNT_MERGE (
5367         req_id                       NUMBER,
5368         set_num                      NUMBER,
5369         process_mode                 VARCHAR2) IS
5370 
5371   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
5372        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
5373        INDEX BY BINARY_INTEGER;
5374   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
5375 
5376   TYPE ID_LIST_TYPE IS TABLE OF
5377          OKL_CNTR_LVLNG_GRPS_B.ID%TYPE
5378         INDEX BY BINARY_INTEGER;
5379   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
5380 
5381   TYPE ICA_ID_LIST_TYPE IS TABLE OF
5382          OKL_CNTR_LVLNG_GRPS_B.ICA_ID%TYPE
5383         INDEX BY BINARY_INTEGER;
5384   NUM_COL1_ORIG_LIST ICA_ID_LIST_TYPE;
5385   NUM_COL1_NEW_LIST ICA_ID_LIST_TYPE;
5386 
5387   l_profile_val VARCHAR2(30);
5388   CURSOR merged_records IS
5389         SELECT distinct CUSTOMER_MERGE_HEADER_ID
5390               ,ID
5391               ,ICA_ID
5392          FROM OKL_CNTR_LVLNG_GRPS_B yt, ra_customer_merges m
5393          WHERE (
5394             yt.ICA_ID = m.DUPLICATE_ID
5395          ) AND    m.process_flag = 'N'
5396          AND    m.request_id = req_id
5397          AND    m.set_number = set_num;
5398   l_last_fetch BOOLEAN := FALSE;
5399   l_count NUMBER;
5400 BEGIN
5401   l_count := 0;
5402   IF process_mode='LOCK' THEN
5403     NULL;
5404   ELSE
5405     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5406     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_CNTR_LVLNG_GRPS_B',FALSE);
5407     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5408     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5409 
5410     open merged_records;
5411     LOOP
5412       FETCH merged_records BULK COLLECT INTO
5413          MERGE_HEADER_ID_LIST
5414           , PRIMARY_KEY_ID_LIST
5415           , NUM_COL1_ORIG_LIST
5416           ;
5417       IF merged_records%NOTFOUND THEN
5418          l_last_fetch := TRUE;
5419       END IF;
5420       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5421         exit;
5422       END IF;
5423       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5424          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
5425       END LOOP;
5426       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5427         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5428          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5429            MERGE_LOG_ID,
5430            TABLE_NAME,
5431            MERGE_HEADER_ID,
5432            PRIMARY_KEY_ID1,
5433            NUM_COL1_ORIG,
5434            NUM_COL1_NEW,
5435            ACTION_FLAG,
5436            REQUEST_ID,
5437            CREATED_BY,
5438            CREATION_DATE,
5439            LAST_UPDATE_LOGIN,
5440            LAST_UPDATE_DATE,
5441            LAST_UPDATED_BY
5442       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5443          'OKL_CNTR_LVLNG_GRPS_B',
5444          MERGE_HEADER_ID_LIST(I),
5445          PRIMARY_KEY_ID_LIST(I),
5446          NUM_COL1_ORIG_LIST(I),
5447          NUM_COL1_NEW_LIST(I),
5448          'U',
5449          req_id,
5450          hz_utility_pub.CREATED_BY,
5451          hz_utility_pub.CREATION_DATE,
5452          hz_utility_pub.LAST_UPDATE_LOGIN,
5453          hz_utility_pub.LAST_UPDATE_DATE,
5454          hz_utility_pub.LAST_UPDATED_BY
5455       );
5456 
5457     END IF;
5458     FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5459       UPDATE OKL_CNTR_LVLNG_GRPS_B yt SET
5460            ICA_ID=NUM_COL1_NEW_LIST(I)
5461           , LAST_UPDATE_DATE=SYSDATE
5462           , last_updated_by=arp_standard.profile.user_id
5463           , last_update_login=arp_standard.profile.last_update_login
5464       WHERE ID=PRIMARY_KEY_ID_LIST(I);
5465 
5466       l_count := l_count + SQL%ROWCOUNT;
5467       IF l_last_fetch THEN
5468          EXIT;
5469       END IF;
5470     END LOOP;
5471 
5472     arp_message.set_name('AR','AR_ROWS_UPDATED');
5473     arp_message.set_token('NUM_ROWS',to_char(l_count));
5474   END IF;
5475 EXCEPTION
5476   WHEN OTHERS THEN
5477     arp_message.set_line( 'CLG_ACCOUNT_MERGE');
5478     RAISE;
5479 END CLG_ACCOUNT_MERGE;
5480 
5481 /*-------------------------------------------------------------
5482 |  PROCEDURE
5483 |      ASE_ACCOUNT_MERGE
5484 |  DESCRIPTION :
5485 |      Account merge procedure for the table, OKL_ACCT_SOURCES
5486 |--------------------------------------------------------------*/
5487 PROCEDURE ASE_ACCOUNT_MERGE (
5488         req_id                       NUMBER,
5489         set_num                      NUMBER,
5490         process_mode                 VARCHAR2) IS
5491 
5492   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
5493        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
5494        INDEX BY BINARY_INTEGER;
5495   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
5496 
5497   TYPE ID_LIST_TYPE IS TABLE OF
5498          OKL_ACCT_SOURCES.ID%TYPE
5499         INDEX BY BINARY_INTEGER;
5500   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
5501 
5502   TYPE REC_SITE_USES_PK_LIST_TYPE IS TABLE OF
5503          OKL_ACCT_SOURCES.REC_SITE_USES_PK%TYPE
5504         INDEX BY BINARY_INTEGER;
5505   NUM_COL1_ORIG_LIST REC_SITE_USES_PK_LIST_TYPE;
5506   NUM_COL1_NEW_LIST REC_SITE_USES_PK_LIST_TYPE;
5507 
5508   l_profile_val VARCHAR2(30);
5509   CURSOR merged_records IS
5510         SELECT distinct CUSTOMER_MERGE_HEADER_ID
5511               ,ID
5512               ,REC_SITE_USES_PK
5513          FROM OKL_ACCT_SOURCES yt, ra_customer_merges m
5514          WHERE (
5515             yt.REC_SITE_USES_PK = m.DUPLICATE_SITE_ID
5516          ) AND    m.process_flag = 'N'
5517          AND    m.request_id = req_id
5518          AND    m.set_number = set_num;
5519   l_last_fetch BOOLEAN := FALSE;
5520   l_count NUMBER;
5521 BEGIN
5522   IF process_mode='LOCK' THEN
5523     NULL;
5524   ELSE
5525     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5526     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_ACCT_SOURCES',FALSE);
5527     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5528     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5529 
5530     open merged_records;
5531     LOOP
5532       FETCH merged_records BULK COLLECT INTO
5533          MERGE_HEADER_ID_LIST
5534           , PRIMARY_KEY_ID_LIST
5535           , NUM_COL1_ORIG_LIST
5536           ;
5537       IF merged_records%NOTFOUND THEN
5538          l_last_fetch := TRUE;
5539       END IF;
5540       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5541         exit;
5542       END IF;
5543       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5544          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL1_ORIG_LIST(I));
5545       END LOOP;
5546       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5547         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5548          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5549            MERGE_LOG_ID,
5550            TABLE_NAME,
5551            MERGE_HEADER_ID,
5552            PRIMARY_KEY_ID1,
5553            NUM_COL1_ORIG,
5554            NUM_COL1_NEW,
5555            ACTION_FLAG,
5556            REQUEST_ID,
5557            CREATED_BY,
5558            CREATION_DATE,
5559            LAST_UPDATE_LOGIN,
5560            LAST_UPDATE_DATE,
5561            LAST_UPDATED_BY
5562       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5563          'OKL_ACCT_SOURCES',
5564          MERGE_HEADER_ID_LIST(I),
5565          PRIMARY_KEY_ID_LIST(I),
5566          NUM_COL1_ORIG_LIST(I),
5567          NUM_COL1_NEW_LIST(I),
5568          'U',
5569          req_id,
5570          hz_utility_pub.CREATED_BY,
5571          hz_utility_pub.CREATION_DATE,
5572          hz_utility_pub.LAST_UPDATE_LOGIN,
5573          hz_utility_pub.LAST_UPDATE_DATE,
5574          hz_utility_pub.LAST_UPDATED_BY
5575       );
5576 
5577     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5578       UPDATE OKL_ACCT_SOURCES yt SET
5579            REC_SITE_USES_PK=NUM_COL1_NEW_LIST(I)
5580           , LAST_UPDATE_DATE=SYSDATE
5581           , last_updated_by=arp_standard.profile.user_id
5582           , last_update_login=arp_standard.profile.last_update_login
5583           , REQUEST_ID=req_id
5584           , PROGRAM_APPLICATION_ID=arp_standard.profile.program_application_id
5585           , PROGRAM_ID=arp_standard.profile.program_id
5586           , PROGRAM_UPDATE_DATE=SYSDATE
5587       WHERE ID=PRIMARY_KEY_ID_LIST(I)
5588          ;
5589       l_count := l_count + SQL%ROWCOUNT;
5590       IF l_last_fetch THEN
5591          EXIT;
5592       END IF;
5593     END LOOP;
5594 
5595     arp_message.set_name('AR','AR_ROWS_UPDATED');
5596     arp_message.set_token('NUM_ROWS',to_char(l_count));
5597   END IF;
5598 EXCEPTION
5599   WHEN OTHERS THEN
5600     arp_message.set_line( 'ASE_ACCOUNT_MERGE');
5601     RAISE;
5602 END ASE_ACCOUNT_MERGE;
5603 
5604 /*-------------------------------------------------------------
5605 |  PROCEDURE
5606 |      SID_ACCOUNT_MERGE
5607 |  DESCRIPTION :
5608 |      Account merge procedure for the table, OKL_SUPP_INVOICE_DTLS
5609 |--------------------------------------------------------------*/
5610 PROCEDURE SID_ACCOUNT_MERGE (
5611         req_id                       NUMBER,
5612         set_num                      NUMBER,
5613         process_mode                 VARCHAR2) IS
5614 
5615   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
5616        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
5617        INDEX BY BINARY_INTEGER;
5618   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
5619 
5620   TYPE ID_LIST_TYPE IS TABLE OF
5621          OKL_SUPP_INVOICE_DTLS.ID%TYPE
5622         INDEX BY BINARY_INTEGER;
5623   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
5624 
5625   TYPE SHIPPING_ADDRESS_ID1_LIST_TYPE IS TABLE OF
5626          OKL_SUPP_INVOICE_DTLS.SHIPPING_ADDRESS_ID1%TYPE
5627         INDEX BY BINARY_INTEGER;
5628   NUM_COL1_ORIG_LIST SHIPPING_ADDRESS_ID1_LIST_TYPE;
5629   NUM_COL1_NEW_LIST SHIPPING_ADDRESS_ID1_LIST_TYPE;
5630 
5631   l_profile_val VARCHAR2(30);
5632   CURSOR merged_records IS
5633         SELECT distinct CUSTOMER_MERGE_HEADER_ID
5634               ,ID
5635               ,SHIPPING_ADDRESS_ID1
5636          FROM OKL_SUPP_INVOICE_DTLS yt, ra_customer_merges m
5637          WHERE (
5638             yt.SHIPPING_ADDRESS_ID1 = m.DUPLICATE_SITE_ID
5639          ) AND    m.process_flag = 'N'
5640          AND    m.request_id = req_id
5641          AND    m.set_number = set_num;
5642   l_last_fetch BOOLEAN := FALSE;
5643   l_count NUMBER;
5644 BEGIN
5645   IF process_mode='LOCK' THEN
5646     NULL;
5647   ELSE
5648     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5649     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_SUPP_INVOICE_DTLS',FALSE);
5650     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5651     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5652 
5653     open merged_records;
5654     LOOP
5655       FETCH merged_records BULK COLLECT INTO
5656          MERGE_HEADER_ID_LIST
5657           , PRIMARY_KEY_ID_LIST
5658           , NUM_COL1_ORIG_LIST
5659           ;
5660       IF merged_records%NOTFOUND THEN
5661          l_last_fetch := TRUE;
5662       END IF;
5663       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5664         exit;
5665       END IF;
5666       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5667          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL1_ORIG_LIST(I));
5668       END LOOP;
5669       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5670         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5671          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5672            MERGE_LOG_ID,
5673            TABLE_NAME,
5674            MERGE_HEADER_ID,
5675            PRIMARY_KEY_ID1,
5676            NUM_COL1_ORIG,
5677            NUM_COL1_NEW,
5678            ACTION_FLAG,
5679            REQUEST_ID,
5680            CREATED_BY,
5681            CREATION_DATE,
5682            LAST_UPDATE_LOGIN,
5683            LAST_UPDATE_DATE,
5684            LAST_UPDATED_BY
5685       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5686          'OKL_SUPP_INVOICE_DTLS',
5687          MERGE_HEADER_ID_LIST(I),
5688          PRIMARY_KEY_ID_LIST(I),
5689          NUM_COL1_ORIG_LIST(I),
5690          NUM_COL1_NEW_LIST(I),
5691          'U',
5692          req_id,
5693          hz_utility_pub.CREATED_BY,
5694          hz_utility_pub.CREATION_DATE,
5695          hz_utility_pub.LAST_UPDATE_LOGIN,
5696          hz_utility_pub.LAST_UPDATE_DATE,
5697          hz_utility_pub.LAST_UPDATED_BY);
5698     END IF;
5699 
5700 		FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5701       UPDATE OKL_SUPP_INVOICE_DTLS yt SET
5702            SHIPPING_ADDRESS_ID1=NUM_COL1_NEW_LIST(I)
5703           , LAST_UPDATE_DATE=SYSDATE
5704           , last_updated_by=arp_standard.profile.user_id
5705           , last_update_login=arp_standard.profile.last_update_login
5706 	  --NISINHA Bug#6655434 removed extra attributes
5707       WHERE ID=PRIMARY_KEY_ID_LIST(I)
5708          ;
5709       l_count := l_count + SQL%ROWCOUNT;
5710       IF l_last_fetch THEN
5711          EXIT;
5712       END IF;
5713     END LOOP;
5714 
5715     arp_message.set_name('AR','AR_ROWS_UPDATED');
5716     arp_message.set_token('NUM_ROWS',to_char(l_count));
5717   END IF;
5718 EXCEPTION
5719   WHEN OTHERS THEN
5720     arp_message.set_line( 'SID_ACCOUNT_MERGE');
5721     RAISE;
5722 END SID_ACCOUNT_MERGE;
5723 
5724 /*-------------------------------------------------------------
5725 |  PROCEDURE
5726 |      SIDH_ACCOUNT_MERGE
5727 |  DESCRIPTION :
5728 |      Account merge procedure for the table, OKL_SUPP_INVOICE_DTLS_H
5729 |--------------------------------------------------------------*/
5730 PROCEDURE SIDH_ACCOUNT_MERGE (
5731         req_id                       NUMBER,
5732         set_num                      NUMBER,
5733         process_mode                 VARCHAR2) IS
5734 
5735   TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
5736        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
5737        INDEX BY BINARY_INTEGER;
5738   MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
5739 
5740   TYPE ID_LIST_TYPE IS TABLE OF
5741          OKL_SUPP_INVOICE_DTLS_H.ID%TYPE
5742         INDEX BY BINARY_INTEGER;
5743   PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
5744 
5745   TYPE SHIPPING_ADDRESS_ID1_LIST_TYPE IS TABLE OF
5746          OKL_SUPP_INVOICE_DTLS_H.SHIPPING_ADDRESS_ID1%TYPE
5747         INDEX BY BINARY_INTEGER;
5748   NUM_COL1_ORIG_LIST SHIPPING_ADDRESS_ID1_LIST_TYPE;
5749   NUM_COL1_NEW_LIST SHIPPING_ADDRESS_ID1_LIST_TYPE;
5750 
5751   l_profile_val VARCHAR2(30);
5752   CURSOR merged_records IS
5753         SELECT distinct CUSTOMER_MERGE_HEADER_ID
5754               ,ID
5755               ,SHIPPING_ADDRESS_ID1
5756          FROM OKL_SUPP_INVOICE_DTLS_H yt, ra_customer_merges m
5757          WHERE (
5758             yt.SHIPPING_ADDRESS_ID1 = m.DUPLICATE_SITE_ID
5759          ) AND    m.process_flag = 'N'
5760          AND    m.request_id = req_id
5761          AND    m.set_number = set_num;
5762   l_last_fetch BOOLEAN := FALSE;
5763   l_count NUMBER;
5764 BEGIN
5765   IF process_mode='LOCK' THEN
5766     NULL;
5767   ELSE
5768     ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
5769     ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKL_SUPP_INVOICE_DTLS_H',FALSE);
5770     HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
5771     l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
5772 
5773     open merged_records;
5774     LOOP
5775       FETCH merged_records BULK COLLECT INTO
5776          MERGE_HEADER_ID_LIST
5777           , PRIMARY_KEY_ID_LIST
5778           , NUM_COL1_ORIG_LIST
5779           ;
5780       IF merged_records%NOTFOUND THEN
5781          l_last_fetch := TRUE;
5782       END IF;
5783       IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
5784         exit;
5785       END IF;
5786       FOR I in 1..MERGE_HEADER_ID_LIST.COUNT LOOP
5787          NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_SITE_USE(NUM_COL1_ORIG_LIST(I));
5788       END LOOP;
5789       IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
5790         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5791          INSERT INTO HZ_CUSTOMER_MERGE_LOG (
5792            MERGE_LOG_ID,
5793            TABLE_NAME,
5794            MERGE_HEADER_ID,
5795            PRIMARY_KEY_ID1,
5796            NUM_COL1_ORIG,
5797            NUM_COL1_NEW,
5798            ACTION_FLAG,
5799            REQUEST_ID,
5800            CREATED_BY,
5801            CREATION_DATE,
5802            LAST_UPDATE_LOGIN,
5803            LAST_UPDATE_DATE,
5804            LAST_UPDATED_BY
5805       ) VALUES (         HZ_CUSTOMER_MERGE_LOG_s.nextval,
5806          'OKL_SUPP_INVOICE_DTLS_H',
5807          MERGE_HEADER_ID_LIST(I),
5808          PRIMARY_KEY_ID_LIST(I),
5809          NUM_COL1_ORIG_LIST(I),
5810          NUM_COL1_NEW_LIST(I),
5811          'U',
5812          req_id,
5813          hz_utility_pub.CREATED_BY,
5814          hz_utility_pub.CREATION_DATE,
5815          hz_utility_pub.LAST_UPDATE_LOGIN,
5816          hz_utility_pub.LAST_UPDATE_DATE,
5817          hz_utility_pub.LAST_UPDATED_BY
5818       );
5819 
5820     END IF;    FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
5821       UPDATE OKL_SUPP_INVOICE_DTLS_H yt SET
5822            SHIPPING_ADDRESS_ID1=NUM_COL1_NEW_LIST(I)
5823           , LAST_UPDATE_DATE=SYSDATE
5824           , last_updated_by=arp_standard.profile.user_id
5825           , last_update_login=arp_standard.profile.last_update_login
5826   	  --NISINHA Bug#6655434 removed extra attributes
5827       WHERE ID=PRIMARY_KEY_ID_LIST(I)
5828          ;
5829       l_count := l_count + SQL%ROWCOUNT;
5830       IF l_last_fetch THEN
5831          EXIT;
5832       END IF;
5833     END LOOP;
5834 
5835     arp_message.set_name('AR','AR_ROWS_UPDATED');
5836     arp_message.set_token('NUM_ROWS',to_char(l_count));
5837   END IF;
5838 EXCEPTION
5839   WHEN OTHERS THEN
5840     arp_message.set_line( 'SIDH_ACCOUNT_MERGE');
5841     RAISE;
5842 END SIDH_ACCOUNT_MERGE;
5843 
5844 ----------------------------------------------------------------------------------------------------------
5845 -- Start of comments
5846 -- Procedure Name  : TCN_PARTY_REL_ID1_NEW
5847 -- Description     : Updating the table: OKL_TRX_CONTRACTS_ALL for column: PARTY_REL_ID1_NEW
5848 -- Business Rules  : performing PARTY MERGE for table: OKL_TRX_CONTRACTS_ALL and col: PARTY_REL_ID1_NEW
5849 -- Parameters      :
5850 -- Version         : 1.0
5851 -- End of comments
5852 -----------------------------------------------------------------------------------------------------------
5853   PROCEDURE TCN_PARTY_REL_ID1_NEW (
5854 	p_entity_name          IN VARCHAR2,
5855 	p_from_id              IN NUMBER,
5856 	x_to_id                OUT NOCOPY NUMBER,
5857 	p_from_fk_id           IN NUMBER,
5858 	p_to_fk_id             IN NUMBER,
5859 	p_parent_entity_name   IN VARCHAR2,
5860 	p_batch_id             IN NUMBER,
5861 	p_batch_party_id       IN NUMBER,
5862 	x_return_status        OUT NOCOPY VARCHAR2 )
5863   IS
5864 
5865 	l_merge_reason_code          VARCHAR2(30);
5866 	l_api_name                   VARCHAR2(30) := 'TCN_PARTY_REL_ID1_NEW';
5867 	l_count                      NUMBER(10)   := 0;
5868   BEGIN
5869 	--Log statements for all input parameters and the procedure name
5870 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID1_NEW');
5871 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
5872 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
5873 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
5874 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
5875 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
5876 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
5877 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
5878 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
5879 
5880   arp_message.set_line('OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID1_NEW()+');
5881   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
5882 
5883         select merge_reason_code
5884            into   l_merge_reason_code
5885         from   hz_merge_batch
5886         where  batch_id  = p_batch_id;
5887 
5888         if l_merge_reason_code = 'DUPLICATE' then
5889          -- if reason code is duplicate then allow the party merge to happen without
5890          -- any validations.
5891         null;
5892         else
5893         -- if there are any validations to be done, include it in this section
5894         null;
5895         end if;
5896 
5897         -- If the parent has not changed (ie. Parent getting transferred) then nothing
5898         -- needs to be done. Set Merged To Id is same as Merged From Id and return
5899 
5900         if p_from_fk_id = p_to_fk_id then
5901           x_to_id := p_from_id;
5902         return;
5903         end if;
5904 
5905         -- If the parent has changed(ie. Parent is getting merged) then transfer the
5906         -- dependent record to the new parent. Before transferring check if a similar
5907         -- dependent record exists on the new parent. If a duplicate exists then do
5908         -- not transfer and return the id of the duplicate record as the Merged To Id
5909 
5910         if p_from_fk_id <> p_to_fk_id then
5911           begin
5912              arp_message.set_name('AR','AR_UPDATING_TABLE');
5913              arp_message.set_token('TABLE_NAME','OKL_TRX_CONTRACTS_ALL',FALSE);
5914 
5915         --updating the OKL_TRX_CONTRACTS_ALL table for column references PARTY_REL_ID1_NEW
5916 
5917         UPDATE OKL_TRX_CONTRACTS_ALL TAB
5918            SET TAB.PARTY_REL_ID1_NEW = p_to_fk_id
5919            ,TAB.object_version_number = TAB.object_version_number + 1
5920            ,TAB.last_update_date      = SYSDATE
5921            ,TAB.last_updated_by       = arp_standard.profile.user_id
5922            ,TAB.last_update_login     = arp_standard.profile.last_update_login
5923         WHERE TAB.PARTY_REL_ID1_NEW = p_from_fk_id; -- MGAAP 7263041
5924 --rkuttiya added for 12.1.1 multigaap project
5925         --AND   TAB.REPRESENTATION_TYPE = 'PRIMARY' ;
5926 --
5927 
5928         l_count := sql%rowcount;
5929         arp_message.set_name('AR','AR_ROWS_UPDATED');
5930         arp_message.set_token('NUM_ROWS',to_char(l_count));
5931 
5932         exception
5933            when others then
5934               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
5935               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
5936                 'TCN_PARTY_REL_ID1_NEW for = '|| p_from_id));
5937               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
5938               x_return_status :=  FND_API.G_RET_STS_ERROR;
5939            end;
5940         end if;
5941   END TCN_PARTY_REL_ID1_NEW ;
5942 
5943 ----------------------------------------------------------------------------------------------------------
5944 -- Start of comments
5945 -- Procedure Name  : TCN_PARTY_REL_ID1_OLD
5946 -- Description     : Updating the table: OKL_TRX_CONTRACTS_ALL for column: PARTY_REL_ID1_OLD
5947 -- Business Rules  : performing PARTY MERGE for table: OKL_TRX_CONTRACTS_ALL and col: PARTY_REL_ID1_OLD
5948 -- Parameters      :
5949 -- Version         : 1.0
5950 -- End of comments
5951 -----------------------------------------------------------------------------------------------------------
5952   PROCEDURE TCN_PARTY_REL_ID1_OLD (
5953 	p_entity_name          IN VARCHAR2,
5954 	p_from_id              IN NUMBER,
5955 	x_to_id                OUT NOCOPY NUMBER,
5956 	p_from_fk_id           IN NUMBER,
5957 	p_to_fk_id             IN NUMBER,
5958 	p_parent_entity_name   IN VARCHAR2,
5959 	p_batch_id             IN NUMBER,
5960 	p_batch_party_id       IN NUMBER,
5961 	x_return_status        OUT NOCOPY VARCHAR2 )
5962   IS
5963 
5964 	l_merge_reason_code          VARCHAR2(30);
5965 	l_api_name                   VARCHAR2(30) := 'TCN_PARTY_REL_ID1_OLD';
5966 	l_count                      NUMBER(10)   := 0;
5967   BEGIN
5968 	--Log statements for all input parameters and the procedure name
5969 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID1_OLD');
5970 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
5971 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
5972 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
5973 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
5974 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
5975 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
5976 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
5977 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
5978 
5979   arp_message.set_line('OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID1_OLD()+');
5980   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
5981 
5982         select merge_reason_code
5983            into   l_merge_reason_code
5984         from   hz_merge_batch
5985         where  batch_id  = p_batch_id;
5986 
5987         if l_merge_reason_code = 'DUPLICATE' then
5988          -- if reason code is duplicate then allow the party merge to happen without
5989          -- any validations.
5990         null;
5991         else
5992         -- if there are any validations to be done, include it in this section
5993         null;
5994         end if;
5995 
5996         -- If the parent has not changed (ie. Parent getting transferred) then nothing
5997         -- needs to be done. Set Merged To Id is same as Merged From Id and return
5998 
5999         if p_from_fk_id = p_to_fk_id then
6000           x_to_id := p_from_id;
6001         return;
6002         end if;
6003 
6004         -- If the parent has changed(ie. Parent is getting merged) then transfer the
6005         -- dependent record to the new parent. Before transferring check if a similar
6006         -- dependent record exists on the new parent. If a duplicate exists then do
6007         -- not transfer and return the id of the duplicate record as the Merged To Id
6008 
6009         if p_from_fk_id <> p_to_fk_id then
6010           begin
6011              arp_message.set_name('AR','AR_UPDATING_TABLE');
6012              arp_message.set_token('TABLE_NAME','OKL_TRX_CONTRACTS_ALL',FALSE);
6013 
6014         --updating the OKL_TRX_CONTRACTS_ALL table for column references PARTY_REL_ID1_OLD
6015 
6016         UPDATE OKL_TRX_CONTRACTS_ALL TAB
6017            SET TAB.PARTY_REL_ID1_OLD = p_to_fk_id
6018            ,TAB.object_version_number = TAB.object_version_number + 1
6019            ,TAB.last_update_date      = SYSDATE
6020            ,TAB.last_updated_by       = arp_standard.profile.user_id
6021            ,TAB.last_update_login     = arp_standard.profile.last_update_login
6022         WHERE TAB.PARTY_REL_ID1_OLD = p_from_fk_id; -- MGAAP 7263041
6023 --rkuttiya added for 12.1.1 multigaap project
6024         --AND REPRESENTATION_TYPE = 'PRIMARY' ;
6025 --
6026 
6027         l_count := sql%rowcount;
6028         arp_message.set_name('AR','AR_ROWS_UPDATED');
6029         arp_message.set_token('NUM_ROWS',to_char(l_count));
6030 
6031         exception
6032            when others then
6033               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
6034               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
6035                 'TCN_PARTY_REL_ID1_OLD for = '|| p_from_id));
6036               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
6037               x_return_status :=  FND_API.G_RET_STS_ERROR;
6038            end;
6039         end if;
6040   END TCN_PARTY_REL_ID1_OLD ;
6041 
6042 ----------------------------------------------------------------------------------------------------------
6043 -- Start of comments
6044 -- Procedure Name  : TCN_PARTY_REL_ID2_OLD
6045 -- Description     : Updating the table: OKL_TRX_CONTRACTS_ALL for column: PARTY_REL_ID2_OLD
6046 -- Business Rules  : performing PARTY MERGE for table: OKL_TRX_CONTRACTS_ALL and col: PARTY_REL_ID2_OLD
6047 -- Parameters      :
6048 -- Version         : 1.0
6049 -- End of comments
6050 -----------------------------------------------------------------------------------------------------------
6051   PROCEDURE TCN_PARTY_REL_ID2_OLD (
6052 	p_entity_name          IN VARCHAR2,
6053 	p_from_id              IN NUMBER,
6054 	x_to_id                OUT NOCOPY NUMBER,
6055 	p_from_fk_id           IN NUMBER,
6056 	p_to_fk_id             IN NUMBER,
6057 	p_parent_entity_name   IN VARCHAR2,
6058 	p_batch_id             IN NUMBER,
6059 	p_batch_party_id       IN NUMBER,
6060 	x_return_status        OUT NOCOPY VARCHAR2 )
6061   IS
6062 
6063 	l_merge_reason_code          VARCHAR2(30);
6064 	l_api_name                   VARCHAR2(30) := 'TCN_PARTY_REL_ID2_OLD';
6065 	l_count                      NUMBER(10)   := 0;
6066   BEGIN
6067 	--Log statements for all input parameters and the procedure name
6068 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID2_OLD');
6069 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
6070 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
6071 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
6072 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
6073 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
6074 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
6075 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
6076 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
6077 
6078   arp_message.set_line('OKL_PARTY_MERGE_PUB.TCN_PARTY_REL_ID2_OLD()+');
6079   x_return_status :=  FND_API.G_RET_STS_SUCCESS;
6080 
6081         select merge_reason_code
6082            into   l_merge_reason_code
6083         from   hz_merge_batch
6084         where  batch_id  = p_batch_id;
6085 
6086         if l_merge_reason_code = 'DUPLICATE' then
6087          -- if reason code is duplicate then allow the party merge to happen without
6088          -- any validations.
6089         null;
6090         else
6091         -- if there are any validations to be done, include it in this section
6092         null;
6093         end if;
6094 
6095         -- If the parent has not changed (ie. Parent getting transferred) then nothing
6096         -- needs to be done. Set Merged To Id is same as Merged From Id and return
6097 
6098         if p_from_fk_id = p_to_fk_id then
6099           x_to_id := p_from_id;
6100         return;
6101         end if;
6102 
6103         -- If the parent has changed(ie. Parent is getting merged) then transfer the
6104         -- dependent record to the new parent. Before transferring check if a similar
6105         -- dependent record exists on the new parent. If a duplicate exists then do
6106         -- not transfer and return the id of the duplicate record as the Merged To Id
6107 
6108         if p_from_fk_id <> p_to_fk_id then
6109           begin
6110              arp_message.set_name('AR','AR_UPDATING_TABLE');
6111              arp_message.set_token('TABLE_NAME','OKL_TRX_CONTRACTS_ALL',FALSE);
6112 
6113         --updating the OKL_TRX_CONTRACTS_ALL table for column references PARTY_REL_ID2_OLD
6114 
6115         UPDATE OKL_TRX_CONTRACTS_ALL TAB
6116            SET TAB.PARTY_REL_ID2_OLD = p_to_fk_id
6117            ,TAB.object_version_number = TAB.object_version_number + 1
6118            ,TAB.last_update_date      = SYSDATE
6119            ,TAB.last_updated_by       = arp_standard.profile.user_id
6120            ,TAB.last_update_login     = arp_standard.profile.last_update_login
6121         WHERE TAB.PARTY_REL_ID2_OLD = to_char(p_from_fk_id); -- MGAAP 7263041
6122   --rkuttiya added for 12.1.1 Multi gaap
6123         --AND REPRESENTATION_TYPE = 'PRIMARY';
6124   --
6125 
6126         l_count := sql%rowcount;
6127         arp_message.set_name('AR','AR_ROWS_UPDATED');
6128         arp_message.set_token('NUM_ROWS',to_char(l_count));
6129 
6130         exception
6131            when others then
6132               arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
6133               fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
6134                 'TCN_PARTY_REL_ID2_OLD for = '|| p_from_id));
6135               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
6136               x_return_status :=  FND_API.G_RET_STS_ERROR;
6137            end;
6138         end if;
6139   END TCN_PARTY_REL_ID2_OLD ;
6140 
6141   ----------------------------------------------------------------------------------------------------------
6142   -- Start of comments
6143   -- Procedure Name  : RUL_PARTY_SITE_MERGE
6144   -- Description     : Updating the table: OKC_RULES_B for column: OBJECT1_ID1
6145   -- Business Rules  : performing PARTY MERGE for table: OKC_RULES_B and col: OBJECT1_ID1
6146   --                   for the records created by Lease Management for Party Site
6147   -- Parameters      :
6148   -- Version         : 1.0
6149   -- End of comments
6150   -----------------------------------------------------------------------------------------------------------
6151   PROCEDURE RUL_PARTY_SITE_MERGE (
6152 	p_entity_name          IN VARCHAR2,
6153 	p_from_id              IN NUMBER,
6154 	x_to_id                OUT NOCOPY NUMBER,
6155 	p_from_fk_id           IN NUMBER,
6156 	p_to_fk_id             IN NUMBER,
6157 	p_parent_entity_name   IN VARCHAR2,
6158 	p_batch_id             IN NUMBER,
6159 	p_batch_party_id       IN NUMBER,
6160 	x_return_status        OUT NOCOPY VARCHAR2)
6161   IS
6162 	l_merge_reason_code          VARCHAR2(30);
6163 	l_api_name                   VARCHAR2(30) := 'RUL_PARTY_SITE_MERGE';
6164 	l_count                      NUMBER(10)   := 0;
6165   BEGIN
6166     --Log statements for all input parameters and the procedure name
6167 	fnd_file.put_line(fnd_file.log, 'OKL_PARTY_MERGE_PUB.RUL_PARTY_SITE_MERGE');
6168 	fnd_file.put_line(fnd_file.log, '******             PARAMETERS                          ****** ');
6169 	fnd_file.put_line(fnd_file.log, 'p_entity_name :        '||p_entity_name);
6170 	fnd_file.put_line(fnd_file.log, 'p_from_id :            '||p_from_id);
6171 	fnd_file.put_line(fnd_file.log, 'p_from_fk_id :         '||p_from_fk_id);
6172 	fnd_file.put_line(fnd_file.log, 'p_to_fk_id :           '||p_to_fk_id);
6173 	fnd_file.put_line(fnd_file.log, 'p_parent_entity_name : '||p_parent_entity_name);
6174 	fnd_file.put_line(fnd_file.log, 'p_batch_id :           '||p_batch_id);
6175 	fnd_file.put_line(fnd_file.log, 'p_batch_party_id :     '||p_batch_party_id);
6176 
6177     arp_message.set_line('OKL_PARTY_MERGE_PUB.RUL_PARTY_SITE_MERGE()+');
6178     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
6179 
6180     select merge_reason_code into l_merge_reason_code
6181     from   hz_merge_batch
6182     where  batch_id  = p_batch_id;
6183 
6184     if l_merge_reason_code = 'DUPLICATE' then
6185       -- if reason code is duplicate then allow the party merge to happen without
6186       -- any validations.
6187       null;
6188     else
6189       -- if there are any validations to be done, include it in this section
6190       null;
6191     end if;
6192 
6193     -- If the parent has not changed (ie. Parent getting transferred) then nothing
6194     -- needs to be done. Set Merged To Id is same as Merged From Id and return
6195 
6196     if p_from_fk_id = p_to_fk_id
6197     then
6198       x_to_id := p_from_id;
6199       return;
6200     end if;
6201 
6202     -- If the parent has changed(ie. Parent is getting merged) then transfer the
6203     -- dependent record to the new parent. Before transferring check if a similar
6204     -- dependent record exists on the new parent. If a duplicate exists then do
6205     -- not transfer and return the id of the duplicate record as the Merged To Id
6206     if p_from_fk_id <> p_to_fk_id
6207     then
6208       begin
6209         arp_message.set_name('AR','AR_UPDATING_TABLE');
6210         arp_message.set_token('TABLE_NAME','OKC_RULES_B',FALSE);
6211 
6212         IF p_parent_entity_name = 'HZ_PARTY_SITES'
6213         THEN
6214           --updating the OKC_RULES_B table for column references OBJECT1_ID1
6215           --and JTOT_OBJECT1_CODE = 'OKL_PARTYSITE'
6216           UPDATE OKC_RULES_B TAB
6217             SET TAB.OBJECT1_ID1 = p_to_fk_id
6218               , TAB.object_version_number = TAB.object_version_number + 1
6219               , TAB.last_update_date      = SYSDATE
6220               , TAB.last_updated_by       = arp_standard.profile.user_id
6221               , TAB.last_update_login     = arp_standard.profile.last_update_login
6222           WHERE TAB.OBJECT1_ID1 = TO_CHAR(p_from_fk_id)
6223             AND JTOT_OBJECT1_CODE = 'OKL_PARTYSITE'
6224             AND DNZ_CHR_ID IN (SELECT ID FROM OKL_K_HEADERS);
6225         END IF;
6226         l_count := sql%rowcount;
6227         arp_message.set_name('AR','AR_ROWS_UPDATED');
6228         arp_message.set_token('NUM_ROWS',to_char(l_count));
6229       EXCEPTION
6230         when others
6231         then
6232           arp_message.set_line(G_PKG_NAME || '.' || l_api_name || ': ' || sqlerrm);
6233           fnd_file.put_line(fnd_file.log,(G_PKG_NAME || '.' || l_api_name ||
6234                 'OKC_RULES_B for = '|| p_from_id));
6235               fnd_file.put_line(fnd_file.log, G_PKG_NAME||'.'||l_api_name||':'||sqlerrm);
6236           x_return_status :=  FND_API.G_RET_STS_ERROR;
6237       END;
6238     END IF;
6239   END RUL_PARTY_SITE_MERGE;
6240 
6241   /*-------------------------------------------------------------
6242   |  PROCEDURE
6243   |      RUL_ACCOUNT_MERGE
6244   |  DESCRIPTION :
6245   |      Account merge procedure for the table, OKC_RULES_B for OKL
6246   |      specific usage of rules architecture. OKL uses rules
6247   |      architecture for storing vendor billing information where
6248   |      billing party is stored in rules tables for the vendor account
6249   |      This API will be called prior to the OKC hook of account merge.
6250   *--------------------------------------------------------------*/
6251   PROCEDURE RUL_ACCOUNT_MERGE(
6252         req_id                       NUMBER,
6253         set_num                      NUMBER,
6254         process_mode                 VARCHAR2)
6255   IS
6256     TYPE MERGE_HEADER_ID_LIST_TYPE IS TABLE OF
6257        RA_CUSTOMER_MERGE_HEADERS.CUSTOMER_MERGE_HEADER_ID%TYPE
6258        INDEX BY BINARY_INTEGER;
6259     MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
6260 
6261     TYPE ID_LIST_TYPE IS TABLE OF OKC_RULES_B.ID%TYPE
6262         INDEX BY BINARY_INTEGER;
6263     PRIMARY_KEY_ID_LIST ID_LIST_TYPE;
6264 
6265     TYPE CUST_ACCT_ID_LIST_TYPE IS TABLE OF OKC_K_PARTY_ROLES_B.CUST_ACCT_ID%TYPE
6266         INDEX BY BINARY_INTEGER;
6267     NUM_COL1_ORIG_LIST CUST_ACCT_ID_LIST_TYPE;
6268     NUM_COL1_NEW_LIST CUST_ACCT_ID_LIST_TYPE;
6269 
6270     TYPE RUL_OBJ1_ID_LIST_TYPE IS TABLE OF
6271          OKC_RULES_B.OBJECT1_ID1%TYPE
6272         INDEX BY BINARY_INTEGER;
6273     NUM_RUL_OBJ1_ORIG_LIST RUL_OBJ1_ID_LIST_TYPE;
6274     NUM_RUL_OBJ1_NEW_LIST  RUL_OBJ1_ID_LIST_TYPE;
6275 
6276     l_profile_val VARCHAR2(30);
6277     CURSOR merged_records IS
6278       SELECT distinct m.CUSTOMER_MERGE_HEADER_ID
6279            , rul.ID
6280            , yt.CUST_ACCT_ID
6281            , rul.object1_id1
6282       FROM OKC_RULES_B         rul
6283          , OKC_RG_PARTY_ROLES  rgpr
6284          , OKC_RULE_GROUPS_B   rgp
6285          , OKC_K_PARTY_ROLES_B yt
6286          , RA_CUSTOMER_MERGES m
6287       WHERE yt.cust_acct_id = m.duplicate_id
6288         AND rgpr.cpl_id = yt.id
6289         AND rgp.id = rgpr.rgp_id
6290         AND rgp.rgd_code = 'LAVENB'
6291         AND rul.rgp_id = rgp.id
6292         AND rul.rule_information_category = 'LAVENC'
6293         AND m.process_flag = 'N'
6294         AND m.request_id = req_id
6295         AND m.set_number = set_num
6296         AND EXISTS( SELECT 1
6297                     FROM OKL_K_HEADERS KHR
6298                     WHERE yt.DNZ_CHR_ID  =  KHR.ID);
6299 
6300     CURSOR get_new_party(cp_cust_acct_id HZ_CUST_ACCOUNTS.CUST_ACCOUNT_ID%TYPE)
6301     IS
6302       SELECT PARTY_ID
6303       FROM HZ_CUST_ACCOUNTS
6304       WHERE CUST_ACCOUNT_ID = cp_cust_acct_id;
6305 
6306     l_last_fetch BOOLEAN := FALSE;
6307     l_count NUMBER;
6308   BEGIN
6309     IF process_mode='LOCK' THEN
6310       NULL;
6311     ELSE
6312       ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
6313       ARP_MESSAGE.SET_TOKEN('TABLE_NAME','OKC_RULES_B',FALSE);
6314       HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
6315       l_profile_val :=  FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
6316 
6317       OPEN merged_records;
6318       LOOP
6319         FETCH merged_records BULK COLLECT INTO
6320               MERGE_HEADER_ID_LIST
6321             , PRIMARY_KEY_ID_LIST
6322             , NUM_COL1_ORIG_LIST
6323             , NUM_RUL_OBJ1_ORIG_LIST;
6324 
6325         IF merged_records%NOTFOUND THEN
6326            l_last_fetch := TRUE;
6327         END IF;
6328         IF MERGE_HEADER_ID_LIST.COUNT = 0 and l_last_fetch then
6329           exit;
6330         END IF;
6331         FOR I in 1..MERGE_HEADER_ID_LIST.COUNT
6332         LOOP
6333           NUM_COL1_NEW_LIST(I) := HZ_ACCT_MERGE_UTIL.GETDUP_ACCOUNT(NUM_COL1_ORIG_LIST(I));
6334 
6335           -- get the party of the new customer account
6336           OPEN get_new_party(NUM_COL1_NEW_LIST(I));
6337           FETCH get_new_party INTO NUM_RUL_OBJ1_NEW_LIST(I);
6338           CLOSE get_new_party;
6339         END LOOP;
6340 
6341         IF l_profile_val IS NOT NULL AND l_profile_val = 'Y' THEN
6342           FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
6343            INSERT INTO HZ_CUSTOMER_MERGE_LOG
6344            (MERGE_LOG_ID,
6345             TABLE_NAME,
6346             MERGE_HEADER_ID,
6347             PRIMARY_KEY_ID1,
6348             NUM_COL1_ORIG,
6349             NUM_COL1_NEW,
6350             ACTION_FLAG,
6351             REQUEST_ID,
6352             CREATED_BY,
6353             CREATION_DATE,
6354             LAST_UPDATE_LOGIN,
6355             LAST_UPDATE_DATE,
6356             LAST_UPDATED_BY)
6357            VALUES
6358            (HZ_CUSTOMER_MERGE_LOG_s.nextval,
6359             'OKC_RULES_B',
6360             MERGE_HEADER_ID_LIST(I),
6361             PRIMARY_KEY_ID_LIST(I),
6362             NUM_RUL_OBJ1_ORIG_LIST(I),
6363             NUM_RUL_OBJ1_NEW_LIST(I),
6364             'U',
6365             req_id,
6366             hz_utility_pub.CREATED_BY,
6367             hz_utility_pub.CREATION_DATE,
6368             hz_utility_pub.LAST_UPDATE_LOGIN,
6369             hz_utility_pub.LAST_UPDATE_DATE,
6370             hz_utility_pub.LAST_UPDATED_BY);
6371         END IF;
6372 
6373         FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
6374           UPDATE OKC_RULES_B yt SET
6375             OBJECT1_ID1=NUM_RUL_OBJ1_NEW_LIST(I)
6376           , LAST_UPDATE_DATE=SYSDATE
6377           , last_updated_by=arp_standard.profile.user_id
6378           , last_update_login=arp_standard.profile.last_update_login
6379           WHERE ID=PRIMARY_KEY_ID_LIST(I);
6380         l_count := l_count + SQL%ROWCOUNT;
6381         IF l_last_fetch THEN
6382           EXIT;
6383         END IF;
6384       END LOOP;
6385 
6386       arp_message.set_name('AR','AR_ROWS_UPDATED');
6387       arp_message.set_token('NUM_ROWS',to_char(l_count));
6388     END IF;
6389   EXCEPTION
6390     WHEN OTHERS
6391     THEN
6392       arp_message.set_line('RUL_ACCOUNT_MERGE');
6393       RAISE;
6394   END RUL_ACCOUNT_MERGE;
6395 
6396 END OKL_PARTY_MERGE_PUB;