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