[Home] [Help]
PACKAGE BODY: APPS.HZ_MERGE_DUP_CHECK
Source
1 PACKAGE BODY HZ_MERGE_DUP_CHECK AS
2 /*$Header: ARHMDUPB.pls 120.15.12010000.2 2008/09/08 07:06:18 kguggila ship $ */
3
4 FUNCTION check_cust_account_dup(
5 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6 x_to_id IN OUT NOCOPY NUMBER,
7 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
8 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
9 x_return_status IN OUT NOCOPY VARCHAR2)
10 RETURN VARCHAR2 IS
11
12 BEGIN
13 x_to_id := FND_API.G_MISS_NUM;
14 RETURN FND_API.G_FALSE;
15 END check_cust_account_dup;
16
17 FUNCTION check_cust_account_role_dup(
18 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
19 x_to_id IN OUT NOCOPY NUMBER,
20 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
21 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
22 x_return_status IN OUT NOCOPY VARCHAR2)
23 RETURN VARCHAR2 IS
24
25 BEGIN
26 x_to_id := FND_API.G_MISS_NUM;
27 RETURN FND_API.G_FALSE;
28 END check_cust_account_role_dup;
29
30 FUNCTION check_cust_account_site_dup(
31 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
32 x_to_id IN OUT NOCOPY NUMBER,
33 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
34 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
35 x_return_status IN OUT NOCOPY VARCHAR2)
36 RETURN VARCHAR2 IS
37
38 BEGIN
39 x_to_id := FND_API.G_MISS_NUM;
40 RETURN FND_API.G_FALSE;
41 END check_cust_account_site_dup;
42
43 FUNCTION check_financial_profile_dup(
44 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
45 x_to_id IN OUT NOCOPY NUMBER,
46 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
47 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
48 x_return_status IN OUT NOCOPY VARCHAR2)
49 RETURN VARCHAR2 IS
50
51 CURSOR dupcheck IS
52 SELECT
53 FINANCIAL_PROFILE_ID
54 FROM HZ_FINANCIAL_PROFILE
55 WHERE party_id = p_to_fk_id
56 AND (status IS NULL OR status = 'A')
57 AND TO_CHAR(ACCESS_AUTHORITY_DATE, 'DD/MM/YYYY') ||
58 ACCESS_AUTHORITY_GRANTED ||
59 TO_CHAR(BALANCE_AMOUNT) ||
60 TO_CHAR(BALANCE_VERIFIED_ON_DATE, 'DD/MM/YYYY') ||
61 FINANCIAL_ACCOUNT_NUMBER ||
62 FINANCIAL_ACCOUNT_TYPE ||
63 FINANCIAL_ORG_TYPE ||
64 FINANCIAL_ORGANIZATION_NAME = (
65 SELECT TO_CHAR(ACCESS_AUTHORITY_DATE, 'DD/MM/YYYY') ||
66 ACCESS_AUTHORITY_GRANTED ||
67 TO_CHAR(BALANCE_AMOUNT) ||
68 TO_CHAR(BALANCE_VERIFIED_ON_DATE, 'DD/MM/YYYY') ||
69 FINANCIAL_ACCOUNT_NUMBER ||
70 FINANCIAL_ACCOUNT_TYPE ||
71 FINANCIAL_ORG_TYPE ||
72 FINANCIAL_ORGANIZATION_NAME
73 FROM HZ_FINANCIAL_PROFILE
74 WHERE financial_profile_id = p_from_id);
75
76 l_record_id NUMBER;
77 BEGIN
78 x_to_id := FND_API.G_MISS_NUM;
79
80 OPEN dupcheck;
81 FETCH dupcheck INTO l_record_id;
82 IF dupcheck%NOTFOUND THEN
83 CLOSE dupcheck;
84 RETURN FND_API.G_FALSE;
85 END IF;
86
87 x_to_id := l_record_id;
88 CLOSE dupcheck;
89 RETURN FND_API.G_TRUE;
90
91 EXCEPTION
92 WHEN OTHERS THEN
93 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
94 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
95 FND_MSG_PUB.ADD;
96 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
97 END check_financial_profile_dup;
98
99 FUNCTION check_contact_point_dup(
100 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
101 x_to_id IN OUT NOCOPY NUMBER,
102 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
103 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
104 p_owner_table_name IN VARCHAR2,
105 x_return_status IN OUT NOCOPY VARCHAR2)
106 RETURN VARCHAR2 IS
107
108 CURSOR dupcheck (source_type VARCHAR2) IS
109 SELECT
110 CONTACT_POINT_ID
111 FROM HZ_CONTACT_POINTS
112 WHERE owner_table_name = p_owner_table_name
113 AND owner_table_id = p_to_fk_id
114 AND (status IS NULL OR status = 'A')
115 AND
116 CONTACT_POINT_TYPE ||
117 STATUS ||
118 EDI_TRANSACTION_HANDLING ||
119 EDI_ID_NUMBER ||
120 EDI_PAYMENT_METHOD ||
121 EDI_PAYMENT_FORMAT ||
122 EDI_REMITTANCE_METHOD ||
123 EDI_REMITTANCE_INSTRUCTION ||
124 EDI_TP_HEADER_ID ||
125 EDI_ECE_TP_LOCATION_CODE ||
126 EMAIL_FORMAT ||
127 TO_CHAR(BEST_TIME_TO_CONTACT_START, 'DD/MM/YYYY') ||
128 TO_CHAR(BEST_TIME_TO_CONTACT_END, 'DD/MM/YYYY') ||
129 PHONE_CALLING_CALENDAR ||
130 DECLARED_BUSINESS_PHONE_FLAG ||
131 PHONE_PREFERRED_ORDER ||
132 TELEPHONE_TYPE ||
133 TIME_ZONE ||
134 PHONE_TOUCH_TONE_TYPE_FLAG ||
135 PHONE_AREA_CODE ||
136 PHONE_COUNTRY_CODE ||
137 PHONE_NUMBER ||
138 PHONE_EXTENSION ||
139 PHONE_LINE_TYPE ||
140 TELEX_NUMBER ||
141 WEB_TYPE ||
142 DECODE (source_type,'P',actual_content_source,'S')
143 = (SELECT
144 CONTACT_POINT_TYPE ||
145 STATUS ||
146 EDI_TRANSACTION_HANDLING ||
147 EDI_ID_NUMBER ||
148 EDI_PAYMENT_METHOD ||
149 EDI_PAYMENT_FORMAT ||
150 EDI_REMITTANCE_METHOD ||
151 EDI_REMITTANCE_INSTRUCTION ||
152 EDI_TP_HEADER_ID ||
153 EDI_ECE_TP_LOCATION_CODE ||
154 EMAIL_FORMAT ||
155 TO_CHAR(BEST_TIME_TO_CONTACT_START, 'DD/MM/YYYY') ||
156 TO_CHAR(BEST_TIME_TO_CONTACT_END, 'DD/MM/YYYY') ||
157 PHONE_CALLING_CALENDAR ||
158 DECLARED_BUSINESS_PHONE_FLAG ||
159 PHONE_PREFERRED_ORDER ||
160 TELEPHONE_TYPE ||
161 TIME_ZONE ||
162 PHONE_TOUCH_TONE_TYPE_FLAG ||
163 PHONE_AREA_CODE ||
164 PHONE_COUNTRY_CODE ||
165 PHONE_NUMBER ||
166 PHONE_EXTENSION ||
167 PHONE_LINE_TYPE ||
168 TELEX_NUMBER ||
169 WEB_TYPE ||
170 DECODE (source_type,'P',actual_content_source,'S')
171 FROM HZ_CONTACT_POINTS
172 WHERE contact_point_id = p_from_id)
173 AND upper(nvl(EMAIL_ADDRESS,'NOEMAIL')) = ( --7294111 Added Upper
174 SELECT upper(nvl(EMAIL_ADDRESS,'NOEMAIL')) --7294111 Added Upper
175 FROM HZ_CONTACT_POINTS
176 WHERE contact_point_id = p_from_id)
177 AND nvl(URL, 'NOURL') = (
178 SELECT nvl(URL, 'NOURL')
179 FROM HZ_CONTACT_POINTS
180 WHERE contact_point_id = p_from_id);
181
182 CURSOR c_cont_source IS
183 SELECT ACTUAL_CONTENT_SOURCE
184 FROM HZ_CONTACT_POINTS
185 WHERE contact_point_id = p_from_id;
186
187 l_record_id NUMBER;
188 l_cont_source VARCHAR2(255);
189 l_from_last_upd_date DATE;
190 l_to_last_upd_date DATE;
191 l_temp NUMBER;
192 l_cont_source_type VARCHAR2(255);
193 l_source_type VARCHAR2(1) :='S';
194 BEGIN
195
196 x_to_id := FND_API.G_MISS_NUM;
197
198 OPEN c_cont_source;
199 FETCH c_cont_source INTO l_cont_source;
200 CLOSE c_cont_source;
201
202 IF l_cont_source = 'DNB' THEN
203 RETURN FND_API.G_FALSE;
204 ELSE---Find Whether Purchased or Spoke
205 SELECT orig_system_type INTO l_cont_source_type
206 FROM HZ_ORIG_SYSTEMS_B WHERE orig_system = l_cont_source;
207 IF l_cont_source_type = 'PURCHASED' THEN
208 l_source_type :='P';
209 END IF;
210 END IF;
211 ----Bug 4114254. USE ACS column for dup check if the l_cont_source is PURCHASED otherwise dont use it.
212 OPEN dupcheck(l_source_type);
213 FETCH dupcheck INTO l_record_id;
214 IF dupcheck%NOTFOUND THEN
215 CLOSE dupcheck;
216 RETURN FND_API.G_FALSE;
217 END IF;
218
219 x_to_id := l_record_id;
220 CLOSE dupcheck;
221 RETURN FND_API.G_TRUE;
222
223 EXCEPTION
224 WHEN OTHERS THEN
225 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
226 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
227 FND_MSG_PUB.ADD;
228 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229 END check_contact_point_dup;
230
231 FUNCTION check_references_dup(
232 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
233 x_to_id IN OUT NOCOPY NUMBER,
234 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
235 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
236 x_return_status IN OUT NOCOPY VARCHAR2)
237 RETURN VARCHAR2 IS
238
239 CURSOR dupcheck IS
240 SELECT
241 REFERENCE_ID
242 FROM HZ_REFERENCES
243 WHERE referenced_party_id = p_to_fk_id
244 AND (status IS NULL OR status = 'A')
245 AND
246 TO_CHAR(COMMENTING_PARTY_ID) ||
247 EXTERNAL_ACCOUNT_NUMBER ||
248 TO_CHAR(REFERENCE_DATE, 'DD/MM/YYYY') =
249 (SELECT
250 TO_CHAR(COMMENTING_PARTY_ID) ||
251 EXTERNAL_ACCOUNT_NUMBER ||
252 TO_CHAR(REFERENCE_DATE, 'DD/MM/YYYY')
253 FROM HZ_REFERENCES
254 WHERE reference_id = p_from_id);
255
256 l_record_id NUMBER;
257 BEGIN
258
259 x_to_id := FND_API.G_MISS_NUM;
260
261 OPEN dupcheck;
262 FETCH dupcheck INTO l_record_id;
263 IF dupcheck%NOTFOUND THEN
264 CLOSE dupcheck;
265 RETURN FND_API.G_FALSE;
266 END IF;
267
268 x_to_id := l_record_id;
269 CLOSE dupcheck;
270 RETURN FND_API.G_TRUE;
271
272 EXCEPTION
273 WHEN OTHERS THEN
274 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
275 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
276 FND_MSG_PUB.ADD;
277 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
278 END check_references_dup;
279
280
281 FUNCTION check_certification_dup(
282 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
283 x_to_id IN OUT NOCOPY NUMBER,
284 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
285 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
286 x_return_status IN OUT NOCOPY VARCHAR2)
287 RETURN VARCHAR2 IS
288
289 CURSOR dupcheck IS
290 SELECT
291 CERTIFICATION_ID
292 FROM HZ_CERTIFICATIONS
293 WHERE party_id = p_to_fk_id
294 AND (status IS NULL OR status = 'A')
295 AND
296 CERTIFICATION_NAME ||
297 CURRENT_STATUS ||
298 TO_CHAR(EXPIRES_ON_DATE, 'DD/MM/YYYY') ||
299 GRADE ||
300 ISSUED_BY_AUTHORITY ||
301 TO_CHAR(ISSUED_ON_DATE, 'DD/MM/YYYY') =
302 (SELECT
303 CERTIFICATION_NAME ||
304 CURRENT_STATUS ||
305 TO_CHAR(EXPIRES_ON_DATE, 'DD/MM/YYYY') ||
306 GRADE ||
307 ISSUED_BY_AUTHORITY ||
308 TO_CHAR(ISSUED_ON_DATE, 'DD/MM/YYYY')
309 FROM HZ_CERTIFICATIONS
310 WHERE certification_id = p_from_id);
311
312 l_record_id NUMBER;
313 BEGIN
314
315 x_to_id := FND_API.G_MISS_NUM;
316
317 OPEN dupcheck;
318 FETCH dupcheck INTO l_record_id;
319 IF dupcheck%NOTFOUND THEN
320 CLOSE dupcheck;
321 RETURN FND_API.G_FALSE;
322 END IF;
323
324 x_to_id := l_record_id;
325 CLOSE dupcheck;
326 RETURN FND_API.G_TRUE;
327
328 EXCEPTION
329 WHEN OTHERS THEN
330 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
331 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
332 FND_MSG_PUB.ADD;
333 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
334 END check_certification_dup;
335
336
337 FUNCTION check_credit_ratings_dup(
338 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
339 x_to_id IN OUT NOCOPY NUMBER,
340 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
341 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
342 x_return_status IN OUT NOCOPY VARCHAR2)
343 RETURN VARCHAR2 IS
344
345 CURSOR dupcheck (source_type VARCHAR2) IS
346 SELECT
347 CREDIT_RATING_ID
348 FROM HZ_CREDIT_RATINGS
349 WHERE party_id = p_to_fk_id
350 AND
351 TO_CHAR(RATED_AS_OF_DATE, 'DD/MM/YYYY') ||
352 RATING_ORGANIZATION ||
353 DECODE (source_type,'P',actual_content_source,'S') =
354 (SELECT
355 TO_CHAR(RATED_AS_OF_DATE, 'DD/MM/YYYY') ||
356 RATING_ORGANIZATION ||
357 DECODE (source_type,'P',actual_content_source,'S') FROM HZ_CREDIT_RATINGS
358 WHERE credit_rating_id = p_from_id);
359
360 CURSOR c_cont_source IS
361 SELECT ACTUAL_CONTENT_SOURCE
362 FROM HZ_CREDIT_RATINGS
363 WHERE credit_rating_id = p_from_id;
364
365 l_cont_source VARCHAR2(255);
366 l_record_id NUMBER;
367 l_from_last_upd_date DATE;
368 l_to_last_upd_date DATE;
369 l_temp NUMBER;
370 l_cont_source_type VARCHAR2(255);
371 l_source_type VARCHAR2(1) :='S';
372 BEGIN
373
374 x_to_id := FND_API.G_MISS_NUM;
375
376 OPEN c_cont_source;
377 FETCH c_cont_source INTO l_cont_source;
378 CLOSE c_cont_source;
379
380 IF l_cont_source = 'DNB' THEN
381 RETURN FND_API.G_FALSE;
382 ELSE---Find Whether Purchased or Spoke
383 SELECT orig_system_type INTO l_cont_source_type
384 FROM HZ_ORIG_SYSTEMS_B WHERE orig_system = l_cont_source;
385 IF l_cont_source_type = 'PURCHASED' THEN
386 l_source_type :='P';
387 END IF;
388 END IF;
389 ----Bug 4114254. USE ACS column for dup check if the l_cont_source is PURCHASED otherwise dont use it.
390 OPEN dupcheck(l_source_type);
391 FETCH dupcheck INTO l_record_id;
392 IF dupcheck%NOTFOUND THEN
393 CLOSE dupcheck;
394 RETURN FND_API.G_FALSE;
395 END IF;
396
397 x_to_id := l_record_id;
398 CLOSE dupcheck;
399
400 RETURN FND_API.G_TRUE;
401 EXCEPTION
402 WHEN OTHERS THEN
403 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
404 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
405 FND_MSG_PUB.ADD;
406 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
407 END check_credit_ratings_dup;
408
409
410 FUNCTION check_security_issued_dup(
411 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
412 x_to_id IN OUT NOCOPY NUMBER,
413 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
414 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
415 x_return_status IN OUT NOCOPY VARCHAR2)
416 RETURN VARCHAR2 IS
417
418 CURSOR dupcheck IS
419 SELECT
420 SECURITY_ISSUED_ID
421 FROM HZ_SECURITY_ISSUED
422 WHERE party_id = p_to_fk_id
423 AND (status IS NULL OR status = 'A')
424 AND
425 TO_CHAR(ESTIMATED_TOTAL_AMOUNT) ||
426 TO_CHAR(STOCK_EXCHANGE_ID) ||
427 SECURITY_ISSUED_CLASS ||
428 SECURITY_ISSUED_NAME ||
429 TOTAL_AMOUNT_IN_A_CURRENCY ||
430 STOCK_TICKER_SYMBOL ||
431 SECURITY_CURRENCY_CODE ||
432 TO_CHAR(BEGIN_DATE,'DD/MM/YYYY') ||
433 TO_CHAR(END_DATE,'DD/MM/YYYY') =
434 (SELECT
435 TO_CHAR(ESTIMATED_TOTAL_AMOUNT) ||
436 TO_CHAR(STOCK_EXCHANGE_ID) ||
437 SECURITY_ISSUED_CLASS ||
438 SECURITY_ISSUED_NAME ||
439 TOTAL_AMOUNT_IN_A_CURRENCY ||
440 STOCK_TICKER_SYMBOL ||
441 SECURITY_CURRENCY_CODE ||
442 TO_CHAR(BEGIN_DATE,'DD/MM/YYYY') ||
443 TO_CHAR(END_DATE,'DD/MM/YYYY')
444 FROM HZ_SECURITY_ISSUED
445 WHERE security_issued_id = p_from_id);
446
447 l_record_id NUMBER;
448 BEGIN
449
450 x_to_id := FND_API.G_MISS_NUM;
451
452 OPEN dupcheck;
453 FETCH dupcheck INTO l_record_id;
454 IF dupcheck%NOTFOUND THEN
455 CLOSE dupcheck;
456 RETURN FND_API.G_FALSE;
457 END IF;
458
459 x_to_id := l_record_id;
460 CLOSE dupcheck;
461 RETURN FND_API.G_TRUE;
462
463 EXCEPTION
464 WHEN OTHERS THEN
468 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
465 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
466 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
467 FND_MSG_PUB.ADD;
469 END check_security_issued_dup;
470
471 FUNCTION check_financial_reports_dup(
472 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
473 x_to_id IN OUT NOCOPY NUMBER,
474 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
475 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
476 x_return_status IN OUT NOCOPY VARCHAR2)
477 RETURN VARCHAR2 IS
478
479 CURSOR dupcheck (source_type VARCHAR2) IS
480 SELECT
481 FINANCIAL_REPORT_ID
482 FROM HZ_FINANCIAL_REPORTS
483 WHERE party_id = p_to_fk_id
484 AND
485 TO_CHAR(DATE_REPORT_ISSUED, 'DD/MM/YYYY') ||
486 DOCUMENT_REFERENCE ||
487 ISSUED_PERIOD ||
488 TYPE_OF_FINANCIAL_REPORT ||
489 TO_CHAR(REPORT_START_DATE, 'DD/MM/YYYY') ||
490 TO_CHAR(REPORT_END_DATE, 'DD/MM/YYYY') ||
491 DECODE (source_type,'P',actual_content_source,'S') =
492 (SELECT
493 TO_CHAR(DATE_REPORT_ISSUED, 'DD/MM/YYYY') ||
494 DOCUMENT_REFERENCE ||
495 ISSUED_PERIOD ||
496 TYPE_OF_FINANCIAL_REPORT ||
497 TO_CHAR(REPORT_START_DATE, 'DD/MM/YYYY') ||
498 TO_CHAR(REPORT_END_DATE, 'DD/MM/YYYY') ||
499 DECODE (source_type,'P',actual_content_source,'S')
500 FROM HZ_FINANCIAL_REPORTS
501 WHERE financial_report_id = p_from_id);
502
503 CURSOR c_cont_source IS
504 SELECT ACTUAL_CONTENT_SOURCE
505 FROM HZ_FINANCIAL_REPORTS
506 WHERE financial_report_id = p_from_id;
507
508 CURSOR dnb_dup_check IS --5396227
509 SELECT financial_report_id
510 FROM HZ_FINANCIAL_REPORTS
511 WHERE party_id = p_to_fk_id
512 AND actual_content_source = 'DNB'
513 AND nvl(status, 'A') = 'A'
514 AND type_of_financial_report= (SELECT type_of_financial_report
515 FROM HZ_FINANCIAL_REPORTS
516 WHERE financial_report_id = p_from_id);
517
518 l_cont_source VARCHAR2(255);
519 l_cont_source_type VARCHAR2(255);
520 l_record_id NUMBER;
521 l_from_last_upd_date DATE;
522 l_to_last_upd_date DATE;
523 l_temp NUMBER;
524 l_temp1 NUMBER;
525
526 l_source_type VARCHAR2(1) :='S';
527
528 BEGIN
529
530 x_to_id := FND_API.G_MISS_NUM;
531
532 OPEN c_cont_source;
533 FETCH c_cont_source INTO l_cont_source;
534 CLOSE c_cont_source;
535
536 IF l_cont_source = 'DNB' THEN
537 -- 5396227
538 OPEN dnb_dup_check;
539 FETCH dnb_dup_check INTO l_record_id;
540 IF dnb_dup_check%NOTFOUND THEN
541 CLOSE dnb_dup_check;
542 RETURN FND_API.G_FALSE;
543 END IF;
544 x_to_id := l_record_id;
545 CLOSE dnb_dup_check;
546 RETURN FND_API.G_TRUE;
547
548 ELSE---Find Whether Purchased or Spoke
549 SELECT orig_system_type INTO l_cont_source_type
550 FROM HZ_ORIG_SYSTEMS_B WHERE orig_system = l_cont_source;
551 IF l_cont_source_type = 'PURCHASED' THEN
552 l_source_type :='P';
553 END IF;
554 END IF;
555
556 ----Bug 4114254. USE ACS column for dup check if the l_cont_source is PURCHASED otherwise dont use it.
557
558 OPEN dupcheck(l_source_type);
559 FETCH dupcheck INTO l_record_id;
560 IF dupcheck%NOTFOUND THEN
561 CLOSE dupcheck;
562 RETURN FND_API.G_FALSE;
563 END IF;
564
565 x_to_id := l_record_id;
566 CLOSE dupcheck;
567
568 RETURN FND_API.G_TRUE;
569
570 EXCEPTION
571 WHEN OTHERS THEN
572 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
573 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
574 FND_MSG_PUB.ADD;
575 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
576 END check_financial_reports_dup;
577
578
579 FUNCTION check_org_indicators_dup(
580 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
581 x_to_id IN OUT NOCOPY NUMBER,
582 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
583 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
584 x_return_status IN OUT NOCOPY VARCHAR2)
585 RETURN VARCHAR2 IS
586
587 CURSOR dupcheck IS
588 SELECT
589 ORGANIZATION_INDICATOR_ID
590 FROM HZ_ORGANIZATION_INDICATORS
591 WHERE party_id = p_to_fk_id
592 AND (status IS NULL OR status = 'A')
593 AND
594 INDICATOR ||
595 TO_CHAR(START_DATE, 'DD/MM/YYYY') ||
596 TO_CHAR(END_DATE, 'DD/MM/YYYY') =
597 (SELECT
598 INDICATOR ||
599 TO_CHAR(START_DATE, 'DD/MM/YYYY') ||
600 TO_CHAR(END_DATE, 'DD/MM/YYYY')
601 FROM HZ_ORGANIZATION_INDICATORS
602 WHERE organization_indicator_id = p_from_id)
603 AND
604 nvl(DESCRIPTION , 'NODESC') =
605 (SELECT nvl(DESCRIPTION, 'NODESC')
606 FROM HZ_ORGANIZATION_INDICATORS
607 WHERE organization_indicator_id = p_from_id);
608
609 l_record_id NUMBER;
610 BEGIN
611
612 x_to_id := FND_API.G_MISS_NUM;
613
614 OPEN dupcheck;
615 FETCH dupcheck INTO l_record_id;
616 IF dupcheck%NOTFOUND THEN
617 CLOSE dupcheck;
618 RETURN FND_API.G_FALSE;
619 END IF;
623 RETURN FND_API.G_TRUE;
620
621 x_to_id := l_record_id;
622 CLOSE dupcheck;
624
625 EXCEPTION
626 WHEN OTHERS THEN
627 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
628 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
629 FND_MSG_PUB.ADD;
630 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
631 END check_org_indicators_dup;
632
633 FUNCTION check_ind_reference_dup(
634 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
635 x_to_id IN OUT NOCOPY NUMBER,
636 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
637 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
638 x_return_status IN OUT NOCOPY VARCHAR2)
639 RETURN VARCHAR2 IS
640
641 CURSOR dupcheck IS
642 SELECT
643 INDUSTRY_REFERENCE_ID
644 FROM HZ_INDUSTRIAL_REFERENCE
645 WHERE party_id = p_to_fk_id
646 AND (status IS NULL OR status = 'A')
647 AND
648 INDUSTRY_REFERENCE ||
649 ISSUED_BY_AUTHORITY ||
650 NAME_OF_REFERENCE ||
651 TO_CHAR(RECOGNIZED_AS_OF_DATE,'DD/MM/YYYY') =
652 (SELECT
653 INDUSTRY_REFERENCE ||
654 ISSUED_BY_AUTHORITY ||
655 NAME_OF_REFERENCE ||
656 TO_CHAR(RECOGNIZED_AS_OF_DATE,'DD/MM/YYYY')
657 FROM HZ_INDUSTRIAL_REFERENCE
658 WHERE industry_reference_id = p_from_id);
659
660 l_record_id NUMBER;
661 BEGIN
662
663 x_to_id := FND_API.G_MISS_NUM;
664
665 OPEN dupcheck;
666 FETCH dupcheck INTO l_record_id;
667 IF dupcheck%NOTFOUND THEN
668 CLOSE dupcheck;
669 RETURN FND_API.G_FALSE;
670 END IF;
671
672 x_to_id := l_record_id;
673 CLOSE dupcheck;
674 RETURN FND_API.G_TRUE;
675
676 EXCEPTION
677 WHEN OTHERS THEN
678 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
679 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
680 FND_MSG_PUB.ADD;
681 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
682 END check_ind_reference_dup;
683
684 FUNCTION check_per_interest_dup(
685 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
686 x_to_id IN OUT NOCOPY NUMBER,
687 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
688 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
689 x_return_status IN OUT NOCOPY VARCHAR2)
690 RETURN VARCHAR2 IS
691
692 CURSOR dupcheck IS
693 SELECT
694 PERSON_INTEREST_ID
695 FROM HZ_PERSON_INTEREST
696 WHERE party_id = p_to_fk_id
697 AND (status IS NULL OR status = 'A')
698 AND
699 INTEREST_TYPE_CODE ||
700 SUB_INTEREST_TYPE_CODE =
701 (SELECT
702 INTEREST_TYPE_CODE ||
703 SUB_INTEREST_TYPE_CODE
704 FROM HZ_PERSON_INTEREST
705 WHERE person_interest_id = p_from_id);
706
707 l_record_id NUMBER;
708 BEGIN
709
710 x_to_id := FND_API.G_MISS_NUM;
711
712 OPEN dupcheck;
713 FETCH dupcheck INTO l_record_id;
714 IF dupcheck%NOTFOUND THEN
715 CLOSE dupcheck;
716 RETURN FND_API.G_FALSE;
717 END IF;
718
719 x_to_id := l_record_id;
720 CLOSE dupcheck;
721 RETURN FND_API.G_TRUE;
722
723 EXCEPTION
724 WHEN OTHERS THEN
725 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
726 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
727 FND_MSG_PUB.ADD;
728 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
729 END check_per_interest_dup;
730
731
732 FUNCTION check_citizenship_dup(
733 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
734 x_to_id IN OUT NOCOPY NUMBER,
735 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
736 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
737 x_return_status IN OUT NOCOPY VARCHAR2)
738 RETURN VARCHAR2 IS
739
740 CURSOR dupcheck IS
741 SELECT
742 CITIZENSHIP_ID
743 FROM HZ_CITIZENSHIP
744 WHERE party_id = p_to_fk_id
745 AND (status IS NULL OR status = 'A')
746 AND
747 BIRTH_OR_SELECTED ||
748 COUNTRY_CODE ||
749 TO_CHAR(DATE_DISOWNED, 'DD/MM/YYYY') ||
750 TO_CHAR(DATE_RECOGNIZED, 'DD/MM/YYYY') ||
751 DOCUMENT_REFERENCE ||
752 TO_CHAR(END_DATE, 'DD/MM/YYYY') ||
753 DOCUMENT_TYPE =
754 (SELECT
755 BIRTH_OR_SELECTED ||
756 COUNTRY_CODE ||
757 TO_CHAR(DATE_DISOWNED, 'DD/MM/YYYY') ||
758 TO_CHAR(DATE_RECOGNIZED, 'DD/MM/YYYY') ||
759 DOCUMENT_REFERENCE ||
760 TO_CHAR(END_DATE, 'DD/MM/YYYY') ||
761 DOCUMENT_TYPE
762 FROM HZ_CITIZENSHIP
763 WHERE citizenship_id = p_from_id);
764
765 l_record_id NUMBER;
766 BEGIN
767
768 x_to_id := FND_API.G_MISS_NUM;
769
770 OPEN dupcheck;
771 FETCH dupcheck INTO l_record_id;
772 IF dupcheck%NOTFOUND THEN
773 CLOSE dupcheck;
774 RETURN FND_API.G_FALSE;
775 END IF;
776
777 x_to_id := l_record_id;
778 CLOSE dupcheck;
779 RETURN FND_API.G_TRUE;
780
781 EXCEPTION
782 WHEN OTHERS THEN
783 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
784 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
785 FND_MSG_PUB.ADD;
786 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
790 FUNCTION check_education_dup(
787 END check_citizenship_dup;
788
789
791 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
792 x_to_id IN OUT NOCOPY NUMBER,
793 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
794 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
795 x_return_status IN OUT NOCOPY VARCHAR2)
796 RETURN VARCHAR2 IS
797
798 CURSOR dupcheck IS
799 SELECT
800 EDUCATION_ID
801 FROM HZ_EDUCATION
802 WHERE party_id = p_to_fk_id
803 AND (status IS NULL OR status = 'A')
804 AND
805 COURSE_MAJOR ||
806 DEGREE_RECEIVED ||
807 TO_CHAR(LAST_DATE_ATTENDED, 'DD/MM/YYYY') ||
808 TO_CHAR(START_DATE_ATTENDED, 'DD/MM/YYYY') ||
809 TYPE_OF_SCHOOL ||
810 SCHOOL_ATTENDED_NAME ||
811 SCHOOL_PARTY_ID=
812 (SELECT
813 COURSE_MAJOR ||
814 DEGREE_RECEIVED ||
815 TO_CHAR(LAST_DATE_ATTENDED, 'DD/MM/YYYY') ||
816 TO_CHAR(START_DATE_ATTENDED, 'DD/MM/YYYY') ||
817 TYPE_OF_SCHOOL ||
818 SCHOOL_ATTENDED_NAME ||
819 SCHOOL_PARTY_ID
820 FROM HZ_EDUCATION
821 WHERE education_id = p_from_id);
822
823 l_record_id NUMBER;
824 BEGIN
825
826 x_to_id := FND_API.G_MISS_NUM;
827
828 OPEN dupcheck;
829 FETCH dupcheck INTO l_record_id;
830 IF dupcheck%NOTFOUND THEN
831 CLOSE dupcheck;
832 RETURN FND_API.G_FALSE;
833 END IF;
834
835 x_to_id := l_record_id;
836 CLOSE dupcheck;
837 RETURN FND_API.G_TRUE;
838
839 EXCEPTION
840 WHEN OTHERS THEN
841 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
842 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
843 FND_MSG_PUB.ADD;
844 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
845 END check_education_dup;
846
847 FUNCTION check_work_class_dup(
848 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
849 x_to_id IN OUT NOCOPY NUMBER,
850 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
851 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
852 x_return_status IN OUT NOCOPY VARCHAR2)
853 RETURN VARCHAR2 IS
854 CURSOR dupcheck IS
855 SELECT
856 WORK_CLASS_ID
857 FROM HZ_WORK_CLASS
858 WHERE employment_history_id = p_to_fk_id
859 AND (status IS NULL OR status = 'A')
860 AND
861 WORK_CLASS_NAME =
862 (SELECT
863 WORK_CLASS_NAME
864 FROM HZ_WORK_CLASS
865 WHERE work_class_id = p_from_id);
866 l_record_id NUMBER;
867 BEGIN
868
869 x_to_id := FND_API.G_MISS_NUM;
870
871 OPEN dupcheck;
872 FETCH dupcheck INTO l_record_id;
873 IF dupcheck%NOTFOUND THEN
874 CLOSE dupcheck;
875 RETURN FND_API.G_FALSE;
876 END IF;
877
878 x_to_id := l_record_id;
879 CLOSE dupcheck;
880 RETURN FND_API.G_TRUE;
881
882 EXCEPTION
883 WHEN OTHERS THEN
884 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
885 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
886 FND_MSG_PUB.ADD;
887 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
888 END check_work_class_dup;
889
890
891 FUNCTION check_emp_history_dup(
892 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
893 x_to_id IN OUT NOCOPY NUMBER,
894 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
895 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
896 x_return_status IN OUT NOCOPY VARCHAR2)
897 RETURN VARCHAR2 IS
898
899 CURSOR dupcheck IS
900 SELECT
901 EMPLOYMENT_HISTORY_ID
902 FROM HZ_EMPLOYMENT_HISTORY
903 WHERE party_id = p_to_fk_id
904 AND (status IS NULL OR status = 'A')
905 AND
906 TO_CHAR(BEGIN_DATE, 'DD/MM/YYYY') ||
907 EMPLOYED_AS_TITLE ||
908 EMPLOYED_BY_DIVISION_NAME ||
909 EMPLOYED_BY_NAME_COMPANY ||
910 TO_CHAR(END_DATE, 'DD/MM/YYYY') ||
911 SUPERVISOR_NAME ||
912 BRANCH ||
913 MILITARY_RANK ||
914 SERVED ||
915 STATION =
916 (SELECT
917 TO_CHAR(BEGIN_DATE, 'DD/MM/YYYY') ||
918 EMPLOYED_AS_TITLE ||
919 EMPLOYED_BY_DIVISION_NAME ||
920 EMPLOYED_BY_NAME_COMPANY ||
921 TO_CHAR(END_DATE, 'DD/MM/YYYY') ||
922 SUPERVISOR_NAME ||
923 BRANCH ||
924 MILITARY_RANK ||
925 SERVED ||
926 STATION
927 FROM HZ_EMPLOYMENT_HISTORY
928 WHERE employment_history_id = p_from_id);
929
930 l_record_id NUMBER;
931 BEGIN
932
933 x_to_id := FND_API.G_MISS_NUM;
934
935 OPEN dupcheck;
936 FETCH dupcheck INTO l_record_id;
937 IF dupcheck%NOTFOUND THEN
938 CLOSE dupcheck;
939 RETURN FND_API.G_FALSE;
940 END IF;
941
942 x_to_id := l_record_id;
943 CLOSE dupcheck;
944 RETURN FND_API.G_TRUE;
945
946 EXCEPTION
947 WHEN OTHERS THEN
948 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
949 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
950 FND_MSG_PUB.ADD;
951 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
952 END check_emp_history_dup;
953
954
955 FUNCTION check_languages_dup(
959 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
956 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
957 x_to_id IN OUT NOCOPY NUMBER,
958 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
960 x_return_status IN OUT NOCOPY VARCHAR2)
961 RETURN VARCHAR2 IS
962
963 CURSOR dupcheck IS
964 SELECT LANGUAGE_USE_REFERENCE_ID
965 FROM HZ_PERSON_LANGUAGE
966 WHERE party_id = p_to_fk_id
967 AND (status IS NULL OR status = 'A')
968 AND
969 LANGUAGE_NAME =
970 (SELECT
971 LANGUAGE_NAME
972 FROM HZ_PERSON_LANGUAGE
973 WHERE language_use_reference_id = p_from_id);
974
975 l_record_id NUMBER;
976 BEGIN
977
978 x_to_id := FND_API.G_MISS_NUM;
979
980 OPEN dupcheck;
981 FETCH dupcheck INTO l_record_id;
982 IF dupcheck%NOTFOUND THEN
983 CLOSE dupcheck;
984 RETURN FND_API.G_FALSE;
985 END IF;
986
987 x_to_id := l_record_id;
988 CLOSE dupcheck;
989 RETURN FND_API.G_TRUE;
990
991 EXCEPTION
992 WHEN OTHERS THEN
993 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
994 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
995 FND_MSG_PUB.ADD;
996 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
997 END check_languages_dup;
998
999 FUNCTION check_party_site_use_dup(
1000 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1001 x_to_id IN OUT NOCOPY NUMBER,
1002 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1003 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1004 x_return_status IN OUT NOCOPY VARCHAR2)
1005 RETURN VARCHAR2 IS
1006
1007 ---Bug:2619948 remove comments, begin_date and end_date from duplicate check
1008
1009 CURSOR dupcheck IS
1010 SELECT
1011 PARTY_SITE_USE_ID
1012 FROM HZ_PARTY_SITE_USES
1013 WHERE party_site_id = p_to_fk_id
1014 AND (status IS NULL OR status = 'A')
1015 AND SITE_USE_TYPE =
1016 (SELECT
1017 SITE_USE_TYPE
1018 FROM HZ_PARTY_SITE_USES
1019 WHERE party_site_use_id = p_from_id);
1020
1021 l_record_id NUMBER;
1022 BEGIN
1023
1024 x_to_id := FND_API.G_MISS_NUM;
1025
1026 OPEN dupcheck;
1027 FETCH dupcheck INTO l_record_id;
1028 IF dupcheck%NOTFOUND THEN
1029 CLOSE dupcheck;
1030 RETURN FND_API.G_FALSE;
1031 END IF;
1032
1033 x_to_id := l_record_id;
1034 CLOSE dupcheck;
1035 RETURN FND_API.G_TRUE;
1036
1037 EXCEPTION
1038 WHEN OTHERS THEN
1039 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1040 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1041 FND_MSG_PUB.ADD;
1042 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1043 END check_party_site_use_dup;
1044
1045 FUNCTION check_party_site_dup(
1046 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1047 x_to_id IN OUT NOCOPY NUMBER,
1048 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1049 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1050 x_return_status IN OUT NOCOPY VARCHAR2)
1051 RETURN VARCHAR2 IS
1052
1053 CURSOR dupcheck IS
1054 SELECT
1055 PARTY_SITE_ID
1056 FROM HZ_PARTY_SITES
1057 WHERE party_id = p_to_fk_id
1058 AND (status IS NULL OR status = 'A')
1059 AND LOCATION_ID = (
1060 SELECT LOCATION_ID
1061 FROM HZ_PARTY_SITES
1062 WHERE party_site_id = p_from_id);
1063
1064 l_record_id NUMBER;
1065 BEGIN
1066
1067 x_to_id := FND_API.G_MISS_NUM;
1068
1069 OPEN dupcheck;
1070 FETCH dupcheck INTO l_record_id;
1071 IF dupcheck%NOTFOUND THEN
1072 CLOSE dupcheck;
1073 RETURN FND_API.G_FALSE;
1074 END IF;
1075
1076 x_to_id := l_record_id;
1077 CLOSE dupcheck;
1078 RETURN FND_API.G_TRUE;
1079
1080 EXCEPTION
1081 WHEN OTHERS THEN
1082 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1083 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1084 FND_MSG_PUB.ADD;
1085 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1086 END check_party_site_dup;
1087
1088 FUNCTION check_code_assignment_dup(
1089 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1090 x_to_id IN OUT NOCOPY NUMBER,
1091 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1092 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1093 p_owner_table_name IN VARCHAR2,
1094 x_return_status IN OUT NOCOPY VARCHAR2)
1095 RETURN VARCHAR2 IS
1096
1097 CURSOR dupcheck IS
1098 SELECT
1099 CODE_ASSIGNMENT_ID
1100 FROM HZ_CODE_ASSIGNMENTS
1101 WHERE owner_table_name = p_owner_table_name
1102 AND owner_table_id = p_to_fk_id
1103 --AND (status IS NULL OR status = 'A')--Commented for Bug#3016319.
1104 AND CLASS_CATEGORY || CLASS_CODE = (
1105 SELECT CLASS_CATEGORY ||
1106 CLASS_CODE
1107 FROM HZ_CODE_ASSIGNMENTS
1108 WHERE code_assignment_id = p_from_id);
1109
1110 CURSOR c_cont_source IS
1111 SELECT CONTENT_SOURCE_TYPE
1112 FROM HZ_CODE_ASSIGNMENTS
1113 WHERE code_assignment_id = p_from_id;
1114
1115 l_cont_source VARCHAR2(255);
1116 l_record_id NUMBER;
1117 l_from_last_upd_date DATE;
1118 l_to_last_upd_date DATE;
1122
1119 l_temp NUMBER;
1120
1121 BEGIN
1123 x_to_id := FND_API.G_MISS_NUM;
1124
1125 OPEN c_cont_source;
1126 FETCH c_cont_source INTO l_cont_source;
1127 CLOSE c_cont_source;
1128
1129 IF l_cont_source = 'DNB' THEN
1130 RETURN FND_API.G_FALSE;
1131 END IF;
1132
1133 OPEN dupcheck;
1134 FETCH dupcheck INTO l_record_id;
1135 IF dupcheck%NOTFOUND THEN
1136 CLOSE dupcheck;
1137 RETURN FND_API.G_FALSE;
1138 END IF;
1139
1140 x_to_id := l_record_id;
1141 CLOSE dupcheck;
1142 RETURN FND_API.G_TRUE;
1143
1144 END check_code_assignment_dup;
1145
1146 FUNCTION check_financial_number_dup(
1147 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1148 x_to_id IN OUT NOCOPY NUMBER,
1149 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1150 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1151 x_return_status IN OUT NOCOPY VARCHAR2)
1152 RETURN VARCHAR2 IS
1153
1154 CURSOR dupcheck IS
1155 SELECT
1156 FINANCIAL_NUMBER_ID
1157 FROM HZ_FINANCIAL_NUMBERS
1158 WHERE financial_report_id = p_to_fk_id
1159 AND NVL(FINANCIAL_NUMBER_NAME,'NONAME') = (
1160 SELECT
1161 NVL(FINANCIAL_NUMBER_NAME,'NONAME')
1162 FROM HZ_FINANCIAL_NUMBERS
1163 WHERE financial_number_id = p_from_id);
1164
1165 l_record_id NUMBER;
1166
1167 BEGIN
1168
1169 x_to_id := FND_API.G_MISS_NUM;
1170
1171 OPEN dupcheck;
1172 FETCH dupcheck INTO l_record_id;
1173 IF dupcheck%NOTFOUND THEN
1174 CLOSE dupcheck;
1175 RETURN FND_API.G_FALSE;
1176 END IF;
1177
1178 x_to_id := l_record_id;
1179 CLOSE dupcheck;
1180 RETURN FND_API.G_TRUE;
1181
1182 END check_financial_number_dup;
1183
1184 FUNCTION check_org_contact_role_dup(
1185 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1186 x_to_id IN OUT NOCOPY NUMBER,
1187 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1188 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1189 x_return_status IN OUT NOCOPY VARCHAR2)
1190 RETURN VARCHAR2 IS
1191
1192 CURSOR dupcheck IS
1193 SELECT
1194 ORG_CONTACT_ROLE_ID
1195 FROM HZ_ORG_CONTACT_ROLES
1196 WHERE org_contact_id = p_to_fk_id
1197 AND ROLE_TYPE = (
1198 SELECT ROLE_TYPE
1199 FROM HZ_ORG_CONTACT_ROLES
1200 WHERE ORG_CONTACT_ROLE_ID = p_from_id);
1201
1202 l_record_id NUMBER;
1203
1204 BEGIN
1205
1206 x_to_id := FND_API.G_MISS_NUM;
1207
1208 OPEN dupcheck;
1209 FETCH dupcheck INTO l_record_id;
1210 IF dupcheck%NOTFOUND THEN
1211 CLOSE dupcheck;
1212 RETURN FND_API.G_FALSE;
1213 END IF;
1214
1215 x_to_id := l_record_id;
1216 CLOSE dupcheck;
1217 RETURN FND_API.G_TRUE;
1218
1219 END check_org_contact_role_dup;
1220
1221 FUNCTION check_contact_preference_dup(
1222 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1223 x_to_id IN OUT NOCOPY NUMBER,
1224 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1225 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1226 p_owner_table_name IN VARCHAR2,
1227 x_return_status IN OUT NOCOPY VARCHAR2)
1228 RETURN VARCHAR2 IS
1229
1230 CURSOR dupcheck IS
1231 SELECT
1232 CONTACT_PREFERENCE_ID
1233 FROM HZ_CONTACT_PREFERENCES
1234 WHERE contact_level_table = p_owner_table_name
1235 AND contact_level_table_id = p_to_fk_id
1236 AND (status IS NULL OR status = 'A')
1237 AND --Bug:4390508 - contact_type || preference_code || preference_topic_type ||
1238 contact_type || preference_topic_type ||
1239 preference_topic_type_id || preference_topic_type_code =
1240 (SELECT
1241 --Bug:4390508 - contact_type || preference_code ||
1242 contact_type ||
1243 preference_topic_type ||
1244 preference_topic_type_id ||
1245 preference_topic_type_code
1246 FROM HZ_CONTACT_PREFERENCES
1247 WHERE contact_preference_id = p_from_id)
1248 AND NOT (
1249 ( preference_end_date is not null and
1250 preference_end_date <= ( SELECT preference_start_date
1251 FROM HZ_CONTACT_PREFERENCES
1252 WHERE contact_preference_id = p_from_id))
1253 OR
1254 ( exists (SELECT 1
1255 FROM HZ_CONTACT_PREFERENCES
1256 WHERE contact_preference_id = p_from_id
1257 AND preference_end_date is not null) AND
1258 preference_start_date >= ( SELECT preference_end_date
1259 FROM HZ_CONTACT_PREFERENCES
1260 WHERE contact_preference_id = p_from_id))
1261 )
1262 AND NOT (
1263 (
1264 (decode(preference_start_time_hr, null, 0, preference_start_time_hr) * 60 +
1265 decode(preference_start_time_mi, null, 0, preference_start_time_mi)) >
1266 ( select (decode(preference_end_time_hr, null, 24, preference_end_time_hr) * 60 +
1267 decode (preference_end_time_mi, null, 60, preference_end_time_mi))
1268 from HZ_CONTACT_PREFERENCES
1269 WHERE contact_preference_id = p_from_id)
1270 ) OR (
1271 (decode(preference_end_time_hr, null, 24, preference_end_time_hr ) * 60 +
1272 decode(preference_end_time_mi, null, 60, preference_end_time_mi)) <
1273 (select (decode(preference_start_time_hr, null, 0, preference_start_time_hr) * 60 +
1274 decode(preference_start_time_mi, null, 0, preference_start_time_mi ))
1275 FROM HZ_CONTACT_PREFERENCES
1276 WHERE contact_preference_id = p_from_id)
1277 )
1278 );
1279
1280 l_record_id NUMBER;
1281
1282 BEGIN
1283
1284 x_to_id := FND_API.G_MISS_NUM;
1285
1286 OPEN dupcheck;
1287 FETCH dupcheck INTO l_record_id;
1288 IF dupcheck%NOTFOUND THEN
1289 CLOSE dupcheck;
1290 RETURN FND_API.G_FALSE;
1291 END IF;
1292
1293 x_to_id := l_record_id;
1294 CLOSE dupcheck;
1295 RETURN FND_API.G_TRUE;
1296
1297 EXCEPTION
1298 WHEN OTHERS THEN
1299 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1300 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1301 FND_MSG_PUB.ADD;
1302 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1303 END check_contact_preference_dup;
1304
1305 --Bug No: 4577535 fix checking for duplicate addresses
1306
1307 FUNCTION check_address_dup(
1308 p_from_location_id IN NUMBER:=FND_API.G_MISS_NUM,
1309 x_to_id IN OUT NOCOPY NUMBER,
1310 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1311 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1312 x_return_status IN OUT NOCOPY VARCHAR2)
1313 RETURN VARCHAR2 IS
1314
1315 CURSOR dupcheck IS
1316 SELECT PARTY_SITE_ID
1317 FROM HZ_PARTY_SITES ps,
1318 HZ_LOCATIONS l
1319 WHERE ps.party_id = p_to_fk_id
1320 AND ps.location_id = l.location_id
1321 AND (ps.status IS NULL OR ps.status = 'A')
1322 AND UPPER(TRIM(ADDRESS1) ||
1323 TRIM(ADDRESS2) ||
1324 TRIM(ADDRESS3) ||
1325 TRIM(ADDRESS4) ||
1326 TRIM(COUNTRY) ||
1327 TRIM(STATE) ||
1328 TRIM(CITY) ||
1329 TRIM(PROVINCE) ||
1330 TRIM(COUNTY) ||
1331 TRIM(POSTAL_CODE)) =
1332 (SELECT UPPER(TRIM(ADDRESS1) ||
1333 TRIM(ADDRESS2) ||
1334 TRIM(ADDRESS3) ||
1335 TRIM(ADDRESS4) ||
1336 TRIM(COUNTRY) ||
1337 TRIM(STATE) ||
1338 TRIM(CITY) ||
1339 TRIM(PROVINCE) ||
1340 TRIM(COUNTY) ||
1341 TRIM(POSTAL_CODE))
1342 FROM HZ_LOCATIONS
1343 WHERE LOCATION_ID = p_from_location_id);
1344
1345 l_record_id NUMBER;
1346 BEGIN
1347
1348 x_to_id := FND_API.G_MISS_NUM;
1349
1350 OPEN dupcheck;
1351 FETCH dupcheck INTO l_record_id;
1352 IF dupcheck%NOTFOUND THEN
1353 CLOSE dupcheck;
1354 RETURN FND_API.G_FALSE;
1355 END IF;
1356
1357 x_to_id := l_record_id;
1358 CLOSE dupcheck;
1359 RETURN FND_API.G_TRUE;
1360
1361 EXCEPTION
1362 WHEN OTHERS THEN
1363 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1364 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1365 FND_MSG_PUB.ADD;
1366 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1367 END check_address_dup;
1368
1369 END HZ_MERGE_DUP_CHECK;