DBA Data[Home] [Help]

PACKAGE BODY: APPS.PQH_PQIPED6_XMLP_PKG

Source


1 PACKAGE BODY PQH_PQIPED6_XMLP_PKG AS
2 /* $Header: PQIPED6B.pls 120.4 2008/04/17 06:29:40 amakrish noship $ */
3 
4 function line1Formula return Number is
5 temp_num number := 19;
6 
7 begin
8 
9    if line_num < 50 then
10      temp_num := line_num;
11      line_num:= line_num + 1;
12    elsif tmp_var between 49 and 54 then
13      temp_num := tmp_var;
14      tmp_var := tmp_var + 1;
15    elsif tmp_var1 between 54 and 61 then
16      temp_num := tmp_var1;
17      tmp_var1 := tmp_var1 + 1;
18    else
19      temp_num := tmp_var2;
20      tmp_var2 := tmp_var2 + 1;
21    end if;
22 
23   if line_num = 26 then
24      line_num := 27;
25   elsif line_num = 34 then
26      line_num := 35;
27   elsif line_num = 42 then
28      line_num := 43;
29 
30   end if;
31 
32 
33 
34   return temp_num;
35 end;
36 
37 function CF_GroupTotTitleFormula(JobCode in number) return Char is
38  l_total_title	VARCHAR2(200)	:= '';
39  l_job_code	Number	:= JobCode;
40 begin
41   IF 	l_job_code =  '5' THEN
42 	l_total_title	:= 'Total Exec/Administrative, and Managerial (sum of lines 19-25)';
43   ELSIF l_job_code 	= '6' THEN
44 	l_total_title	:= 'Total Other Administrative (sum of lines 27-33)';
45   ELSIF l_job_code 	= '7' THEN
46 	l_total_title	:= 'Total Other Professionals (sum of lines 35-41)';
47   ELSIF l_job_code 	= '8' THEN
48 	l_total_title	:= 'Total Technical and Paraprofessionals (sum of lines 43-47)';
49   ELSIF l_job_code 	= '9' THEN
50 	l_total_title	:= 'Total Clerical and Secretarial (sum of lines 49-53)';
51   ELSIF l_job_code 	= '10' THEN
52 	l_total_title	:= 'Total Skilled Crafts (sum of lines 55-59)';
53   ELSIF l_job_code 	= '11' THEN
54 	l_total_title	:= 'Total Service/Maintenance (sum of lines 61-65)';
55   END IF;
56 
57   return l_total_title;
58 end;
59 
60 function cf_group_linenoformula(JobCode in number) return number is
61 temp_num number;
62 begin
63    if (JobCode = 5) then
64          temp_num := 26;
65    elsif (JobCode = 6) then
66          temp_num := 34;
67    elsif (JobCode = 7) then
68          temp_num := 42;
69    elsif (JobCode = 8) then
70          temp_num := 48;
71    elsif (JobCode = 9) then
72          temp_num := 54;
73    elsif (JobCode = 10) then
74          temp_num := 60;
75    elsif (JobCode = 11) then
76          temp_num := 66;
77    end if;
78 
79   return temp_num;
80 
81 end;
82 
83 function BeforeReport return boolean is
84 l_fr	varchar2(2000);
85 l_ft	varchar2(2000);
86 l_pr	varchar2(2000);
87 l_pt	varchar2(2000);
88 l_query_text VARCHAR2(2000);
89                                   line VARCHAR2(32767);
90                                   sc VARCHAR2(32767);
91                                   salary_range VARCHAR2(32767);
92                                   l_nr_men NUMBER(10) := 0;
93                                   l_nr_wmen NUMBER(10) := 0;
94                                   l_bnh_men NUMBER(10) := 0;
95                                   l_bnh_wmen NUMBER(10) := 0;
96                                   l_amai_men NUMBER(10) := 0;
97                                   l_amai_wmen NUMBER(10) := 0;
98                                   l_ap_men NUMBER(10) := 0;
99                                   l_ap_wmen NUMBER(10) := 0;
100                                   l_h_men NUMBER(10) := 0;
101                                   l_h_wmen NUMBER(10) := 0;
102                                   l_wnh_men NUMBER(10) := 0;
103                                   l_wnh_wmen NUMBER(10) := 0;
104                                   l_ur_men NUMBER(10) := 0;
105                                   l_ur_wmen NUMBER(10) := 0;
106                                   l_tot_men NUMBER(10) := 0;
107                                   l_tot_wmen NUMBER(10) := 0;
108                                   CURSOR get_line_counts IS
109                                   SELECT 1 line,
110                                     hl.lookup_code job_category_name,
111 pqh_salary_class_intervals_pkg.get_job_sal_interval(pqh_employment_category.identify_empl_category(ass.employment_category,
112 cp_fr,   cp_ft,   cp_pr,   cp_pt),   hl.lookup_code,   nvl(ppp.proposed_salary_n,   0) * ppb.pay_annualization_factor) salary_range,
113 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   '1',   decode(peo.sex,   'M',   1,   NULL),   NULL)) nrmen,
114 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   '1',   decode(peo.sex,   'F',   1,   NULL),   NULL)) nrwmen,
115 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '2',   decode(peo.sex,   'M',   1,   NULL),   NULL)))) bnhmen,
116 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '2',   decode(peo.sex,   'F',   1,   NULL),   NULL)))) bnhwmen,
117 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '6',   decode(peo.sex,   'M',   1,   NULL),   NULL)))) am_almen,
118 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '6',   decode(peo.sex,   'F',   1,   NULL),   NULL)))) am_alwmen,
119 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '4',   decode(peo.sex,   'M',   1,   NULL),   '5',   decode(peo.sex,   'M',   1,   NULL),   NULL)))) a_pmen,
120 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '4',   decode(peo.sex,   'F',   1,   NULL),   '5',   decode(peo.sex,   'F',   1,   NULL),   NULL)))) a_pwmen,
121 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '3',   decode(peo.sex,   'M',   1,   NULL),   '9',   decode(peo.sex,   'M',   1,   NULL),   NULL)))) hmen,
122 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '3',   decode(peo.sex,   'F',   1,   NULL),   '9',   decode(peo.sex,   'F',   1,   NULL),   NULL)))) hwmen,
123 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '1',   decode(peo.sex,   'M',   1,   NULL),   NULL)))) wnhmen,
124 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   '1',   decode(peo.sex,   'F',   1,   NULL),   NULL)))) wnhwmen,
125 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   NULL,   decode(peo.sex,   'M',   1,   NULL),   NULL)),   NULL)) urmen,
126 COUNT(decode(pqh_nr_alien_pkg.get_count_nr_alien(peo.person_id,   p_report_date),   NULL,  (decode(peo.per_information1,   NULL,   decode(peo.sex,   'F',   1,   NULL),   NULL)),   NULL)) urwmen
127 FROM per_all_people_f peo,
128   per_all_assignments_f ass,
129   per_assignment_status_types ast,
130   per_jobs job,
131   per_pay_proposals ppp,
132   per_pay_bases ppb,
133   hr_lookups hl
134 WHERE peo.person_id = ass.person_id
135  AND peo.current_employee_flag = 'Y'
136  AND hl.lookup_code = job.job_information8
137  AND job.job_information8 NOT IN('1',   '2',   '3',   '4')
138  AND pqh_employment_category.identify_empl_category(ass.employment_category,   cp_fr,   cp_ft,   cp_pr,   cp_pt) IN('FR')
139  AND ppp.change_date =
140   (SELECT MAX(change_date)
141    FROM per_pay_proposals PRO
142   WHERE ppp.assignment_id = PRO.ASSIGNMENT_ID
143   AND PRO.CHANGE_DATE <= P_REPORT_DATE
144   AND PRO.APPROVED = 'Y' )
145   AND ass.pay_basis_id = ppb.pay_basis_id
146    AND ass.assignment_id = ppp.assignment_id
147    AND nvl(ppp.proposed_salary_n,    0) * ppb.pay_annualization_factor > 0
148    AND hl.lookup_type = 'US_IPEDS_JOB_CATEGORIES'
149    AND job.job_information_category = 'US'
150    AND p_report_date BETWEEN peo.effective_start_date
151    AND peo.effective_end_date
152    AND p_report_date BETWEEN ass.effective_start_date
153    AND ass.effective_end_date
154    AND ass.primary_flag = 'Y'
155    AND ass.assignment_status_type_id = ast.assignment_status_type_id
156    AND ast.per_system_status <> 'TERM_ASSIGN'
157    AND ass.job_id = job.job_id
158    AND ass.assignment_type = 'E'
159    AND ass.organization_id IN
160     (SELECT org.organization_id
161      FROM hr_all_organization_units org
162      WHERE business_group_id = p_business_group_id
163      AND pqh_inst_type_pkg.get_inst_type(org.organization_id) = 'NON-MED')
164   GROUP BY
165   pqh_salary_class_intervals_pkg.get_job_sal_interval(pqh_employment_category.identify_empl_category(ass.employment_category,
166   cp_fr,    cp_ft,    cp_pr,    cp_pt),    hl.lookup_code,    nvl(ppp.proposed_salary_n,    0) * ppb.pay_annualization_factor),
167      hl.lookup_code;
168 CURSOR get_line_tmraces_counts(c_salary_range IN VARCHAR2,    c_lookup_code IN NUMBER) IS
169 SELECT COUNT(decode(pei.pei_information5,    '2',    decode(peo.sex,    'M',    1,    NULL),    NULL)) bnhmen,
170 COUNT(decode(pei.pei_information5,    '2',    decode(peo.sex,    'F',    1,    NULL),    NULL)) bnhwmen,
171 COUNT(decode(pei.pei_information5,    '6',    decode(peo.sex,    'M',    1,    NULL),    NULL)) am_almen,
172 COUNT(decode(pei.pei_information5,    '6',    decode(peo.sex,    'F',    1,    NULL),    NULL)) am_alwmen,
173 COUNT(decode(pei.pei_information5,    '4',    decode(peo.sex,    'M',    1,    NULL),    '5',    decode(peo.sex,    'M',    1,    NULL),    NULL)) a_pmen,
174 COUNT(decode(pei.pei_information5,    '4',    decode(peo.sex,    'F',    1,    NULL),    '5',    decode(peo.sex,    'F',    1,    NULL),    NULL)) a_pwmen,
175 COUNT(decode(pei.pei_information5,    '3',    decode(peo.sex,    'M',    1,    NULL),    '9',    decode(peo.sex,    'M',    1,    NULL),    NULL)) hmen,
176 COUNT(decode(pei.pei_information5,    '3',    decode(peo.sex,    'F',    1,    NULL),    '9',    decode(peo.sex,    'F',    1,    NULL),    NULL)) hwmen,
177 COUNT(decode(pei.pei_information5,    '1',    decode(peo.sex,    'M',    1,    NULL),    NULL)) wnhmen,
178 COUNT(decode(pei.pei_information5,    '1',    decode(peo.sex,    'F',    1,    NULL),    NULL)) wnhwmen,
179 COUNT(decode(pei.pei_information5,    NULL,    decode(peo.sex,    'M',    1,    NULL),    NULL)) urmen,
180 COUNT(decode(pei.pei_information5,    NULL,    decode(peo.sex,    'F',    1,    NULL),    NULL)) urwmen
181   FROM per_all_people_f peo,
182     per_all_assignments_f ass,
183     per_assignment_status_types ast,
184     per_jobs job,
185     per_pay_proposals ppp,
186     per_pay_bases ppb,
187     hr_lookups hl,
188     per_people_extra_info pei
189   WHERE peo.person_id = ass.person_id
190   AND peo.current_employee_flag = 'Y'
191   AND peo.per_information1 = '13'
192   AND peo.person_id = pei.person_id(+)
193   AND(pei.information_type = 'PER_US_ADDL_ETHNIC_CAT' OR(pei.information_type <> 'PER_US_ADDL_ETHNIC_CAT'
194   AND NOT EXISTS
195    (SELECT 1
196     FROM per_people_extra_info pei2
197     WHERE pei2.information_type = 'PER_US_ADDL_ETHNIC_CAT'
198     AND pei2.person_id = pei.person_id)
199     AND pei.person_extra_info_id =
200      (SELECT MAX(pei1.person_extra_info_id)
201       FROM per_people_extra_info pei1
202       WHERE pei1.person_id = pei.person_id))
203    OR(NOT EXISTS
204      (SELECT person_extra_info_id
205       FROM per_people_extra_info pei3
206       WHERE pei3.person_id = pei.person_id))
207    )
208  AND hl.lookup_code = job.job_information8
209   AND job.job_information8 NOT IN('1',    '2',    '3',    '4')
210   AND pqh_employment_category.identify_empl_category(ass.employment_category,    cp_fr,    cp_ft,    cp_pr,    cp_pt) IN('FR')
211   AND ppp.change_date =
212    (SELECT MAX(change_date)
213     FROM per_pay_proposals PRO
214    WHERE ppp.assignment_id = PRO.ASSIGNMENT_ID
215    AND PRO.CHANGE_DATE <= P_REPORT_DATE
216    AND PRO.APPROVED = 'Y' )
217    AND ass.pay_basis_id = ppb.pay_basis_id
218     AND ass.assignment_id = ppp.assignment_id
219     AND nvl(ppp.proposed_salary_n,    0) * ppb.pay_annualization_factor > 0
220     AND hl.lookup_type = 'US_IPEDS_JOB_CATEGORIES'
221     AND job.job_information_category = 'US'
222     AND p_report_date BETWEEN peo.effective_start_date
223     AND peo.effective_end_date
224     AND p_report_date BETWEEN ass.effective_start_date
225     AND ass.effective_end_date
226     AND ass.primary_flag = 'Y'
227     AND ass.assignment_status_type_id = ast.assignment_status_type_id
228     AND ast.per_system_status <> 'TERM_ASSIGN'
229     AND ass.job_id = job.job_id
230     AND ass.assignment_type = 'E'
231     AND ass.organization_id IN
232      (SELECT org.organization_id
233      FROM hr_all_organization_units org
234      WHERE business_group_id = p_business_group_id
235      AND pqh_inst_type_pkg.get_inst_type(org.organization_id) = 'NON-MED')
236   AND pqh_salary_class_intervals_pkg.get_job_sal_interval(pqh_employment_category.identify_empl_category(ass.employment_category,    cp_fr,    cp_ft,    cp_pr,    cp_pt),    hl.lookup_code,
237 	 nvl(ppp.proposed_salary_n,    0) * ppb.pay_annualization_factor) = c_salary_range
238    AND hl.lookup_code = c_lookup_code;
239 
240 begin
241    --hr_standard.event('BEFORE REPORT');
242    LP_REPORT_DATE := to_Char(P_REPORT_DATE,'DD-MON-YYYY');
243 
244    pqh_employment_category.fetch_empl_categories(p_business_group_id,l_fr,l_ft,l_pr,l_pt);
245 
246    	cp_fr  := l_fr;
247 	cp_ft	:= l_ft;
248 	cp_pr	:= l_pr;
249 	cp_pt	:= l_pt;
250 FOR i IN get_line_counts
251  LOOP
252    line := i.line;
253    sc := i.job_category_name;
254    salary_range := i.salary_range;
255    l_nr_men := i.nrmen;
256    l_nr_wmen := i.nrwmen;
257    l_bnh_men := i.bnhmen;
258    l_bnh_wmen := i.bnhwmen;
259    l_amai_men := i.am_almen;
260    l_amai_wmen := i.am_alwmen;
261    l_ap_men := i.a_pmen;
262    l_ap_wmen := i.a_pwmen;
263    l_h_men := i.hmen;
264    l_h_wmen := i.hwmen;
265    l_wnh_men := i.wnhmen;
266    l_wnh_wmen := i.wnhwmen;
267    l_ur_men := i.urmen;
268    l_ur_wmen := i.urwmen;
269    l_tot_men := l_nr_men + l_bnh_men + l_amai_men + l_ap_men + l_h_men + l_wnh_men + l_ur_men;
270    l_tot_wmen := l_nr_wmen + l_bnh_wmen + l_amai_wmen + l_ap_wmen + l_h_wmen + l_wnh_wmen + l_ur_wmen;
271    FOR j IN get_line_tmraces_counts(salary_range,sc)
272     LOOP
273      l_bnh_men := l_bnh_men + j.bnhmen;
274      l_bnh_wmen := l_bnh_wmen + j.bnhwmen;
275      l_amai_men := l_amai_men + j.am_almen;
276      l_amai_wmen := l_amai_wmen + j.am_alwmen;
277      l_ap_men := l_ap_men + j.a_pmen;
278      l_ap_wmen := l_ap_wmen + j.a_pwmen;
279      l_h_men := l_h_men + j.hmen;
280      l_h_wmen := l_h_wmen + j.hwmen;
281      l_wnh_men := l_wnh_men + j.wnhmen;
282      l_wnh_wmen := l_wnh_wmen + j.wnhwmen;
283      l_ur_men := l_ur_men + j.urmen;
284      l_ur_wmen := l_ur_wmen + j.urwmen;
285      l_tot_men := l_tot_men + j.bnhmen + j.am_almen + j.a_pmen + j.hmen + j.wnhmen + j.urmen;
286      l_tot_wmen := l_tot_wmen + j.bnhwmen + j.am_alwmen + j.a_pwmen + j.hwmen + j.wnhwmen + j.urwmen;
287    END LOOP;
288 
289    INSERT
290     INTO pay_us_rpt_totals(session_id,    attribute1,    attribute2,    value1,    value2,    value3,    value4,
291 	   value5,    value6,    value7,    value8,    value9,    value10,    value11,    value12,    value13,    value14,    value15,    value16,    value17,    value18)
292     VALUES(userenv('sessionid'),    'IPED6',    salary_range,    line,    sc,
293 	   l_nr_men,    l_nr_wmen,    l_bnh_men,    l_bnh_wmen,    l_amai_men,    l_amai_wmen,    l_ap_men,    l_ap_wmen,    l_h_men,    l_h_wmen,    l_wnh_men,
294 	   l_wnh_wmen,    l_ur_men,    l_ur_wmen,    l_tot_men,    l_tot_wmen);
295    COMMIT;
296  END LOOP;
297 
298    return true;
299 end;
300 
301 function AfterReport return boolean is
302 begin
303   --hr_standard.event('AFTER REPORT');
304 EXECUTE IMMEDIATE 'DELETE FROM pay_us_rpt_totals
305                     WHERE attribute1 = ''IPED6''';
306   return (TRUE);
307 end;
308 
309 --Functions to refer Oracle report placeholders--
310 
311  Function line_num_p return number is
312 	Begin
313 	 return line_num;
314 	 END;
315  Function CP_FR_p return varchar2 is
316 	Begin
317 	 return CP_FR;
318 	 END;
319  Function CP_FT_p return varchar2 is
320 	Begin
321 	 return CP_FT;
322 	 END;
323  Function CP_PR_p return varchar2 is
324 	Begin
325 	 return CP_PR;
326 	 END;
327  Function CP_PT_p return varchar2 is
328 	Begin
329 	 return CP_PT;
330 	 END;
331  Function CP_lastLineNo_p return number is
332 	Begin
333 	 return CP_lastLineNo;
334 	 END;
335  Function CP_ReportTotTitle_p return varchar2 is
336 	Begin
337 	 return CP_ReportTotTitle;
338 	 END;
339  Function tmp_var_p return number is
340 	Begin
341 	 return tmp_var;
342 	 END;
343  Function tmp_var1_p return number is
344 	Begin
345 	 return tmp_var1;
346 	 END;
347  Function tmp_var2_p return number is
348 	Begin
349 	 return tmp_var2;
350 	 END;
351 END PQH_PQIPED6_XMLP_PKG ;