DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_FMP_MR_INTERVAL_PVT_W

Source


1 package body ahl_fmp_mr_interval_pvt_w as
2   /* $Header: AHLWMITB.pls 120.3.12020000.2 2012/12/13 05:55:58 shnatu ship $ */
3   rosetta_g_mistake_date date := to_date('01/01/+4713', 'MM/DD/SYYYY');
4   rosetta_g_miss_date date := to_date('01/01/-4712', 'MM/DD/SYYYY');
5   rosetta_g_mistake_date_high date := to_date('01/01/+4710', 'MM/DD/SYYYY');
6   rosetta_g_mistake_date_low date := to_date('01/01/-4710', 'MM/DD/SYYYY');
7 
8   -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
9   function rosetta_g_miss_date_in_map(d date) return date as
10   begin
11     if d > rosetta_g_mistake_date_high then return fnd_api.g_miss_date; end if;
12     if d < rosetta_g_mistake_date_low then return fnd_api.g_miss_date; end if;
13     return d;
14   end;
15 
16   procedure rosetta_table_copy_in_p2(t out nocopy ahl_fmp_mr_interval_pvt.interval_tbl_type, a0 JTF_NUMBER_TABLE
17     , a1 JTF_NUMBER_TABLE
18     , a2 JTF_NUMBER_TABLE
19     , a3 JTF_VARCHAR2_TABLE_100
20     , a4 JTF_NUMBER_TABLE
21     , a5 JTF_NUMBER_TABLE
22     , a6 JTF_NUMBER_TABLE
23     , a7 JTF_NUMBER_TABLE
24     , a8 JTF_DATE_TABLE
25     , a9 JTF_DATE_TABLE
26     , a10 JTF_NUMBER_TABLE
27     , a11 JTF_NUMBER_TABLE
28     , a12 JTF_NUMBER_TABLE
29     , a13 JTF_VARCHAR2_TABLE_100
30     , a14 JTF_VARCHAR2_TABLE_200
31     , a15 JTF_VARCHAR2_TABLE_200
32     , a16 JTF_VARCHAR2_TABLE_200
33     , a17 JTF_VARCHAR2_TABLE_200
34     , a18 JTF_VARCHAR2_TABLE_200
35     , a19 JTF_VARCHAR2_TABLE_200
36     , a20 JTF_VARCHAR2_TABLE_200
37     , a21 JTF_VARCHAR2_TABLE_200
38     , a22 JTF_VARCHAR2_TABLE_200
39     , a23 JTF_VARCHAR2_TABLE_200
40     , a24 JTF_VARCHAR2_TABLE_200
41     , a25 JTF_VARCHAR2_TABLE_200
42     , a26 JTF_VARCHAR2_TABLE_200
43     , a27 JTF_VARCHAR2_TABLE_200
44     , a28 JTF_VARCHAR2_TABLE_200
45     , a29 JTF_DATE_TABLE
46     , a30 JTF_NUMBER_TABLE
47     , a31 JTF_DATE_TABLE
48     , a32 JTF_NUMBER_TABLE
49     , a33 JTF_NUMBER_TABLE
50     , a34 JTF_VARCHAR2_TABLE_100
51     , a35 JTF_VARCHAR2_TABLE_100
52     , a36 JTF_VARCHAR2_TABLE_100
53     ) as
54     ddindx binary_integer; indx binary_integer;
55   begin
56   if a0 is not null and a0.count > 0 then
57       if a0.count > 0 then
58         indx := a0.first;
59         ddindx := 1;
60         while true loop
61           t(ddindx).mr_interval_id := a0(indx);
62           t(ddindx).object_version_number := a1(indx);
63           t(ddindx).counter_id := a2(indx);
64           t(ddindx).counter_name := a3(indx);
65           t(ddindx).interval_value := a4(indx);
66           t(ddindx).earliest_due_value := a5(indx);
67           t(ddindx).start_value := a6(indx);
68           t(ddindx).stop_value := a7(indx);
69           t(ddindx).start_date := rosetta_g_miss_date_in_map(a8(indx));
70           t(ddindx).stop_date := rosetta_g_miss_date_in_map(a9(indx));
71           t(ddindx).tolerance_before := a10(indx);
72           t(ddindx).tolerance_after := a11(indx);
73           t(ddindx).reset_value := a12(indx);
74           t(ddindx).attribute_category := a13(indx);
75           t(ddindx).attribute1 := a14(indx);
76           t(ddindx).attribute2 := a15(indx);
77           t(ddindx).attribute3 := a16(indx);
78           t(ddindx).attribute4 := a17(indx);
79           t(ddindx).attribute5 := a18(indx);
80           t(ddindx).attribute6 := a19(indx);
81           t(ddindx).attribute7 := a20(indx);
82           t(ddindx).attribute8 := a21(indx);
83           t(ddindx).attribute9 := a22(indx);
84           t(ddindx).attribute10 := a23(indx);
85           t(ddindx).attribute11 := a24(indx);
86           t(ddindx).attribute12 := a25(indx);
87           t(ddindx).attribute13 := a26(indx);
88           t(ddindx).attribute14 := a27(indx);
89           t(ddindx).attribute15 := a28(indx);
90           t(ddindx).last_update_date := rosetta_g_miss_date_in_map(a29(indx));
91           t(ddindx).last_updated_by := a30(indx);
92           t(ddindx).creation_date := rosetta_g_miss_date_in_map(a31(indx));
93           t(ddindx).created_by := a32(indx);
94           t(ddindx).last_update_login := a33(indx);
95           t(ddindx).dml_operation := a34(indx);
96           t(ddindx).duedate_rule_code := a35(indx);
97           t(ddindx).duedate_rule_meaning := a36(indx);
98           ddindx := ddindx+1;
99           if a0.last =indx
100             then exit;
101           end if;
102           indx := a0.next(indx);
103         end loop;
104       end if;
105    end if;
106   end rosetta_table_copy_in_p2;
107   procedure rosetta_table_copy_out_p2(t ahl_fmp_mr_interval_pvt.interval_tbl_type, a0 out nocopy JTF_NUMBER_TABLE
108     , a1 out nocopy JTF_NUMBER_TABLE
109     , a2 out nocopy JTF_NUMBER_TABLE
110     , a3 out nocopy JTF_VARCHAR2_TABLE_100
111     , a4 out nocopy JTF_NUMBER_TABLE
112     , a5 out nocopy JTF_NUMBER_TABLE
113     , a6 out nocopy JTF_NUMBER_TABLE
114     , a7 out nocopy JTF_NUMBER_TABLE
115     , a8 out nocopy JTF_DATE_TABLE
116     , a9 out nocopy JTF_DATE_TABLE
117     , a10 out nocopy JTF_NUMBER_TABLE
118     , a11 out nocopy JTF_NUMBER_TABLE
119     , a12 out nocopy JTF_NUMBER_TABLE
120     , a13 out nocopy JTF_VARCHAR2_TABLE_100
121     , a14 out nocopy JTF_VARCHAR2_TABLE_200
122     , a15 out nocopy JTF_VARCHAR2_TABLE_200
123     , a16 out nocopy JTF_VARCHAR2_TABLE_200
124     , a17 out nocopy JTF_VARCHAR2_TABLE_200
125     , a18 out nocopy JTF_VARCHAR2_TABLE_200
126     , a19 out nocopy JTF_VARCHAR2_TABLE_200
127     , a20 out nocopy JTF_VARCHAR2_TABLE_200
128     , a21 out nocopy JTF_VARCHAR2_TABLE_200
129     , a22 out nocopy JTF_VARCHAR2_TABLE_200
130     , a23 out nocopy JTF_VARCHAR2_TABLE_200
131     , a24 out nocopy JTF_VARCHAR2_TABLE_200
132     , a25 out nocopy JTF_VARCHAR2_TABLE_200
133     , a26 out nocopy JTF_VARCHAR2_TABLE_200
134     , a27 out nocopy JTF_VARCHAR2_TABLE_200
135     , a28 out nocopy JTF_VARCHAR2_TABLE_200
136     , a29 out nocopy JTF_DATE_TABLE
137     , a30 out nocopy JTF_NUMBER_TABLE
138     , a31 out nocopy JTF_DATE_TABLE
139     , a32 out nocopy JTF_NUMBER_TABLE
140     , a33 out nocopy JTF_NUMBER_TABLE
141     , a34 out nocopy JTF_VARCHAR2_TABLE_100
142     , a35 out nocopy JTF_VARCHAR2_TABLE_100
143     , a36 out nocopy JTF_VARCHAR2_TABLE_100
144     ) as
145     ddindx binary_integer; indx binary_integer;
146   begin
147   if t is null or t.count = 0 then
148     a0 := JTF_NUMBER_TABLE();
149     a1 := JTF_NUMBER_TABLE();
150     a2 := JTF_NUMBER_TABLE();
151     a3 := JTF_VARCHAR2_TABLE_100();
152     a4 := JTF_NUMBER_TABLE();
153     a5 := JTF_NUMBER_TABLE();
154     a6 := JTF_NUMBER_TABLE();
155     a7 := JTF_NUMBER_TABLE();
156     a8 := JTF_DATE_TABLE();
157     a9 := JTF_DATE_TABLE();
158     a10 := JTF_NUMBER_TABLE();
159     a11 := JTF_NUMBER_TABLE();
160     a12 := JTF_NUMBER_TABLE();
161     a13 := JTF_VARCHAR2_TABLE_100();
162     a14 := JTF_VARCHAR2_TABLE_200();
163     a15 := JTF_VARCHAR2_TABLE_200();
164     a16 := JTF_VARCHAR2_TABLE_200();
165     a17 := JTF_VARCHAR2_TABLE_200();
166     a18 := JTF_VARCHAR2_TABLE_200();
167     a19 := JTF_VARCHAR2_TABLE_200();
168     a20 := JTF_VARCHAR2_TABLE_200();
169     a21 := JTF_VARCHAR2_TABLE_200();
170     a22 := JTF_VARCHAR2_TABLE_200();
171     a23 := JTF_VARCHAR2_TABLE_200();
172     a24 := JTF_VARCHAR2_TABLE_200();
173     a25 := JTF_VARCHAR2_TABLE_200();
174     a26 := JTF_VARCHAR2_TABLE_200();
175     a27 := JTF_VARCHAR2_TABLE_200();
176     a28 := JTF_VARCHAR2_TABLE_200();
177     a29 := JTF_DATE_TABLE();
178     a30 := JTF_NUMBER_TABLE();
179     a31 := JTF_DATE_TABLE();
180     a32 := JTF_NUMBER_TABLE();
181     a33 := JTF_NUMBER_TABLE();
182     a34 := JTF_VARCHAR2_TABLE_100();
183     a35 := JTF_VARCHAR2_TABLE_100();
184     a36 := JTF_VARCHAR2_TABLE_100();
185   else
186       a0 := JTF_NUMBER_TABLE();
187       a1 := JTF_NUMBER_TABLE();
188       a2 := JTF_NUMBER_TABLE();
189       a3 := JTF_VARCHAR2_TABLE_100();
190       a4 := JTF_NUMBER_TABLE();
191       a5 := JTF_NUMBER_TABLE();
192       a6 := JTF_NUMBER_TABLE();
193       a7 := JTF_NUMBER_TABLE();
194       a8 := JTF_DATE_TABLE();
195       a9 := JTF_DATE_TABLE();
196       a10 := JTF_NUMBER_TABLE();
197       a11 := JTF_NUMBER_TABLE();
198       a12 := JTF_NUMBER_TABLE();
199       a13 := JTF_VARCHAR2_TABLE_100();
200       a14 := JTF_VARCHAR2_TABLE_200();
201       a15 := JTF_VARCHAR2_TABLE_200();
202       a16 := JTF_VARCHAR2_TABLE_200();
203       a17 := JTF_VARCHAR2_TABLE_200();
204       a18 := JTF_VARCHAR2_TABLE_200();
205       a19 := JTF_VARCHAR2_TABLE_200();
206       a20 := JTF_VARCHAR2_TABLE_200();
207       a21 := JTF_VARCHAR2_TABLE_200();
208       a22 := JTF_VARCHAR2_TABLE_200();
209       a23 := JTF_VARCHAR2_TABLE_200();
210       a24 := JTF_VARCHAR2_TABLE_200();
211       a25 := JTF_VARCHAR2_TABLE_200();
212       a26 := JTF_VARCHAR2_TABLE_200();
213       a27 := JTF_VARCHAR2_TABLE_200();
214       a28 := JTF_VARCHAR2_TABLE_200();
215       a29 := JTF_DATE_TABLE();
216       a30 := JTF_NUMBER_TABLE();
217       a31 := JTF_DATE_TABLE();
218       a32 := JTF_NUMBER_TABLE();
219       a33 := JTF_NUMBER_TABLE();
220       a34 := JTF_VARCHAR2_TABLE_100();
221       a35 := JTF_VARCHAR2_TABLE_100();
222       a36 := JTF_VARCHAR2_TABLE_100();
223       if t.count > 0 then
224         a0.extend(t.count);
225         a1.extend(t.count);
226         a2.extend(t.count);
227         a3.extend(t.count);
228         a4.extend(t.count);
229         a5.extend(t.count);
230         a6.extend(t.count);
231         a7.extend(t.count);
232         a8.extend(t.count);
233         a9.extend(t.count);
234         a10.extend(t.count);
235         a11.extend(t.count);
236         a12.extend(t.count);
237         a13.extend(t.count);
238         a14.extend(t.count);
239         a15.extend(t.count);
240         a16.extend(t.count);
241         a17.extend(t.count);
242         a18.extend(t.count);
243         a19.extend(t.count);
244         a20.extend(t.count);
245         a21.extend(t.count);
246         a22.extend(t.count);
247         a23.extend(t.count);
248         a24.extend(t.count);
249         a25.extend(t.count);
250         a26.extend(t.count);
251         a27.extend(t.count);
252         a28.extend(t.count);
253         a29.extend(t.count);
254         a30.extend(t.count);
255         a31.extend(t.count);
256         a32.extend(t.count);
257         a33.extend(t.count);
258         a34.extend(t.count);
259         a35.extend(t.count);
260         a36.extend(t.count);
261         ddindx := t.first;
262         indx := 1;
263         while true loop
264           a0(indx) := t(ddindx).mr_interval_id;
265           a1(indx) := t(ddindx).object_version_number;
266           a2(indx) := t(ddindx).counter_id;
267           a3(indx) := t(ddindx).counter_name;
268           a4(indx) := t(ddindx).interval_value;
269           a5(indx) := t(ddindx).earliest_due_value;
270           a6(indx) := t(ddindx).start_value;
271           a7(indx) := t(ddindx).stop_value;
272           a8(indx) := t(ddindx).start_date;
273           a9(indx) := t(ddindx).stop_date;
274           a10(indx) := t(ddindx).tolerance_before;
275           a11(indx) := t(ddindx).tolerance_after;
276           a12(indx) := t(ddindx).reset_value;
277           a13(indx) := t(ddindx).attribute_category;
278           a14(indx) := t(ddindx).attribute1;
279           a15(indx) := t(ddindx).attribute2;
280           a16(indx) := t(ddindx).attribute3;
281           a17(indx) := t(ddindx).attribute4;
282           a18(indx) := t(ddindx).attribute5;
283           a19(indx) := t(ddindx).attribute6;
284           a20(indx) := t(ddindx).attribute7;
285           a21(indx) := t(ddindx).attribute8;
286           a22(indx) := t(ddindx).attribute9;
287           a23(indx) := t(ddindx).attribute10;
288           a24(indx) := t(ddindx).attribute11;
289           a25(indx) := t(ddindx).attribute12;
290           a26(indx) := t(ddindx).attribute13;
291           a27(indx) := t(ddindx).attribute14;
292           a28(indx) := t(ddindx).attribute15;
293           a29(indx) := t(ddindx).last_update_date;
294           a30(indx) := t(ddindx).last_updated_by;
295           a31(indx) := t(ddindx).creation_date;
296           a32(indx) := t(ddindx).created_by;
297           a33(indx) := t(ddindx).last_update_login;
298           a34(indx) := t(ddindx).dml_operation;
299           a35(indx) := t(ddindx).duedate_rule_code;
300           a36(indx) := t(ddindx).duedate_rule_meaning;
301           indx := indx+1;
302           if t.last =ddindx
303             then exit;
304           end if;
305           ddindx := t.next(ddindx);
306         end loop;
307       end if;
308    end if;
309   end rosetta_table_copy_out_p2;
310 
311   procedure process_interval(p_api_version  NUMBER
312     , p_init_msg_list  VARCHAR2
313     , p_commit  VARCHAR2
314     , p_validation_level  NUMBER
315     , p_default  VARCHAR2
316     , p_module_type  VARCHAR2
317     , x_return_status out nocopy  VARCHAR2
318     , x_msg_count out nocopy  NUMBER
319     , x_msg_data out nocopy  VARCHAR2
320     , p9_a0 in out nocopy JTF_NUMBER_TABLE
321     , p9_a1 in out nocopy JTF_NUMBER_TABLE
322     , p9_a2 in out nocopy JTF_NUMBER_TABLE
323     , p9_a3 in out nocopy JTF_VARCHAR2_TABLE_100
324     , p9_a4 in out nocopy JTF_NUMBER_TABLE
325     , p9_a5 in out nocopy JTF_NUMBER_TABLE
326     , p9_a6 in out nocopy JTF_NUMBER_TABLE
327     , p9_a7 in out nocopy JTF_NUMBER_TABLE
328     , p9_a8 in out nocopy JTF_DATE_TABLE
329     , p9_a9 in out nocopy JTF_DATE_TABLE
330     , p9_a10 in out nocopy JTF_NUMBER_TABLE
331     , p9_a11 in out nocopy JTF_NUMBER_TABLE
332     , p9_a12 in out nocopy JTF_NUMBER_TABLE
333     , p9_a13 in out nocopy JTF_VARCHAR2_TABLE_100
334     , p9_a14 in out nocopy JTF_VARCHAR2_TABLE_200
335     , p9_a15 in out nocopy JTF_VARCHAR2_TABLE_200
336     , p9_a16 in out nocopy JTF_VARCHAR2_TABLE_200
337     , p9_a17 in out nocopy JTF_VARCHAR2_TABLE_200
338     , p9_a18 in out nocopy JTF_VARCHAR2_TABLE_200
339     , p9_a19 in out nocopy JTF_VARCHAR2_TABLE_200
340     , p9_a20 in out nocopy JTF_VARCHAR2_TABLE_200
341     , p9_a21 in out nocopy JTF_VARCHAR2_TABLE_200
342     , p9_a22 in out nocopy JTF_VARCHAR2_TABLE_200
343     , p9_a23 in out nocopy JTF_VARCHAR2_TABLE_200
344     , p9_a24 in out nocopy JTF_VARCHAR2_TABLE_200
345     , p9_a25 in out nocopy JTF_VARCHAR2_TABLE_200
346     , p9_a26 in out nocopy JTF_VARCHAR2_TABLE_200
347     , p9_a27 in out nocopy JTF_VARCHAR2_TABLE_200
348     , p9_a28 in out nocopy JTF_VARCHAR2_TABLE_200
349     , p9_a29 in out nocopy JTF_DATE_TABLE
350     , p9_a30 in out nocopy JTF_NUMBER_TABLE
351     , p9_a31 in out nocopy JTF_DATE_TABLE
352     , p9_a32 in out nocopy JTF_NUMBER_TABLE
353     , p9_a33 in out nocopy JTF_NUMBER_TABLE
354     , p9_a34 in out nocopy JTF_VARCHAR2_TABLE_100
355     , p9_a35 in out nocopy JTF_VARCHAR2_TABLE_100
356     , p9_a36 in out nocopy JTF_VARCHAR2_TABLE_100
357     , p10_a0 in out nocopy  NUMBER
358     , p10_a1 in out nocopy  NUMBER
359     , p10_a2 in out nocopy  DATE
360     , p10_a3 in out nocopy  NUMBER
361     , p10_a4 in out nocopy  VARCHAR2
362     , p_mr_header_id  NUMBER
363     , p_super_user  VARCHAR2
364   )
365 
366   as
367     ddp_x_interval_tbl ahl_fmp_mr_interval_pvt.interval_tbl_type;
368     ddp_x_threshold_rec ahl_fmp_mr_interval_pvt.threshold_rec_type;
369     ddindx binary_integer; indx binary_integer;
370   begin
371 
372     -- copy data to the local IN or IN-OUT args, if any
373 
374 
375 
376 
377 
378 
379 
380 
381 
382     ahl_fmp_mr_interval_pvt_w.rosetta_table_copy_in_p2(ddp_x_interval_tbl, p9_a0
383       , p9_a1
384       , p9_a2
385       , p9_a3
386       , p9_a4
387       , p9_a5
388       , p9_a6
389       , p9_a7
390       , p9_a8
391       , p9_a9
392       , p9_a10
393       , p9_a11
394       , p9_a12
395       , p9_a13
396       , p9_a14
397       , p9_a15
398       , p9_a16
399       , p9_a17
400       , p9_a18
401       , p9_a19
402       , p9_a20
403       , p9_a21
404       , p9_a22
405       , p9_a23
406       , p9_a24
407       , p9_a25
408       , p9_a26
409       , p9_a27
410       , p9_a28
411       , p9_a29
412       , p9_a30
413       , p9_a31
414       , p9_a32
415       , p9_a33
416       , p9_a34
417       , p9_a35
418       , p9_a36
419       );
420 
421     ddp_x_threshold_rec.mr_effectivity_id := p10_a0;
422     ddp_x_threshold_rec.object_version_number := p10_a1;
423     ddp_x_threshold_rec.threshold_date := rosetta_g_miss_date_in_map(p10_a2);
424     ddp_x_threshold_rec.program_duration := p10_a3;
425     ddp_x_threshold_rec.program_duration_uom_code := p10_a4;
426 
427 
428 
429     -- here's the delegated call to the old PL/SQL routine
430     ahl_fmp_mr_interval_pvt.process_interval(p_api_version,
431       p_init_msg_list,
432       p_commit,
433       p_validation_level,
434       p_default,
435       p_module_type,
436       x_return_status,
437       x_msg_count,
438       x_msg_data,
439       ddp_x_interval_tbl,
440       ddp_x_threshold_rec,
441       p_mr_header_id,
442       p_super_user);
443 
444     -- copy data back from the local variables to OUT or IN-OUT args, if any
445 
446 
447 
448 
449 
450 
451 
452 
453 
454     ahl_fmp_mr_interval_pvt_w.rosetta_table_copy_out_p2(ddp_x_interval_tbl, p9_a0
455       , p9_a1
456       , p9_a2
457       , p9_a3
458       , p9_a4
459       , p9_a5
460       , p9_a6
461       , p9_a7
462       , p9_a8
463       , p9_a9
464       , p9_a10
465       , p9_a11
466       , p9_a12
467       , p9_a13
468       , p9_a14
469       , p9_a15
470       , p9_a16
471       , p9_a17
472       , p9_a18
473       , p9_a19
474       , p9_a20
475       , p9_a21
476       , p9_a22
477       , p9_a23
478       , p9_a24
479       , p9_a25
480       , p9_a26
481       , p9_a27
482       , p9_a28
483       , p9_a29
484       , p9_a30
485       , p9_a31
486       , p9_a32
487       , p9_a33
488       , p9_a34
489       , p9_a35
490       , p9_a36
491       );
492 
493     p10_a0 := ddp_x_threshold_rec.mr_effectivity_id;
494     p10_a1 := ddp_x_threshold_rec.object_version_number;
495     p10_a2 := ddp_x_threshold_rec.threshold_date;
496     p10_a3 := ddp_x_threshold_rec.program_duration;
497     p10_a4 := ddp_x_threshold_rec.program_duration_uom_code;
498 
499 
500   end;
501 
502 end ahl_fmp_mr_interval_pvt_w;