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