[Home] [Help]
PACKAGE BODY: APPS.JTF_RS_SKILLS_REPORT_PUB
Source
1 PACKAGE BODY jtf_rs_skills_report_pub AS
2 /* $Header: jtfrsbsb.pls 120.0 2005/05/11 08:19:25 appldev ship $ */
3
4 /*****************************************************************************************
5 ******************************************************************************************/
6
7 /* Package variables. */
8
9 G_PKG_NAME VARCHAR2(30) := 'JTF_RS_SKILLS_REPORT_PUB';
10
11 PROCEDURE show_res_skills (
12 ERRBUF OUT NOCOPY VARCHAR2,
13 RETCODE OUT NOCOPY VARCHAR2,
14 X_REPORT_TYPE IN VARCHAR2,
15 X_RESOURCE_ID IN NUMBER,
16 X_GROUP_ID IN NUMBER
17 ) IS
18
19 cursor c_grp_name (l_group_id jtf_rs_groups_b.group_id%type) is
20 select group_name
21 from jtf_rs_groups_vl
22 where group_id = l_group_id;
23
24 cursor c_grp_mem (l_group_id jtf_rs_groups_b.group_id%type) is
25 select resource_id
26 from jtf_rs_group_members
27 where group_id = l_group_id;
28
29 c_grp_mem_rec c_grp_mem%rowtype;
30
31 l_report_type varchar2(30) := x_report_type;
32 l_resource_id jtf_rs_resource_extns.resource_id%type := x_resource_id;
33 l_group_id jtf_rs_groups_b.group_id%type := x_group_id;
34
35 m_resource_id jtf_rs_resource_extns.resource_id%type;
36 p_resource_id jtf_rs_resource_extns.resource_id%type;
37 l_res_mgr_name jtf_rs_resource_extns_vl.resource_name%type;
38 l_group_name jtf_rs_groups_vl.group_name%type;
39 l_level_id number;
40 p_level number;
41
42 cursor c_res_hier (l_resource_id jtf_rs_resource_extns.resource_id%type) is
43 select resource_id ,level
44 from jtf_rs_resource_extns
45 where level > 1
46 connect by source_mgr_id = prior source_id
47 start with resource_id = l_resource_id;
48
49 c_res_hier_rec c_res_hier%rowtype;
50
51 cursor c_res_mgr_name (l_resource_id jtf_rs_resource_extns.resource_id%type) is
52 select resource_name
53 from jtf_rs_resource_extns_vl
54 where resource_id = l_resource_id;
55
56 BEGIN
57
58 if l_report_type = 'RESOURCE' then
59 open c_res_mgr_name (l_resource_id);
60 fetch c_res_mgr_name into l_res_mgr_name;
61 close c_res_mgr_name;
62
63 fnd_file.new_line(fnd_file.log,1);
64 fnd_file.put_line(fnd_file.log,'Skills Report of HR Hierachy, for a Resource');
65 fnd_file.put_line(fnd_file.log,'--------------------------------------------');
66 fnd_file.new_line(fnd_file.log,1);
67 fnd_file.put_line(fnd_file.log,'Manager : '||l_res_mgr_name);
68 fnd_file.put_line(fnd_file.log,'Group : HR Hierarchy');
69 fnd_file.new_line(fnd_file.log,1);
70
71 open c_res_hier (l_resource_id);
72 fetch c_res_hier into c_res_hier_rec;
73 if c_res_hier%notfound then
74 fnd_file.put_line(fnd_file.log,'This Manager (Resource) does not have any direct reports');
75 fnd_file.new_line(fnd_file.log,1);
76 else
77 fnd_file.put_line(fnd_file.log,'Resource Name '||
78 'Number '||'Skill Type '||
79 'Skill Name '||'Level ');
80 fnd_file.put_line(fnd_file.log,'-------------------------------------------------- '||
81 '--------------- '||'-------------------- '||
82 '-------------------------------------------------- '||'-------------------- ');
83 fnd_file.new_line(fnd_file.log,1);
84 while (c_res_hier%found) loop
85 p_resource_id := c_res_hier_rec.resource_id;
86 p_level := c_res_hier_rec.level;
87 get_res_skills (p_resource_id,p_level);
88 fetch c_res_hier into c_res_hier_rec;
89 end loop;
90 end if;
91 close c_res_hier;
92 elsif l_report_type = 'GROUP' then
93 open c_grp_name(l_group_id);
94 fetch c_grp_name into l_group_name;
95 close c_grp_name;
96
97 fnd_file.new_line(fnd_file.log,1);
98 fnd_file.put_line(fnd_file.log,'Skills Report of all Members, for a Group');
99 fnd_file.put_line(fnd_file.log,'-----------------------------------------');
100 fnd_file.new_line(fnd_file.log,1);
101 fnd_file.put_line(fnd_file.log,'Group Name : '||l_group_name);
102 fnd_file.new_line(fnd_file.log,1);
103
104 open c_grp_mem(l_group_id);
105 fetch c_grp_mem into c_grp_mem_rec;
106 if c_grp_mem%notfound then
107 fnd_file.put_line(fnd_file.log,'This Group does not have any members');
108 fnd_file.new_line(fnd_file.log,1);
109 else
110 fnd_file.put_line(fnd_file.log,'Resource Name '||
111 'Number '||'Skill Type '||
112 'Skill Name '||'Level ');
113 fnd_file.put_line(fnd_file.log,'-------------------------------------------------- '||
114 '--------------- '||'-------------------- '||
115 '-------------------------------------------------- '||'-------------------- ');
116 fnd_file.new_line(fnd_file.log,1);
117 while (c_grp_mem%found) loop
118 m_resource_id := c_grp_mem_rec.resource_id;
119 get_res_skills (m_resource_id,2);
120 fetch c_grp_mem into c_grp_mem_rec;
121 end loop;
122 end if;
123 close c_grp_mem;
124 end if;
125
126 END show_res_skills;
127
128 PROCEDURE get_res_skills (
129 P_RESOURCE_ID IN JTF_RS_RESOURCE_EXTNS.RESOURCE_ID%TYPE
130 ,P_LEVEL IN NUMBER
131 ) IS
132
133 cursor c_res_skills is
134 select fnl.meaning skill_type, rsl.level_name, rsk.category_id, rsk.component_id,
135 rsk.subcategory, rsk.problem_code, rsk.product_id, rsk.platform_id
136 from fnd_lookups fnl, jtf_rs_resource_skills rsk,
137 jtf_rs_skill_levels_vl rsl
138 where lookup_type = 'JTF_RS_SKILL_CAT_TYPE'
139 and rsk.subcategory = lookup_code
140 and rsk.skill_level_id = rsl.skill_level_id
141 and rsk.resource_id = p_resource_id;
142
143 c_res_skills_rec c_res_skills%rowtype;
144
145 cursor c_res_name is
146 select resource_name, resource_number
147 from jtf_rs_resource_extns_vl
148 where resource_id = p_resource_id;
149
150 cursor c_prob_name (l_problem_code jtf_rs_problem_codes_v.problem_name%type) is
151 select problem_name
152 from jtf_rs_problem_codes_v
153 where problem_code = l_problem_code;
154
155 cursor c_plat_name (l_platform_id jtf_rs_products_v.product_name%type) is
156 select platform_name
157 from jtf_rs_platforms_v
158 where platform_id = l_platform_id;
159
160 cursor c_prod_name (l_product_id jtf_rs_products_v.product_name%type) is
161 select product_name
162 from jtf_rs_products_v
163 where product_id = l_product_id;
164
165 cursor c_cat_name (l_category_id jtf_rs_item_categories_v.category_name%type) is
166 select category_name
167 from jtf_rs_item_categories_v
168 where category_id = l_category_id;
169
170 cursor c_comp_name (l_component_id jtf_rs_components_v.component_name%type) is
171 select component_name
172 from jtf_rs_components_v
173 where component_id = l_component_id;
174
175 l_subcategory jtf_rs_resource_skills.subcategory%type;
176 l_problem_code jtf_rs_resource_skills.problem_code%type;
177 l_platform_id jtf_rs_resource_skills.platform_id%type;
178 l_product_id jtf_rs_resource_skills.product_id%type;
179
180 l_component_id jtf_rs_resource_skills.component_id%type := null;
181 l_category_id jtf_rs_resource_skills.category_id%type := null;
182 l_category_name jtf_rs_item_categories_v.category_name%type := null;
183 l_component_name jtf_rs_components_v.component_name%type := null;
184
185 l_skill_type fnd_lookups.meaning%type := null;
186 l_skill_name varchar2(242) := null;
187 l_skill_level jtf_rs_skill_levels_vl.level_name%type := null;
188
189 l_resource_number jtf_rs_resource_extns.resource_number%type;
190 l_resource_name jtf_rs_resource_extns_vl.resource_name%type;
191 l_res_name jtf_rs_resource_extns_vl.resource_name%type;
192
193 l_level number := p_level;
194 l_padder varchar(200):='';
195
196 BEGIN
197
198 if l_level > 2 then
199 for j in 3..l_level loop
200 l_padder := l_padder || '---';
201 end loop;
202 end if;
203
204 open c_res_name;
205 fetch c_res_name into l_res_name, l_resource_number;
206 close c_res_name;
207
208 l_resource_name := l_padder||l_res_name;
209
210 open c_res_skills;
211 fetch c_res_skills into c_res_skills_rec;
212 if c_res_skills%notfound then
213 fnd_file.put_line(fnd_file.log,rpad(l_resource_name,50,' ')||' '||rpad(l_resource_number,15,' ')||' '||
214 rpad(l_skill_type,20,' ') ||' '|| rpad(l_skill_name,50,' ')||' '||
215 rpad(l_skill_level,20,' '));
216 else
217 l_skill_type := '-';
218 l_skill_name := '-';
219 l_skill_level := '-';
220 while (c_res_skills%found) loop
221 l_subcategory := c_res_skills_rec.subcategory;
222 l_problem_code := c_res_skills_rec.problem_code;
223 l_platform_id := c_res_skills_rec.platform_id;
224 l_product_id := c_res_skills_rec.product_id;
225 l_skill_type := c_res_skills_rec.skill_type;
226 l_skill_level := c_res_skills_rec.level_name;
227 l_category_id := c_res_skills_rec.category_id;
228 l_component_id := c_res_skills_rec.component_id;
229
230 if l_subcategory = 'PROBLEM_CODE' then
231 open c_prob_name (l_problem_code);
232 fetch c_prob_name into l_skill_name;
233 close c_prob_name;
234 elsif l_subcategory = 'PLATFORM' then
235 open c_plat_name (l_platform_id);
236 fetch c_plat_name into l_skill_name;
237 close c_plat_name;
238 elsif l_subcategory = 'PRODUCT' then
239 open c_prod_name (l_product_id);
240 fetch c_prod_name into l_skill_name;
241 close c_prod_name;
242 if l_component_id is not null then
243 open c_comp_name(l_component_id);
244 fetch c_comp_name into l_component_name;
245 if c_comp_name%found then
246 if l_component_name is not null then
247 l_skill_name := l_skill_name||' -> '||l_component_name;
248 end if;
249 end if;
250 close c_comp_name;
251 end if;
252 end if;
253
254 if l_category_id is not null then
255 open c_cat_name(l_category_id);
256 fetch c_cat_name into l_category_name;
257 if c_cat_name%found then
258 if l_category_name is not null then
259 l_skill_name := l_category_name||' -> '||l_skill_name;
260 end if;
261 end if;
262 close c_cat_name;
263 end if;
264
265 fnd_file.put_line(fnd_file.log,rpad(l_resource_name,50,' ')||' '||rpad(l_resource_number,15,' ')||' '||
266 rpad(l_skill_type,20,' ') ||' '|| rpad(l_skill_name,50,' ')||' '||
267 rpad(l_skill_level,20,' '));
268 l_skill_type := '-';
269 l_skill_name := '-';
270 l_skill_level := '-';
271 fetch c_res_skills into c_res_skills_rec;
272 end loop;
273 end if;
274 close c_res_skills;
275 l_padder:='';
276 END get_res_skills;
277
278 END jtf_rs_skills_report_pub;