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;