From 11a04b2bcada9e5073aaf2a2caf27f76ba73ee88 Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Wed, 8 Mar 2023 14:42:52 +0100
Subject: [PATCH] [fix] constraint only on timesheet analytic line

---
 models/hr_timesheet.py | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/models/hr_timesheet.py b/models/hr_timesheet.py
index 8feb341..e2c50ae 100644
--- a/models/hr_timesheet.py
+++ b/models/hr_timesheet.py
@@ -157,27 +157,28 @@ class ScopHrTimesheet(models.Model):
     @api.constrains("unit_amount", "date")
     def _check_hours(self):
         for record in self:
-            lines = self.search(
-                [
-                    ("date", "=", record.date),
-                    ("employee_id", "=", record.employee_id.id),
-                ]
-            )
-            total = sum(lines.mapped("unit_amount"))
-            if (
-                not self.env.company.day_working
-                and total > self.env.company.day_duration
-            ):
-                raise ValidationError(
-                    _(
-                        "Vous ne pouvez imputer plus de %sh sur la même journée.\n"
-                        "Journée du %s"
-                    )
-                    % (
-                        self.env.company.day_duration,
-                        record.date.strftime("%d/%m/%Y"),
-                    )
+            if record.project_id:
+                lines = self.search(
+                    [
+                        ("date", "=", record.date),
+                        ("employee_id", "=", record.employee_id.id),
+                    ]
                 )
+                total = sum(lines.mapped("unit_amount"))
+                if (
+                    not self.env.company.day_working
+                    and total > self.env.company.day_duration
+                ):
+                    raise ValidationError(
+                        _(
+                            "Vous ne pouvez imputer plus de %sh sur la même journée.\n"
+                            "Journée du %s"
+                        )
+                        % (
+                            self.env.company.day_duration,
+                            record.date.strftime("%d/%m/%Y"),
+                        )
+                    )
 
     @api.constrains("date")
     def _check_weekday(self):
-- 
GitLab