DBA Data[Home] [Help]

PACKAGE BODY: APPS.LNS_FEE_ENGINE_W

Source


1 package body lns_fee_engine_w as
2   /* $Header: LNS_FEE_ENGINJ_B.pls 120.3.12010000.4 2010/02/24 01:45:44 mbolli ship $ */
3   procedure rosetta_table_copy_in_p1(t out nocopy lns_fee_engine.fee_basis_tbl, a0 JTF_VARCHAR2_TABLE_100
4     , a1 JTF_NUMBER_TABLE
5     ) as
6     ddindx binary_integer; indx binary_integer;
7   begin
8   if a0 is not null and a0.count > 0 then
9       if a0.count > 0 then
10         indx := a0.first;
11         ddindx := 1;
12         while true loop
13           t(ddindx).fee_basis_name := a0(indx);
14           t(ddindx).fee_basis_amount := a1(indx);
15           ddindx := ddindx+1;
16           if a0.last =indx
17             then exit;
18           end if;
19           indx := a0.next(indx);
20         end loop;
21       end if;
22    end if;
23   end rosetta_table_copy_in_p1;
24   procedure rosetta_table_copy_out_p1(t lns_fee_engine.fee_basis_tbl, a0 out nocopy JTF_VARCHAR2_TABLE_100
25     , a1 out nocopy JTF_NUMBER_TABLE
26     ) as
27     ddindx binary_integer; indx binary_integer;
28   begin
29   if t is null or t.count = 0 then
30     a0 := JTF_VARCHAR2_TABLE_100();
31     a1 := JTF_NUMBER_TABLE();
32   else
33       a0 := JTF_VARCHAR2_TABLE_100();
34       a1 := JTF_NUMBER_TABLE();
35       if t.count > 0 then
36         a0.extend(t.count);
37         a1.extend(t.count);
38         ddindx := t.first;
39         indx := 1;
40         while true loop
41           a0(indx) := t(ddindx).fee_basis_name;
42           a1(indx) := t(ddindx).fee_basis_amount;
43           indx := indx+1;
44           if t.last =ddindx
45             then exit;
46           end if;
47           ddindx := t.next(ddindx);
48         end loop;
49       end if;
50    end if;
51   end rosetta_table_copy_out_p1;
52 
53   procedure rosetta_table_copy_in_p3(t out nocopy lns_fee_engine.fee_structure_tbl, a0 JTF_NUMBER_TABLE
54     , a1 JTF_VARCHAR2_TABLE_100
55     , a2 JTF_VARCHAR2_TABLE_300
56     , a3 JTF_VARCHAR2_TABLE_100
57     , a4 JTF_VARCHAR2_TABLE_100
58     , a5 JTF_NUMBER_TABLE
59     , a6 JTF_VARCHAR2_TABLE_100
60     , a7 JTF_DATE_TABLE
61     , a8 JTF_DATE_TABLE
62     , a9 JTF_NUMBER_TABLE
63     , a10 JTF_VARCHAR2_TABLE_100
64     , a11 JTF_VARCHAR2_TABLE_100
65     , a12 JTF_NUMBER_TABLE
66     , a13 JTF_NUMBER_TABLE
67     , a14 JTF_VARCHAR2_TABLE_100
68     , a15 JTF_VARCHAR2_TABLE_100
69     , a16 JTF_VARCHAR2_TABLE_100
70     , a17 JTF_NUMBER_TABLE
71     , a18 JTF_VARCHAR2_TABLE_100
72     , a19 JTF_VARCHAR2_TABLE_100
73     , a20 JTF_NUMBER_TABLE
74     , a21 JTF_NUMBER_TABLE
75     , a22 JTF_DATE_TABLE
76     , a23 JTF_VARCHAR2_TABLE_100
77     ) as
78     ddindx binary_integer; indx binary_integer;
79   begin
80   if a0 is not null and a0.count > 0 then
81       if a0.count > 0 then
82         indx := a0.first;
83         ddindx := 1;
84         while true loop
85           t(ddindx).fee_id := a0(indx);
86           t(ddindx).fee_name := a1(indx);
87           t(ddindx).fee_description := a2(indx);
88           t(ddindx).fee_category := a3(indx);
89           t(ddindx).fee_type := a4(indx);
90           t(ddindx).fee_amount := a5(indx);
91           t(ddindx).fee_basis := a6(indx);
92           t(ddindx).start_date_active := a7(indx);
93           t(ddindx).end_date_active := a8(indx);
94           t(ddindx).number_grace_days := a9(indx);
95           t(ddindx).fee_billing_option := a10(indx);
96           t(ddindx).fee_rate_type := a11(indx);
97           t(ddindx).fee_from_installment := a12(indx);
98           t(ddindx).fee_to_installment := a13(indx);
99           t(ddindx).fee_waivable_flag := a14(indx);
100           t(ddindx).fee_editable_flag := a15(indx);
101           t(ddindx).fee_deletable_flag := a16(indx);
102           t(ddindx).minimum_overdue_amount := a17(indx);
103           t(ddindx).fee_basis_rule := a18(indx);
104           t(ddindx).currency_code := a19(indx);
105           t(ddindx).disb_header_id := a20(indx);
106           t(ddindx).disbursement_amount := a21(indx);
107           t(ddindx).disbursement_date := a22(indx);
108           t(ddindx).phase := a23(indx);
109           ddindx := ddindx+1;
110           if a0.last =indx
111             then exit;
112           end if;
113           indx := a0.next(indx);
114         end loop;
115       end if;
116    end if;
117   end rosetta_table_copy_in_p3;
118   procedure rosetta_table_copy_out_p3(t lns_fee_engine.fee_structure_tbl, a0 out nocopy JTF_NUMBER_TABLE
119     , a1 out nocopy JTF_VARCHAR2_TABLE_100
120     , a2 out nocopy JTF_VARCHAR2_TABLE_300
121     , a3 out nocopy JTF_VARCHAR2_TABLE_100
122     , a4 out nocopy JTF_VARCHAR2_TABLE_100
123     , a5 out nocopy JTF_NUMBER_TABLE
124     , a6 out nocopy JTF_VARCHAR2_TABLE_100
125     , a7 out nocopy JTF_DATE_TABLE
126     , a8 out nocopy JTF_DATE_TABLE
127     , a9 out nocopy JTF_NUMBER_TABLE
128     , a10 out nocopy JTF_VARCHAR2_TABLE_100
129     , a11 out nocopy JTF_VARCHAR2_TABLE_100
130     , a12 out nocopy JTF_NUMBER_TABLE
131     , a13 out nocopy JTF_NUMBER_TABLE
132     , a14 out nocopy JTF_VARCHAR2_TABLE_100
133     , a15 out nocopy JTF_VARCHAR2_TABLE_100
134     , a16 out nocopy JTF_VARCHAR2_TABLE_100
135     , a17 out nocopy JTF_NUMBER_TABLE
136     , a18 out nocopy JTF_VARCHAR2_TABLE_100
137     , a19 out nocopy JTF_VARCHAR2_TABLE_100
138     , a20 out nocopy JTF_NUMBER_TABLE
139     , a21 out nocopy JTF_NUMBER_TABLE
140     , a22 out nocopy JTF_DATE_TABLE
141     , a23 out nocopy JTF_VARCHAR2_TABLE_100
142     ) as
143     ddindx binary_integer; indx binary_integer;
144   begin
145   if t is null or t.count = 0 then
146     a0 := JTF_NUMBER_TABLE();
147     a1 := JTF_VARCHAR2_TABLE_100();
148     a2 := JTF_VARCHAR2_TABLE_300();
149     a3 := JTF_VARCHAR2_TABLE_100();
150     a4 := JTF_VARCHAR2_TABLE_100();
151     a5 := JTF_NUMBER_TABLE();
152     a6 := JTF_VARCHAR2_TABLE_100();
153     a7 := JTF_DATE_TABLE();
154     a8 := JTF_DATE_TABLE();
155     a9 := JTF_NUMBER_TABLE();
156     a10 := JTF_VARCHAR2_TABLE_100();
157     a11 := JTF_VARCHAR2_TABLE_100();
158     a12 := JTF_NUMBER_TABLE();
159     a13 := JTF_NUMBER_TABLE();
160     a14 := JTF_VARCHAR2_TABLE_100();
161     a15 := JTF_VARCHAR2_TABLE_100();
162     a16 := JTF_VARCHAR2_TABLE_100();
163     a17 := JTF_NUMBER_TABLE();
164     a18 := JTF_VARCHAR2_TABLE_100();
165     a19 := JTF_VARCHAR2_TABLE_100();
166     a20 := JTF_NUMBER_TABLE();
167     a21 := JTF_NUMBER_TABLE();
168     a22 := JTF_DATE_TABLE();
169     a23 := JTF_VARCHAR2_TABLE_100();
170   else
171       a0 := JTF_NUMBER_TABLE();
172       a1 := JTF_VARCHAR2_TABLE_100();
173       a2 := JTF_VARCHAR2_TABLE_300();
174       a3 := JTF_VARCHAR2_TABLE_100();
175       a4 := JTF_VARCHAR2_TABLE_100();
176       a5 := JTF_NUMBER_TABLE();
177       a6 := JTF_VARCHAR2_TABLE_100();
178       a7 := JTF_DATE_TABLE();
179       a8 := JTF_DATE_TABLE();
180       a9 := JTF_NUMBER_TABLE();
181       a10 := JTF_VARCHAR2_TABLE_100();
182       a11 := JTF_VARCHAR2_TABLE_100();
183       a12 := JTF_NUMBER_TABLE();
184       a13 := JTF_NUMBER_TABLE();
185       a14 := JTF_VARCHAR2_TABLE_100();
186       a15 := JTF_VARCHAR2_TABLE_100();
187       a16 := JTF_VARCHAR2_TABLE_100();
188       a17 := JTF_NUMBER_TABLE();
189       a18 := JTF_VARCHAR2_TABLE_100();
190       a19 := JTF_VARCHAR2_TABLE_100();
191       a20 := JTF_NUMBER_TABLE();
192       a21 := JTF_NUMBER_TABLE();
193       a22 := JTF_DATE_TABLE();
194       a23 := JTF_VARCHAR2_TABLE_100();
195       if t.count > 0 then
196         a0.extend(t.count);
197         a1.extend(t.count);
198         a2.extend(t.count);
199         a3.extend(t.count);
200         a4.extend(t.count);
201         a5.extend(t.count);
202         a6.extend(t.count);
203         a7.extend(t.count);
204         a8.extend(t.count);
205         a9.extend(t.count);
206         a10.extend(t.count);
207         a11.extend(t.count);
208         a12.extend(t.count);
209         a13.extend(t.count);
210         a14.extend(t.count);
211         a15.extend(t.count);
212         a16.extend(t.count);
213         a17.extend(t.count);
214         a18.extend(t.count);
215         a19.extend(t.count);
216         a20.extend(t.count);
217         a21.extend(t.count);
218         a22.extend(t.count);
219         a23.extend(t.count);
220         ddindx := t.first;
221         indx := 1;
222         while true loop
223           a0(indx) := t(ddindx).fee_id;
224           a1(indx) := t(ddindx).fee_name;
225           a2(indx) := t(ddindx).fee_description;
226           a3(indx) := t(ddindx).fee_category;
227           a4(indx) := t(ddindx).fee_type;
228           a5(indx) := t(ddindx).fee_amount;
229           a6(indx) := t(ddindx).fee_basis;
230           a7(indx) := t(ddindx).start_date_active;
231           a8(indx) := t(ddindx).end_date_active;
232           a9(indx) := t(ddindx).number_grace_days;
233           a10(indx) := t(ddindx).fee_billing_option;
234           a11(indx) := t(ddindx).fee_rate_type;
235           a12(indx) := t(ddindx).fee_from_installment;
236           a13(indx) := t(ddindx).fee_to_installment;
237           a14(indx) := t(ddindx).fee_waivable_flag;
238           a15(indx) := t(ddindx).fee_editable_flag;
239           a16(indx) := t(ddindx).fee_deletable_flag;
240           a17(indx) := t(ddindx).minimum_overdue_amount;
241           a18(indx) := t(ddindx).fee_basis_rule;
242           a19(indx) := t(ddindx).currency_code;
243           a20(indx) := t(ddindx).disb_header_id;
244           a21(indx) := t(ddindx).disbursement_amount;
245           a22(indx) := t(ddindx).disbursement_date;
246           a23(indx) := t(ddindx).phase;
247           indx := indx+1;
248           if t.last =ddindx
249             then exit;
250           end if;
251           ddindx := t.next(ddindx);
252         end loop;
253       end if;
254    end if;
255   end rosetta_table_copy_out_p3;
256 
257   procedure rosetta_table_copy_in_p5(t out nocopy lns_fee_engine.fee_calc_tbl, a0 JTF_NUMBER_TABLE
258     , a1 JTF_VARCHAR2_TABLE_100
259     , a2 JTF_VARCHAR2_TABLE_100
260     , a3 JTF_VARCHAR2_TABLE_100
261     , a4 JTF_NUMBER_TABLE
262     , a5 JTF_NUMBER_TABLE
263     , a6 JTF_VARCHAR2_TABLE_300
264     , a7 JTF_NUMBER_TABLE
265     , a8 JTF_VARCHAR2_TABLE_100
266     , a9 JTF_VARCHAR2_TABLE_100
267     , a10 JTF_VARCHAR2_TABLE_100
268     , a11 JTF_NUMBER_TABLE
269     , a12 JTF_VARCHAR2_TABLE_100
270     , a13 JTF_VARCHAR2_TABLE_100
271     , a14 JTF_NUMBER_TABLE
272     , a15 JTF_VARCHAR2_TABLE_100
273     , a16 JTF_VARCHAR2_TABLE_100
274     ) as
275     ddindx binary_integer; indx binary_integer;
276   begin
277   if a0 is not null and a0.count > 0 then
278       if a0.count > 0 then
279         indx := a0.first;
280         ddindx := 1;
281         while true loop
282           t(ddindx).fee_id := a0(indx);
283           t(ddindx).fee_name := a1(indx);
284           t(ddindx).fee_category := a2(indx);
285           t(ddindx).fee_type := a3(indx);
286           t(ddindx).fee_amount := a4(indx);
287           t(ddindx).fee_installment := a5(indx);
288           t(ddindx).fee_description := a6(indx);
289           t(ddindx).fee_schedule_id := a7(indx);
290           t(ddindx).fee_waivable_flag := a8(indx);
291           t(ddindx).fee_editable_flag := a9(indx);
292           t(ddindx).fee_deletable_flag := a10(indx);
293           t(ddindx).waive_amount := a11(indx);
294           t(ddindx).billed_flag := a12(indx);
295           t(ddindx).active_flag := a13(indx);
296           t(ddindx).disb_header_id := a14(indx);
297           t(ddindx).fee_billing_option := a15(indx);
298           t(ddindx).phase := a16(indx);
299           ddindx := ddindx+1;
300           if a0.last =indx
301             then exit;
302           end if;
303           indx := a0.next(indx);
304         end loop;
305       end if;
306    end if;
307   end rosetta_table_copy_in_p5;
308   procedure rosetta_table_copy_out_p5(t lns_fee_engine.fee_calc_tbl, a0 out nocopy JTF_NUMBER_TABLE
309     , a1 out nocopy JTF_VARCHAR2_TABLE_100
310     , a2 out nocopy JTF_VARCHAR2_TABLE_100
311     , a3 out nocopy JTF_VARCHAR2_TABLE_100
312     , a4 out nocopy JTF_NUMBER_TABLE
313     , a5 out nocopy JTF_NUMBER_TABLE
314     , a6 out nocopy JTF_VARCHAR2_TABLE_300
315     , a7 out nocopy JTF_NUMBER_TABLE
316     , a8 out nocopy JTF_VARCHAR2_TABLE_100
317     , a9 out nocopy JTF_VARCHAR2_TABLE_100
318     , a10 out nocopy JTF_VARCHAR2_TABLE_100
319     , a11 out nocopy JTF_NUMBER_TABLE
320     , a12 out nocopy JTF_VARCHAR2_TABLE_100
321     , a13 out nocopy JTF_VARCHAR2_TABLE_100
322     , a14 out nocopy JTF_NUMBER_TABLE
323     , a15 out nocopy JTF_VARCHAR2_TABLE_100
324     , a16 out nocopy JTF_VARCHAR2_TABLE_100
325     ) as
326     ddindx binary_integer; indx binary_integer;
327   begin
328   if t is null or t.count = 0 then
329     a0 := JTF_NUMBER_TABLE();
330     a1 := JTF_VARCHAR2_TABLE_100();
331     a2 := JTF_VARCHAR2_TABLE_100();
332     a3 := JTF_VARCHAR2_TABLE_100();
333     a4 := JTF_NUMBER_TABLE();
334     a5 := JTF_NUMBER_TABLE();
335     a6 := JTF_VARCHAR2_TABLE_300();
336     a7 := JTF_NUMBER_TABLE();
337     a8 := JTF_VARCHAR2_TABLE_100();
338     a9 := JTF_VARCHAR2_TABLE_100();
339     a10 := JTF_VARCHAR2_TABLE_100();
340     a11 := JTF_NUMBER_TABLE();
341     a12 := JTF_VARCHAR2_TABLE_100();
342     a13 := JTF_VARCHAR2_TABLE_100();
343     a14 := JTF_NUMBER_TABLE();
344     a15 := JTF_VARCHAR2_TABLE_100();
345     a16 := JTF_VARCHAR2_TABLE_100();
346   else
347       a0 := JTF_NUMBER_TABLE();
348       a1 := JTF_VARCHAR2_TABLE_100();
349       a2 := JTF_VARCHAR2_TABLE_100();
350       a3 := JTF_VARCHAR2_TABLE_100();
351       a4 := JTF_NUMBER_TABLE();
352       a5 := JTF_NUMBER_TABLE();
353       a6 := JTF_VARCHAR2_TABLE_300();
354       a7 := JTF_NUMBER_TABLE();
355       a8 := JTF_VARCHAR2_TABLE_100();
356       a9 := JTF_VARCHAR2_TABLE_100();
357       a10 := JTF_VARCHAR2_TABLE_100();
358       a11 := JTF_NUMBER_TABLE();
359       a12 := JTF_VARCHAR2_TABLE_100();
360       a13 := JTF_VARCHAR2_TABLE_100();
361       a14 := JTF_NUMBER_TABLE();
362       a15 := JTF_VARCHAR2_TABLE_100();
363       a16 := JTF_VARCHAR2_TABLE_100();
364       if t.count > 0 then
365         a0.extend(t.count);
366         a1.extend(t.count);
367         a2.extend(t.count);
368         a3.extend(t.count);
369         a4.extend(t.count);
370         a5.extend(t.count);
371         a6.extend(t.count);
372         a7.extend(t.count);
373         a8.extend(t.count);
374         a9.extend(t.count);
375         a10.extend(t.count);
376         a11.extend(t.count);
377         a12.extend(t.count);
378         a13.extend(t.count);
379         a14.extend(t.count);
380         a15.extend(t.count);
381         a16.extend(t.count);
382         ddindx := t.first;
383         indx := 1;
384         while true loop
385           a0(indx) := t(ddindx).fee_id;
386           a1(indx) := t(ddindx).fee_name;
387           a2(indx) := t(ddindx).fee_category;
388           a3(indx) := t(ddindx).fee_type;
389           a4(indx) := t(ddindx).fee_amount;
390           a5(indx) := t(ddindx).fee_installment;
391           a6(indx) := t(ddindx).fee_description;
392           a7(indx) := t(ddindx).fee_schedule_id;
393           a8(indx) := t(ddindx).fee_waivable_flag;
394           a9(indx) := t(ddindx).fee_editable_flag;
395           a10(indx) := t(ddindx).fee_deletable_flag;
396           a11(indx) := t(ddindx).waive_amount;
397           a12(indx) := t(ddindx).billed_flag;
398           a13(indx) := t(ddindx).active_flag;
399           a14(indx) := t(ddindx).disb_header_id;
400           a15(indx) := t(ddindx).fee_billing_option;
401           a16(indx) := t(ddindx).phase;
402           indx := indx+1;
403           if t.last =ddindx
404             then exit;
405           end if;
406           ddindx := t.next(ddindx);
407         end loop;
408       end if;
409    end if;
410   end rosetta_table_copy_out_p5;
411 
412   procedure calculatefees(p_loan_id  NUMBER
413     , p1_a0 JTF_VARCHAR2_TABLE_100
414     , p1_a1 JTF_NUMBER_TABLE
415     , p_installment  NUMBER
416     , p3_a0 JTF_NUMBER_TABLE
417     , p3_a1 JTF_VARCHAR2_TABLE_100
418     , p3_a2 JTF_VARCHAR2_TABLE_300
419     , p3_a3 JTF_VARCHAR2_TABLE_100
420     , p3_a4 JTF_VARCHAR2_TABLE_100
421     , p3_a5 JTF_NUMBER_TABLE
422     , p3_a6 JTF_VARCHAR2_TABLE_100
423     , p3_a7 JTF_DATE_TABLE
424     , p3_a8 JTF_DATE_TABLE
425     , p3_a9 JTF_NUMBER_TABLE
426     , p3_a10 JTF_VARCHAR2_TABLE_100
427     , p3_a11 JTF_VARCHAR2_TABLE_100
428     , p3_a12 JTF_NUMBER_TABLE
429     , p3_a13 JTF_NUMBER_TABLE
430     , p3_a14 JTF_VARCHAR2_TABLE_100
431     , p3_a15 JTF_VARCHAR2_TABLE_100
432     , p3_a16 JTF_VARCHAR2_TABLE_100
433     , p3_a17 JTF_NUMBER_TABLE
434     , p3_a18 JTF_VARCHAR2_TABLE_100
435     , p3_a19 JTF_VARCHAR2_TABLE_100
436     , p3_a20 JTF_NUMBER_TABLE
437     , p3_a21 JTF_NUMBER_TABLE
438     , p3_a22 JTF_DATE_TABLE
439     , p3_a23 JTF_VARCHAR2_TABLE_100
440     , p4_a0 out nocopy JTF_NUMBER_TABLE
441     , p4_a1 out nocopy JTF_VARCHAR2_TABLE_100
442     , p4_a2 out nocopy JTF_VARCHAR2_TABLE_100
443     , p4_a3 out nocopy JTF_VARCHAR2_TABLE_100
444     , p4_a4 out nocopy JTF_NUMBER_TABLE
445     , p4_a5 out nocopy JTF_NUMBER_TABLE
446     , p4_a6 out nocopy JTF_VARCHAR2_TABLE_300
447     , p4_a7 out nocopy JTF_NUMBER_TABLE
448     , p4_a8 out nocopy JTF_VARCHAR2_TABLE_100
449     , p4_a9 out nocopy JTF_VARCHAR2_TABLE_100
450     , p4_a10 out nocopy JTF_VARCHAR2_TABLE_100
451     , p4_a11 out nocopy JTF_NUMBER_TABLE
452     , p4_a12 out nocopy JTF_VARCHAR2_TABLE_100
453     , p4_a13 out nocopy JTF_VARCHAR2_TABLE_100
454     , p4_a14 out nocopy JTF_NUMBER_TABLE
455     , p4_a15 out nocopy JTF_VARCHAR2_TABLE_100
456     , p4_a16 out nocopy JTF_VARCHAR2_TABLE_100
457     , x_return_status out nocopy  VARCHAR2
458     , x_msg_count out nocopy  NUMBER
459     , x_msg_data out nocopy  VARCHAR2
460   )
461 
462   as
463     ddp_fee_basis_tbl lns_fee_engine.fee_basis_tbl;
464     ddp_fee_structures lns_fee_engine.fee_structure_tbl;
465     ddx_fees_tbl lns_fee_engine.fee_calc_tbl;
466     ddindx binary_integer; indx binary_integer;
467   begin
468 
469     -- copy data to the local IN or IN-OUT args, if any
470 
471     lns_fee_engine_w.rosetta_table_copy_in_p1(ddp_fee_basis_tbl, p1_a0
472       , p1_a1
473       );
474 
475 
476     lns_fee_engine_w.rosetta_table_copy_in_p3(ddp_fee_structures, p3_a0
477       , p3_a1
478       , p3_a2
479       , p3_a3
480       , p3_a4
481       , p3_a5
482       , p3_a6
483       , p3_a7
484       , p3_a8
485       , p3_a9
486       , p3_a10
487       , p3_a11
488       , p3_a12
489       , p3_a13
490       , p3_a14
491       , p3_a15
492       , p3_a16
493       , p3_a17
494       , p3_a18
495       , p3_a19
496       , p3_a20
497       , p3_a21
498       , p3_a22
499       , p3_a23
500       );
501 
502 
503 
504 
505 
506     -- here's the delegated call to the old PL/SQL routine
507     lns_fee_engine.calculatefees(p_loan_id,
508       ddp_fee_basis_tbl,
509       p_installment,
510       ddp_fee_structures,
511       ddx_fees_tbl,
512       x_return_status,
513       x_msg_count,
514       x_msg_data);
515 
516     -- copy data back from the local variables to OUT or IN-OUT args, if any
517 
518 
519 
520 
521     lns_fee_engine_w.rosetta_table_copy_out_p5(ddx_fees_tbl, p4_a0
522       , p4_a1
523       , p4_a2
524       , p4_a3
525       , p4_a4
526       , p4_a5
527       , p4_a6
528       , p4_a7
529       , p4_a8
530       , p4_a9
531       , p4_a10
532       , p4_a11
533       , p4_a12
534       , p4_a13
535       , p4_a14
536       , p4_a15
537       , p4_a16
538       );
539 
540 
541 
542   end;
543 
544   procedure writefeeschedule(p_init_msg_list  VARCHAR2
545     , p_commit  VARCHAR2
546     , p_loan_id  NUMBER
547     , p3_a0 in out nocopy JTF_NUMBER_TABLE
548     , p3_a1 in out nocopy JTF_VARCHAR2_TABLE_100
549     , p3_a2 in out nocopy JTF_VARCHAR2_TABLE_100
550     , p3_a3 in out nocopy JTF_VARCHAR2_TABLE_100
551     , p3_a4 in out nocopy JTF_NUMBER_TABLE
552     , p3_a5 in out nocopy JTF_NUMBER_TABLE
553     , p3_a6 in out nocopy JTF_VARCHAR2_TABLE_300
554     , p3_a7 in out nocopy JTF_NUMBER_TABLE
555     , p3_a8 in out nocopy JTF_VARCHAR2_TABLE_100
556     , p3_a9 in out nocopy JTF_VARCHAR2_TABLE_100
557     , p3_a10 in out nocopy JTF_VARCHAR2_TABLE_100
558     , p3_a11 in out nocopy JTF_NUMBER_TABLE
559     , p3_a12 in out nocopy JTF_VARCHAR2_TABLE_100
560     , p3_a13 in out nocopy JTF_VARCHAR2_TABLE_100
561     , p3_a14 in out nocopy JTF_NUMBER_TABLE
562     , p3_a15 in out nocopy JTF_VARCHAR2_TABLE_100
563     , p3_a16 in out nocopy JTF_VARCHAR2_TABLE_100
564     , x_return_status out nocopy  VARCHAR2
565     , x_msg_count out nocopy  NUMBER
566     , x_msg_data out nocopy  VARCHAR2
567   )
568 
569   as
570     ddp_fees_tbl lns_fee_engine.fee_calc_tbl;
571     ddindx binary_integer; indx binary_integer;
572   begin
573 
574     -- copy data to the local IN or IN-OUT args, if any
575 
576 
577 
578     lns_fee_engine_w.rosetta_table_copy_in_p5(ddp_fees_tbl, p3_a0
579       , p3_a1
580       , p3_a2
581       , p3_a3
582       , p3_a4
583       , p3_a5
584       , p3_a6
585       , p3_a7
586       , p3_a8
587       , p3_a9
588       , p3_a10
589       , p3_a11
590       , p3_a12
591       , p3_a13
592       , p3_a14
593       , p3_a15
594       , p3_a16
595       );
596 
597 
598 
599 
600     -- here's the delegated call to the old PL/SQL routine
601     lns_fee_engine.writefeeschedule(p_init_msg_list,
602       p_commit,
603       p_loan_id,
604       ddp_fees_tbl,
605       x_return_status,
606       x_msg_count,
607       x_msg_data);
608 
609     -- copy data back from the local variables to OUT or IN-OUT args, if any
610 
611 
612 
613     lns_fee_engine_w.rosetta_table_copy_out_p5(ddp_fees_tbl, p3_a0
614       , p3_a1
615       , p3_a2
616       , p3_a3
617       , p3_a4
618       , p3_a5
619       , p3_a6
620       , p3_a7
621       , p3_a8
622       , p3_a9
623       , p3_a10
624       , p3_a11
625       , p3_a12
626       , p3_a13
627       , p3_a14
628       , p3_a15
629       , p3_a16
630       );
631 
632 
633 
634   end;
635 
636   procedure updatefeeschedule(p_init_msg_list  VARCHAR2
637     , p_commit  VARCHAR2
638     , p_loan_id  NUMBER
639     , p3_a0 JTF_NUMBER_TABLE
640     , p3_a1 JTF_VARCHAR2_TABLE_100
641     , p3_a2 JTF_VARCHAR2_TABLE_100
642     , p3_a3 JTF_VARCHAR2_TABLE_100
643     , p3_a4 JTF_NUMBER_TABLE
644     , p3_a5 JTF_NUMBER_TABLE
645     , p3_a6 JTF_VARCHAR2_TABLE_300
646     , p3_a7 JTF_NUMBER_TABLE
647     , p3_a8 JTF_VARCHAR2_TABLE_100
648     , p3_a9 JTF_VARCHAR2_TABLE_100
649     , p3_a10 JTF_VARCHAR2_TABLE_100
650     , p3_a11 JTF_NUMBER_TABLE
651     , p3_a12 JTF_VARCHAR2_TABLE_100
652     , p3_a13 JTF_VARCHAR2_TABLE_100
653     , p3_a14 JTF_NUMBER_TABLE
654     , p3_a15 JTF_VARCHAR2_TABLE_100
655     , p3_a16 JTF_VARCHAR2_TABLE_100
656     , x_return_status out nocopy  VARCHAR2
657     , x_msg_count out nocopy  NUMBER
658     , x_msg_data out nocopy  VARCHAR2
659   )
660 
661   as
662     ddp_fees_tbl lns_fee_engine.fee_calc_tbl;
663     ddindx binary_integer; indx binary_integer;
664   begin
665 
666     -- copy data to the local IN or IN-OUT args, if any
667 
668 
669 
670     lns_fee_engine_w.rosetta_table_copy_in_p5(ddp_fees_tbl, p3_a0
671       , p3_a1
672       , p3_a2
673       , p3_a3
674       , p3_a4
675       , p3_a5
676       , p3_a6
677       , p3_a7
678       , p3_a8
679       , p3_a9
680       , p3_a10
681       , p3_a11
682       , p3_a12
683       , p3_a13
684       , p3_a14
685       , p3_a15
686       , p3_a16
687       );
688 
689 
690 
691 
692     -- here's the delegated call to the old PL/SQL routine
693     lns_fee_engine.updatefeeschedule(p_init_msg_list,
694       p_commit,
695       p_loan_id,
696       ddp_fees_tbl,
697       x_return_status,
698       x_msg_count,
699       x_msg_data);
700 
701     -- copy data back from the local variables to OUT or IN-OUT args, if any
702 
703 
704 
705 
706 
707 
708   end;
709 
710   procedure getfeeschedule(p_init_msg_list  VARCHAR2
711     , p_loan_id  NUMBER
712     , p_installment_number  NUMBER
713     , p_disb_header_id  NUMBER
714     , p_phase  VARCHAR2
715     , p5_a0 out nocopy JTF_NUMBER_TABLE
716     , p5_a1 out nocopy JTF_VARCHAR2_TABLE_100
717     , p5_a2 out nocopy JTF_VARCHAR2_TABLE_100
718     , p5_a3 out nocopy JTF_VARCHAR2_TABLE_100
719     , p5_a4 out nocopy JTF_NUMBER_TABLE
720     , p5_a5 out nocopy JTF_NUMBER_TABLE
721     , p5_a6 out nocopy JTF_VARCHAR2_TABLE_300
722     , p5_a7 out nocopy JTF_NUMBER_TABLE
723     , p5_a8 out nocopy JTF_VARCHAR2_TABLE_100
724     , p5_a9 out nocopy JTF_VARCHAR2_TABLE_100
725     , p5_a10 out nocopy JTF_VARCHAR2_TABLE_100
726     , p5_a11 out nocopy JTF_NUMBER_TABLE
727     , p5_a12 out nocopy JTF_VARCHAR2_TABLE_100
728     , p5_a13 out nocopy JTF_VARCHAR2_TABLE_100
729     , p5_a14 out nocopy JTF_NUMBER_TABLE
730     , p5_a15 out nocopy JTF_VARCHAR2_TABLE_100
731     , p5_a16 out nocopy JTF_VARCHAR2_TABLE_100
732     , x_return_status out nocopy  VARCHAR2
733     , x_msg_count out nocopy  NUMBER
734     , x_msg_data out nocopy  VARCHAR2
735   )
736 
737   as
738     ddx_fees_tbl lns_fee_engine.fee_calc_tbl;
739     ddindx binary_integer; indx binary_integer;
740   begin
741 
742     -- copy data to the local IN or IN-OUT args, if any
743 
744 
745 
746 
747 
748 
749 
750 
751 
752     -- here's the delegated call to the old PL/SQL routine
753     lns_fee_engine.getfeeschedule(p_init_msg_list,
754       p_loan_id,
755       p_installment_number,
756       p_disb_header_id,
757       p_phase,
758       ddx_fees_tbl,
759       x_return_status,
760       x_msg_count,
761       x_msg_data);
762 
763     -- copy data back from the local variables to OUT or IN-OUT args, if any
764 
765 
766 
767 
768 
769     lns_fee_engine_w.rosetta_table_copy_out_p5(ddx_fees_tbl, p5_a0
770       , p5_a1
771       , p5_a2
772       , p5_a3
773       , p5_a4
774       , p5_a5
775       , p5_a6
776       , p5_a7
777       , p5_a8
778       , p5_a9
779       , p5_a10
780       , p5_a11
781       , p5_a12
782       , p5_a13
783       , p5_a14
784       , p5_a15
785       , p5_a16
786       );
787 
788 
789 
790   end;
791 
792   procedure getfeedetails(p_init_msg_list  VARCHAR2
793     , p_loan_id  NUMBER
794     , p_installment  NUMBER
795     , p3_a0 JTF_VARCHAR2_TABLE_100
796     , p3_a1 JTF_NUMBER_TABLE
797     , p_based_on_terms  VARCHAR2
798     , p_phase  VARCHAR2
799     , p6_a0 out nocopy JTF_NUMBER_TABLE
800     , p6_a1 out nocopy JTF_VARCHAR2_TABLE_100
801     , p6_a2 out nocopy JTF_VARCHAR2_TABLE_100
802     , p6_a3 out nocopy JTF_VARCHAR2_TABLE_100
803     , p6_a4 out nocopy JTF_NUMBER_TABLE
804     , p6_a5 out nocopy JTF_NUMBER_TABLE
805     , p6_a6 out nocopy JTF_VARCHAR2_TABLE_300
806     , p6_a7 out nocopy JTF_NUMBER_TABLE
807     , p6_a8 out nocopy JTF_VARCHAR2_TABLE_100
808     , p6_a9 out nocopy JTF_VARCHAR2_TABLE_100
809     , p6_a10 out nocopy JTF_VARCHAR2_TABLE_100
810     , p6_a11 out nocopy JTF_NUMBER_TABLE
811     , p6_a12 out nocopy JTF_VARCHAR2_TABLE_100
812     , p6_a13 out nocopy JTF_VARCHAR2_TABLE_100
813     , p6_a14 out nocopy JTF_NUMBER_TABLE
814     , p6_a15 out nocopy JTF_VARCHAR2_TABLE_100
815     , p6_a16 out nocopy JTF_VARCHAR2_TABLE_100
816     , x_return_status out nocopy  VARCHAR2
817     , x_msg_count out nocopy  NUMBER
818     , x_msg_data out nocopy  VARCHAR2
819   )
820 
821   as
822     ddp_fee_basis_tbl lns_fee_engine.fee_basis_tbl;
823     ddx_fees_tbl lns_fee_engine.fee_calc_tbl;
824     ddindx binary_integer; indx binary_integer;
825   begin
826 
827     -- copy data to the local IN or IN-OUT args, if any
828 
829 
830 
831     lns_fee_engine_w.rosetta_table_copy_in_p1(ddp_fee_basis_tbl, p3_a0
832       , p3_a1
833       );
834 
835 
836 
837 
838 
839 
840 
841     -- here's the delegated call to the old PL/SQL routine
842     lns_fee_engine.getfeedetails(p_init_msg_list,
843       p_loan_id,
844       p_installment,
845       ddp_fee_basis_tbl,
846       p_based_on_terms,
847       p_phase,
848       ddx_fees_tbl,
849       x_return_status,
850       x_msg_count,
851       x_msg_data);
852 
853     -- copy data back from the local variables to OUT or IN-OUT args, if any
854 
855 
856 
857 
858 
859 
860     lns_fee_engine_w.rosetta_table_copy_out_p5(ddx_fees_tbl, p6_a0
861       , p6_a1
862       , p6_a2
863       , p6_a3
864       , p6_a4
865       , p6_a5
866       , p6_a6
867       , p6_a7
868       , p6_a8
869       , p6_a9
870       , p6_a10
871       , p6_a11
872       , p6_a12
873       , p6_a13
874       , p6_a14
875       , p6_a15
876       , p6_a16
877       );
878 
879 
880 
881   end;
882 
883   procedure processfees(p_init_msg_list  VARCHAR2
884     , p_commit  VARCHAR2
885     , p_loan_id  NUMBER
886     , p_installment_number  NUMBER
887     , p4_a0 JTF_VARCHAR2_TABLE_100
888     , p4_a1 JTF_NUMBER_TABLE
889     , p5_a0 JTF_NUMBER_TABLE
890     , p5_a1 JTF_VARCHAR2_TABLE_100
891     , p5_a2 JTF_VARCHAR2_TABLE_300
892     , p5_a3 JTF_VARCHAR2_TABLE_100
893     , p5_a4 JTF_VARCHAR2_TABLE_100
894     , p5_a5 JTF_NUMBER_TABLE
895     , p5_a6 JTF_VARCHAR2_TABLE_100
896     , p5_a7 JTF_DATE_TABLE
897     , p5_a8 JTF_DATE_TABLE
898     , p5_a9 JTF_NUMBER_TABLE
899     , p5_a10 JTF_VARCHAR2_TABLE_100
900     , p5_a11 JTF_VARCHAR2_TABLE_100
901     , p5_a12 JTF_NUMBER_TABLE
902     , p5_a13 JTF_NUMBER_TABLE
903     , p5_a14 JTF_VARCHAR2_TABLE_100
904     , p5_a15 JTF_VARCHAR2_TABLE_100
905     , p5_a16 JTF_VARCHAR2_TABLE_100
906     , p5_a17 JTF_NUMBER_TABLE
907     , p5_a18 JTF_VARCHAR2_TABLE_100
908     , p5_a19 JTF_VARCHAR2_TABLE_100
909     , p5_a20 JTF_NUMBER_TABLE
910     , p5_a21 JTF_NUMBER_TABLE
911     , p5_a22 JTF_DATE_TABLE
912     , p5_a23 JTF_VARCHAR2_TABLE_100
913     , p6_a0 out nocopy JTF_NUMBER_TABLE
914     , p6_a1 out nocopy JTF_VARCHAR2_TABLE_100
915     , p6_a2 out nocopy JTF_VARCHAR2_TABLE_100
916     , p6_a3 out nocopy JTF_VARCHAR2_TABLE_100
917     , p6_a4 out nocopy JTF_NUMBER_TABLE
918     , p6_a5 out nocopy JTF_NUMBER_TABLE
919     , p6_a6 out nocopy JTF_VARCHAR2_TABLE_300
920     , p6_a7 out nocopy JTF_NUMBER_TABLE
921     , p6_a8 out nocopy JTF_VARCHAR2_TABLE_100
922     , p6_a9 out nocopy JTF_VARCHAR2_TABLE_100
923     , p6_a10 out nocopy JTF_VARCHAR2_TABLE_100
924     , p6_a11 out nocopy JTF_NUMBER_TABLE
925     , p6_a12 out nocopy JTF_VARCHAR2_TABLE_100
926     , p6_a13 out nocopy JTF_VARCHAR2_TABLE_100
927     , p6_a14 out nocopy JTF_NUMBER_TABLE
928     , p6_a15 out nocopy JTF_VARCHAR2_TABLE_100
929     , p6_a16 out nocopy JTF_VARCHAR2_TABLE_100
930     , x_return_status out nocopy  VARCHAR2
931     , x_msg_count out nocopy  NUMBER
932     , x_msg_data out nocopy  VARCHAR2
933   )
934 
935   as
936     ddp_fee_basis_tbl lns_fee_engine.fee_basis_tbl;
937     ddp_fee_structures lns_fee_engine.fee_structure_tbl;
938     ddx_fees_tbl lns_fee_engine.fee_calc_tbl;
939     ddindx binary_integer; indx binary_integer;
940   begin
941 
942     -- copy data to the local IN or IN-OUT args, if any
943 
944 
945 
946 
947     lns_fee_engine_w.rosetta_table_copy_in_p1(ddp_fee_basis_tbl, p4_a0
948       , p4_a1
949       );
950 
951     lns_fee_engine_w.rosetta_table_copy_in_p3(ddp_fee_structures, p5_a0
952       , p5_a1
953       , p5_a2
954       , p5_a3
955       , p5_a4
956       , p5_a5
957       , p5_a6
958       , p5_a7
959       , p5_a8
960       , p5_a9
961       , p5_a10
962       , p5_a11
963       , p5_a12
964       , p5_a13
965       , p5_a14
966       , p5_a15
967       , p5_a16
968       , p5_a17
969       , p5_a18
970       , p5_a19
971       , p5_a20
972       , p5_a21
973       , p5_a22
974       , p5_a23
975       );
976 
977 
978 
979 
980 
981     -- here's the delegated call to the old PL/SQL routine
982     lns_fee_engine.processfees(p_init_msg_list,
983       p_commit,
984       p_loan_id,
985       p_installment_number,
986       ddp_fee_basis_tbl,
987       ddp_fee_structures,
988       ddx_fees_tbl,
989       x_return_status,
990       x_msg_count,
991       x_msg_data);
992 
993     -- copy data back from the local variables to OUT or IN-OUT args, if any
994 
995 
996 
997 
998 
999 
1000     lns_fee_engine_w.rosetta_table_copy_out_p5(ddx_fees_tbl, p6_a0
1001       , p6_a1
1002       , p6_a2
1003       , p6_a3
1004       , p6_a4
1005       , p6_a5
1006       , p6_a6
1007       , p6_a7
1008       , p6_a8
1009       , p6_a9
1010       , p6_a10
1011       , p6_a11
1012       , p6_a12
1013       , p6_a13
1014       , p6_a14
1015       , p6_a15
1016       , p6_a16
1017       );
1018 
1019 
1020 
1021   end;
1022 
1023   procedure getsubmitforapprfeeschedule(p_init_msg_list  VARCHAR2
1024     , p_loan_id  NUMBER
1025     , p_billed_flag  VARCHAR2
1026     , p3_a0 out nocopy JTF_NUMBER_TABLE
1027     , p3_a1 out nocopy JTF_VARCHAR2_TABLE_100
1028     , p3_a2 out nocopy JTF_VARCHAR2_TABLE_100
1029     , p3_a3 out nocopy JTF_VARCHAR2_TABLE_100
1030     , p3_a4 out nocopy JTF_NUMBER_TABLE
1031     , p3_a5 out nocopy JTF_NUMBER_TABLE
1032     , p3_a6 out nocopy JTF_VARCHAR2_TABLE_300
1033     , p3_a7 out nocopy JTF_NUMBER_TABLE
1034     , p3_a8 out nocopy JTF_VARCHAR2_TABLE_100
1035     , p3_a9 out nocopy JTF_VARCHAR2_TABLE_100
1036     , p3_a10 out nocopy JTF_VARCHAR2_TABLE_100
1037     , p3_a11 out nocopy JTF_NUMBER_TABLE
1038     , p3_a12 out nocopy JTF_VARCHAR2_TABLE_100
1039     , p3_a13 out nocopy JTF_VARCHAR2_TABLE_100
1040     , p3_a14 out nocopy JTF_NUMBER_TABLE
1041     , p3_a15 out nocopy JTF_VARCHAR2_TABLE_100
1042     , p3_a16 out nocopy JTF_VARCHAR2_TABLE_100
1043     , x_return_status out nocopy  VARCHAR2
1044     , x_msg_count out nocopy  NUMBER
1045     , x_msg_data out nocopy  VARCHAR2
1046   )
1047 
1048   as
1049     ddx_fees_tbl lns_fee_engine.fee_calc_tbl;
1050     ddindx binary_integer; indx binary_integer;
1051   begin
1052 
1053     -- copy data to the local IN or IN-OUT args, if any
1054 
1055 
1056 
1057 
1058 
1059 
1060 
1061     -- here's the delegated call to the old PL/SQL routine
1062     lns_fee_engine.getsubmitforapprfeeschedule(p_init_msg_list,
1063       p_loan_id,
1064       p_billed_flag,
1065       ddx_fees_tbl,
1066       x_return_status,
1067       x_msg_count,
1068       x_msg_data);
1069 
1070     -- copy data back from the local variables to OUT or IN-OUT args, if any
1071 
1072 
1073 
1074     lns_fee_engine_w.rosetta_table_copy_out_p5(ddx_fees_tbl, p3_a0
1075       , p3_a1
1076       , p3_a2
1077       , p3_a3
1078       , p3_a4
1079       , p3_a5
1080       , p3_a6
1081       , p3_a7
1082       , p3_a8
1083       , p3_a9
1084       , p3_a10
1085       , p3_a11
1086       , p3_a12
1087       , p3_a13
1088       , p3_a14
1089       , p3_a15
1090       , p3_a16
1091       );
1092 
1093 
1094 
1095   end;
1096 
1097 end lns_fee_engine_w;