diff --git a/verdigado_attendance/__manifest__.py b/verdigado_attendance/__manifest__.py
index 71047e6..f210776 100644
--- a/verdigado_attendance/__manifest__.py
+++ b/verdigado_attendance/__manifest__.py
@@ -17,6 +17,7 @@
"hr_attendance_autoclose",
"hr_attendance_break",
"hr_attendance_break_autoclose",
+ "hr_attendance_missing_days",
"hr_holidays_attendance",
"l10n_de_holidays",
"hr_holidays_public_overtime",
@@ -25,6 +26,8 @@
"data": [
"data/base_ical.xml",
"data/hr_leave_type.xml",
+ "data/ir_cron.xml",
+ "data/res_company.xml",
"data/res.lang.csv",
"security/verdigado_attendance.xml",
"security/ir.model.access.csv",
diff --git a/verdigado_attendance/data/ir_cron.xml b/verdigado_attendance/data/ir_cron.xml
new file mode 100644
index 0000000..ecc6c77
--- /dev/null
+++ b/verdigado_attendance/data/ir_cron.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/verdigado_attendance/data/res_company.xml b/verdigado_attendance/data/res_company.xml
new file mode 100644
index 0000000..61f1bfb
--- /dev/null
+++ b/verdigado_attendance/data/res_company.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/verdigado_attendance/migrations/15.0.1.0.1/post-fix-hr_attendance_missing_days-config.py b/verdigado_attendance/migrations/15.0.1.0.1/post-fix-hr_attendance_missing_days-config.py
new file mode 100644
index 0000000..a6d6067
--- /dev/null
+++ b/verdigado_attendance/migrations/15.0.1.0.1/post-fix-hr_attendance_missing_days-config.py
@@ -0,0 +1,18 @@
+from openupgradelib import openupgrade
+
+
+@openupgrade.migrate()
+def migrate(env, version=None):
+ """Force load hr_attendance_missing_days' configuration"""
+ openupgrade.load_data(
+ env.cr,
+ "verdigado_attendance",
+ "data/ir_cron.xml",
+ )
+ openupgrade.load_data(
+ env.cr,
+ "verdigado_attendance",
+ "data/res_company.xml",
+ )
+ # and recreate possibly missing overtime
+ env["hr.attendance"].search([])._update_overtime()
diff --git a/verdigado_attendance/models/hr_attendance.py b/verdigado_attendance/models/hr_attendance.py
index 3b6c28b..3c391ac 100644
--- a/verdigado_attendance/models/hr_attendance.py
+++ b/verdigado_attendance/models/hr_attendance.py
@@ -10,3 +10,28 @@ class HrAttendance(models.Model):
check_in = DatetimeWithoutSeconds()
check_out = DatetimeWithoutSeconds()
+
+ def _update_overtime(self, employee_attendance_dates=None):
+ """Recreate missing overtime records"""
+ result = super()._update_overtime(
+ employee_attendance_dates=employee_attendance_dates
+ )
+ if employee_attendance_dates is None:
+ employee_attendance_dates = self._get_attendances_dates()
+ missing_vals = []
+ for employee, attendance_dates in employee_attendance_dates.items():
+ dates = [attendance_date for _dummy, attendance_date in attendance_dates]
+ existing_overtime = self.env["hr.attendance.overtime"].search(
+ [
+ ("employee_id", "=", employee.id),
+ ("company_id", "=", self.env.company.id),
+ ("date", "in", dates),
+ ]
+ )
+ missing_vals += [
+ {"employee_id": employee.id, "date": attendance_date}
+ for attendance_date in set(dates)
+ - set(existing_overtime.mapped("date"))
+ ]
+ self.env["hr.attendance.overtime"].create(missing_vals)
+ return result