[Home] [Help]
PACKAGE BODY: APPS.AS_MULTI_CURRENCIES_PKG_W
Source
1 package body as_multi_currencies_pkg_w as
2 /* $Header: asxwmcpb.pls 120.1 2005/06/24 22:26 appldev 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
6 -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
7 function rosetta_g_miss_date_in_map(d date) return date as
8 begin
9 if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
10 return d;
11 end;
12
13 function rosetta_g_miss_num_map(n number) return number as
14 a number := fnd_api.g_miss_num;
15 b number := 0-1962.0724;
16 begin
17 if n=a then return b; end if;
18 if n=b then return a; end if;
19 return n;
20 end;
21
22 procedure rosetta_table_copy_in_p3(t out nocopy as_multi_currencies_pkg.type_mappings_tbl_type, a0 JTF_VARCHAR2_TABLE_100
23 , a1 JTF_VARCHAR2_TABLE_100
24 , a2 JTF_VARCHAR2_TABLE_100
25 , a3 JTF_VARCHAR2_TABLE_100
26 , a4 JTF_VARCHAR2_TABLE_100
27 , a5 JTF_VARCHAR2_TABLE_100
28 , a6 JTF_DATE_TABLE
29 , a7 JTF_NUMBER_TABLE
30 , a8 JTF_DATE_TABLE
31 , a9 JTF_NUMBER_TABLE
32 , a10 JTF_NUMBER_TABLE
33 , a11 JTF_NUMBER_TABLE
34 ) as
35 ddindx binary_integer; indx binary_integer;
36 begin
37 if a0 is not null and a0.count > 0 then
38 if a0.count > 0 then
39 indx := a0.first;
40 ddindx := 1;
41 while true loop
42 t(ddindx).period_set_name := a0(indx);
43 t(ddindx).period_type := a1(indx);
44 t(ddindx).conversion_type := a2(indx);
45 t(ddindx).description := a3(indx);
46 t(ddindx).updateable_flag := a4(indx);
47 t(ddindx).deleteable_flag := a5(indx);
48 t(ddindx).last_update_date := rosetta_g_miss_date_in_map(a6(indx));
49 t(ddindx).last_updated_by := rosetta_g_miss_num_map(a7(indx));
50 t(ddindx).creation_date := rosetta_g_miss_date_in_map(a8(indx));
51 t(ddindx).created_by := rosetta_g_miss_num_map(a9(indx));
52 t(ddindx).last_update_login := rosetta_g_miss_num_map(a10(indx));
53 t(ddindx).security_group_id := rosetta_g_miss_num_map(a11(indx));
54 ddindx := ddindx+1;
55 if a0.last =indx
56 then exit;
57 end if;
58 indx := a0.next(indx);
59 end loop;
60 end if;
61 end if;
62 end rosetta_table_copy_in_p3;
63 procedure rosetta_table_copy_out_p3(t as_multi_currencies_pkg.type_mappings_tbl_type, a0 out nocopy JTF_VARCHAR2_TABLE_100
64 , a1 out nocopy JTF_VARCHAR2_TABLE_100
65 , a2 out nocopy JTF_VARCHAR2_TABLE_100
66 , a3 out nocopy JTF_VARCHAR2_TABLE_100
67 , a4 out nocopy JTF_VARCHAR2_TABLE_100
68 , a5 out nocopy JTF_VARCHAR2_TABLE_100
69 , a6 out nocopy JTF_DATE_TABLE
70 , a7 out nocopy JTF_NUMBER_TABLE
71 , a8 out nocopy JTF_DATE_TABLE
72 , a9 out nocopy JTF_NUMBER_TABLE
73 , a10 out nocopy JTF_NUMBER_TABLE
74 , a11 out nocopy JTF_NUMBER_TABLE
75 ) as
76 ddindx binary_integer; indx binary_integer;
77 begin
78 if t is null or t.count = 0 then
79 a0 := JTF_VARCHAR2_TABLE_100();
80 a1 := JTF_VARCHAR2_TABLE_100();
81 a2 := JTF_VARCHAR2_TABLE_100();
82 a3 := JTF_VARCHAR2_TABLE_100();
83 a4 := JTF_VARCHAR2_TABLE_100();
84 a5 := JTF_VARCHAR2_TABLE_100();
85 a6 := JTF_DATE_TABLE();
86 a7 := JTF_NUMBER_TABLE();
87 a8 := JTF_DATE_TABLE();
88 a9 := JTF_NUMBER_TABLE();
89 a10 := JTF_NUMBER_TABLE();
90 a11 := JTF_NUMBER_TABLE();
91 else
92 a0 := JTF_VARCHAR2_TABLE_100();
93 a1 := JTF_VARCHAR2_TABLE_100();
94 a2 := JTF_VARCHAR2_TABLE_100();
95 a3 := JTF_VARCHAR2_TABLE_100();
96 a4 := JTF_VARCHAR2_TABLE_100();
97 a5 := JTF_VARCHAR2_TABLE_100();
98 a6 := JTF_DATE_TABLE();
99 a7 := JTF_NUMBER_TABLE();
100 a8 := JTF_DATE_TABLE();
101 a9 := JTF_NUMBER_TABLE();
102 a10 := JTF_NUMBER_TABLE();
103 a11 := JTF_NUMBER_TABLE();
104 if t.count > 0 then
105 a0.extend(t.count);
106 a1.extend(t.count);
107 a2.extend(t.count);
108 a3.extend(t.count);
109 a4.extend(t.count);
110 a5.extend(t.count);
111 a6.extend(t.count);
112 a7.extend(t.count);
113 a8.extend(t.count);
114 a9.extend(t.count);
115 a10.extend(t.count);
116 a11.extend(t.count);
117 ddindx := t.first;
118 indx := 1;
119 while true loop
120 a0(indx) := t(ddindx).period_set_name;
121 a1(indx) := t(ddindx).period_type;
122 a2(indx) := t(ddindx).conversion_type;
123 a3(indx) := t(ddindx).description;
124 a4(indx) := t(ddindx).updateable_flag;
125 a5(indx) := t(ddindx).deleteable_flag;
126 a6(indx) := t(ddindx).last_update_date;
127 a7(indx) := rosetta_g_miss_num_map(t(ddindx).last_updated_by);
128 a8(indx) := t(ddindx).creation_date;
129 a9(indx) := rosetta_g_miss_num_map(t(ddindx).created_by);
130 a10(indx) := rosetta_g_miss_num_map(t(ddindx).last_update_login);
131 a11(indx) := rosetta_g_miss_num_map(t(ddindx).security_group_id);
132 indx := indx+1;
133 if t.last =ddindx
134 then exit;
135 end if;
136 ddindx := t.next(ddindx);
137 end loop;
138 end if;
139 end if;
140 end rosetta_table_copy_out_p3;
141
142 procedure rosetta_table_copy_in_p7(t out nocopy as_multi_currencies_pkg.period_rates_tbl_type, a0 JTF_VARCHAR2_TABLE_100
143 , a1 JTF_VARCHAR2_TABLE_100
144 , a2 JTF_DATE_TABLE
145 , a3 JTF_VARCHAR2_TABLE_100
146 , a4 JTF_NUMBER_TABLE
147 ) as
148 ddindx binary_integer; indx binary_integer;
149 begin
150 if a0 is not null and a0.count > 0 then
151 if a0.count > 0 then
152 indx := a0.first;
153 ddindx := 1;
154 while true loop
155 t(ddindx).from_currency := a0(indx);
156 t(ddindx).to_currency := a1(indx);
157 t(ddindx).conversion_date := rosetta_g_miss_date_in_map(a2(indx));
158 t(ddindx).conversion_type := a3(indx);
159 t(ddindx).conversion_rate := rosetta_g_miss_num_map(a4(indx));
160 ddindx := ddindx+1;
161 if a0.last =indx
162 then exit;
163 end if;
164 indx := a0.next(indx);
165 end loop;
166 end if;
167 end if;
168 end rosetta_table_copy_in_p7;
169 procedure rosetta_table_copy_out_p7(t as_multi_currencies_pkg.period_rates_tbl_type, a0 out nocopy JTF_VARCHAR2_TABLE_100
170 , a1 out nocopy JTF_VARCHAR2_TABLE_100
171 , a2 out nocopy JTF_DATE_TABLE
172 , a3 out nocopy JTF_VARCHAR2_TABLE_100
173 , a4 out nocopy JTF_NUMBER_TABLE
174 ) as
175 ddindx binary_integer; indx binary_integer;
176 begin
177 if t is null or t.count = 0 then
178 a0 := JTF_VARCHAR2_TABLE_100();
179 a1 := JTF_VARCHAR2_TABLE_100();
180 a2 := JTF_DATE_TABLE();
181 a3 := JTF_VARCHAR2_TABLE_100();
182 a4 := JTF_NUMBER_TABLE();
183 else
184 a0 := JTF_VARCHAR2_TABLE_100();
185 a1 := JTF_VARCHAR2_TABLE_100();
186 a2 := JTF_DATE_TABLE();
187 a3 := JTF_VARCHAR2_TABLE_100();
188 a4 := JTF_NUMBER_TABLE();
189 if t.count > 0 then
190 a0.extend(t.count);
191 a1.extend(t.count);
192 a2.extend(t.count);
193 a3.extend(t.count);
194 a4.extend(t.count);
195 ddindx := t.first;
196 indx := 1;
197 while true loop
198 a0(indx) := t(ddindx).from_currency;
199 a1(indx) := t(ddindx).to_currency;
200 a2(indx) := t(ddindx).conversion_date;
201 a3(indx) := t(ddindx).conversion_type;
202 a4(indx) := rosetta_g_miss_num_map(t(ddindx).conversion_rate);
203 indx := indx+1;
204 if t.last =ddindx
205 then exit;
206 end if;
207 ddindx := t.next(ddindx);
208 end loop;
209 end if;
210 end if;
211 end rosetta_table_copy_out_p7;
212
213 procedure insert_type_mappings(p0_a0 JTF_VARCHAR2_TABLE_100
214 , p0_a1 JTF_VARCHAR2_TABLE_100
215 , p0_a2 JTF_VARCHAR2_TABLE_100
216 , p0_a3 JTF_VARCHAR2_TABLE_100
217 , p0_a4 JTF_VARCHAR2_TABLE_100
218 , p0_a5 JTF_VARCHAR2_TABLE_100
219 , p0_a6 JTF_DATE_TABLE
220 , p0_a7 JTF_NUMBER_TABLE
221 , p0_a8 JTF_DATE_TABLE
222 , p0_a9 JTF_NUMBER_TABLE
223 , p0_a10 JTF_NUMBER_TABLE
224 , p0_a11 JTF_NUMBER_TABLE
225 , x_return_status out nocopy VARCHAR2
226 , x_msg_count out nocopy NUMBER
227 , x_msg_data out nocopy VARCHAR2
228 )
229
230 as
231 ddp_type_mappings_tbl as_multi_currencies_pkg.type_mappings_tbl_type;
232 ddindx binary_integer; indx binary_integer;
233 begin
234
235 -- copy data to the local IN or IN-OUT args, if any
236 as_multi_currencies_pkg_w.rosetta_table_copy_in_p3(ddp_type_mappings_tbl, p0_a0
237 , p0_a1
238 , p0_a2
239 , p0_a3
240 , p0_a4
241 , p0_a5
242 , p0_a6
243 , p0_a7
244 , p0_a8
245 , p0_a9
246 , p0_a10
247 , p0_a11
248 );
249
250
251
252
253 -- here's the delegated call to the old PL/SQL routine
254 as_multi_currencies_pkg.insert_type_mappings(ddp_type_mappings_tbl,
255 x_return_status,
256 x_msg_count,
257 x_msg_data);
258
259 -- copy data back from the local variables to OUT or IN-OUT args, if any
260
261
262
263 end;
264
265 procedure update_type_mappings(p0_a0 JTF_VARCHAR2_TABLE_100
266 , p0_a1 JTF_VARCHAR2_TABLE_100
267 , p0_a2 JTF_VARCHAR2_TABLE_100
268 , p0_a3 JTF_VARCHAR2_TABLE_100
269 , p0_a4 JTF_VARCHAR2_TABLE_100
270 , p0_a5 JTF_VARCHAR2_TABLE_100
271 , p0_a6 JTF_DATE_TABLE
272 , p0_a7 JTF_NUMBER_TABLE
273 , p0_a8 JTF_DATE_TABLE
274 , p0_a9 JTF_NUMBER_TABLE
275 , p0_a10 JTF_NUMBER_TABLE
276 , p0_a11 JTF_NUMBER_TABLE
277 , x_return_status out nocopy VARCHAR2
278 , x_msg_count out nocopy NUMBER
279 , x_msg_data out nocopy VARCHAR2
280 )
281
282 as
283 ddp_type_mappings_tbl as_multi_currencies_pkg.type_mappings_tbl_type;
284 ddindx binary_integer; indx binary_integer;
285 begin
286
287 -- copy data to the local IN or IN-OUT args, if any
288 as_multi_currencies_pkg_w.rosetta_table_copy_in_p3(ddp_type_mappings_tbl, p0_a0
289 , p0_a1
290 , p0_a2
291 , p0_a3
292 , p0_a4
293 , p0_a5
294 , p0_a6
295 , p0_a7
296 , p0_a8
297 , p0_a9
298 , p0_a10
299 , p0_a11
300 );
301
302
303
304
305 -- here's the delegated call to the old PL/SQL routine
306 as_multi_currencies_pkg.update_type_mappings(ddp_type_mappings_tbl,
307 x_return_status,
308 x_msg_count,
309 x_msg_data);
310
311 -- copy data back from the local variables to OUT or IN-OUT args, if any
312
313
314
315 end;
316
317 procedure delete_type_mappings(p0_a0 JTF_VARCHAR2_TABLE_100
318 , p0_a1 JTF_VARCHAR2_TABLE_100
319 , p0_a2 JTF_VARCHAR2_TABLE_100
320 , p0_a3 JTF_VARCHAR2_TABLE_100
321 , p0_a4 JTF_VARCHAR2_TABLE_100
322 , p0_a5 JTF_VARCHAR2_TABLE_100
323 , p0_a6 JTF_DATE_TABLE
324 , p0_a7 JTF_NUMBER_TABLE
325 , p0_a8 JTF_DATE_TABLE
326 , p0_a9 JTF_NUMBER_TABLE
327 , p0_a10 JTF_NUMBER_TABLE
328 , p0_a11 JTF_NUMBER_TABLE
329 , x_return_status out nocopy VARCHAR2
330 , x_msg_count out nocopy NUMBER
331 , x_msg_data out nocopy VARCHAR2
332 )
333
334 as
335 ddp_type_mappings_tbl as_multi_currencies_pkg.type_mappings_tbl_type;
336 ddindx binary_integer; indx binary_integer;
337 begin
338
339 -- copy data to the local IN or IN-OUT args, if any
340 as_multi_currencies_pkg_w.rosetta_table_copy_in_p3(ddp_type_mappings_tbl, p0_a0
341 , p0_a1
342 , p0_a2
343 , p0_a3
344 , p0_a4
345 , p0_a5
346 , p0_a6
347 , p0_a7
348 , p0_a8
349 , p0_a9
350 , p0_a10
351 , p0_a11
352 );
353
354
355
356
357 -- here's the delegated call to the old PL/SQL routine
358 as_multi_currencies_pkg.delete_type_mappings(ddp_type_mappings_tbl,
359 x_return_status,
360 x_msg_count,
361 x_msg_data);
362
363 -- copy data back from the local variables to OUT or IN-OUT args, if any
364
365
366
367 end;
368
369 procedure insert_period_rates(p0_a0 JTF_VARCHAR2_TABLE_100
370 , p0_a1 JTF_VARCHAR2_TABLE_100
371 , p0_a2 JTF_DATE_TABLE
372 , p0_a3 JTF_VARCHAR2_TABLE_100
373 , p0_a4 JTF_NUMBER_TABLE
374 , x_return_status out nocopy VARCHAR2
375 , x_msg_count out nocopy NUMBER
376 , x_msg_data out nocopy VARCHAR2
377 )
378
379 as
380 ddp_period_rates_tbl as_multi_currencies_pkg.period_rates_tbl_type;
381 ddindx binary_integer; indx binary_integer;
382 begin
383
384 -- copy data to the local IN or IN-OUT args, if any
385 as_multi_currencies_pkg_w.rosetta_table_copy_in_p7(ddp_period_rates_tbl, p0_a0
386 , p0_a1
387 , p0_a2
388 , p0_a3
389 , p0_a4
390 );
391
392
393
394
395 -- here's the delegated call to the old PL/SQL routine
396 as_multi_currencies_pkg.insert_period_rates(ddp_period_rates_tbl,
397 x_return_status,
398 x_msg_count,
399 x_msg_data);
400
401 -- copy data back from the local variables to OUT or IN-OUT args, if any
402
403
404
405 end;
406
407 procedure update_period_rates(p0_a0 JTF_VARCHAR2_TABLE_100
408 , p0_a1 JTF_VARCHAR2_TABLE_100
409 , p0_a2 JTF_DATE_TABLE
410 , p0_a3 JTF_VARCHAR2_TABLE_100
411 , p0_a4 JTF_NUMBER_TABLE
412 , x_return_status out nocopy VARCHAR2
413 , x_msg_count out nocopy NUMBER
414 , x_msg_data out nocopy VARCHAR2
415 )
416
417 as
418 ddp_period_rates_tbl as_multi_currencies_pkg.period_rates_tbl_type;
419 ddindx binary_integer; indx binary_integer;
420 begin
421
422 -- copy data to the local IN or IN-OUT args, if any
423 as_multi_currencies_pkg_w.rosetta_table_copy_in_p7(ddp_period_rates_tbl, p0_a0
424 , p0_a1
425 , p0_a2
426 , p0_a3
427 , p0_a4
428 );
429
430
431
432
433 -- here's the delegated call to the old PL/SQL routine
434 as_multi_currencies_pkg.update_period_rates(ddp_period_rates_tbl,
435 x_return_status,
436 x_msg_count,
437 x_msg_data);
438
439 -- copy data back from the local variables to OUT or IN-OUT args, if any
440
441
442
443 end;
444
445 procedure delete_period_rates(p0_a0 JTF_VARCHAR2_TABLE_100
446 , p0_a1 JTF_VARCHAR2_TABLE_100
447 , p0_a2 JTF_DATE_TABLE
448 , p0_a3 JTF_VARCHAR2_TABLE_100
449 , p0_a4 JTF_NUMBER_TABLE
450 , x_return_status out nocopy VARCHAR2
451 , x_msg_count out nocopy NUMBER
452 , x_msg_data out nocopy VARCHAR2
453 )
454
455 as
456 ddp_period_rates_tbl as_multi_currencies_pkg.period_rates_tbl_type;
457 ddindx binary_integer; indx binary_integer;
458 begin
459
460 -- copy data to the local IN or IN-OUT args, if any
461 as_multi_currencies_pkg_w.rosetta_table_copy_in_p7(ddp_period_rates_tbl, p0_a0
462 , p0_a1
463 , p0_a2
464 , p0_a3
465 , p0_a4
466 );
467
468
469
470
471 -- here's the delegated call to the old PL/SQL routine
472 as_multi_currencies_pkg.delete_period_rates(ddp_period_rates_tbl,
473 x_return_status,
474 x_msg_count,
475 x_msg_data);
476
477 -- copy data back from the local variables to OUT or IN-OUT args, if any
478
479
480
481 end;
482
483 end as_multi_currencies_pkg_w;