1 PACKAGE LNS_FEE_ENGINE AS
2 /* $Header: LNS_FEE_ENGINE_S.pls 120.3 2005/08/02 14:41:17 raverma noship $ */
3 /*========================================================================+
4 | Declare PUBLIC Data Types and Variables
5 +========================================================================*/
6
7
8 TYPE FEE_BASIS_REC IS RECORD(FEE_BASIS_NAME VARCHAR2(30)
9 ,FEE_BASIS_AMOUNT NUMBER);
10
11 TYPE FEE_BASIS_TBL IS TABLE OF FEE_BASIS_REC INDEX BY BINARY_INTEGER;
12
13 TYPE FEE_STRUCTURE_REC IS RECORD(FEE_ID NUMBER
14 ,FEE_NAME VARCHAR2(50)
15 ,FEE_DESCRIPTION VARCHAR2(250)
16 ,FEE_CATEGORY VARCHAR2(30)
17 ,FEE_TYPE VARCHAR2(30)
18 ,FEE_AMOUNT NUMBER
19 ,FEE_BASIS VARCHAR2(30) -- amount to calculate from
20 ,START_DATE_ACTIVE DATE
21 ,END_DATE_ACTIVE DATE
22 ,NUMBER_GRACE_DAYS NUMBER
23 ,FEE_BILLING_OPTION VARCHAR2(30)
24 ,FEE_RATE_TYPE VARCHAR2(30) -- fixed / variable
25 ,FEE_FROM_INSTALLMENT NUMBER
26 ,FEE_TO_INSTALLMENT NUMBER
27 ,FEE_WAIVABLE_FLAG VARCHAR2(1)
28 ,FEE_EDITABLE_FLAG VARCHAR2(1)
29 ,FEE_DELETABLE_FLAG VARCHAR2(1)
30 ,MINIMUM_OVERDUE_AMOUNT NUMBER
31 ,FEE_BASIS_RULE VARCHAR2(30)
32 ,CURRENCY_CODE VARCHAR2(15)
33 ,DISB_HEADER_ID NUMBER
34 ,DISBURSEMENT_AMOUNT NUMBER
35 ,DISBURSEMENT_DATE DATE
36 -- ,FEE_SCHEDULE_ID NUMBER
37 );
38
39 TYPE FEE_STRUCTURE_TBL IS TABLE OF FEE_STRUCTURE_REC INDEX BY BINARY_INTEGER;
40
41 -- LNS.B additions
42 TYPE FEE_CALC_REC IS RECORD(FEE_ID NUMBER
43 ,FEE_NAME VARCHAR2(50)
44 ,FEE_CATEGORY VARCHAR2(30)
45 ,FEE_TYPE VARCHAR2(30)
46 ,FEE_AMOUNT NUMBER
47 ,FEE_INSTALLMENT NUMBER
48 ,FEE_DESCRIPTION VARCHAR2(250)
49 ,FEE_SCHEDULE_ID NUMBER
50 ,FEE_WAIVABLE_FLAG VARCHAR2(1)
51 ,FEE_EDITABLE_FLAG VARCHAR2(1)
52 ,FEE_DELETABLE_FLAG VARCHAR2(1)
53 ,WAIVE_AMOUNT NUMBER
54 ,BILLED_FLAG VARCHAR2(1)
55 ,ACTIVE_FLAG VARCHAR2(1)
56 ,DISB_HEADER_ID NUMBER
57 );
58
59 TYPE FEE_CALC_TBL IS TABLE OF FEE_CALC_REC INDEX BY BINARY_INTEGER;
60
61 procedure processDisbursementFees(p_init_msg_list in varchar2
62 ,p_commit in varchar2
63 ,p_phase in varchar2
64 ,p_loan_id in number
65 ,p_disb_head_id in number
66 ,x_return_status out nocopy varchar2
67 ,x_msg_count out nocopy number
68 ,x_msg_data out nocopy varchar2);
69
70
71 -- LNS.B functions
72 procedure reprocessFees(p_loan_id in number
73 ,p_installment_number in number
74 ,p_init_msg_list in varchar2
75 ,p_commit in varchar2
76 ,x_return_status out nocopy varchar2
77 ,x_msg_count out nocopy number
78 ,x_msg_data out nocopy varchar2);
79
80 function getFeeStructures(p_loan_id in number
81 ,p_fee_category in varchar2
82 ,p_fee_type in varchar2
83 ,p_installment in number
84 ,p_fee_id in number) return LNS_FEE_ENGINE.FEE_STRUCTURE_TBL;
85
86 function getDisbursementFeeStructures(p_loan_id in number
87 ,p_fee_category in varchar2
88 ,p_fee_type in varchar2
89 ,p_from_date in date
90 ,p_to_date in date
91 ,p_disb_header_id in number
92 ,p_fee_id in number) return LNS_FEE_ENGINE.FEE_STRUCTURE_TBL;
93
94 function calculateFee(p_fee_id in number
95 ,p_disb_header_id in number
96 ,p_loan_id in number) return number;
97
98 function calculateFee(p_fee_id IN NUMBER
99 ,p_loan_id IN NUMBER) return number;
100
101 procedure calculateFees(p_loan_id in number
102 ,p_fee_basis_tbl in LNS_FEE_ENGINE.FEE_BASIS_TBL
103 ,p_installment in number
104 ,p_fee_structures IN LNS_FEE_ENGINE.FEE_STRUCTURE_TBL
105 ,x_fees_tbl OUT nocopy LNS_FEE_ENGINE.FEE_CALC_TBL
106 ,x_return_status out nocopy varchar2
107 ,x_msg_count out nocopy number
108 ,x_msg_data out nocopy varchar2);
109
110 procedure writeFeeSchedule(p_init_msg_list in varchar2
111 ,p_commit in varchar2
112 ,p_loan_id in number
113 ,p_fees_tbl IN OUT NOCOPY LNS_FEE_ENGINE.FEE_CALC_TBL
114 ,x_return_status out nocopy varchar2
115 ,x_msg_count out nocopy number
116 ,x_msg_data out nocopy varchar2);
117
118 procedure updateFeeSchedule(p_init_msg_list in varchar2
119 ,p_commit in varchar2
120 ,p_loan_id in number
121 ,p_fees_tbl IN LNS_FEE_ENGINE.FEE_CALC_TBL
122 ,x_return_status out nocopy varchar2
123 ,x_msg_count out nocopy number
124 ,x_msg_data out nocopy varchar2);
125
126 procedure getFeeSchedule(p_init_msg_list in varchar2
127 ,p_loan_id in number
128 ,p_installment_number in number
129 ,p_disb_header_id in number
130 ,x_fees_tbl OUT NOCOPY LNS_FEE_ENGINE.FEE_CALC_TBL
131 ,x_return_status out nocopy varchar2
132 ,x_msg_count out nocopy number
133 ,x_msg_data out nocopy varchar2);
134
135 -- karthik UI for fee details
136 procedure getFeeDetails(p_init_msg_list in varchar2
137 ,p_loan_id in number
138 ,p_installment in number
139 ,p_fee_basis_tbl in LNS_FEE_ENGINE.FEE_BASIS_TBL
140 ,p_based_on_terms in varchar2
141 ,p_phase in varchar2
142 ,x_fees_tbl out nocopy LNS_FEE_ENGINE.FEE_CALC_TBL
143 ,x_return_status out nocopy varchar2
144 ,x_msg_count out nocopy number
145 ,x_msg_data out nocopy varchar2);
146
147 procedure processFees(p_init_msg_list in varchar2
148 ,p_commit in varchar2
149 ,p_loan_id in number
150 ,p_installment_number in number
151 ,p_fee_basis_tbl in LNS_FEE_ENGINE.FEE_BASIS_TBL
152 ,p_fee_structures in LNS_FEE_ENGINE.FEE_STRUCTURE_TBL
153 ,x_fees_tbl out NOCOPY LNS_FEE_ENGINE.FEE_CALC_TBL
154 ,x_return_status out nocopy varchar2
155 ,x_msg_count out nocopy number
156 ,x_msg_data out nocopy varchar2);
157
158 procedure processLateFees(p_loan_id in number
159 ,p_init_msg_list in varchar2
160 ,p_commit in varchar2
161 ,x_return_status out nocopy varchar2
162 ,x_msg_count out nocopy number
163 ,x_msg_data out nocopy varchar2);
164
165 /*
166 -- do if update
167 procedure updateFee(p_init_msg_list in varchar2
168 ,p_commit in varchar2
169 ,p_loan_id in number
170 ,p_fee_schedule_id in number
171 ,p_update_amount in number
172 ,x_return_status out nocopy varchar2
173 ,x_msg_count out nocopy number
174 ,x_msg_data out nocopy varchar2);
175 */
176 -- do if waive
177 procedure waiveFee(p_init_msg_list in varchar2
178 ,p_commit in varchar2
179 ,p_loan_id in number
180 ,p_fee_schedule_id in number
181 ,p_waive_amount in number
182 ,x_return_status out nocopy varchar2
183 ,x_msg_count out nocopy number
184 ,x_msg_data out nocopy varchar2);
185
186 -- for future use
187 function getFeesTotal(p_loan_id in number
188 ,p_fee_category in varchar2
189 ,p_fee_type in varchar2
190 ,p_billed_flag in varchar2
191 ,p_waived_flag in varchar2) return number;
192
193 PROCEDURE LOAN_LATE_FEES_CONCUR(ERRBUF OUT NOCOPY VARCHAR2
194 ,RETCODE OUT NOCOPY VARCHAR2
195 ,P_BORROWER_ID IN NUMBER
196 ,P_LOAN_ID IN NUMBER);
197
198
199
200 end LNS_FEE_ENGINE;