DBA Data[Home] [Help]

PACKAGE BODY: APPS.GHR_VALIDATE_PERWSEPI

Source


1 package body ghr_validate_perwsepi AS
2 /* $Header: ghrwsepi.pkb 115.3 1999/11/09 22:52:15 pkm ship    $ */
3 
4    -- Created g_new_line to use instead of CHR(10)
5    g_new_line      varchar2(1)    := substr('
6 ',1,1);
7 
8 --------------------------------------------------------------------------------------------------------
9 ---------------------------------- get_person_type  ----------------------------------------------------
10 --------------------------------------------------------------------------------------------------------
11 Function get_person_type (p_business_group_id IN NUMBER,p_person_id IN number,p_effective_date IN DATE)
12  RETURN VARCHAR2 IS
13 
14 -- This cursor gets the Person Type ID for Employee
15  CURSOR cur_chk_pst(p_business_group_id IN NUMBER,p_person_id IN NUMBER, p_effective_date IN DATE) IS
16     SELECT ppf.person_id
17     FROM per_people_f ppf, per_person_types pty
18     WHERE  ppf.person_id = p_person_id
19     AND    p_effective_date BETWEEN ppf.effective_start_date AND ppf.effective_end_date
20     AND    ppf.person_type_id = pty.person_type_id
21     AND    pty.system_person_type = 'EMP'
22     AND    pty.business_group_id = p_business_group_id
23     AND    pty.active_flag = 'Y';
24 
25 BEGIN
26   FOR cur_chk_pst_rec in cur_chk_pst(p_business_group_id,p_person_id,p_effective_date) LOOP
27     RETURN('TRUE');
28   END LOOP;
29 
30   RETURN('FALSE');
31 
32 END get_person_type;
33 
34 -- This function checks if there are any future PA Request actions for a given person between 2 dates
35 -- that have been completed.
36 FUNCTION check_pend_future_pars (p_person_id  IN NUMBER
37                                 ,p_from_date  IN DATE
38                                 ,p_to_date    IN DATE)
39 RETURN VARCHAR2 IS
40 
41 l_pend_future_list VARCHAR2(2000) := NULL;
42 --
43 CURSOR c_par IS
44   SELECT 'Request Number:'||par.request_number||
45         ', 1st NOA Code:'||par.first_noa_code||
46         DECODE(par.second_noa_code,NULL,NULL, ', 2nd NOA Code:'||par.second_noa_code)||
47         ', Effective Date:'||par.effective_date||
48         ', Updater:'||prh.user_name     list_info
49   FROM   ghr_pa_routing_history prh
50         ,ghr_pa_requests        par
51   WHERE  par.person_id = p_person_id
52   AND    par.effective_date BETWEEN NVL(p_from_date,par.effective_date) AND NVL(p_to_date,par.effective_date)
53   AND    prh.pa_request_id  = par.pa_request_id
54   AND    prh.pa_routing_history_id = (SELECT MAX(prh2.pa_routing_history_id)
55                                       FROM   ghr_pa_routing_history prh2
56                                       WHERE  prh2.pa_request_id = par.pa_request_id)
57   AND    prh.action_taken IN ('FUTURE_ACTION')
58   ORDER BY par.effective_date, par.pa_request_id;
59 
60 
61 BEGIN
62   -- loop around them all to build up a list
63   FOR c_par_rec IN c_par LOOP
64     l_pend_future_list := SUBSTR(l_pend_future_list||g_new_line||g_new_line||c_par%ROWCOUNT||'.'||c_par_rec.list_info,1,2000);
65   END LOOP;
66 
67   RETURN(l_pend_future_list);
68 
69 END check_pend_future_pars ;
70 
71 END ghr_validate_perwsepi;