DBA Data[Home] [Help]

PACKAGE BODY: APPS.XTR_BISF_P

Source


1 Package body XTR_BISF_P as
2 /* $Header: xtrbisfb.pls 120.2.12010000.2 2008/08/06 10:42:12 srsampat ship $ */
3 
4 
5 Function Xtr_Reference_Spot(
6 p_deal_type in varchar2,
7 p_deal_number in varchar2
8 ) return number is
9 
10 l_base_rate number;
11 
12 cursor get_base_rate is
13 select base_rate
14  from xtr_deals
15  where deal_no=to_number(p_deal_number);
16 
17 Begin
18 
19 if p_deal_type in('FX','FXO') then
20  open get_base_rate;
21  fetch get_base_rate into l_base_rate;
22  close get_base_rate;
23 end if;
24 return (l_base_rate);
25 
26 End Xtr_Reference_Spot;
27 
28 
29 Function Xtr_Reference_Internal(
30 p_deal_type in varchar2,
31 p_deal_number in varchar2,
32 p_transaction_number in number
33 ) return varchar2 is
34 
35 l_comments varchar2(255);
36 
37 cursor d_ref_int is
38 select internal_ticket_no
39  from xtr_deals
40  where deal_no=to_number(p_deal_number);
41 
42 cursor ro_ref_int is
43 select internal_ticket_no
44  from xtr_rollover_transactions
45  where deal_number=to_number(p_deal_number)
46    and transaction_number=p_transaction_number;
47 
48 Begin
49 if p_deal_type in('FX','FXO','BOND','BDO','STOCK','FRA','NI','IRO','IRS','SWPTN','TMM','RTMM') then
50  open d_ref_int;
51  fetch d_ref_int into l_comments;
52  close d_ref_int;
53 elsif p_deal_type ='ONC' then
54  open ro_ref_int;
55  fetch ro_ref_int into l_comments;
56  close ro_ref_int;
57 end if;
58 return (l_comments);
59 
60 End Xtr_Reference_Internal;
61 
62 Function Xtr_Ig_Onc_Sum_Intadj(
63 p_deal_type in varchar2,
64 p_deal_number in number,
65 p_transaction_number in number,
66 p_journal_date in date
67 ) return number is
68 
69 l_sum_intadj number;
70 l_prev_journal_date date;
71 
72 cursor ig_get_prev_intset is
73  select journal_date
74  from xtr_journals
75  where deal_type=p_deal_type and
76        deal_number=p_deal_number and
77        amount_type in ('INTSET','COMPOND') and
78        journal_date < p_journal_date and
79        accounted_dr <>0
80  order by journal_date desc;
81 
82  cursor ig_sum_intadj(p_prev_journal_date date) is
83  select sum(ACCOUNTED_DR)
84  from xtr_journals
85  where deal_type=p_deal_type and
86        deal_number=p_deal_number and
87        amount_type ='INTADJ' and
88        journal_date > p_prev_journal_date and
89        journal_date <= p_journal_date and
90        accounted_dr <>0;
91 
92 cursor onc_get_prev_intset is
93  select journal_date
94  from xtr_journals
95  where deal_type=p_deal_type and
96        deal_number=p_deal_number and
97        amount_type ='INTSET' and
98        accounted_dr <> 0 and
99        journal_date < p_journal_date and
100        transaction_number in (select a.transaction_number from xtr_rollover_transactions a
101          where a.deal_number=p_deal_number
102        start with a.cross_ref_to_trans = p_transaction_number
103        connect by  (a.deal_number = PRIOR a.deal_number and a.cross_ref_to_trans = PRIOR a.transaction_number))
104  order by journal_date desc;
105 
106 
107  cursor onc_sum_intadj is
108  select sum(ACCOUNTED_DR)
109  from xtr_journals
110  where deal_type=p_deal_type and
111        deal_number=p_deal_number and
112        amount_type ='INTADJ' and
113        journal_date > l_prev_journal_date and
114        journal_date <= p_journal_date and
115        accounted_dr <> 0 and
116        transaction_number in (select a.transaction_number from xtr_rollover_transactions a
117          where a.deal_number=p_deal_number
118        start with a.cross_ref_to_trans = p_transaction_number
119        connect by  (a.deal_number = PRIOR a.deal_number and a.cross_ref_to_trans = PRIOR a.transaction_number));
120 
121 
122 Begin
123 l_sum_intadj :=0;
124 If p_deal_type ='IG' then
125    open ig_get_prev_intset;
126    fetch ig_get_prev_intset into l_prev_journal_date;
127    if ig_get_prev_intset%NOTFOUND then
128       l_prev_journal_date :=to_date('01/01/1900','DD/MM/YYYY');
129    end if;
130    close ig_get_prev_intset;
131 
132    open ig_sum_intadj(l_prev_journal_date);
133    fetch ig_sum_intadj into l_sum_intadj;
134    close ig_sum_intadj;
135 elsif p_deal_type ='ONC' then
136    open onc_get_prev_intset;
137    fetch onc_get_prev_intset into l_prev_journal_date;
138    if onc_get_prev_intset%NOTFOUND then
139         l_prev_journal_date :=to_date('01/01/1900','DD/MM/YYYY');
140    end if;
141    close onc_get_prev_intset;
142 
143    open onc_sum_intadj;
144    fetch onc_sum_intadj into l_sum_intadj;
145    close onc_sum_intadj;
146 end if;
147 return(l_sum_intadj);
148 
149 End Xtr_Ig_Onc_Sum_Intadj;
150 
151 End XTR_BISF_P;