DBA Data[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;