[Home] [Help]
PACKAGE BODY: APPS.JTF_CAL_AVLBLTY_PVT_W
Source
1 package body jtf_cal_avlblty_pvt_w as
2 /* $Header: jtfwavb.pls 120.2 2006/04/27 23:29 deeprao 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_p1(t out nocopy jtf_cal_avlblty_pvt.rstab, a0 JTF_NUMBER_TABLE
17 , a1 JTF_VARCHAR2_TABLE_100
18 , a2 JTF_VARCHAR2_TABLE_400
19 ) as
20 ddindx binary_integer; indx binary_integer;
21 begin
22 if a0 is not null and a0.count > 0 then
23 if a0.count > 0 then
24 indx := a0.first;
25 ddindx := 1;
26 while true loop
27 t(ddindx).resourceid := a0(indx);
28 t(ddindx).resourcetype := a1(indx);
29 t(ddindx).resourcename := a2(indx);
30 ddindx := ddindx+1;
31 if a0.last =indx
32 then exit;
33 end if;
34 indx := a0.next(indx);
35 end loop;
36 end if;
37 end if;
38 end rosetta_table_copy_in_p1;
39 procedure rosetta_table_copy_out_p1(t jtf_cal_avlblty_pvt.rstab, a0 out nocopy JTF_NUMBER_TABLE
40 , a1 out nocopy JTF_VARCHAR2_TABLE_100
41 , a2 out nocopy JTF_VARCHAR2_TABLE_400
42 ) as
43 ddindx binary_integer; indx binary_integer;
44 begin
45 if t is null or t.count = 0 then
46 a0 := JTF_NUMBER_TABLE();
47 a1 := JTF_VARCHAR2_TABLE_100();
48 a2 := JTF_VARCHAR2_TABLE_400();
49 else
50 a0 := JTF_NUMBER_TABLE();
51 a1 := JTF_VARCHAR2_TABLE_100();
52 a2 := JTF_VARCHAR2_TABLE_400();
53 if t.count > 0 then
54 a0.extend(t.count);
55 a1.extend(t.count);
56 a2.extend(t.count);
57 ddindx := t.first;
58 indx := 1;
59 while true loop
60 a0(indx) := t(ddindx).resourceid;
61 a1(indx) := t(ddindx).resourcetype;
62 a2(indx) := t(ddindx).resourcename;
63 indx := indx+1;
64 if t.last =ddindx
65 then exit;
66 end if;
67 ddindx := t.next(ddindx);
68 end loop;
69 end if;
70 end if;
71 end rosetta_table_copy_out_p1;
72
73 procedure rosetta_table_copy_in_p3(t out nocopy jtf_cal_avlblty_pvt.avlbltb, a0 JTF_NUMBER_TABLE
74 , a1 JTF_VARCHAR2_TABLE_100
75 , a2 JTF_VARCHAR2_TABLE_400
76 , a3 JTF_NUMBER_TABLE
77 , a4 JTF_NUMBER_TABLE
78 ) as
79 ddindx binary_integer; indx binary_integer;
80 begin
81 if a0 is not null and a0.count > 0 then
82 if a0.count > 0 then
83 indx := a0.first;
84 ddindx := 1;
85 while true loop
86 t(ddindx).resourceid := a0(indx);
87 t(ddindx).resourcetype := a1(indx);
88 t(ddindx).resourcename := a2(indx);
89 t(ddindx).slotsequence := a3(indx);
90 t(ddindx).slotavailable := a4(indx);
91 ddindx := ddindx+1;
92 if a0.last =indx
93 then exit;
94 end if;
95 indx := a0.next(indx);
96 end loop;
97 end if;
98 end if;
99 end rosetta_table_copy_in_p3;
100 procedure rosetta_table_copy_out_p3(t jtf_cal_avlblty_pvt.avlbltb, a0 out nocopy JTF_NUMBER_TABLE
101 , a1 out nocopy JTF_VARCHAR2_TABLE_100
102 , a2 out nocopy JTF_VARCHAR2_TABLE_400
103 , a3 out nocopy JTF_NUMBER_TABLE
104 , a4 out nocopy JTF_NUMBER_TABLE
105 ) as
106 ddindx binary_integer; indx binary_integer;
107 begin
108 if t is null or t.count = 0 then
109 a0 := JTF_NUMBER_TABLE();
110 a1 := JTF_VARCHAR2_TABLE_100();
111 a2 := JTF_VARCHAR2_TABLE_400();
112 a3 := JTF_NUMBER_TABLE();
113 a4 := JTF_NUMBER_TABLE();
114 else
115 a0 := JTF_NUMBER_TABLE();
116 a1 := JTF_VARCHAR2_TABLE_100();
117 a2 := JTF_VARCHAR2_TABLE_400();
118 a3 := JTF_NUMBER_TABLE();
119 a4 := JTF_NUMBER_TABLE();
120 if t.count > 0 then
121 a0.extend(t.count);
122 a1.extend(t.count);
123 a2.extend(t.count);
124 a3.extend(t.count);
125 a4.extend(t.count);
126 ddindx := t.first;
127 indx := 1;
128 while true loop
129 a0(indx) := t(ddindx).resourceid;
130 a1(indx) := t(ddindx).resourcetype;
131 a2(indx) := t(ddindx).resourcename;
132 a3(indx) := t(ddindx).slotsequence;
133 a4(indx) := t(ddindx).slotavailable;
134 indx := indx+1;
135 if t.last =ddindx
136 then exit;
137 end if;
138 ddindx := t.next(ddindx);
139 end loop;
140 end if;
141 end if;
142 end rosetta_table_copy_out_p3;
143
144 procedure availability(p_api_version NUMBER
145 , p_init_msg_list VARCHAR2
146 , x_return_status out nocopy VARCHAR2
147 , x_msg_count out nocopy NUMBER
148 , x_msg_data out nocopy VARCHAR2
149 , p5_a0 JTF_NUMBER_TABLE
150 , p5_a1 JTF_VARCHAR2_TABLE_100
151 , p5_a2 JTF_VARCHAR2_TABLE_400
152 , p_startdatetime date
153 , p_enddatetime date
154 , p_slotsize NUMBER
155 , x_numberofslots out nocopy NUMBER
156 , p10_a0 out nocopy JTF_NUMBER_TABLE
157 , p10_a1 out nocopy JTF_VARCHAR2_TABLE_100
158 , p10_a2 out nocopy JTF_VARCHAR2_TABLE_400
159 , p10_a3 out nocopy JTF_NUMBER_TABLE
160 , p10_a4 out nocopy JTF_NUMBER_TABLE
161 , p11_a0 out nocopy JTF_NUMBER_TABLE
162 , p11_a1 out nocopy JTF_VARCHAR2_TABLE_100
163 , p11_a2 out nocopy JTF_VARCHAR2_TABLE_400
164 , p11_a3 out nocopy JTF_NUMBER_TABLE
165 , p11_a4 out nocopy JTF_NUMBER_TABLE
166 )
167
168 as
169 ddp_rslist jtf_cal_avlblty_pvt.rstab;
170 ddp_startdatetime date;
171 ddp_enddatetime date;
172 ddx_availbltylist jtf_cal_avlblty_pvt.avlbltb;
173 ddx_totalavailbltylist jtf_cal_avlblty_pvt.avlbltb;
174 ddindx binary_integer; indx binary_integer;
175 begin
176
177 -- copy data to the local IN or IN-OUT args, if any
178
179
180
181
182
183 jtf_cal_avlblty_pvt_w.rosetta_table_copy_in_p1(ddp_rslist, p5_a0
184 , p5_a1
185 , p5_a2
186 );
187
188 ddp_startdatetime := rosetta_g_miss_date_in_map(p_startdatetime);
189
190 ddp_enddatetime := rosetta_g_miss_date_in_map(p_enddatetime);
191
192
193
194
195
196 -- here's the delegated call to the old PL/SQL routine
197 jtf_cal_avlblty_pvt.availability(p_api_version,
198 p_init_msg_list,
199 x_return_status,
200 x_msg_count,
201 x_msg_data,
202 ddp_rslist,
203 ddp_startdatetime,
204 ddp_enddatetime,
205 p_slotsize,
206 x_numberofslots,
207 ddx_availbltylist,
208 ddx_totalavailbltylist);
209
210 -- copy data back from the local variables to OUT or IN-OUT args, if any
211
212
213
214
215
216
217
218
219
220
221 jtf_cal_avlblty_pvt_w.rosetta_table_copy_out_p3(ddx_availbltylist, p10_a0
222 , p10_a1
223 , p10_a2
224 , p10_a3
225 , p10_a4
226 );
227
228 jtf_cal_avlblty_pvt_w.rosetta_table_copy_out_p3(ddx_totalavailbltylist, p11_a0
229 , p11_a1
230 , p11_a2
231 , p11_a3
232 , p11_a4
233 );
234 end;
235
236 end jtf_cal_avlblty_pvt_w;