1 PACKAGE BODY XTR_COMMON_FUNCTIONS as
2 /* $Header: xtrfuncb.pls 120.3 2006/08/23 05:32:47 kbabu noship $ */
3
4 --------------------------------------
5 -- declaration of public procedures and functions
6 --------------------------------------
7
8 /**
9 * FUNCTION DEAL_STATUS_CHECK
10 *
11 * DESCRIPTION
12 * This function returns True if the statis of the Deal is Current.
13 *
14 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
15 *
16 * ARGUMENTS
17 * IN:
18 * p_deal_number Deal Number of the Deal for which
19 * Status is to be determined.
20 * IN/OUT:
21 *
22 * OUT:
23 * True if Deal Status is Current. False for all other statuses.
24 *
25 * NOTES
26 * Originally from DEAL_STATUS_CHECK in XTRUTIL.pld
27 *
28 * MODIFICATION HISTORY
29 *
30 * 14-JUN-2005 Rajesh Jose o Created.
31 *
32 */
33
34 FUNCTION DEAL_STATUS_CHECK(
35 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE) RETURN BOOLEAN IS
36
37 CURSOR chk_status is
38 SELECT 1
39 FROM xtr_deals_v
40 WHERE deal_no = p_deal_number
41 AND status_code = 'CURRENT';
42
43 l_dummy number(1);
44
45 BEGIN
46 OPEN chk_status;
47 FETCH chk_status
48 INTO l_dummy;
49
50 IF chk_status%FOUND THEN
51 CLOSE chk_status;
52 RETURN (TRUE);
53 ELSE
54 CLOSE chk_status;
55 RETURN (false);
56 END IF;
57
58 END;
59
60 /**
61 * FUNCTION INTEREST_OVERRIDE_CHECK
62 *
63 * DESCRIPTION
64 * Determines whether the user has the authority to override interest.
65 *
66 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
67 *
68 * ARGUMENTS
69 * IN:
70 * IN/OUT:
71 * OUT:
72 * TRUE if the user has the authority to override interest. Else False.
73 *
74 * NOTES
75 * Originally from INTEREST_OVERRIDE_CHECK in XTRUTIL.pld
76 *
77 * MODIFICATION HISTORY
78 *
79 * 14-JUL-2005 Rajesh Jose o Created.
80 */
81
82 FUNCTION INTEREST_OVERRIDE_CHECK return BOOLEAN IS
83
84 l_allow_override VARCHAR2(1);
85 BEGIN
86 SELECT allow_override
87 INTO l_allow_override
88 FROM Xtr_Dealer_Codes
89 WHERE user_id = fnd_global.user_id;
90
91 IF l_allow_override = 'Y' THEN
92 RETURN(TRUE);
93 ELSE
94 RETURN(FALSE);
95 END IF;
96 EXCEPTION
97 WHEN OTHERS THEN
98 RETURN (FALSE);
99 END INTEREST_OVERRIDE_CHECK;
100
101 /**
102 * FUNCTION INTEREST_CHECK_COVER
103 *
104 * DESCRIPTION
105 * Cover Function which calls the following functions
106 * Settled_Interest_Check
107 * Interest_Reval_Check
108 * Interest_Accrual_Check
109 * Interest_Jrnls_Check
110 * Interest_Recon_Check
111 * Settled_Int_Tax_Check
112 *
113 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
114 *
115 * ARGUMENTS
116 * IN:
117 * p_deal_type Deal Type of the Deal
118 * p_deal_number Deal Number
119 * p_transaction_number Transaction Number
120 * p_date Date
121 * p_maturity_date Maturity Date of the Deal
122 * p_check_intset_record Flag to indicate whether the check should be
123 * done for INTSET records only.
124 * IN/OUT:
125 * OUT:
126 * Returns False if any of the functions return False. Else returns True.
127 *
128 * NOTES
129 * Originally from INTEREST_CHECK_COVER in XTRUTIL.pld
130 *
131 * MODIFICATION HISTORY
132 *
133 * 14-JUL-2005 Rajesh Jose o Created.
134 */
135
136 FUNCTION INTEREST_CHECK_COVER(
137 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
138 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
139 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
140 DEFAULT NULL,
141 p_date IN DATE DEFAULT NULL,
142 p_maturity_date IN DATE DEFAULT NULL,
143 p_check_intset_record IN VARCHAR2 DEFAULT 'N') RETURN BOOLEAN IS
144
145 BEGIN
146
147 IF NOT XTR_COMMON_FUNCTIONS.SETTLED_INTEREST_CHECK(
148 p_deal_type, p_deal_number,
149 p_transaction_number, p_date, p_maturity_date,
150 p_check_intset_record) THEN
151 RETURN FALSE;
152 END IF;
153
154 IF (NOT XTR_COMMON_FUNCTIONS.INTEREST_REVALUED_CHECK(
155 p_deal_type, p_deal_number,
156 p_transaction_number, p_date)) THEN
157 RETURN FALSE;
158 END IF;
159
160 IF (NOT XTR_COMMON_FUNCTIONS.INTEREST_ACCRUAL_CHECK(
161 p_deal_type, p_deal_number,
162 p_transaction_number, p_date)) THEN
163 RETURN FALSE;
164 END IF;
165 IF (NOT XTR_COMMON_FUNCTIONS.INTEREST_JOURNAL_CHECK(
166 p_deal_type, p_deal_number,
167 p_transaction_number, p_date,
168 p_check_intset_record)) THEN
169 RETURN FALSE;
170 END IF;
171
172 IF (NOT XTR_COMMON_FUNCTIONS.INTEREST_RECONCILED_CHECK(
173 p_deal_type, p_deal_number,
174 p_transaction_number, p_date)) THEN
175 RETURN FALSE;
176 END IF;
177
178 IF NOT XTR_COMMON_FUNCTIONS.SETTLED_INTEREST_TAX_CHECK(
179 p_deal_type, p_deal_number,
180 p_transaction_number, p_date, p_maturity_date) THEN
181 RETURN FALSE;
182 END IF;
183
184 RETURN TRUE;
185
186 EXCEPTION
187 WHEN OTHERS THEN
188 RETURN( FALSE );
189
190 END INTEREST_CHECK_COVER;
191
192 /**
193 * FUNCTION SETTLED_INTEREST_CHECK
194 *
195 * DESCRIPTION
196 * This function checks whether the input transaction has been settled.
197 *
198 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
199 *
200 * ARGUMENTS
201 * IN:
202 * p_deal_type Deal Type of the Deal
203 * p_deal_number Deal Number
204 * p_transaction_number Transaction Number
205 * p_date Date
206 * p_maturity_date Maturity Date of the Deal
207 * p_check_intset_record Flag to indicate whether the check should be
208 * done for INTSET records only.
209 * IN/OUT:
210 * OUT:
211 * Returns False if the transactions has been settled. Else returns True.
212 *
213 * NOTES
214 * Originally from SETTLED_INTEREST_CHECK in XTRUTIL.pld
215 *
216 * MODIFICATION HISTORY
217 *
218 * 14-JUL-2005 Rajesh Jose o Created.
219 */
220
221 FUNCTION SETTLED_INTEREST_CHECK(
222 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
223 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
224 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
225 DEFAULT NULL,
226 p_date IN DATE DEFAULT NULL,
227 p_maturity_date IN DATE DEFAULT NULL,
228 p_check_intset_record IN VARCHAR2 DEFAULT 'N') RETURN BOOLEAN IS
229
230 CURSOR chk_settle_onc IS
231 SELECT 1
232 FROM xtr_deal_date_amounts dda
233 WHERE dda.deal_number = nvl(p_deal_number,dda.deal_number)
234 AND dda.transaction_number =
235 nvl(p_transaction_number, dda.transaction_number)
236 AND settle='Y';
237
238 CURSOR chk_settle_onc_interest IS
239 SELECT 1
240 FROM xtr_deal_date_amounts dda
241 WHERE dda.deal_number = nvl(p_deal_number,dda.deal_number)
242 AND dda.transaction_number =
243 nvl(p_transaction_number, dda.transaction_number)
244 AND settle='Y'
245 AND actual_settlement_date > p_date --bug 5444438
246 AND dda.amount_type = 'INTSET';
247
248 CURSOR chk_settle_others(l_date date) IS
249 SELECT 1
250 FROM xtr_deal_date_amounts dda
251 WHERE dda.deal_number = nvl(p_deal_number,dda.deal_number)
252 AND settle='Y'
253 AND amount_date > nvl(l_date,amount_date -1);
254
255 l_dummy number;
256 l_date date;
257
258 BEGIN
259
260 IF p_deal_type in ('ONC') THEN
261 IF p_check_intset_record = 'Y' THEN
262 OPEN chk_settle_onc_interest;
263 FETCH chk_settle_onc_interest
264 INTO l_dummy;
265
266 IF chk_settle_onc_interest%NOTFOUND THEN
267 CLOSE chk_settle_onc_interest;
268 RETURN TRUE;
269 ELSE
270 CLOSE chk_settle_onc_interest;
271 RETURN FALSE;
272 END IF;
273 ELSE
274 OPEN chk_settle_onc;
275 FETCH chk_settle_onc
276 INTO l_dummy;
277
278 IF chk_settle_onc%NOTFOUND THEN
279 CLOSE chk_settle_onc;
280 RETURN TRUE;
281 ELSE
282 CLOSE chk_settle_onc;
283 RETURN FALSE;
284 END IF;
285 END IF;
286 ELSE /* Other deal type */
287 IF p_deal_type='IRS' THEN
288 l_date := p_maturity_date -1;
289 ELSIF p_deal_type='BOND' THEN
290 l_date := p_date -1;
291 ELSE
292 l_date := p_date;
293 END IF;
294
295 OPEN chk_settle_others(l_date);
296 FETCH chk_settle_others
297 INTO l_dummy;
298
299 IF chk_settle_others%NOTFOUND THEN
300 CLOSE chk_settle_others;
301 RETURN TRUE;
302 ELSE
303 CLOSE chk_settle_others;
304 RETURN FALSE;
305 END IF;
306 END IF;
307
308 EXCEPTION
309 WHEN OTHERS THEN
310 RETURN FALSE;
311 END SETTLED_INTEREST_CHECK;
312
313 /**
314 * FUNCTION INTEREST_REVALUED_CHECK
315 *
316 * DESCRIPTION
317 * This function checks whether the input transaction has been revalued.
318 *
319 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
320 *
321 * ARGUMENTS
322 * IN:
323 * p_deal_type Deal Type of the Deal
324 * p_deal_number Deal Number
325 * p_transaction_number Transaction Number
326 * p_date Date
327 * IN/OUT:
328 * OUT:
329 * Returns False if the transaction has been revalued. Else returns True.
330 *
331 * NOTES
332 * Originally from INTEREST_REVAL_CHECK in XTRUTIL.pld
333 *
334 * MODIFICATION HISTORY
335 *
336 * 14-JUL-2005 Rajesh Jose o Created.
337 */
338
339 FUNCTION INTEREST_REVALUED_CHECK(
340 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
341 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
342 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
343 DEFAULT NULL,
344 p_date IN DATE DEFAULT NULL) RETURN BOOLEAN IS
345
346 CURSOR chk_reval_tmm_irs(l_date date) IS
347 SELECT max(period_end)
348 FROM xtr_batches b,xtr_batch_events e,xtr_revaluation_details r
349 WHERE r.deal_no = p_deal_number
350 AND r.batch_id = b.batch_id
351 AND b.batch_id = e.batch_id
352 AND e.event_code = 'REVAL'
353 AND period_to > nvl(l_date, period_to -1);
354
355 CURSOR chk_reval_others IS
356 SELECT ('Y')
357 FROM xtr_batches b,xtr_batch_events e,xtr_revaluation_details r
358 WHERE r.deal_no = nvl(p_deal_number, r.deal_no)
359 AND r.batch_id = b.batch_id
360 AND b.batch_id = e.batch_id
361 AND e.event_code = 'REVAL'
362 AND r.transaction_no =nvl(p_transaction_number,r.transaction_no);
363
364 l_dummy VARCHAR2(1);
365 l_max DATE;
366 l_date DATE;
367
368 BEGIN
369
370 IF p_deal_type in ('TMM','IRS') THEN
371 IF (p_deal_type='IRS' AND p_date is not null) THEN
372 l_date := p_date -1;
373 ELSE
374 l_date := p_date;
375 END IF;
376
377 OPEN chk_reval_tmm_irs(l_date);
378 FETCH chk_reval_tmm_irs
379 INTO l_max;
380
381 IF l_max is null THEN
382 CLOSE chk_reval_tmm_irs;
383 RETURN TRUE;
384 ELSE
385 CLOSE chk_reval_tmm_irs;
386 RETURN (FALSE);
387 END IF;
388 ELSIF p_deal_type='BOND' THEN
389 RETURN(TRUE);
390 ELSE
391 OPEN chk_reval_others;
392 FETCH chk_reval_others
393 INTO l_dummy;
394
395 IF chk_reval_others%NOTFOUND THEN
396 CLOSE chk_reval_others;
397 RETURN (TRUE);
398 ELSE
399 CLOSE chk_reval_others;
400 RETURN (FALSE);
401 END IF;
402 END IF;
403
404 EXCEPTION
405 WHEN OTHERS THEN
406 RETURN (FALSE);
407 END INTEREST_REVALUED_CHECK;
408
409 /**
410 * FUNCTION INTEREST_ACCRUAL_CHECK
411 *
412 * DESCRIPTION
413 * This function checks whether accruals have been passed for
414 * the input transaction.
415 *
416 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
417 *
418 * ARGUMENTS
419 * IN:
420 * p_deal_type Deal Type of the Deal
421 * p_deal_number Deal Number
422 * p_transaction_number Transaction Number
426 * Returns False if the transaction has been accrued. Else returns True.
423 * p_date Date
424 * IN/OUT:
425 * OUT:
427 *
428 * NOTES
429 * Originally from INTEREST_ACCRUAL_CHECK in XTRUTIL.pld
430 *
431 * MODIFICATION HISTORY
432 *
433 * 14-JUL-2005 Rajesh Jose o Created.
434 */
435
436 FUNCTION INTEREST_ACCRUAL_CHECK(
437 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
438 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
439 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
440 DEFAULT NULL,
441 p_date IN DATE DEFAULT NULL) RETURN BOOLEAN IS
442
443 l_accrual_check NUMBER;
444 l_period_end DATE;
445 BEGIN
446 IF p_deal_type in ('TMM','IRS') AND p_date is not null THEN
447 SELECT max(period_to)
448 INTO l_period_end
449 FROM xtr_accrls_amort
450 WHERE deal_no=p_deal_number
451 AND period_to > p_date;
452
453 IF l_period_end IS NOT NULL THEN
454 RETURN(FALSE);
455 ELSE
456 RETURN(TRUE);
457 END IF;
458
459 ELSE
460 SELECT count(deal_no)
461 INTO l_accrual_check
462 FROM Xtr_Accrls_Amort
463 WHERE deal_no = nvl(p_deal_number,deal_no)
464 AND Trans_no = nvl(p_transaction_number,Trans_no);
465
466 IF l_accrual_check = 0 THEN
467 RETURN(TRUE);
468 ELSE
469 RETURN(FALSE);
470 END IF;
471 END IF;
472
473 EXCEPTION
474 WHEN OTHERS THEN
475 RETURN (FALSE);
476
477 END INTEREST_ACCRUAL_CHECK;
478
479 /**
480 * FUNCTION INTEREST_JOURNAL_CHECK
481 *
482 * DESCRIPTION
483 * This function checks whether journals have been passed for
484 * the input transaction.
485 *
486 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
487 *
488 * ARGUMENTS
489 * IN:
490 * p_deal_type Deal Type of the Deal
491 * p_deal_number Deal Number
492 * p_transaction_number Transaction Number
493 * p_date Date
494 * IN/OUT:
495 * OUT:
496 * Returns False if the transaction has been accrued. Else returns True.
497 *
498 * NOTES
499 * Originally from INTEREST_JRNLS_CHECK in XTRUTIL.pld
500 *
501 * MODIFICATION HISTORY
502 *
503 * 14-JUL-2005 Rajesh Jose o Created.
504 */
505
506 FUNCTION INTEREST_JOURNAL_CHECK(
507 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
508 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
509 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
510 DEFAULT NULL,
511 p_date IN DATE DEFAULT NULL,
512 p_check_intset_record IN VARCHAR2 DEFAULT 'N') RETURN BOOLEAN IS
513
514 CURSOR chk_jrnls IS
515 SELECT ('Y')
516 FROM xtr_journals
517 WHERE deal_number =nvl(p_deal_number, deal_number)
518 AND transaction_number =nvl(p_transaction_number,transaction_number);
519
520 CURSOR chk_jrnls_for_intset IS
521 SELECT ('Y')
522 FROM xtr_journals
523 WHERE deal_number =nvl(p_deal_number, deal_number)
524 AND transaction_number =nvl(p_transaction_number,transaction_number)
525 AND amount_type = 'INTSET'
526 AND journal_date > p_date; -- for bug 5444438
527
528 l_dummy varchar2(1);
529 l_intset_date date;
530 BEGIN
531
532 IF p_deal_type in ('TMM','IRS') AND p_date is not null THEN
533 SELECT max(journal_date)
534 INTO l_intset_date
535 FROM xtr_journals
536 WHERE deal_number = p_deal_number
537 AND amount_type = 'INTSET';
538
539 IF p_date < l_intset_date THEN
540 RETURN FALSE;
541 ELSE
542 RETURN TRUE;
543 END IF;
544 ELSE
545 IF (p_deal_type = 'ONC' and p_check_intset_record = 'Y') THEN
546 OPEN chk_jrnls_for_intset;
547 FETCH chk_jrnls_for_intset
548 INTO l_dummy;
549
550 IF chk_jrnls_for_intset%NOTFOUND THEN
551 CLOSE chk_jrnls_for_intset;
552 RETURN TRUE;
553 ELSE
554 CLOSE chk_jrnls_for_intset;
555 RETURN FALSE;
556 END IF;
557 ELSE
558 OPEN chk_jrnls;
559 FETCH chk_jrnls
560 INTO l_dummy;
561
562 IF chk_jrnls%NOTFOUND THEN
563 CLOSE chk_jrnls;
564 RETURN TRUE;
565 ELSE
566 CLOSE chk_jrnls;
567 RETURN FALSE;
568 END IF;
569 END IF;
570 END IF;
571
572 EXCEPTION
573 WHEN OTHERS THEN
574 RETURN(FALSE);
575
576 END INTEREST_JOURNAL_CHECK;
577
578 /**
579 * FUNCTION INTEREST_RECONCILED_CHECK
580 *
581 * DESCRIPTION
582 * This function checks whether the transaction has been reconciled.
583 *
584 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
585 *
586 * ARGUMENTS
587 * IN:
588 * p_deal_type Deal Type of the Deal
589 * p_deal_number Deal Number
590 * p_transaction_number Transaction Number
591 * p_date Date
592 * IN/OUT:
593 * OUT:
594 * Returns False if the transaction has been reconciled. Else returns True.
595 *
596 * NOTES
597 * Originally from INTEREST_RECON_CHECK in XTRUTIL.pld
598 *
599 * MODIFICATION HISTORY
600 *
601 * 14-JUL-2005 Rajesh Jose o Created.
602 */
603
604 FUNCTION INTEREST_RECONCILED_CHECK(
605 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
606 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
607 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
608 DEFAULT NULL,
609 p_date IN DATE DEFAULT NULL) RETURN BOOLEAN IS
610
611 CURSOR chk_recon IS
612 SELECT 1
613 FROM XTR_DEAL_DATE_AMOUNTS_V
614 WHERE deal_number = nvl(p_deal_number, deal_number)
618
615 AND transaction_number=nvl(p_transaction_number, transaction_number)
616 AND reconciled_pass_code is not null
617 AND reconciled_reference is not null;
619 l_dummy number;
620
621 BEGIN
622
623 OPEN chk_recon;
624 FETCH chk_recon
625 INTO l_dummy;
626
627 IF chk_recon%NOTFOUND THEN
628 CLOSE chk_recon;
629 RETURN(TRUE);
630 ELSE
631 CLOSE chk_recon;
632 RETURN(FALSE);
633 END IF;
634
635 EXCEPTION
636 WHEN OTHERS THEN
637 RETURN(FALSE);
638 END INTEREST_RECONCILED_CHECK;
639
640
641 /**
642 * FUNCTION SETTLED_INTEREST_TAX_CHECK
643 *
644 * DESCRIPTION
645 * This function checks whether the tax exposure transaction for Bond
646 * Deals has been settled.
647 *
648 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
649 *
650 * ARGUMENTS
651 * IN:
652 * p_deal_type Deal Type of the Deal
653 * p_deal_number Deal Number
654 * p_transaction_number Transaction Number
655 * p_date Date
656 * p_maturity_date Maturity Date of the Deal
657 * IN/OUT:
658 * OUT:
659 * Returns False if the tax exposure transaction has been settled.
660 * Else returns True.
661 *
662 * NOTES
663 * Originally from SETTLED_INT_TAX_CHECK in XTRUTIL.pld
664 *
665 * MODIFICATION HISTORY
666 *
667 * 14-JUL-2005 Rajesh Jose o Created.
668 */
669
670 FUNCTION SETTLED_INTEREST_TAX_CHECK(
671 p_deal_type IN XTR_DEALS.DEAL_TYPE%TYPE,
672 p_deal_number IN XTR_DEALS.DEAL_NO%TYPE,
673 p_transaction_number IN XTR_DEALS.TRANSACTION_NO%TYPE
674 DEFAULT NULL,
675 p_date IN DATE DEFAULT NULL,
676 p_maturity_date IN DATE DEFAULT NULL) RETURN BOOLEAN IS
677
678 v_trans_no NUMBER;
679 l_dummy NUMBER;
680 l_date DATE;
681
682 CURSOR get_later_trans IS
683 SELECT transaction_number
684 FROM xtr_rollover_transactions
685 WHERE deal_number = p_deal_number
686 AND maturity_date > l_date
687 AND tax_amount IS NOT NULL;
688
689 CURSOR chk_tax_settle is
690 SELECT 1
691 FROM xtr_deal_date_amounts dda, xtr_rollover_transactions rt
692 WHERE rt.deal_number=p_deal_number
693 AND rt.transaction_number=v_trans_no
694 AND dda.settle='Y'
695 AND dda.deal_number=0
696 AND dda.deal_type='EXP'
697 AND ((rt.tax_settled_reference IS NOT NULL
698 AND dda.transaction_number=rt.tax_settled_reference)
699 OR (rt.principal_tax_settled_ref is not null
700 AND dda.transaction_number=rt.principal_tax_settled_ref));
701
702 BEGIN
703 IF p_deal_type in ('BOND') THEN
704 l_date := p_date-1;
705 OPEN get_later_trans;
706 LOOP
707 FETCH get_later_trans
708 INTO v_trans_no;
709 EXIT WHEN get_later_trans%NOTFOUND;
710 OPEN chk_tax_settle;
711 FETCH chk_tax_settle
712 INTO l_dummy;
713 IF chk_tax_settle%FOUND then
714 CLOSE chk_tax_settle;
715 RETURN FALSE;
716 END IF;
717 CLOSE chk_tax_settle;
718 END LOOP;
719 CLOSE get_later_trans;
720 RETURN TRUE;
721
722 ELSE /* Other deal type */
723
724 RETURN TRUE;
725
726 END IF;
727 EXCEPTION
728 WHEN OTHERS THEN
729 RETURN (FALSE);
730 END SETTLED_INTEREST_TAX_CHECK;
731
732 END XTR_COMMON_FUNCTIONS;
733