[Home] [Help]
PACKAGE BODY: APPS.JL_ZZ_AR_TX_ATT_CLS_PKG
Source
1 PACKAGE BODY JL_ZZ_AR_TX_ATT_CLS_PKG as
2 /* $Header: jlzztclb.pls 120.2 2003/03/03 19:34:03 opedrega ship $ */
3
4 -- Populate_All_Rows
5
6 PROCEDURE Populate_All_Rows
7 (X_class_type VARCHAR2,
8 X_class_code VARCHAR2,
9 X_enabled_flag VARCHAR2,
10 X_org_id NUMBER) IS
11
12 BEGIN
13 Insert into JL_ZZ_AR_TX_ATT_CLS(attribute_class_id,
14 tax_attr_class_type,
15 tax_attr_class_code,
16 tax_category_id,
17 tax_attribute_type,
18 tax_attribute_name,
19 tax_attribute_value,
20 enabled_flag,
21 org_id,
22 last_update_date,
23 last_updated_by,
24 last_update_login,
25 creation_date,
26 created_by)
27 Select JL_ZZ_AR_TX_ATT_CLS_S.nextval,
28 X_class_type,
29 X_class_code,
30 tcav.tax_category_id,
31 tcav.tax_attribute_type,
32 tcav.tax_attribute_name,
33 tcav.tax_attribute_value,
34 X_enabled_flag,
35 X_org_id,
36 SYSDATE,
37 TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),
38 TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),
39 SYSDATE,
40 TO_NUMBER(FND_PROFILE.VALUE('USER_ID'))
41 FROM JL_ZZ_AR_TX_ATT_VAL tcav
42 WHERE tcav.tax_attribute_type = decode(X_class_type,
43 'ORGANIZATION_CLASS',
44 'ORGANIZATION_ATTRIBUTE',
45 'TRANSACTION_CLASS',
46 'TRANSACTION_ATTRIBUTE',
47 'CONTRIBUTOR_CLASS',
48 'CONTRIBUTOR_ATTRIBUTE')
49 AND tcav.default_to_class = 'Y'
50 AND tcav.org_id = X_org_id;
51 EXCEPTION
52 WHEN NO_DATA_FOUND THEN
53 null;
54 WHEN OTHERS THEN
55 null;
56 END Populate_All_Rows;
57
58 -- Poulate_Mandatory_Rows
59 PROCEDURE Populate_Mandatory_Rows
60 (X_class_type VARCHAR2,
61 X_class_code VARCHAR2,
62 X_enabled_flag VARCHAR2,
63 X_org_id NUMBER) IS
64
65 BEGIN
66 Insert into JL_ZZ_AR_TX_ATT_CLS(attribute_class_id,
67 tax_attr_class_type,
68 tax_attr_class_code,
69 tax_category_id,
70 tax_attribute_type,
71 tax_attribute_name,
72 tax_attribute_value,
73 enabled_flag,
74 org_id,
75 last_update_date,
76 last_updated_by,
77 last_update_login,
78 creation_date,
79 created_by)
80 SELECT JL_ZZ_AR_TX_ATT_CLS_S.nextval,
81 X_class_type,
82 X_class_code,
83 tcav.tax_category_id,
84 tcav.tax_attribute_type,
85 tcav.tax_attribute_name,
86 tcav.tax_attribute_value,
87 X_enabled_flag,
88 X_org_id,
89 SYSDATE,
90 TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),
91 TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),
92 SYSDATE,
93 TO_NUMBER(FND_PROFILE.VALUE('USER_ID'))
94 FROM JL_ZZ_AR_TX_CAT_ATT tca,
95 JL_ZZ_AR_TX_ATT_VAL tcav,
96 JL_ZZ_AR_TX_CATEGRY cgy
97 WHERE cgy.tax_category_id = tca.tax_category_id
98 AND tca.tax_category_id = tcav.tax_category_id
99 AND tca.tax_attribute_type = tcav.tax_attribute_type
100 AND tca.tax_attribute_name = tcav.tax_attribute_name
101 AND tca.mandatory_in_class = 'Y'
102 AND cgy.mandatory_in_class = 'Y'
103 AND tcav.tax_attribute_type = decode(X_class_type,
104 'ORGANIZATION_CLASS',
105 'ORGANIZATION_ATTRIBUTE',
106 'TRANSACTION_CLASS',
107 'TRANSACTION_ATTRIBUTE',
108 'CONTRIBUTOR_CLASS',
109 'CONTRIBUTOR_ATTRIBUTE')
110 AND tcav.default_to_class = 'Y'
111 AND tcav.org_id = X_org_id;
112
113 EXCEPTION
114 WHEN NO_DATA_FOUND THEN
115 null;
116 WHEN OTHERS THEN
117 null;
118 END Populate_Mandatory_Rows;
119
120 PROCEDURE Insert_Row
121 (X_rowid IN OUT NOCOPY VARCHAR2,
122 X_attribute_class_id NUMBER,
123 X_tax_attr_class_type VARCHAR2,
124 X_tax_attr_class_code VARCHAR2,
125 X_tax_category_id NUMBER,
126 X_tax_attribute_type VARCHAR2,
127 X_tax_attribute_name VARCHAR2,
128 X_tax_attribute_value VARCHAR2,
129 X_enabled_flag VARCHAR2,
130 X_org_id NUMBER,
131 X_last_updated_by NUMBER,
132 X_last_update_date DATE,
133 X_last_update_login NUMBER,
134 X_creation_date DATE,
135 X_created_by NUMBER,
136 X_attribute_category VARCHAR2,
137 X_attribute1 VARCHAR2,
138 X_attribute2 VARCHAR2,
139 X_attribute3 VARCHAR2,
140 X_attribute4 VARCHAR2,
141 X_attribute5 VARCHAR2,
142 X_attribute6 VARCHAR2,
143 X_attribute7 VARCHAR2,
144 X_attribute8 VARCHAR2,
145 X_attribute9 VARCHAR2,
146 X_attribute10 VARCHAR2,
147 X_attribute11 VARCHAR2,
148 X_attribute12 VARCHAR2,
149 X_attribute13 VARCHAR2,
150 X_attribute14 VARCHAR2,
151 X_attribute15 VARCHAR2,
152 X_calling_sequence IN VARCHAR2) IS
153
154 CURSOR C IS
155 SELECT rowid
156 FROM jl_zz_ar_tx_att_cls
157 WHERE tax_attr_class_type = X_tax_attr_class_type
158 AND tax_attr_class_code = X_tax_attr_class_code
159 AND tax_category_id = X_tax_category_id
160 AND tax_attribute_type = X_tax_attribute_type
161 AND tax_attribute_name = X_tax_attribute_name
162 AND org_id = X_org_id;
163
164 current_calling_sequence VARCHAR2(2000);
165 debug_info VARCHAR2(100);
166
167 BEGIN
168
169 -- Update the calling sequence
170
171 current_calling_sequence := 'JL_ZZ_AR_TX_ATT_CLS_PKG.INSERT_ROW<-' ||
172 X_calling_sequence;
173
174 debug_info := 'Insert into JL_ZZ_AR_TX_ATT_CLS ';
175
176 INSERT INTO JL_ZZ_AR_TX_ATT_CLS(attribute_class_id,
177 tax_attr_class_type,
178 tax_attr_class_code,
179 tax_category_id,
180 tax_attribute_type,
181 tax_attribute_name,
182 tax_attribute_value,
183 enabled_flag,
184 org_id,
185 last_updated_by,
186 last_update_date,
187 last_update_login,
188 creation_date,
189 created_by,
190 attribute_category,
191 attribute1,
192 attribute2,
193 attribute3,
194 attribute4,
195 attribute5,
196 attribute6,
197 attribute7,
198 attribute8,
199 attribute9,
200 attribute10,
201 attribute11,
202 attribute12,
203 attribute13,
204 attribute14,
205 attribute15)
206 VALUES (X_attribute_class_id,
207 X_tax_attr_class_type,
208 X_tax_attr_class_code,
209 X_tax_category_id,
210 X_tax_attribute_type,
211 X_tax_attribute_name,
212 X_tax_attribute_value,
213 X_enabled_flag,
214 X_org_id,
215 X_last_updated_by,
216 X_last_update_date,
217 X_last_update_login,
218 X_creation_date,
219 X_created_by,
220 X_attribute_category,
221 X_attribute1,
222 X_attribute2,
223 X_attribute3,
224 X_attribute4,
225 X_attribute5,
226 X_attribute6,
227 X_attribute7,
228 X_attribute8,
229 X_attribute9,
230 X_attribute10,
231 X_attribute11,
232 X_attribute12,
233 X_attribute13,
234 X_attribute14,
235 X_attribute15);
236
237 debug_info := 'Open cursor C';
238 OPEN C;
239 debug_info := 'Fetch cursor C';
240 FETCH C INTO X_rowid;
241 if (C%NOTFOUND) then
242 debug_info := 'Close cursor C - DATA NOTFOUND';
243 CLOSE C;
244 Raise NO_DATA_FOUND;
245 end if;
246 debug_info := 'Close cursor C';
247 CLOSE C;
248 EXCEPTION
249 WHEN OTHERS THEN
250 IF (SQLCODE <> -20001) THEN
251 FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
252 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
253 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
254 FND_MESSAGE.SET_TOKEN('PARAMETERS',
255 'tax_attr_class_type = ' || X_tax_attr_class_type ||
256 ' tax_attr_class_code = ' || X_tax_attr_class_code ||
257 ' tax_category_id = ' || X_tax_category_id ||
258 ' tax_attribute_type = ' || X_tax_attribute_type ||
259 ' tax_attribute_name = ' || X_tax_attribute_name ||
260 ' org_id = ' || X_org_id );
261 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
262 END IF;
263 APP_EXCEPTION.RAISE_EXCEPTION;
264 END Insert_Row;
265
266 PROCEDURE Update_Row
267 (X_rowid VARCHAR2,
268 X_tax_attr_class_type VARCHAR2,
269 X_tax_attr_class_code VARCHAR2,
270 X_tax_category_id NUMBER,
271 X_tax_attribute_type VARCHAR2,
272 X_tax_attribute_name VARCHAR2,
273 X_tax_attribute_value VARCHAR2,
274 X_enabled_flag VARCHAR2,
275 X_org_id NUMBER,
276 X_last_updated_by NUMBER,
277 X_last_update_date DATE,
278 X_last_update_login NUMBER,
279 X_creation_date DATE,
280 X_created_by NUMBER,
281 X_attribute_category VARCHAR2,
282 X_attribute1 VARCHAR2,
283 X_attribute2 VARCHAR2,
284 X_attribute3 VARCHAR2,
285 X_attribute4 VARCHAR2,
286 X_attribute5 VARCHAR2,
287 X_attribute6 VARCHAR2,
288 X_attribute7 VARCHAR2,
289 X_attribute8 VARCHAR2,
290 X_attribute9 VARCHAR2,
291 X_attribute10 VARCHAR2,
292 X_attribute11 VARCHAR2,
293 X_attribute12 VARCHAR2,
294 X_attribute13 VARCHAR2,
295 X_attribute14 VARCHAR2,
296 X_attribute15 VARCHAR2,
297 X_calling_sequence IN VARCHAR2) IS
298
299 BEGIN
300 UPDATE JL_ZZ_AR_TX_ATT_CLS
301 SET tax_attr_class_type = X_tax_attr_class_type,
302 tax_attr_class_code = X_tax_attr_class_code,
303 tax_category_id = X_tax_category_id,
304 tax_attribute_type = X_tax_attribute_type,
305 tax_attribute_name = X_tax_attribute_name,
306 tax_attribute_value = X_tax_attribute_value,
307 enabled_flag = X_enabled_flag,
308 org_id = X_org_id,
309 last_updated_by = X_last_updated_by,
310 last_update_date = X_last_update_date,
311 last_update_login = X_last_update_login,
312 creation_date = X_creation_date,
313 created_by = X_created_by,
314 attribute_category = X_attribute_category,
315 attribute1 = X_attribute1,
316 attribute2 = X_attribute2,
317 attribute3 = X_attribute3,
318 attribute4 = X_attribute4,
319 attribute5 = X_attribute5,
320 attribute6 = X_attribute6,
321 attribute7 = X_attribute7,
322 attribute8 = X_attribute8,
323 attribute9 = X_attribute9,
324 attribute10 = X_attribute10,
325 attribute11 = X_attribute11,
326 attribute12 = X_attribute12,
327 attribute13 = X_attribute13,
328 attribute14 = X_attribute14,
329 attribute15 = X_attribute15
330 WHERE rowid = X_rowid;
331
332 IF (SQL%NOTFOUND) THEN
333 raise NO_DATA_FOUND;
334 END IF;
335
336 END Update_Row;
337
338 PROCEDURE Delete_Row
339 (X_rowid VARCHAR2) IS
340
341 BEGIN
342 DELETE
343 FROM JL_ZZ_AR_TX_ATT_CLS
344 WHERE rowid = X_rowid;
345
346 IF (SQL%NOTFOUND) THEN
347 raise NO_DATA_FOUND;
348 END IF;
349
350 END Delete_Row;
351
352
353 PROCEDURE Lock_Row
354 (X_rowid VARCHAR2,
355 X_tax_attr_class_type VARCHAR2,
356 X_tax_attr_class_code VARCHAR2,
357 X_tax_category_id NUMBER,
358 X_tax_attribute_type VARCHAR2,
359 X_tax_attribute_name VARCHAR2,
360 X_tax_attribute_value VARCHAR2,
361 X_enabled_flag VARCHAR2,
362 X_org_id NUMBER,
363 X_last_updated_by NUMBER,
364 X_last_update_date DATE,
365 X_last_update_login NUMBER,
366 X_creation_date DATE,
367 X_created_by NUMBER,
368 X_attribute_category VARCHAR2,
369 X_attribute1 VARCHAR2,
370 X_attribute2 VARCHAR2,
371 X_attribute3 VARCHAR2,
372 X_attribute4 VARCHAR2,
373 X_attribute5 VARCHAR2,
374 X_attribute6 VARCHAR2,
375 X_attribute7 VARCHAR2,
376 X_attribute8 VARCHAR2,
377 X_attribute9 VARCHAR2,
378 X_attribute10 VARCHAR2,
379 X_attribute11 VARCHAR2,
380 X_attribute12 VARCHAR2,
381 X_attribute13 VARCHAR2,
382 X_attribute14 VARCHAR2,
383 X_attribute15 VARCHAR2,
384 X_calling_sequence IN VARCHAR2) IS
385
386 CURSOR C IS
387 SELECT ATTRIBUTE_CLASS_ID,
388 TAX_ATTR_CLASS_TYPE,
389 TAX_ATTR_CLASS_CODE,
390 TAX_CATEGORY_ID,
391 TAX_ATTRIBUTE_TYPE,
392 TAX_ATTRIBUTE_NAME,
393 TAX_ATTRIBUTE_VALUE,
394 ENABLED_FLAG,
395 ORG_ID,
396 LAST_UPDATE_DATE,
397 LAST_UPDATED_BY,
398 LAST_UPDATE_LOGIN,
399 CREATION_DATE,
400 CREATED_BY,
401 ATTRIBUTE_CATEGORY,
402 ATTRIBUTE1,
403 ATTRIBUTE2,
404 ATTRIBUTE3,
405 ATTRIBUTE4,
406 ATTRIBUTE5,
407 ATTRIBUTE6,
408 ATTRIBUTE7,
409 ATTRIBUTE8,
410 ATTRIBUTE9,
411 ATTRIBUTE10,
412 ATTRIBUTE11,
413 ATTRIBUTE12,
414 ATTRIBUTE13,
415 ATTRIBUTE14,
416 ATTRIBUTE15
417 FROM JL_ZZ_AR_TX_ATT_CLS
418 WHERE tax_attr_class_type = X_tax_attr_class_type
419 AND tax_attr_class_code = X_tax_attr_class_code
420 AND tax_category_id = X_tax_category_id
421 AND tax_attribute_type = X_tax_attribute_type
422 AND tax_attribute_name = X_tax_attribute_name
423 AND org_id = X_org_id
424 FOR UPDATE of tax_attr_class_type,
425 tax_attr_class_code,
426 tax_category_id,
427 tax_attribute_type,
428 tax_attribute_name,
429 org_id
430 NOWAIT;
431
432 Recinfo C%ROWTYPE;
433
434 current_calling_sequence VARCHAR2(2000);
435 debug_info VARCHAR2(100);
436
437 BEGIN
438
439 current_calling_sequence := 'JL_ZZ_AR_TX_ATT_CLS_PKG.LOCK_ROW<-' ||
440 X_calling_sequence;
441 debug_info := 'Open cursor C';
442 OPEN C;
443 debug_info := 'Fetch cursor C';
444 FETCH C INTO Recinfo;
445 IF (C%NOTFOUND) THEN
446 debug_info := 'Close cursor C - DATA NOTFOUND';
447 CLOSE C;
448 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
449 APP_EXCEPTION.Raise_Exception;
450 END IF;
451 debug_info := 'Close cursor C';
452 CLOSE C;
453 IF ((Recinfo.tax_attr_class_type = X_tax_attr_class_type) AND
454 (Recinfo.tax_attr_class_code = X_tax_attr_class_code) AND
455 (Recinfo.tax_category_id = X_tax_category_id) AND
456 (Recinfo.tax_attribute_type = X_tax_attribute_type) AND
457 (Recinfo.tax_attribute_name = X_tax_attribute_name) AND
458 (Recinfo.tax_attribute_value = X_tax_attribute_value) AND
459 (Recinfo.enabled_flag = X_enabled_flag) AND
460 ((Recinfo.org_id = X_org_id) OR
461 ((Recinfo.org_id IS NULL) AND
462 (X_org_id IS NULL))) AND
463 (Recinfo.last_updated_by = X_last_updated_by) AND
464 (Recinfo.last_update_date = X_last_update_date) AND
465 ((Recinfo.created_by = X_created_by) OR
466 ((Recinfo.created_by IS NULL) AND
467 (X_created_by IS NULL))) AND
468 ((Recinfo.creation_date = X_creation_date) OR
469 ((Recinfo.creation_date IS NULL) AND
470 (X_creation_date IS NULL))) AND
471 ((Recinfo.last_update_login = X_last_update_login) OR
472 ((Recinfo.last_update_login IS NULL) AND
473 (X_last_update_login IS NULL))) AND
474 ((Recinfo.attribute_category = X_attribute_Category) OR
475 ((Recinfo.attribute_category IS NULL) AND
476 (X_attribute_category IS NULL))) AND
477 ((Recinfo.attribute1 = X_attribute1) OR
478 ((Recinfo.attribute1 IS NULL) AND
479 (X_attribute1 IS NULL))) AND
480 ((Recinfo.attribute2 = X_attribute2) OR
481 ((Recinfo.attribute2 IS NULL) AND
482 (X_attribute2 IS NULL))) AND
483 ((Recinfo.attribute3 = X_attribute3) OR
484 ((Recinfo.attribute3 IS NULL) AND
485 (X_attribute3 IS NULL))) AND
486 ((Recinfo.attribute4 = X_attribute4) OR
487 ((Recinfo.attribute4 IS NULL) AND
488 (X_attribute4 IS NULL))) AND
489 ((Recinfo.attribute5 = X_attribute5) OR
490 ((Recinfo.attribute5 IS NULL) AND
491 (X_attribute5 IS NULL))) AND
492 ((Recinfo.attribute6 = X_attribute6) OR
493 ((Recinfo.attribute6 IS NULL) AND
494 (X_attribute6 IS NULL))) AND
495 ((Recinfo.attribute7 = X_attribute7) OR
496 ((Recinfo.attribute7 IS NULL) AND
497 (X_attribute7 IS NULL))) AND
498 ((Recinfo.attribute8 = X_attribute8) OR
499 ((Recinfo.attribute8 IS NULL) AND
500 (X_attribute8 IS NULL))) AND
501 ((Recinfo.attribute9 = X_attribute9) OR
502 ((Recinfo.attribute9 IS NULL) AND
503 (X_attribute9 IS NULL))) AND
504 ((Recinfo.attribute10 = X_attribute10) OR
505 ((Recinfo.attribute10 IS NULL) AND
506 (X_attribute10 IS NULL))) AND
507 ((Recinfo.attribute11 = X_attribute11) OR
508 ((Recinfo.attribute11 IS NULL) AND
509 (X_attribute11 IS NULL))) AND
510 ((Recinfo.attribute12 = X_attribute12) OR
511 ((Recinfo.attribute12 IS NULL) AND
512 (X_attribute12 IS NULL))) AND
513 ((Recinfo.attribute13 = X_attribute13) OR
514 ((Recinfo.attribute13 IS NULL) AND
515 (X_attribute13 IS NULL))) AND
516 ((Recinfo.attribute14 = X_attribute14) OR
517 ((Recinfo.attribute14 IS NULL) AND
518 (X_attribute14 IS NULL))) AND
519 ((Recinfo.attribute15 = X_attribute15) OR
520 ((Recinfo.attribute15 IS NULL) AND
521 (X_attribute15 IS NULL)))) THEN
522 return;
523 ELSE
524 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
525 APP_EXCEPTION.Raise_Exception;
526 END IF;
527 EXCEPTION
528 WHEN OTHERS THEN
529 IF (SQLCODE <> -20001) THEN
530 IF (SQLCODE = -54) THEN
531 FND_MESSAGE.SET_NAME('SQLAP','AP_RESOURCE_BUSY');
532 ELSE
533 FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
534 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
535 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
536 FND_MESSAGE.SET_TOKEN('PARAMETERS',
537 'tax_attr_class_type = ' || X_tax_attr_class_type ||
538 ' tax_attr_class_code = ' || X_tax_attr_class_code ||
539 ' tax_category_id = ' || X_tax_category_id ||
540 ' tax_attribute_type = ' || X_tax_attribute_type ||
541 ' tax_attribute_name = ' || X_tax_attribute_name ||
542 ' org_id = ' || X_org_id );
543
544 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
545 END IF;
546 END IF;
547 APP_EXCEPTION.RAISE_EXCEPTION;
548 END Lock_Row;
549
550 PROCEDURE Check_Unique
551 (X_rowid VARCHAR2,
552 X_tax_attr_class_type VARCHAR2,
553 X_tax_attr_class_code VARCHAR2,
554 X_tax_category_id NUMBER,
555 X_tax_attribute_type VARCHAR2,
556 X_tax_attribute_name VARCHAR2,
557 X_org_id NUMBER,
558 X_calling_sequence IN VARCHAR2) IS
559
560 l_dummy NUMBER;
561 current_calling_sequence VARCHAR2(2000);
562 debug_info VARCHAR2(100);
563
564 BEGIN
565 -- Update the calling sequence
566 --
567 current_calling_sequence :=
568 'JL_ZZ_AR_TX_ATT_CLS_PKG.CHECK_UNIQUE<-' ||
569 X_calling_sequence;
570 SELECT COUNT(1)
571 INTO l_dummy
572 FROM JL_ZZ_AR_TX_ATT_CLS
573 WHERE tax_attr_class_type = X_tax_attr_class_type
574 AND tax_attr_class_code = X_tax_attr_class_code
575 AND tax_category_id = X_tax_category_id
576 AND tax_attribute_type = X_tax_attribute_type
577 AND tax_attribute_name = X_tax_attribute_name
578 AND ((X_rowid IS NULL) OR (rowid <> X_rowid))
579 AND org_id = X_org_id;
580
581 IF (l_dummy >=1) THEN
582 FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
583 FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
584 FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
585 FND_MESSAGE.SET_TOKEN('PARAMETERS',
586 'tax_attr_class_type = ' || X_tax_attr_class_type ||
587 ' tax_attr_class_code = ' || X_tax_attr_class_code ||
588 ' tax_category_id = ' || X_tax_category_id ||
589 ' tax_attribute_type = ' || X_tax_attribute_type ||
590 ' tax_attribute_name = ' || X_tax_attribute_name||
591 ' org_id = ' || X_org_id);
592
593 FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
594 APP_EXCEPTION.RAISE_EXCEPTION;
595 END IF;
596 END Check_Unique;
597
598
599 FUNCTION Check_Unique_Detail
600 (X_lookup_type VARCHAR2,
601 X_lookup_code VARCHAR2,
602 X_lookup_code_out OUT NOCOPY VARCHAR2,
603 X_org_id NUMBER,
604 X_calling_sequence IN VARCHAR2) RETURN NUMBER IS
605
606 l_find NUMBER := 0; -- False
607 current_calling_sequence VARCHAR2(2000);
608 debug_info VARCHAR2(100);
609 l_count_other NUMBER := 0;
610 l_count_cls NUMBER := 0; -- Records in the screen
611
612 -- Each class with the same records in the screen.
613 CURSOR c_class IS
614 SELECT tax_attr_class_code
615 FROM jl_zz_ar_tx_att_cls attc
616 WHERE tax_attr_class_type = X_lookup_type
617 AND tax_attr_class_code <> X_lookup_code
618 AND org_id = X_org_id
619 GROUP BY tax_attr_class_code
620 HAVING count(tax_attr_class_code) = l_count_cls;
621
622 BEGIN
623 -- Update the calling sequence
624 --
625 current_calling_sequence :=
626 'JL_ZZ_AR_TX_ATT_CLS_ALL_PKG.CHECK_UNIQUE_DETAIL<-' ||X_calling_sequence;
627
628 X_lookup_code_out := NULL;
629
630 -- Records in Forms(detail).
631 SELECT count(1)
632 INTO l_count_cls
633 FROM jl_zz_ar_tx_att_cls jrf
634 WHERE jrf.tax_attr_class_type = X_lookup_type
635 AND jrf.tax_attr_class_code = X_lookup_code
636 AND org_id = X_org_id;
637
638 IF (l_count_cls <> 0) THEN
639 FOR cls_rec IN c_class
640 LOOP
641 BEGIN
642 SELECT jrf1.tax_attr_class_code,
643 count(1)
644 INTO X_lookup_code_out,
645 l_count_other
646 FROM jl_zz_ar_tx_att_cls jrf1
647 WHERE jrf1.tax_attr_class_type = X_lookup_type
648 AND jrf1.tax_attr_class_code = cls_rec.tax_attr_class_code
649 AND org_id = X_org_id
650 AND EXISTS(SELECT '1'
651 FROM jl_zz_ar_tx_att_cls jrf
652 WHERE jrf.tax_attr_class_type = jrf1.tax_attr_class_type
653 AND jrf.tax_attr_class_code = X_lookup_code
654 AND jrf.tax_category_id = jrf1.tax_category_id
655 AND jrf.tax_attribute_name = jrf1.tax_attribute_name
656 AND jrf.tax_attribute_value = jrf1.tax_attribute_value
657 AND org_id = X_org_id)
658 GROUP BY jrf1.tax_attr_class_code;
659
660 IF (l_count_other = l_count_cls) THEN
661 l_find := 1;
662 exit;
663 END IF;
664 EXCEPTION
665 WHEN NO_DATA_FOUND THEN
666 null;
667 END;
668 END LOOP;
669 END IF;
670
671 RETURN(l_find);
672 END Check_Unique_Detail;
673
674
675 END JL_ZZ_AR_TX_ATT_CLS_PKG;