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