[Home] [Help]
PACKAGE BODY: APPS.IBE_ATP_PVT_W
Source
1 package body ibe_atp_pvt_w as
2 /* $Header: IBEVATWB.pls 115.9 2003/08/29 09:09:17 nsultan 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 function rosetta_g_miss_num_map(n number) return number as
7 a number := fnd_api.g_miss_num;
8 b number := 0-1962.0724;
9 begin
10 if n=a then return b; end if;
11 if n=b then return a; end if;
12 return n;
13 end;
14
15 -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
16 function rosetta_g_miss_date_in_map(d date) return date as
17 begin
18 if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
19 return d;
20 end;
21
22 procedure rosetta_table_copy_in_p1(t out NOCOPY ibe_atp_pvt.atp_line_tbl_typ, a0 JTF_NUMBER_TABLE
23 , a1 JTF_NUMBER_TABLE
24 , a2 JTF_NUMBER_TABLE
25 , a3 JTF_NUMBER_TABLE
26 , a4 JTF_VARCHAR2_TABLE_100
27 , a5 JTF_NUMBER_TABLE
28 , a6 JTF_NUMBER_TABLE
29 , a7 JTF_VARCHAR2_TABLE_100
30 , a8 JTF_VARCHAR2_TABLE_100
31 , a9 JTF_NUMBER_TABLE
32 , a10 JTF_VARCHAR2_TABLE_100
33 , a11 JTF_NUMBER_TABLE
34 , a12 JTF_VARCHAR2_TABLE_2000
35 ) as
36 ddindx binary_integer; indx binary_integer;
37 begin
38 if a0 is not null and a0.count > 0 then
39 if a0.count > 0 then
40 indx := a0.first;
41 ddindx := 1;
42 while true loop
43 t(ddindx).quote_line_id := rosetta_g_miss_num_map(a0(indx));
44 t(ddindx).organization_id := rosetta_g_miss_num_map(a1(indx));
45 t(ddindx).inventory_item_id := rosetta_g_miss_num_map(a2(indx));
46 t(ddindx).quantity := rosetta_g_miss_num_map(a3(indx));
47 t(ddindx).uom_code := a4(indx);
48 t(ddindx).customer_id := rosetta_g_miss_num_map(a5(indx));
49 t(ddindx).ship_to_site_id := rosetta_g_miss_num_map(a6(indx));
50 t(ddindx).ship_method_code := a7(indx);
51 t(ddindx).request_date := a8(indx);
52 t(ddindx).request_date_quantity := rosetta_g_miss_num_map(a9(indx));
53 t(ddindx).available_date := a10(indx);
54 t(ddindx).error_code := rosetta_g_miss_num_map(a11(indx));
55 t(ddindx).error_message := a12(indx);
56 ddindx := ddindx+1;
57 if a0.last =indx
58 then exit;
59 end if;
60 indx := a0.next(indx);
61 end loop;
62 end if;
63 end if;
64 end rosetta_table_copy_in_p1;
65 procedure rosetta_table_copy_out_p1(t ibe_atp_pvt.atp_line_tbl_typ, a0 out NOCOPY JTF_NUMBER_TABLE
66 , a1 out NOCOPY JTF_NUMBER_TABLE
67 , a2 out NOCOPY JTF_NUMBER_TABLE
68 , a3 out NOCOPY JTF_NUMBER_TABLE
69 , a4 out NOCOPY JTF_VARCHAR2_TABLE_100
70 , a5 out NOCOPY JTF_NUMBER_TABLE
71 , a6 out NOCOPY JTF_NUMBER_TABLE
72 , a7 out NOCOPY JTF_VARCHAR2_TABLE_100
73 , a8 out NOCOPY JTF_VARCHAR2_TABLE_100
74 , a9 out NOCOPY JTF_NUMBER_TABLE
75 , a10 out NOCOPY JTF_VARCHAR2_TABLE_100
76 , a11 out NOCOPY JTF_NUMBER_TABLE
77 , a12 out NOCOPY JTF_VARCHAR2_TABLE_2000
78 ) as
79 ddindx binary_integer; indx binary_integer;
80 begin
81 if t is null or t.count = 0 then
82 a0 := JTF_NUMBER_TABLE();
83 a1 := JTF_NUMBER_TABLE();
84 a2 := JTF_NUMBER_TABLE();
85 a3 := JTF_NUMBER_TABLE();
86 a4 := JTF_VARCHAR2_TABLE_100();
87 a5 := JTF_NUMBER_TABLE();
88 a6 := JTF_NUMBER_TABLE();
89 a7 := JTF_VARCHAR2_TABLE_100();
90 a8 := JTF_VARCHAR2_TABLE_100();
91 a9 := JTF_NUMBER_TABLE();
92 a10 := JTF_VARCHAR2_TABLE_100();
93 a11 := JTF_NUMBER_TABLE();
94 a12 := JTF_VARCHAR2_TABLE_2000();
95 else
96 a0 := JTF_NUMBER_TABLE();
97 a1 := JTF_NUMBER_TABLE();
98 a2 := JTF_NUMBER_TABLE();
99 a3 := JTF_NUMBER_TABLE();
100 a4 := JTF_VARCHAR2_TABLE_100();
101 a5 := JTF_NUMBER_TABLE();
102 a6 := JTF_NUMBER_TABLE();
103 a7 := JTF_VARCHAR2_TABLE_100();
104 a8 := JTF_VARCHAR2_TABLE_100();
105 a9 := JTF_NUMBER_TABLE();
106 a10 := JTF_VARCHAR2_TABLE_100();
107 a11 := JTF_NUMBER_TABLE();
108 a12 := JTF_VARCHAR2_TABLE_2000();
109 if t.count > 0 then
110 a0.extend(t.count);
111 a1.extend(t.count);
112 a2.extend(t.count);
113 a3.extend(t.count);
114 a4.extend(t.count);
115 a5.extend(t.count);
116 a6.extend(t.count);
117 a7.extend(t.count);
118 a8.extend(t.count);
119 a9.extend(t.count);
120 a10.extend(t.count);
121 a11.extend(t.count);
122 a12.extend(t.count);
123 ddindx := t.first;
124 indx := 1;
125 while true loop
126 a0(indx) := rosetta_g_miss_num_map(t(ddindx).quote_line_id);
127 a1(indx) := rosetta_g_miss_num_map(t(ddindx).organization_id);
128 a2(indx) := rosetta_g_miss_num_map(t(ddindx).inventory_item_id);
129 a3(indx) := rosetta_g_miss_num_map(t(ddindx).quantity);
130 a4(indx) := t(ddindx).uom_code;
131 a5(indx) := rosetta_g_miss_num_map(t(ddindx).customer_id);
132 a6(indx) := rosetta_g_miss_num_map(t(ddindx).ship_to_site_id);
133 a7(indx) := t(ddindx).ship_method_code;
134 a8(indx) := t(ddindx).request_date;
135 a9(indx) := rosetta_g_miss_num_map(t(ddindx).request_date_quantity);
136 a10(indx) := t(ddindx).available_date;
137 a11(indx) := rosetta_g_miss_num_map(t(ddindx).error_code);
138 a12(indx) := t(ddindx).error_message;
139 indx := indx+1;
140 if t.last =ddindx
141 then exit;
142 end if;
143 ddindx := t.next(ddindx);
144 end loop;
145 end if;
146 end if;
147 end rosetta_table_copy_out_p1;
148
149 procedure check_availability(p_quote_header_id NUMBER
150 , p_date_format VARCHAR2
151 , p_lang_code VARCHAR2
152 , x_error_flag out NOCOPY VARCHAR2
153 , x_error_message out NOCOPY VARCHAR2
154 , p5_a0 in out NOCOPY JTF_NUMBER_TABLE
155 , p5_a1 in out NOCOPY JTF_NUMBER_TABLE
156 , p5_a2 in out NOCOPY JTF_NUMBER_TABLE
157 , p5_a3 in out NOCOPY JTF_NUMBER_TABLE
158 , p5_a4 in out NOCOPY JTF_VARCHAR2_TABLE_100
159 , p5_a5 in out NOCOPY JTF_NUMBER_TABLE
160 , p5_a6 in out NOCOPY JTF_NUMBER_TABLE
161 , p5_a7 in out NOCOPY JTF_VARCHAR2_TABLE_100
162 , p5_a8 in out NOCOPY JTF_VARCHAR2_TABLE_100
163 , p5_a9 in out NOCOPY JTF_NUMBER_TABLE
164 , p5_a10 in out NOCOPY JTF_VARCHAR2_TABLE_100
165 , p5_a11 in out NOCOPY JTF_NUMBER_TABLE
166 , p5_a12 in out NOCOPY JTF_VARCHAR2_TABLE_2000
167 )
168 as
169 ddx_atp_line_tbl ibe_atp_pvt.atp_line_tbl_typ;
170 ddindx binary_integer; indx binary_integer;
171 begin
172
173 -- copy data to the local IN or IN-OUT args, if any
174
175
176
177
178
179 ibe_atp_pvt_w.rosetta_table_copy_in_p1(ddx_atp_line_tbl, p5_a0
180 , p5_a1
181 , p5_a2
182 , p5_a3
183 , p5_a4
184 , p5_a5
185 , p5_a6
186 , p5_a7
187 , p5_a8
188 , p5_a9
189 , p5_a10
190 , p5_a11
191 , p5_a12
192 );
193
194 -- here's the delegated call to the old PL/SQL routine
195 ibe_atp_pvt.check_availability(p_quote_header_id,
196 p_date_format,
197 p_lang_code,
198 x_error_flag,
199 x_error_message,
200 ddx_atp_line_tbl);
201
202 -- copy data back from the local OUT or IN-OUT args, if any
203
204
205
206
207
208 ibe_atp_pvt_w.rosetta_table_copy_out_p1(ddx_atp_line_tbl, p5_a0
209 , p5_a1
210 , p5_a2
211 , p5_a3
212 , p5_a4
213 , p5_a5
214 , p5_a6
215 , p5_a7
216 , p5_a8
217 , p5_a9
218 , p5_a10
219 , p5_a11
220 , p5_a12
221 );
222 end;
223
224 end ibe_atp_pvt_w;