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