DBA Data[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;