[Home] [Help]
PACKAGE BODY: APPS.LNS_FINANCIALS_W
Source
1 package body lns_financials_w as
2 /* $Header: LNS_FINANCIALJ_B.pls 120.13.12020000.2 2012/07/19 20:56:08 scherkas ship $ */
3 procedure rosetta_table_copy_in_p1(t out nocopy lns_financials.rate_schedule_tbl, a0 JTF_NUMBER_TABLE
4 , a1 JTF_DATE_TABLE
5 , a2 JTF_DATE_TABLE
6 , a3 JTF_NUMBER_TABLE
7 , a4 JTF_NUMBER_TABLE
8 , a5 JTF_NUMBER_TABLE
9 , a6 JTF_NUMBER_TABLE
10 , a7 JTF_VARCHAR2_TABLE_100
11 , a8 JTF_VARCHAR2_TABLE_100
12 , a9 JTF_VARCHAR2_TABLE_100
13 ) as
14 ddindx binary_integer; indx binary_integer;
15 begin
16 if a0 is not null and a0.count > 0 then
17 if a0.count > 0 then
18 indx := a0.first;
19 ddindx := 1;
20 while true loop
21 t(ddindx).rate_id := a0(indx);
22 t(ddindx).begin_date := a1(indx);
23 t(ddindx).end_date := a2(indx);
24 t(ddindx).annual_rate := a3(indx);
25 t(ddindx).spread := a4(indx);
26 t(ddindx).begin_installment_number := a5(indx);
27 t(ddindx).end_installment_number := a6(indx);
28 t(ddindx).interest_only_flag := a7(indx);
29 t(ddindx).phase := a8(indx);
30 t(ddindx).floating_flag := a9(indx);
31 ddindx := ddindx+1;
32 if a0.last =indx
33 then exit;
34 end if;
35 indx := a0.next(indx);
36 end loop;
37 end if;
38 end if;
39 end rosetta_table_copy_in_p1;
40 procedure rosetta_table_copy_out_p1(t lns_financials.rate_schedule_tbl, a0 out nocopy JTF_NUMBER_TABLE
41 , a1 out nocopy JTF_DATE_TABLE
42 , a2 out nocopy JTF_DATE_TABLE
43 , a3 out nocopy JTF_NUMBER_TABLE
44 , a4 out nocopy JTF_NUMBER_TABLE
45 , a5 out nocopy JTF_NUMBER_TABLE
46 , a6 out nocopy JTF_NUMBER_TABLE
47 , a7 out nocopy JTF_VARCHAR2_TABLE_100
48 , a8 out nocopy JTF_VARCHAR2_TABLE_100
49 , a9 out nocopy JTF_VARCHAR2_TABLE_100
50 ) as
51 ddindx binary_integer; indx binary_integer;
52 begin
53 if t is null or t.count = 0 then
54 a0 := JTF_NUMBER_TABLE();
55 a1 := JTF_DATE_TABLE();
56 a2 := JTF_DATE_TABLE();
57 a3 := JTF_NUMBER_TABLE();
58 a4 := JTF_NUMBER_TABLE();
59 a5 := JTF_NUMBER_TABLE();
60 a6 := JTF_NUMBER_TABLE();
61 a7 := JTF_VARCHAR2_TABLE_100();
62 a8 := JTF_VARCHAR2_TABLE_100();
63 a9 := JTF_VARCHAR2_TABLE_100();
64 else
65 a0 := JTF_NUMBER_TABLE();
66 a1 := JTF_DATE_TABLE();
67 a2 := JTF_DATE_TABLE();
68 a3 := JTF_NUMBER_TABLE();
69 a4 := JTF_NUMBER_TABLE();
70 a5 := JTF_NUMBER_TABLE();
71 a6 := JTF_NUMBER_TABLE();
72 a7 := JTF_VARCHAR2_TABLE_100();
73 a8 := JTF_VARCHAR2_TABLE_100();
74 a9 := JTF_VARCHAR2_TABLE_100();
75 if t.count > 0 then
76 a0.extend(t.count);
77 a1.extend(t.count);
78 a2.extend(t.count);
79 a3.extend(t.count);
80 a4.extend(t.count);
81 a5.extend(t.count);
82 a6.extend(t.count);
83 a7.extend(t.count);
84 a8.extend(t.count);
85 a9.extend(t.count);
86 ddindx := t.first;
87 indx := 1;
88 while true loop
89 a0(indx) := t(ddindx).rate_id;
90 a1(indx) := t(ddindx).begin_date;
91 a2(indx) := t(ddindx).end_date;
92 a3(indx) := t(ddindx).annual_rate;
93 a4(indx) := t(ddindx).spread;
94 a5(indx) := t(ddindx).begin_installment_number;
95 a6(indx) := t(ddindx).end_installment_number;
96 a7(indx) := t(ddindx).interest_only_flag;
97 a8(indx) := t(ddindx).phase;
98 a9(indx) := t(ddindx).floating_flag;
99 indx := indx+1;
100 if t.last =ddindx
101 then exit;
102 end if;
103 ddindx := t.next(ddindx);
104 end loop;
105 end if;
106 end if;
107 end rosetta_table_copy_out_p1;
108
109 procedure rosetta_table_copy_in_p3(t out nocopy lns_financials.amortization_tbl, a0 JTF_NUMBER_TABLE
110 , a1 JTF_DATE_TABLE
111 , a2 JTF_DATE_TABLE
112 , a3 JTF_DATE_TABLE
113 , a4 JTF_NUMBER_TABLE
114 , a5 JTF_NUMBER_TABLE
115 , a6 JTF_NUMBER_TABLE
116 , a7 JTF_NUMBER_TABLE
117 , a8 JTF_NUMBER_TABLE
118 , a9 JTF_NUMBER_TABLE
119 , a10 JTF_NUMBER_TABLE
120 , a11 JTF_NUMBER_TABLE
121 , a12 JTF_NUMBER_TABLE
122 , a13 JTF_NUMBER_TABLE
123 , a14 JTF_NUMBER_TABLE
124 , a15 JTF_NUMBER_TABLE
125 , a16 JTF_NUMBER_TABLE
126 , a17 JTF_NUMBER_TABLE
127 , a18 JTF_NUMBER_TABLE
128 , a19 JTF_NUMBER_TABLE
129 , a20 JTF_NUMBER_TABLE
130 , a21 JTF_VARCHAR2_TABLE_100
131 , a22 JTF_VARCHAR2_TABLE_100
132 , a23 JTF_VARCHAR2_TABLE_100
133 , a24 JTF_NUMBER_TABLE
134 , a25 JTF_NUMBER_TABLE
135 , a26 JTF_NUMBER_TABLE
136 , a27 JTF_NUMBER_TABLE
137 , a28 JTF_VARCHAR2_TABLE_2000
138 , a29 JTF_VARCHAR2_TABLE_2000
139 , a30 JTF_VARCHAR2_TABLE_2000
140 , a31 JTF_VARCHAR2_TABLE_2000
141 , a32 JTF_NUMBER_TABLE
142 , a33 JTF_VARCHAR2_TABLE_200
143 , a34 JTF_NUMBER_TABLE
144 , a35 JTF_NUMBER_TABLE
145 , a36 JTF_VARCHAR2_TABLE_2000
146 , a37 JTF_NUMBER_TABLE
147 , a38 JTF_NUMBER_TABLE
148 , a39 JTF_NUMBER_TABLE
149 , a40 JTF_VARCHAR2_TABLE_2000
150 , a41 JTF_NUMBER_TABLE
151 , a42 JTF_VARCHAR2_TABLE_2000
152 ) as
153 ddindx binary_integer; indx binary_integer;
154 begin
155 if a0 is not null and a0.count > 0 then
156 if a0.count > 0 then
157 indx := a0.first;
158 ddindx := 1;
159 while true loop
160 t(ddindx).installment_number := a0(indx);
161 t(ddindx).due_date := a1(indx);
162 t(ddindx).period_start_date := a2(indx);
163 t(ddindx).period_end_date := a3(indx);
164 t(ddindx).principal_amount := a4(indx);
165 t(ddindx).interest_amount := a5(indx);
166 t(ddindx).normal_int_amount := a6(indx);
167 t(ddindx).add_prin_int_amount := a7(indx);
168 t(ddindx).add_int_int_amount := a8(indx);
169 t(ddindx).penal_int_amount := a9(indx);
170 t(ddindx).fee_amount := a10(indx);
171 t(ddindx).other_amount := a11(indx);
172 t(ddindx).begin_balance := a12(indx);
173 t(ddindx).end_balance := a13(indx);
174 t(ddindx).total := a14(indx);
175 t(ddindx).interest_cumulative := a15(indx);
176 t(ddindx).principal_cumulative := a16(indx);
177 t(ddindx).fees_cumulative := a17(indx);
178 t(ddindx).other_cumulative := a18(indx);
179 t(ddindx).rate_id := a19(indx);
180 t(ddindx).rate_unadj := a20(indx);
181 t(ddindx).rate_change_freq := a21(indx);
182 t(ddindx).source := a22(indx);
183 t(ddindx).grand_total_flag := a23(indx);
184 t(ddindx).unpaid_prin := a24(indx);
185 t(ddindx).unpaid_int := a25(indx);
186 t(ddindx).interest_rate := a26(indx);
187 t(ddindx).funded_amount := a27(indx);
188 t(ddindx).normal_int_details := a28(indx);
189 t(ddindx).add_prin_int_details := a29(indx);
190 t(ddindx).add_int_int_details := a30(indx);
191 t(ddindx).penal_int_details := a31(indx);
192 t(ddindx).disbursement_amount := a32(indx);
193 t(ddindx).period := a33(indx);
194 t(ddindx).prev_deferred_int_amount := a34(indx);
195 t(ddindx).deferred_int_amount := a35(indx);
196 t(ddindx).deferred_int_details := a36(indx);
197 t(ddindx).prev_cap_int_amount := a37(indx);
198 t(ddindx).curr_cap_int_amount := a38(indx);
199 t(ddindx).cap_int_amount := a39(indx);
200 t(ddindx).cap_int_details := a40(indx);
201 t(ddindx).early_pay_cr_amount := a41(indx);
202 t(ddindx).early_pay_cr_details := a42(indx);
203 ddindx := ddindx+1;
204 if a0.last =indx
205 then exit;
206 end if;
207 indx := a0.next(indx);
208 end loop;
209 end if;
210 end if;
211 end rosetta_table_copy_in_p3;
212 procedure rosetta_table_copy_out_p3(t lns_financials.amortization_tbl, a0 out nocopy JTF_NUMBER_TABLE
213 , a1 out nocopy JTF_DATE_TABLE
214 , a2 out nocopy JTF_DATE_TABLE
215 , a3 out nocopy JTF_DATE_TABLE
216 , a4 out nocopy JTF_NUMBER_TABLE
217 , a5 out nocopy JTF_NUMBER_TABLE
218 , a6 out nocopy JTF_NUMBER_TABLE
219 , a7 out nocopy JTF_NUMBER_TABLE
220 , a8 out nocopy JTF_NUMBER_TABLE
221 , a9 out nocopy JTF_NUMBER_TABLE
222 , a10 out nocopy JTF_NUMBER_TABLE
223 , a11 out nocopy JTF_NUMBER_TABLE
224 , a12 out nocopy JTF_NUMBER_TABLE
225 , a13 out nocopy JTF_NUMBER_TABLE
226 , a14 out nocopy JTF_NUMBER_TABLE
227 , a15 out nocopy JTF_NUMBER_TABLE
228 , a16 out nocopy JTF_NUMBER_TABLE
229 , a17 out nocopy JTF_NUMBER_TABLE
230 , a18 out nocopy JTF_NUMBER_TABLE
231 , a19 out nocopy JTF_NUMBER_TABLE
232 , a20 out nocopy JTF_NUMBER_TABLE
233 , a21 out nocopy JTF_VARCHAR2_TABLE_100
234 , a22 out nocopy JTF_VARCHAR2_TABLE_100
235 , a23 out nocopy JTF_VARCHAR2_TABLE_100
236 , a24 out nocopy JTF_NUMBER_TABLE
237 , a25 out nocopy JTF_NUMBER_TABLE
238 , a26 out nocopy JTF_NUMBER_TABLE
239 , a27 out nocopy JTF_NUMBER_TABLE
240 , a28 out nocopy JTF_VARCHAR2_TABLE_2000
241 , a29 out nocopy JTF_VARCHAR2_TABLE_2000
242 , a30 out nocopy JTF_VARCHAR2_TABLE_2000
243 , a31 out nocopy JTF_VARCHAR2_TABLE_2000
244 , a32 out nocopy JTF_NUMBER_TABLE
245 , a33 out nocopy JTF_VARCHAR2_TABLE_200
246 , a34 out nocopy JTF_NUMBER_TABLE
247 , a35 out nocopy JTF_NUMBER_TABLE
248 , a36 out nocopy JTF_VARCHAR2_TABLE_2000
249 , a37 out nocopy JTF_NUMBER_TABLE
250 , a38 out nocopy JTF_NUMBER_TABLE
251 , a39 out nocopy JTF_NUMBER_TABLE
252 , a40 out nocopy JTF_VARCHAR2_TABLE_2000
253 , a41 out nocopy JTF_NUMBER_TABLE
254 , a42 out nocopy JTF_VARCHAR2_TABLE_2000
255 ) as
256 ddindx binary_integer; indx binary_integer;
257 begin
258 if t is null or t.count = 0 then
259 a0 := JTF_NUMBER_TABLE();
260 a1 := JTF_DATE_TABLE();
261 a2 := JTF_DATE_TABLE();
262 a3 := JTF_DATE_TABLE();
263 a4 := JTF_NUMBER_TABLE();
264 a5 := JTF_NUMBER_TABLE();
265 a6 := JTF_NUMBER_TABLE();
266 a7 := JTF_NUMBER_TABLE();
267 a8 := JTF_NUMBER_TABLE();
268 a9 := JTF_NUMBER_TABLE();
269 a10 := JTF_NUMBER_TABLE();
270 a11 := JTF_NUMBER_TABLE();
271 a12 := JTF_NUMBER_TABLE();
272 a13 := JTF_NUMBER_TABLE();
273 a14 := JTF_NUMBER_TABLE();
274 a15 := JTF_NUMBER_TABLE();
275 a16 := JTF_NUMBER_TABLE();
276 a17 := JTF_NUMBER_TABLE();
277 a18 := JTF_NUMBER_TABLE();
278 a19 := JTF_NUMBER_TABLE();
279 a20 := JTF_NUMBER_TABLE();
280 a21 := JTF_VARCHAR2_TABLE_100();
281 a22 := JTF_VARCHAR2_TABLE_100();
282 a23 := JTF_VARCHAR2_TABLE_100();
283 a24 := JTF_NUMBER_TABLE();
284 a25 := JTF_NUMBER_TABLE();
285 a26 := JTF_NUMBER_TABLE();
286 a27 := JTF_NUMBER_TABLE();
287 a28 := JTF_VARCHAR2_TABLE_2000();
288 a29 := JTF_VARCHAR2_TABLE_2000();
289 a30 := JTF_VARCHAR2_TABLE_2000();
290 a31 := JTF_VARCHAR2_TABLE_2000();
291 a32 := JTF_NUMBER_TABLE();
292 a33 := JTF_VARCHAR2_TABLE_200();
293 a34 := JTF_NUMBER_TABLE();
294 a35 := JTF_NUMBER_TABLE();
295 a36 := JTF_VARCHAR2_TABLE_2000();
296 a37 := JTF_NUMBER_TABLE();
297 a38 := JTF_NUMBER_TABLE();
298 a39 := JTF_NUMBER_TABLE();
299 a40 := JTF_VARCHAR2_TABLE_2000();
300 a41 := JTF_NUMBER_TABLE();
301 a42 := JTF_VARCHAR2_TABLE_2000();
302 else
303 a0 := JTF_NUMBER_TABLE();
304 a1 := JTF_DATE_TABLE();
305 a2 := JTF_DATE_TABLE();
306 a3 := JTF_DATE_TABLE();
307 a4 := JTF_NUMBER_TABLE();
308 a5 := JTF_NUMBER_TABLE();
309 a6 := JTF_NUMBER_TABLE();
310 a7 := JTF_NUMBER_TABLE();
311 a8 := JTF_NUMBER_TABLE();
312 a9 := JTF_NUMBER_TABLE();
313 a10 := JTF_NUMBER_TABLE();
314 a11 := JTF_NUMBER_TABLE();
315 a12 := JTF_NUMBER_TABLE();
316 a13 := JTF_NUMBER_TABLE();
317 a14 := JTF_NUMBER_TABLE();
318 a15 := JTF_NUMBER_TABLE();
319 a16 := JTF_NUMBER_TABLE();
320 a17 := JTF_NUMBER_TABLE();
321 a18 := JTF_NUMBER_TABLE();
322 a19 := JTF_NUMBER_TABLE();
323 a20 := JTF_NUMBER_TABLE();
324 a21 := JTF_VARCHAR2_TABLE_100();
325 a22 := JTF_VARCHAR2_TABLE_100();
326 a23 := JTF_VARCHAR2_TABLE_100();
327 a24 := JTF_NUMBER_TABLE();
328 a25 := JTF_NUMBER_TABLE();
329 a26 := JTF_NUMBER_TABLE();
330 a27 := JTF_NUMBER_TABLE();
331 a28 := JTF_VARCHAR2_TABLE_2000();
332 a29 := JTF_VARCHAR2_TABLE_2000();
333 a30 := JTF_VARCHAR2_TABLE_2000();
334 a31 := JTF_VARCHAR2_TABLE_2000();
335 a32 := JTF_NUMBER_TABLE();
336 a33 := JTF_VARCHAR2_TABLE_200();
337 a34 := JTF_NUMBER_TABLE();
338 a35 := JTF_NUMBER_TABLE();
339 a36 := JTF_VARCHAR2_TABLE_2000();
340 a37 := JTF_NUMBER_TABLE();
341 a38 := JTF_NUMBER_TABLE();
342 a39 := JTF_NUMBER_TABLE();
343 a40 := JTF_VARCHAR2_TABLE_2000();
344 a41 := JTF_NUMBER_TABLE();
345 a42 := JTF_VARCHAR2_TABLE_2000();
346 if t.count > 0 then
347 a0.extend(t.count);
348 a1.extend(t.count);
349 a2.extend(t.count);
350 a3.extend(t.count);
351 a4.extend(t.count);
352 a5.extend(t.count);
353 a6.extend(t.count);
354 a7.extend(t.count);
355 a8.extend(t.count);
356 a9.extend(t.count);
357 a10.extend(t.count);
358 a11.extend(t.count);
359 a12.extend(t.count);
360 a13.extend(t.count);
361 a14.extend(t.count);
362 a15.extend(t.count);
363 a16.extend(t.count);
364 a17.extend(t.count);
365 a18.extend(t.count);
366 a19.extend(t.count);
367 a20.extend(t.count);
368 a21.extend(t.count);
369 a22.extend(t.count);
370 a23.extend(t.count);
371 a24.extend(t.count);
372 a25.extend(t.count);
373 a26.extend(t.count);
374 a27.extend(t.count);
375 a28.extend(t.count);
376 a29.extend(t.count);
377 a30.extend(t.count);
378 a31.extend(t.count);
379 a32.extend(t.count);
380 a33.extend(t.count);
381 a34.extend(t.count);
382 a35.extend(t.count);
383 a36.extend(t.count);
384 a37.extend(t.count);
385 a38.extend(t.count);
386 a39.extend(t.count);
387 a40.extend(t.count);
388 a41.extend(t.count);
389 a42.extend(t.count);
390 ddindx := t.first;
391 indx := 1;
392 while true loop
393 a0(indx) := t(ddindx).installment_number;
394 a1(indx) := t(ddindx).due_date;
395 a2(indx) := t(ddindx).period_start_date;
396 a3(indx) := t(ddindx).period_end_date;
397 a4(indx) := t(ddindx).principal_amount;
398 a5(indx) := t(ddindx).interest_amount;
399 a6(indx) := t(ddindx).normal_int_amount;
400 a7(indx) := t(ddindx).add_prin_int_amount;
401 a8(indx) := t(ddindx).add_int_int_amount;
402 a9(indx) := t(ddindx).penal_int_amount;
403 a10(indx) := t(ddindx).fee_amount;
404 a11(indx) := t(ddindx).other_amount;
405 a12(indx) := t(ddindx).begin_balance;
406 a13(indx) := t(ddindx).end_balance;
407 a14(indx) := t(ddindx).total;
408 a15(indx) := t(ddindx).interest_cumulative;
409 a16(indx) := t(ddindx).principal_cumulative;
410 a17(indx) := t(ddindx).fees_cumulative;
411 a18(indx) := t(ddindx).other_cumulative;
412 a19(indx) := t(ddindx).rate_id;
413 a20(indx) := t(ddindx).rate_unadj;
414 a21(indx) := t(ddindx).rate_change_freq;
415 a22(indx) := t(ddindx).source;
416 a23(indx) := t(ddindx).grand_total_flag;
417 a24(indx) := t(ddindx).unpaid_prin;
418 a25(indx) := t(ddindx).unpaid_int;
419 a26(indx) := t(ddindx).interest_rate;
420 a27(indx) := t(ddindx).funded_amount;
421 a28(indx) := t(ddindx).normal_int_details;
422 a29(indx) := t(ddindx).add_prin_int_details;
423 a30(indx) := t(ddindx).add_int_int_details;
424 a31(indx) := t(ddindx).penal_int_details;
425 a32(indx) := t(ddindx).disbursement_amount;
426 a33(indx) := t(ddindx).period;
427 a34(indx) := t(ddindx).prev_deferred_int_amount;
428 a35(indx) := t(ddindx).deferred_int_amount;
429 a36(indx) := t(ddindx).deferred_int_details;
430 a37(indx) := t(ddindx).prev_cap_int_amount;
431 a38(indx) := t(ddindx).curr_cap_int_amount;
432 a39(indx) := t(ddindx).cap_int_amount;
433 a40(indx) := t(ddindx).cap_int_details;
434 a41(indx) := t(ddindx).early_pay_cr_amount;
435 a42(indx) := t(ddindx).early_pay_cr_details;
436 indx := indx+1;
437 if t.last =ddindx
438 then exit;
439 end if;
440 ddindx := t.next(ddindx);
441 end loop;
442 end if;
443 end if;
444 end rosetta_table_copy_out_p3;
445
446 procedure rosetta_table_copy_in_p6(t out nocopy lns_financials.payoff_tbl, a0 JTF_NUMBER_TABLE
447 , a1 JTF_NUMBER_TABLE
448 , a2 JTF_NUMBER_TABLE
449 , a3 JTF_NUMBER_TABLE
450 , a4 JTF_NUMBER_TABLE
451 , a5 JTF_NUMBER_TABLE
452 , a6 JTF_NUMBER_TABLE
453 , a7 JTF_NUMBER_TABLE
454 , a8 JTF_NUMBER_TABLE
455 , a9 JTF_DATE_TABLE
456 ) as
457 ddindx binary_integer; indx binary_integer;
458 begin
459 if a0 is not null and a0.count > 0 then
460 if a0.count > 0 then
461 indx := a0.first;
462 ddindx := 1;
463 while true loop
464 t(ddindx).total_principal_remaining := a0(indx);
465 t(ddindx).unpaid_principal := a1(indx);
466 t(ddindx).unbilled_principal := a2(indx);
467 t(ddindx).total_interest_remaining := a3(indx);
468 t(ddindx).unpaid_interest := a4(indx);
469 t(ddindx).additional_interest_due := a5(indx);
470 t(ddindx).total_fees_remaining := a6(indx);
471 t(ddindx).unpaid_fees := a7(indx);
472 t(ddindx).additional_fees_due := a8(indx);
473 t(ddindx).due_date := a9(indx);
474 ddindx := ddindx+1;
475 if a0.last =indx
476 then exit;
477 end if;
478 indx := a0.next(indx);
479 end loop;
480 end if;
481 end if;
482 end rosetta_table_copy_in_p6;
483 procedure rosetta_table_copy_out_p6(t lns_financials.payoff_tbl, a0 out nocopy JTF_NUMBER_TABLE
484 , a1 out nocopy JTF_NUMBER_TABLE
485 , a2 out nocopy JTF_NUMBER_TABLE
486 , a3 out nocopy JTF_NUMBER_TABLE
487 , a4 out nocopy JTF_NUMBER_TABLE
488 , a5 out nocopy JTF_NUMBER_TABLE
489 , a6 out nocopy JTF_NUMBER_TABLE
490 , a7 out nocopy JTF_NUMBER_TABLE
491 , a8 out nocopy JTF_NUMBER_TABLE
492 , a9 out nocopy JTF_DATE_TABLE
493 ) as
494 ddindx binary_integer; indx binary_integer;
495 begin
496 if t is null or t.count = 0 then
497 a0 := JTF_NUMBER_TABLE();
498 a1 := JTF_NUMBER_TABLE();
499 a2 := JTF_NUMBER_TABLE();
500 a3 := JTF_NUMBER_TABLE();
501 a4 := JTF_NUMBER_TABLE();
502 a5 := JTF_NUMBER_TABLE();
503 a6 := JTF_NUMBER_TABLE();
504 a7 := JTF_NUMBER_TABLE();
505 a8 := JTF_NUMBER_TABLE();
506 a9 := JTF_DATE_TABLE();
507 else
508 a0 := JTF_NUMBER_TABLE();
509 a1 := JTF_NUMBER_TABLE();
510 a2 := JTF_NUMBER_TABLE();
511 a3 := JTF_NUMBER_TABLE();
512 a4 := JTF_NUMBER_TABLE();
513 a5 := JTF_NUMBER_TABLE();
514 a6 := JTF_NUMBER_TABLE();
515 a7 := JTF_NUMBER_TABLE();
516 a8 := JTF_NUMBER_TABLE();
517 a9 := JTF_DATE_TABLE();
518 if t.count > 0 then
519 a0.extend(t.count);
520 a1.extend(t.count);
521 a2.extend(t.count);
522 a3.extend(t.count);
523 a4.extend(t.count);
524 a5.extend(t.count);
525 a6.extend(t.count);
526 a7.extend(t.count);
527 a8.extend(t.count);
528 a9.extend(t.count);
529 ddindx := t.first;
530 indx := 1;
531 while true loop
532 a0(indx) := t(ddindx).total_principal_remaining;
533 a1(indx) := t(ddindx).unpaid_principal;
534 a2(indx) := t(ddindx).unbilled_principal;
535 a3(indx) := t(ddindx).total_interest_remaining;
536 a4(indx) := t(ddindx).unpaid_interest;
537 a5(indx) := t(ddindx).additional_interest_due;
538 a6(indx) := t(ddindx).total_fees_remaining;
539 a7(indx) := t(ddindx).unpaid_fees;
540 a8(indx) := t(ddindx).additional_fees_due;
541 a9(indx) := t(ddindx).due_date;
542 indx := indx+1;
543 if t.last =ddindx
544 then exit;
545 end if;
546 ddindx := t.next(ddindx);
547 end loop;
548 end if;
549 end if;
550 end rosetta_table_copy_out_p6;
551
552 procedure rosetta_table_copy_in_p8(t out nocopy lns_financials.payoff_tbl2, a0 JTF_VARCHAR2_TABLE_100
553 , a1 JTF_NUMBER_TABLE
554 , a2 JTF_NUMBER_TABLE
555 , a3 JTF_NUMBER_TABLE
556 ) as
557 ddindx binary_integer; indx binary_integer;
558 begin
559 if a0 is not null and a0.count > 0 then
560 if a0.count > 0 then
561 indx := a0.first;
562 ddindx := 1;
563 while true loop
564 t(ddindx).payoff_purpose := a0(indx);
565 t(ddindx).billed_amount := a1(indx);
566 t(ddindx).unbilled_amount := a2(indx);
567 t(ddindx).total_amount := a3(indx);
568 ddindx := ddindx+1;
569 if a0.last =indx
570 then exit;
571 end if;
572 indx := a0.next(indx);
573 end loop;
574 end if;
575 end if;
576 end rosetta_table_copy_in_p8;
577 procedure rosetta_table_copy_out_p8(t lns_financials.payoff_tbl2, a0 out nocopy JTF_VARCHAR2_TABLE_100
578 , a1 out nocopy JTF_NUMBER_TABLE
579 , a2 out nocopy JTF_NUMBER_TABLE
580 , a3 out nocopy JTF_NUMBER_TABLE
581 ) as
582 ddindx binary_integer; indx binary_integer;
583 begin
584 if t is null or t.count = 0 then
585 a0 := JTF_VARCHAR2_TABLE_100();
586 a1 := JTF_NUMBER_TABLE();
587 a2 := JTF_NUMBER_TABLE();
588 a3 := JTF_NUMBER_TABLE();
589 else
590 a0 := JTF_VARCHAR2_TABLE_100();
591 a1 := JTF_NUMBER_TABLE();
592 a2 := JTF_NUMBER_TABLE();
593 a3 := JTF_NUMBER_TABLE();
594 if t.count > 0 then
595 a0.extend(t.count);
596 a1.extend(t.count);
597 a2.extend(t.count);
598 a3.extend(t.count);
599 ddindx := t.first;
600 indx := 1;
601 while true loop
602 a0(indx) := t(ddindx).payoff_purpose;
603 a1(indx) := t(ddindx).billed_amount;
604 a2(indx) := t(ddindx).unbilled_amount;
605 a3(indx) := t(ddindx).total_amount;
606 indx := indx+1;
607 if t.last =ddindx
608 then exit;
609 end if;
610 ddindx := t.next(ddindx);
611 end loop;
612 end if;
613 end if;
614 end rosetta_table_copy_out_p8;
615
616 procedure rosetta_table_copy_in_p10(t out nocopy lns_financials.loan_activity_tbl, a0 JTF_DATE_TABLE
617 , a1 JTF_NUMBER_TABLE
618 , a2 JTF_NUMBER_TABLE
619 , a3 JTF_NUMBER_TABLE
620 ) as
621 ddindx binary_integer; indx binary_integer;
622 begin
623 if a0 is not null and a0.count > 0 then
624 if a0.count > 0 then
625 indx := a0.first;
626 ddindx := 1;
627 while true loop
628 t(ddindx).activity_date := a0(indx);
629 t(ddindx).activity_amount := a1(indx);
630 t(ddindx).ending_balance := a2(indx);
631 t(ddindx).days_at_balance := a3(indx);
632 ddindx := ddindx+1;
633 if a0.last =indx
634 then exit;
635 end if;
636 indx := a0.next(indx);
637 end loop;
638 end if;
639 end if;
640 end rosetta_table_copy_in_p10;
641 procedure rosetta_table_copy_out_p10(t lns_financials.loan_activity_tbl, a0 out nocopy JTF_DATE_TABLE
642 , a1 out nocopy JTF_NUMBER_TABLE
643 , a2 out nocopy JTF_NUMBER_TABLE
644 , a3 out nocopy JTF_NUMBER_TABLE
645 ) as
646 ddindx binary_integer; indx binary_integer;
647 begin
648 if t is null or t.count = 0 then
649 a0 := JTF_DATE_TABLE();
650 a1 := JTF_NUMBER_TABLE();
651 a2 := JTF_NUMBER_TABLE();
652 a3 := JTF_NUMBER_TABLE();
653 else
654 a0 := JTF_DATE_TABLE();
655 a1 := JTF_NUMBER_TABLE();
656 a2 := JTF_NUMBER_TABLE();
657 a3 := JTF_NUMBER_TABLE();
658 if t.count > 0 then
659 a0.extend(t.count);
660 a1.extend(t.count);
661 a2.extend(t.count);
662 a3.extend(t.count);
663 ddindx := t.first;
664 indx := 1;
665 while true loop
666 a0(indx) := t(ddindx).activity_date;
667 a1(indx) := t(ddindx).activity_amount;
668 a2(indx) := t(ddindx).ending_balance;
669 a3(indx) := t(ddindx).days_at_balance;
670 indx := indx+1;
671 if t.last =ddindx
672 then exit;
673 end if;
674 ddindx := t.next(ddindx);
675 end loop;
676 end if;
677 end if;
678 end rosetta_table_copy_out_p10;
679
680 procedure rosetta_table_copy_in_p12(t out nocopy lns_financials.payment_schedule_tbl, a0 JTF_DATE_TABLE
681 , a1 JTF_DATE_TABLE
682 ) as
683 ddindx binary_integer; indx binary_integer;
684 begin
685 if a0 is not null and a0.count > 0 then
686 if a0.count > 0 then
687 indx := a0.first;
688 ddindx := 1;
689 while true loop
690 t(ddindx).period_begin_date := a0(indx);
691 t(ddindx).period_end_date := a1(indx);
692 ddindx := ddindx+1;
693 if a0.last =indx
694 then exit;
695 end if;
696 indx := a0.next(indx);
697 end loop;
698 end if;
699 end if;
700 end rosetta_table_copy_in_p12;
701 procedure rosetta_table_copy_out_p12(t lns_financials.payment_schedule_tbl, a0 out nocopy JTF_DATE_TABLE
702 , a1 out nocopy JTF_DATE_TABLE
703 ) as
704 ddindx binary_integer; indx binary_integer;
705 begin
706 if t is null or t.count = 0 then
707 a0 := JTF_DATE_TABLE();
708 a1 := JTF_DATE_TABLE();
709 else
710 a0 := JTF_DATE_TABLE();
711 a1 := JTF_DATE_TABLE();
712 if t.count > 0 then
713 a0.extend(t.count);
714 a1.extend(t.count);
715 ddindx := t.first;
716 indx := 1;
717 while true loop
718 a0(indx) := t(ddindx).period_begin_date;
719 a1(indx) := t(ddindx).period_end_date;
720 indx := indx+1;
721 if t.last =ddindx
722 then exit;
723 end if;
724 ddindx := t.next(ddindx);
725 end loop;
726 end if;
727 end if;
728 end rosetta_table_copy_out_p12;
729
730 procedure rosetta_table_copy_in_p13(t out nocopy lns_financials.date_tbl, a0 JTF_DATE_TABLE) as
731 ddindx binary_integer; indx binary_integer;
732 begin
733 if a0 is not null and a0.count > 0 then
734 if a0.count > 0 then
735 indx := a0.first;
736 ddindx := 1;
737 while true loop
738 t(ddindx) := a0(indx);
739 ddindx := ddindx+1;
740 if a0.last =indx
741 then exit;
742 end if;
743 indx := a0.next(indx);
744 end loop;
745 end if;
746 end if;
747 end rosetta_table_copy_in_p13;
748 procedure rosetta_table_copy_out_p13(t lns_financials.date_tbl, a0 out nocopy JTF_DATE_TABLE) as
749 ddindx binary_integer; indx binary_integer;
750 begin
751 if t is null or t.count = 0 then
752 a0 := JTF_DATE_TABLE();
753 else
754 a0 := JTF_DATE_TABLE();
755 if t.count > 0 then
756 a0.extend(t.count);
757 ddindx := t.first;
758 indx := 1;
759 while true loop
760 a0(indx) := t(ddindx);
761 indx := indx+1;
762 if t.last =ddindx
763 then exit;
764 end if;
765 ddindx := t.next(ddindx);
766 end loop;
767 end if;
768 end if;
769 end rosetta_table_copy_out_p13;
770
771 procedure rosetta_table_copy_in_p14(t out nocopy lns_financials.amount_tbl, a0 JTF_NUMBER_TABLE) as
772 ddindx binary_integer; indx binary_integer;
773 begin
774 if a0 is not null and a0.count > 0 then
775 if a0.count > 0 then
776 indx := a0.first;
777 ddindx := 1;
778 while true loop
779 t(ddindx) := a0(indx);
780 ddindx := ddindx+1;
781 if a0.last =indx
782 then exit;
783 end if;
784 indx := a0.next(indx);
785 end loop;
786 end if;
787 end if;
788 end rosetta_table_copy_in_p14;
789 procedure rosetta_table_copy_out_p14(t lns_financials.amount_tbl, a0 out nocopy JTF_NUMBER_TABLE) as
790 ddindx binary_integer; indx binary_integer;
791 begin
792 if t is null or t.count = 0 then
793 a0 := JTF_NUMBER_TABLE();
794 else
795 a0 := JTF_NUMBER_TABLE();
796 if t.count > 0 then
797 a0.extend(t.count);
798 ddindx := t.first;
799 indx := 1;
800 while true loop
801 a0(indx) := t(ddindx);
802 indx := indx+1;
803 if t.last =ddindx
804 then exit;
805 end if;
806 ddindx := t.next(ddindx);
807 end loop;
808 end if;
809 end if;
810 end rosetta_table_copy_out_p14;
811
812 procedure rosetta_table_copy_in_p15(t out nocopy lns_financials.vchar_tbl, a0 JTF_VARCHAR2_TABLE_100) as
813 ddindx binary_integer; indx binary_integer;
814 begin
815 if a0 is not null and a0.count > 0 then
816 if a0.count > 0 then
817 indx := a0.first;
818 ddindx := 1;
819 while true loop
820 t(ddindx) := a0(indx);
821 ddindx := ddindx+1;
822 if a0.last =indx
823 then exit;
824 end if;
825 indx := a0.next(indx);
826 end loop;
827 end if;
828 end if;
829 end rosetta_table_copy_in_p15;
830 procedure rosetta_table_copy_out_p15(t lns_financials.vchar_tbl, a0 out nocopy JTF_VARCHAR2_TABLE_100) as
831 ddindx binary_integer; indx binary_integer;
832 begin
833 if t is null or t.count = 0 then
834 a0 := JTF_VARCHAR2_TABLE_100();
835 else
836 a0 := JTF_VARCHAR2_TABLE_100();
837 if t.count > 0 then
838 a0.extend(t.count);
839 ddindx := t.first;
840 indx := 1;
841 while true loop
842 a0(indx) := t(ddindx);
843 indx := indx+1;
844 if t.last =ddindx
845 then exit;
846 end if;
847 ddindx := t.next(ddindx);
848 end loop;
849 end if;
850 end if;
851 end rosetta_table_copy_out_p15;
852
853 procedure rosetta_table_copy_in_p17(t out nocopy lns_financials.fees_tbl, a0 JTF_NUMBER_TABLE
854 , a1 JTF_VARCHAR2_TABLE_100
855 , a2 JTF_NUMBER_TABLE
856 , a3 JTF_NUMBER_TABLE
857 , a4 JTF_VARCHAR2_TABLE_300
858 , a5 JTF_NUMBER_TABLE
859 , a6 JTF_VARCHAR2_TABLE_100
860 , a7 JTF_NUMBER_TABLE
861 , a8 JTF_VARCHAR2_TABLE_100
862 , a9 JTF_VARCHAR2_TABLE_100
863 ) as
864 ddindx binary_integer; indx binary_integer;
865 begin
866 if a0 is not null and a0.count > 0 then
867 if a0.count > 0 then
868 indx := a0.first;
869 ddindx := 1;
870 while true loop
871 t(ddindx).fee_id := a0(indx);
872 t(ddindx).fee_name := a1(indx);
873 t(ddindx).fee_amount := a2(indx);
874 t(ddindx).fee_installment := a3(indx);
875 t(ddindx).fee_description := a4(indx);
876 t(ddindx).fee_schedule_id := a5(indx);
877 t(ddindx).fee_waivable_flag := a6(indx);
878 t(ddindx).waive_amount := a7(indx);
879 t(ddindx).billed_flag := a8(indx);
880 t(ddindx).active_flag := a9(indx);
881 ddindx := ddindx+1;
882 if a0.last =indx
883 then exit;
884 end if;
885 indx := a0.next(indx);
886 end loop;
887 end if;
888 end if;
889 end rosetta_table_copy_in_p17;
890 procedure rosetta_table_copy_out_p17(t lns_financials.fees_tbl, a0 out nocopy JTF_NUMBER_TABLE
891 , a1 out nocopy JTF_VARCHAR2_TABLE_100
892 , a2 out nocopy JTF_NUMBER_TABLE
893 , a3 out nocopy JTF_NUMBER_TABLE
894 , a4 out nocopy JTF_VARCHAR2_TABLE_300
895 , a5 out nocopy JTF_NUMBER_TABLE
896 , a6 out nocopy JTF_VARCHAR2_TABLE_100
897 , a7 out nocopy JTF_NUMBER_TABLE
898 , a8 out nocopy JTF_VARCHAR2_TABLE_100
899 , a9 out nocopy JTF_VARCHAR2_TABLE_100
900 ) as
901 ddindx binary_integer; indx binary_integer;
902 begin
903 if t is null or t.count = 0 then
904 a0 := JTF_NUMBER_TABLE();
905 a1 := JTF_VARCHAR2_TABLE_100();
906 a2 := JTF_NUMBER_TABLE();
907 a3 := JTF_NUMBER_TABLE();
908 a4 := JTF_VARCHAR2_TABLE_300();
909 a5 := JTF_NUMBER_TABLE();
910 a6 := JTF_VARCHAR2_TABLE_100();
911 a7 := JTF_NUMBER_TABLE();
912 a8 := JTF_VARCHAR2_TABLE_100();
913 a9 := JTF_VARCHAR2_TABLE_100();
914 else
915 a0 := JTF_NUMBER_TABLE();
916 a1 := JTF_VARCHAR2_TABLE_100();
917 a2 := JTF_NUMBER_TABLE();
918 a3 := JTF_NUMBER_TABLE();
919 a4 := JTF_VARCHAR2_TABLE_300();
920 a5 := JTF_NUMBER_TABLE();
921 a6 := JTF_VARCHAR2_TABLE_100();
922 a7 := JTF_NUMBER_TABLE();
923 a8 := JTF_VARCHAR2_TABLE_100();
924 a9 := JTF_VARCHAR2_TABLE_100();
925 if t.count > 0 then
926 a0.extend(t.count);
927 a1.extend(t.count);
928 a2.extend(t.count);
929 a3.extend(t.count);
930 a4.extend(t.count);
931 a5.extend(t.count);
932 a6.extend(t.count);
933 a7.extend(t.count);
934 a8.extend(t.count);
935 a9.extend(t.count);
936 ddindx := t.first;
937 indx := 1;
938 while true loop
939 a0(indx) := t(ddindx).fee_id;
940 a1(indx) := t(ddindx).fee_name;
941 a2(indx) := t(ddindx).fee_amount;
942 a3(indx) := t(ddindx).fee_installment;
943 a4(indx) := t(ddindx).fee_description;
944 a5(indx) := t(ddindx).fee_schedule_id;
945 a6(indx) := t(ddindx).fee_waivable_flag;
946 a7(indx) := t(ddindx).waive_amount;
947 a8(indx) := t(ddindx).billed_flag;
948 a9(indx) := t(ddindx).active_flag;
949 indx := indx+1;
950 if t.last =ddindx
951 then exit;
952 end if;
953 ddindx := t.next(ddindx);
954 end loop;
955 end if;
956 end if;
957 end rosetta_table_copy_out_p17;
958
959 procedure shiftloandates(p_loan_id NUMBER
960 , p_new_start_date DATE
961 , p_phase VARCHAR2
962 , p3_a0 out nocopy NUMBER
963 , p3_a1 out nocopy NUMBER
964 , p3_a2 out nocopy VARCHAR2
965 , p3_a3 out nocopy NUMBER
966 , p3_a4 out nocopy VARCHAR2
967 , p3_a5 out nocopy VARCHAR2
968 , p3_a6 out nocopy VARCHAR2
969 , p3_a7 out nocopy DATE
970 , p3_a8 out nocopy DATE
971 , p3_a9 out nocopy NUMBER
972 , p3_a10 out nocopy NUMBER
973 , p3_a11 out nocopy NUMBER
974 , p3_a12 out nocopy NUMBER
975 , p3_a13 out nocopy NUMBER
976 , p3_a14 out nocopy NUMBER
977 , p3_a15 out nocopy NUMBER
978 , p3_a16 out nocopy NUMBER
979 , p3_a17 out nocopy NUMBER
980 , p3_a18 out nocopy NUMBER
981 , p3_a19 out nocopy DATE
982 , p3_a20 out nocopy NUMBER
983 , p3_a21 out nocopy NUMBER
984 , p3_a22 out nocopy VARCHAR2
985 , p3_a23 out nocopy VARCHAR2
986 , p3_a24 out nocopy VARCHAR2
987 , p3_a25 out nocopy NUMBER
988 , p3_a26 out nocopy NUMBER
989 , p3_a27 out nocopy NUMBER
990 , p3_a28 out nocopy NUMBER
991 , p3_a29 out nocopy VARCHAR2
992 , p3_a30 out nocopy VARCHAR2
993 , p3_a31 out nocopy NUMBER
994 , p3_a32 out nocopy VARCHAR2
995 , p3_a33 out nocopy VARCHAR2
996 , p3_a34 out nocopy DATE
997 , p3_a35 out nocopy VARCHAR2
998 , p3_a36 out nocopy DATE
999 , p3_a37 out nocopy VARCHAR2
1000 , p3_a38 out nocopy NUMBER
1001 , p3_a39 out nocopy NUMBER
1002 , p3_a40 out nocopy VARCHAR2
1003 , p3_a41 out nocopy VARCHAR2
1004 , p3_a42 out nocopy DATE
1005 , p3_a43 out nocopy DATE
1006 , p3_a44 out nocopy DATE
1007 , p3_a45 out nocopy VARCHAR2
1008 , p3_a46 out nocopy VARCHAR2
1009 , p3_a47 out nocopy NUMBER
1010 , p3_a48 out nocopy NUMBER
1011 , p3_a49 out nocopy VARCHAR2
1012 , p3_a50 out nocopy VARCHAR2
1013 , p3_a51 out nocopy NUMBER
1014 , p3_a52 out nocopy DATE
1015 , p3_a53 out nocopy NUMBER
1016 , p3_a54 out nocopy NUMBER
1017 , p3_a55 out nocopy NUMBER
1018 , p3_a56 out nocopy NUMBER
1019 , p3_a57 out nocopy NUMBER
1020 , p3_a58 out nocopy VARCHAR2
1021 , p3_a59 out nocopy NUMBER
1022 , p3_a60 out nocopy DATE
1023 , p3_a61 out nocopy NUMBER
1024 , p3_a62 out nocopy NUMBER
1025 , p3_a63 out nocopy NUMBER
1026 , p3_a64 out nocopy NUMBER
1027 , p3_a65 out nocopy NUMBER
1028 , p3_a66 out nocopy VARCHAR2
1029 , p3_a67 out nocopy VARCHAR2
1030 , p3_a68 out nocopy VARCHAR2
1031 , p3_a69 out nocopy VARCHAR2
1032 , p3_a70 out nocopy NUMBER
1033 , p3_a71 out nocopy NUMBER
1034 , p3_a72 out nocopy NUMBER
1035 , p3_a73 out nocopy NUMBER
1036 , p3_a74 out nocopy DATE
1037 , p3_a75 out nocopy DATE
1038 , p3_a76 out nocopy VARCHAR2
1039 , p3_a77 out nocopy VARCHAR2
1040 , p3_a78 out nocopy VARCHAR2
1041 , p3_a79 out nocopy VARCHAR2
1042 , p3_a80 out nocopy DATE
1043 , p3_a81 out nocopy VARCHAR2
1044 , p3_a82 out nocopy NUMBER
1045 , p3_a83 out nocopy NUMBER
1046 , p3_a84 out nocopy VARCHAR2
1047 , p3_a85 out nocopy NUMBER
1048 , p3_a86 out nocopy NUMBER
1049 , p3_a87 out nocopy NUMBER
1050 , p3_a88 out nocopy NUMBER
1051 , p3_a89 out nocopy NUMBER
1052 , p3_a90 out nocopy VARCHAR2
1053 , p3_a91 out nocopy NUMBER
1054 , p3_a92 out nocopy VARCHAR2
1055 , p3_a93 out nocopy VARCHAR2
1056 , p3_a94 out nocopy VARCHAR2
1057 , p3_a95 out nocopy VARCHAR2
1058 , x_dates_shifted_flag out nocopy VARCHAR2
1059 , x_return_status out nocopy VARCHAR2
1060 , x_msg_count out nocopy NUMBER
1061 , x_msg_data out nocopy VARCHAR2
1062 )
1063
1064 as
1065 ddx_loan_details lns_financials.loan_details_rec;
1066 ddindx binary_integer; indx binary_integer;
1067 begin
1068
1069 -- copy data to the local IN or IN-OUT args, if any
1070
1071
1072
1073
1074
1075
1076
1077
1078 -- here's the delegated call to the old PL/SQL routine
1079 lns_financials.shiftloandates(p_loan_id,
1080 p_new_start_date,
1081 p_phase,
1082 ddx_loan_details,
1083 x_dates_shifted_flag,
1084 x_return_status,
1085 x_msg_count,
1086 x_msg_data);
1087
1088 -- copy data back from the local variables to OUT or IN-OUT args, if any
1089
1090
1091
1092 p3_a0 := ddx_loan_details.loan_id;
1093 p3_a1 := ddx_loan_details.loan_term;
1094 p3_a2 := ddx_loan_details.loan_term_period;
1095 p3_a3 := ddx_loan_details.amortized_term;
1096 p3_a4 := ddx_loan_details.amortized_term_period;
1097 p3_a5 := ddx_loan_details.amortization_frequency;
1098 p3_a6 := ddx_loan_details.payment_frequency;
1099 p3_a7 := ddx_loan_details.first_payment_date;
1100 p3_a8 := ddx_loan_details.loan_start_date;
1101 p3_a9 := ddx_loan_details.requested_amount;
1102 p3_a10 := ddx_loan_details.funded_amount;
1103 p3_a11 := ddx_loan_details.remaining_balance;
1104 p3_a12 := ddx_loan_details.principal_paid_to_date;
1105 p3_a13 := ddx_loan_details.interest_paid_to_date;
1106 p3_a14 := ddx_loan_details.fees_paid_to_date;
1107 p3_a15 := ddx_loan_details.unpaid_principal;
1108 p3_a16 := ddx_loan_details.unpaid_interest;
1109 p3_a17 := ddx_loan_details.unbilled_principal;
1110 p3_a18 := ddx_loan_details.billed_principal;
1111 p3_a19 := ddx_loan_details.maturity_date;
1112 p3_a20 := ddx_loan_details.number_installments;
1113 p3_a21 := ddx_loan_details.num_amortization_intervals;
1114 p3_a22 := ddx_loan_details.reamortize_overpay;
1115 p3_a23 := ddx_loan_details.reamortize_underpay;
1116 p3_a24 := ddx_loan_details.reamortize_with_interest;
1117 p3_a25 := ddx_loan_details.reamortize_amount;
1118 p3_a26 := ddx_loan_details.reamortize_from_installment;
1119 p3_a27 := ddx_loan_details.reamortize_to_installment;
1120 p3_a28 := ddx_loan_details.last_installment_billed;
1121 p3_a29 := ddx_loan_details.day_count_method;
1122 p3_a30 := ddx_loan_details.pay_in_arrears;
1123 if ddx_loan_details.pay_in_arrears_boolean is null
1124 then p3_a31 := null;
1125 elsif ddx_loan_details.pay_in_arrears_boolean
1126 then p3_a31 := 1;
1127 else p3_a31 := 0;
1128 end if;
1129 p3_a32 := ddx_loan_details.custom_schedule;
1130 p3_a33 := ddx_loan_details.loan_status;
1131 p3_a34 := ddx_loan_details.last_interest_accrual;
1132 p3_a35 := ddx_loan_details.last_activity;
1133 p3_a36 := ddx_loan_details.last_activity_date;
1134 p3_a37 := ddx_loan_details.loan_currency;
1135 p3_a38 := ddx_loan_details.currency_precision;
1136 p3_a39 := ddx_loan_details.open_term;
1137 p3_a40 := ddx_loan_details.open_term_period;
1138 p3_a41 := ddx_loan_details.open_payment_frequency;
1139 p3_a42 := ddx_loan_details.open_first_payment_date;
1140 p3_a43 := ddx_loan_details.open_start_date;
1141 p3_a44 := ddx_loan_details.open_maturity_date;
1142 p3_a45 := ddx_loan_details.loan_phase;
1143 p3_a46 := ddx_loan_details.balloon_payment_type;
1144 p3_a47 := ddx_loan_details.balloon_payment_amount;
1145 p3_a48 := ddx_loan_details.amortized_amount;
1146 p3_a49 := ddx_loan_details.rate_type;
1147 p3_a50 := ddx_loan_details.open_rate_chg_freq;
1148 p3_a51 := ddx_loan_details.open_index_rate_id;
1149 p3_a52 := ddx_loan_details.open_index_date;
1150 p3_a53 := ddx_loan_details.open_ceiling_rate;
1151 p3_a54 := ddx_loan_details.open_floor_rate;
1152 p3_a55 := ddx_loan_details.open_first_percent_increase;
1153 p3_a56 := ddx_loan_details.open_adj_percent_increase;
1154 p3_a57 := ddx_loan_details.open_life_percent_increase;
1155 p3_a58 := ddx_loan_details.term_rate_chg_freq;
1156 p3_a59 := ddx_loan_details.term_index_rate_id;
1157 p3_a60 := ddx_loan_details.term_index_date;
1158 p3_a61 := ddx_loan_details.term_ceiling_rate;
1159 p3_a62 := ddx_loan_details.term_floor_rate;
1160 p3_a63 := ddx_loan_details.term_first_percent_increase;
1161 p3_a64 := ddx_loan_details.term_adj_percent_increase;
1162 p3_a65 := ddx_loan_details.term_life_percent_increase;
1163 p3_a66 := ddx_loan_details.open_to_term_flag;
1164 p3_a67 := ddx_loan_details.open_to_term_event;
1165 p3_a68 := ddx_loan_details.multiple_funding_flag;
1166 p3_a69 := ddx_loan_details.secondary_status;
1167 p3_a70 := ddx_loan_details.open_projected_interest_rate;
1168 p3_a71 := ddx_loan_details.term_projected_interest_rate;
1169 p3_a72 := ddx_loan_details.initial_interest_rate;
1170 p3_a73 := ddx_loan_details.last_interest_rate;
1171 p3_a74 := ddx_loan_details.first_rate_change_date;
1172 p3_a75 := ddx_loan_details.next_rate_change_date;
1173 p3_a76 := ddx_loan_details.calculation_method;
1174 p3_a77 := ddx_loan_details.interest_compounding_freq;
1175 p3_a78 := ddx_loan_details.payment_calc_method;
1176 p3_a79 := ddx_loan_details.orig_pay_calc_method;
1177 p3_a80 := ddx_loan_details.prin_first_pay_date;
1178 p3_a81 := ddx_loan_details.prin_payment_frequency;
1179 p3_a82 := ddx_loan_details.prin_number_installments;
1180 p3_a83 := ddx_loan_details.prin_amort_installments;
1181 p3_a84 := ddx_loan_details.prin_pay_in_arrears;
1182 if ddx_loan_details.prin_pay_in_arrears_bool is null
1183 then p3_a85 := null;
1184 elsif ddx_loan_details.prin_pay_in_arrears_bool
1185 then p3_a85 := 1;
1186 else p3_a85 := 0;
1187 end if;
1188 p3_a86 := ddx_loan_details.extend_from_installment;
1189 p3_a87 := ddx_loan_details.orig_number_installments;
1190 p3_a88 := ddx_loan_details.penal_int_rate;
1191 p3_a89 := ddx_loan_details.penal_int_grace_days;
1192 p3_a90 := ddx_loan_details.reamortize_on_funding;
1193 p3_a91 := ddx_loan_details.add_requested_amount;
1194 p3_a92 := ddx_loan_details.calc_add_int_unpaid_prin;
1195 p3_a93 := ddx_loan_details.calc_add_int_unpaid_int;
1196 p3_a94 := ddx_loan_details.capitalize_int;
1197 p3_a95 := ddx_loan_details.fluctuate_eq_pay_amount;
1198
1199
1200
1201
1202 end;
1203
1204 procedure validatepayoff(p0_a0 NUMBER
1205 , p0_a1 NUMBER
1206 , p0_a2 VARCHAR2
1207 , p0_a3 NUMBER
1208 , p0_a4 VARCHAR2
1209 , p0_a5 VARCHAR2
1210 , p0_a6 VARCHAR2
1211 , p0_a7 DATE
1212 , p0_a8 DATE
1213 , p0_a9 NUMBER
1214 , p0_a10 NUMBER
1215 , p0_a11 NUMBER
1216 , p0_a12 NUMBER
1217 , p0_a13 NUMBER
1218 , p0_a14 NUMBER
1219 , p0_a15 NUMBER
1220 , p0_a16 NUMBER
1221 , p0_a17 NUMBER
1222 , p0_a18 NUMBER
1223 , p0_a19 DATE
1224 , p0_a20 NUMBER
1225 , p0_a21 NUMBER
1226 , p0_a22 VARCHAR2
1227 , p0_a23 VARCHAR2
1228 , p0_a24 VARCHAR2
1229 , p0_a25 NUMBER
1230 , p0_a26 NUMBER
1231 , p0_a27 NUMBER
1232 , p0_a28 NUMBER
1233 , p0_a29 VARCHAR2
1234 , p0_a30 VARCHAR2
1235 , p0_a31 NUMBER
1236 , p0_a32 VARCHAR2
1237 , p0_a33 VARCHAR2
1238 , p0_a34 DATE
1239 , p0_a35 VARCHAR2
1240 , p0_a36 DATE
1241 , p0_a37 VARCHAR2
1242 , p0_a38 NUMBER
1243 , p0_a39 NUMBER
1244 , p0_a40 VARCHAR2
1245 , p0_a41 VARCHAR2
1246 , p0_a42 DATE
1247 , p0_a43 DATE
1248 , p0_a44 DATE
1249 , p0_a45 VARCHAR2
1250 , p0_a46 VARCHAR2
1251 , p0_a47 NUMBER
1252 , p0_a48 NUMBER
1253 , p0_a49 VARCHAR2
1254 , p0_a50 VARCHAR2
1255 , p0_a51 NUMBER
1256 , p0_a52 DATE
1257 , p0_a53 NUMBER
1258 , p0_a54 NUMBER
1259 , p0_a55 NUMBER
1260 , p0_a56 NUMBER
1261 , p0_a57 NUMBER
1262 , p0_a58 VARCHAR2
1263 , p0_a59 NUMBER
1264 , p0_a60 DATE
1265 , p0_a61 NUMBER
1266 , p0_a62 NUMBER
1267 , p0_a63 NUMBER
1268 , p0_a64 NUMBER
1269 , p0_a65 NUMBER
1270 , p0_a66 VARCHAR2
1271 , p0_a67 VARCHAR2
1272 , p0_a68 VARCHAR2
1273 , p0_a69 VARCHAR2
1274 , p0_a70 NUMBER
1275 , p0_a71 NUMBER
1276 , p0_a72 NUMBER
1277 , p0_a73 NUMBER
1278 , p0_a74 DATE
1279 , p0_a75 DATE
1280 , p0_a76 VARCHAR2
1281 , p0_a77 VARCHAR2
1282 , p0_a78 VARCHAR2
1283 , p0_a79 VARCHAR2
1284 , p0_a80 DATE
1285 , p0_a81 VARCHAR2
1286 , p0_a82 NUMBER
1287 , p0_a83 NUMBER
1288 , p0_a84 VARCHAR2
1289 , p0_a85 NUMBER
1290 , p0_a86 NUMBER
1291 , p0_a87 NUMBER
1292 , p0_a88 NUMBER
1293 , p0_a89 NUMBER
1294 , p0_a90 VARCHAR2
1295 , p0_a91 NUMBER
1296 , p0_a92 VARCHAR2
1297 , p0_a93 VARCHAR2
1298 , p0_a94 VARCHAR2
1299 , p0_a95 VARCHAR2
1300 , p_payoff_date DATE
1301 , x_return_status out nocopy VARCHAR2
1302 , x_msg_count out nocopy NUMBER
1303 , x_msg_data out nocopy VARCHAR2
1304 )
1305
1306 as
1307 ddp_loan_details lns_financials.loan_details_rec;
1308 ddindx binary_integer; indx binary_integer;
1309 begin
1310
1311 -- copy data to the local IN or IN-OUT args, if any
1312 ddp_loan_details.loan_id := p0_a0;
1313 ddp_loan_details.loan_term := p0_a1;
1314 ddp_loan_details.loan_term_period := p0_a2;
1315 ddp_loan_details.amortized_term := p0_a3;
1316 ddp_loan_details.amortized_term_period := p0_a4;
1317 ddp_loan_details.amortization_frequency := p0_a5;
1318 ddp_loan_details.payment_frequency := p0_a6;
1319 ddp_loan_details.first_payment_date := p0_a7;
1320 ddp_loan_details.loan_start_date := p0_a8;
1321 ddp_loan_details.requested_amount := p0_a9;
1322 ddp_loan_details.funded_amount := p0_a10;
1323 ddp_loan_details.remaining_balance := p0_a11;
1324 ddp_loan_details.principal_paid_to_date := p0_a12;
1325 ddp_loan_details.interest_paid_to_date := p0_a13;
1326 ddp_loan_details.fees_paid_to_date := p0_a14;
1327 ddp_loan_details.unpaid_principal := p0_a15;
1328 ddp_loan_details.unpaid_interest := p0_a16;
1329 ddp_loan_details.unbilled_principal := p0_a17;
1330 ddp_loan_details.billed_principal := p0_a18;
1331 ddp_loan_details.maturity_date := p0_a19;
1332 ddp_loan_details.number_installments := p0_a20;
1333 ddp_loan_details.num_amortization_intervals := p0_a21;
1334 ddp_loan_details.reamortize_overpay := p0_a22;
1335 ddp_loan_details.reamortize_underpay := p0_a23;
1336 ddp_loan_details.reamortize_with_interest := p0_a24;
1337 ddp_loan_details.reamortize_amount := p0_a25;
1338 ddp_loan_details.reamortize_from_installment := p0_a26;
1339 ddp_loan_details.reamortize_to_installment := p0_a27;
1340 ddp_loan_details.last_installment_billed := p0_a28;
1341 ddp_loan_details.day_count_method := p0_a29;
1342 ddp_loan_details.pay_in_arrears := p0_a30;
1343 if p0_a31 is null
1344 then ddp_loan_details.pay_in_arrears_boolean := null;
1345 elsif p0_a31 = 0
1346 then ddp_loan_details.pay_in_arrears_boolean := false;
1347 else ddp_loan_details.pay_in_arrears_boolean := true;
1348 end if;
1349 ddp_loan_details.custom_schedule := p0_a32;
1350 ddp_loan_details.loan_status := p0_a33;
1351 ddp_loan_details.last_interest_accrual := p0_a34;
1352 ddp_loan_details.last_activity := p0_a35;
1353 ddp_loan_details.last_activity_date := p0_a36;
1354 ddp_loan_details.loan_currency := p0_a37;
1355 ddp_loan_details.currency_precision := p0_a38;
1356 ddp_loan_details.open_term := p0_a39;
1357 ddp_loan_details.open_term_period := p0_a40;
1358 ddp_loan_details.open_payment_frequency := p0_a41;
1359 ddp_loan_details.open_first_payment_date := p0_a42;
1360 ddp_loan_details.open_start_date := p0_a43;
1361 ddp_loan_details.open_maturity_date := p0_a44;
1362 ddp_loan_details.loan_phase := p0_a45;
1363 ddp_loan_details.balloon_payment_type := p0_a46;
1364 ddp_loan_details.balloon_payment_amount := p0_a47;
1365 ddp_loan_details.amortized_amount := p0_a48;
1366 ddp_loan_details.rate_type := p0_a49;
1367 ddp_loan_details.open_rate_chg_freq := p0_a50;
1368 ddp_loan_details.open_index_rate_id := p0_a51;
1369 ddp_loan_details.open_index_date := p0_a52;
1370 ddp_loan_details.open_ceiling_rate := p0_a53;
1371 ddp_loan_details.open_floor_rate := p0_a54;
1372 ddp_loan_details.open_first_percent_increase := p0_a55;
1373 ddp_loan_details.open_adj_percent_increase := p0_a56;
1374 ddp_loan_details.open_life_percent_increase := p0_a57;
1375 ddp_loan_details.term_rate_chg_freq := p0_a58;
1376 ddp_loan_details.term_index_rate_id := p0_a59;
1377 ddp_loan_details.term_index_date := p0_a60;
1378 ddp_loan_details.term_ceiling_rate := p0_a61;
1379 ddp_loan_details.term_floor_rate := p0_a62;
1380 ddp_loan_details.term_first_percent_increase := p0_a63;
1381 ddp_loan_details.term_adj_percent_increase := p0_a64;
1382 ddp_loan_details.term_life_percent_increase := p0_a65;
1383 ddp_loan_details.open_to_term_flag := p0_a66;
1384 ddp_loan_details.open_to_term_event := p0_a67;
1385 ddp_loan_details.multiple_funding_flag := p0_a68;
1386 ddp_loan_details.secondary_status := p0_a69;
1387 ddp_loan_details.open_projected_interest_rate := p0_a70;
1388 ddp_loan_details.term_projected_interest_rate := p0_a71;
1389 ddp_loan_details.initial_interest_rate := p0_a72;
1390 ddp_loan_details.last_interest_rate := p0_a73;
1391 ddp_loan_details.first_rate_change_date := p0_a74;
1392 ddp_loan_details.next_rate_change_date := p0_a75;
1393 ddp_loan_details.calculation_method := p0_a76;
1394 ddp_loan_details.interest_compounding_freq := p0_a77;
1395 ddp_loan_details.payment_calc_method := p0_a78;
1396 ddp_loan_details.orig_pay_calc_method := p0_a79;
1397 ddp_loan_details.prin_first_pay_date := p0_a80;
1398 ddp_loan_details.prin_payment_frequency := p0_a81;
1399 ddp_loan_details.prin_number_installments := p0_a82;
1400 ddp_loan_details.prin_amort_installments := p0_a83;
1401 ddp_loan_details.prin_pay_in_arrears := p0_a84;
1402 if p0_a85 is null
1403 then ddp_loan_details.prin_pay_in_arrears_bool := null;
1404 elsif p0_a85 = 0
1405 then ddp_loan_details.prin_pay_in_arrears_bool := false;
1406 else ddp_loan_details.prin_pay_in_arrears_bool := true;
1407 end if;
1408 ddp_loan_details.extend_from_installment := p0_a86;
1409 ddp_loan_details.orig_number_installments := p0_a87;
1410 ddp_loan_details.penal_int_rate := p0_a88;
1411 ddp_loan_details.penal_int_grace_days := p0_a89;
1412 ddp_loan_details.reamortize_on_funding := p0_a90;
1413 ddp_loan_details.add_requested_amount := p0_a91;
1414 ddp_loan_details.calc_add_int_unpaid_prin := p0_a92;
1415 ddp_loan_details.calc_add_int_unpaid_int := p0_a93;
1416 ddp_loan_details.capitalize_int := p0_a94;
1417 ddp_loan_details.fluctuate_eq_pay_amount := p0_a95;
1418
1419
1420
1421
1422
1423 -- here's the delegated call to the old PL/SQL routine
1424 lns_financials.validatepayoff(ddp_loan_details,
1425 p_payoff_date,
1426 x_return_status,
1427 x_msg_count,
1428 x_msg_data);
1429
1430 -- copy data back from the local variables to OUT or IN-OUT args, if any
1431
1432
1433
1434
1435 end;
1436
1437 procedure calculatepayoff(p_api_version NUMBER
1438 , p_init_msg_list VARCHAR2
1439 , p_loan_id NUMBER
1440 , p_payoff_date DATE
1441 , p4_a0 out nocopy JTF_VARCHAR2_TABLE_100
1442 , p4_a1 out nocopy JTF_NUMBER_TABLE
1443 , p4_a2 out nocopy JTF_NUMBER_TABLE
1444 , p4_a3 out nocopy JTF_NUMBER_TABLE
1445 , x_return_status out nocopy VARCHAR2
1446 , x_msg_count out nocopy NUMBER
1447 , x_msg_data out nocopy VARCHAR2
1448 )
1449
1450 as
1451 ddx_payoff_tbl lns_financials.payoff_tbl2;
1452 ddindx binary_integer; indx binary_integer;
1453 begin
1454
1455 -- copy data to the local IN or IN-OUT args, if any
1456
1457
1458
1459
1460
1461
1462
1463
1464 -- here's the delegated call to the old PL/SQL routine
1465 lns_financials.calculatepayoff(p_api_version,
1466 p_init_msg_list,
1467 p_loan_id,
1468 p_payoff_date,
1469 ddx_payoff_tbl,
1470 x_return_status,
1471 x_msg_count,
1472 x_msg_data);
1473
1474 -- copy data back from the local variables to OUT or IN-OUT args, if any
1475
1476
1477
1478
1479 lns_financials_w.rosetta_table_copy_out_p8(ddx_payoff_tbl, p4_a0
1480 , p4_a1
1481 , p4_a2
1482 , p4_a3
1483 );
1484
1485
1486
1487 end;
1488
1489 function getweightedrate(p0_a0 NUMBER
1490 , p0_a1 NUMBER
1491 , p0_a2 VARCHAR2
1492 , p0_a3 NUMBER
1493 , p0_a4 VARCHAR2
1494 , p0_a5 VARCHAR2
1495 , p0_a6 VARCHAR2
1496 , p0_a7 DATE
1497 , p0_a8 DATE
1498 , p0_a9 NUMBER
1499 , p0_a10 NUMBER
1500 , p0_a11 NUMBER
1501 , p0_a12 NUMBER
1502 , p0_a13 NUMBER
1503 , p0_a14 NUMBER
1504 , p0_a15 NUMBER
1505 , p0_a16 NUMBER
1506 , p0_a17 NUMBER
1507 , p0_a18 NUMBER
1508 , p0_a19 DATE
1509 , p0_a20 NUMBER
1510 , p0_a21 NUMBER
1511 , p0_a22 VARCHAR2
1512 , p0_a23 VARCHAR2
1513 , p0_a24 VARCHAR2
1514 , p0_a25 NUMBER
1515 , p0_a26 NUMBER
1516 , p0_a27 NUMBER
1517 , p0_a28 NUMBER
1518 , p0_a29 VARCHAR2
1519 , p0_a30 VARCHAR2
1520 , p0_a31 NUMBER
1521 , p0_a32 VARCHAR2
1522 , p0_a33 VARCHAR2
1523 , p0_a34 DATE
1524 , p0_a35 VARCHAR2
1525 , p0_a36 DATE
1526 , p0_a37 VARCHAR2
1527 , p0_a38 NUMBER
1528 , p0_a39 NUMBER
1529 , p0_a40 VARCHAR2
1530 , p0_a41 VARCHAR2
1531 , p0_a42 DATE
1532 , p0_a43 DATE
1533 , p0_a44 DATE
1534 , p0_a45 VARCHAR2
1535 , p0_a46 VARCHAR2
1536 , p0_a47 NUMBER
1537 , p0_a48 NUMBER
1538 , p0_a49 VARCHAR2
1539 , p0_a50 VARCHAR2
1540 , p0_a51 NUMBER
1541 , p0_a52 DATE
1542 , p0_a53 NUMBER
1543 , p0_a54 NUMBER
1544 , p0_a55 NUMBER
1545 , p0_a56 NUMBER
1546 , p0_a57 NUMBER
1547 , p0_a58 VARCHAR2
1548 , p0_a59 NUMBER
1549 , p0_a60 DATE
1550 , p0_a61 NUMBER
1551 , p0_a62 NUMBER
1552 , p0_a63 NUMBER
1553 , p0_a64 NUMBER
1554 , p0_a65 NUMBER
1555 , p0_a66 VARCHAR2
1556 , p0_a67 VARCHAR2
1557 , p0_a68 VARCHAR2
1558 , p0_a69 VARCHAR2
1559 , p0_a70 NUMBER
1560 , p0_a71 NUMBER
1561 , p0_a72 NUMBER
1562 , p0_a73 NUMBER
1563 , p0_a74 DATE
1564 , p0_a75 DATE
1565 , p0_a76 VARCHAR2
1566 , p0_a77 VARCHAR2
1567 , p0_a78 VARCHAR2
1568 , p0_a79 VARCHAR2
1569 , p0_a80 DATE
1570 , p0_a81 VARCHAR2
1571 , p0_a82 NUMBER
1572 , p0_a83 NUMBER
1573 , p0_a84 VARCHAR2
1574 , p0_a85 NUMBER
1575 , p0_a86 NUMBER
1576 , p0_a87 NUMBER
1577 , p0_a88 NUMBER
1578 , p0_a89 NUMBER
1579 , p0_a90 VARCHAR2
1580 , p0_a91 NUMBER
1581 , p0_a92 VARCHAR2
1582 , p0_a93 VARCHAR2
1583 , p0_a94 VARCHAR2
1584 , p0_a95 VARCHAR2
1585 , p_start_date DATE
1586 , p_end_date DATE
1587 , p3_a0 JTF_NUMBER_TABLE
1588 , p3_a1 JTF_DATE_TABLE
1589 , p3_a2 JTF_DATE_TABLE
1590 , p3_a3 JTF_NUMBER_TABLE
1591 , p3_a4 JTF_NUMBER_TABLE
1592 , p3_a5 JTF_NUMBER_TABLE
1593 , p3_a6 JTF_NUMBER_TABLE
1594 , p3_a7 JTF_VARCHAR2_TABLE_100
1595 , p3_a8 JTF_VARCHAR2_TABLE_100
1596 , p3_a9 JTF_VARCHAR2_TABLE_100
1597 ) return number
1598
1599 as
1600 ddp_loan_details lns_financials.loan_details_rec;
1601 ddp_rate_tbl lns_financials.rate_schedule_tbl;
1602 ddindx binary_integer; indx binary_integer;
1603 ddrosetta_retval number;
1604 begin
1605
1606 -- copy data to the local IN or IN-OUT args, if any
1607 ddp_loan_details.loan_id := p0_a0;
1608 ddp_loan_details.loan_term := p0_a1;
1609 ddp_loan_details.loan_term_period := p0_a2;
1610 ddp_loan_details.amortized_term := p0_a3;
1611 ddp_loan_details.amortized_term_period := p0_a4;
1612 ddp_loan_details.amortization_frequency := p0_a5;
1613 ddp_loan_details.payment_frequency := p0_a6;
1614 ddp_loan_details.first_payment_date := p0_a7;
1615 ddp_loan_details.loan_start_date := p0_a8;
1616 ddp_loan_details.requested_amount := p0_a9;
1617 ddp_loan_details.funded_amount := p0_a10;
1618 ddp_loan_details.remaining_balance := p0_a11;
1619 ddp_loan_details.principal_paid_to_date := p0_a12;
1620 ddp_loan_details.interest_paid_to_date := p0_a13;
1621 ddp_loan_details.fees_paid_to_date := p0_a14;
1622 ddp_loan_details.unpaid_principal := p0_a15;
1623 ddp_loan_details.unpaid_interest := p0_a16;
1624 ddp_loan_details.unbilled_principal := p0_a17;
1625 ddp_loan_details.billed_principal := p0_a18;
1626 ddp_loan_details.maturity_date := p0_a19;
1627 ddp_loan_details.number_installments := p0_a20;
1628 ddp_loan_details.num_amortization_intervals := p0_a21;
1629 ddp_loan_details.reamortize_overpay := p0_a22;
1630 ddp_loan_details.reamortize_underpay := p0_a23;
1631 ddp_loan_details.reamortize_with_interest := p0_a24;
1632 ddp_loan_details.reamortize_amount := p0_a25;
1633 ddp_loan_details.reamortize_from_installment := p0_a26;
1634 ddp_loan_details.reamortize_to_installment := p0_a27;
1635 ddp_loan_details.last_installment_billed := p0_a28;
1636 ddp_loan_details.day_count_method := p0_a29;
1637 ddp_loan_details.pay_in_arrears := p0_a30;
1638 if p0_a31 is null
1639 then ddp_loan_details.pay_in_arrears_boolean := null;
1640 elsif p0_a31 = 0
1641 then ddp_loan_details.pay_in_arrears_boolean := false;
1642 else ddp_loan_details.pay_in_arrears_boolean := true;
1643 end if;
1644 ddp_loan_details.custom_schedule := p0_a32;
1645 ddp_loan_details.loan_status := p0_a33;
1646 ddp_loan_details.last_interest_accrual := p0_a34;
1647 ddp_loan_details.last_activity := p0_a35;
1648 ddp_loan_details.last_activity_date := p0_a36;
1649 ddp_loan_details.loan_currency := p0_a37;
1650 ddp_loan_details.currency_precision := p0_a38;
1651 ddp_loan_details.open_term := p0_a39;
1652 ddp_loan_details.open_term_period := p0_a40;
1653 ddp_loan_details.open_payment_frequency := p0_a41;
1654 ddp_loan_details.open_first_payment_date := p0_a42;
1655 ddp_loan_details.open_start_date := p0_a43;
1656 ddp_loan_details.open_maturity_date := p0_a44;
1657 ddp_loan_details.loan_phase := p0_a45;
1658 ddp_loan_details.balloon_payment_type := p0_a46;
1659 ddp_loan_details.balloon_payment_amount := p0_a47;
1660 ddp_loan_details.amortized_amount := p0_a48;
1661 ddp_loan_details.rate_type := p0_a49;
1662 ddp_loan_details.open_rate_chg_freq := p0_a50;
1663 ddp_loan_details.open_index_rate_id := p0_a51;
1664 ddp_loan_details.open_index_date := p0_a52;
1665 ddp_loan_details.open_ceiling_rate := p0_a53;
1666 ddp_loan_details.open_floor_rate := p0_a54;
1667 ddp_loan_details.open_first_percent_increase := p0_a55;
1668 ddp_loan_details.open_adj_percent_increase := p0_a56;
1669 ddp_loan_details.open_life_percent_increase := p0_a57;
1670 ddp_loan_details.term_rate_chg_freq := p0_a58;
1671 ddp_loan_details.term_index_rate_id := p0_a59;
1672 ddp_loan_details.term_index_date := p0_a60;
1673 ddp_loan_details.term_ceiling_rate := p0_a61;
1674 ddp_loan_details.term_floor_rate := p0_a62;
1675 ddp_loan_details.term_first_percent_increase := p0_a63;
1676 ddp_loan_details.term_adj_percent_increase := p0_a64;
1677 ddp_loan_details.term_life_percent_increase := p0_a65;
1678 ddp_loan_details.open_to_term_flag := p0_a66;
1679 ddp_loan_details.open_to_term_event := p0_a67;
1680 ddp_loan_details.multiple_funding_flag := p0_a68;
1681 ddp_loan_details.secondary_status := p0_a69;
1682 ddp_loan_details.open_projected_interest_rate := p0_a70;
1683 ddp_loan_details.term_projected_interest_rate := p0_a71;
1684 ddp_loan_details.initial_interest_rate := p0_a72;
1685 ddp_loan_details.last_interest_rate := p0_a73;
1686 ddp_loan_details.first_rate_change_date := p0_a74;
1687 ddp_loan_details.next_rate_change_date := p0_a75;
1688 ddp_loan_details.calculation_method := p0_a76;
1689 ddp_loan_details.interest_compounding_freq := p0_a77;
1690 ddp_loan_details.payment_calc_method := p0_a78;
1691 ddp_loan_details.orig_pay_calc_method := p0_a79;
1692 ddp_loan_details.prin_first_pay_date := p0_a80;
1693 ddp_loan_details.prin_payment_frequency := p0_a81;
1694 ddp_loan_details.prin_number_installments := p0_a82;
1695 ddp_loan_details.prin_amort_installments := p0_a83;
1696 ddp_loan_details.prin_pay_in_arrears := p0_a84;
1697 if p0_a85 is null
1698 then ddp_loan_details.prin_pay_in_arrears_bool := null;
1699 elsif p0_a85 = 0
1700 then ddp_loan_details.prin_pay_in_arrears_bool := false;
1701 else ddp_loan_details.prin_pay_in_arrears_bool := true;
1702 end if;
1703 ddp_loan_details.extend_from_installment := p0_a86;
1704 ddp_loan_details.orig_number_installments := p0_a87;
1705 ddp_loan_details.penal_int_rate := p0_a88;
1706 ddp_loan_details.penal_int_grace_days := p0_a89;
1707 ddp_loan_details.reamortize_on_funding := p0_a90;
1708 ddp_loan_details.add_requested_amount := p0_a91;
1709 ddp_loan_details.calc_add_int_unpaid_prin := p0_a92;
1710 ddp_loan_details.calc_add_int_unpaid_int := p0_a93;
1711 ddp_loan_details.capitalize_int := p0_a94;
1712 ddp_loan_details.fluctuate_eq_pay_amount := p0_a95;
1713
1714
1715
1716 lns_financials_w.rosetta_table_copy_in_p1(ddp_rate_tbl, p3_a0
1717 , p3_a1
1718 , p3_a2
1719 , p3_a3
1720 , p3_a4
1721 , p3_a5
1722 , p3_a6
1723 , p3_a7
1724 , p3_a8
1725 , p3_a9
1726 );
1727
1728 -- here's the delegated call to the old PL/SQL routine
1729 ddrosetta_retval := lns_financials.getweightedrate(ddp_loan_details,
1730 p_start_date,
1731 p_end_date,
1732 ddp_rate_tbl);
1733
1734 -- copy data back from the local variables to OUT or IN-OUT args, if any
1735
1736
1737
1738
1739 return ddrosetta_retval;
1740 end;
1741
1742 procedure amortizeeploan(p0_a0 NUMBER
1743 , p0_a1 NUMBER
1744 , p0_a2 VARCHAR2
1745 , p0_a3 NUMBER
1746 , p0_a4 VARCHAR2
1747 , p0_a5 VARCHAR2
1748 , p0_a6 VARCHAR2
1749 , p0_a7 DATE
1750 , p0_a8 DATE
1751 , p0_a9 NUMBER
1752 , p0_a10 NUMBER
1753 , p0_a11 NUMBER
1754 , p0_a12 NUMBER
1755 , p0_a13 NUMBER
1756 , p0_a14 NUMBER
1757 , p0_a15 NUMBER
1758 , p0_a16 NUMBER
1759 , p0_a17 NUMBER
1760 , p0_a18 NUMBER
1761 , p0_a19 DATE
1762 , p0_a20 NUMBER
1763 , p0_a21 NUMBER
1764 , p0_a22 VARCHAR2
1765 , p0_a23 VARCHAR2
1766 , p0_a24 VARCHAR2
1767 , p0_a25 NUMBER
1768 , p0_a26 NUMBER
1769 , p0_a27 NUMBER
1770 , p0_a28 NUMBER
1771 , p0_a29 VARCHAR2
1772 , p0_a30 VARCHAR2
1773 , p0_a31 NUMBER
1774 , p0_a32 VARCHAR2
1775 , p0_a33 VARCHAR2
1776 , p0_a34 DATE
1777 , p0_a35 VARCHAR2
1778 , p0_a36 DATE
1779 , p0_a37 VARCHAR2
1780 , p0_a38 NUMBER
1781 , p0_a39 NUMBER
1782 , p0_a40 VARCHAR2
1783 , p0_a41 VARCHAR2
1784 , p0_a42 DATE
1785 , p0_a43 DATE
1786 , p0_a44 DATE
1787 , p0_a45 VARCHAR2
1788 , p0_a46 VARCHAR2
1789 , p0_a47 NUMBER
1790 , p0_a48 NUMBER
1791 , p0_a49 VARCHAR2
1792 , p0_a50 VARCHAR2
1793 , p0_a51 NUMBER
1794 , p0_a52 DATE
1795 , p0_a53 NUMBER
1796 , p0_a54 NUMBER
1797 , p0_a55 NUMBER
1798 , p0_a56 NUMBER
1799 , p0_a57 NUMBER
1800 , p0_a58 VARCHAR2
1801 , p0_a59 NUMBER
1802 , p0_a60 DATE
1803 , p0_a61 NUMBER
1804 , p0_a62 NUMBER
1805 , p0_a63 NUMBER
1806 , p0_a64 NUMBER
1807 , p0_a65 NUMBER
1808 , p0_a66 VARCHAR2
1809 , p0_a67 VARCHAR2
1810 , p0_a68 VARCHAR2
1811 , p0_a69 VARCHAR2
1812 , p0_a70 NUMBER
1813 , p0_a71 NUMBER
1814 , p0_a72 NUMBER
1815 , p0_a73 NUMBER
1816 , p0_a74 DATE
1817 , p0_a75 DATE
1818 , p0_a76 VARCHAR2
1819 , p0_a77 VARCHAR2
1820 , p0_a78 VARCHAR2
1821 , p0_a79 VARCHAR2
1822 , p0_a80 DATE
1823 , p0_a81 VARCHAR2
1824 , p0_a82 NUMBER
1825 , p0_a83 NUMBER
1826 , p0_a84 VARCHAR2
1827 , p0_a85 NUMBER
1828 , p0_a86 NUMBER
1829 , p0_a87 NUMBER
1830 , p0_a88 NUMBER
1831 , p0_a89 NUMBER
1832 , p0_a90 VARCHAR2
1833 , p0_a91 NUMBER
1834 , p0_a92 VARCHAR2
1835 , p0_a93 VARCHAR2
1836 , p0_a94 VARCHAR2
1837 , p0_a95 VARCHAR2
1838 , p1_a0 JTF_NUMBER_TABLE
1839 , p1_a1 JTF_DATE_TABLE
1840 , p1_a2 JTF_DATE_TABLE
1841 , p1_a3 JTF_NUMBER_TABLE
1842 , p1_a4 JTF_NUMBER_TABLE
1843 , p1_a5 JTF_NUMBER_TABLE
1844 , p1_a6 JTF_NUMBER_TABLE
1845 , p1_a7 JTF_VARCHAR2_TABLE_100
1846 , p1_a8 JTF_VARCHAR2_TABLE_100
1847 , p1_a9 JTF_VARCHAR2_TABLE_100
1848 , p_based_on_terms VARCHAR2
1849 , p_installment_number NUMBER
1850 , p4_a0 out nocopy JTF_NUMBER_TABLE
1851 , p4_a1 out nocopy JTF_DATE_TABLE
1852 , p4_a2 out nocopy JTF_DATE_TABLE
1853 , p4_a3 out nocopy JTF_DATE_TABLE
1854 , p4_a4 out nocopy JTF_NUMBER_TABLE
1855 , p4_a5 out nocopy JTF_NUMBER_TABLE
1856 , p4_a6 out nocopy JTF_NUMBER_TABLE
1857 , p4_a7 out nocopy JTF_NUMBER_TABLE
1858 , p4_a8 out nocopy JTF_NUMBER_TABLE
1859 , p4_a9 out nocopy JTF_NUMBER_TABLE
1860 , p4_a10 out nocopy JTF_NUMBER_TABLE
1861 , p4_a11 out nocopy JTF_NUMBER_TABLE
1862 , p4_a12 out nocopy JTF_NUMBER_TABLE
1863 , p4_a13 out nocopy JTF_NUMBER_TABLE
1864 , p4_a14 out nocopy JTF_NUMBER_TABLE
1865 , p4_a15 out nocopy JTF_NUMBER_TABLE
1866 , p4_a16 out nocopy JTF_NUMBER_TABLE
1867 , p4_a17 out nocopy JTF_NUMBER_TABLE
1868 , p4_a18 out nocopy JTF_NUMBER_TABLE
1869 , p4_a19 out nocopy JTF_NUMBER_TABLE
1870 , p4_a20 out nocopy JTF_NUMBER_TABLE
1871 , p4_a21 out nocopy JTF_VARCHAR2_TABLE_100
1872 , p4_a22 out nocopy JTF_VARCHAR2_TABLE_100
1873 , p4_a23 out nocopy JTF_VARCHAR2_TABLE_100
1874 , p4_a24 out nocopy JTF_NUMBER_TABLE
1875 , p4_a25 out nocopy JTF_NUMBER_TABLE
1876 , p4_a26 out nocopy JTF_NUMBER_TABLE
1877 , p4_a27 out nocopy JTF_NUMBER_TABLE
1878 , p4_a28 out nocopy JTF_VARCHAR2_TABLE_2000
1879 , p4_a29 out nocopy JTF_VARCHAR2_TABLE_2000
1880 , p4_a30 out nocopy JTF_VARCHAR2_TABLE_2000
1881 , p4_a31 out nocopy JTF_VARCHAR2_TABLE_2000
1882 , p4_a32 out nocopy JTF_NUMBER_TABLE
1883 , p4_a33 out nocopy JTF_VARCHAR2_TABLE_200
1884 , p4_a34 out nocopy JTF_NUMBER_TABLE
1885 , p4_a35 out nocopy JTF_NUMBER_TABLE
1886 , p4_a36 out nocopy JTF_VARCHAR2_TABLE_2000
1887 , p4_a37 out nocopy JTF_NUMBER_TABLE
1888 , p4_a38 out nocopy JTF_NUMBER_TABLE
1889 , p4_a39 out nocopy JTF_NUMBER_TABLE
1890 , p4_a40 out nocopy JTF_VARCHAR2_TABLE_2000
1891 , p4_a41 out nocopy JTF_NUMBER_TABLE
1892 , p4_a42 out nocopy JTF_VARCHAR2_TABLE_2000
1893 )
1894
1895 as
1896 ddp_loan_details lns_financials.loan_details_rec;
1897 ddp_rate_schedule lns_financials.rate_schedule_tbl;
1898 ddx_loan_amort_tbl lns_financials.amortization_tbl;
1899 ddindx binary_integer; indx binary_integer;
1900 begin
1901
1902 -- copy data to the local IN or IN-OUT args, if any
1903 ddp_loan_details.loan_id := p0_a0;
1904 ddp_loan_details.loan_term := p0_a1;
1905 ddp_loan_details.loan_term_period := p0_a2;
1906 ddp_loan_details.amortized_term := p0_a3;
1907 ddp_loan_details.amortized_term_period := p0_a4;
1908 ddp_loan_details.amortization_frequency := p0_a5;
1909 ddp_loan_details.payment_frequency := p0_a6;
1910 ddp_loan_details.first_payment_date := p0_a7;
1911 ddp_loan_details.loan_start_date := p0_a8;
1912 ddp_loan_details.requested_amount := p0_a9;
1913 ddp_loan_details.funded_amount := p0_a10;
1914 ddp_loan_details.remaining_balance := p0_a11;
1915 ddp_loan_details.principal_paid_to_date := p0_a12;
1916 ddp_loan_details.interest_paid_to_date := p0_a13;
1917 ddp_loan_details.fees_paid_to_date := p0_a14;
1918 ddp_loan_details.unpaid_principal := p0_a15;
1919 ddp_loan_details.unpaid_interest := p0_a16;
1920 ddp_loan_details.unbilled_principal := p0_a17;
1921 ddp_loan_details.billed_principal := p0_a18;
1922 ddp_loan_details.maturity_date := p0_a19;
1923 ddp_loan_details.number_installments := p0_a20;
1924 ddp_loan_details.num_amortization_intervals := p0_a21;
1925 ddp_loan_details.reamortize_overpay := p0_a22;
1926 ddp_loan_details.reamortize_underpay := p0_a23;
1927 ddp_loan_details.reamortize_with_interest := p0_a24;
1928 ddp_loan_details.reamortize_amount := p0_a25;
1929 ddp_loan_details.reamortize_from_installment := p0_a26;
1930 ddp_loan_details.reamortize_to_installment := p0_a27;
1931 ddp_loan_details.last_installment_billed := p0_a28;
1932 ddp_loan_details.day_count_method := p0_a29;
1933 ddp_loan_details.pay_in_arrears := p0_a30;
1934 if p0_a31 is null
1935 then ddp_loan_details.pay_in_arrears_boolean := null;
1936 elsif p0_a31 = 0
1937 then ddp_loan_details.pay_in_arrears_boolean := false;
1938 else ddp_loan_details.pay_in_arrears_boolean := true;
1939 end if;
1940 ddp_loan_details.custom_schedule := p0_a32;
1941 ddp_loan_details.loan_status := p0_a33;
1942 ddp_loan_details.last_interest_accrual := p0_a34;
1943 ddp_loan_details.last_activity := p0_a35;
1944 ddp_loan_details.last_activity_date := p0_a36;
1945 ddp_loan_details.loan_currency := p0_a37;
1946 ddp_loan_details.currency_precision := p0_a38;
1947 ddp_loan_details.open_term := p0_a39;
1948 ddp_loan_details.open_term_period := p0_a40;
1949 ddp_loan_details.open_payment_frequency := p0_a41;
1950 ddp_loan_details.open_first_payment_date := p0_a42;
1951 ddp_loan_details.open_start_date := p0_a43;
1952 ddp_loan_details.open_maturity_date := p0_a44;
1953 ddp_loan_details.loan_phase := p0_a45;
1954 ddp_loan_details.balloon_payment_type := p0_a46;
1955 ddp_loan_details.balloon_payment_amount := p0_a47;
1956 ddp_loan_details.amortized_amount := p0_a48;
1957 ddp_loan_details.rate_type := p0_a49;
1958 ddp_loan_details.open_rate_chg_freq := p0_a50;
1959 ddp_loan_details.open_index_rate_id := p0_a51;
1960 ddp_loan_details.open_index_date := p0_a52;
1961 ddp_loan_details.open_ceiling_rate := p0_a53;
1962 ddp_loan_details.open_floor_rate := p0_a54;
1963 ddp_loan_details.open_first_percent_increase := p0_a55;
1964 ddp_loan_details.open_adj_percent_increase := p0_a56;
1965 ddp_loan_details.open_life_percent_increase := p0_a57;
1966 ddp_loan_details.term_rate_chg_freq := p0_a58;
1967 ddp_loan_details.term_index_rate_id := p0_a59;
1968 ddp_loan_details.term_index_date := p0_a60;
1969 ddp_loan_details.term_ceiling_rate := p0_a61;
1970 ddp_loan_details.term_floor_rate := p0_a62;
1971 ddp_loan_details.term_first_percent_increase := p0_a63;
1972 ddp_loan_details.term_adj_percent_increase := p0_a64;
1973 ddp_loan_details.term_life_percent_increase := p0_a65;
1974 ddp_loan_details.open_to_term_flag := p0_a66;
1975 ddp_loan_details.open_to_term_event := p0_a67;
1976 ddp_loan_details.multiple_funding_flag := p0_a68;
1977 ddp_loan_details.secondary_status := p0_a69;
1978 ddp_loan_details.open_projected_interest_rate := p0_a70;
1979 ddp_loan_details.term_projected_interest_rate := p0_a71;
1980 ddp_loan_details.initial_interest_rate := p0_a72;
1981 ddp_loan_details.last_interest_rate := p0_a73;
1982 ddp_loan_details.first_rate_change_date := p0_a74;
1983 ddp_loan_details.next_rate_change_date := p0_a75;
1984 ddp_loan_details.calculation_method := p0_a76;
1985 ddp_loan_details.interest_compounding_freq := p0_a77;
1986 ddp_loan_details.payment_calc_method := p0_a78;
1987 ddp_loan_details.orig_pay_calc_method := p0_a79;
1988 ddp_loan_details.prin_first_pay_date := p0_a80;
1989 ddp_loan_details.prin_payment_frequency := p0_a81;
1990 ddp_loan_details.prin_number_installments := p0_a82;
1991 ddp_loan_details.prin_amort_installments := p0_a83;
1992 ddp_loan_details.prin_pay_in_arrears := p0_a84;
1993 if p0_a85 is null
1994 then ddp_loan_details.prin_pay_in_arrears_bool := null;
1995 elsif p0_a85 = 0
1996 then ddp_loan_details.prin_pay_in_arrears_bool := false;
1997 else ddp_loan_details.prin_pay_in_arrears_bool := true;
1998 end if;
1999 ddp_loan_details.extend_from_installment := p0_a86;
2000 ddp_loan_details.orig_number_installments := p0_a87;
2001 ddp_loan_details.penal_int_rate := p0_a88;
2002 ddp_loan_details.penal_int_grace_days := p0_a89;
2003 ddp_loan_details.reamortize_on_funding := p0_a90;
2004 ddp_loan_details.add_requested_amount := p0_a91;
2005 ddp_loan_details.calc_add_int_unpaid_prin := p0_a92;
2006 ddp_loan_details.calc_add_int_unpaid_int := p0_a93;
2007 ddp_loan_details.capitalize_int := p0_a94;
2008 ddp_loan_details.fluctuate_eq_pay_amount := p0_a95;
2009
2010 lns_financials_w.rosetta_table_copy_in_p1(ddp_rate_schedule, p1_a0
2011 , p1_a1
2012 , p1_a2
2013 , p1_a3
2014 , p1_a4
2015 , p1_a5
2016 , p1_a6
2017 , p1_a7
2018 , p1_a8
2019 , p1_a9
2020 );
2021
2022
2023
2024
2025 -- here's the delegated call to the old PL/SQL routine
2026 lns_financials.amortizeeploan(ddp_loan_details,
2027 ddp_rate_schedule,
2028 p_based_on_terms,
2029 p_installment_number,
2030 ddx_loan_amort_tbl);
2031
2032 -- copy data back from the local variables to OUT or IN-OUT args, if any
2033
2034
2035
2036
2037 lns_financials_w.rosetta_table_copy_out_p3(ddx_loan_amort_tbl, p4_a0
2038 , p4_a1
2039 , p4_a2
2040 , p4_a3
2041 , p4_a4
2042 , p4_a5
2043 , p4_a6
2044 , p4_a7
2045 , p4_a8
2046 , p4_a9
2047 , p4_a10
2048 , p4_a11
2049 , p4_a12
2050 , p4_a13
2051 , p4_a14
2052 , p4_a15
2053 , p4_a16
2054 , p4_a17
2055 , p4_a18
2056 , p4_a19
2057 , p4_a20
2058 , p4_a21
2059 , p4_a22
2060 , p4_a23
2061 , p4_a24
2062 , p4_a25
2063 , p4_a26
2064 , p4_a27
2065 , p4_a28
2066 , p4_a29
2067 , p4_a30
2068 , p4_a31
2069 , p4_a32
2070 , p4_a33
2071 , p4_a34
2072 , p4_a35
2073 , p4_a36
2074 , p4_a37
2075 , p4_a38
2076 , p4_a39
2077 , p4_a40
2078 , p4_a41
2079 , p4_a42
2080 );
2081 end;
2082
2083 procedure amortizeloan(p0_a0 NUMBER
2084 , p0_a1 NUMBER
2085 , p0_a2 VARCHAR2
2086 , p0_a3 NUMBER
2087 , p0_a4 VARCHAR2
2088 , p0_a5 VARCHAR2
2089 , p0_a6 VARCHAR2
2090 , p0_a7 DATE
2091 , p0_a8 DATE
2092 , p0_a9 NUMBER
2093 , p0_a10 NUMBER
2094 , p0_a11 NUMBER
2095 , p0_a12 NUMBER
2096 , p0_a13 NUMBER
2097 , p0_a14 NUMBER
2098 , p0_a15 NUMBER
2099 , p0_a16 NUMBER
2100 , p0_a17 NUMBER
2101 , p0_a18 NUMBER
2102 , p0_a19 DATE
2103 , p0_a20 NUMBER
2104 , p0_a21 NUMBER
2105 , p0_a22 VARCHAR2
2106 , p0_a23 VARCHAR2
2107 , p0_a24 VARCHAR2
2108 , p0_a25 NUMBER
2109 , p0_a26 NUMBER
2110 , p0_a27 NUMBER
2111 , p0_a28 NUMBER
2112 , p0_a29 VARCHAR2
2113 , p0_a30 VARCHAR2
2114 , p0_a31 NUMBER
2115 , p0_a32 VARCHAR2
2116 , p0_a33 VARCHAR2
2117 , p0_a34 DATE
2118 , p0_a35 VARCHAR2
2119 , p0_a36 DATE
2120 , p0_a37 VARCHAR2
2121 , p0_a38 NUMBER
2122 , p0_a39 NUMBER
2123 , p0_a40 VARCHAR2
2124 , p0_a41 VARCHAR2
2125 , p0_a42 DATE
2126 , p0_a43 DATE
2127 , p0_a44 DATE
2128 , p0_a45 VARCHAR2
2129 , p0_a46 VARCHAR2
2130 , p0_a47 NUMBER
2131 , p0_a48 NUMBER
2132 , p0_a49 VARCHAR2
2133 , p0_a50 VARCHAR2
2134 , p0_a51 NUMBER
2135 , p0_a52 DATE
2136 , p0_a53 NUMBER
2137 , p0_a54 NUMBER
2138 , p0_a55 NUMBER
2139 , p0_a56 NUMBER
2140 , p0_a57 NUMBER
2141 , p0_a58 VARCHAR2
2142 , p0_a59 NUMBER
2143 , p0_a60 DATE
2144 , p0_a61 NUMBER
2145 , p0_a62 NUMBER
2146 , p0_a63 NUMBER
2147 , p0_a64 NUMBER
2148 , p0_a65 NUMBER
2149 , p0_a66 VARCHAR2
2150 , p0_a67 VARCHAR2
2151 , p0_a68 VARCHAR2
2152 , p0_a69 VARCHAR2
2153 , p0_a70 NUMBER
2154 , p0_a71 NUMBER
2155 , p0_a72 NUMBER
2156 , p0_a73 NUMBER
2157 , p0_a74 DATE
2158 , p0_a75 DATE
2159 , p0_a76 VARCHAR2
2160 , p0_a77 VARCHAR2
2161 , p0_a78 VARCHAR2
2162 , p0_a79 VARCHAR2
2163 , p0_a80 DATE
2164 , p0_a81 VARCHAR2
2165 , p0_a82 NUMBER
2166 , p0_a83 NUMBER
2167 , p0_a84 VARCHAR2
2168 , p0_a85 NUMBER
2169 , p0_a86 NUMBER
2170 , p0_a87 NUMBER
2171 , p0_a88 NUMBER
2172 , p0_a89 NUMBER
2173 , p0_a90 VARCHAR2
2174 , p0_a91 NUMBER
2175 , p0_a92 VARCHAR2
2176 , p0_a93 VARCHAR2
2177 , p0_a94 VARCHAR2
2178 , p0_a95 VARCHAR2
2179 , p1_a0 JTF_NUMBER_TABLE
2180 , p1_a1 JTF_DATE_TABLE
2181 , p1_a2 JTF_DATE_TABLE
2182 , p1_a3 JTF_NUMBER_TABLE
2183 , p1_a4 JTF_NUMBER_TABLE
2184 , p1_a5 JTF_NUMBER_TABLE
2185 , p1_a6 JTF_NUMBER_TABLE
2186 , p1_a7 JTF_VARCHAR2_TABLE_100
2187 , p1_a8 JTF_VARCHAR2_TABLE_100
2188 , p1_a9 JTF_VARCHAR2_TABLE_100
2189 , p_based_on_terms VARCHAR2
2190 , p_installment_number NUMBER
2191 , p4_a0 out nocopy JTF_NUMBER_TABLE
2192 , p4_a1 out nocopy JTF_DATE_TABLE
2193 , p4_a2 out nocopy JTF_DATE_TABLE
2194 , p4_a3 out nocopy JTF_DATE_TABLE
2195 , p4_a4 out nocopy JTF_NUMBER_TABLE
2196 , p4_a5 out nocopy JTF_NUMBER_TABLE
2197 , p4_a6 out nocopy JTF_NUMBER_TABLE
2198 , p4_a7 out nocopy JTF_NUMBER_TABLE
2199 , p4_a8 out nocopy JTF_NUMBER_TABLE
2200 , p4_a9 out nocopy JTF_NUMBER_TABLE
2201 , p4_a10 out nocopy JTF_NUMBER_TABLE
2202 , p4_a11 out nocopy JTF_NUMBER_TABLE
2203 , p4_a12 out nocopy JTF_NUMBER_TABLE
2204 , p4_a13 out nocopy JTF_NUMBER_TABLE
2205 , p4_a14 out nocopy JTF_NUMBER_TABLE
2206 , p4_a15 out nocopy JTF_NUMBER_TABLE
2207 , p4_a16 out nocopy JTF_NUMBER_TABLE
2208 , p4_a17 out nocopy JTF_NUMBER_TABLE
2209 , p4_a18 out nocopy JTF_NUMBER_TABLE
2210 , p4_a19 out nocopy JTF_NUMBER_TABLE
2211 , p4_a20 out nocopy JTF_NUMBER_TABLE
2212 , p4_a21 out nocopy JTF_VARCHAR2_TABLE_100
2213 , p4_a22 out nocopy JTF_VARCHAR2_TABLE_100
2214 , p4_a23 out nocopy JTF_VARCHAR2_TABLE_100
2215 , p4_a24 out nocopy JTF_NUMBER_TABLE
2216 , p4_a25 out nocopy JTF_NUMBER_TABLE
2217 , p4_a26 out nocopy JTF_NUMBER_TABLE
2218 , p4_a27 out nocopy JTF_NUMBER_TABLE
2219 , p4_a28 out nocopy JTF_VARCHAR2_TABLE_2000
2220 , p4_a29 out nocopy JTF_VARCHAR2_TABLE_2000
2221 , p4_a30 out nocopy JTF_VARCHAR2_TABLE_2000
2222 , p4_a31 out nocopy JTF_VARCHAR2_TABLE_2000
2223 , p4_a32 out nocopy JTF_NUMBER_TABLE
2224 , p4_a33 out nocopy JTF_VARCHAR2_TABLE_200
2225 , p4_a34 out nocopy JTF_NUMBER_TABLE
2226 , p4_a35 out nocopy JTF_NUMBER_TABLE
2227 , p4_a36 out nocopy JTF_VARCHAR2_TABLE_2000
2228 , p4_a37 out nocopy JTF_NUMBER_TABLE
2229 , p4_a38 out nocopy JTF_NUMBER_TABLE
2230 , p4_a39 out nocopy JTF_NUMBER_TABLE
2231 , p4_a40 out nocopy JTF_VARCHAR2_TABLE_2000
2232 , p4_a41 out nocopy JTF_NUMBER_TABLE
2233 , p4_a42 out nocopy JTF_VARCHAR2_TABLE_2000
2234 )
2235
2236 as
2237 ddp_loan_details lns_financials.loan_details_rec;
2238 ddp_rate_schedule lns_financials.rate_schedule_tbl;
2239 ddx_loan_amort_tbl lns_financials.amortization_tbl;
2240 ddindx binary_integer; indx binary_integer;
2241 begin
2242
2243 -- copy data to the local IN or IN-OUT args, if any
2244 ddp_loan_details.loan_id := p0_a0;
2245 ddp_loan_details.loan_term := p0_a1;
2246 ddp_loan_details.loan_term_period := p0_a2;
2247 ddp_loan_details.amortized_term := p0_a3;
2248 ddp_loan_details.amortized_term_period := p0_a4;
2249 ddp_loan_details.amortization_frequency := p0_a5;
2250 ddp_loan_details.payment_frequency := p0_a6;
2251 ddp_loan_details.first_payment_date := p0_a7;
2252 ddp_loan_details.loan_start_date := p0_a8;
2253 ddp_loan_details.requested_amount := p0_a9;
2254 ddp_loan_details.funded_amount := p0_a10;
2255 ddp_loan_details.remaining_balance := p0_a11;
2256 ddp_loan_details.principal_paid_to_date := p0_a12;
2257 ddp_loan_details.interest_paid_to_date := p0_a13;
2258 ddp_loan_details.fees_paid_to_date := p0_a14;
2259 ddp_loan_details.unpaid_principal := p0_a15;
2260 ddp_loan_details.unpaid_interest := p0_a16;
2261 ddp_loan_details.unbilled_principal := p0_a17;
2262 ddp_loan_details.billed_principal := p0_a18;
2263 ddp_loan_details.maturity_date := p0_a19;
2264 ddp_loan_details.number_installments := p0_a20;
2265 ddp_loan_details.num_amortization_intervals := p0_a21;
2266 ddp_loan_details.reamortize_overpay := p0_a22;
2267 ddp_loan_details.reamortize_underpay := p0_a23;
2268 ddp_loan_details.reamortize_with_interest := p0_a24;
2269 ddp_loan_details.reamortize_amount := p0_a25;
2270 ddp_loan_details.reamortize_from_installment := p0_a26;
2271 ddp_loan_details.reamortize_to_installment := p0_a27;
2272 ddp_loan_details.last_installment_billed := p0_a28;
2273 ddp_loan_details.day_count_method := p0_a29;
2274 ddp_loan_details.pay_in_arrears := p0_a30;
2275 if p0_a31 is null
2276 then ddp_loan_details.pay_in_arrears_boolean := null;
2277 elsif p0_a31 = 0
2278 then ddp_loan_details.pay_in_arrears_boolean := false;
2279 else ddp_loan_details.pay_in_arrears_boolean := true;
2280 end if;
2281 ddp_loan_details.custom_schedule := p0_a32;
2282 ddp_loan_details.loan_status := p0_a33;
2283 ddp_loan_details.last_interest_accrual := p0_a34;
2284 ddp_loan_details.last_activity := p0_a35;
2285 ddp_loan_details.last_activity_date := p0_a36;
2286 ddp_loan_details.loan_currency := p0_a37;
2287 ddp_loan_details.currency_precision := p0_a38;
2288 ddp_loan_details.open_term := p0_a39;
2289 ddp_loan_details.open_term_period := p0_a40;
2290 ddp_loan_details.open_payment_frequency := p0_a41;
2291 ddp_loan_details.open_first_payment_date := p0_a42;
2292 ddp_loan_details.open_start_date := p0_a43;
2293 ddp_loan_details.open_maturity_date := p0_a44;
2294 ddp_loan_details.loan_phase := p0_a45;
2295 ddp_loan_details.balloon_payment_type := p0_a46;
2296 ddp_loan_details.balloon_payment_amount := p0_a47;
2297 ddp_loan_details.amortized_amount := p0_a48;
2298 ddp_loan_details.rate_type := p0_a49;
2299 ddp_loan_details.open_rate_chg_freq := p0_a50;
2300 ddp_loan_details.open_index_rate_id := p0_a51;
2301 ddp_loan_details.open_index_date := p0_a52;
2302 ddp_loan_details.open_ceiling_rate := p0_a53;
2303 ddp_loan_details.open_floor_rate := p0_a54;
2304 ddp_loan_details.open_first_percent_increase := p0_a55;
2305 ddp_loan_details.open_adj_percent_increase := p0_a56;
2306 ddp_loan_details.open_life_percent_increase := p0_a57;
2307 ddp_loan_details.term_rate_chg_freq := p0_a58;
2308 ddp_loan_details.term_index_rate_id := p0_a59;
2309 ddp_loan_details.term_index_date := p0_a60;
2310 ddp_loan_details.term_ceiling_rate := p0_a61;
2311 ddp_loan_details.term_floor_rate := p0_a62;
2312 ddp_loan_details.term_first_percent_increase := p0_a63;
2313 ddp_loan_details.term_adj_percent_increase := p0_a64;
2314 ddp_loan_details.term_life_percent_increase := p0_a65;
2315 ddp_loan_details.open_to_term_flag := p0_a66;
2316 ddp_loan_details.open_to_term_event := p0_a67;
2317 ddp_loan_details.multiple_funding_flag := p0_a68;
2318 ddp_loan_details.secondary_status := p0_a69;
2319 ddp_loan_details.open_projected_interest_rate := p0_a70;
2320 ddp_loan_details.term_projected_interest_rate := p0_a71;
2321 ddp_loan_details.initial_interest_rate := p0_a72;
2322 ddp_loan_details.last_interest_rate := p0_a73;
2323 ddp_loan_details.first_rate_change_date := p0_a74;
2324 ddp_loan_details.next_rate_change_date := p0_a75;
2325 ddp_loan_details.calculation_method := p0_a76;
2326 ddp_loan_details.interest_compounding_freq := p0_a77;
2327 ddp_loan_details.payment_calc_method := p0_a78;
2328 ddp_loan_details.orig_pay_calc_method := p0_a79;
2329 ddp_loan_details.prin_first_pay_date := p0_a80;
2330 ddp_loan_details.prin_payment_frequency := p0_a81;
2331 ddp_loan_details.prin_number_installments := p0_a82;
2332 ddp_loan_details.prin_amort_installments := p0_a83;
2333 ddp_loan_details.prin_pay_in_arrears := p0_a84;
2334 if p0_a85 is null
2335 then ddp_loan_details.prin_pay_in_arrears_bool := null;
2336 elsif p0_a85 = 0
2337 then ddp_loan_details.prin_pay_in_arrears_bool := false;
2338 else ddp_loan_details.prin_pay_in_arrears_bool := true;
2339 end if;
2340 ddp_loan_details.extend_from_installment := p0_a86;
2341 ddp_loan_details.orig_number_installments := p0_a87;
2342 ddp_loan_details.penal_int_rate := p0_a88;
2343 ddp_loan_details.penal_int_grace_days := p0_a89;
2344 ddp_loan_details.reamortize_on_funding := p0_a90;
2345 ddp_loan_details.add_requested_amount := p0_a91;
2346 ddp_loan_details.calc_add_int_unpaid_prin := p0_a92;
2347 ddp_loan_details.calc_add_int_unpaid_int := p0_a93;
2348 ddp_loan_details.capitalize_int := p0_a94;
2349 ddp_loan_details.fluctuate_eq_pay_amount := p0_a95;
2350
2351 lns_financials_w.rosetta_table_copy_in_p1(ddp_rate_schedule, p1_a0
2352 , p1_a1
2353 , p1_a2
2354 , p1_a3
2355 , p1_a4
2356 , p1_a5
2357 , p1_a6
2358 , p1_a7
2359 , p1_a8
2360 , p1_a9
2361 );
2362
2363
2364
2365
2366 -- here's the delegated call to the old PL/SQL routine
2367 lns_financials.amortizeloan(ddp_loan_details,
2368 ddp_rate_schedule,
2369 p_based_on_terms,
2370 p_installment_number,
2371 ddx_loan_amort_tbl);
2372
2373 -- copy data back from the local variables to OUT or IN-OUT args, if any
2374
2375
2376
2377
2378 lns_financials_w.rosetta_table_copy_out_p3(ddx_loan_amort_tbl, p4_a0
2379 , p4_a1
2380 , p4_a2
2381 , p4_a3
2382 , p4_a4
2383 , p4_a5
2384 , p4_a6
2385 , p4_a7
2386 , p4_a8
2387 , p4_a9
2388 , p4_a10
2389 , p4_a11
2390 , p4_a12
2391 , p4_a13
2392 , p4_a14
2393 , p4_a15
2394 , p4_a16
2395 , p4_a17
2396 , p4_a18
2397 , p4_a19
2398 , p4_a20
2399 , p4_a21
2400 , p4_a22
2401 , p4_a23
2402 , p4_a24
2403 , p4_a25
2404 , p4_a26
2405 , p4_a27
2406 , p4_a28
2407 , p4_a29
2408 , p4_a30
2409 , p4_a31
2410 , p4_a32
2411 , p4_a33
2412 , p4_a34
2413 , p4_a35
2414 , p4_a36
2415 , p4_a37
2416 , p4_a38
2417 , p4_a39
2418 , p4_a40
2419 , p4_a41
2420 , p4_a42
2421 );
2422 end;
2423
2424 procedure amortizeloan(p_loan_id NUMBER
2425 , p_based_on_terms VARCHAR2
2426 , p_installment_number NUMBER
2427 , p3_a0 out nocopy JTF_NUMBER_TABLE
2428 , p3_a1 out nocopy JTF_DATE_TABLE
2429 , p3_a2 out nocopy JTF_DATE_TABLE
2430 , p3_a3 out nocopy JTF_DATE_TABLE
2431 , p3_a4 out nocopy JTF_NUMBER_TABLE
2432 , p3_a5 out nocopy JTF_NUMBER_TABLE
2433 , p3_a6 out nocopy JTF_NUMBER_TABLE
2434 , p3_a7 out nocopy JTF_NUMBER_TABLE
2435 , p3_a8 out nocopy JTF_NUMBER_TABLE
2436 , p3_a9 out nocopy JTF_NUMBER_TABLE
2437 , p3_a10 out nocopy JTF_NUMBER_TABLE
2438 , p3_a11 out nocopy JTF_NUMBER_TABLE
2439 , p3_a12 out nocopy JTF_NUMBER_TABLE
2440 , p3_a13 out nocopy JTF_NUMBER_TABLE
2441 , p3_a14 out nocopy JTF_NUMBER_TABLE
2442 , p3_a15 out nocopy JTF_NUMBER_TABLE
2443 , p3_a16 out nocopy JTF_NUMBER_TABLE
2444 , p3_a17 out nocopy JTF_NUMBER_TABLE
2445 , p3_a18 out nocopy JTF_NUMBER_TABLE
2446 , p3_a19 out nocopy JTF_NUMBER_TABLE
2447 , p3_a20 out nocopy JTF_NUMBER_TABLE
2448 , p3_a21 out nocopy JTF_VARCHAR2_TABLE_100
2449 , p3_a22 out nocopy JTF_VARCHAR2_TABLE_100
2450 , p3_a23 out nocopy JTF_VARCHAR2_TABLE_100
2451 , p3_a24 out nocopy JTF_NUMBER_TABLE
2452 , p3_a25 out nocopy JTF_NUMBER_TABLE
2453 , p3_a26 out nocopy JTF_NUMBER_TABLE
2454 , p3_a27 out nocopy JTF_NUMBER_TABLE
2455 , p3_a28 out nocopy JTF_VARCHAR2_TABLE_2000
2456 , p3_a29 out nocopy JTF_VARCHAR2_TABLE_2000
2457 , p3_a30 out nocopy JTF_VARCHAR2_TABLE_2000
2458 , p3_a31 out nocopy JTF_VARCHAR2_TABLE_2000
2459 , p3_a32 out nocopy JTF_NUMBER_TABLE
2460 , p3_a33 out nocopy JTF_VARCHAR2_TABLE_200
2461 , p3_a34 out nocopy JTF_NUMBER_TABLE
2462 , p3_a35 out nocopy JTF_NUMBER_TABLE
2463 , p3_a36 out nocopy JTF_VARCHAR2_TABLE_2000
2464 , p3_a37 out nocopy JTF_NUMBER_TABLE
2465 , p3_a38 out nocopy JTF_NUMBER_TABLE
2466 , p3_a39 out nocopy JTF_NUMBER_TABLE
2467 , p3_a40 out nocopy JTF_VARCHAR2_TABLE_2000
2468 , p3_a41 out nocopy JTF_NUMBER_TABLE
2469 , p3_a42 out nocopy JTF_VARCHAR2_TABLE_2000
2470 )
2471
2472 as
2473 ddx_loan_amort_tbl lns_financials.amortization_tbl;
2474 ddindx binary_integer; indx binary_integer;
2475 begin
2476
2477 -- copy data to the local IN or IN-OUT args, if any
2478
2479
2480
2481
2482 -- here's the delegated call to the old PL/SQL routine
2483 lns_financials.amortizeloan(p_loan_id,
2484 p_based_on_terms,
2485 p_installment_number,
2486 ddx_loan_amort_tbl);
2487
2488 -- copy data back from the local variables to OUT or IN-OUT args, if any
2489
2490
2491
2492 lns_financials_w.rosetta_table_copy_out_p3(ddx_loan_amort_tbl, p3_a0
2493 , p3_a1
2494 , p3_a2
2495 , p3_a3
2496 , p3_a4
2497 , p3_a5
2498 , p3_a6
2499 , p3_a7
2500 , p3_a8
2501 , p3_a9
2502 , p3_a10
2503 , p3_a11
2504 , p3_a12
2505 , p3_a13
2506 , p3_a14
2507 , p3_a15
2508 , p3_a16
2509 , p3_a17
2510 , p3_a18
2511 , p3_a19
2512 , p3_a20
2513 , p3_a21
2514 , p3_a22
2515 , p3_a23
2516 , p3_a24
2517 , p3_a25
2518 , p3_a26
2519 , p3_a27
2520 , p3_a28
2521 , p3_a29
2522 , p3_a30
2523 , p3_a31
2524 , p3_a32
2525 , p3_a33
2526 , p3_a34
2527 , p3_a35
2528 , p3_a36
2529 , p3_a37
2530 , p3_a38
2531 , p3_a39
2532 , p3_a40
2533 , p3_a41
2534 , p3_a42
2535 );
2536 end;
2537
2538 procedure loanprojection(p0_a0 NUMBER
2539 , p0_a1 NUMBER
2540 , p0_a2 VARCHAR2
2541 , p0_a3 NUMBER
2542 , p0_a4 VARCHAR2
2543 , p0_a5 VARCHAR2
2544 , p0_a6 VARCHAR2
2545 , p0_a7 DATE
2546 , p0_a8 DATE
2547 , p0_a9 NUMBER
2548 , p0_a10 NUMBER
2549 , p0_a11 NUMBER
2550 , p0_a12 NUMBER
2551 , p0_a13 NUMBER
2552 , p0_a14 NUMBER
2553 , p0_a15 NUMBER
2554 , p0_a16 NUMBER
2555 , p0_a17 NUMBER
2556 , p0_a18 NUMBER
2557 , p0_a19 DATE
2558 , p0_a20 NUMBER
2559 , p0_a21 NUMBER
2560 , p0_a22 VARCHAR2
2561 , p0_a23 VARCHAR2
2562 , p0_a24 VARCHAR2
2563 , p0_a25 NUMBER
2564 , p0_a26 NUMBER
2565 , p0_a27 NUMBER
2566 , p0_a28 NUMBER
2567 , p0_a29 VARCHAR2
2568 , p0_a30 VARCHAR2
2569 , p0_a31 NUMBER
2570 , p0_a32 VARCHAR2
2571 , p0_a33 VARCHAR2
2572 , p0_a34 DATE
2573 , p0_a35 VARCHAR2
2574 , p0_a36 DATE
2575 , p0_a37 VARCHAR2
2576 , p0_a38 NUMBER
2577 , p0_a39 NUMBER
2578 , p0_a40 VARCHAR2
2579 , p0_a41 VARCHAR2
2580 , p0_a42 DATE
2581 , p0_a43 DATE
2582 , p0_a44 DATE
2583 , p0_a45 VARCHAR2
2584 , p0_a46 VARCHAR2
2585 , p0_a47 NUMBER
2586 , p0_a48 NUMBER
2587 , p0_a49 VARCHAR2
2588 , p0_a50 VARCHAR2
2589 , p0_a51 NUMBER
2590 , p0_a52 DATE
2591 , p0_a53 NUMBER
2592 , p0_a54 NUMBER
2593 , p0_a55 NUMBER
2594 , p0_a56 NUMBER
2595 , p0_a57 NUMBER
2596 , p0_a58 VARCHAR2
2597 , p0_a59 NUMBER
2598 , p0_a60 DATE
2599 , p0_a61 NUMBER
2600 , p0_a62 NUMBER
2601 , p0_a63 NUMBER
2602 , p0_a64 NUMBER
2603 , p0_a65 NUMBER
2604 , p0_a66 VARCHAR2
2605 , p0_a67 VARCHAR2
2606 , p0_a68 VARCHAR2
2607 , p0_a69 VARCHAR2
2608 , p0_a70 NUMBER
2609 , p0_a71 NUMBER
2610 , p0_a72 NUMBER
2611 , p0_a73 NUMBER
2612 , p0_a74 DATE
2613 , p0_a75 DATE
2614 , p0_a76 VARCHAR2
2615 , p0_a77 VARCHAR2
2616 , p0_a78 VARCHAR2
2617 , p0_a79 VARCHAR2
2618 , p0_a80 DATE
2619 , p0_a81 VARCHAR2
2620 , p0_a82 NUMBER
2621 , p0_a83 NUMBER
2622 , p0_a84 VARCHAR2
2623 , p0_a85 NUMBER
2624 , p0_a86 NUMBER
2625 , p0_a87 NUMBER
2626 , p0_a88 NUMBER
2627 , p0_a89 NUMBER
2628 , p0_a90 VARCHAR2
2629 , p0_a91 NUMBER
2630 , p0_a92 VARCHAR2
2631 , p0_a93 VARCHAR2
2632 , p0_a94 VARCHAR2
2633 , p0_a95 VARCHAR2
2634 , p_based_on_terms VARCHAR2
2635 , p2_a0 JTF_NUMBER_TABLE
2636 , p2_a1 JTF_DATE_TABLE
2637 , p2_a2 JTF_DATE_TABLE
2638 , p2_a3 JTF_NUMBER_TABLE
2639 , p2_a4 JTF_NUMBER_TABLE
2640 , p2_a5 JTF_NUMBER_TABLE
2641 , p2_a6 JTF_NUMBER_TABLE
2642 , p2_a7 JTF_VARCHAR2_TABLE_100
2643 , p2_a8 JTF_VARCHAR2_TABLE_100
2644 , p2_a9 JTF_VARCHAR2_TABLE_100
2645 , p3_a0 out nocopy JTF_NUMBER_TABLE
2646 , p3_a1 out nocopy JTF_DATE_TABLE
2647 , p3_a2 out nocopy JTF_DATE_TABLE
2648 , p3_a3 out nocopy JTF_DATE_TABLE
2649 , p3_a4 out nocopy JTF_NUMBER_TABLE
2650 , p3_a5 out nocopy JTF_NUMBER_TABLE
2651 , p3_a6 out nocopy JTF_NUMBER_TABLE
2652 , p3_a7 out nocopy JTF_NUMBER_TABLE
2653 , p3_a8 out nocopy JTF_NUMBER_TABLE
2654 , p3_a9 out nocopy JTF_NUMBER_TABLE
2655 , p3_a10 out nocopy JTF_NUMBER_TABLE
2656 , p3_a11 out nocopy JTF_NUMBER_TABLE
2657 , p3_a12 out nocopy JTF_NUMBER_TABLE
2658 , p3_a13 out nocopy JTF_NUMBER_TABLE
2659 , p3_a14 out nocopy JTF_NUMBER_TABLE
2660 , p3_a15 out nocopy JTF_NUMBER_TABLE
2661 , p3_a16 out nocopy JTF_NUMBER_TABLE
2662 , p3_a17 out nocopy JTF_NUMBER_TABLE
2663 , p3_a18 out nocopy JTF_NUMBER_TABLE
2664 , p3_a19 out nocopy JTF_NUMBER_TABLE
2665 , p3_a20 out nocopy JTF_NUMBER_TABLE
2666 , p3_a21 out nocopy JTF_VARCHAR2_TABLE_100
2667 , p3_a22 out nocopy JTF_VARCHAR2_TABLE_100
2668 , p3_a23 out nocopy JTF_VARCHAR2_TABLE_100
2669 , p3_a24 out nocopy JTF_NUMBER_TABLE
2670 , p3_a25 out nocopy JTF_NUMBER_TABLE
2671 , p3_a26 out nocopy JTF_NUMBER_TABLE
2672 , p3_a27 out nocopy JTF_NUMBER_TABLE
2673 , p3_a28 out nocopy JTF_VARCHAR2_TABLE_2000
2674 , p3_a29 out nocopy JTF_VARCHAR2_TABLE_2000
2675 , p3_a30 out nocopy JTF_VARCHAR2_TABLE_2000
2676 , p3_a31 out nocopy JTF_VARCHAR2_TABLE_2000
2677 , p3_a32 out nocopy JTF_NUMBER_TABLE
2678 , p3_a33 out nocopy JTF_VARCHAR2_TABLE_200
2679 , p3_a34 out nocopy JTF_NUMBER_TABLE
2680 , p3_a35 out nocopy JTF_NUMBER_TABLE
2681 , p3_a36 out nocopy JTF_VARCHAR2_TABLE_2000
2682 , p3_a37 out nocopy JTF_NUMBER_TABLE
2683 , p3_a38 out nocopy JTF_NUMBER_TABLE
2684 , p3_a39 out nocopy JTF_NUMBER_TABLE
2685 , p3_a40 out nocopy JTF_VARCHAR2_TABLE_2000
2686 , p3_a41 out nocopy JTF_NUMBER_TABLE
2687 , p3_a42 out nocopy JTF_VARCHAR2_TABLE_2000
2688 )
2689
2690 as
2691 ddp_loan_details lns_financials.loan_details_rec;
2692 ddp_rate_schedule lns_financials.rate_schedule_tbl;
2693 ddx_loan_amort_tbl lns_financials.amortization_tbl;
2694 ddindx binary_integer; indx binary_integer;
2695 begin
2696
2697 -- copy data to the local IN or IN-OUT args, if any
2698 ddp_loan_details.loan_id := p0_a0;
2699 ddp_loan_details.loan_term := p0_a1;
2700 ddp_loan_details.loan_term_period := p0_a2;
2701 ddp_loan_details.amortized_term := p0_a3;
2702 ddp_loan_details.amortized_term_period := p0_a4;
2703 ddp_loan_details.amortization_frequency := p0_a5;
2704 ddp_loan_details.payment_frequency := p0_a6;
2705 ddp_loan_details.first_payment_date := p0_a7;
2706 ddp_loan_details.loan_start_date := p0_a8;
2707 ddp_loan_details.requested_amount := p0_a9;
2708 ddp_loan_details.funded_amount := p0_a10;
2709 ddp_loan_details.remaining_balance := p0_a11;
2710 ddp_loan_details.principal_paid_to_date := p0_a12;
2711 ddp_loan_details.interest_paid_to_date := p0_a13;
2712 ddp_loan_details.fees_paid_to_date := p0_a14;
2713 ddp_loan_details.unpaid_principal := p0_a15;
2714 ddp_loan_details.unpaid_interest := p0_a16;
2715 ddp_loan_details.unbilled_principal := p0_a17;
2716 ddp_loan_details.billed_principal := p0_a18;
2717 ddp_loan_details.maturity_date := p0_a19;
2718 ddp_loan_details.number_installments := p0_a20;
2719 ddp_loan_details.num_amortization_intervals := p0_a21;
2720 ddp_loan_details.reamortize_overpay := p0_a22;
2721 ddp_loan_details.reamortize_underpay := p0_a23;
2722 ddp_loan_details.reamortize_with_interest := p0_a24;
2723 ddp_loan_details.reamortize_amount := p0_a25;
2724 ddp_loan_details.reamortize_from_installment := p0_a26;
2725 ddp_loan_details.reamortize_to_installment := p0_a27;
2726 ddp_loan_details.last_installment_billed := p0_a28;
2727 ddp_loan_details.day_count_method := p0_a29;
2728 ddp_loan_details.pay_in_arrears := p0_a30;
2729 if p0_a31 is null
2730 then ddp_loan_details.pay_in_arrears_boolean := null;
2731 elsif p0_a31 = 0
2732 then ddp_loan_details.pay_in_arrears_boolean := false;
2733 else ddp_loan_details.pay_in_arrears_boolean := true;
2734 end if;
2735 ddp_loan_details.custom_schedule := p0_a32;
2736 ddp_loan_details.loan_status := p0_a33;
2737 ddp_loan_details.last_interest_accrual := p0_a34;
2738 ddp_loan_details.last_activity := p0_a35;
2739 ddp_loan_details.last_activity_date := p0_a36;
2740 ddp_loan_details.loan_currency := p0_a37;
2741 ddp_loan_details.currency_precision := p0_a38;
2742 ddp_loan_details.open_term := p0_a39;
2743 ddp_loan_details.open_term_period := p0_a40;
2744 ddp_loan_details.open_payment_frequency := p0_a41;
2745 ddp_loan_details.open_first_payment_date := p0_a42;
2746 ddp_loan_details.open_start_date := p0_a43;
2747 ddp_loan_details.open_maturity_date := p0_a44;
2748 ddp_loan_details.loan_phase := p0_a45;
2749 ddp_loan_details.balloon_payment_type := p0_a46;
2750 ddp_loan_details.balloon_payment_amount := p0_a47;
2751 ddp_loan_details.amortized_amount := p0_a48;
2752 ddp_loan_details.rate_type := p0_a49;
2753 ddp_loan_details.open_rate_chg_freq := p0_a50;
2754 ddp_loan_details.open_index_rate_id := p0_a51;
2755 ddp_loan_details.open_index_date := p0_a52;
2756 ddp_loan_details.open_ceiling_rate := p0_a53;
2757 ddp_loan_details.open_floor_rate := p0_a54;
2758 ddp_loan_details.open_first_percent_increase := p0_a55;
2759 ddp_loan_details.open_adj_percent_increase := p0_a56;
2760 ddp_loan_details.open_life_percent_increase := p0_a57;
2761 ddp_loan_details.term_rate_chg_freq := p0_a58;
2762 ddp_loan_details.term_index_rate_id := p0_a59;
2763 ddp_loan_details.term_index_date := p0_a60;
2764 ddp_loan_details.term_ceiling_rate := p0_a61;
2765 ddp_loan_details.term_floor_rate := p0_a62;
2766 ddp_loan_details.term_first_percent_increase := p0_a63;
2767 ddp_loan_details.term_adj_percent_increase := p0_a64;
2768 ddp_loan_details.term_life_percent_increase := p0_a65;
2769 ddp_loan_details.open_to_term_flag := p0_a66;
2770 ddp_loan_details.open_to_term_event := p0_a67;
2771 ddp_loan_details.multiple_funding_flag := p0_a68;
2772 ddp_loan_details.secondary_status := p0_a69;
2773 ddp_loan_details.open_projected_interest_rate := p0_a70;
2774 ddp_loan_details.term_projected_interest_rate := p0_a71;
2775 ddp_loan_details.initial_interest_rate := p0_a72;
2776 ddp_loan_details.last_interest_rate := p0_a73;
2777 ddp_loan_details.first_rate_change_date := p0_a74;
2778 ddp_loan_details.next_rate_change_date := p0_a75;
2779 ddp_loan_details.calculation_method := p0_a76;
2780 ddp_loan_details.interest_compounding_freq := p0_a77;
2781 ddp_loan_details.payment_calc_method := p0_a78;
2782 ddp_loan_details.orig_pay_calc_method := p0_a79;
2783 ddp_loan_details.prin_first_pay_date := p0_a80;
2784 ddp_loan_details.prin_payment_frequency := p0_a81;
2785 ddp_loan_details.prin_number_installments := p0_a82;
2786 ddp_loan_details.prin_amort_installments := p0_a83;
2787 ddp_loan_details.prin_pay_in_arrears := p0_a84;
2788 if p0_a85 is null
2789 then ddp_loan_details.prin_pay_in_arrears_bool := null;
2790 elsif p0_a85 = 0
2791 then ddp_loan_details.prin_pay_in_arrears_bool := false;
2792 else ddp_loan_details.prin_pay_in_arrears_bool := true;
2793 end if;
2794 ddp_loan_details.extend_from_installment := p0_a86;
2795 ddp_loan_details.orig_number_installments := p0_a87;
2796 ddp_loan_details.penal_int_rate := p0_a88;
2797 ddp_loan_details.penal_int_grace_days := p0_a89;
2798 ddp_loan_details.reamortize_on_funding := p0_a90;
2799 ddp_loan_details.add_requested_amount := p0_a91;
2800 ddp_loan_details.calc_add_int_unpaid_prin := p0_a92;
2801 ddp_loan_details.calc_add_int_unpaid_int := p0_a93;
2802 ddp_loan_details.capitalize_int := p0_a94;
2803 ddp_loan_details.fluctuate_eq_pay_amount := p0_a95;
2804
2805
2806 lns_financials_w.rosetta_table_copy_in_p1(ddp_rate_schedule, p2_a0
2807 , p2_a1
2808 , p2_a2
2809 , p2_a3
2810 , p2_a4
2811 , p2_a5
2812 , p2_a6
2813 , p2_a7
2814 , p2_a8
2815 , p2_a9
2816 );
2817
2818
2819 -- here's the delegated call to the old PL/SQL routine
2820 lns_financials.loanprojection(ddp_loan_details,
2821 p_based_on_terms,
2822 ddp_rate_schedule,
2823 ddx_loan_amort_tbl);
2824
2825 -- copy data back from the local variables to OUT or IN-OUT args, if any
2826
2827
2828
2829 lns_financials_w.rosetta_table_copy_out_p3(ddx_loan_amort_tbl, p3_a0
2830 , p3_a1
2831 , p3_a2
2832 , p3_a3
2833 , p3_a4
2834 , p3_a5
2835 , p3_a6
2836 , p3_a7
2837 , p3_a8
2838 , p3_a9
2839 , p3_a10
2840 , p3_a11
2841 , p3_a12
2842 , p3_a13
2843 , p3_a14
2844 , p3_a15
2845 , p3_a16
2846 , p3_a17
2847 , p3_a18
2848 , p3_a19
2849 , p3_a20
2850 , p3_a21
2851 , p3_a22
2852 , p3_a23
2853 , p3_a24
2854 , p3_a25
2855 , p3_a26
2856 , p3_a27
2857 , p3_a28
2858 , p3_a29
2859 , p3_a30
2860 , p3_a31
2861 , p3_a32
2862 , p3_a33
2863 , p3_a34
2864 , p3_a35
2865 , p3_a36
2866 , p3_a37
2867 , p3_a38
2868 , p3_a39
2869 , p3_a40
2870 , p3_a41
2871 , p3_a42
2872 );
2873 end;
2874
2875 procedure runopenprojection(p_init_msg_list VARCHAR2
2876 , p_loan_id NUMBER
2877 , p_based_on_terms VARCHAR2
2878 , p3_a0 out nocopy JTF_NUMBER_TABLE
2879 , p3_a1 out nocopy JTF_DATE_TABLE
2880 , p3_a2 out nocopy JTF_DATE_TABLE
2881 , p3_a3 out nocopy JTF_DATE_TABLE
2882 , p3_a4 out nocopy JTF_NUMBER_TABLE
2883 , p3_a5 out nocopy JTF_NUMBER_TABLE
2884 , p3_a6 out nocopy JTF_NUMBER_TABLE
2885 , p3_a7 out nocopy JTF_NUMBER_TABLE
2886 , p3_a8 out nocopy JTF_NUMBER_TABLE
2887 , p3_a9 out nocopy JTF_NUMBER_TABLE
2888 , p3_a10 out nocopy JTF_NUMBER_TABLE
2889 , p3_a11 out nocopy JTF_NUMBER_TABLE
2890 , p3_a12 out nocopy JTF_NUMBER_TABLE
2891 , p3_a13 out nocopy JTF_NUMBER_TABLE
2892 , p3_a14 out nocopy JTF_NUMBER_TABLE
2893 , p3_a15 out nocopy JTF_NUMBER_TABLE
2894 , p3_a16 out nocopy JTF_NUMBER_TABLE
2895 , p3_a17 out nocopy JTF_NUMBER_TABLE
2896 , p3_a18 out nocopy JTF_NUMBER_TABLE
2897 , p3_a19 out nocopy JTF_NUMBER_TABLE
2898 , p3_a20 out nocopy JTF_NUMBER_TABLE
2899 , p3_a21 out nocopy JTF_VARCHAR2_TABLE_100
2900 , p3_a22 out nocopy JTF_VARCHAR2_TABLE_100
2901 , p3_a23 out nocopy JTF_VARCHAR2_TABLE_100
2902 , p3_a24 out nocopy JTF_NUMBER_TABLE
2903 , p3_a25 out nocopy JTF_NUMBER_TABLE
2904 , p3_a26 out nocopy JTF_NUMBER_TABLE
2905 , p3_a27 out nocopy JTF_NUMBER_TABLE
2906 , p3_a28 out nocopy JTF_VARCHAR2_TABLE_2000
2907 , p3_a29 out nocopy JTF_VARCHAR2_TABLE_2000
2908 , p3_a30 out nocopy JTF_VARCHAR2_TABLE_2000
2909 , p3_a31 out nocopy JTF_VARCHAR2_TABLE_2000
2910 , p3_a32 out nocopy JTF_NUMBER_TABLE
2911 , p3_a33 out nocopy JTF_VARCHAR2_TABLE_200
2912 , p3_a34 out nocopy JTF_NUMBER_TABLE
2913 , p3_a35 out nocopy JTF_NUMBER_TABLE
2914 , p3_a36 out nocopy JTF_VARCHAR2_TABLE_2000
2915 , p3_a37 out nocopy JTF_NUMBER_TABLE
2916 , p3_a38 out nocopy JTF_NUMBER_TABLE
2917 , p3_a39 out nocopy JTF_NUMBER_TABLE
2918 , p3_a40 out nocopy JTF_VARCHAR2_TABLE_2000
2919 , p3_a41 out nocopy JTF_NUMBER_TABLE
2920 , p3_a42 out nocopy JTF_VARCHAR2_TABLE_2000
2921 , x_return_status out nocopy VARCHAR2
2922 , x_msg_count out nocopy NUMBER
2923 , x_msg_data out nocopy VARCHAR2
2924 )
2925
2926 as
2927 ddx_amort_tbl lns_financials.amortization_tbl;
2928 ddindx binary_integer; indx binary_integer;
2929 begin
2930
2931 -- copy data to the local IN or IN-OUT args, if any
2932
2933
2934
2935
2936
2937
2938
2939 -- here's the delegated call to the old PL/SQL routine
2940 lns_financials.runopenprojection(p_init_msg_list,
2941 p_loan_id,
2942 p_based_on_terms,
2943 ddx_amort_tbl,
2944 x_return_status,
2945 x_msg_count,
2946 x_msg_data);
2947
2948 -- copy data back from the local variables to OUT or IN-OUT args, if any
2949
2950
2951
2952 lns_financials_w.rosetta_table_copy_out_p3(ddx_amort_tbl, p3_a0
2953 , p3_a1
2954 , p3_a2
2955 , p3_a3
2956 , p3_a4
2957 , p3_a5
2958 , p3_a6
2959 , p3_a7
2960 , p3_a8
2961 , p3_a9
2962 , p3_a10
2963 , p3_a11
2964 , p3_a12
2965 , p3_a13
2966 , p3_a14
2967 , p3_a15
2968 , p3_a16
2969 , p3_a17
2970 , p3_a18
2971 , p3_a19
2972 , p3_a20
2973 , p3_a21
2974 , p3_a22
2975 , p3_a23
2976 , p3_a24
2977 , p3_a25
2978 , p3_a26
2979 , p3_a27
2980 , p3_a28
2981 , p3_a29
2982 , p3_a30
2983 , p3_a31
2984 , p3_a32
2985 , p3_a33
2986 , p3_a34
2987 , p3_a35
2988 , p3_a36
2989 , p3_a37
2990 , p3_a38
2991 , p3_a39
2992 , p3_a40
2993 , p3_a41
2994 , p3_a42
2995 );
2996
2997
2998
2999 end;
3000
3001 procedure runamortization(p_api_version NUMBER
3002 , p_init_msg_list VARCHAR2
3003 , p_commit VARCHAR2
3004 , p_loan_id NUMBER
3005 , p_based_on_terms VARCHAR2
3006 , p5_a0 out nocopy JTF_NUMBER_TABLE
3007 , p5_a1 out nocopy JTF_DATE_TABLE
3008 , p5_a2 out nocopy JTF_DATE_TABLE
3009 , p5_a3 out nocopy JTF_DATE_TABLE
3010 , p5_a4 out nocopy JTF_NUMBER_TABLE
3011 , p5_a5 out nocopy JTF_NUMBER_TABLE
3012 , p5_a6 out nocopy JTF_NUMBER_TABLE
3013 , p5_a7 out nocopy JTF_NUMBER_TABLE
3014 , p5_a8 out nocopy JTF_NUMBER_TABLE
3015 , p5_a9 out nocopy JTF_NUMBER_TABLE
3016 , p5_a10 out nocopy JTF_NUMBER_TABLE
3017 , p5_a11 out nocopy JTF_NUMBER_TABLE
3018 , p5_a12 out nocopy JTF_NUMBER_TABLE
3019 , p5_a13 out nocopy JTF_NUMBER_TABLE
3020 , p5_a14 out nocopy JTF_NUMBER_TABLE
3021 , p5_a15 out nocopy JTF_NUMBER_TABLE
3022 , p5_a16 out nocopy JTF_NUMBER_TABLE
3023 , p5_a17 out nocopy JTF_NUMBER_TABLE
3024 , p5_a18 out nocopy JTF_NUMBER_TABLE
3025 , p5_a19 out nocopy JTF_NUMBER_TABLE
3026 , p5_a20 out nocopy JTF_NUMBER_TABLE
3027 , p5_a21 out nocopy JTF_VARCHAR2_TABLE_100
3028 , p5_a22 out nocopy JTF_VARCHAR2_TABLE_100
3029 , p5_a23 out nocopy JTF_VARCHAR2_TABLE_100
3030 , p5_a24 out nocopy JTF_NUMBER_TABLE
3031 , p5_a25 out nocopy JTF_NUMBER_TABLE
3032 , p5_a26 out nocopy JTF_NUMBER_TABLE
3033 , p5_a27 out nocopy JTF_NUMBER_TABLE
3034 , p5_a28 out nocopy JTF_VARCHAR2_TABLE_2000
3035 , p5_a29 out nocopy JTF_VARCHAR2_TABLE_2000
3036 , p5_a30 out nocopy JTF_VARCHAR2_TABLE_2000
3037 , p5_a31 out nocopy JTF_VARCHAR2_TABLE_2000
3038 , p5_a32 out nocopy JTF_NUMBER_TABLE
3039 , p5_a33 out nocopy JTF_VARCHAR2_TABLE_200
3040 , p5_a34 out nocopy JTF_NUMBER_TABLE
3041 , p5_a35 out nocopy JTF_NUMBER_TABLE
3042 , p5_a36 out nocopy JTF_VARCHAR2_TABLE_2000
3043 , p5_a37 out nocopy JTF_NUMBER_TABLE
3044 , p5_a38 out nocopy JTF_NUMBER_TABLE
3045 , p5_a39 out nocopy JTF_NUMBER_TABLE
3046 , p5_a40 out nocopy JTF_VARCHAR2_TABLE_2000
3047 , p5_a41 out nocopy JTF_NUMBER_TABLE
3048 , p5_a42 out nocopy JTF_VARCHAR2_TABLE_2000
3049 , x_return_status out nocopy VARCHAR2
3050 , x_msg_count out nocopy NUMBER
3051 , x_msg_data out nocopy VARCHAR2
3052 )
3053
3054 as
3055 ddx_amort_tbl lns_financials.amortization_tbl;
3056 ddindx binary_integer; indx binary_integer;
3057 begin
3058
3059 -- copy data to the local IN or IN-OUT args, if any
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069 -- here's the delegated call to the old PL/SQL routine
3070 lns_financials.runamortization(p_api_version,
3071 p_init_msg_list,
3072 p_commit,
3073 p_loan_id,
3074 p_based_on_terms,
3075 ddx_amort_tbl,
3076 x_return_status,
3077 x_msg_count,
3078 x_msg_data);
3079
3080 -- copy data back from the local variables to OUT or IN-OUT args, if any
3081
3082
3083
3084
3085
3086 lns_financials_w.rosetta_table_copy_out_p3(ddx_amort_tbl, p5_a0
3087 , p5_a1
3088 , p5_a2
3089 , p5_a3
3090 , p5_a4
3091 , p5_a5
3092 , p5_a6
3093 , p5_a7
3094 , p5_a8
3095 , p5_a9
3096 , p5_a10
3097 , p5_a11
3098 , p5_a12
3099 , p5_a13
3100 , p5_a14
3101 , p5_a15
3102 , p5_a16
3103 , p5_a17
3104 , p5_a18
3105 , p5_a19
3106 , p5_a20
3107 , p5_a21
3108 , p5_a22
3109 , p5_a23
3110 , p5_a24
3111 , p5_a25
3112 , p5_a26
3113 , p5_a27
3114 , p5_a28
3115 , p5_a29
3116 , p5_a30
3117 , p5_a31
3118 , p5_a32
3119 , p5_a33
3120 , p5_a34
3121 , p5_a35
3122 , p5_a36
3123 , p5_a37
3124 , p5_a38
3125 , p5_a39
3126 , p5_a40
3127 , p5_a41
3128 , p5_a42
3129 );
3130
3131
3132
3133 end;
3134
3135 procedure getinstallment(p_api_version NUMBER
3136 , p_init_msg_list VARCHAR2
3137 , p_commit VARCHAR2
3138 , p_loan_id NUMBER
3139 , p_installment_number NUMBER
3140 , p5_a0 out nocopy NUMBER
3141 , p5_a1 out nocopy DATE
3142 , p5_a2 out nocopy DATE
3143 , p5_a3 out nocopy DATE
3144 , p5_a4 out nocopy NUMBER
3145 , p5_a5 out nocopy NUMBER
3146 , p5_a6 out nocopy NUMBER
3147 , p5_a7 out nocopy NUMBER
3148 , p5_a8 out nocopy NUMBER
3149 , p5_a9 out nocopy NUMBER
3150 , p5_a10 out nocopy NUMBER
3151 , p5_a11 out nocopy NUMBER
3152 , p5_a12 out nocopy NUMBER
3153 , p5_a13 out nocopy NUMBER
3154 , p5_a14 out nocopy NUMBER
3155 , p5_a15 out nocopy NUMBER
3156 , p5_a16 out nocopy NUMBER
3157 , p5_a17 out nocopy NUMBER
3158 , p5_a18 out nocopy NUMBER
3159 , p5_a19 out nocopy NUMBER
3160 , p5_a20 out nocopy NUMBER
3161 , p5_a21 out nocopy VARCHAR2
3162 , p5_a22 out nocopy VARCHAR2
3163 , p5_a23 out nocopy VARCHAR2
3164 , p5_a24 out nocopy NUMBER
3165 , p5_a25 out nocopy NUMBER
3166 , p5_a26 out nocopy NUMBER
3167 , p5_a27 out nocopy NUMBER
3168 , p5_a28 out nocopy VARCHAR2
3169 , p5_a29 out nocopy VARCHAR2
3170 , p5_a30 out nocopy VARCHAR2
3171 , p5_a31 out nocopy VARCHAR2
3172 , p5_a32 out nocopy NUMBER
3173 , p5_a33 out nocopy VARCHAR2
3174 , p5_a34 out nocopy NUMBER
3175 , p5_a35 out nocopy NUMBER
3176 , p5_a36 out nocopy VARCHAR2
3177 , p5_a37 out nocopy NUMBER
3178 , p5_a38 out nocopy NUMBER
3179 , p5_a39 out nocopy NUMBER
3180 , p5_a40 out nocopy VARCHAR2
3181 , p5_a41 out nocopy NUMBER
3182 , p5_a42 out nocopy VARCHAR2
3183 , p6_a0 out nocopy JTF_NUMBER_TABLE
3184 , p6_a1 out nocopy JTF_VARCHAR2_TABLE_100
3185 , p6_a2 out nocopy JTF_NUMBER_TABLE
3186 , p6_a3 out nocopy JTF_NUMBER_TABLE
3187 , p6_a4 out nocopy JTF_VARCHAR2_TABLE_300
3188 , p6_a5 out nocopy JTF_NUMBER_TABLE
3189 , p6_a6 out nocopy JTF_VARCHAR2_TABLE_100
3190 , p6_a7 out nocopy JTF_NUMBER_TABLE
3191 , p6_a8 out nocopy JTF_VARCHAR2_TABLE_100
3192 , p6_a9 out nocopy JTF_VARCHAR2_TABLE_100
3193 , x_return_status out nocopy VARCHAR2
3194 , x_msg_count out nocopy NUMBER
3195 , x_msg_data out nocopy VARCHAR2
3196 )
3197
3198 as
3199 ddx_amortization_rec lns_financials.amortization_rec;
3200 ddx_fees_tbl lns_financials.fees_tbl;
3201 ddindx binary_integer; indx binary_integer;
3202 begin
3203
3204 -- copy data to the local IN or IN-OUT args, if any
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215 -- here's the delegated call to the old PL/SQL routine
3216 lns_financials.getinstallment(p_api_version,
3217 p_init_msg_list,
3218 p_commit,
3219 p_loan_id,
3220 p_installment_number,
3221 ddx_amortization_rec,
3222 ddx_fees_tbl,
3223 x_return_status,
3224 x_msg_count,
3225 x_msg_data);
3226
3227 -- copy data back from the local variables to OUT or IN-OUT args, if any
3228
3229
3230
3231
3232
3233 p5_a0 := ddx_amortization_rec.installment_number;
3234 p5_a1 := ddx_amortization_rec.due_date;
3235 p5_a2 := ddx_amortization_rec.period_start_date;
3236 p5_a3 := ddx_amortization_rec.period_end_date;
3237 p5_a4 := ddx_amortization_rec.principal_amount;
3238 p5_a5 := ddx_amortization_rec.interest_amount;
3239 p5_a6 := ddx_amortization_rec.normal_int_amount;
3240 p5_a7 := ddx_amortization_rec.add_prin_int_amount;
3241 p5_a8 := ddx_amortization_rec.add_int_int_amount;
3242 p5_a9 := ddx_amortization_rec.penal_int_amount;
3243 p5_a10 := ddx_amortization_rec.fee_amount;
3244 p5_a11 := ddx_amortization_rec.other_amount;
3245 p5_a12 := ddx_amortization_rec.begin_balance;
3246 p5_a13 := ddx_amortization_rec.end_balance;
3247 p5_a14 := ddx_amortization_rec.total;
3248 p5_a15 := ddx_amortization_rec.interest_cumulative;
3249 p5_a16 := ddx_amortization_rec.principal_cumulative;
3250 p5_a17 := ddx_amortization_rec.fees_cumulative;
3251 p5_a18 := ddx_amortization_rec.other_cumulative;
3252 p5_a19 := ddx_amortization_rec.rate_id;
3253 p5_a20 := ddx_amortization_rec.rate_unadj;
3254 p5_a21 := ddx_amortization_rec.rate_change_freq;
3255 p5_a22 := ddx_amortization_rec.source;
3256 p5_a23 := ddx_amortization_rec.grand_total_flag;
3257 p5_a24 := ddx_amortization_rec.unpaid_prin;
3258 p5_a25 := ddx_amortization_rec.unpaid_int;
3259 p5_a26 := ddx_amortization_rec.interest_rate;
3260 p5_a27 := ddx_amortization_rec.funded_amount;
3261 p5_a28 := ddx_amortization_rec.normal_int_details;
3262 p5_a29 := ddx_amortization_rec.add_prin_int_details;
3263 p5_a30 := ddx_amortization_rec.add_int_int_details;
3264 p5_a31 := ddx_amortization_rec.penal_int_details;
3265 p5_a32 := ddx_amortization_rec.disbursement_amount;
3266 p5_a33 := ddx_amortization_rec.period;
3267 p5_a34 := ddx_amortization_rec.prev_deferred_int_amount;
3268 p5_a35 := ddx_amortization_rec.deferred_int_amount;
3269 p5_a36 := ddx_amortization_rec.deferred_int_details;
3270 p5_a37 := ddx_amortization_rec.prev_cap_int_amount;
3271 p5_a38 := ddx_amortization_rec.curr_cap_int_amount;
3272 p5_a39 := ddx_amortization_rec.cap_int_amount;
3273 p5_a40 := ddx_amortization_rec.cap_int_details;
3274 p5_a41 := ddx_amortization_rec.early_pay_cr_amount;
3275 p5_a42 := ddx_amortization_rec.early_pay_cr_details;
3276
3277 lns_financials_w.rosetta_table_copy_out_p17(ddx_fees_tbl, p6_a0
3278 , p6_a1
3279 , p6_a2
3280 , p6_a3
3281 , p6_a4
3282 , p6_a5
3283 , p6_a6
3284 , p6_a7
3285 , p6_a8
3286 , p6_a9
3287 );
3288
3289
3290
3291 end;
3292
3293 procedure getopeninstallment(p_init_msg_list VARCHAR2
3294 , p_loan_id NUMBER
3295 , p_installment_number NUMBER
3296 , p3_a0 out nocopy NUMBER
3297 , p3_a1 out nocopy DATE
3298 , p3_a2 out nocopy DATE
3299 , p3_a3 out nocopy DATE
3300 , p3_a4 out nocopy NUMBER
3301 , p3_a5 out nocopy NUMBER
3302 , p3_a6 out nocopy NUMBER
3303 , p3_a7 out nocopy NUMBER
3304 , p3_a8 out nocopy NUMBER
3305 , p3_a9 out nocopy NUMBER
3306 , p3_a10 out nocopy NUMBER
3307 , p3_a11 out nocopy NUMBER
3308 , p3_a12 out nocopy NUMBER
3309 , p3_a13 out nocopy NUMBER
3310 , p3_a14 out nocopy NUMBER
3311 , p3_a15 out nocopy NUMBER
3312 , p3_a16 out nocopy NUMBER
3313 , p3_a17 out nocopy NUMBER
3314 , p3_a18 out nocopy NUMBER
3315 , p3_a19 out nocopy NUMBER
3316 , p3_a20 out nocopy NUMBER
3317 , p3_a21 out nocopy VARCHAR2
3318 , p3_a22 out nocopy VARCHAR2
3319 , p3_a23 out nocopy VARCHAR2
3320 , p3_a24 out nocopy NUMBER
3321 , p3_a25 out nocopy NUMBER
3322 , p3_a26 out nocopy NUMBER
3323 , p3_a27 out nocopy NUMBER
3324 , p3_a28 out nocopy VARCHAR2
3325 , p3_a29 out nocopy VARCHAR2
3326 , p3_a30 out nocopy VARCHAR2
3327 , p3_a31 out nocopy VARCHAR2
3328 , p3_a32 out nocopy NUMBER
3329 , p3_a33 out nocopy VARCHAR2
3330 , p3_a34 out nocopy NUMBER
3331 , p3_a35 out nocopy NUMBER
3332 , p3_a36 out nocopy VARCHAR2
3333 , p3_a37 out nocopy NUMBER
3334 , p3_a38 out nocopy NUMBER
3335 , p3_a39 out nocopy NUMBER
3336 , p3_a40 out nocopy VARCHAR2
3337 , p3_a41 out nocopy NUMBER
3338 , p3_a42 out nocopy VARCHAR2
3339 , p4_a0 out nocopy JTF_NUMBER_TABLE
3340 , p4_a1 out nocopy JTF_VARCHAR2_TABLE_100
3341 , p4_a2 out nocopy JTF_NUMBER_TABLE
3342 , p4_a3 out nocopy JTF_NUMBER_TABLE
3343 , p4_a4 out nocopy JTF_VARCHAR2_TABLE_300
3344 , p4_a5 out nocopy JTF_NUMBER_TABLE
3345 , p4_a6 out nocopy JTF_VARCHAR2_TABLE_100
3346 , p4_a7 out nocopy JTF_NUMBER_TABLE
3347 , p4_a8 out nocopy JTF_VARCHAR2_TABLE_100
3348 , p4_a9 out nocopy JTF_VARCHAR2_TABLE_100
3349 , x_return_status out nocopy VARCHAR2
3350 , x_msg_count out nocopy NUMBER
3351 , x_msg_data out nocopy VARCHAR2
3352 )
3353
3354 as
3355 ddx_amortization_rec lns_financials.amortization_rec;
3356 ddx_fees_tbl lns_financials.fees_tbl;
3357 ddindx binary_integer; indx binary_integer;
3358 begin
3359
3360 -- copy data to the local IN or IN-OUT args, if any
3361
3362
3363
3364
3365
3366
3367
3368
3369 -- here's the delegated call to the old PL/SQL routine
3370 lns_financials.getopeninstallment(p_init_msg_list,
3371 p_loan_id,
3372 p_installment_number,
3373 ddx_amortization_rec,
3374 ddx_fees_tbl,
3375 x_return_status,
3376 x_msg_count,
3377 x_msg_data);
3378
3379 -- copy data back from the local variables to OUT or IN-OUT args, if any
3380
3381
3382
3383 p3_a0 := ddx_amortization_rec.installment_number;
3384 p3_a1 := ddx_amortization_rec.due_date;
3385 p3_a2 := ddx_amortization_rec.period_start_date;
3386 p3_a3 := ddx_amortization_rec.period_end_date;
3387 p3_a4 := ddx_amortization_rec.principal_amount;
3388 p3_a5 := ddx_amortization_rec.interest_amount;
3389 p3_a6 := ddx_amortization_rec.normal_int_amount;
3390 p3_a7 := ddx_amortization_rec.add_prin_int_amount;
3391 p3_a8 := ddx_amortization_rec.add_int_int_amount;
3392 p3_a9 := ddx_amortization_rec.penal_int_amount;
3393 p3_a10 := ddx_amortization_rec.fee_amount;
3394 p3_a11 := ddx_amortization_rec.other_amount;
3395 p3_a12 := ddx_amortization_rec.begin_balance;
3396 p3_a13 := ddx_amortization_rec.end_balance;
3397 p3_a14 := ddx_amortization_rec.total;
3398 p3_a15 := ddx_amortization_rec.interest_cumulative;
3399 p3_a16 := ddx_amortization_rec.principal_cumulative;
3400 p3_a17 := ddx_amortization_rec.fees_cumulative;
3401 p3_a18 := ddx_amortization_rec.other_cumulative;
3402 p3_a19 := ddx_amortization_rec.rate_id;
3403 p3_a20 := ddx_amortization_rec.rate_unadj;
3404 p3_a21 := ddx_amortization_rec.rate_change_freq;
3405 p3_a22 := ddx_amortization_rec.source;
3406 p3_a23 := ddx_amortization_rec.grand_total_flag;
3407 p3_a24 := ddx_amortization_rec.unpaid_prin;
3408 p3_a25 := ddx_amortization_rec.unpaid_int;
3409 p3_a26 := ddx_amortization_rec.interest_rate;
3410 p3_a27 := ddx_amortization_rec.funded_amount;
3411 p3_a28 := ddx_amortization_rec.normal_int_details;
3412 p3_a29 := ddx_amortization_rec.add_prin_int_details;
3413 p3_a30 := ddx_amortization_rec.add_int_int_details;
3414 p3_a31 := ddx_amortization_rec.penal_int_details;
3415 p3_a32 := ddx_amortization_rec.disbursement_amount;
3416 p3_a33 := ddx_amortization_rec.period;
3417 p3_a34 := ddx_amortization_rec.prev_deferred_int_amount;
3418 p3_a35 := ddx_amortization_rec.deferred_int_amount;
3419 p3_a36 := ddx_amortization_rec.deferred_int_details;
3420 p3_a37 := ddx_amortization_rec.prev_cap_int_amount;
3421 p3_a38 := ddx_amortization_rec.curr_cap_int_amount;
3422 p3_a39 := ddx_amortization_rec.cap_int_amount;
3423 p3_a40 := ddx_amortization_rec.cap_int_details;
3424 p3_a41 := ddx_amortization_rec.early_pay_cr_amount;
3425 p3_a42 := ddx_amortization_rec.early_pay_cr_details;
3426
3427 lns_financials_w.rosetta_table_copy_out_p17(ddx_fees_tbl, p4_a0
3428 , p4_a1
3429 , p4_a2
3430 , p4_a3
3431 , p4_a4
3432 , p4_a5
3433 , p4_a6
3434 , p4_a7
3435 , p4_a8
3436 , p4_a9
3437 );
3438
3439
3440
3441 end;
3442
3443 procedure preprocessinstallment(p_api_version NUMBER
3444 , p_init_msg_list VARCHAR2
3445 , p_commit VARCHAR2
3446 , p_loan_id NUMBER
3447 , p_installment_number NUMBER
3448 , p5_a0 out nocopy NUMBER
3449 , p5_a1 out nocopy DATE
3450 , p5_a2 out nocopy DATE
3451 , p5_a3 out nocopy DATE
3452 , p5_a4 out nocopy NUMBER
3453 , p5_a5 out nocopy NUMBER
3454 , p5_a6 out nocopy NUMBER
3455 , p5_a7 out nocopy NUMBER
3456 , p5_a8 out nocopy NUMBER
3457 , p5_a9 out nocopy NUMBER
3458 , p5_a10 out nocopy NUMBER
3459 , p5_a11 out nocopy NUMBER
3460 , p5_a12 out nocopy NUMBER
3461 , p5_a13 out nocopy NUMBER
3462 , p5_a14 out nocopy NUMBER
3463 , p5_a15 out nocopy NUMBER
3464 , p5_a16 out nocopy NUMBER
3465 , p5_a17 out nocopy NUMBER
3466 , p5_a18 out nocopy NUMBER
3467 , p5_a19 out nocopy NUMBER
3468 , p5_a20 out nocopy NUMBER
3469 , p5_a21 out nocopy VARCHAR2
3470 , p5_a22 out nocopy VARCHAR2
3471 , p5_a23 out nocopy VARCHAR2
3472 , p5_a24 out nocopy NUMBER
3473 , p5_a25 out nocopy NUMBER
3474 , p5_a26 out nocopy NUMBER
3475 , p5_a27 out nocopy NUMBER
3476 , p5_a28 out nocopy VARCHAR2
3477 , p5_a29 out nocopy VARCHAR2
3478 , p5_a30 out nocopy VARCHAR2
3479 , p5_a31 out nocopy VARCHAR2
3480 , p5_a32 out nocopy NUMBER
3481 , p5_a33 out nocopy VARCHAR2
3482 , p5_a34 out nocopy NUMBER
3483 , p5_a35 out nocopy NUMBER
3484 , p5_a36 out nocopy VARCHAR2
3485 , p5_a37 out nocopy NUMBER
3486 , p5_a38 out nocopy NUMBER
3487 , p5_a39 out nocopy NUMBER
3488 , p5_a40 out nocopy VARCHAR2
3489 , p5_a41 out nocopy NUMBER
3490 , p5_a42 out nocopy VARCHAR2
3491 , x_return_status out nocopy VARCHAR2
3492 , x_msg_count out nocopy NUMBER
3493 , x_msg_data out nocopy VARCHAR2
3494 )
3495
3496 as
3497 ddx_amortization_rec lns_financials.amortization_rec;
3498 ddindx binary_integer; indx binary_integer;
3499 begin
3500
3501 -- copy data to the local IN or IN-OUT args, if any
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511 -- here's the delegated call to the old PL/SQL routine
3512 lns_financials.preprocessinstallment(p_api_version,
3513 p_init_msg_list,
3514 p_commit,
3515 p_loan_id,
3516 p_installment_number,
3517 ddx_amortization_rec,
3518 x_return_status,
3519 x_msg_count,
3520 x_msg_data);
3521
3522 -- copy data back from the local variables to OUT or IN-OUT args, if any
3523
3524
3525
3526
3527
3528 p5_a0 := ddx_amortization_rec.installment_number;
3529 p5_a1 := ddx_amortization_rec.due_date;
3530 p5_a2 := ddx_amortization_rec.period_start_date;
3531 p5_a3 := ddx_amortization_rec.period_end_date;
3532 p5_a4 := ddx_amortization_rec.principal_amount;
3533 p5_a5 := ddx_amortization_rec.interest_amount;
3534 p5_a6 := ddx_amortization_rec.normal_int_amount;
3535 p5_a7 := ddx_amortization_rec.add_prin_int_amount;
3536 p5_a8 := ddx_amortization_rec.add_int_int_amount;
3537 p5_a9 := ddx_amortization_rec.penal_int_amount;
3538 p5_a10 := ddx_amortization_rec.fee_amount;
3539 p5_a11 := ddx_amortization_rec.other_amount;
3540 p5_a12 := ddx_amortization_rec.begin_balance;
3541 p5_a13 := ddx_amortization_rec.end_balance;
3542 p5_a14 := ddx_amortization_rec.total;
3543 p5_a15 := ddx_amortization_rec.interest_cumulative;
3544 p5_a16 := ddx_amortization_rec.principal_cumulative;
3545 p5_a17 := ddx_amortization_rec.fees_cumulative;
3546 p5_a18 := ddx_amortization_rec.other_cumulative;
3547 p5_a19 := ddx_amortization_rec.rate_id;
3548 p5_a20 := ddx_amortization_rec.rate_unadj;
3549 p5_a21 := ddx_amortization_rec.rate_change_freq;
3550 p5_a22 := ddx_amortization_rec.source;
3551 p5_a23 := ddx_amortization_rec.grand_total_flag;
3552 p5_a24 := ddx_amortization_rec.unpaid_prin;
3553 p5_a25 := ddx_amortization_rec.unpaid_int;
3554 p5_a26 := ddx_amortization_rec.interest_rate;
3555 p5_a27 := ddx_amortization_rec.funded_amount;
3556 p5_a28 := ddx_amortization_rec.normal_int_details;
3557 p5_a29 := ddx_amortization_rec.add_prin_int_details;
3558 p5_a30 := ddx_amortization_rec.add_int_int_details;
3559 p5_a31 := ddx_amortization_rec.penal_int_details;
3560 p5_a32 := ddx_amortization_rec.disbursement_amount;
3561 p5_a33 := ddx_amortization_rec.period;
3562 p5_a34 := ddx_amortization_rec.prev_deferred_int_amount;
3563 p5_a35 := ddx_amortization_rec.deferred_int_amount;
3564 p5_a36 := ddx_amortization_rec.deferred_int_details;
3565 p5_a37 := ddx_amortization_rec.prev_cap_int_amount;
3566 p5_a38 := ddx_amortization_rec.curr_cap_int_amount;
3567 p5_a39 := ddx_amortization_rec.cap_int_amount;
3568 p5_a40 := ddx_amortization_rec.cap_int_details;
3569 p5_a41 := ddx_amortization_rec.early_pay_cr_amount;
3570 p5_a42 := ddx_amortization_rec.early_pay_cr_details;
3571
3572
3573
3574 end;
3575
3576 procedure preprocessopeninstallment(p_init_msg_list VARCHAR2
3577 , p_commit VARCHAR2
3578 , p_loan_id NUMBER
3579 , p_installment_number NUMBER
3580 , p4_a0 out nocopy NUMBER
3581 , p4_a1 out nocopy DATE
3582 , p4_a2 out nocopy DATE
3583 , p4_a3 out nocopy DATE
3584 , p4_a4 out nocopy NUMBER
3585 , p4_a5 out nocopy NUMBER
3586 , p4_a6 out nocopy NUMBER
3587 , p4_a7 out nocopy NUMBER
3588 , p4_a8 out nocopy NUMBER
3589 , p4_a9 out nocopy NUMBER
3590 , p4_a10 out nocopy NUMBER
3591 , p4_a11 out nocopy NUMBER
3592 , p4_a12 out nocopy NUMBER
3593 , p4_a13 out nocopy NUMBER
3594 , p4_a14 out nocopy NUMBER
3595 , p4_a15 out nocopy NUMBER
3596 , p4_a16 out nocopy NUMBER
3597 , p4_a17 out nocopy NUMBER
3598 , p4_a18 out nocopy NUMBER
3599 , p4_a19 out nocopy NUMBER
3600 , p4_a20 out nocopy NUMBER
3601 , p4_a21 out nocopy VARCHAR2
3602 , p4_a22 out nocopy VARCHAR2
3603 , p4_a23 out nocopy VARCHAR2
3604 , p4_a24 out nocopy NUMBER
3605 , p4_a25 out nocopy NUMBER
3606 , p4_a26 out nocopy NUMBER
3607 , p4_a27 out nocopy NUMBER
3608 , p4_a28 out nocopy VARCHAR2
3609 , p4_a29 out nocopy VARCHAR2
3610 , p4_a30 out nocopy VARCHAR2
3611 , p4_a31 out nocopy VARCHAR2
3612 , p4_a32 out nocopy NUMBER
3613 , p4_a33 out nocopy VARCHAR2
3614 , p4_a34 out nocopy NUMBER
3615 , p4_a35 out nocopy NUMBER
3616 , p4_a36 out nocopy VARCHAR2
3617 , p4_a37 out nocopy NUMBER
3618 , p4_a38 out nocopy NUMBER
3619 , p4_a39 out nocopy NUMBER
3620 , p4_a40 out nocopy VARCHAR2
3621 , p4_a41 out nocopy NUMBER
3622 , p4_a42 out nocopy VARCHAR2
3623 , x_return_status out nocopy VARCHAR2
3624 , x_msg_count out nocopy NUMBER
3625 , x_msg_data out nocopy VARCHAR2
3626 )
3627
3628 as
3629 ddx_amortization_rec lns_financials.amortization_rec;
3630 ddindx binary_integer; indx binary_integer;
3631 begin
3632
3633 -- copy data to the local IN or IN-OUT args, if any
3634
3635
3636
3637
3638
3639
3640
3641
3642 -- here's the delegated call to the old PL/SQL routine
3643 lns_financials.preprocessopeninstallment(p_init_msg_list,
3644 p_commit,
3645 p_loan_id,
3646 p_installment_number,
3647 ddx_amortization_rec,
3648 x_return_status,
3649 x_msg_count,
3650 x_msg_data);
3651
3652 -- copy data back from the local variables to OUT or IN-OUT args, if any
3653
3654
3655
3656
3657 p4_a0 := ddx_amortization_rec.installment_number;
3658 p4_a1 := ddx_amortization_rec.due_date;
3659 p4_a2 := ddx_amortization_rec.period_start_date;
3660 p4_a3 := ddx_amortization_rec.period_end_date;
3661 p4_a4 := ddx_amortization_rec.principal_amount;
3662 p4_a5 := ddx_amortization_rec.interest_amount;
3663 p4_a6 := ddx_amortization_rec.normal_int_amount;
3664 p4_a7 := ddx_amortization_rec.add_prin_int_amount;
3665 p4_a8 := ddx_amortization_rec.add_int_int_amount;
3666 p4_a9 := ddx_amortization_rec.penal_int_amount;
3667 p4_a10 := ddx_amortization_rec.fee_amount;
3668 p4_a11 := ddx_amortization_rec.other_amount;
3669 p4_a12 := ddx_amortization_rec.begin_balance;
3670 p4_a13 := ddx_amortization_rec.end_balance;
3671 p4_a14 := ddx_amortization_rec.total;
3672 p4_a15 := ddx_amortization_rec.interest_cumulative;
3673 p4_a16 := ddx_amortization_rec.principal_cumulative;
3674 p4_a17 := ddx_amortization_rec.fees_cumulative;
3675 p4_a18 := ddx_amortization_rec.other_cumulative;
3676 p4_a19 := ddx_amortization_rec.rate_id;
3677 p4_a20 := ddx_amortization_rec.rate_unadj;
3678 p4_a21 := ddx_amortization_rec.rate_change_freq;
3679 p4_a22 := ddx_amortization_rec.source;
3680 p4_a23 := ddx_amortization_rec.grand_total_flag;
3681 p4_a24 := ddx_amortization_rec.unpaid_prin;
3682 p4_a25 := ddx_amortization_rec.unpaid_int;
3683 p4_a26 := ddx_amortization_rec.interest_rate;
3684 p4_a27 := ddx_amortization_rec.funded_amount;
3685 p4_a28 := ddx_amortization_rec.normal_int_details;
3686 p4_a29 := ddx_amortization_rec.add_prin_int_details;
3687 p4_a30 := ddx_amortization_rec.add_int_int_details;
3688 p4_a31 := ddx_amortization_rec.penal_int_details;
3689 p4_a32 := ddx_amortization_rec.disbursement_amount;
3690 p4_a33 := ddx_amortization_rec.period;
3691 p4_a34 := ddx_amortization_rec.prev_deferred_int_amount;
3692 p4_a35 := ddx_amortization_rec.deferred_int_amount;
3693 p4_a36 := ddx_amortization_rec.deferred_int_details;
3694 p4_a37 := ddx_amortization_rec.prev_cap_int_amount;
3695 p4_a38 := ddx_amortization_rec.curr_cap_int_amount;
3696 p4_a39 := ddx_amortization_rec.cap_int_amount;
3697 p4_a40 := ddx_amortization_rec.cap_int_details;
3698 p4_a41 := ddx_amortization_rec.early_pay_cr_amount;
3699 p4_a42 := ddx_amortization_rec.early_pay_cr_details;
3700
3701
3702
3703 end;
3704
3705 function calculateeppayment(p_loan_amount NUMBER
3706 , p_num_intervals NUMBER
3707 , p_ending_balance NUMBER
3708 , p_pay_in_arrears number
3709 ) return number
3710
3711 as
3712 ddp_pay_in_arrears boolean;
3713 ddindx binary_integer; indx binary_integer;
3714 ddrosetta_retval number;
3715 begin
3716
3717 -- copy data to the local IN or IN-OUT args, if any
3718
3719
3720
3721 if p_pay_in_arrears is null
3722 then ddp_pay_in_arrears := null;
3723 elsif p_pay_in_arrears = 0
3724 then ddp_pay_in_arrears := false;
3725 else ddp_pay_in_arrears := true;
3726 end if;
3727
3728 -- here's the delegated call to the old PL/SQL routine
3729 ddrosetta_retval := lns_financials.calculateeppayment(p_loan_amount,
3730 p_num_intervals,
3731 p_ending_balance,
3732 ddp_pay_in_arrears);
3733
3734 -- copy data back from the local variables to OUT or IN-OUT args, if any
3735
3736
3737
3738
3739 return ddrosetta_retval;
3740 end;
3741
3742 function calculatepayment(p_loan_amount NUMBER
3743 , p_periodic_rate NUMBER
3744 , p_num_intervals NUMBER
3745 , p_ending_balance NUMBER
3746 , p_pay_in_arrears number
3747 ) return number
3748
3749 as
3750 ddp_pay_in_arrears boolean;
3751 ddindx binary_integer; indx binary_integer;
3752 ddrosetta_retval number;
3753 begin
3754
3755 -- copy data to the local IN or IN-OUT args, if any
3756
3757
3758
3759
3760 if p_pay_in_arrears is null
3761 then ddp_pay_in_arrears := null;
3762 elsif p_pay_in_arrears = 0
3763 then ddp_pay_in_arrears := false;
3764 else ddp_pay_in_arrears := true;
3765 end if;
3766
3767 -- here's the delegated call to the old PL/SQL routine
3768 ddrosetta_retval := lns_financials.calculatepayment(p_loan_amount,
3769 p_periodic_rate,
3770 p_num_intervals,
3771 p_ending_balance,
3772 ddp_pay_in_arrears);
3773
3774 -- copy data back from the local variables to OUT or IN-OUT args, if any
3775
3776
3777
3778
3779
3780 return ddrosetta_retval;
3781 end;
3782
3783 procedure calcloanremainingamounts(p_api_version NUMBER
3784 , p_init_msg_list VARCHAR2
3785 , p_loan_id NUMBER
3786 , p_date DATE
3787 , p_reason VARCHAR2
3788 , p5_a0 out nocopy JTF_VARCHAR2_TABLE_100
3789 , p5_a1 out nocopy JTF_NUMBER_TABLE
3790 , p5_a2 out nocopy JTF_NUMBER_TABLE
3791 , p5_a3 out nocopy JTF_NUMBER_TABLE
3792 , x_return_status out nocopy VARCHAR2
3793 , x_msg_count out nocopy NUMBER
3794 , x_msg_data out nocopy VARCHAR2
3795 )
3796
3797 as
3798 ddx_payoff_tbl lns_financials.payoff_tbl2;
3799 ddindx binary_integer; indx binary_integer;
3800 begin
3801
3802 -- copy data to the local IN or IN-OUT args, if any
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812 -- here's the delegated call to the old PL/SQL routine
3813 lns_financials.calcloanremainingamounts(p_api_version,
3814 p_init_msg_list,
3815 p_loan_id,
3816 p_date,
3817 p_reason,
3818 ddx_payoff_tbl,
3819 x_return_status,
3820 x_msg_count,
3821 x_msg_data);
3822
3823 -- copy data back from the local variables to OUT or IN-OUT args, if any
3824
3825
3826
3827
3828
3829 lns_financials_w.rosetta_table_copy_out_p8(ddx_payoff_tbl, p5_a0
3830 , p5_a1
3831 , p5_a2
3832 , p5_a3
3833 );
3834
3835
3836
3837 end;
3838
3839 end lns_financials_w;