0% found this document useful (0 votes)
268 views31 pages

Leave Setup Oracle

1. The document outlines the steps to set up leave management in an HRMS system, including defining leave entitlement tables, element descriptions, absence types, accrual plans, and linking everything together. 2. It also provides examples of fast formulas to calculate accruals for different leave types like PTO and maternity leave based on service dates, entitlement amounts, and previous year balances. 3. Instructions are provided to test the set up by viewing employee assignment forms and absence details.

Uploaded by

Mosunmola
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
268 views31 pages

Leave Setup Oracle

1. The document outlines the steps to set up leave management in an HRMS system, including defining leave entitlement tables, element descriptions, absence types, accrual plans, and linking everything together. 2. It also provides examples of fast formulas to calculate accruals for different leave types like PTO and maternity leave based on service dates, entitlement amounts, and previous year balances. 3. Instructions are provided to test the set up by viewing employee assignment forms and absence details.

Uploaded by

Mosunmola
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 31

LEAVE MANAGEMENT SET-UP

1. Define the Leave Entitlement Table Structure


Navigation: HRMS Manager > Other Definitions > Table Structure

a. Define the Column:

b. Define the Rows:

2. Define the Table Values:


a. Carryover
b. Entitlement

3. Define Leave Element


HRMS Manager > Total Compensation > Basic > Element Description
Click Input Values:

Click Balance Feeds

4. Define Absence Types


HRMS Manager > Total Compensation > Basic >Absence Types
5. Define Fast Formula:
HRMS > Total Compensation > Basic > FastFormula Assistant

This opens a web interface for Fast Formula Assistant


Click Create FastFormula

Click “Next”
Clear the Default fastformula and replace with your Custom Fastformula

SEE BELOW FOR FF

Click Verify
If ok the Confirmation page display as below

Click Next

Click Next

Repeat the steps above to define Fast formula for other Fast formulae and insert the
appropriate formula:

EDC_CASUAL_LEAVE_ACCRUAL
EDC_COMPASSIONATE_ACCRUAL
EDC_SICK_LEAVE_ACCRUAL
EDCXXX_ACCRUAL_PTO_PLAN_ORACLE_PAY
EDCRNG_LEAVE_CARRYOVER
EDC_CASUAL_CARRYOVER
EDC_COMPASSIONATE_CARRYOVER
EDC_SICK_LEAVE_CARRYOVER
BG_ABSENCE_DURATION

6. Definition of Accrual Plan Elements


HRMS > Total Compensation > Basic > Accrual Plans
a. EDC CASUAL LEAVE PLAN

Define all the Leave Type Element


HRMS > Total Compensation > Basic > Element Description
Define elements also for the following Leave Types
EDC Annual Leave
EDC Compassionate Leave
EDC Examination Leave
EDC Leave of Absence
EDC Maternity Leave
EDC Paternity Leave
EDC Sabbatical Leave
EDC Sick Leave
EDC Special Leave
EDC Study Leave
EDC Unpaid Leave
EDC Administrative Leave
EDC Annual Leave

7. Define Leave Types:


HRMS > Total Compensation > Basic > Absence Type
HRMS > Total Compensation > Basic > Accrual Plan
8. Link PLAN Elements
9. HRMS > Total Compensation > Basic > Link
10.
8. Define the Payroll
HRMS Manager > Payroll > Description

9. Assign the payroll to the already hired employee on the Assignment Window
Test the Element Plans by using an Employee
1. Query an employee
2. Click on the Assignment button
3. On the Assignment Form, click on Entries to verify that all the Plans has been linked as
display below

ALTERNATIVELY You can also Test via FastPath

HRMS Manager > FastPath > Accrual


You can also test by querying an Employee Absence details
1. Query an employee
2. Click on Others button
3. Select Absence and click OK
4. Select the Absence Type e.g EDC Annual Leave
5. Click on Accrual button

FAST FORMULAS

1. PTO ACCRUAL
DEFAULT FOR ACP_TERMINATION_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ASG_GRADE IS '0'

