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