diff --git a/timesheet_exception/demo/timesheet_exception_demo.xml b/timesheet_exception/demo/timesheet_exception_demo.xml index cce8b928..f8dd3ce9 100644 --- a/timesheet_exception/demo/timesheet_exception_demo.xml +++ b/timesheet_exception/demo/timesheet_exception_demo.xml @@ -6,7 +6,7 @@ Unit amount over 8 hrs 50 account.analytic.line - if self.unit_amount > 8: failed=True + failed = self._context.get("newVals", {}).get("validated", False) == True and self.unit_amount > 8 @@ -15,7 +15,7 @@ SO delivered qty plus unit amount exceeds ordered qty 50 account.analytic.line - if self.so_line.product_template_id.service_policy == 'ordered_timesheet' and self.so_line.qty_delivered + self.unit_amount > self.so_line.product_uom_qty: failed=True + failed = self._context.get("newVals", {}).get("validated", False) == True and (self.so_line.product_template_id.service_policy == 'ordered_timesheet' and self.so_line.qty_delivered + self.unit_amount > self.so_line.product_uom_qty) diff --git a/timesheet_exception/models/analytic.py b/timesheet_exception/models/analytic.py index fe7e226a..20be8b00 100644 --- a/timesheet_exception/models/analytic.py +++ b/timesheet_exception/models/analytic.py @@ -34,10 +34,10 @@ class AnalyticLine(models.Model): def _reverse_field(self): return 'timesheet_ids' - def write(self, vals): + def write(self, vals): if not vals.get('ignore_exception'): - for timesheet in self: - if timesheet.detect_exceptions() and 'stage_id' in vals: + for timesheet in self: + if timesheet.with_context(newVals=vals).detect_exceptions(): return self._popup_exceptions() return super().write(vals)