INPUTS ARE
Calculation_Date (date)
Effective_start_date =
to_date ('01-JAN-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Effective_end_date =
to_date ('31-DEC-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Accrual_end_date =
to_date ('01-JAN-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Quarter_end_date =
to_date ('31-MAR-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')Annual_Amount=30
Carry_over_Amount =5
/*
Annual_Amount = (to_number (get_table_value ('XYZ_LEAVE_ENTITLEMENT','ENTITLEMENT'
,ASG_GRADE,Calculation_Date )))

Carry_over_Amount = (to_number (get_table_value ('XYZ_LEAVE_ENTITLEMENT','CARRYOVER'


,ASG_GRADE,Calculation_Date)))
*/

/* If the employee resumes within the year, prorate the annual leave entitlement*/

IF ACP_SERVICE_START_DATE > Effective_start_date then

(
Period_Accrued= DAYS_BETWEEN(Effective_end_date,ACP_SERVICE_START_DATE )+1
Accrued_PTO = Round((Annual_Amount/365)*Period_Accrued,0)
Total_Accrued_PTO = Accrued_PTO
)

Else

(
Accrued_PTO = Annual_Amount
Absence = GET_ABSENCE(calculation_date,Effective_start_date)

IF ACP_SERVICE_START_DATE > ADD_YEARS(Effective_start_date,-1) then

(
Period_Accrued= DAYS_BETWEEN(ADD_YEARS(Effective_end_date,-
1),ACP_SERVICE_START_DATE )+1
last_Absence = GET_ABSENCE(ADD_YEARS(Effective_end_date,-
1),ACP_SERVICE_START_DATE)
last_Accrued_PTO = Round((Annual_Amount/365)*Period_Accrued,0)
)

Else

(
last_Absence = GET_ABSENCE(ADD_YEARS(Effective_end_date,-
1),ADD_YEARS(Effective_start_date,-1))
last_Accrued_PTO = Annual_Amount
)
IF DAYS_BETWEEN(calculation_date,Effective_start_date) +1 <= 90 then /* Checks if the
calculation date is still within the first quarter of the year and keeps any carry over*/

if (last_Accrued_PTO - last_Absence) >= Carry_over_Amount then


(
Total_Accrued_PTO = (Accrued_PTO + Carry_over_Amount) /* if the employee has
more than the carry over amount of leave days from the previous year, carry over the max carry
over amount */

Else

if (last_Accrued_PTO - last_Absence) < 0 then


(

Total_Accrued_PTO = Accrued_PTO /* if the employee used more than the


alocated leave days in the previous year, carry over nothing */

Else

Total_Accrued_PTO = (Accrued_PTO + (last_Accrued_PTO - last_Absence)) /* if


the employee has some leave days less than the carry over amount from the previous year,
carry over the leave days not used up */

)
Else /* if the calculation date is after the first quarter of the year any unused carry over
is taken out*/

AbsenceFirstQuarter = GET_ABSENCE(Quarter_end_date,Effective_start_date) /* Leave


days in the first Quarter*/

Absence = GET_ABSENCE(calculation_date,Effective_start_date) /* Total Leave days


upto the current date*/

if (last_Accrued_PTO - last_Absence) >= Carry_over_Amount then


(

Temp_carry_over = Carry_over_Amount

Else

if (last_Accrued_PTO - last_Absence) < 0 then


(

Temp_carry_over = 0 /* if the employee used more than the alocated leave


days in the previous year, carry over nothing */

Else

Temp_carry_over = (last_Accrued_PTO - last_Absence) /* if the employee has


some leave days less than the carry over amount from the previous year, carry over the leave
days not used up */

)
)

IF (Accrued_PTO + Temp_carry_over) - AbsenceFirstQuarter <= Accrued_PTO then

Total_Accrued_PTO = (Accrued_PTO + Temp_carry_over)

Else

Total_Accrued_PTO = (Accrued_PTO + AbsenceFirstQuarter)

RETURN total_accrued_pto, effective_start_date,


Effective_end_date, accrual_end_date
2. MATERNITY ACCRUAL

DEFAULT FOR ACP_TERMINATION_DATE IS '31-DEC-4712' (date)


DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ASG_GRADE IS '0'

INPUTS ARE
Calculation_Date (date)
Effective_start_date =
to_date ('01-JAN-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Effective_end_date =
to_date ('31-DEC-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Accrual_end_date =
to_date ('01-JAN-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Quarter_end_date =
to_date ('31-MAR-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Annual_Amount = 64
Carry_over_Amount = 0

/* If the employee resumes within the year, prorate the annual leave entitlement*/

IF ACP_SERVICE_START_DATE > Effective_start_date then

(
Period_Accrued= DAYS_BETWEEN(Effective_end_date,ACP_SERVICE_START_DATE )+1
Accrued_PTO = Round((Annual_Amount/365)*Period_Accrued,0)
Total_Accrued_PTO = Accrued_PTO
)

Else
(
Accrued_PTO = Annual_Amount
Absence = GET_ABSENCE(calculation_date,Effective_start_date)

IF ACP_SERVICE_START_DATE > ADD_YEARS(Effective_start_date,-1) then

(
Period_Accrued= DAYS_BETWEEN(ADD_YEARS(Effective_end_date,-
1),ACP_SERVICE_START_DATE )+1
last_Absence = GET_ABSENCE(ADD_YEARS(Effective_end_date,-
1),ACP_SERVICE_START_DATE)
last_Accrued_PTO = Round((Annual_Amount/365)*Period_Accrued,0)
)

Else

(
last_Absence = GET_ABSENCE(ADD_YEARS(Effective_end_date,-
1),ADD_YEARS(Effective_start_date,-1))
last_Accrued_PTO = Annual_Amount
)

IF DAYS_BETWEEN(calculation_date,Effective_start_date) +1 <= 90 then /* Checks if the


calculation date is still within the first quarter of the year and keeps any carry over*/

if (last_Accrued_PTO - last_Absence) >= Carry_over_Amount then


(
Total_Accrued_PTO = (Accrued_PTO + Carry_over_Amount) /* if the employee has
more than the carry over amount of leave days from the previous year, carry over the max carry
over amount */

Else

if (last_Accrued_PTO - last_Absence) <= 0 then


(

Total_Accrued_PTO = Accrued_PTO /* if the employee used more than the


allocated leave days in the previous year, carry over nothing */

Else

Total_Accrued_PTO = (Accrued_PTO + (last_Accrued_PTO - last_Absence)) /* if


the employee has some leave days less than the carry over amount from the previous year,
carry over the leave days not used up */

Else /* if the calculation date is after the first quarter of the year any unused carry over
is taken out*/

AbsenceFirstQuarter = GET_ABSENCE(Quarter_end_date,Effective_start_date) /* Leave


days in the first Quarter*/

Absence = GET_ABSENCE(calculation_date,Effective_start_date) /* Total Leave days up


to the current date*/

if (last_Accrued_PTO - last_Absence) >= Carry_over_Amount then


(

Temp_carry_over = Carry_over_Amount

Else
(

if (last_Accrued_PTO - last_Absence) < 0 then


(

Temp_carry_over = 0 /* if the employee used more than the allocated leave


days in the previous year, carry over nothing */

Else

Temp_carry_over = (last_Accrued_PTO - last_Absence) /* if the employee has


some leave days less than the carry over amount from the previous year, carry over the leave
days not used up */

IF (Accrued_PTO + Temp_carry_over) - AbsenceFirstQuarter <= Accrued_PTO then

Total_Accrued_PTO = (Accrued_PTO + Temp_carry_over)

Else

Total_Accrued_PTO = (Accrued_PTO + AbsenceFirstQuarter)

)
)

RETURN total_accrued_pto, effective_start_date,


Effective_end_date, accrual_end_date

3. EB_CASUAL_LEAVE_ACCRUAL

/*
This formula calculates the Casual Leave Accrual Entitlements for EB Employees.
*/

DEFAULT FOR ACP_TERMINATION_DATE IS '31-DEC-4712' (date)


DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '31-DEC-4712' (date)
DEFAULT FOR ASG_GRADE IS '0'

INPUTS ARE
Calculation_Date (date)
Effective_start_date =
to_date ('01-JAN-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Effective_end_date =
to_date ('31-DEC-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Accrual_end_date =
to_date ('01-JAN-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Quarter_end_date =
to_date ('31-MAR-'||to_char (calculation_date, 'YYYY'), 'DD-MON-YYYY')
Annual_Amount = 5
Carry_over_Amount = 0

/* If the employee resumes within the year, prorate the annual leave entitlement*/

IF ACP_SERVICE_START_DATE > Effective_start_date then

(
Period_Accrued= DAYS_BETWEEN(Effective_end_date,ACP_SERVICE_START_DATE )+1
Accrued_PTO = Round((Annual_Amount/365)*Period_Accrued,0)
Total_Accrued_PTO = Accrued_PTO
)

Else

(
Accrued_PTO = Annual_Amount
Absence = GET_ABSENCE(calculation_date,Effective_start_date)

IF ACP_SERVICE_START_DATE > ADD_YEARS(Effective_start_date,-1) then

(
Period_Accrued= DAYS_BETWEEN(ADD_YEARS(Effective_end_date,-
1),ACP_SERVICE_START_DATE )+1
last_Absence = GET_ABSENCE(ADD_YEARS(Effective_end_date,-
1),ACP_SERVICE_START_DATE)
last_Accrued_PTO = Round((Annual_Amount/365)*Period_Accrued,0)
)

Else

(
last_Absence = GET_ABSENCE(ADD_YEARS(Effective_end_date,-
1),ADD_YEARS(Effective_start_date,-1))
last_Accrued_PTO = Annual_Amount
)

IF DAYS_BETWEEN(calculation_date,Effective_start_date) +1 <= 90 then /* Checks if the


calculation date is still within the first quarter of the year and keeps any carry over*/

if (last_Accrued_PTO - last_Absence) >= Carry_over_Amount then


(
Total_Accrued_PTO = (Accrued_PTO + Carry_over_Amount) /* if the employee has
more than the carry over amount of leave days from the previous year, carry over the max
carry over amount */

Else
(

if (last_Accrued_PTO - last_Absence) <= 0 then


(

Total_Accrued_PTO = Accrued_PTO /* if the employee used more than the


allocated leave days in the previous year, carry over nothing */

Else

Total_Accrued_PTO = (Accrued_PTO + (last_Accrued_PTO - last_Absence)) /* if


the employee has some leave days less than the carry over amount from the previous year,
carry over the leave days not used up */

Else /* if the calculation date is after the first quarter of the year any unused carry over
is taken out*/

AbsenceFirstQuarter = GET_ABSENCE(Quarter_end_date,Effective_start_date) /* Leave


days in the first Quarter*/

Absence = GET_ABSENCE(calculation_date,Effective_start_date) /* Total Leave days up


to the current date*/

if (last_Accrued_PTO - last_Absence) >= Carry_over_Amount then


(

Temp_carry_over = Carry_over_Amount
)

Else

if (last_Accrued_PTO - last_Absence) < 0 then


(

Temp_carry_over = 0 /* if the employee used more than the allocated leave


days in the previous year, carry over nothing */

Else

Temp_carry_over = (last_Accrued_PTO - last_Absence) /* if the employee has


some leave days less than the carry over amount from the previous year, carry over the
leave days not used up */

IF (Accrued_PTO + Temp_carry_over) - AbsenceFirstQuarter <= Accrued_PTO then

Total_Accrued_PTO = (Accrued_PTO + Temp_carry_over)

Else

(
Total_Accrued_PTO = (Accrued_PTO + AbsenceFirstQuarter)

RETURN total_accrued_pto, effective_start_date,


Effective_end_date, accrual_end_date

4. LEAVE CARRYOVER

/* ------------------------------------------------------------------------
NAME : EBNG_LEAVE_CARRYOVER
This formula is the seeded carryover formula for our simple multiplier accrual plan
---------------------------------------------------------------------*/

DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS '4712/12/31 00:00:00' (date)


DEFAULT FOR ACP_SERVICE_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR EFFECTIVE_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR EFFECTIVE_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACCRUAL_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ASG_GRADE IS '0'

INPUTS ARE
Calculation_Date (date),
Accrual_term (text)
Effective_Date = to_date('3112' + to_char(Calculation_date, 'YYYY'), 'DDMMYYYY')

IF (Accrual_Term = 'CURRENT') AND (Effective_Date < Calculation_Date) THEN


(
Effective_date = ADD_YEARS(Effective_Date, 1)
)
ELSE IF (Accrual_term = 'PREVIOUS') AND (Effective_Date >= Calculation_Date) THEN
(
Effective_date = ADD_YEARS(Effective_Date, -1)
)

Expiry_Date = ADD_MONTHS(effective_date, 3)

Max_carryover = (to_number (get_table_value


('EBNG_LEAVE_ENTITLEMENT','ENTITLEMENT'
,ASG_GRADE,Calculation_Date)))
Process = 'YES'

RETURN Max_Carryover, Effective_date, Expiry_Date, Process

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy