[IMP]hr_employee_stats_sheet:conciderate only valided and active leaves

This commit is contained in:
2026-03-24 09:57:16 +01:00
parent 7803d476d9
commit b65b6431b6
3 changed files with 11 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "hr_employee_stats_sheet",
"version": "16.0.3.1.3",
"version": "16.0.3.2.0",
"description": "Add global sheet for employee stats",
"summary": "Add global sheet for employee stats",
"author": "Nicolas JEUDY",

View File

@@ -143,6 +143,8 @@ class HrEmployeeStats(models.Model):
("holiday_status_id", "!=", self._get_holiday_status_id()),
("request_date_from", "<=", self.date),
("request_date_to", ">=", self.date),
("state", '=', 'validate'),
("active", '=', True),
],
)
if leave_ids:

View File

@@ -41,6 +41,13 @@ class TestHrEmployeeStatsRecovery(TransactionCase):
self.employee.resource_calendar_id = self.base_calendar
self.env.company.recovery_type_id = self.recovery_type
self.env.company.coef = 25
analytic_plan = self.env['account.analytic.plan'].create({
'name': 'Test Plan',
})
self.analytic_account = self.env['account.analytic.account'].create({
'name': 'Test Analytic Account',
'plan_id': analytic_plan.id,
})
def _create_timesheet_sheet(self, start_date):
# Create a timesheet for the week (Monday to Sunday)
@@ -57,7 +64,7 @@ class TestHrEmployeeStatsRecovery(TransactionCase):
'employee_id': self.employee.id,
'date': start_date + timedelta(days=i),
'unit_amount': unit_amount,
'account_id': 1,
'account_id': self.analytic_account.id,
'name': 'Work Entry',
})
# Generate hr.employee.stats for each day of the period
@@ -259,7 +266,6 @@ class TestHrEmployeeStatsRecovery(TransactionCase):
for stat in stats:
stat._compute_dayofweek()
stat._compute_hours()
print("stat :", stat.date, stat.total_hours, stat.total_planned_hours, stat.gap_hours)
timesheet_sheet.action_generate_recovery_allocation()
self.assertEqual(timesheet_sheet.timesheet_sheet_gap_hours, 0, "timesheet_sheet_gap_hours should be 0",)
self.assertEqual(timesheet_sheet.timesheet_sheet_recovery_hours, 0, "timesheet_sheet_recovery_hours should be 0",)
@@ -320,7 +326,6 @@ class TestHrEmployeeStatsRecovery(TransactionCase):
for stat in stats:
stat._compute_dayofweek()
stat._compute_hours()
print("stat :", stat.date, stat.total_hours, stat.total_planned_hours, stat.gap_hours)
timesheet_sheet_1.action_generate_recovery_allocation()
self.assertEqual(timesheet_sheet_1.timesheet_sheet_gap_hours, 5, "timesheet_sheet_gap_hours should be 0",)
self.assertEqual(timesheet_sheet_1.timesheet_sheet_recovery_hours, 6.25, "timesheet_sheet_recovery_hours should be 6,25",)