DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_PERRPRAS_XMLP_PKG

Source


1 PACKAGE BODY PER_PERRPRAS_XMLP_PKG AS
2 /* $Header: PERRPRASB.pls 120.1 2007/12/06 11:30:58 amakrish noship $ */
3 function BeforeReport return boolean is
4 begin
5 P_SESSION_DATE1:=TO_CHAR(P_SESSION_DATE,'DD-MON-YYYY');
6 declare
7 
8   CURSOR csr_org_structure_version
9     (p_org_structure_version_id IN NUMBER)
10   IS
11     SELECT business_group_id
12       FROM per_org_structure_versions
13      WHERE org_structure_version_id = p_org_structure_version_id;
14 
15         l_business_group_id NUMBER;
16         l_legislation_code VARCHAR2(2);
17         l_primary_flag_desc VARCHAR2(10);
18         l_organization_stucture_desc VARCHAR2(80);
19         l_org_version_desc NUMBER;
20         l_version_start_date DATE;
21         l_version_end_date DATE;
22         l_organization_desc VARCHAR2(240);
23         l_organization_type VARCHAR2(30);
24 begin
25 
26 
27   --hr_standard.event('BEFORE REPORT');
28 
29 
30   l_business_group_id := p_business_group_id;
31   IF (p_org_structure_version_id IS NOT NULL) THEN
32     OPEN csr_org_structure_version(p_org_structure_version_id);
33     FETCH csr_org_structure_version INTO l_business_group_id;
34     CLOSE csr_org_structure_version;
35   END IF;
36     IF (l_business_group_id IS NOT NULL) THEN
37     c_business_group_name := hr_reports.get_business_group(l_business_group_id);
38   ELSE
39     c_business_group_name := c_global_hierarchy;
40   END IF;
41 
42 
43  select legislation_code
44  into l_legislation_code
45  from per_business_groups
46  where business_group_id = p_business_group_id;
47  p_legislation_code := l_legislation_code;
48 if p_org_structure_version_id is not null then
49  hr_reports.get_organization_hierarchy
50   (null
51   ,p_org_structure_version_id
52   ,l_organization_stucture_desc
53   ,l_org_version_desc
54   ,l_version_start_date
55   ,l_version_end_date);
56 
57   c_org_structure_desc := l_organization_stucture_desc;
58   c_org_structure_version_desc := l_org_version_desc;
59   c_version_from_desc := l_version_start_date;
60   c_version_to_desc := l_version_end_date;
61 end if;
62 
63  if p_org_structure_version_id is null then
64     c_session_date := p_session_date ;
65  elsif
66     p_session_date between c_version_from_desc and
67                    nvl(c_version_to_desc,
68                           to_date('31/12/4712','DD/MM/YYYY')) then
69     c_session_date := p_session_date;
70  else
71     c_session_date := c_version_from_desc;
72  end if;
73 if p_parent_organization_id is not null then
74  hr_reports.get_organization
75   (p_parent_organization_id
76   ,l_organization_desc
77   ,l_organization_type);
78 
79  c_organization_desc := l_organization_desc;
80 end if;
81 
82 if p_job_id is not null then
83  c_job_desc :=
84    hr_reports.get_job(p_job_id);
85     p_job_matching :=
86        'and a.job_id = ' || to_char(p_job_id);
87 end if;
88 if p_position_id is not null then
89  c_position_desc :=
90    hr_reports.get_position(p_position_id);
91     p_position_matching :=
92      'and a.position_id = '|| to_char(p_position_id);
93 end if;
94 if p_grade_id is not null then
95  c_grade_desc :=
96     hr_reports.get_grade(p_grade_id);
97     p_grade_matching :=
98     'and a.grade_id = ' || to_char(p_grade_id);
99 end if;
100 if p_payroll_id is not null then
101  c_payroll_desc :=
102    hr_reports.get_payroll_name(p_session_date,p_payroll_id);
103     p_payroll_matching :=
104     'and a.payroll_id+0 = '|| to_char(p_payroll_id);
105 end if;
106  if p_asg_status_type_id1 is not null then
107     c_asg_status_desc1 :=
108       hr_reports.get_status(p_business_group_id
109                            ,p_asg_status_type_id1
110                            ,p_legislation_code);
111         p_status_matching_1 :=
112      p_status_matching || ',' || to_char(p_asg_status_type_id1) ;
113         c_status_list :=
114      c_status_list || ',' || c_asg_status_desc1;
115 end if;
116  if p_asg_status_type_id2 is not null then
117     c_asg_status_desc2 :=
118       hr_reports.get_status(p_business_group_id
119                            ,p_asg_status_type_id2
120                            ,p_legislation_code);
121         p_status_matching_1 :=
122      p_status_matching || ',' || to_char(p_asg_status_type_id2);
123         c_status_list :=
124      c_status_list || ',' || c_asg_status_desc2;
125  end if;
126  if p_asg_status_type_id3 is not null then
127     c_asg_status_desc3 :=
128       hr_reports.get_status(p_business_group_id
129                            ,p_asg_status_type_id3
130                            ,p_legislation_code);
131         p_status_matching_1 :=
132      p_status_matching || ',' || to_char(p_asg_status_type_id3);
133         c_status_list :=
134      c_status_list || ',' || c_asg_status_desc3;
135  end if;
136  if p_asg_status_type_id4 is not null then
137     c_asg_status_desc4 :=
138       hr_reports.get_status(p_business_group_id
139                            ,p_asg_status_type_id4
140                            ,p_legislation_code);
141         p_status_matching_1 :=
142      p_status_matching || ',' || to_char(p_asg_status_type_id4);
143         c_status_list :=
144      c_status_list || ',' || c_asg_status_desc4;
145  end if;
146  if p_status_matching is not null then
147     p_status_matching_1 :=
148        'and a.assignment_status_type_id in (' ||
149              substr(p_status_matching,2,
150                             NVL(length(p_status_matching), 0) - 1) || ')';
151  end if;
152  if c_status_list is not null then
153     c_status_list :=
154        substr(c_status_list,2,NVL(length(c_status_list), 0) - 1);
155  end if;
156  if p_primary_flag is not null then
157     c_primary_flag_desc :=
158       hr_reports.get_lookup_meaning('YES_NO',p_primary_flag);
159  end if;
160 
161   if p_person_type is not null then
162      c_person_type_desc :=
163         hr_reports.get_lookup_meaning('EMP_OR_APL',p_person_type);
164   end if;
165 
166  if p_people_group_id is not null then
167  HR_REPORTS.gen_partial_matching_lexical
168                          (p_people_group_id,
169                           p_people_group_flex_id,
170                           p_matching_criteria,'GRP');
171  end if;
172 
173  if P_ORG_STRUCTURE_VERSION_ID is not null
174      and P_PARENT_ORGANIZATION_ID is not null
175       then
176      P_ORG_MATCHING :=
177       'and a.organization_id in '||
178       '(select organization_id_child '||
179       'from per_org_structure_elements '||
180       'connect by organization_id_parent = '||
181       'prior organization_id_child '||
182       'and org_structure_version_id = prior org_structure_version_id '||
183       'start with organization_id_parent = '||
184          to_char(P_PARENT_ORGANIZATION_ID) ||
185       ' and org_structure_version_id = '||
186        to_char(P_ORG_STRUCTURE_VERSION_ID) ||
187       ' union select ' ||
188        to_char(P_PARENT_ORGANIZATION_ID) ||
189       ' from sys.dual)';
190   elsif
191     P_PARENT_ORGANIZATION_ID is not null then
192        P_ORG_MATCHING :=
193         'and a.organization_id = ' ||
194                to_char(P_PARENT_ORGANIZATION_ID);
195 
196 
197   else
198     P_ORG_MATCHING :=
199       'and a.business_group_id = ' ||
200         to_char(P_BUSINESS_GROUP_ID);
201 
202 
203   end if;
204   P_STATUS_MATCHING_1 := 'AND 1=1 ';
205 
206 end;
207   return (TRUE);
208 end;
209 
210 function c_status_start_dateformula(p_assignment_id in number, p_assignment_status_type_id in number) return date is
211 begin
212 
213 declare l_status_start_date DATE;
214 begin
215   begin
216     select max(effective_end_date) + 1
217     into l_status_start_date
218     from per_assignments_f
219     where assignment_id = p_assignment_id
220     and   assignment_status_type_id <> p_assignment_status_type_id
221     and   effective_end_date < C_SESSION_DATE;
222     exception
223      when no_data_found then null;
224   end;
225   if l_status_start_date is null then
226     begin
227     select min(effective_start_date)
228     into l_status_start_date
229     from per_assignments_f
230     where assignment_id = p_assignment_id
231     and assignment_status_type_id = p_assignment_status_type_id
232     and effective_start_date <= C_SESSION_DATE;
233     exception
234     when no_data_found then null;
235   end;
236     end if;
237 return l_status_start_date;
238 end;
239 RETURN NULL; end;
240 
241 function c_status_end_dateformula(p_assignment_id in number, p_assignment_status_type_id in number) return date is
242 begin
243 
244 declare l_status_end_date DATE;
245 begin
246   begin
247     select min(effective_start_date) - 1
248     into l_status_end_date
249     from per_assignments_f
250     where assignment_id = p_assignment_id
251     and   assignment_status_type_id <> p_assignment_status_type_id
252     and   effective_start_date > C_SESSION_DATE;
253     exception
254      when no_data_found then null;
255   end;
256   if l_status_end_date is null then
257     begin
258     select max(effective_end_date)
259     into l_status_end_date
260     from per_assignments_f
261     where assignment_id = p_assignment_id
262     and assignment_status_type_id = p_assignment_status_type_id
263     and effective_end_date >= C_SESSION_DATE;
264     exception
265     when no_data_found then null;
266   end;
267     end if;
268   if l_status_end_date = to_date('31/12/4712','DD/MM/YYYY')
269         then l_status_end_date := '';
270   end if;
271   return l_status_end_date;
272 end;
273 RETURN NULL; end;
274 
275 function AfterReport return boolean is
276 begin
277 
278 --hr_standard.event('AFTER REPORT');
279 
280   return (TRUE);
281 end;
282 
283 --Functions to refer Oracle report placeholders--
284 
285  Function C_BUSINESS_GROUP_NAME_p return varchar2 is
286 	Begin
287 	 return C_BUSINESS_GROUP_NAME;
288 	 END;
289  Function C_REPORT_SUBTITLE_p return varchar2 is
290 	Begin
291 	 return C_REPORT_SUBTITLE;
292 	 END;
293  Function C_PERSON_TYPE_DESC_p return varchar2 is
294 	Begin
295 	 return C_PERSON_TYPE_DESC;
296 	 END;
297  Function C_JOB_DESC_p return varchar2 is
298 	Begin
299 	 return C_JOB_DESC;
300 	 END;
301  Function C_POSITION_DESC_p return varchar2 is
302 	Begin
303 	 return C_POSITION_DESC;
304 	 END;
305  Function C_GRADE_DESC_p return varchar2 is
306 	Begin
307 	 return C_GRADE_DESC;
308 	 END;
309  Function C_PAYROLL_DESC_p return varchar2 is
310 	Begin
311 	 return C_PAYROLL_DESC;
312 	 END;
313  Function C_PRIMARY_FLAG_DESC_p return varchar2 is
314 	Begin
315 	 return C_PRIMARY_FLAG_DESC;
316 	 END;
317  Function C_ASG_STATUS_DESC1_p return varchar2 is
318 	Begin
319 	 return C_ASG_STATUS_DESC1;
320 	 END;
321  Function C_ASG_STATUS_DESC2_p return varchar2 is
322 	Begin
323 	 return C_ASG_STATUS_DESC2;
324 	 END;
325  Function C_ASG_STATUS_DESC3_p return varchar2 is
326 	Begin
327 	 return C_ASG_STATUS_DESC3;
328 	 END;
329  Function C_ASG_STATUS_DESC4_p return varchar2 is
330 	Begin
331 	 return C_ASG_STATUS_DESC4;
332 	 END;
333  Function C_ORG_STRUCTURE_DESC_p return varchar2 is
334 	Begin
335 	 return C_ORG_STRUCTURE_DESC;
336 	 END;
337  Function C_ORG_STRUCTURE_VERSION_DESC_p return number is
338 	Begin
339 	 return C_ORG_STRUCTURE_VERSION_DESC;
340 	 END;
341  Function C_VERSION_FROM_DESC_p return date is
342 	Begin
343 	 return C_VERSION_FROM_DESC;
344 	 END;
345  Function C_VERSION_TO_DESC_p return date is
346 	Begin
347 	 return C_VERSION_TO_DESC;
348 	 END;
349  Function C_ORGANIZATION_DESC_p return varchar2 is
350 	Begin
351 	 return C_ORGANIZATION_DESC;
352 	 END;
353  Function C_STATUS_LIST_p return varchar2 is
354 	Begin
355 	 return C_STATUS_LIST;
356 	 END;
357  Function C_SESSION_DATE_p return date is
358 	Begin
359 	 return C_SESSION_DATE;
360 	 END;
361  Function C_GLOBAL_HIERARCHY_p return varchar2 is
362 	Begin
363 	 return C_GLOBAL_HIERARCHY;
364 	 END;
365 END PER_PERRPRAS_XMLP_PKG ;