Global Absence Discretionary Disbursement Rule

 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


Post a Comment

0 Comments