[Home] [Help]
PACKAGE BODY: APPS.OZF_MASS_SETTLEMENT_PVT_W
Source
1 package body ozf_mass_settlement_pvt_w as
2 /* $Header: ozfwmstb.pls 120.6 2010/11/23 10:16:22 hbandi 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_p2(t out nocopy ozf_mass_settlement_pvt.open_claim_tbl, a0 JTF_NUMBER_TABLE
17 , a1 JTF_VARCHAR2_TABLE_100
18 , a2 JTF_VARCHAR2_TABLE_100
19 , a3 JTF_NUMBER_TABLE
20 , a4 JTF_VARCHAR2_TABLE_2000
21 ) as
22 ddindx binary_integer; indx binary_integer;
23 begin
24 if a0 is not null and a0.count > 0 then
25 if a0.count > 0 then
26 indx := a0.first;
27 ddindx := 1;
28 while true loop
29 t(ddindx).claim_id := a0(indx);
30 t(ddindx).claim_class := a1(indx);
31 t(ddindx).claim_number := a2(indx);
32 t(ddindx).amount_settled := a3(indx);
33 t(ddindx).comments := a4(indx);
34 ddindx := ddindx+1;
35 if a0.last =indx
36 then exit;
37 end if;
38 indx := a0.next(indx);
39 end loop;
40 end if;
41 end if;
42 end rosetta_table_copy_in_p2;
43 procedure rosetta_table_copy_out_p2(t ozf_mass_settlement_pvt.open_claim_tbl, a0 out nocopy JTF_NUMBER_TABLE
44 , a1 out nocopy JTF_VARCHAR2_TABLE_100
45 , a2 out nocopy JTF_VARCHAR2_TABLE_100
46 , a3 out nocopy JTF_NUMBER_TABLE
47 , a4 out nocopy JTF_VARCHAR2_TABLE_2000
48 ) as
49 ddindx binary_integer; indx binary_integer;
50 begin
51 if t is null or t.count = 0 then
52 a0 := JTF_NUMBER_TABLE();
53 a1 := JTF_VARCHAR2_TABLE_100();
54 a2 := JTF_VARCHAR2_TABLE_100();
55 a3 := JTF_NUMBER_TABLE();
56 a4 := JTF_VARCHAR2_TABLE_2000();
57 else
58 a0 := JTF_NUMBER_TABLE();
59 a1 := JTF_VARCHAR2_TABLE_100();
60 a2 := JTF_VARCHAR2_TABLE_100();
61 a3 := JTF_NUMBER_TABLE();
62 a4 := JTF_VARCHAR2_TABLE_2000();
63 if t.count > 0 then
64 a0.extend(t.count);
65 a1.extend(t.count);
66 a2.extend(t.count);
67 a3.extend(t.count);
68 a4.extend(t.count);
69 ddindx := t.first;
70 indx := 1;
71 while true loop
72 a0(indx) := t(ddindx).claim_id;
73 a1(indx) := t(ddindx).claim_class;
74 a2(indx) := t(ddindx).claim_number;
75 a3(indx) := t(ddindx).amount_settled;
76 a4(indx) := t(ddindx).comments;
77 indx := indx+1;
78 if t.last =ddindx
79 then exit;
80 end if;
81 ddindx := t.next(ddindx);
82 end loop;
83 end if;
84 end if;
85 end rosetta_table_copy_out_p2;
86
87 procedure rosetta_table_copy_in_p4(t out nocopy ozf_mass_settlement_pvt.open_transaction_tbl, a0 JTF_NUMBER_TABLE
88 , a1 JTF_NUMBER_TABLE
89 , a2 JTF_VARCHAR2_TABLE_100
90 , a3 JTF_VARCHAR2_TABLE_100
91 , a4 JTF_NUMBER_TABLE
92 ) as
93 ddindx binary_integer; indx binary_integer;
94 begin
95 if a0 is not null and a0.count > 0 then
96 if a0.count > 0 then
97 indx := a0.first;
98 ddindx := 1;
99 while true loop
100 t(ddindx).customer_trx_id := a0(indx);
101 t(ddindx).cust_trx_type_id := a1(indx);
102 t(ddindx).trx_class := a2(indx);
103 t(ddindx).trx_number := a3(indx);
104 t(ddindx).amount_settled := a4(indx);
105 ddindx := ddindx+1;
106 if a0.last =indx
107 then exit;
108 end if;
109 indx := a0.next(indx);
110 end loop;
111 end if;
112 end if;
113 end rosetta_table_copy_in_p4;
114 procedure rosetta_table_copy_out_p4(t ozf_mass_settlement_pvt.open_transaction_tbl, a0 out nocopy JTF_NUMBER_TABLE
115 , a1 out nocopy JTF_NUMBER_TABLE
116 , a2 out nocopy JTF_VARCHAR2_TABLE_100
117 , a3 out nocopy JTF_VARCHAR2_TABLE_100
118 , a4 out nocopy JTF_NUMBER_TABLE
119 ) as
120 ddindx binary_integer; indx binary_integer;
121 begin
122 if t is null or t.count = 0 then
123 a0 := JTF_NUMBER_TABLE();
124 a1 := JTF_NUMBER_TABLE();
125 a2 := JTF_VARCHAR2_TABLE_100();
126 a3 := JTF_VARCHAR2_TABLE_100();
127 a4 := JTF_NUMBER_TABLE();
128 else
129 a0 := JTF_NUMBER_TABLE();
130 a1 := JTF_NUMBER_TABLE();
131 a2 := JTF_VARCHAR2_TABLE_100();
132 a3 := JTF_VARCHAR2_TABLE_100();
133 a4 := JTF_NUMBER_TABLE();
134 if t.count > 0 then
135 a0.extend(t.count);
136 a1.extend(t.count);
137 a2.extend(t.count);
138 a3.extend(t.count);
139 a4.extend(t.count);
140 ddindx := t.first;
141 indx := 1;
142 while true loop
143 a0(indx) := t(ddindx).customer_trx_id;
144 a1(indx) := t(ddindx).cust_trx_type_id;
145 a2(indx) := t(ddindx).trx_class;
146 a3(indx) := t(ddindx).trx_number;
147 a4(indx) := t(ddindx).amount_settled;
148 indx := indx+1;
149 if t.last =ddindx
150 then exit;
151 end if;
152 ddindx := t.next(ddindx);
153 end loop;
154 end if;
155 end if;
156 end rosetta_table_copy_out_p4;
157
158 procedure rosetta_table_copy_in_p6(t out nocopy ozf_mass_settlement_pvt.claim_payment_method_tbl, a0 JTF_VARCHAR2_TABLE_100
159 , a1 JTF_DATE_TABLE
160 , a2 JTF_NUMBER_TABLE
161 , a3 JTF_NUMBER_TABLE
162 , a4 JTF_NUMBER_TABLE
163 , a5 JTF_VARCHAR2_TABLE_2000
164 ) as
165 ddindx binary_integer; indx binary_integer;
166 begin
167 if a0 is not null and a0.count > 0 then
168 if a0.count > 0 then
169 indx := a0.first;
170 ddindx := 1;
171 while true loop
172 t(ddindx).payment_method := a0(indx);
173 t(ddindx).gl_date := rosetta_g_miss_date_in_map(a1(indx));
174 t(ddindx).wo_rec_trx_id := a2(indx);
175 t(ddindx).amount_settled := a3(indx);
176 t(ddindx).wo_adj_trx_id := a4(indx);
177 t(ddindx).comments := a5(indx);
178 ddindx := ddindx+1;
179 if a0.last =indx
180 then exit;
181 end if;
182 indx := a0.next(indx);
183 end loop;
184 end if;
185 end if;
186 end rosetta_table_copy_in_p6;
187 procedure rosetta_table_copy_out_p6(t ozf_mass_settlement_pvt.claim_payment_method_tbl, a0 out nocopy JTF_VARCHAR2_TABLE_100
188 , a1 out nocopy JTF_DATE_TABLE
189 , a2 out nocopy JTF_NUMBER_TABLE
190 , a3 out nocopy JTF_NUMBER_TABLE
191 , a4 out nocopy JTF_NUMBER_TABLE
192 , a5 out nocopy JTF_VARCHAR2_TABLE_2000
193 ) as
194 ddindx binary_integer; indx binary_integer;
195 begin
196 if t is null or t.count = 0 then
197 a0 := JTF_VARCHAR2_TABLE_100();
198 a1 := JTF_DATE_TABLE();
199 a2 := JTF_NUMBER_TABLE();
200 a3 := JTF_NUMBER_TABLE();
201 a4 := JTF_NUMBER_TABLE();
202 a5 := JTF_VARCHAR2_TABLE_2000();
203 else
204 a0 := JTF_VARCHAR2_TABLE_100();
205 a1 := JTF_DATE_TABLE();
206 a2 := JTF_NUMBER_TABLE();
207 a3 := JTF_NUMBER_TABLE();
208 a4 := JTF_NUMBER_TABLE();
209 a5 := JTF_VARCHAR2_TABLE_2000();
210 if t.count > 0 then
211 a0.extend(t.count);
212 a1.extend(t.count);
213 a2.extend(t.count);
214 a3.extend(t.count);
215 a4.extend(t.count);
216 a5.extend(t.count);
217 ddindx := t.first;
218 indx := 1;
219 while true loop
220 a0(indx) := t(ddindx).payment_method;
221 a1(indx) := t(ddindx).gl_date;
222 a2(indx) := t(ddindx).wo_rec_trx_id;
223 a3(indx) := t(ddindx).amount_settled;
224 a4(indx) := t(ddindx).wo_adj_trx_id;
225 a5(indx) := t(ddindx).comments;
226 indx := indx+1;
227 if t.last =ddindx
228 then exit;
229 end if;
230 ddindx := t.next(ddindx);
231 end loop;
232 end if;
233 end if;
234 end rosetta_table_copy_out_p6;
235
236 procedure settle_mass_settlement(p_api_version NUMBER
237 , p_init_msg_list VARCHAR2
238 , p_commit VARCHAR2
239 , p_validation_level NUMBER
240 , x_return_status out nocopy VARCHAR2
241 , x_msg_data out nocopy VARCHAR2
242 , x_msg_count out nocopy NUMBER
243 , p7_a0 NUMBER
244 , p7_a1 VARCHAR2
245 , p7_a2 VARCHAR2
246 , p7_a3 NUMBER
247 , p7_a4 NUMBER
248 , p7_a5 NUMBER
249 , p7_a6 NUMBER
250 , p7_a7 VARCHAR2
251 , p7_a8 NUMBER
252 , p7_a9 NUMBER
253 , p7_a10 VARCHAR2
254 , p8_a0 JTF_NUMBER_TABLE
255 , p8_a1 JTF_VARCHAR2_TABLE_100
256 , p8_a2 JTF_VARCHAR2_TABLE_100
257 , p8_a3 JTF_NUMBER_TABLE
258 , p8_a4 JTF_VARCHAR2_TABLE_2000
259 , p9_a0 JTF_NUMBER_TABLE
260 , p9_a1 JTF_NUMBER_TABLE
261 , p9_a2 JTF_VARCHAR2_TABLE_100
262 , p9_a3 JTF_VARCHAR2_TABLE_100
263 , p9_a4 JTF_NUMBER_TABLE
264 , p10_a0 JTF_VARCHAR2_TABLE_100
265 , p10_a1 JTF_DATE_TABLE
266 , p10_a2 JTF_NUMBER_TABLE
267 , p10_a3 JTF_NUMBER_TABLE
268 , p10_a4 JTF_NUMBER_TABLE
269 , p10_a5 JTF_VARCHAR2_TABLE_2000
270 , x_claim_group_id out nocopy NUMBER
271 , x_claim_group_number out nocopy VARCHAR2
272 )
273
274 as
275 ddp_group_claim_rec ozf_mass_settlement_pvt.group_claim_rec;
276 ddp_open_claim_tbl ozf_mass_settlement_pvt.open_claim_tbl;
277 ddp_open_transaction_tbl ozf_mass_settlement_pvt.open_transaction_tbl;
278 ddp_payment_method_tbl ozf_mass_settlement_pvt.claim_payment_method_tbl;
279 ddindx binary_integer; indx binary_integer;
280 begin
281
282 -- copy data to the local IN or IN-OUT args, if any
283
284
285
286
287
288
289
290 ddp_group_claim_rec.claim_id := p7_a0;
291 ddp_group_claim_rec.claim_class := p7_a1;
292 ddp_group_claim_rec.claim_number := p7_a2;
293 ddp_group_claim_rec.claim_type_id := p7_a3;
294 ddp_group_claim_rec.reason_code_id := p7_a4;
295 ddp_group_claim_rec.cust_account_id := p7_a5;
296 ddp_group_claim_rec.amount_settled := p7_a6;
297 ddp_group_claim_rec.currency_code := p7_a7;
298 ddp_group_claim_rec.bill_to_site_id := p7_a8;
299 ddp_group_claim_rec.org_id := p7_a9;
300 ddp_group_claim_rec.comments := p7_a10;
301
302 ozf_mass_settlement_pvt_w.rosetta_table_copy_in_p2(ddp_open_claim_tbl, p8_a0
303 , p8_a1
304 , p8_a2
305 , p8_a3
306 , p8_a4
307 );
308
309 ozf_mass_settlement_pvt_w.rosetta_table_copy_in_p4(ddp_open_transaction_tbl, p9_a0
310 , p9_a1
311 , p9_a2
312 , p9_a3
313 , p9_a4
314 );
315
316 ozf_mass_settlement_pvt_w.rosetta_table_copy_in_p6(ddp_payment_method_tbl, p10_a0
317 , p10_a1
318 , p10_a2
319 , p10_a3
320 , p10_a4
321 , p10_a5
322 );
323
324
325
326 -- here's the delegated call to the old PL/SQL routine
327 ozf_mass_settlement_pvt.settle_mass_settlement(p_api_version,
328 p_init_msg_list,
329 p_commit,
330 p_validation_level,
331 x_return_status,
332 x_msg_data,
333 x_msg_count,
334 ddp_group_claim_rec,
335 ddp_open_claim_tbl,
336 ddp_open_transaction_tbl,
337 ddp_payment_method_tbl,
338 x_claim_group_id,
339 x_claim_group_number);
340
341 -- copy data back from the local variables to OUT or IN-OUT args, if any
342
343
344
345
346
347
348
349
350
351
352
353
354 end;
355
356 end ozf_mass_settlement_pvt_w;