DBA Data[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 
372     , p0_a3 JTF_VARCHAR2_TABLE_100
369   procedure insert_period_rates(p0_a0 JTF_VARCHAR2_TABLE_100
370     , p0_a1 JTF_VARCHAR2_TABLE_100
371     , p0_a2 JTF_DATE_TABLE
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;