Skip to content

Commit

Permalink
[ADD] hr_timesheet_overtime: timesheet_overtime field
Browse files Browse the repository at this point in the history
Mostly for UI purposes.

Signed-off-by: Carmen Bianca Bakker <carmen@coopiteasy.be>
  • Loading branch information
carmenbianca committed Jun 16, 2022
1 parent d3ab03e commit c70daa4
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
10 changes: 10 additions & 0 deletions hr_timesheet_overtime/models/hr_timesheet_sheet.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ class HrTimesheetSheet(models.Model):
compute="_compute_daily_overtime",
help="Overtime for the current day",
)
timesheet_overtime = fields.Float(
"Timesheet Overtime",
compute="_compute_timesheet_overtime",
help="Overtime for this timesheet period",
)
timesheet_overtime_trimmed = fields.Float(
"Trimmed Timesheet Overtime",
compute="_compute_timesheet_overtime_trimmed",
Expand Down Expand Up @@ -79,6 +84,11 @@ def _compute_daily_overtime(self):
worked_time = sheet.get_worked_time(current_day)
sheet.daily_overtime = worked_time - working_time

@api.multi
def _compute_timesheet_overtime(self):
for sheet in self:
sheet.timesheet_overtime = sheet.total_time - sheet.working_time

@api.multi
def _compute_timesheet_overtime_trimmed(self):
"""
Expand Down
14 changes: 14 additions & 0 deletions hr_timesheet_overtime/tests/test_overtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ def test_overtime_01(self):
"""

self.assertEqual(self.ts1.timesheet_overtime_trimmed, 1)
self.assertEqual(self.ts1.timesheet_overtime, 1)
self.assertEqual(self.ts1.total_overtime, 1)

def test_overtime_02(self):
Expand Down Expand Up @@ -139,8 +140,10 @@ def test_overtime_02(self):

# overtime for any timesheet takes overtime_start_date into account
self.assertEqual(self.ts1.timesheet_overtime_trimmed, 0)
self.assertEqual(self.ts1.timesheet_overtime, 1)
# it should start computing on tuesday
self.assertEqual(ts2.timesheet_overtime_trimmed, 1)
self.assertEqual(ts2.timesheet_overtime, 2)
self.assertEqual(ts2.total_overtime, 1)
# total_overtime is just a link to the employee's total overtime
self.assertEqual(self.ts1.total_overtime, 1)
Expand All @@ -152,6 +155,7 @@ def test_overtime_03(self):
self.employee1.write({"initial_overtime": 10})

self.assertEqual(self.ts1.timesheet_overtime_trimmed, 1)
self.assertEqual(self.ts1.timesheet_overtime, 1)
self.assertEqual(self.ts1.total_overtime, 11)

def test_overtime_04(self):
Expand Down Expand Up @@ -194,6 +198,7 @@ def test_overtime_04(self):
)

self.assertEqual(ts2.timesheet_overtime_trimmed, -8)
self.assertEqual(ts2.timesheet_overtime, -8)
self.assertEqual(ts2.total_overtime, -7)

def test_overtime_05(self):
Expand Down Expand Up @@ -268,6 +273,7 @@ def test_overtime_05(self):
)

self.assertEqual(self.ts2.timesheet_overtime_trimmed, 0)
self.assertEqual(self.ts2.timesheet_overtime, 0)
self.assertEqual(self.ts2.total_overtime, 1) # 1 hour overtime from ts1

def test_overtime_archived_timesheet(self):
Expand Down Expand Up @@ -298,29 +304,37 @@ def test_overtime_archived_timesheet(self):
)

self.assertEqual(self.ts1.timesheet_overtime_trimmed, 1)
self.assertEqual(self.ts1.timesheet_overtime, 1)
self.assertEqual(self.ts1.total_overtime, 6)
self.assertEqual(ts2.timesheet_overtime_trimmed, 5)
self.assertEqual(ts2.timesheet_overtime, 5)
self.assertEqual(ts2.total_overtime, 6)
self.assertEqual(self.employee1.total_overtime, 6)

self.ts1.write({"active": False})
# an inactive timesheet still has the same overtime
self.assertEqual(self.ts1.timesheet_overtime_trimmed, 1)
self.assertEqual(self.ts1.timesheet_overtime, 1)
self.assertEqual(self.ts1.total_overtime, 5)
self.assertEqual(ts2.timesheet_overtime_trimmed, 5)
self.assertEqual(ts2.timesheet_overtime, 5)
self.assertEqual(ts2.total_overtime, 5)
self.assertEqual(self.employee1.total_overtime, 5)

ts2.write({"active": False})
self.assertEqual(self.ts1.timesheet_overtime_trimmed, 1)
self.assertEqual(self.ts1.timesheet_overtime, 1)
self.assertEqual(self.ts1.total_overtime, 0)
self.assertEqual(ts2.timesheet_overtime_trimmed, 5)
self.assertEqual(ts2.timesheet_overtime, 5)
self.assertEqual(ts2.total_overtime, 0)
self.assertEqual(self.employee1.total_overtime, 0)

self.ts1.write({"active": True})
self.assertEqual(self.ts1.timesheet_overtime_trimmed, 1)
self.assertEqual(self.ts1.timesheet_overtime, 1)
self.assertEqual(self.ts1.total_overtime, 1)
self.assertEqual(ts2.timesheet_overtime_trimmed, 5)
self.assertEqual(ts2.timesheet_overtime, 5)
self.assertEqual(ts2.total_overtime, 1)
self.assertEqual(self.employee1.total_overtime, 1)

0 comments on commit c70daa4

Please sign in to comment.