DBA Data[Home] [Help]

PACKAGE BODY: APPS.CAC_HR_CAL_EVENTS_PVT

Source


1 PACKAGE BODY CAC_HR_CAL_EVENTS_PVT AS
2 /* $Header: cachrevtb.pls 120.2 2005/08/17 22:12:19 akaran noship $ */
3 
4 
5 PROCEDURE GET_HR_CAL_EVENTS
6 /*******************************************************************************
7 **  GET_HR_CAL_EVENTS
8 **
9 **  This API will return calendar events defined in hr events
10 **
11 *******************************************************************************/
12 ( p_Object_Type          IN     VARCHAR2             -- JTF OBJECTS type of the Object being queried
13 , p_Object_ID            IN     NUMBER               -- JTF OBJECTS select ID of the Object Instance being queried
14 , p_Start_Date           IN     DATE                 -- start date of period of interest
15 , p_End_Date             IN     DATE                 -- end date of period of interest
16 , p_Event_Type           IN     VARCHAR2
17 , p_Event_Id             IN     NUMBER
18 , x_hr_cal_events        OUT NOCOPY HR_CAL_EVENT_TBL_TYPE
19 ) IS
20 
21   l_cal_events    PER_CAL_EVENT_VARRAY;
22   l_i             NUMBER;
23 
24 BEGIN
25 
26   IF (p_Object_Type = 'PERSON_ASSIGNMENT')
27   THEN
28     l_cal_events := HR_CAL_EVENT_MAPPING_PKG.GET_CAL_EVENTS
29                     (
30                       p_assignment_id   => p_Object_ID
31                     , p_event_type      => p_Event_Type
32                     , p_start_date      => p_Start_Date
33                     , p_end_date        => p_End_Date
34                     , p_event_type_flag => NULL
35                     );
36   ELSIF (p_Object_Type IN
37     ('BUSINESS_GROUP','HR_ORGANIZATION','HR_JOB','HR_POSITION','HR_LOCATION'))
38   THEN
39     l_cal_events := HR_CAL_EVENT_MAPPING_PKG.GET_ALL_CAL_EVENTS
40                     (
41                       p_event_type      => p_Event_Type
42                     , p_start_date      => p_Start_Date
43                     , p_end_date        => p_End_Date
44                     );
45   END IF;
46 
47   IF (l_cal_events IS NOT NULL)
48   THEN
49     l_i := l_cal_events.FIRST;
50     WHILE (l_i IS NOT NULL)
51     LOOP
52       IF (NVL(p_Event_Id,l_cal_events(l_i).cal_event_id) = l_cal_events(l_i).cal_event_id)
53       THEN
54         x_hr_cal_events(l_i).CAL_EVENT_ID    := l_cal_events(l_i).cal_event_id;
55         x_hr_cal_events(l_i).EVENT_NAME      := l_cal_events(l_i).event_name;
56         x_hr_cal_events(l_i).EVENT_TYPE      := l_cal_events(l_i).event_type;
57         x_hr_cal_events(l_i).START_DATE_TIME := l_cal_events(l_i).start_date;
58         x_hr_cal_events(l_i).END_DATE_TIME   := l_cal_events(l_i).end_date;
59         IF (TO_NUMBER(NVL(l_cal_events(l_i).start_hour,'0')) > 0)
60         THEN
61           x_hr_cal_events(l_i).START_DATE_TIME := x_hr_cal_events(l_i).START_DATE_TIME + TO_NUMBER(l_cal_events(l_i).start_hour)/24.0;
62         END IF;
63         IF (TO_NUMBER(NVL(l_cal_events(l_i).start_minute,'0')) > 0)
64         THEN
65           x_hr_cal_events(l_i).START_DATE_TIME := x_hr_cal_events(l_i).START_DATE_TIME + TO_NUMBER(l_cal_events(l_i).start_minute)/(24.0*60.0);
66         END IF;
67         IF (TO_NUMBER(NVL(l_cal_events(l_i).end_hour,'0')) > 0)
68         THEN
69           x_hr_cal_events(l_i).END_DATE_TIME := x_hr_cal_events(l_i).END_DATE_TIME + TO_NUMBER(l_cal_events(l_i).end_hour)/24.0;
70         END IF;
71         IF (TO_NUMBER(NVL(l_cal_events(l_i).end_minute,'0')) > 0)
72         THEN
73           x_hr_cal_events(l_i).END_DATE_TIME := x_hr_cal_events(l_i).END_DATE_TIME + TO_NUMBER(l_cal_events(l_i).end_minute)/(24.0*60.0);
74         END IF;
75       END IF;
76       l_i := l_cal_events.NEXT(l_i);
77     END LOOP;
78   END IF;
79 
80 END GET_HR_CAL_EVENTS;
81 
82 
83 END CAC_HR_CAL_EVENTS_PVT;