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