DBA Data[Home] [Help]

PACKAGE: APPS.LNS_CUSTOM_PUB

Source


1 PACKAGE LNS_CUSTOM_PUB AS
2 /* $Header: LNS_CUST_PUBP_S.pls 120.0.12010000.4 2009/01/21 20:21:36 scherkas ship $ */
3 
4 TYPE custom_sched_type IS RECORD(CUSTOM_SCHEDULE_ID     NUMBER
5                                 ,LOAN_ID                NUMBER
6                                 ,PAYMENT_NUMBER         NUMBER
7                                 ,DUE_DATE               DATE
8                                 ,PERIOD_START_DATE      DATE
9                                 ,PERIOD_END_DATE        DATE
10                                 ,PRINCIPAL_AMOUNT       NUMBER
11                                 ,INTEREST_AMOUNT        NUMBER
12                                 ,NORMAL_INT_AMOUNT      NUMBER
13                                 ,ADD_PRIN_INT_AMOUNT    NUMBER
14                                 ,ADD_INT_INT_AMOUNT     NUMBER
15                                 ,PENAL_INT_AMOUNT       NUMBER
16                                 ,PRINCIPAL_BALANCE      NUMBER
17                                 ,FEE_AMOUNT             NUMBER
18                                 ,OTHER_AMOUNT           NUMBER
19                                 ,OBJECT_VERSION_NUMBER  NUMBER
20                                 ,ATTRIBUTE_CATEGORY     VARCHAR2(30)
21                                 ,ATTRIBUTE1             VARCHAR2(150)
22                                 ,ATTRIBUTE2             VARCHAR2(150)
23                                 ,ATTRIBUTE3             VARCHAR2(150)
24                                 ,ATTRIBUTE4             VARCHAR2(150)
25                                 ,ATTRIBUTE5             VARCHAR2(150)
26                                 ,ATTRIBUTE6             VARCHAR2(150)
27                                 ,ATTRIBUTE7             VARCHAR2(150)
28                                 ,ATTRIBUTE8             VARCHAR2(150)
29                                 ,ATTRIBUTE9             VARCHAR2(150)
30                                 ,ATTRIBUTE10            VARCHAR2(150)
31                                 ,ATTRIBUTE11            VARCHAR2(150)
32                                 ,ATTRIBUTE12            VARCHAR2(150)
33                                 ,ATTRIBUTE13            VARCHAR2(150)
34                                 ,ATTRIBUTE14            VARCHAR2(150)
35                                 ,ATTRIBUTE15            VARCHAR2(150)
36                                 ,ATTRIBUTE16            VARCHAR2(150)
37                                 ,ATTRIBUTE17            VARCHAR2(150)
38                                 ,ATTRIBUTE18            VARCHAR2(150)
39                                 ,ATTRIBUTE19            VARCHAR2(150)
40                                 ,ATTRIBUTE20            VARCHAR2(150)
41                                 ,CURRENT_TERM_PAYMENT   NUMBER
42                                 ,INSTALLMENT_BEGIN_BALANCE NUMBER
43                                 ,INSTALLMENT_END_BALANCE NUMBER
44                                 ,PRINCIPAL_PAID_TODATE  NUMBER
45                                 ,INTEREST_PAID_TODATE   NUMBER
46                                 ,INTEREST_RATE          NUMBER
47                                 ,UNPAID_PRIN            NUMBER
48                                 ,UNPAID_INT             NUMBER
49                                 ,LOCK_PRIN              VARCHAR2(1)
50                                 ,LOCK_INT               VARCHAR2(1)
51                                 ,ACTION                 VARCHAR2(1));
52 
53  Type custom_tbl is table of custom_sched_type index by binary_integer;
54 
55 TYPE LOAN_DETAILS_REC IS RECORD(LOAN_ID                      NUMBER       -- loan id
56                                 ,AMORTIZATION_FREQUENCY      VARCHAR2(30)
57                                 ,PAYMENT_FREQUENCY           VARCHAR2(30)
58                                 ,LOAN_START_DATE             DATE
59                                 ,FUNDED_AMOUNT               NUMBER
60                                 ,REMAINING_BALANCE           NUMBER
61                                 ,UNPAID_PRINCIPAL            NUMBER
62                                 ,UNPAID_INTEREST             NUMBER
63                                 ,UNBILLED_PRINCIPAL          NUMBER
64                                 ,MATURITY_DATE               DATE
65                                 ,LAST_INSTALLMENT_BILLED     NUMBER
66                                 ,DAY_COUNT_METHOD            VARCHAR2(30)
67                                 ,CUSTOM_SCHEDULE             VARCHAR2(1)  -- Y/N for custom payment schedule
68                                 ,LOAN_STATUS                 VARCHAR2(30) -- loan status
69                                 ,LOAN_CURRENCY               VARCHAR2(15) -- loan currency
70                                 ,CURRENCY_PRECISION          NUMBER     -- currency precision
71                                 ,PAYMENT_CALC_METHOD         VARCHAR2(30)  -- payment calc method: equal payment, equal principal
72                                 ,CALCULATION_METHOD          VARCHAR2(30)  -- interest calc method: simple, compound
73                                 ,INTEREST_COMPOUNDING_FREQ   VARCHAR2(30)
74                                 ,LAST_DUE_DATE               DATE
75                                 ,CUSTOM_CALC_METHOD          VARCHAR2(30)
76                                 ,ORIG_PAY_CALC_METHOD        VARCHAR2(30)
77                                 ,RATE_TYPE                     VARCHAR2(30) -- fixed or variable
78                                 ,TERM_CEILING_RATE             NUMBER       -- term ceiling rate
79                                 ,TERM_FLOOR_RATE               NUMBER       -- term floor rate
80                                 ,TERM_FIRST_PERCENT_INCREASE   NUMBER       -- term first percentage increase
81                                 ,TERM_ADJ_PERCENT_INCREASE     NUMBER       -- term percentage increase btwn adjustments
82                                 ,TERM_LIFE_PERCENT_INCREASE    NUMBER       -- term lifetime max adjustment for interest
83                                 ,TERM_INDEX_RATE_ID            NUMBER       -- index_rate_id
84                                 ,INITIAL_INTEREST_RATE         NUMBER
85                                 ,LAST_INTEREST_RATE            NUMBER
86                                 ,FIRST_RATE_CHANGE_DATE        DATE
87                                 ,NEXT_RATE_CHANGE_DATE         DATE
88                                 ,TERM_PROJECTED_INTEREST_RATE  NUMBER  -- term projected interest rate
89                                 ,PENAL_INT_RATE                NUMBER
90                                 ,PENAL_INT_GRACE_DAYS          NUMBER);
91 
92 
93 procedure resetCustomSchedule(p_loan_id        IN number
94                              ,p_init_msg_list  IN VARCHAR2
95                              ,p_commit         IN VARCHAR2
96                              ,p_update_header  IN boolean
97                              ,x_return_status  OUT NOCOPY VARCHAR2
98                              ,x_msg_count      OUT NOCOPY NUMBER
99                              ,x_msg_data       OUT NOCOPY VARCHAR2);
100 
101 procedure createCustomSchedule(p_custom_tbl     IN CUSTOM_TBL
102                               ,p_loan_id        IN number
103                               ,p_init_msg_list  IN VARCHAR2
104                               ,p_commit         IN VARCHAR2
105                               ,x_return_status  OUT NOCOPY VARCHAR2
106                               ,x_msg_count      OUT NOCOPY NUMBER
107                               ,x_msg_data       OUT NOCOPY VARCHAR2
108                               ,X_INVALID_INSTALLMENT_NUM OUT NOCOPY NUMBER);
109 
110 procedure updateCustomSchedule(p_custom_tbl     IN CUSTOM_TBL
111                               ,p_loan_id        IN number
112                               ,p_init_msg_list  IN VARCHAR2
113                               ,p_commit         IN VARCHAR2
114                               ,x_return_status  OUT NOCOPY VARCHAR2
115                               ,x_msg_count      OUT NOCOPY NUMBER
116                               ,x_msg_data       OUT NOCOPY VARCHAR2
117                               ,X_INVALID_INSTALLMENT_NUM OUT NOCOPY NUMBER);
118 
119 procedure createCustomSched(P_CUSTOM_REC        IN CUSTOM_SCHED_TYPE
120                            ,x_custom_sched_id  OUT NOCOPY NUMBER
121                            ,x_return_status    OUT NOCOPY VARCHAR2
122                            ,x_msg_count        OUT NOCOPY NUMBER
123                            ,x_msg_data         OUT NOCOPY VARCHAR2);
124 
125 procedure updateCustomSched(P_CUSTOM_REC IN CUSTOM_SCHED_TYPE
126                            ,x_return_status    OUT NOCOPY VARCHAR2
127                            ,x_msg_count        OUT NOCOPY NUMBER
128                            ,x_msg_data         OUT NOCOPY VARCHAR2);
129 
130 procedure validateCustomTable(p_cust_tbl          in CUSTOM_TBL
131                              ,p_loan_id          in number
132                              ,p_create_flag      in boolean
133                              ,x_installment      OUT NOCOPY NUMBER
134                              ,x_return_status    OUT NOCOPY VARCHAR2
135                              ,x_msg_count        OUT NOCOPY NUMBER
136                              ,x_msg_data         OUT NOCOPY VARCHAR2);
137 
138 procedure validateCustomRow(p_custom_rec in CUSTOM_SCHED_TYPE
139                            ,x_return_status    OUT NOCOPY VARCHAR2
140                            ,x_msg_count        OUT NOCOPY NUMBER
141                            ,x_msg_data         OUT NOCOPY VARCHAR2);
142 
143 -- This procedure recalculates custom schedule
144 procedure recalcCustomSchedule(
145         P_API_VERSION		IN              NUMBER,
146         P_INIT_MSG_LIST		IN              VARCHAR2,
147         P_COMMIT			IN              VARCHAR2,
148         P_VALIDATION_LEVEL	IN              NUMBER,
149         P_LOAN_ID           IN              NUMBER,
150         P_AMORT_METHOD      IN              VARCHAR2,
151         P_BASED_ON_TERMS    IN              VARCHAR2,
152         P_CUSTOM_TBL        IN OUT NOCOPY   LNS_CUSTOM_PUB.CUSTOM_TBL,
153         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
154         X_MSG_COUNT			OUT NOCOPY      NUMBER,
155         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
156 
157 -- This procedure loads custom schedule from db
158 procedure loadCustomSchedule(
159         P_API_VERSION		IN              NUMBER,
160         P_INIT_MSG_LIST		IN              VARCHAR2,
161         P_COMMIT			IN              VARCHAR2,
162         P_VALIDATION_LEVEL	IN              NUMBER,
163         P_LOAN_ID           IN              NUMBER,
164         P_BASED_ON_TERMS    IN              VARCHAR2,
165         X_AMORT_METHOD      OUT NOCOPY      VARCHAR2,
166         X_CUSTOM_TBL        OUT NOCOPY      LNS_CUSTOM_PUB.CUSTOM_TBL,
167         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
168         X_MSG_COUNT			OUT NOCOPY      NUMBER,
169         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
170 
171 -- This procedure saves custom schedule into db
172 procedure saveCustomSchedule(
173         P_API_VERSION		IN              NUMBER,
174         P_INIT_MSG_LIST		IN              VARCHAR2,
175         P_COMMIT			IN              VARCHAR2,
176         P_VALIDATION_LEVEL	IN              NUMBER,
177         P_LOAN_ID           IN              NUMBER,
178         P_AMORT_METHOD      IN              VARCHAR2,
179         P_BASED_ON_TERMS    IN              VARCHAR2,
180         P_CUSTOM_TBL        IN OUT NOCOPY   LNS_CUSTOM_PUB.CUSTOM_TBL,
181         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
182         X_MSG_COUNT			OUT NOCOPY      NUMBER,
183         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
184 
185 -- This procedure switches from standard schedule to custom schedule in one shot
186 -- Conditions: loan status is INCOMPLETE and loan has not been customized yet
187 procedure customizeSchedule(
188         P_API_VERSION		IN              NUMBER,
189         P_INIT_MSG_LIST		IN              VARCHAR2,
190         P_COMMIT			IN              VARCHAR2,
191         P_VALIDATION_LEVEL	IN              NUMBER,
192         P_LOAN_ID           IN              NUMBER,
193         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
194         X_MSG_COUNT			OUT NOCOPY      NUMBER,
195         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
196 
197 -- This procedure switches back from custom schedule to standard schedule in one shot
198 -- Conditions: loan status is INCOMPLETE and loan has been already customized
199 procedure uncustomizeSchedule(
200         P_API_VERSION		IN              NUMBER,
201         P_INIT_MSG_LIST		IN              VARCHAR2,
202         P_COMMIT			IN              VARCHAR2,
203         P_VALIDATION_LEVEL	IN              NUMBER,
204         P_LOAN_ID           IN              NUMBER,
205         P_ST_AMORT_METHOD   IN              VARCHAR2,
206         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
207         X_MSG_COUNT			OUT NOCOPY      NUMBER,
208         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
209 
210 -- This procedure recalculates custom schedule with shifting all subsequent due dates on a single due date change
211 procedure shiftCustomSchedule(
212         P_API_VERSION		IN              NUMBER,
213         P_INIT_MSG_LIST		IN              VARCHAR2,
214         P_COMMIT			IN              VARCHAR2,
215         P_VALIDATION_LEVEL	IN              NUMBER,
216         P_LOAN_ID           IN              NUMBER,
217         P_OLD_DUE_DATE      IN              DATE,
218         P_NEW_DUE_DATE      IN              DATE,
219         P_AMORT_METHOD      IN              VARCHAR2,
220         P_BASED_ON_TERMS    IN              VARCHAR2,
221         P_CUSTOM_TBL        IN OUT NOCOPY   LNS_CUSTOM_PUB.CUSTOM_TBL,
222         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
223         X_MSG_COUNT			OUT NOCOPY      NUMBER,
224         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
225 
226 
227 -- This procedure rebuilds the custom schedule and delete rows whose dueDate > maturityDate
228 -- Conditions: loan status is INCOMPLETE
229 procedure reBuildCustomdSchedule(
230         P_API_VERSION		IN              NUMBER,
231         P_INIT_MSG_LIST		IN              VARCHAR2,
232         P_COMMIT			IN              VARCHAR2,
233         P_VALIDATION_LEVEL	IN              NUMBER,
234         P_LOAN_ID           IN              NUMBER,
235         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
236         X_MSG_COUNT			OUT NOCOPY      NUMBER,
237         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
238 
239 
240 -- This procedure builds custom payment schedule and returns LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL table
241 function buildCustomPaySchedule(P_LOAN_ID IN NUMBER) return LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
242 
243 -- added for bug 7716548
244 -- This procedure adds installment to custom schedule only if it does not already exist
245 procedure addMissingInstallment(
246         P_API_VERSION		IN              NUMBER,
247         P_INIT_MSG_LIST		IN              VARCHAR2,
248         P_COMMIT			IN              VARCHAR2,
249         P_VALIDATION_LEVEL	IN              NUMBER,
250         P_INSTALLMENT_REC   IN              LNS_CUSTOM_PUB.custom_sched_type,
251         X_RETURN_STATUS		OUT NOCOPY      VARCHAR2,
252         X_MSG_COUNT			OUT NOCOPY      NUMBER,
253         X_MSG_DATA	    	OUT NOCOPY      VARCHAR2);
254 
255 END LNS_CUSTOM_PUB;