DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_LOSS_PROV_PVT_W

Source


1 package body okl_loss_prov_pvt_w as
2   /* $Header: OKLELPVB.pls 120.5 2005/10/30 03:20:11 appldev 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_p3(t out nocopy okl_loss_prov_pvt.bucket_tbl_type, a0 JTF_NUMBER_TABLE
23     , a1 JTF_NUMBER_TABLE
24     , a2 JTF_NUMBER_TABLE
25     , a3 JTF_VARCHAR2_TABLE_100
26     , a4 JTF_NUMBER_TABLE
27     , a5 JTF_NUMBER_TABLE
28     , a6 JTF_NUMBER_TABLE
29     ) as
30     ddindx binary_integer; indx binary_integer;
31   begin
32   if a0 is not null and a0.count > 0 then
33       if a0.count > 0 then
34         indx := a0.first;
35         ddindx := 1;
36         while true loop
37           t(ddindx).aging_bucket_line_id := rosetta_g_miss_num_map(a0(indx));
38           t(ddindx).bkt_id := rosetta_g_miss_num_map(a1(indx));
39           t(ddindx).loss_rate := rosetta_g_miss_num_map(a2(indx));
40           t(ddindx).bucket_name := a3(indx);
41           t(ddindx).days_start := rosetta_g_miss_num_map(a4(indx));
42           t(ddindx).days_to := rosetta_g_miss_num_map(a5(indx));
43           t(ddindx).loss_amount := rosetta_g_miss_num_map(a6(indx));
44           ddindx := ddindx+1;
45           if a0.last =indx
46             then exit;
47           end if;
48           indx := a0.next(indx);
49         end loop;
50       end if;
51    end if;
52   end rosetta_table_copy_in_p3;
53   procedure rosetta_table_copy_out_p3(t okl_loss_prov_pvt.bucket_tbl_type, a0 out nocopy JTF_NUMBER_TABLE
54     , a1 out nocopy JTF_NUMBER_TABLE
55     , a2 out nocopy JTF_NUMBER_TABLE
56     , a3 out nocopy JTF_VARCHAR2_TABLE_100
57     , a4 out nocopy JTF_NUMBER_TABLE
58     , a5 out nocopy JTF_NUMBER_TABLE
59     , a6 out nocopy JTF_NUMBER_TABLE
60     ) as
61     ddindx binary_integer; indx binary_integer;
62   begin
63   if t is null or t.count = 0 then
64     a0 := JTF_NUMBER_TABLE();
65     a1 := JTF_NUMBER_TABLE();
66     a2 := JTF_NUMBER_TABLE();
67     a3 := JTF_VARCHAR2_TABLE_100();
68     a4 := JTF_NUMBER_TABLE();
69     a5 := JTF_NUMBER_TABLE();
70     a6 := JTF_NUMBER_TABLE();
71   else
72       a0 := JTF_NUMBER_TABLE();
73       a1 := JTF_NUMBER_TABLE();
74       a2 := JTF_NUMBER_TABLE();
75       a3 := JTF_VARCHAR2_TABLE_100();
76       a4 := JTF_NUMBER_TABLE();
77       a5 := JTF_NUMBER_TABLE();
78       a6 := JTF_NUMBER_TABLE();
79       if t.count > 0 then
80         a0.extend(t.count);
81         a1.extend(t.count);
82         a2.extend(t.count);
83         a3.extend(t.count);
84         a4.extend(t.count);
85         a5.extend(t.count);
86         a6.extend(t.count);
87         ddindx := t.first;
88         indx := 1;
89         while true loop
90           a0(indx) := rosetta_g_miss_num_map(t(ddindx).aging_bucket_line_id);
91           a1(indx) := rosetta_g_miss_num_map(t(ddindx).bkt_id);
92           a2(indx) := rosetta_g_miss_num_map(t(ddindx).loss_rate);
93           a3(indx) := t(ddindx).bucket_name;
94           a4(indx) := rosetta_g_miss_num_map(t(ddindx).days_start);
95           a5(indx) := rosetta_g_miss_num_map(t(ddindx).days_to);
96           a6(indx) := rosetta_g_miss_num_map(t(ddindx).loss_amount);
97           indx := indx+1;
98           if t.last =ddindx
99             then exit;
100           end if;
101           ddindx := t.next(ddindx);
102         end loop;
103       end if;
104    end if;
105   end rosetta_table_copy_out_p3;
106 
107   procedure rosetta_table_copy_in_p4(t out nocopy okl_loss_prov_pvt.slpv_tbl_type, a0 JTF_NUMBER_TABLE
108     , a1 JTF_NUMBER_TABLE
109     , a2 JTF_NUMBER_TABLE
110     , a3 JTF_VARCHAR2_TABLE_2000
111     , a4 JTF_VARCHAR2_TABLE_100
112     , a5 JTF_VARCHAR2_TABLE_100
113     , a6 JTF_VARCHAR2_TABLE_100
114     , a7 JTF_DATE_TABLE
115     ) as
116     ddindx binary_integer; indx binary_integer;
117   begin
118   if a0 is not null and a0.count > 0 then
119       if a0.count > 0 then
120         indx := a0.first;
121         ddindx := 1;
122         while true loop
123           t(ddindx).khr_id := rosetta_g_miss_num_map(a0(indx));
124           t(ddindx).sty_id := rosetta_g_miss_num_map(a1(indx));
125           t(ddindx).amount := rosetta_g_miss_num_map(a2(indx));
126           t(ddindx).description := a3(indx);
127           t(ddindx).reverse_flag := a4(indx);
128           t(ddindx).tax_deductible_local := a5(indx);
129           t(ddindx).tax_deductible_corporate := a6(indx);
130           t(ddindx).provision_date := rosetta_g_miss_date_in_map(a7(indx));
131           ddindx := ddindx+1;
132           if a0.last =indx
133             then exit;
134           end if;
135           indx := a0.next(indx);
136         end loop;
137       end if;
138    end if;
139   end rosetta_table_copy_in_p4;
140   procedure rosetta_table_copy_out_p4(t okl_loss_prov_pvt.slpv_tbl_type, a0 out nocopy JTF_NUMBER_TABLE
141     , a1 out nocopy JTF_NUMBER_TABLE
142     , a2 out nocopy JTF_NUMBER_TABLE
143     , a3 out nocopy JTF_VARCHAR2_TABLE_2000
144     , a4 out nocopy JTF_VARCHAR2_TABLE_100
145     , a5 out nocopy JTF_VARCHAR2_TABLE_100
146     , a6 out nocopy JTF_VARCHAR2_TABLE_100
147     , a7 out nocopy JTF_DATE_TABLE
148     ) as
149     ddindx binary_integer; indx binary_integer;
150   begin
151   if t is null or t.count = 0 then
152     a0 := JTF_NUMBER_TABLE();
153     a1 := JTF_NUMBER_TABLE();
154     a2 := JTF_NUMBER_TABLE();
155     a3 := JTF_VARCHAR2_TABLE_2000();
156     a4 := JTF_VARCHAR2_TABLE_100();
157     a5 := JTF_VARCHAR2_TABLE_100();
158     a6 := JTF_VARCHAR2_TABLE_100();
159     a7 := JTF_DATE_TABLE();
160   else
161       a0 := JTF_NUMBER_TABLE();
162       a1 := JTF_NUMBER_TABLE();
163       a2 := JTF_NUMBER_TABLE();
164       a3 := JTF_VARCHAR2_TABLE_2000();
165       a4 := JTF_VARCHAR2_TABLE_100();
166       a5 := JTF_VARCHAR2_TABLE_100();
167       a6 := JTF_VARCHAR2_TABLE_100();
168       a7 := JTF_DATE_TABLE();
169       if t.count > 0 then
170         a0.extend(t.count);
171         a1.extend(t.count);
172         a2.extend(t.count);
173         a3.extend(t.count);
174         a4.extend(t.count);
175         a5.extend(t.count);
176         a6.extend(t.count);
177         a7.extend(t.count);
178         ddindx := t.first;
179         indx := 1;
180         while true loop
181           a0(indx) := rosetta_g_miss_num_map(t(ddindx).khr_id);
182           a1(indx) := rosetta_g_miss_num_map(t(ddindx).sty_id);
183           a2(indx) := rosetta_g_miss_num_map(t(ddindx).amount);
184           a3(indx) := t(ddindx).description;
185           a4(indx) := t(ddindx).reverse_flag;
186           a5(indx) := t(ddindx).tax_deductible_local;
187           a6(indx) := t(ddindx).tax_deductible_corporate;
188           a7(indx) := t(ddindx).provision_date;
189           indx := indx+1;
190           if t.last =ddindx
191             then exit;
192           end if;
193           ddindx := t.next(ddindx);
194         end loop;
195       end if;
196    end if;
197   end rosetta_table_copy_out_p4;
198 
199   function submit_general_loss(x_return_status out nocopy  VARCHAR2
200     , x_msg_count out nocopy  NUMBER
201     , x_msg_data out nocopy  VARCHAR2
202     , p_api_version  NUMBER
203     , p_init_msg_list  VARCHAR2
204     , p5_a0  NUMBER := 0-1962.0724
205     , p5_a1  NUMBER := 0-1962.0724
206     , p5_a2  DATE := fnd_api.g_miss_date
207     , p5_a3  VARCHAR2 := fnd_api.g_miss_char
208     , p5_a4  VARCHAR2 := fnd_api.g_miss_char
209     , p5_a5  VARCHAR2 := fnd_api.g_miss_char
210   ) return number
211 
212   as
213     ddp_glpv_rec okl_loss_prov_pvt.glpv_rec_type;
214     ddindx binary_integer; indx binary_integer;
215     ddrosetta_retval number;
216   begin
217 
218     -- copy data to the local IN or IN-OUT args, if any
219 
220 
221 
222 
223 
224     ddp_glpv_rec.product_id := rosetta_g_miss_num_map(p5_a0);
225     ddp_glpv_rec.bucket_id := rosetta_g_miss_num_map(p5_a1);
226     ddp_glpv_rec.entry_date := rosetta_g_miss_date_in_map(p5_a2);
227     ddp_glpv_rec.tax_deductible_local := p5_a3;
228     ddp_glpv_rec.tax_deductible_corporate := p5_a4;
229     ddp_glpv_rec.description := p5_a5;
230 
231     -- here's the delegated call to the old PL/SQL routine
232     ddrosetta_retval := okl_loss_prov_pvt.submit_general_loss(x_return_status,
233       x_msg_count,
234       x_msg_data,
235       p_api_version,
236       p_init_msg_list,
237       ddp_glpv_rec);
238 
239     -- copy data back from the local variables to OUT or IN-OUT args, if any
240 
241 
242 
243 
244 
245 
246     return ddrosetta_retval;
247   end;
248 
249   procedure specific_loss_provision(p_api_version  NUMBER
250     , p_init_msg_list  VARCHAR2
251     , x_msg_count out nocopy  NUMBER
252     , x_msg_data out nocopy  VARCHAR2
253     , x_return_status out nocopy  VARCHAR2
254     , p5_a0  NUMBER := 0-1962.0724
255     , p5_a1  NUMBER := 0-1962.0724
256     , p5_a2  NUMBER := 0-1962.0724
257     , p5_a3  VARCHAR2 := fnd_api.g_miss_char
258     , p5_a4  VARCHAR2 := fnd_api.g_miss_char
259     , p5_a5  VARCHAR2 := fnd_api.g_miss_char
260     , p5_a6  VARCHAR2 := fnd_api.g_miss_char
261     , p5_a7  DATE := fnd_api.g_miss_date
262   )
263 
264   as
265     ddp_slpv_rec okl_loss_prov_pvt.slpv_rec_type;
266     ddindx binary_integer; indx binary_integer;
267   begin
268 
269     -- copy data to the local IN or IN-OUT args, if any
270 
271 
272 
273 
274 
275     ddp_slpv_rec.khr_id := rosetta_g_miss_num_map(p5_a0);
276     ddp_slpv_rec.sty_id := rosetta_g_miss_num_map(p5_a1);
277     ddp_slpv_rec.amount := rosetta_g_miss_num_map(p5_a2);
278     ddp_slpv_rec.description := p5_a3;
279     ddp_slpv_rec.reverse_flag := p5_a4;
280     ddp_slpv_rec.tax_deductible_local := p5_a5;
281     ddp_slpv_rec.tax_deductible_corporate := p5_a6;
282     ddp_slpv_rec.provision_date := rosetta_g_miss_date_in_map(p5_a7);
283 
284     -- here's the delegated call to the old PL/SQL routine
285     okl_loss_prov_pvt.specific_loss_provision(p_api_version,
286       p_init_msg_list,
287       x_msg_count,
288       x_msg_data,
289       x_return_status,
290       ddp_slpv_rec);
291 
292     -- copy data back from the local variables to OUT or IN-OUT args, if any
293 
294 
295 
296 
297 
298   end;
299 
300 end okl_loss_prov_pvt_w;