Skip to Content
Menu
This question has been flagged

Hello,

How are the leaves calculated for a new employee joining after the allocation of the leaves in the system?

To be more clear,

Let us say I am completing all the leave allocations by the beginning of January (including Accrual leaves). An employee joins in the month of February. Then how are the leaves calculated for this employee?

Will the system calculate it automatically based on the pervious created allocations?

Do we need to allocate the leaves again in the system?

Avatar
Discard
Author Best Answer

The system was not automatically adding new employees created after the accrual allocations. So we created an automation rule (execute code) to add and allocate employees to the accrual system.

employee = record

employee_name = employee.name


current_year = datetime.date.today().year


leave_type = env['hr.leave.type'].browse(8) #8 is the id of the Leave or the Time Off Type

allocation_obj = env['hr.leave.allocation']

accrual_plan = env['hr.leave.accrual.plan'].browse(4) #4 is the id of the Accrual type created in the system


if leave_type:

    existing_allocation = allocation_obj.search([

        ('employee_id', '=', employee.id),

        ('holiday_status_id', '=', leave_type.id),

        ('state', '=', 'validate'),

        ('date_to', '=', f'{current_year}-12-31'),

    ], limit=1)

    if not existing_allocation:

        allocation_obj.create({

            'name': f'Emergency Leave Allocation for {employee_name} - {current_year}',

            'employee_id': employee.id,

            'holiday_status_id': leave_type.id,

            'allocation_type': 'accrual',

            'accrual_plan_id': accrual_plan.id,

            'number_of_days': 0,

            'date_from':datetime.date.today(),

        })


In this way, the new employees will be added and they will have the leaves created automatically based on the accrual configuration.

Avatar
Discard
Related Posts Replies Views Activity
2
Jul 23
6928
1
Jan 23
2155
1
Mar 15
4100
3
Feb 19
3901
0
Jun 16
3903