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.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;