From 351a107a65094b413da6fdc034274a2fee076eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Taymans?= Date: Tue, 21 May 2019 14:46:58 +0200 Subject: [PATCH] [FIX] b_shift: Too late shift validation This commit brings fix a bug that occur when a worker do a shift before her future_alert_date and the shift was marked as attended after the future_alert_date. In such a case, the worker fell in alert state and get a -2. This don't fix the fact that the worker fall in alert. But brings correction when the shift is finally marked as attended. --- beesdoo_shift/__openerp__.py | 2 +- beesdoo_shift/models/task.py | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/beesdoo_shift/__openerp__.py b/beesdoo_shift/__openerp__.py index 7ff8d95..baa4ec3 100644 --- a/beesdoo_shift/__openerp__.py +++ b/beesdoo_shift/__openerp__.py @@ -13,7 +13,7 @@ 'website': "https://github.com/beescoop/Obeesdoo", 'category': 'Cooperative management', - 'version': '0.1', + 'version': '9.0.1.0.1', 'depends': ['beesdoo_base'], diff --git a/beesdoo_shift/models/task.py b/beesdoo_shift/models/task.py index 5ce5175..097cadd 100644 --- a/beesdoo_shift/models/task.py +++ b/beesdoo_shift/models/task.py @@ -203,8 +203,16 @@ class Task(models.Model): elif self.worker_id.working_mode == 'irregular': status = self.worker_id.cooperative_status_ids[0] + alert_start_time = fields.Date.from_string( + self.worker_id.cooperative_status_ids[0].alert_start_time + ) + start_time = fields.Date.from_string(self.start_time) + sr = self.worker_id.cooperative_status_ids[0].sr if new_stage == DONE or new_stage == NECESSITY: - data['sr'] = 1 + if start_time <= alert_start_time and sr >= -2: + data['sr'] = 2 + else: + data['sr'] = 1 data['irregular_absence_date'] = False data['irregular_absence_counter'] = 1 if status.irregular_absence_counter < 0 else 0 if new_stage == ABSENT or new_stage == EXCUSED: