Skip to content

Commit

Permalink
Merge branch '15.0-65-missing-overtime-record' of https://github.com/…
Browse files Browse the repository at this point in the history
…hbrunn/odoo-customize into hbrunn-15.0-65-missing-overtime-record
  • Loading branch information
albig committed Nov 28, 2023
2 parents a9ba1d3 + 699eee9 commit e538147
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 0 deletions.
3 changes: 3 additions & 0 deletions verdigado_attendance/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand Down
5 changes: 5 additions & 0 deletions verdigado_attendance/data/ir_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<odoo>
<record id="hr_attendance_missing_days.missing_attendance_cron" model="ir.cron">
<field name="active" eval="True" />
</record>
</odoo>
9 changes: 9 additions & 0 deletions verdigado_attendance/data/res_company.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="res.company" id="base.main_company">
<field
name="attendance_missing_days_reason"
ref="hr_attendance_missing_days.attendance_reason_missing_days"
/>
</record>
</odoo>
Original file line number Diff line number Diff line change
@@ -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()
25 changes: 25 additions & 0 deletions verdigado_attendance/models/hr_attendance.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit e538147

Please sign in to comment.