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