BG Absence Duration
BG Absence Duration
BG Absence Duration
* CREATION DATE :
* COMPANY : PST
* PRORATION :
* SOURCE :
*****************************************************************
* MODIFIED BY :
* MODIFICATION DATE :
* CHANGE DESCRIPTION :
***************************************************************/
date_start (date),
date_end (date),
time_start (text),
time_end (text) ,
ABS_INFORMATION1 (text),
ABSENCE_ATTENDANCE_TYPE_ID (Number)
/* default values */
/* database items */
/* local variables */
DURATION = '0'
number_of_days = 0
TOTAL_DAYS= 0
first_day_hours = 0
last_day_hours = 0
begin_day = '08:30'
end_day = '18:00'
PAY_YEAR_START = 0
VALIDATE_LEAVE=0
OSL_YTD = 0
SL_YTD = 0
ATPL_YTD = 0
EXC_YTD = 0
HAJJ_YTD = 0
SIT_YTD = 0
PAT_YTD = 0
OI_YTD = 0
LML_YTD = 0
hourly_value = 0
hourly_value1 = 0
PEL=0
DIFF_TWO_TIME = '0,00'
CALENDAR_DAY = 0
PAY_YEAR_START = TO_NUM(TO_CHAR(DATE_START,'YYYY'))
CALENDAR_DAY = CALCULATE_CALENDAR_DAYS(date_start,date_end)
VALIDATE_LEAVE = xx_lv_overlap_valid(date_start,date_end)
validate_date = XX_VALIDATE_DATE(date_start)
/* DIFF_TWO_TIME = to_char(GET_TWO_TIMES(TO_DATE(time_end, 'DD-MM-YYYY hh24:mi')
,TO_DATE(time_start, 'DD-MM-YYYY hh24:mi')))
*/
/*=================================================*/
IF VALIDATE_LEAVE = 0 THEN
duration = 'FAILED'
invalid_msg = ''
ELSE
/* Sick Leave * /
duration = TO_CHAR(DAYS_BETWEEN(date_end,date_start)+1)
duration = 'FAILED'
/* * /
duration = TO_CHAR((DAYS_BETWEEN(date_end,date_start) + 1)
)
/* Maternity Leave * /
duration = TO_CHAR(DAYS_BETWEEN(date_end,date_start)+1)
Duration = 'FAILED'
/* Hours in lue */
hourly_value1 = (((to_num(SUBSTR(time_end,1,2))*60 +
to_num(SUBSTR(time_end,4,2))) - (to_num(SUBSTR(time_start,1,2))*60
+ to_num(SUBSTR(time_start,4,2))))/ 60)
duration = TO_CHAR(hourly_value1*1.5)
duration = TO_CHAR(hourly_value1*1.5)
)
ELSE
duration= TO_CHAR(hourly_value1*1.25)
/* DAY IN LUE */
duration = TO_CHAR(DAYS_BETWEEN(date_end,date_start)+1*1.5)
/* Annual Leave * /
IF TO_NUM(DURATION)> Net_ACC
THEN
Duration = 'FAILED'
hourly_value = (((to_num(SUBSTR(time_end,1,2))*60 +
to_num(SUBSTR(time_end,4,2))) - (to_num(SUBSTR(time_start,1,2))*60
+ to_num(SUBSTR(time_start,4,2)))) / 60/8.5)
duration = to_char((((to_num(SUBSTR(time_end,1,2))*60 +
to_num(SUBSTR(time_end,4,2))) - (to_num(SUBSTR(time_start,1,2))*60 +
to_num(SUBSTR(time_start,4,2)))) / 60))
duration = to_char(4.25)
duration = to_char(8.5)
duration = 'FAILED'
invalid_msg = ''
hourly_value = (((to_num(SUBSTR(time_end,1,2))*60 +
to_num(SUBSTR(time_end,4,2))) - (to_num(SUBSTR(time_start,1,2))*60
+ to_num(SUBSTR(time_start,4,2)))) / 60/8.5)
duration = to_char((((to_num(SUBSTR(time_end,1,2))*60 +
to_num(SUBSTR(time_end,4,2))) - (to_num(SUBSTR(time_start,1,2))*60 +
to_num(SUBSTR(time_start,4,2)))) / 60))
duration = to_char(4.25)
duration = to_char(8.5)
/* Nursing Hours * /
duration = TO_CHAR(((to_num(SUBSTR(time_end,1,2))*60 +
to_num(SUBSTR(time_end,4,2))) - (to_num(SUBSTR(time_start,1,2))*60 +
to_num(SUBSTR(time_start,4,2)))) / 60)
invalid_msg = ''
/* Hajj Leave * /
duration= 'FAILED'
/* Unpaid Leave * /
/* Study Leave */
(
IF DAYS_BETWEEN(SYSDATE,HIRE_DATE)+1/365 >=5 THEN
duration = TO_CHAR(calculate_working_days(date_start,date_end)-CALENDAR_DAY)
duration= 'FAILED'
return duration,invalid_msg