Hello Readers,
The following scenario is common requirement among most clients especially in the APJ region and I've been asked on how to achieve it. The solution is simple but still this blog ?.
Scenario:
When an employee in on Leave of Absence or has taken any unpaid leave the accrual for the period is to be stopped. Some leaves e.g. Career Break will have LOA start & end representation in Job Info (Status – Unpaid) but some unpaid leave are simply leaves with no status.
Additional if an employee takes any back dated unpaid leaves the accrual for that day (in case daily accrual scenario) must be reversed. Please note this also can be applicable for other accrual frequencies also.
For demo purposes, I will use Australian setup.
How to set up?
Pre-requisite:
1. Manage Date -> Time Management Configuration
Make sure TIME_CONFIGURATION is created with following options:
- Enable Recalculation as Yes
- Schedule Immediate Recalculation as Always
- For others choose appropriate options/values
Note: if only this
Enable Recalculation field is
Yes, can you create
Accrual Recalculation Relevance to
Yes in the Time Type configuration (step 2).
2. Time Type set up with
Accrual Recalculation Relevance as
Yes in
Manage Date -> Time Type
Note: This is the Time Type for which the accrual scenario (e.g. Annual Leave) Time Account Type is attached to.
3.Time Type set-up with LOA and Return from LOA Event Reasons
Please note that this option is only for Time Type which requires a LOA & Return from LOA and for other unpaid leaves the accrual stoppage is achieved via Accrual Rule of Time Account Type.
This Time Type is
not necessarily attached with accrual (e.g Annual Leave) Time Account Type but may be Time Type which would require the accrual to stop.
E.g. When an EE is on career break or unpaid maternity leave, the accrual might stop. This time time may not be attached to any accrual but when applied it needs to update Job Info with status "Unpaid".
4. Manage Date -> Time Off Configuration
This setup will stop accrual for Time Type which has LOA/RLOA event reason with status “U”- Unpaid Leave (only). Comes on with step 3 configuration.
There is no need for any rule to be written. However for other unpaid leaves refer to step 5 onwards.
5. Time Account Type – Accrual Rule
Option 1: If there is no parameter other just a daily accrual rate, this sample rule will accrue only if there are no Absence hours for “Unpaid Leave” for that day. IF Absence Hours >0, the rule will skip the Accrual and hence there will be no posting for that Absence hour/day.
Option 2: If the accrual is based on the Average Weekly Working Hours from Job Info/work schedule assigned to the employee.
E.g. If EE works 37.5 hours per week, the number of hours should be paid at 0.86732 per hour.
Create a rule variable that will sum up all the absence of the day.
Write the appropriate IF condition
In the THEN, set
Accrual Rule Variable (pick any field which can store in decimals) and get the balance of Average Weekly Working Hours minus Absence Hours. Use the balance and factor it with daily accrual rate to create the Accrual for the day.
Note there are a lot of complexities that can be considered while using Weekly Avg Hours, but this blog is only to give a high-level idea. Every consultant has to figure out how to extrapolate this to their customer’s scenarios.
Option 3: The same can work also with
Average Daily Working Hours from Job Info, just that the balance set should refer to that field in Job Info.
6. Accrual is generated by the Trigger Task job run in provisioning for daily accrual scenario, for others it would be generated when the Time-Off Calendar is run.
Existing daily accrual (refer to 16th as that is the example for this demo)
Created an Unpaid Absence on 16th for 7.5 hours
Voila !!! Without the need to run a calendar or Trigger Task or TMRE manually, the accrual reverses and recalculated into new Accrual amount
immediately.
E.g. below the original amount of 0.31 is based on 37.5hrs which is reversed and new accrual of 0.25hrs is created based on 30hrs.
Happy reading
🙂