Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

/*

***********************************************************************************
******
FORMULA NAME : MOB_COMPASSIONATE_LEAVE_VALIDATION
FORMULA TYPE : Global Absence Entry Validation
DESCRIPTION : This formula validate the absence entry for Mobily
Change History:
-----------------------------------------------------------------------------------
-------
Name Date Version Comments
-----------------------------------------------------------------------------------
-------
Ali Hassan 01-DEC-2022 0.1 Initial Version

***********************************************************************************
****** */

DEFAULT FOR ANC_ABS_TYP_NAME IS ' '


DEFAULT FOR PER_ASG_DATE_PROBATION_END IS '1950/01/01 00:00:00' (date)
DEFAULT FOR PER_PERSON_ENTERPRISE_HIRE_DATE IS '1950/01/01 00:00:00' (date)
DEFAULT FOR IV_START_DATE IS '1951/01/01 00:00:00' (date)
DEFAULT FOR IV_END_DATE IS '4712/01/01 00:00:00' (date)
DEFAULT FOR PER_ASG_PROBATION_UNIT IS 'M'
DEFAULT FOR PER_ASG_PROBATION_PERIOD IS -1
DEFAULT_DATA_VALUE for ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR is 0
DEFAULT for ANC_ABS_ENTRS_ABSENCE_TYPE_ID is 0
DEFAULT FOR ANC_ABS_ENTRS_DURATION IS 0
DEFAULT_DATA_VALUE for PER_EXT_RELIGION_NAME is 'No Religion'
DEFAULT_DATA_VALUE for PER_EXT_RELIGION_PERSON_ID is -1
DEFAULT for ANC_ABS_ENTRS_ATTRIBUTE1 is ' '
DEFAULT FOR ANC_ABS_ENTRS_ABSENCE_STATUS_CD IS ' '
DEFAULT FOR ANC_ABS_ENTRS_APPROVAL_STATUS_CD IS ' '
DEFAULT FOR ANC_ABS_ENTRS_ATTRIBUTE_DATE1 IS '1951/01/01 00:00:00' (date)
DEFAULT FOR IV_ATTRIBUTE_DATE1 IS '1951/01/01 00:00:00' (date)
DEFAULT FOR IV_ATTRIBUTE1 IS ' '
DEFAULT FOR IV_ATTRIBUTE2 IS ' '
DEFAULT FOR IV_ATTRIBUTE_1 IS ' '
DEFAULT FOR PER_PER_CITIZENSHIP_LEG_NAME IS ' '
DEFAULT_DATA_VALUE for PER_EXT_RELIGION_NAME is 'NO_DATA_FOUND'
DEFAULT FOR l_msg IS ' '

INPUTS ARE IV_START_DATE (Date),


IV_END_DATE (Date),
IV_TOTALDURATION (Number),
IV_START_DURATION (Number),
IV_END_DURATION (Number),
IV_START_TIME (Text),
IV_END_TIME (Text),
IV_ACTUALCHILDBIRTHDATE (Date),
IV_ACTUALSTARTDATE (Date),
IV_ACTUALENDDATE (Date),
IV_EXPECTEDCHILDBIRTHDATE (Date),
IV_PLANNEDSTARTDATE (Date),
IV_PLANNEDENDDATE (Date),
IV_ABSENCE_REASON (Text),
IV_ATTRIBUTE_DATE1 (Date),
IV_ATTRIBUTE_2 (Text),
IV_ATTRIBUTE_1 (Text)
l_person_id = -1
l_person_id = GET_CONTEXT(PERSON_ID, -1)

l_msg = ' '


VALID ='Y'
l_abs_type_name = ANC_ABS_TYP_NAME
l_emp_hire_date = PER_PERSON_ENTERPRISE_HIRE_DATE
l_prob_end_date = PER_ASG_DATE_PROBATION_END
l_abs_start_dt = IV_START_DATE
/* l_prv_abs_dt = l_abs_start_dt -2 */
l_abs_end_dt = IV_END_DATE
l_leave_days = IV_TOTALDURATION
l_attribute_1 = IV_ATTRIBUTE_1
l_hajj_duration_date = '1951/01/01 00:00:00' (date)
abs_duration = 0
LV_RELATION_LEAVE_COUNT = 0
LV_LIMITED_RELATION_FLAG = 'X'
LV_AVAILED_LEAVES = 0
LV_CURRENT_ABSENCE_TYPE = GET_TABLE_VALUE('MOB_COMPASSIONATE_LEAVE_VALIDATION',
'VALUE', 'CURRENT_ABSENCE_TYPE') /*'300000005227259'*/
LV_CURRENT_ABS_DATE = TO_CHAR (l_abs_start_dt, 'YYYY/MM/DD')

LV_RELATION_LEAVE_COUNT =
TO_NUMBER( GET_VALUE_SET('MOB_GET_ANSENCE_ATTRIBUTE1_PAST','|=P_PERSON_ID='''||
TO_CHAR(l_person_id)||''''||'|P_ATTRIBUTE1='''||l_attribute_1||''''||'|
P_ABS_DATE='''||LV_CURRENT_ABS_DATE||''''||'|P_ABS_TYPE='''||
LV_CURRENT_ABSENCE_TYPE||''''))

/*IF (l_attribute_1 = 'Father' OR l_attribute_1 = 'Mother' OR l_attribute_1 =


'Grandfather (Of Father)' OR (l_attribute_1 = 'Grandmother (Of Father)') OR
(l_attribute_1 = 'Grandfather (Of Mother)')OR (l_attribute_1 = 'Grandmother (Of
Mother)')) THEN*/
IF GET_TABLE_VALUE('MOB_COMPASSIONATE_LEAVE_VALIDATION', 'LIMITED_RELATION',
l_attribute_1) = 'Y' THEN
LV_LIMITED_RELATION_FLAG = 'Y'

IF LV_LIMITED_RELATION_FLAG = 'Y' AND LV_RELATION_LEAVE_COUNT > 0 THEN


(ERROR_MESSAGE = 'MOB_ABS_COMPASSIONATE_1'
VALID = 'N')
ELSE VALID = 'Y'

/*
LV_AVAILED_LEAVES = TO_NUMBER( GET_VALUE_SET('MOB_GET_AVAILED_DURATION','|
=P_PERSON_ID='''||TO_CHAR(l_person_id)||''''||'|P_FROM_DATE='''||
LV_START_DATE||''''||'|P_TO_DATE='''||LV_END_DATE||''''||'|P_ABS_DATE='''||
LV_CURRENT_ABS_DATE||''''||'|P_ABS_TYPE='''||LV_CURRENT_ABSENCE_TYPE||''''))
*/

RETURN VALID, ERROR_MESSAGE

You might also like