diff --git a/yuthon_hr_attendance/models/go_approval.py b/yuthon_hr_attendance/models/go_approval.py index cb968a813..97b840640 100644 --- a/yuthon_hr_attendance/models/go_approval.py +++ b/yuthon_hr_attendance/models/go_approval.py @@ -184,23 +184,34 @@ class GoApprovals(models.Model): ]) if not reports_id: return + workflow_record_id = self.env['soong.workflow.record'].search([ ('code', '=', self.code) ]) + + update_lines_value = 1 + if self.is_day: + if self.start_date and self.end_date: + delta = (self.end_date - self.start_date).days + 1 + update_lines_value = max(delta, 1) + else: + update_lines_value = 1 + existing_meal_fee = self.env['vacation.meal.line'].search([ ('vacation_id', '=', reports_id.id), ('workflow_record_id', '=', workflow_record_id.id if workflow_record_id else False), ('update_type', '=', 'add'), ('text', '=', '审批'), - ('update_lines', '=', 1) + ('update_lines', '=', update_lines_value) ]) + if not existing_meal_fee: meal_fee_value = (0, 0, { 'vacation_id': reports_id.id, 'update_type': 'add', 'workflow_record_id': workflow_record_id.id if workflow_record_id else False, 'update_date': fields.Datetime.now(), - 'update_lines': 1, + 'update_lines': update_lines_value, 'text': '审批' }) reports_id.write({'meal_fee_ids': [meal_fee_value]})