diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index 6f61230be..3cd374f93 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -254,6 +254,18 @@ class OvertimeApprovals(models.Model): def put_hr_employee(self): for record in self: for employee_id in record.employee_ids: + + start_year = record.start_time.date().year + if record.company_id.name == "天河物管": + start_date = datetime(start_year, 3, 1).date() + valid_date = datetime(start_year + 1, 2, 1).date() + relativedelta(months=1) - relativedelta(days=1) + elif record.company_id.name == "天河粮储": + start_date = datetime(start_year, 7, 1).date() + valid_date = datetime(start_year + 1, 6, 30).date() + else: + start_date = datetime(start_year, 1, 1).date() + valid_date = False + meal_number = employee_id.meal_number if self.meal == 'yes': meal_number += 1 @@ -263,6 +275,8 @@ class OvertimeApprovals(models.Model): allocation = self.env['hr.leave.allocation'].create({ 'employee_id': employee_id.id, 'name': '补休', + 'date_from': start_date, + 'date_to': valid_date, 'number_of_days': self.duration / 8, 'holiday_status_id': holiday_status_id.id, 'allocation_type': 'regular', @@ -292,14 +306,6 @@ class OvertimeApprovals(models.Model): elif record.type_overtime == 'holiday': legal_day = record.duration - start_year = record.start_time.date().year - if record.company_id.name == "天河物管": - valid_date = datetime(start_year + 1, 2, 1).date() + relativedelta(months=1) - relativedelta(days=1) - elif record.company_id.name == "天河粮储": - valid_date = datetime(start_year + 1, 6, 30).date() - else: - valid_date = False - overtime_data = { 'vacation_id': reports_id.id, 'update_type': 'add',