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;