DBA Data[Home] [Help]

PACKAGE BODY: APPS.PVX_UTILITY_PVT_W

Source


1 package body pvx_utility_pvt_w as
2   /* $Header: pvxwutlb.pls 120.1 2008/02/28 22:22:48 hekkiral 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_p11(t out nocopy pvx_utility_pvt.log_params_tbl_type, a0 JTF_VARCHAR2_TABLE_100
17     , a1 JTF_VARCHAR2_TABLE_2000
18     , a2 JTF_VARCHAR2_TABLE_100
19     , a3 JTF_VARCHAR2_TABLE_100
20     ) as
21     ddindx binary_integer; indx binary_integer;
22   begin
23   if a0 is not null and a0.count > 0 then
24       if a0.count > 0 then
25         indx := a0.first;
26         ddindx := 1;
27         while true loop
28           t(ddindx).param_name := a0(indx);
29           t(ddindx).param_value := a1(indx);
30           t(ddindx).param_type := a2(indx);
31           t(ddindx).param_lookup_type := a3(indx);
32           ddindx := ddindx+1;
33           if a0.last =indx
34             then exit;
35           end if;
36           indx := a0.next(indx);
37         end loop;
38       end if;
39    end if;
40   end rosetta_table_copy_in_p11;
41   procedure rosetta_table_copy_out_p11(t pvx_utility_pvt.log_params_tbl_type, a0 out nocopy JTF_VARCHAR2_TABLE_100
42     , a1 out nocopy JTF_VARCHAR2_TABLE_2000
43     , a2 out nocopy JTF_VARCHAR2_TABLE_100
44     , a3 out nocopy JTF_VARCHAR2_TABLE_100
45     ) as
46     ddindx binary_integer; indx binary_integer;
47   begin
48   if t is null or t.count = 0 then
49     a0 := JTF_VARCHAR2_TABLE_100();
50     a1 := JTF_VARCHAR2_TABLE_2000();
51     a2 := JTF_VARCHAR2_TABLE_100();
52     a3 := JTF_VARCHAR2_TABLE_100();
53   else
54       a0 := JTF_VARCHAR2_TABLE_100();
55       a1 := JTF_VARCHAR2_TABLE_2000();
56       a2 := JTF_VARCHAR2_TABLE_100();
57       a3 := JTF_VARCHAR2_TABLE_100();
58       if t.count > 0 then
59         a0.extend(t.count);
60         a1.extend(t.count);
61         a2.extend(t.count);
62         a3.extend(t.count);
63         ddindx := t.first;
64         indx := 1;
65         while true loop
66           a0(indx) := t(ddindx).param_name;
67           a1(indx) := t(ddindx).param_value;
68           a2(indx) := t(ddindx).param_type;
69           a3(indx) := t(ddindx).param_lookup_type;
70           indx := indx+1;
71           if t.last =ddindx
72             then exit;
73           end if;
74           ddindx := t.next(ddindx);
75         end loop;
76       end if;
77    end if;
78   end rosetta_table_copy_out_p11;
79 
80   procedure convert_timezone(p_init_msg_list  VARCHAR2
81     , x_return_status out nocopy  VARCHAR2
82     , x_msg_count out nocopy  NUMBER
83     , x_msg_data out nocopy  VARCHAR2
84     , p_user_tz_id  NUMBER
85     , p_in_time  date
86     , p_convert_type  VARCHAR2
87     , x_out_time out nocopy  DATE
88   )
89 
90   as
91     ddp_in_time date;
92     ddindx binary_integer; indx binary_integer;
93   begin
94 
95     -- copy data to the local IN or IN-OUT args, if any
96 
97 
98 
99 
100 
101     ddp_in_time := rosetta_g_miss_date_in_map(p_in_time);
102 
103 
104 
105     -- here's the delegated call to the old PL/SQL routine
106     pvx_utility_pvt.convert_timezone(p_init_msg_list,
107       x_return_status,
108       x_msg_count,
109       x_msg_data,
110       p_user_tz_id,
111       ddp_in_time,
112       p_convert_type,
113       x_out_time);
114 
115     -- copy data back from the local variables to OUT or IN-OUT args, if any
116 
117 
118 
119 
120 
121 
122 
123   end;
124 
125   procedure create_history_log(p_arc_history_for_entity_code  VARCHAR2
126     , p_history_for_entity_id  NUMBER
127     , p_history_category_code  VARCHAR2
128     , p_message_code  VARCHAR2
129     , p_partner_id  NUMBER
130     , p_access_level_flag  VARCHAR2
131     , p_interaction_level  NUMBER
132     , p_comments  VARCHAR2
133     , p8_a0 JTF_VARCHAR2_TABLE_100
134     , p8_a1 JTF_VARCHAR2_TABLE_2000
135     , p8_a2 JTF_VARCHAR2_TABLE_100
136     , p8_a3 JTF_VARCHAR2_TABLE_100
137     , p_init_msg_list  VARCHAR2
138     , p_commit  VARCHAR2
139     , x_return_status out nocopy  VARCHAR2
140     , x_msg_count out nocopy  NUMBER
141     , x_msg_data out nocopy  VARCHAR2
142   )
143 
144   as
145     ddp_log_params_tbl pvx_utility_pvt.log_params_tbl_type;
146     ddindx binary_integer; indx binary_integer;
147   begin
148 
149     -- copy data to the local IN or IN-OUT args, if any
150 
151 
152 
153 
154 
155 
156 
157 
158     pvx_utility_pvt_w.rosetta_table_copy_in_p11(ddp_log_params_tbl, p8_a0
159       , p8_a1
160       , p8_a2
161       , p8_a3
162       );
163 
164 
165 
166 
167 
168 
169     -- here's the delegated call to the old PL/SQL routine
170     pvx_utility_pvt.create_history_log(p_arc_history_for_entity_code,
171       p_history_for_entity_id,
172       p_history_category_code,
173       p_message_code,
174       p_partner_id,
175       p_access_level_flag,
176       p_interaction_level,
177       p_comments,
178       ddp_log_params_tbl,
179       p_init_msg_list,
180       p_commit,
181       x_return_status,
182       x_msg_count,
183       x_msg_data);
184 
185     -- copy data back from the local variables to OUT or IN-OUT args, if any
186 
187 
188 
189 
190 
191 
192 
193 
194 
195 
196 
197 
198 
199   end;
200 
201   procedure get_business_days(p_from_date  date
202     , p_to_date  date
203     , x_bus_days out nocopy  NUMBER
204   )
205 
206   as
207     ddp_from_date date;
208     ddp_to_date date;
209     ddindx binary_integer; indx binary_integer;
210   begin
211 
212     -- copy data to the local IN or IN-OUT args, if any
213     ddp_from_date := rosetta_g_miss_date_in_map(p_from_date);
214 
215     ddp_to_date := rosetta_g_miss_date_in_map(p_to_date);
216 
217 
218     -- here's the delegated call to the old PL/SQL routine
219     pvx_utility_pvt.get_business_days(ddp_from_date,
220       ddp_to_date,
221       x_bus_days);
222 
223     -- copy data back from the local variables to OUT or IN-OUT args, if any
224 
225 
226   end;
227 
228 end pvx_utility_pvt_w;