diff --git a/addons/mrp/models/mrp_workcenter.py b/addons/mrp/models/mrp_workcenter.py index f180e79b2f3..75f3e2c5fcf 100644 --- a/addons/mrp/models/mrp_workcenter.py +++ b/addons/mrp/models/mrp_workcenter.py @@ -412,7 +412,7 @@ class MrpWorkcenterProductivity(models.Model): def _compute_duration(self): for blocktime in self: if blocktime.date_start and blocktime.date_end: - blocktime.duration = blocktime.loss_id._convert_to_duration(blocktime.date_start, blocktime.date_end, blocktime.workcenter_id) + blocktime.duration = blocktime.loss_id._convert_to_duration(blocktime.date_start.replace(microsecond=0), blocktime.date_end.replace(microsecond=0), blocktime.workcenter_id) else: blocktime.duration = 0.0 @@ -460,7 +460,7 @@ class MrpWorkcenterProductivity(models.Model): underperformance_timers = self.env['mrp.workcenter.productivity'] for timer in self: wo = timer.workorder_id - timer.write({'date_end': datetime.now()}) + timer.write({'date_end': fields.Datetime.now()}) if wo.duration > wo.duration_expected: productive_date_end = timer.date_end - relativedelta.relativedelta(minutes=wo.duration - wo.duration_expected) if productive_date_end <= timer.date_start: diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py index 52b7661b19d..6ed4b61dbc8 100644 --- a/addons/mrp/models/mrp_workorder.py +++ b/addons/mrp/models/mrp_workorder.py @@ -636,7 +636,7 @@ class MrpWorkorder(models.Model): return self.with_context(bypass_duration_calculation=True).write(vals) def button_finish(self): - date_finished = datetime.now() + date_finished = fields.Datetime.now() for workorder in self: if workorder.state in ('done', 'cancel'): continue @@ -813,8 +813,8 @@ class MrpWorkorder(models.Model): 'workcenter_id': self.workcenter_id.id, 'description': _('Time Tracking: %(user)s', user=self.env.user.name), 'loss_id': loss_id[0].id, - 'date_start': date_start, - 'date_end': date_end, + 'date_start': date_start.replace(microsecond=0), + 'date_end': date_end.replace(microsecond=0) if date_end else date_end, 'user_id': self.env.user.id, # FIXME sle: can be inconsistent with company_id 'company_id': self.company_id.id, } diff --git a/addons/mrp/static/src/widgets/timer.js b/addons/mrp/static/src/widgets/timer.js index c56689bef6a..d878ed4a49d 100644 --- a/addons/mrp/static/src/widgets/timer.js +++ b/addons/mrp/static/src/widgets/timer.js @@ -17,7 +17,7 @@ function formatMinutes(value) { value = Math.abs(value); } let min = Math.floor(value); - let sec = Math.floor((value % 1) * 60); + let sec = Math.round((value % 1) * 60); sec = `${sec}`.padStart(2, "0"); min = `${min}`.padStart(2, "0"); return `${isNegative ? "-" : ""}${min}:${sec}`;