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