DBA Data[Home] [Help]

PACKAGE BODY: APPS.CN_COMP_GRP_HIER_PUB_W

Source


1 package body cn_comp_grp_hier_pub_w as
2   /* $Header: cnwcghrb.pls 115.3 2002/01/28 20:12:32 pkm 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 
6   function rosetta_g_miss_num_map(n number) return number as
7     a number := fnd_api.g_miss_num;
8     b number := 0-1962.0724;
9   begin
10     if n=a then return b; end if;
11     if n=b then return a; end if;
12     return n;
13   end;
14 
15   -- this is to workaround the JDBC bug regarding IN DATE of value GMiss
16   function rosetta_g_miss_date_in_map(d date) return date as
17   begin
18     if d = rosetta_g_mistake_date then return fnd_api.g_miss_date; end if;
19     return d;
20   end;
21 
22   procedure rosetta_table_copy_in_p1(t out cn_comp_grp_hier_pub.comp_group_tbl, a0 JTF_VARCHAR2_TABLE_100
23     , a1 JTF_VARCHAR2_TABLE_100
24     , a2 JTF_NUMBER_TABLE
25     , a3 JTF_NUMBER_TABLE
26     , a4 JTF_VARCHAR2_TABLE_100
27     , a5 JTF_VARCHAR2_TABLE_100
28     , a6 JTF_NUMBER_TABLE
29     , a7 JTF_DATE_TABLE
30     , a8 JTF_DATE_TABLE
31     , a9 JTF_NUMBER_TABLE
32     , a10 JTF_NUMBER_TABLE
33     , a11 JTF_VARCHAR2_TABLE_100
34     , a12 JTF_VARCHAR2_TABLE_100
35     ) as
36     ddindx binary_integer; indx binary_integer;
37   begin
38   if a0 is not null and a0.count > 0 then
39       if a0.count > 0 then
40         indx := a0.first;
41         ddindx := 1;
42         while true loop
43           t(ddindx).level := a0(indx);
44           t(ddindx).cg_salesrep_name := a1(indx);
45           t(ddindx).cg_salesrep_id := a2(indx);
46           t(ddindx).parent_comp_group_id := a3(indx);
47           t(ddindx).grp_or_name_flag := a4(indx);
48           t(ddindx).role_name := a5(indx);
49           t(ddindx).role_id := a6(indx);
50           t(ddindx).start_date_active := rosetta_g_miss_date_in_map(a7(indx));
51           t(ddindx).end_date_active := rosetta_g_miss_date_in_map(a8(indx));
52           t(ddindx).start_cg_id := a9(indx);
53           t(ddindx).end_cg_id := a10(indx);
54           t(ddindx).image := a11(indx);
55           t(ddindx).expand := a12(indx);
56           ddindx := ddindx+1;
57           if a0.last =indx
58             then exit;
59           end if;
60           indx := a0.next(indx);
61         end loop;
62       end if;
63    end if;
64   end rosetta_table_copy_in_p1;
65   procedure rosetta_table_copy_out_p1(t cn_comp_grp_hier_pub.comp_group_tbl, a0 out JTF_VARCHAR2_TABLE_100
66     , a1 out JTF_VARCHAR2_TABLE_100
67     , a2 out JTF_NUMBER_TABLE
68     , a3 out JTF_NUMBER_TABLE
69     , a4 out JTF_VARCHAR2_TABLE_100
70     , a5 out JTF_VARCHAR2_TABLE_100
71     , a6 out JTF_NUMBER_TABLE
72     , a7 out JTF_DATE_TABLE
73     , a8 out JTF_DATE_TABLE
74     , a9 out JTF_NUMBER_TABLE
75     , a10 out JTF_NUMBER_TABLE
76     , a11 out JTF_VARCHAR2_TABLE_100
77     , a12 out JTF_VARCHAR2_TABLE_100
78     ) as
79     ddindx binary_integer; indx binary_integer;
80   begin
81   if t is null or t.count = 0 then
82     a0 := JTF_VARCHAR2_TABLE_100();
83     a1 := JTF_VARCHAR2_TABLE_100();
84     a2 := JTF_NUMBER_TABLE();
85     a3 := JTF_NUMBER_TABLE();
86     a4 := JTF_VARCHAR2_TABLE_100();
87     a5 := JTF_VARCHAR2_TABLE_100();
88     a6 := JTF_NUMBER_TABLE();
89     a7 := JTF_DATE_TABLE();
90     a8 := JTF_DATE_TABLE();
91     a9 := JTF_NUMBER_TABLE();
92     a10 := JTF_NUMBER_TABLE();
93     a11 := JTF_VARCHAR2_TABLE_100();
94     a12 := JTF_VARCHAR2_TABLE_100();
95   else
96       a0 := JTF_VARCHAR2_TABLE_100();
97       a1 := JTF_VARCHAR2_TABLE_100();
98       a2 := JTF_NUMBER_TABLE();
99       a3 := JTF_NUMBER_TABLE();
100       a4 := JTF_VARCHAR2_TABLE_100();
101       a5 := JTF_VARCHAR2_TABLE_100();
102       a6 := JTF_NUMBER_TABLE();
103       a7 := JTF_DATE_TABLE();
104       a8 := JTF_DATE_TABLE();
105       a9 := JTF_NUMBER_TABLE();
106       a10 := JTF_NUMBER_TABLE();
107       a11 := JTF_VARCHAR2_TABLE_100();
108       a12 := JTF_VARCHAR2_TABLE_100();
109       if t.count > 0 then
110         a0.extend(t.count);
111         a1.extend(t.count);
112         a2.extend(t.count);
113         a3.extend(t.count);
114         a4.extend(t.count);
115         a5.extend(t.count);
116         a6.extend(t.count);
117         a7.extend(t.count);
118         a8.extend(t.count);
119         a9.extend(t.count);
120         a10.extend(t.count);
121         a11.extend(t.count);
122         a12.extend(t.count);
123         ddindx := t.first;
124         indx := 1;
125         while true loop
126           a0(indx) := t(ddindx).level;
127           a1(indx) := t(ddindx).cg_salesrep_name;
128           a2(indx) := t(ddindx).cg_salesrep_id;
129           a3(indx) := t(ddindx).parent_comp_group_id;
130           a4(indx) := t(ddindx).grp_or_name_flag;
131           a5(indx) := t(ddindx).role_name;
132           a6(indx) := t(ddindx).role_id;
133           a7(indx) := t(ddindx).start_date_active;
134           a8(indx) := t(ddindx).end_date_active;
135           a9(indx) := t(ddindx).start_cg_id;
136           a10(indx) := t(ddindx).end_cg_id;
137           a11(indx) := t(ddindx).image;
138           a12(indx) := t(ddindx).expand;
139           indx := indx+1;
140           if t.last =ddindx
141             then exit;
142           end if;
143           ddindx := t.next(ddindx);
144         end loop;
145       end if;
146    end if;
147   end rosetta_table_copy_out_p1;
148 
149   procedure get_comp_group_hier(p_api_version  NUMBER
150     , p_init_msg_list  VARCHAR2
151     , p_validation_level  VARCHAR2
152     , p_salesrep_id  NUMBER
153     , p_comp_group_id  NUMBER
154     , p_focus_cg_id  NUMBER
155     , p_expand  CHAR
156     , p_date  date
157     , p8_a0 out JTF_VARCHAR2_TABLE_100
158     , p8_a1 out JTF_VARCHAR2_TABLE_100
159     , p8_a2 out JTF_NUMBER_TABLE
160     , p8_a3 out JTF_NUMBER_TABLE
161     , p8_a4 out JTF_VARCHAR2_TABLE_100
162     , p8_a5 out JTF_VARCHAR2_TABLE_100
163     , p8_a6 out JTF_NUMBER_TABLE
164     , p8_a7 out JTF_DATE_TABLE
165     , p8_a8 out JTF_DATE_TABLE
166     , p8_a9 out JTF_NUMBER_TABLE
167     , p8_a10 out JTF_NUMBER_TABLE
168     , p8_a11 out JTF_VARCHAR2_TABLE_100
169     , p8_a12 out JTF_VARCHAR2_TABLE_100
170     , l_mgr_count out  NUMBER
171     , x_period_year out  VARCHAR2
172     , x_return_status out  VARCHAR2
173     , x_msg_count out  NUMBER
174     , x_msg_data out  VARCHAR2
175     , x_loading_status out  VARCHAR2
176   )
177   as
178     ddp_date date;
179     ddx_mgr_tbl cn_comp_grp_hier_pub.comp_group_tbl;
180     ddindx binary_integer; indx binary_integer;
181   begin
182 
183     -- copy data to the local IN or IN-OUT args, if any
184 
185 
186 
187 
188 
189 
190 
191     ddp_date := rosetta_g_miss_date_in_map(p_date);
192 
193 
194 
195 
196 
197 
198 
199 
200     -- here's the delegated call to the old PL/SQL routine
201     cn_comp_grp_hier_pub.get_comp_group_hier(p_api_version,
202       p_init_msg_list,
203       p_validation_level,
204       p_salesrep_id,
205       p_comp_group_id,
206       p_focus_cg_id,
207       p_expand,
208       ddp_date,
209       ddx_mgr_tbl,
210       l_mgr_count,
211       x_period_year,
212       x_return_status,
213       x_msg_count,
214       x_msg_data,
215       x_loading_status);
216 
217     -- copy data back from the local OUT or IN-OUT args, if any
218 
219 
220 
221 
222 
223 
224 
225 
226     cn_comp_grp_hier_pub_w.rosetta_table_copy_out_p1(ddx_mgr_tbl, p8_a0
227       , p8_a1
228       , p8_a2
229       , p8_a3
230       , p8_a4
231       , p8_a5
232       , p8_a6
233       , p8_a7
234       , p8_a8
235       , p8_a9
236       , p8_a10
237       , p8_a11
238       , p8_a12
239       );
240 
241 
242 
243 
244 
245 
246   end;
247 
248 end cn_comp_grp_hier_pub_w;