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