[FIX] hr_payroll_attendance: duplicate attendances during initial form create

This commit is contained in:
Jared Kipe
2021-03-03 17:04:01 -08:00
parent a5c2acc427
commit b8b6ee9fb5
2 changed files with 7 additions and 2 deletions

View File

@@ -39,6 +39,7 @@ class HrPayslip(models.Model):
('employee_id', '=', self.employee_id.id), ('employee_id', '=', self.employee_id.id),
('check_out', '<=', self.date_to), ('check_out', '<=', self.date_to),
('payslip_id', '=', False), ('payslip_id', '=', False),
('id', 'not in', attendance_to_keep.ids),
]) ])
self.update({'attendance_ids': [(6, 0, attendance_to_keep.ids)]}) self.update({'attendance_ids': [(6, 0, attendance_to_keep.ids)]})
@@ -87,7 +88,7 @@ class HrPayslip(models.Model):
def _pre_aggregate_attendance_data(self, default_workentrytype): def _pre_aggregate_attendance_data(self, default_workentrytype):
worked_attn = defaultdict(list) worked_attn = defaultdict(list)
for attn in self.attendance_ids: for attn in self.attendance_ids.sorted('check_in'):
if attn.worked_hours: if attn.worked_hours:
# Avoid in/outs # Avoid in/outs
attn_iso = attn.check_in.isocalendar() attn_iso = attn.check_in.isocalendar()

View File

@@ -126,7 +126,11 @@ class TestUsPayslip(common.TransactionCase):
return categories return categories
def test_attendance_hourly(self): def test_attendance_hourly(self):
self.payslip._onchange_employee() payslip_form = common.Form(self.env['hr.payslip'])
payslip_form.date_from = '2020-01-06'
payslip_form.date_to = '2020-01-19'
payslip_form.employee_id = self.employee
self.payslip = payslip_form.save()
self.assertTrue(self.payslip.contract_id, 'No auto-discovered contract!') self.assertTrue(self.payslip.contract_id, 'No auto-discovered contract!')
self.payslip.compute_sheet() self.payslip.compute_sheet()
# 58.97 => 40hr regular, 18.97hr OT # 58.97 => 40hr regular, 18.97hr OT