1 PACKAGE BODY pqh_tenure_detail AS
2 /* $Header: pqhusprn.pkb 120.2 2005/08/17 11:25:18 nsanghal noship $ */
3
4 PROCEDURE getPersonInfo (
5 p_person_id IN NUMBER,
6 p_employee_number OUT NOCOPY VARCHAR2,
7 p_full_name OUT NOCOPY VARCHAR2,
8 p_last_name OUT NOCOPY VARCHAR2,
9 p_title OUT NOCOPY VARCHAR2,
10 p_email_addr OUT NOCOPY VARCHAR2,
11 p_start_date OUT NOCOPY DATE ) IS
12
13 CURSOR emp_cur IS
14 SELECT employee_number, full_name, last_name, title, email_address, start_date
15 FROM per_all_people_f
16 WHERE SYSDATE BETWEEN effective_start_date and effective_end_date
17 AND person_id = p_person_id;
18
19 l_title VARCHAR2(30);
20 BEGIN
21 OPEN emp_cur;
22 FETCH emp_cur INTO p_employee_number,p_full_name, p_last_name, l_title, p_email_addr, p_start_date;
23 CLOSE emp_cur;
24 p_title := hr_general.decode_lookup(p_lookup_type => 'TITLE',p_lookup_code => l_title);
25 exception
26 when others then
27 p_employee_number := null;
28 p_full_name := null;
29 p_last_name := null;
30 p_title := null;
31 p_email_addr := null;
32 p_start_date := null;
33 END;
34
35 PROCEDURE getPersonTenure (
36 p_person_id IN NUMBER,
37 p_tenure_status OUT NOCOPY VARCHAR2,
38 p_date_determine OUT NOCOPY VARCHAR2,
39 p_adjust_date OUT NOCOPY VARCHAR2,
40 p_remain_years OUT NOCOPY VARCHAR2,
41 p_remain_months OUT NOCOPY VARCHAR2,
42 p_completed_years OUT NOCOPY VARCHAR2,
43 p_completed_months OUT NOCOPY VARCHAR2 ) IS
44
45 CURSOR emp_tenure_cur IS
46 SELECT pei_information1 tenure_status,
47 FND_DATE.canonical_to_date(PEI_INFORMATION2) date_determined,
48 FND_DATE.canonical_to_date(nvl(PEI_INFORMATION4,PEI_INFORMATION3)) adjusted_tenure_date
49 FROM per_people_extra_info
50 WHERE person_id = p_person_id
51 AND information_type = 'PQH_TENURE_STATUS' ;
52
53 /* Join with HR_LOOKUPS to get the Tenure Status Description. */
54 l_date_determine date;
55 l_adjust_date date;
56
57 BEGIN
58 OPEN emp_tenure_cur;
59 FETCH emp_tenure_cur INTO p_tenure_status, l_date_determine, l_adjust_date;
60 CLOSE emp_tenure_cur;
61
62 p_date_determine := fnd_date.date_to_displaydate(l_date_determine);
63 p_adjust_date := fnd_date.date_to_displaydate(l_adjust_date);
64
65 p_remain_years := TRUNC((l_adjust_date - trunc(SYSDATE) ) / 365 );
66 p_remain_months := ROUND( MOD ((l_adjust_date - trunc(SYSDATE)) , 365) / 30 );
67
68 p_completed_years := TRUNC((trunc(SYSDATE) - l_date_determine) / 365 );
69 p_completed_months := ROUND( MOD ((trunc(SYSDATE) - l_date_determine),365) / 30);
70
71 exception when others then
72 p_tenure_status := null;
73 p_date_determine := null;
74 p_adjust_date := null;
75 p_remain_years := null;
76 p_remain_months := null;
77 p_completed_years := null;
78 p_completed_months := null;
79 END;
80
81 FUNCTION getPersonAddress (
82 p_person_id IN NUMBER,
83 p_bgroup_id IN NUMBER ) RETURN VARCHAR2 IS
84
85 CURSOR emp_addr_cur IS
86 SELECT address_line1||DECODE(NVL(address_line2,'X'),'X',FND_GLOBAL.local_chr(10),', '||address_line2||
87 FND_GLOBAL.local_chr(10))|| DECODE(NVL(address_line3,'X'),'X','',address_line3||FND_GLOBAL.local_chr(10))||
88 town_or_city||', '||region_2||' '||postal_code
89 FROM per_addresses
90 WHERE SYSDATE BETWEEN date_from AND NVL(date_to,SYSDATE)
91 AND person_id = p_person_id
92 AND business_group_id = p_bgroup_id
93 AND primary_flag = 'Y';
94
95 l_address VARCHAR2(1000);
96 BEGIN
97 OPEN emp_addr_cur;
98 FETCH emp_addr_cur INTO l_address;
99 CLOSE emp_addr_cur;
100
101 RETURN l_address;
102 END;
103
104 FUNCTION getPersonSupervisor ( p_person_id IN NUMBER ) RETURN NUMBER IS
105
106 CURSOR emp_super_cur IS
107 SELECT supervisor_id
108 FROM per_all_assignments_f
109 WHERE person_id = p_person_id
110 AND primary_flag = 'Y'
111 AND SYSDATE BETWEEN effective_start_date and effective_end_date;
112
113 l_supervisor_id NUMBER;
114 BEGIN
115
116 OPEN emp_super_cur;
117 FETCH emp_super_cur INTO l_supervisor_id;
118 CLOSE emp_super_cur;
119 RETURN l_supervisor_id;
120 END;
121
122 FUNCTION getPersonRank (p_person_id IN NUMBER ) RETURN VARCHAR2 IS
123
124 CURSOR emp_rank_cur IS
125 SELECT hr_general.decode_lookup('PQH_ACADEMIC_RANK',pei_information1)
126 FROM per_people_extra_info
127 WHERE person_id = p_person_id
128 AND information_type = 'PQH_ACADEMIC_RANK' ;
129
130 l_academic_rank hr_lookups.meaning%type;
131
132 BEGIN
133 OPEN emp_rank_cur;
134 FETCH emp_rank_cur INTO l_academic_rank;
135 CLOSE emp_rank_cur;
136 RETURN l_academic_rank;
137 END;
138
139 FUNCTION getPersonJobPosition ( p_person_id IN NUMBER ) RETURN VARCHAR2 IS
140
141 CURSOR prim_asg IS
142 SELECT assignment_id,job_id,position_id
143 FROM per_all_assignments_f paf
144 WHERE paf.person_id = p_person_id
145 and sysdate between effective_start_date and effective_end_date
146 and primary_flag = 'Y'
147 and assignment_type = 'E';
148
149 l_assignment_id number;
150 l_job_id number;
151 l_position_id number;
152 l_job_name per_jobs.name%type;
153 l_position_name hr_all_positions_f.name%type;
154 BEGIN
155 -- fetch the primary assignment
156 OPEN prim_asg;
157 FETCH prim_asg INTO l_assignment_id,l_job_id,l_position_id;
158 CLOSE prim_asg;
159 if l_position_id is not null then
160 l_position_name := hr_general.decode_position_latest_name(l_position_id);
161 elsif l_job_id is not null then
162 l_job_name := hr_general.decode_job(l_job_id);
163 end if;
164 RETURN nvl(l_job_name,l_position_name);
165 END;
166
167 FUNCTION getManagerSequence RETURN NUMBER IS
168 BEGIN
169 managerSeq := managerSeq + 1;
170 RETURN (managerSeq);
171 END;
172
173 FUNCTION getSupStatusCount (
174 p_supervisor_id IN NUMBER,
175 p_tenure_status IN VARCHAR2,
176 p_effective_date IN DATE ) RETURN NUMBER IS
177
178 /* Headcount of Tenure status till now for a supervisor */
179 CURSOR prsn_status_cnt_cur IS
180 SELECT COUNT(paf.person_id)
181 FROM per_all_assignments_f paf,
182 per_people_extra_info ppe
183 WHERE paf.person_id = ppe.person_id
184 and primary_flag ='Y' -- primary assignments only
185 and assignment_type ='E' -- only employees
186 AND ppe.information_type = 'PQH_TENURE_STATUS'
187 AND ppe.pei_information1 = p_tenure_status
188 AND SYSDATE BETWEEN paf.effective_start_date AND paf.effective_end_date
189 AND FND_DATE.canonical_to_date(PEI_INFORMATION2) <= p_effective_date
190 AND paf.supervisor_id = p_supervisor_id ;
191
192 l_status_count NUMBER;
193
194 BEGIN
195 OPEN prsn_status_cnt_cur;
196 FETCH prsn_status_cnt_cur INTO l_status_count;
197 CLOSE prsn_status_cnt_cur;
198
199 RETURN l_status_count;
200 END;
201
202 FUNCTION getPeriodStatusCount (
203 p_supervisor_id IN NUMBER,
204 p_tenure_status IN VARCHAR2,
205 p_start_date IN DATE,
206 p_end_date IN DATE ) RETURN NUMBER IS
207
208 /* 4Faculty count of Tenure status till now for a supervisor */
209 CURSOR prsn_status_cnt_cur IS
210 SELECT count(person_id)
211 FROM per_all_assignments_f paf
212 WHERE assignment_type ='E'
213 and exists (
214 SELECT null
215 FROM per_people_extra_info ppe
216 WHERE ppe.information_type = 'PQH_TENURE_STATUS'
217 AND ppe.pei_information1 = p_tenure_status
218 AND paf.person_id = ppe.person_id
219 AND FND_DATE.canonical_to_date(PPE.PEI_INFORMATION2) BETWEEN p_start_date AND p_end_date)
220 and exists (
221 SELECT null
222 FROM per_people_extra_info eiar
223 WHERE eiar.information_type = 'PQH_ACADEMIC_RANK'
224 AND paf.person_id = eiar.person_id
225 AND SYSDATE BETWEEN FND_DATE.canonical_to_date(eiar.PEI_INFORMATION2) AND
226 NVL(FND_DATE.canonical_to_date(eiar.PEI_INFORMATION3),SYSDATE))
227 CONNECT BY PRIOR person_id = supervisor_id
228 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
229 AND primary_flag ='Y'
230 START WITH supervisor_id = p_supervisor_id
231 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
232 and primary_flag ='Y';
233
234 l_status_count NUMBER;
235
236 BEGIN
237 OPEN prsn_status_cnt_cur;
238 FETCH prsn_status_cnt_cur INTO l_status_count;
239 CLOSE prsn_status_cnt_cur;
240
241 RETURN l_status_count;
242 END;
243
244 FUNCTION getStatusCount (
245 p_supervisor_id IN NUMBER,
246 p_tenure_status IN VARCHAR2 ) RETURN NUMBER IS
247
248 /* Faculty count of Tenure status till now for a supervisor */
249 CURSOR prsn_status_cnt_cur IS
250 SELECT count(person_id)
251 FROM per_all_assignments_f paf
252 WHERE assignment_type ='E'
253 and exists (
254 SELECT null
255 FROM per_people_extra_info ppe
256 WHERE ppe.information_type = 'PQH_TENURE_STATUS'
257 AND ppe.pei_information1 = p_tenure_status
258 AND paf.person_id = ppe.person_id
259 AND fnd_date.canonical_to_date(ppe.pei_information2) <= SYSDATE)
260 CONNECT BY PRIOR person_id = supervisor_id
261 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
262 AND primary_flag ='Y'
263 START WITH supervisor_id = p_supervisor_id
264 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
265 and primary_flag ='Y';
266
267 l_status_count NUMBER;
268
269 BEGIN
270 OPEN prsn_status_cnt_cur;
271 FETCH prsn_status_cnt_cur INTO l_status_count;
272 CLOSE prsn_status_cnt_cur;
273
274 RETURN l_status_count;
275 END;
276
277 PROCEDURE getTenuredCount (
278 p_supervisor_id IN NUMBER,
279 p_top_level IN VARCHAR2, -- Top level info T-Top only, S-Supervisor only B-Both
280 p_start_academic_dt IN DATE, -- Academic Year start date
281 p_end_academic_dt IN DATE, -- Academic Year End date
282 p_total_cnt OUT NOCOPY NUMBER, -- Total count
283 p_tenured_cnt OUT NOCOPY NUMBER, -- Total Tenured
284 p_tenured_sup_cnt OUT NOCOPY NUMBER, -- Tenured tenured for supervisor
285 p_tt_cnt OUT NOCOPY NUMBER, -- Tenure-track
286 p_tt_sup_cnt OUT NOCOPY NUMBER, -- Tenure-track for supervisor
287 p_tt_final_yr_cnt OUT NOCOPY NUMBER, -- Tenure-track in Final Year
288 p_tt_final_yr_sup_cnt OUT NOCOPY NUMBER, -- Tenure-track for supervisor in Final Year
289 p_ten_cur_yr_cnt OUT NOCOPY NUMBER, -- Tenured for the acdemic year
290 p_ten_cur_yr_sup_cnt OUT NOCOPY NUMBER, -- Tenured for supervisor for acdemic year
291 p_te_cur_yr_cnt OUT NOCOPY NUMBER, -- Tenure-eligible duing the academic year
292 p_te_cur_yr_sup_cnt OUT NOCOPY NUMBER, -- Tenure-eligible for supervisor for academic year
293 p_td_cur_yr_cnt OUT NOCOPY NUMBER, -- Tenure-denied for academic year
294 p_td_cur_yr_sup_cnt OUT NOCOPY NUMBER)IS -- Tenure-denied for supervisor for academic year
295
296 l_tenure_status VARCHAR2(20);
297 l_effective_date DATE;
298
299 /* Total Faculty count irrespective of Tenure status */
300 CURSOR prsn_cnt_cur IS
301 SELECT COUNT(person_id)
302 FROM per_all_assignments_f
303 WHERE SYSDATE BETWEEN effective_start_date AND effective_end_date
304 and primary_flag ='Y'
305 -- 2005/08/08: NS: Performance fix: fetch the count for the business group
306 and business_group_id = hr_general.get_business_group_id
307 and assignment_type ='E';
308
309 /* Faculty count of Tenured/Tenure-track status in final year of consideration*/
310 CURSOR prsn_tt_cnt_cur IS
311 SELECT COUNT(paf.person_id)
312 FROM per_all_assignments_f paf,
313 per_people_extra_info ppe
314 WHERE paf.person_id = ppe.person_id
315 AND ppe.information_type = 'PQH_TENURE_STATUS'
316 and primary_flag ='Y'
317 and assignment_type ='E'
318 AND ppe.pei_information1 = l_tenure_status
319 AND paf.effective_start_date <= SYSDATE
320 AND paf.effective_end_date >= SYSDATE
321 AND nvl(fnd_date.canonical_to_date(NVL(ppe.pei_information4,ppe.pei_information3)),sysdate)
322 BETWEEN p_start_academic_dt AND p_end_academic_dt;
323
324 /* Faculty count of Tenure Status for current Year */
325 CURSOR prsn_ed_cnt_cur IS
326 SELECT COUNT(paf.person_id)
327 FROM per_all_assignments_f paf,
328 per_people_extra_info ppe
329 WHERE paf.person_id = ppe.person_id
330 and primary_flag ='Y'
331 and assignment_type ='E'
332 AND ppe.information_type= 'PQH_TENURE_STATUS'
333 AND ppe.pei_information1= l_tenure_status
334 AND SYSDATE BETWEEN paf.effective_start_date AND paf.effective_end_date
335 AND fnd_date.canonical_to_date(ppe.pei_information2) BETWEEN
336 p_start_academic_dt AND p_end_academic_dt;
337
338 /* Faculty count of Tenure Status upto to start date */
339 CURSOR prsn_cnt_tillnow_cur IS
340 SELECT COUNT(paf.person_id)
341 FROM per_all_assignments_f paf,
342 per_people_extra_info ppe
343 WHERE paf.person_id = ppe.person_id
344 AND ppe.information_type = 'PQH_TENURE_STATUS'
345 and primary_flag ='Y'
346 and assignment_type ='E'
347 AND ppe.pei_information1= l_tenure_status
348 AND SYSDATE BETWEEN paf.effective_start_date AND paf.effective_end_date
349 AND fnd_date.canonical_to_date(ppe.pei_information2) <= l_effective_date;
350
351 /*Faculty count of Tenured/Tenure-track status for current/upcoming/previous years */
352 CURSOR prsn_tt_sup_cnt_cur IS
353 SELECT count(person_id)
354 FROM per_all_assignments_f paf
355 WHERE assignment_type ='E'
356 and exists (
357 SELECT null
358 FROM per_people_extra_info ppe
359 WHERE ppe.information_type = 'PQH_TENURE_STATUS'
360 AND ppe.pei_information1 = l_tenure_status
361 AND paf.person_id = ppe.person_id
362 AND nvl(fnd_date.canonical_to_date(
363 NVL(ppe.pei_information4,ppe.pei_information3)),SYSDATE)
364 BETWEEN p_start_academic_dt AND p_end_academic_dt)
365 CONNECT BY PRIOR person_id = supervisor_id
366 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
367 AND primary_flag ='Y'
368 START WITH supervisor_id = p_supervisor_id
369 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
370 and primary_flag ='Y';
371
372 /* Faculty count of Tenure eligible/denied status for current year */
373 CURSOR prsn_ed_sup_cnt_cur IS
374 SELECT count(person_id)
375 FROM per_all_assignments_f paf
376 WHERE assignment_type ='E'
377 and exists (
378 SELECT null
379 FROM per_people_extra_info ppe
380 WHERE ppe.information_type = 'PQH_TENURE_STATUS'
381 AND ppe.pei_information1 = l_tenure_status
382 AND paf.person_id = ppe.person_id
383 AND fnd_date.canonical_to_date(ppe.pei_information2)
384 BETWEEN p_start_academic_dt AND p_end_academic_dt)
385 CONNECT BY PRIOR person_id = supervisor_id
386 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
387 AND primary_flag ='Y'
388 START WITH supervisor_id = p_supervisor_id
389 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
390 and primary_flag ='Y';
391
392 /* Faculty count of Tenure status till now for a supervisor */
393 CURSOR prsn_sup_cnt_tillnow_cur IS
394 SELECT count(person_id)
395 FROM per_all_assignments_f paf
396 WHERE assignment_type ='E'
397 and exists (
398 SELECT null
399 FROM per_people_extra_info ppe
400 WHERE ppe.information_type = 'PQH_TENURE_STATUS'
401 AND ppe.pei_information1 = l_tenure_status
402 AND paf.person_id = ppe.person_id
403 AND fnd_date.canonical_to_date(ppe.pei_information2) <= l_effective_date)
404 CONNECT BY PRIOR person_id = supervisor_id
405 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
406 AND primary_flag ='Y'
407 START WITH supervisor_id = p_supervisor_id
408 AND SYSDATE BETWEEN effective_start_date AND effective_end_date
409 and primary_flag ='Y';
410 BEGIN
411 IF p_top_level IN ('T','B') THEN
412 OPEN prsn_cnt_cur;
413 FETCH prsn_cnt_cur INTO p_total_cnt;
414 CLOSE prsn_cnt_cur;
415 END IF;
416
417 /* ******** TENURED FACULTY COUNT ******** -- */
418 l_tenure_status := '01';
419
420 /* Upto the starting of the academic Year */
421 IF p_top_level IN ('T','B') THEN
422 IF p_start_academic_dt IS NOT NULL THEN
423 l_effective_date := p_start_academic_dt;
424 ELSE
425 l_effective_date := SYSDATE;
426 END IF;
427
428 OPEN prsn_cnt_tillnow_cur;
429 FETCH prsn_cnt_tillnow_cur INTO p_tenured_cnt;
430 CLOSE prsn_cnt_tillnow_cur;
431 END IF;
432
433 /* For specific Supervisor */
434 IF p_top_level IN ('S','B') THEN
435 IF p_start_academic_dt IS NOT NULL THEN
436 l_effective_date := p_start_academic_dt;
437 ELSE
438 l_effective_date := SYSDATE;
439 END IF;
440
441 OPEN prsn_sup_cnt_tillnow_cur;
442 FETCH prsn_sup_cnt_tillnow_cur INTO p_tenured_sup_cnt;
443 CLOSE prsn_sup_cnt_tillnow_cur;
444 END IF;
445
446 /* During the academic year */
447 IF p_top_level IN ('T','B') THEN
448 OPEN prsn_ed_cnt_cur;
449 FETCH prsn_ed_cnt_cur INTO p_ten_cur_yr_cnt;
450 CLOSE prsn_ed_cnt_cur;
451 END IF;
452
453 /* During the academic year for specific supervisor */
454 IF p_top_level IN ('S','B') THEN
455 OPEN prsn_ed_sup_cnt_cur;
456 FETCH prsn_ed_sup_cnt_cur INTO p_ten_cur_yr_sup_cnt;
457 CLOSE prsn_ed_sup_cnt_cur;
458 END IF;
459
460 /* ******** TENURE TRACK FACULTY COUNT ******** -- */
461 l_tenure_status := '02';
462
463 /* Upto the starting of the academic Year */
464 IF p_top_level IN ('T','B') THEN
465 OPEN prsn_cnt_tillnow_cur;
466 FETCH prsn_cnt_tillnow_cur INTO p_tt_cnt;
467 CLOSE prsn_cnt_tillnow_cur;
468 END IF;
469
470 /* For specific Supervisor */
471 IF p_top_level IN ('S','B') THEN
472 OPEN prsn_sup_cnt_tillnow_cur;
473 FETCH prsn_sup_cnt_tillnow_cur INTO p_tt_sup_cnt;
474 CLOSE prsn_sup_cnt_tillnow_cur;
475 END IF;
476
477 /* Final year for tenure consideration */
478 IF p_top_level IN ('T','B') THEN
479 OPEN prsn_tt_cnt_cur;
480 FETCH prsn_tt_cnt_cur INTO p_tt_final_yr_cnt;
481 CLOSE prsn_tt_cnt_cur;
482 END IF;
483
484 /* Final year for tenure consideration for specific supervisor */
485 IF p_top_level IN ('S','B') THEN
486 OPEN prsn_tt_sup_cnt_cur;
487 FETCH prsn_tt_sup_cnt_cur INTO p_tt_final_yr_sup_cnt;
488 CLOSE prsn_tt_sup_cnt_cur;
489 END IF;
490
491 /* ******** TENURE ELIGIBLE FACULTY COUNT ******** -- */
492 l_tenure_status := '04';
493
494 /* Tenure-Eligible this academic year */
495 IF p_top_level IN ('T','B') THEN
496 OPEN prsn_ed_cnt_cur;
497 FETCH prsn_ed_cnt_cur INTO p_te_cur_yr_cnt;
498 CLOSE prsn_ed_cnt_cur;
499 END IF;
500
501 /* Tenure-eligible this academic year for specific supervisor */
502 IF p_top_level IN ('S','B') THEN
503 OPEN prsn_ed_sup_cnt_cur;
504 FETCH prsn_ed_sup_cnt_cur INTO p_te_cur_yr_sup_cnt;
505 CLOSE prsn_ed_sup_cnt_cur;
506 END IF;
507
508 /* ******** TENURE DENIED FACULTY COUNT ******** --*/
509 l_tenure_status := '05';
510
511 /* Tenure-denied this academic year*/
512 IF p_top_level IN ('T','B') THEN
513 OPEN prsn_ed_cnt_cur;
514 FETCH prsn_ed_cnt_cur INTO p_td_cur_yr_cnt;
515 CLOSE prsn_ed_cnt_cur;
516 END IF;
517
518 /* Tenure-denied this academic year for specific supervisor */
519 IF p_top_level IN ('S','B') THEN
520 OPEN prsn_ed_sup_cnt_cur;
521 FETCH prsn_ed_sup_cnt_cur INTO p_td_cur_yr_sup_cnt;
522 CLOSE prsn_ed_sup_cnt_cur;
523 END IF;
524 exception when others then
525 p_total_cnt := null;
526 p_tenured_cnt := null;
527 p_tenured_sup_cnt := null;
528 p_tt_cnt := null;
529 p_tt_sup_cnt := null;
530 p_tt_final_yr_cnt := null;
531 p_tt_final_yr_sup_cnt := null;
532 p_ten_cur_yr_cnt := null;
533 p_ten_cur_yr_sup_cnt := null;
534 p_te_cur_yr_cnt := null;
535 p_te_cur_yr_sup_cnt := null;
536 p_td_cur_yr_cnt := null;
537 p_td_cur_yr_sup_cnt := null;
538 END getTenuredCount;
539
540 PROCEDURE getReportBodyText (
541 p_report_id IN VARCHAR2,
542 p_body_regards OUT NOCOPY VARCHAR2,
543 p_body_text1 OUT NOCOPY VARCHAR2,
544 p_body_text2 OUT NOCOPY VARCHAR2,
545 p_body_text3 OUT NOCOPY VARCHAR2,
546 p_body_text4 OUT NOCOPY VARCHAR2,
547 p_body_text5 OUT NOCOPY VARCHAR2,
548 p_body_text6 OUT NOCOPY VARCHAR2,
549 p_body_text7 OUT NOCOPY VARCHAR2,
550 p_body_text8 OUT NOCOPY VARCHAR2 ) IS
551
552 BEGIN
553 p_body_regards := fnd_message.get_string('PQH','PQH_RGDS_TENURE_RPT_TXT');
554
555 IF p_report_id = 'NT' THEN -- Non-Tenure
556
557 p_body_text1 := fnd_message.get_string('PQH','PQH_NT_TENURE_RPT_TXT');
558
559 ELSIF p_report_id = 'TS' THEN -- Tenure Status
560 p_body_text1 := fnd_message.get_string('PQH','PQH_TS_TENURE_RPT_TXT');
561
562 ELSIF p_report_id = 'TT' THEN -- Tenure Track
563 p_body_text1 := fnd_message.get_string('PQH','PQH_TT_TENURE_RPT_TXT1');
564
565 p_body_text2 := fnd_message.get_string('PQH','PQH_TT_TENURE_RPT_TXT2');
566
567 p_body_text3 := fnd_message.get_string('PQH','PQH_TT_TENURE_RPT_TXT3');
568
569 p_body_text4 := fnd_message.get_string('PQH','PQH_TT_TENURE_RPT_TXT4');
570
571 ELSIF p_report_id = 'RW' THEN -- Review
572
573 p_body_text1 := fnd_message.get_string('PQH','PQH_RW_TENURE_RPT_TXT1');
574
575 p_body_text2 := fnd_message.get_string('PQH','PQH_RW_TENURE_RPT_TXT2');
576
577 ELSIF p_report_id = 'AS' THEN -- Annual Status
578
579 p_body_text1 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT1');
580
581 p_body_text2 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT2');
582
583 p_body_text3 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT3');
584
585 p_body_text4 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT4');
586
587 p_body_text5 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT5');
588
589 p_body_text6 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT6');
590
591 p_body_text7 := fnd_message.get_string('PQH','PQH_AS_TENURE_RPT_TXT7');
592
593 ELSIF p_report_id = 'CE' THEN
594
595 p_body_text1 := fnd_message.get_string('PQH','PQH_CE_TENURE_RPT_TXT');
596 END IF;
597
598 END;
599 END pqh_tenure_detail;