[Home] [Help]
PACKAGE BODY: APPS.OKL_COPY_CONTRACT_PVT_W
Source
1 package body okl_copy_contract_pvt_w as
2 /* $Header: OKLECOPB.pls 120.1 2005/07/08 12:20:48 dkagrawa noship $ */
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 -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
7 function rosetta_g_miss_date_in_map(d date) return date as
8 begin
9 if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
10 return d;
11 end;
12
13 function rosetta_g_miss_num_map(n number) return number as
14 a number := fnd_api.g_miss_num;
15 b number := 0-1962.0724;
16 begin
17 if n=a then return b; end if;
18 if n=b then return a; end if;
19 return n;
20 end;
21
22 procedure rosetta_table_copy_in_p29(t out nocopy okl_copy_contract_pvt.api_components_tbl, a0 JTF_NUMBER_TABLE
23 , a1 JTF_NUMBER_TABLE
24 , a2 JTF_VARCHAR2_TABLE_100
25 , a3 JTF_VARCHAR2_TABLE_100
26 ) as
27 ddindx binary_integer; indx binary_integer;
28 begin
29 if a0 is not null and a0.count > 0 then
30 if a0.count > 0 then
31 indx := a0.first;
32 ddindx := 1;
33 while true loop
34 t(ddindx).id := rosetta_g_miss_num_map(a0(indx));
35 t(ddindx).to_k := rosetta_g_miss_num_map(a1(indx));
36 t(ddindx).component_type := a2(indx);
37 t(ddindx).attribute1 := a3(indx);
38 ddindx := ddindx+1;
39 if a0.last =indx
40 then exit;
41 end if;
42 indx := a0.next(indx);
43 end loop;
44 end if;
45 end if;
46 end rosetta_table_copy_in_p29;
47 procedure rosetta_table_copy_out_p29(t okl_copy_contract_pvt.api_components_tbl, a0 out nocopy JTF_NUMBER_TABLE
48 , a1 out nocopy JTF_NUMBER_TABLE
49 , a2 out nocopy JTF_VARCHAR2_TABLE_100
50 , a3 out nocopy JTF_VARCHAR2_TABLE_100
51 ) as
52 ddindx binary_integer; indx binary_integer;
53 begin
54 if t is null or t.count = 0 then
55 a0 := JTF_NUMBER_TABLE();
56 a1 := JTF_NUMBER_TABLE();
57 a2 := JTF_VARCHAR2_TABLE_100();
58 a3 := JTF_VARCHAR2_TABLE_100();
59 else
60 a0 := JTF_NUMBER_TABLE();
61 a1 := JTF_NUMBER_TABLE();
62 a2 := JTF_VARCHAR2_TABLE_100();
63 a3 := JTF_VARCHAR2_TABLE_100();
64 if t.count > 0 then
65 a0.extend(t.count);
66 a1.extend(t.count);
67 a2.extend(t.count);
68 a3.extend(t.count);
69 ddindx := t.first;
70 indx := 1;
71 while true loop
72 a0(indx) := rosetta_g_miss_num_map(t(ddindx).id);
73 a1(indx) := rosetta_g_miss_num_map(t(ddindx).to_k);
74 a2(indx) := t(ddindx).component_type;
75 a3(indx) := t(ddindx).attribute1;
76 indx := indx+1;
77 if t.last =ddindx
78 then exit;
79 end if;
80 ddindx := t.next(ddindx);
81 end loop;
82 end if;
83 end if;
84 end rosetta_table_copy_out_p29;
85
86 procedure rosetta_table_copy_in_p31(t out nocopy okl_copy_contract_pvt.api_lines_tbl, a0 JTF_NUMBER_TABLE
87 , a1 JTF_NUMBER_TABLE
88 , a2 JTF_NUMBER_TABLE
89 , a3 JTF_NUMBER_TABLE
90 , a4 JTF_VARCHAR2_TABLE_100
91 ) as
92 ddindx binary_integer; indx binary_integer;
93 begin
94 if a0 is not null and a0.count > 0 then
95 if a0.count > 0 then
96 indx := a0.first;
97 ddindx := 1;
98 while true loop
99 t(ddindx).id := rosetta_g_miss_num_map(a0(indx));
100 t(ddindx).to_k := rosetta_g_miss_num_map(a1(indx));
101 t(ddindx).to_line := rosetta_g_miss_num_map(a2(indx));
102 t(ddindx).lse_id := rosetta_g_miss_num_map(a3(indx));
103 t(ddindx).line_exists_yn := a4(indx);
104 ddindx := ddindx+1;
105 if a0.last =indx
106 then exit;
107 end if;
108 indx := a0.next(indx);
109 end loop;
110 end if;
111 end if;
112 end rosetta_table_copy_in_p31;
113 procedure rosetta_table_copy_out_p31(t okl_copy_contract_pvt.api_lines_tbl, a0 out nocopy JTF_NUMBER_TABLE
114 , a1 out nocopy JTF_NUMBER_TABLE
115 , a2 out nocopy JTF_NUMBER_TABLE
116 , a3 out nocopy JTF_NUMBER_TABLE
117 , a4 out nocopy JTF_VARCHAR2_TABLE_100
118 ) as
119 ddindx binary_integer; indx binary_integer;
120 begin
121 if t is null or t.count = 0 then
122 a0 := JTF_NUMBER_TABLE();
123 a1 := JTF_NUMBER_TABLE();
124 a2 := JTF_NUMBER_TABLE();
125 a3 := JTF_NUMBER_TABLE();
126 a4 := JTF_VARCHAR2_TABLE_100();
127 else
128 a0 := JTF_NUMBER_TABLE();
129 a1 := JTF_NUMBER_TABLE();
130 a2 := JTF_NUMBER_TABLE();
131 a3 := JTF_NUMBER_TABLE();
132 a4 := JTF_VARCHAR2_TABLE_100();
133 if t.count > 0 then
134 a0.extend(t.count);
135 a1.extend(t.count);
136 a2.extend(t.count);
137 a3.extend(t.count);
138 a4.extend(t.count);
139 ddindx := t.first;
140 indx := 1;
141 while true loop
142 a0(indx) := rosetta_g_miss_num_map(t(ddindx).id);
143 a1(indx) := rosetta_g_miss_num_map(t(ddindx).to_k);
144 a2(indx) := rosetta_g_miss_num_map(t(ddindx).to_line);
145 a3(indx) := rosetta_g_miss_num_map(t(ddindx).lse_id);
146 a4(indx) := t(ddindx).line_exists_yn;
147 indx := indx+1;
148 if t.last =ddindx
149 then exit;
150 end if;
151 ddindx := t.next(ddindx);
152 end loop;
153 end if;
154 end if;
155 end rosetta_table_copy_out_p31;
156
157 procedure is_copy_allowed(p_chr_id NUMBER
158 , p_sts_code VARCHAR2
159 , ddrosetta_retval_bool OUT NOCOPY NUMBER
160 )
161
162 as
163 ddindx binary_integer; indx binary_integer;
164 ddrosetta_retval boolean;
165 begin
166
167 -- copy data to the local IN or IN-OUT args, if any
168
169
170 -- here's the delegated call to the old PL/SQL routine
171 ddrosetta_retval := okl_copy_contract_pvt.is_copy_allowed(p_chr_id,
172 p_sts_code);
173
174 -- copy data back from the local variables to OUT or IN-OUT args, if any
175 if ddrosetta_retval is null
176 then ddrosetta_retval_bool := null;
177 elsif ddrosetta_retval
178 then ddrosetta_retval_bool := 1;
179 else ddrosetta_retval_bool := 0;
180 end if;
181
182 end;
183
184 procedure is_subcontract_allowed(p_chr_id NUMBER
185 , p_sts_code VARCHAR2
186 , ddrosetta_retval_bool OUT NOCOPY NUMBER
187 )
188
189 as
190 ddindx binary_integer; indx binary_integer;
191 ddrosetta_retval boolean;
192 begin
193
194 -- copy data to the local IN or IN-OUT args, if any
195
196
197 -- here's the delegated call to the old PL/SQL routine
198 ddrosetta_retval := okl_copy_contract_pvt.is_subcontract_allowed(p_chr_id,
199 p_sts_code);
200
201 -- copy data back from the local variables to OUT or IN-OUT args, if any
202 if ddrosetta_retval is null
203 then ddrosetta_retval_bool := null;
204 elsif ddrosetta_retval
205 then ddrosetta_retval_bool := 1;
206 else ddrosetta_retval_bool := 0;
207 end if;
208
209 end;
210
211 procedure update_target_contract(p_chr_id NUMBER
212 , ddrosetta_retval_bool OUT NOCOPY NUMBER
213 )
214
215 as
216 ddindx binary_integer; indx binary_integer;
217 ddrosetta_retval boolean;
218 begin
219
220 -- copy data to the local IN or IN-OUT args, if any
221
222 -- here's the delegated call to the old PL/SQL routine
223 ddrosetta_retval := okl_copy_contract_pvt.update_target_contract(p_chr_id);
224
225 -- copy data back from the local variables to OUT or IN-OUT args, if any
226 if ddrosetta_retval is null
227 then ddrosetta_retval_bool := null;
228 elsif ddrosetta_retval
229 then ddrosetta_retval_bool := 1;
230 else ddrosetta_retval_bool := 0;
231 end if;
232 end;
233
234 procedure copy_components(p_api_version NUMBER
235 , p_init_msg_list VARCHAR2
236 , x_return_status out nocopy VARCHAR2
237 , x_msg_count out nocopy NUMBER
238 , x_msg_data out nocopy VARCHAR2
239 , p_from_chr_id NUMBER
240 , p_to_chr_id NUMBER
241 , p_contract_number VARCHAR2
242 , p_contract_number_modifier VARCHAR2
243 , p_to_template_yn VARCHAR2
244 , p_copy_reference VARCHAR2
245 , p_copy_line_party_yn VARCHAR2
246 , p_scs_code VARCHAR2
247 , p_intent VARCHAR2
248 , p_prospect VARCHAR2
249 , p15_a0 JTF_NUMBER_TABLE
250 , p15_a1 JTF_NUMBER_TABLE
251 , p15_a2 JTF_VARCHAR2_TABLE_100
252 , p15_a3 JTF_VARCHAR2_TABLE_100
253 , p16_a0 JTF_NUMBER_TABLE
254 , p16_a1 JTF_NUMBER_TABLE
255 , p16_a2 JTF_NUMBER_TABLE
256 , p16_a3 JTF_NUMBER_TABLE
257 , p16_a4 JTF_VARCHAR2_TABLE_100
258 , x_chr_id out nocopy NUMBER
259 )
260
261 as
262 ddp_components_tbl okl_copy_contract_pvt.api_components_tbl;
263 ddp_lines_tbl okl_copy_contract_pvt.api_lines_tbl;
264 ddindx binary_integer; indx binary_integer;
265 begin
266
267 -- copy data to the local IN or IN-OUT args, if any
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283 okl_copy_contract_pvt_w.rosetta_table_copy_in_p29(ddp_components_tbl, p15_a0
284 , p15_a1
285 , p15_a2
286 , p15_a3
287 );
288
289 okl_copy_contract_pvt_w.rosetta_table_copy_in_p31(ddp_lines_tbl, p16_a0
290 , p16_a1
291 , p16_a2
292 , p16_a3
293 , p16_a4
294 );
295
296
297 -- here's the delegated call to the old PL/SQL routine
298 okl_copy_contract_pvt.copy_components(p_api_version,
299 p_init_msg_list,
300 x_return_status,
301 x_msg_count,
302 x_msg_data,
303 p_from_chr_id,
304 p_to_chr_id,
305 p_contract_number,
306 p_contract_number_modifier,
307 p_to_template_yn,
308 p_copy_reference,
309 p_copy_line_party_yn,
310 p_scs_code,
311 p_intent,
312 p_prospect,
313 ddp_components_tbl,
314 ddp_lines_tbl,
315 x_chr_id);
316
317 -- copy data back from the local variables to OUT or IN-OUT args, if any
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335 end;
336
337 end okl_copy_contract_pvt_w;