forked from Mapan/odoo17e
26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models
|
|
|
|
|
|
class ResourceCalendar(models.Model):
|
|
_inherit = "resource.calendar"
|
|
|
|
def _work_intervals_batch(self, start_dt, end_dt, resources=None, domain=None, tz=None, compute_leaves=True):
|
|
work_intervals = super()._work_intervals_batch(start_dt, end_dt, resources=resources, domain=domain, tz=tz, compute_leaves=compute_leaves)
|
|
if self.sudo().company_id.country_id.code != 'HK' or not compute_leaves:
|
|
return work_intervals
|
|
|
|
if not resources:
|
|
resources = self.env['resource.resource']
|
|
resources_list = [resources]
|
|
else:
|
|
resources_list = list(resources) + [self.env['resource.resource']]
|
|
|
|
leave_attendance_intervals = self.sudo()._attendance_intervals_batch(
|
|
start_dt, end_dt, resources=resources, domain=[('work_entry_type_id.is_leave', '=', True)], tz=tz)
|
|
return {
|
|
r.id: (work_intervals[r.id] - leave_attendance_intervals[r.id]) for r in resources_list
|
|
}
|