DBA Data[Home] [Help]

PACKAGE BODY: APPS.JL_AR_AR_DOC_LETTER_PKG

Source


1 PACKAGE BODY JL_AR_AR_DOC_LETTER_PKG  as
2 /* $Header: jlarrdob.pls 120.3 2003/07/11 18:52:23 appradha ship $ */
3 
4   PROCEDURE Insert_Row(X_rowid                   IN OUT NOCOPY VARCHAR2,
5                        X_tax_category_id                 NUMBER,
6                        X_org_tax_attribute_name          VARCHAR2,
7                        X_org_tax_attribute_value         VARCHAR2,
8                        X_con_tax_attribute_name          VARCHAR2,
9                        X_con_tax_attribute_value         VARCHAR2,
10                        X_document_letter                 VARCHAR2,
11                        X_start_date_active               DATE,
12                        X_end_date_active                 DATE,
13                        X_LAST_UPDATE_DATE                DATE,
14                        X_LAST_UPDATED_BY                 NUMBER,
15                        X_CREATION_DATE                   DATE,
16                        X_CREATED_BY                      NUMBER,
17                        X_LAST_UPDATE_LOGIN               NUMBER,
18                        X_ORG_ID                          NUMBER,
19                        X_ATTRIBUTE_CATEGORY              VARCHAR2,
20                        X_ATTRIBUTE1                      VARCHAR2,
21                        X_ATTRIBUTE2                      VARCHAR2,
22                        X_ATTRIBUTE3                      VARCHAR2,
23                        X_ATTRIBUTE4                      VARCHAR2,
24                        X_ATTRIBUTE5                      VARCHAR2,
25                        X_ATTRIBUTE6                      VARCHAR2,
26                        X_ATTRIBUTE7                      VARCHAR2,
27                        X_ATTRIBUTE8                      VARCHAR2,
28                        X_ATTRIBUTE9                      VARCHAR2,
29                        X_ATTRIBUTE10                     VARCHAR2,
30                        X_ATTRIBUTE11                     VARCHAR2,
31                        X_ATTRIBUTE12                     VARCHAR2,
32                        X_ATTRIBUTE13                     VARCHAR2,
33                        X_ATTRIBUTE14                     VARCHAR2,
34                        X_ATTRIBUTE15                     VARCHAR2,
35                        X_calling_sequence        IN  VARCHAR2
36   ) IS
37     CURSOR C IS SELECT rowid
38                 FROM   jl_ar_ar_doc_letter
39                 WHERE  tax_category_id = X_tax_category_id
40                 AND    org_tax_attribute_name = X_org_tax_attribute_name
41                 AND    org_tax_attribute_value = X_org_tax_attribute_value
42                 AND    con_tax_attribute_name = X_con_tax_attribute_name
43                 AND    con_tax_attribute_value = X_con_tax_attribute_value;
44 
45     current_calling_sequence    VARCHAR2(2000);
46     debug_info                  VARCHAR2(100);
47 
48     BEGIN
49 --     Update the calling sequence
50 --
51       current_calling_sequence := 'JL_AR_AR_DOC_LETTER_PKG.INSERT_ROW<-' ||
52                                    X_calling_sequence;
53 --
54       debug_info := 'Insert into JL_AR_AR_DOC_LETTER';
55       insert into jl_ar_ar_doc_letter(
56                                        tax_category_id,
57                                        org_tax_attribute_name,
58                                        org_tax_attribute_value,
59                                        con_tax_attribute_name,
60                                        con_tax_attribute_value,
61                                        document_letter,
62                                        start_date_active,
63                                        end_date_active,
64                                        LAST_UPDATE_DATE,
65                                        LAST_UPDATED_BY,
66                                        CREATION_DATE,
67                                        CREATED_BY,
68                                        LAST_UPDATE_LOGIN,
69                                        ORG_ID,
70                                        ATTRIBUTE_CATEGORY,
71                                        ATTRIBUTE1,
72                                        ATTRIBUTE2,
73                                        ATTRIBUTE3,
74                                        ATTRIBUTE4,
75                                        ATTRIBUTE5,
76                                        ATTRIBUTE6,
77                                        ATTRIBUTE7,
78                                        ATTRIBUTE8,
79                                        ATTRIBUTE9,
80                                        ATTRIBUTE10,
81                                        ATTRIBUTE11,
82                                        ATTRIBUTE12,
83                                        ATTRIBUTE13,
84                                        ATTRIBUTE14,
85                                        ATTRIBUTE15)
86        VALUES        (
87                                        X_tax_category_id,
88                                        X_org_tax_attribute_name,
89                                        X_org_tax_attribute_value,
90                                        X_con_tax_attribute_name,
91                                        X_con_tax_attribute_value,
92                                        X_document_letter,
93                                        X_start_date_active,
94                                        X_end_date_active,
95                                        X_LAST_UPDATE_DATE,
96                                        X_LAST_UPDATED_BY,
97                                        X_CREATION_DATE,
98                                        X_CREATED_BY,
99                                        X_LAST_UPDATE_LOGIN,
100                                        X_ORG_ID,
101                                        X_ATTRIBUTE_CATEGORY,
102                                        X_ATTRIBUTE1,
103                                        X_ATTRIBUTE2,
104                                        X_ATTRIBUTE3,
105                                        X_ATTRIBUTE4,
106                                        X_ATTRIBUTE5,
107                                        X_ATTRIBUTE6,
108                                        X_ATTRIBUTE7,
109                                        X_ATTRIBUTE8,
110                                        X_ATTRIBUTE9,
111                                        X_ATTRIBUTE10,
112                                        X_ATTRIBUTE11,
113                                        X_ATTRIBUTE12,
114                                        X_ATTRIBUTE13,
115                                        X_ATTRIBUTE14,
116                                        X_ATTRIBUTE15);
117 
118     debug_info := 'Open cursor C';
119     OPEN C;
120     debug_info := 'Fetch cursor C';
121     FETCH C INTO X_rowid;
122     if (C%NOTFOUND) then
123       debug_info := 'Close cursor C - DATA NOTFOUND';
124       CLOSE C;
125       Raise NO_DATA_FOUND;
126     end if;
127     debug_info := 'Close cursor C';
128     CLOSE C;
129 
130     EXCEPTION
131       WHEN OTHERS THEN
132         IF (SQLCODE <> -20001) THEN
133            FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
134            FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
135            FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
136            FND_MESSAGE.SET_TOKEN('PARAMETERS',
137                                 'tax_category_id = ' || X_tax_category_id);
138               FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
139            END IF;
140            APP_EXCEPTION.RAISE_EXCEPTION;
141 
142   END Insert_Row;
143 
144   PROCEDURE Lock_Row(  X_rowid                   VARCHAR2,
145                        X_tax_category_id                 NUMBER,
146                        X_org_tax_attribute_name          VARCHAR2,
147                        X_org_tax_attribute_value         VARCHAR2,
148                        X_con_tax_attribute_name          VARCHAR2,
149                        X_con_tax_attribute_value         VARCHAR2,
150                        X_document_letter                 VARCHAR2,
151                        X_start_date_active               DATE,
152                        X_end_date_active                 DATE,
153                        X_LAST_UPDATE_DATE                DATE,
154                        X_LAST_UPDATED_BY                 NUMBER,
155                        X_CREATION_DATE                   DATE,
156                        X_CREATED_BY                      NUMBER,
157                        X_LAST_UPDATE_LOGIN               NUMBER,
158                        X_ATTRIBUTE_CATEGORY              VARCHAR2,
159                        X_ATTRIBUTE1                      VARCHAR2,
160                        X_ATTRIBUTE2                      VARCHAR2,
161                        X_ATTRIBUTE3                      VARCHAR2,
162                        X_ATTRIBUTE4                      VARCHAR2,
163                        X_ATTRIBUTE5                      VARCHAR2,
164                        X_ATTRIBUTE6                      VARCHAR2,
165                        X_ATTRIBUTE7                      VARCHAR2,
166                        X_ATTRIBUTE8                      VARCHAR2,
167                        X_ATTRIBUTE9                      VARCHAR2,
168                        X_ATTRIBUTE10                     VARCHAR2,
169                        X_ATTRIBUTE11                     VARCHAR2,
170                        X_ATTRIBUTE12                     VARCHAR2,
171                        X_ATTRIBUTE13                     VARCHAR2,
172                        X_ATTRIBUTE14                     VARCHAR2,
173                        X_ATTRIBUTE15                     VARCHAR2,
174                        X_calling_sequence        IN    VARCHAR2
175   ) IS
176     CURSOR C IS SELECT *
177                 FROM   jl_ar_ar_doc_letter
178                 WHERE  tax_category_id = X_tax_category_id
179                 AND    org_tax_attribute_name = X_org_tax_attribute_name
180                 AND    org_tax_attribute_value = X_org_tax_attribute_value
181                 AND    con_tax_attribute_name = X_con_tax_attribute_name
182                 AND    con_tax_attribute_value = X_con_tax_attribute_value
183                 AND    end_date_active = X_end_date_active
184                 FOR UPDATE of tax_category_id, org_tax_attribute_name,
185                               org_tax_attribute_value, con_tax_attribute_name,
186                               con_tax_attribute_value, end_date_active
187                 NOWAIT;
188 
189     Recinfo C%ROWTYPE;
190 
191     current_calling_sequence    VARCHAR2(2000);
192     debug_info                  VARCHAR2(100);
193 
194   BEGIN
195 --  Update the calling sequence
196 --
197     current_calling_sequence := 'JL_AR_AR_DOC_LETTER_PKG.LOCK_ROW<-' ||
198                                  X_calling_sequence;
199     debug_info := 'Open cursor C';
200     OPEN C;
201     debug_info := 'Fetch cursor C';
202     FETCH C INTO Recinfo;
203     IF (C%NOTFOUND)
204     THEN
205       debug_info := 'Close cursor C - DATA NOTFOUND';
206       CLOSE C;
207       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
208       APP_EXCEPTION.Raise_Exception;
209     END IF;
210     debug_info := 'Close cursor C';
211     CLOSE C;
212     IF (Recinfo.tax_category_id = X_tax_category_id       AND
213         Recinfo.org_tax_attribute_name = X_org_tax_attribute_name AND
214 	Recinfo.org_tax_attribute_value = X_org_tax_attribute_value AND
215         Recinfo.con_tax_attribute_name = X_con_tax_attribute_name   AND
216         Recinfo.con_tax_attribute_value = X_con_tax_attribute_value AND
217         Recinfo.document_letter = X_document_letter AND
218         Recinfo.start_date_active = X_start_date_active AND
219         Recinfo.end_date_active = X_end_date_active AND
220 	Recinfo.last_updated_by = X_last_updated_by AND
221 	Recinfo.last_update_date = X_last_update_date AND
222 	Recinfo.creation_date = X_creation_date AND
223 	Recinfo.created_by = X_created_by AND
224 	(Recinfo.last_update_login = X_last_update_login OR
225            X_last_update_login IS NULL) AND
226 	(Recinfo.attribute1 = X_attribute1 OR
227 	   X_attribute1 IS NULL) AND
228 	(Recinfo.attribute2 = X_attribute2 OR
229 	   X_attribute2 IS NULL) AND
230 	(Recinfo.attribute3 = X_attribute3 OR
231 	   X_attribute3 IS NULL) AND
232 	(Recinfo.attribute4 = X_attribute4 OR
233 	   X_attribute4 IS NULL) AND
234 	(Recinfo.attribute5 = X_attribute5 OR
235 	   X_attribute5 IS NULL) AND
236 	(Recinfo.attribute6 = X_attribute6 OR
237 	   X_attribute6 IS NULL) AND
238 	(Recinfo.attribute7 = X_attribute7 OR
239 	   X_attribute7 IS NULL) AND
240 	(Recinfo.attribute8 = X_attribute8 OR
241 	   X_attribute8 IS NULL) AND
242 	(Recinfo.attribute9 = X_attribute9 OR
243 	   X_attribute9 IS NULL) AND
244 	(Recinfo.attribute10 = X_attribute10 OR
245 	   X_attribute10 IS NULL) AND
246 	(Recinfo.attribute11 = X_attribute11 OR
247 	   X_attribute11 IS NULL) AND
248 	(Recinfo.attribute12 = X_attribute12 OR
249 	   X_attribute12 IS NULL) AND
250 	(Recinfo.attribute13 = X_attribute13 OR
251 	   X_attribute13 IS NULL) AND
252 	(Recinfo.attribute14 = X_attribute14 OR
253 	   X_attribute14 IS NULL) AND
254 	(Recinfo.attribute15 = X_attribute15 OR
255 	   X_attribute15 IS NULL)
256         )
257     THEN
258       return;
259     ELSE
260       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
261       APP_EXCEPTION.Raise_Exception;
262     END IF;
263 
264     EXCEPTION
265     WHEN OTHERS THEN
266       IF (SQLCODE <> -20001) THEN
267         IF (SQLCODE = -54) THEN
268           FND_MESSAGE.SET_NAME('SQLAP','AP_RESOURCE_BUSY');
269         ELSE
270           FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
271           FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
272           FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
273           FND_MESSAGE.SET_TOKEN('PARAMETERS',
274 	                        'tax_category_id = ' || X_tax_category_id);
275           FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
276         END IF;
277       END IF;
278       APP_EXCEPTION.RAISE_EXCEPTION;
279   END Lock_Row;
280 
281   PROCEDURE Update_Row(X_rowid                   VARCHAR2,
282 
283                        X_tax_category_id                 NUMBER,
284                        X_org_tax_attribute_name          VARCHAR2,
285                        X_org_tax_attribute_value         VARCHAR2,
286                        X_con_tax_attribute_name          VARCHAR2,
287                        X_con_tax_attribute_value         VARCHAR2,
288                        X_document_letter                 VARCHAR2,
289                        X_start_date_active               DATE,
290                        X_end_date_active                 DATE,
291                        X_LAST_UPDATE_DATE                DATE,
292                        X_LAST_UPDATED_BY                 NUMBER,
293                        X_CREATION_DATE                   DATE,
294                        X_CREATED_BY                      NUMBER,
295                        X_LAST_UPDATE_LOGIN               NUMBER,
296                        X_ATTRIBUTE_CATEGORY              VARCHAR2,
297                        X_ATTRIBUTE1                      VARCHAR2,
298                        X_ATTRIBUTE2                      VARCHAR2,
299                        X_ATTRIBUTE3                      VARCHAR2,
300                        X_ATTRIBUTE4                      VARCHAR2,
301                        X_ATTRIBUTE5                      VARCHAR2,
302                        X_ATTRIBUTE6                      VARCHAR2,
303                        X_ATTRIBUTE7                      VARCHAR2,
304                        X_ATTRIBUTE8                      VARCHAR2,
305                        X_ATTRIBUTE9                      VARCHAR2,
306                        X_ATTRIBUTE10                     VARCHAR2,
307                        X_ATTRIBUTE11                     VARCHAR2,
308                        X_ATTRIBUTE12                     VARCHAR2,
309                        X_ATTRIBUTE13                     VARCHAR2,
310                        X_ATTRIBUTE14                     VARCHAR2,
311                        X_ATTRIBUTE15                     VARCHAR2,
312 
313                        X_calling_sequence        IN    VARCHAR2
314   ) IS
315 
316   BEGIN
317     UPDATE jl_ar_ar_doc_letter
318     SET tax_category_id = X_tax_category_id,
319         org_tax_attribute_name     = X_org_tax_attribute_name,
320         org_tax_attribute_value = X_org_tax_attribute_value,
321         con_tax_attribute_name   = X_con_tax_attribute_name,
322         con_tax_attribute_value = X_con_tax_attribute_value,
323         document_letter = X_document_letter,
327         LAST_UPDATED_BY  = X_LAST_UPDATED_BY,
324         start_date_active = X_start_date_active,
325         end_date_active = X_end_date_active,
326         LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
328         CREATION_DATE    = X_CREATION_DATE,
329         CREATED_BY       = X_CREATED_BY,
330         LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
331         ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
332         ATTRIBUTE1  = X_ATTRIBUTE1,
333         ATTRIBUTE2  = X_ATTRIBUTE2,
334         ATTRIBUTE3  = X_ATTRIBUTE3,
335         ATTRIBUTE4  = X_ATTRIBUTE4,
336         ATTRIBUTE5  = X_ATTRIBUTE5,
337         ATTRIBUTE6  = X_ATTRIBUTE6,
338         ATTRIBUTE7  = X_ATTRIBUTE7,
339         ATTRIBUTE8  = X_ATTRIBUTE8,
340         ATTRIBUTE9  = X_ATTRIBUTE9,
341         ATTRIBUTE10 = X_ATTRIBUTE10,
342         ATTRIBUTE11 = X_ATTRIBUTE11,
343         ATTRIBUTE12 = X_ATTRIBUTE12,
344         ATTRIBUTE13 = X_ATTRIBUTE13,
345         ATTRIBUTE14 = X_ATTRIBUTE14,
346         ATTRIBUTE15 = X_ATTRIBUTE15
347     WHERE  rowid = X_rowid;
348 
349     IF (SQL%NOTFOUND)
350     THEN
351       raise NO_DATA_FOUND;
352     END IF;
353   END Update_Row;
354 
355   PROCEDURE Delete_Row(  X_rowid                   VARCHAR2
356   ) IS
357   BEGIN
358     DELETE
359     FROM   jl_ar_ar_doc_letter
360     WHERE  rowid = X_rowid;
361 
362     IF (SQL%NOTFOUND)
363     THEN
364       raise NO_DATA_FOUND;
365     END IF;
366   END Delete_Row;
367 
368   PROCEDURE Check_Unique(
369 			  X_rowid                   VARCHAR2,
370 		          X_org_tax_attribute_name  VARCHAR2,
371 		          X_org_tax_attribute_value VARCHAR2,
372                           X_con_tax_attribute_name  VARCHAR2,
373 		          X_con_tax_attribute_value VARCHAR2,
374 		          X_end_date_active         DATE,
375                           X_calling_sequence        IN    VARCHAR2
376   ) IS
377 	l_dummy NUMBER;
378     current_calling_sequence    VARCHAR2(2000);
379     debug_info                  VARCHAR2(100);
380   BEGIN
381 --  Update the calling sequence
382 --
383     current_calling_sequence := 'JL_AR_AR_TX_DOC_LETTER_PKG.CHECK_UNIQUE<-' ||
384                                  X_calling_sequence;
385 	SELECT COUNT(1)
386 	INTO   l_dummy
387 	FROM   jl_ar_ar_doc_letter
388 	WHERE  org_tax_attribute_name = X_org_tax_attribute_name
389         AND    org_tax_attribute_value = X_org_tax_attribute_value
390         AND    con_tax_attribute_name = X_con_tax_attribute_name
391         AND    con_tax_attribute_value = X_con_tax_attribute_value
392         AND    end_date_active = X_end_date_active
393         AND    ((X_rowid IS NULL) OR (rowid <> X_rowid));
394 	IF (l_dummy >=1)
395 	THEN
396 	  FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
397 	  FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
398 	  FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
399 	  FND_MESSAGE.SET_TOKEN('PARAMETERS',
400 			' org_tax_attribute_name = ' || X_org_tax_attribute_name ||
401 			' org_tax_attribute_value = ' || X_org_tax_attribute_value ||
402                         ' con_tax_attribute_name = '||X_con_tax_attribute_name||
403 			' con_tax_attribute_value = ' || X_con_tax_attribute_value ||
404 			' end_date_active = ' || X_end_date_active );
405 	  FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
406       APP_EXCEPTION.RAISE_EXCEPTION;
407 	END IF;
408   END Check_Unique;
409 
410   PROCEDURE Check_Overlapped_Dates(
411 			  X_rowid                   VARCHAR2,
412 		          X_org_tax_attribute_name          VARCHAR2,
413 		          X_org_tax_attribute_value      VARCHAR2,
414                           X_con_tax_attribute_name VARCHAR2,
415 		          X_con_tax_attribute_value         VARCHAR2,
416 		          X_end_date_active         DATE,
417 		          X_start_date_active       DATE,
418                           X_calling_sequence        IN    VARCHAR2
419   ) IS
420 	l_dummy NUMBER;
421     current_calling_sequence    VARCHAR2(2000);
422     debug_info                  VARCHAR2(100);
423   BEGIN
424 --  Update the calling sequence
425 --
426     current_calling_sequence :=
427                            'JL_AR_AR_DOC_LETTER_PKG.<-CHECK_OVERLAPPED_DATES' ||
428                                  X_calling_sequence;
429 	SELECT COUNT(1)
430 	INTO   l_dummy
431 	FROM   jl_ar_ar_doc_letter a
432 	WHERE  a.org_tax_attribute_name = X_org_tax_attribute_name
433         AND    a.org_tax_attribute_value = X_org_tax_attribute_value
434         AND    a.con_tax_attribute_name = X_con_tax_attribute_name
435         AND    a.con_tax_attribute_value = X_con_tax_attribute_value
436         AND    ((a.end_date_active <= X_end_date_active AND
437 	       a.end_date_active >= X_start_date_active)
438 		OR
439 		(a.start_date_active <= X_end_date_active AND
440                  a.start_date_active >= X_start_date_active)
441 		OR
442 		(a.start_date_active <= X_start_date_active AND
443 	         a.end_date_active >= X_end_date_active))
444        AND     ((X_rowid IS NULL) OR (a.rowid <> X_rowid));
445 
446 	IF (l_dummy >=1)
447 	THEN
448 	  FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
449 	  FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
450 	  FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
451 	  FND_MESSAGE.SET_TOKEN('PARAMETERS',
452 			' org_tax_attribute_name = ' || X_org_tax_attribute_name ||
453 			' org_tax_attribute_value = ' || X_org_tax_attribute_value ||
457 	  FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
454                         ' con_tax_attribute_name ='||X_con_tax_attribute_name||
455 			' con_tax_attribute_value = ' || X_con_tax_attribute_value ||
456 			' end_date_active = ' || X_end_date_active );
458       APP_EXCEPTION.RAISE_EXCEPTION;
459     END IF;
460   END Check_Overlapped_Dates;
461 
462   PROCEDURE Check_Gaps(
463               X_rowid                   VARCHAR2,
464 	      X_org_tax_attribute_name  VARCHAR2,
465 	      X_org_tax_attribute_value VARCHAR2,
466               X_con_tax_attribute_name  VARCHAR2,
467 	      X_con_tax_attribute_value VARCHAR2,
468 	      X_end_date_active         DATE,
469 	      X_start_date_active       DATE,
470               X_calling_sequence        IN    VARCHAR2
471   ) IS
472     l_dummy NUMBER;
473     l_dummy1 NUMBER;
474     l_dummy2 NUMBER;
475     current_calling_sequence    VARCHAR2(2000);
476     debug_info                  VARCHAR2(100);
477   BEGIN
478 --  Update the calling sequence
479 --
480     current_calling_sequence := 'JL_AR_AR_DOC_LETTER_PKG.CHECK_GAPS<-' ||
481                                  X_calling_sequence;
482 --
483 --  Check if there is one row with it's end date exactly one day
484 --  less than the current row's start date
485 --
486     SELECT COUNT(1)
487     INTO   l_dummy
488     FROM   jl_ar_ar_doc_letter a
489     WHERE  a.org_tax_attribute_name = X_org_tax_attribute_name
490     AND    a.org_tax_attribute_value = X_org_tax_attribute_value
491     AND    a.con_tax_attribute_name = X_con_tax_attribute_name
492     AND    a.con_tax_attribute_value = X_con_tax_attribute_value
493     AND    trunc(a.end_date_active) = (trunc(X_start_date_active) -1)
494     AND    ((X_rowid IS NULL) OR (a.rowid <> X_rowid));
495 
496     IF (l_dummy = 0)
497     THEN
498     BEGIN
499 --
500 --    Check if there is one row with the start date one day more than the
501 --    the current row's end-date
502 --
503       SELECT COUNT(1)
504       INTO   l_dummy1
505       FROM   jl_ar_ar_doc_letter a
506       WHERE  a.org_tax_attribute_name = X_org_tax_attribute_name
507       AND    a.org_tax_attribute_value = X_org_tax_attribute_value
508       AND    a.con_tax_attribute_name = X_con_tax_attribute_name
509       AND    a.con_tax_attribute_value = X_con_tax_attribute_value
510       AND   (trunc(a.start_date_active) = (trunc(X_end_date_active) + 1))
511       AND   ((X_rowid IS NULL) OR (a.rowid <> X_rowid));
512 --
513 -- Check if there are no (other) rows at all for the primary key.
514 -- If there are no rows, then it is not an error.  Otherwise, it is.
515 --
516       IF (l_dummy1 = 0)
517       THEN
518       BEGIN
519         SELECT COUNT(1)
520         INTO   l_dummy2
521         FROM   jl_ar_ar_doc_letter a
522         WHERE  a.org_tax_attribute_name = X_org_tax_attribute_name
523         AND    a.org_tax_attribute_value = X_org_tax_attribute_value
524         AND    a.con_tax_attribute_name = X_con_tax_attribute_name
525         AND    a.con_tax_attribute_value = X_con_tax_attribute_value
526         AND    ((X_rowid IS NULL) OR (a.rowid <> X_rowid));
527         IF (l_dummy2 <> 0)
528         THEN
529           FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
530           FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
531           FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',current_calling_sequence);
532           FND_MESSAGE.SET_TOKEN(
533                         'PARAMETERS',
534 				' org_tax_attribute_name = ' || X_org_tax_attribute_name ||
535 				' org_tax_attribute_value = ' || X_org_tax_attribute_value ||
536                                 ' con_tax_attribute_name = '||X_con_tax_attribute_name ||
537 				' con_tax_attribute_value = ' || X_con_tax_attribute_value ||
538 				' end_date_active = ' || X_end_date_active );
539           FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
540           APP_EXCEPTION.RAISE_EXCEPTION;
541         END IF;
542       END;
543       END IF;
544     END;
545     END IF;
546   END Check_Gaps;
547 
548 END JL_AR_AR_DOC_LETTER_PKG;