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