Global Absence Discretionary Disbursement Rule
This formula type can be used to define the limit of the amount of leave balance that a worker is eligible to request to be disbursed as cash. The formula returns the minimum and maximum amount of leave balance that can be disbursed, and also returns an increment, which limits the disbursement amount to specific values between the minimum and maximum. These attributes are defined as follows.
a. The minimum amount of leave balance that the worker is eligible to request a cash disbursement.
b. The maximum amount of leave balance that the worker can request, for instances where you want to limit the amount to a certain number of hours.
c. An increment to prevent workers from entering decimal places, and thus avoid rounding issues later
Example: 1
FORMULA NAME: ANC_ DISBURSEMENTRULE
FORMULA TYPE: Global Absence Discretionary
Disbursement Rule
DESCRIPTION: This formula dictates what minimum
/ maximum / increments are allowed
Change History:
Name Date Version Comments
-------------------------------------------------------------------------------
Oracle 1-Jan-2018
DRAFT 1A Initial Version
*******************************************************************************/
DEFAULT FOR PER_PERSON_ENTERPRISE_HIRE_DATE IS
'0001/01/01 00:00:00' (date)
DEFAULT FOR PER_REL_ORIGINAL_DATE_OF_HIRE IS
'0001/01/01 00:00:00' (date)
MIN=1
MAX=5
INCREMENT=1
IF(PER_REL_ORIGINAL_DATE_OF_HIRE WAS DEFAULTED)
THEN
(L_Hire_Date
= PER_PERSON_ENTERPRISE_HIRE_DATE)
ELSE
(L_Hire_Date
= PER_REL_ORIGINAL_DATE_OF_HIRE)
L_Eff_Date = GET_CONTEXT(EFFECTIVE_DATE,
'4712/12/31 00:00:00' (date))
Length_of_service = DAYS_BETWEEN(L_Eff_Date,L_Hire_Date)/365
IF(Length_of_service > 5) THEN (
MAX =
10
)
RETURN MIN,MAX,INCREMENT
Example 2:
/*****
FORMULA NAME: BCT_IN_EL_DISBURSEMENT
FORMULA TYPE: Global Absence Discretionary Disbursement Rule
DESCRIPTION: This formula dictates what minimum / maximum / increments are allowed
Change History:
Name Date Version Comments
-------------------------------------------------------------------------------
Dinesh.N 09-Feb-2021 DRAFT 1A Initial Version
*******************************************************************************/
INPUTS ARE IV_PERSON_ID
DEFAULT FOR IV_PERSON_ID IS 0
L_Person_Id = IV_PERSON_ID
l_assignment_id=GET_CONTEXT(HR_ASSIGNMENT_ID,0)
L_EFF_DATE = get_context(effective_date,'4712/12/31 00:00:00' (date))
L_Accrual_Plan_ID = 300000082209385
L_LEGISLATIVE_DATA_GROUP = 300000009608814
L_Leave_Balance = 0
MIN =1
MAX = 40
INCREMENT = 1
l_log = ESS_LOG_WRITE('Initial Max Value' + TO_CHAR(Max))
CHANGE_CONTEXTS(ACCRUAL_PLAN_ID = L_Accrual_Plan_ID, HR_ASSIGNMENT_ID = l_assignment_id, PERSON_ID = L_Person_Id, EFFECTIVE_DATE =L_EFF_DATE,LEGISLATIVE_DATA_GROUP_ID=L_LEGISLATIVE_DATA_GROUP )
(
L_Leave_Balance = GET_PLAN_BALANCE('Test EL')
l_log = ESS_LOG_WRITE('Leave Balance' + TO_CHAR(L_Leave_Balance))
)
IF GET_PLAN_BALANCE('Test EL') > 30 THEN
(
MAX = (GET_PLAN_BALANCE('Test EL')-30)
l_log = ESS_LOG_WRITE('If Condition Max Value' + TO_CHAR(Max))
)
RETURN MIN,MAX,INCREMENT
0 Comments