[FIX] hr_payroll: Make some methods private

This commit is contained in:
Yannick Tivisse
2019-02-18 15:28:15 +00:00
parent 3af4e24721
commit 2a4b883b17
6 changed files with 22 additions and 22 deletions
+7 -7
View File
@@ -64,13 +64,13 @@ class HrBenefit(models.Model):
return super(HrBenefit, self).write(vals)
@api.multi
def check_if_error(self):
def _check_if_error(self):
if not self:
return False
undefined_type = self.filtered(lambda b: not b.benefit_type_id)
undefined_type.write({'display_warning': True})
conflict = self._compute_schedule_conflicts()
conflict_with_leaves = self.compute_conflicts_leaves_to_approve()
conflict_with_leaves = self._compute_conflicts_leaves_to_approve()
return undefined_type or conflict or conflict_with_leaves
@api.multi
@@ -94,7 +94,7 @@ class HrBenefit(models.Model):
return conflict
@api.multi
def compute_conflicts_leaves_to_approve(self):
def _compute_conflicts_leaves_to_approve(self):
if not self:
return False
@@ -120,7 +120,7 @@ class HrBenefit(models.Model):
})
return bool(conflicts)
def safe_duplicate_create(self, vals):
def _safe_duplicate_create(self, vals):
"""
Create benefit but silently abord if it already exists in the database (according to the _unique constraints).
@return: new record if it didn't exist, empty recordset otherwise.
@@ -147,7 +147,7 @@ class HrBenefit(models.Model):
'views': [[False, 'form']],
}
def split_by_day(self):
def _split_by_day(self):
"""
Split the benefit by days and unlink the original benefit.
@return recordset
@@ -202,7 +202,7 @@ class HrBenefit(models.Model):
leave_benefits = self.filtered(lambda b: b.benefit_type_id.is_leave)
for benefit in attendance_benefits:
benefit = benefit.split_by_day()
benefit = benefit._split_by_day()
benefit._duplicate_to_calendar_attendance()
leave_benefits._duplicate_to_calendar_leave()
@@ -253,7 +253,7 @@ class HrBenefit(models.Model):
def action_validate(self, ids):
benefits = self.env['hr.benefit'].search([('id', 'in', ids), ('state', '!=', 'validated')])
benefits.write({'display_warning': False})
if not benefits.check_if_error():
if not benefits._check_if_error():
benefits.write({'state': 'validated'})
benefits._duplicate_to_calendar()
return True
+3 -3
View File
@@ -38,7 +38,7 @@ class HrEmployee(models.Model):
global_leaves = employee.resource_calendar_id.global_leave_ids
for calendar_leave in emp_leaves | global_leaves:
hr_leave = calendar_leave.holiday_id
hr_leave.copy_to_benefits()
hr_leave._copy_to_benefits()
new_benefits = self.env['hr.benefit']
for contract in employee._get_contracts(date_start, date_stop):
@@ -52,7 +52,7 @@ class HrEmployee(models.Model):
# Attendances
for interval in attendances:
benefit_type_id = interval[2].mapped('benefit_type_id')[:1] or self.env.ref('hr_payroll.benefit_type_attendance')
new_benefits |= self.env['hr.benefit'].safe_duplicate_create({
new_benefits |= self.env['hr.benefit']._safe_duplicate_create({
'name': "%s: %s" % (benefit_type_id.name, employee.name),
'date_start': interval[0].astimezone(pytz.utc),
'date_stop': interval[1].astimezone(pytz.utc),
@@ -61,4 +61,4 @@ class HrEmployee(models.Model):
'state': 'confirmed',
})
new_benefits.compute_conflicts_leaves_to_approve()
new_benefits._compute_conflicts_leaves_to_approve()
+4 -4
View File
@@ -14,10 +14,10 @@ class HrLeave(models.Model):
_inherit = 'hr.leave'
@api.multi
def copy_to_benefits(self):
def _copy_to_benefits(self):
for leave in self:
benefit_type = leave.holiday_status_id.benefit_type_id
self.env['hr.benefit'].safe_duplicate_create({
self.env['hr.benefit']._safe_duplicate_create({
'name': "%s%s" % (benefit_type.name + ": " if benefit_type else "", leave.employee_id.name),
'date_start': leave.date_from,
'date_stop': leave.date_to,
@@ -32,7 +32,7 @@ class HrLeave(models.Model):
def _cancel_benefit_conflict(self):
benefits = self.env['hr.benefit'].search([('leave_id', 'in', self.ids)])
if benefits:
self.copy_to_benefits()
self._copy_to_benefits()
# create new benefits where the leave does not cover the full benefit
benefits_intervals = Intervals(intervals=[(b.date_start, b.date_stop, b) for b in benefits])
@@ -48,7 +48,7 @@ class HrLeave(models.Model):
benefit_start = interval[0] + relativedelta(seconds=1) if leave.date_to == interval[0] else interval[0]
benefit_stop = interval[1] - relativedelta(seconds=1) if leave.date_from == interval[1] else interval[1]
self.env['hr.benefit'].safe_duplicate_create({
self.env['hr.benefit']._safe_duplicate_create({
'name': "%s: %s" % (benefit_type.name, employee.name),
'date_start': benefit_start,
'date_stop': benefit_stop,
+1 -1
View File
@@ -162,7 +162,7 @@ class HrPayslip(models.Model):
benefit_types = self.env['hr.benefit.type'].search([('code', '!=', False)])
for benefit_type in benefit_types:
hours = contract.employee_id.get_benefit_days_data(benefit_type, day_from, day_to)['hours']
hours = contract.employee_id._get_benefit_days_data(benefit_type, day_from, day_to)['hours']
if hours:
line = {
'name': benefit_type.name,
+1 -1
View File
@@ -42,7 +42,7 @@ class ResourceCalendarLeave(models.Model):
class ResourceMixin(models.AbstractModel):
_inherit = "resource.mixin"
def get_benefit_days_data(self, benefit_type, from_datetime, to_datetime, calendar=None):
def _get_benefit_days_data(self, benefit_type, from_datetime, to_datetime, calendar=None):
"""
By default the resource calendar is used, but it can be
changed using the `calendar` argument.
+6 -6
View File
@@ -73,7 +73,7 @@ class TestBenefit(TestPayslipBase):
'date_stop': end,
})
benefits = benefit.split_by_day()
benefits = benefit._split_by_day()
self.assertEqual(len(benefits), 3, "Benefit should be split in three")
self.assertEqual(pytz.utc.localize(benefits[0].date_start), self.tz.localize(datetime.strptime('2015-11-01 09:00:00', '%Y-%m-%d %H:%M:%S')))
self.assertEqual(pytz.utc.localize(benefits[0].date_stop), self.tz.localize(datetime.strptime('2015-11-01 23:59:59', '%Y-%m-%d %H:%M:%S')))
@@ -94,7 +94,7 @@ class TestBenefit(TestPayslipBase):
'date_start': start,
'date_stop': end,
})
benefits = benefit.split_by_day()
benefits = benefit._split_by_day()
self.assertEqual(len(benefits), 3, "Benefit should be split in three")
self.assertEqual(pytz.utc.localize(benefits[0].date_start), self.tz.localize(datetime.strptime('2013-11-01 00:00:00', '%Y-%m-%d %H:%M:%S')))
self.assertEqual(pytz.utc.localize(benefits[0].date_stop), self.tz.localize(datetime.strptime('2013-11-01 23:59:59', '%Y-%m-%d %H:%M:%S')))
@@ -307,7 +307,7 @@ class TestBenefit(TestPayslipBase):
def test_time_normal_benefit(self):
# Normal attendances (global to all employees)
data = self.richard_emp.get_benefit_days_data(self.env.ref('hr_payroll.benefit_type_attendance'), self.start, self.end)
data = self.richard_emp._get_benefit_days_data(self.env.ref('hr_payroll.benefit_type_attendance'), self.start, self.end)
self.assertEqual(data['hours'], 168.0)
def test_time_extra_benefit(self):
@@ -321,7 +321,7 @@ class TestBenefit(TestPayslipBase):
'date_stop': end,
})
benef.action_validate(benef.ids)
data = self.richard_emp.get_benefit_days_data(self.benefit_type, self.start, self.end)
data = self.richard_emp._get_benefit_days_data(self.benefit_type, self.start, self.end)
self.assertEqual(data['hours'], 7.0)
def test_time_week_leave_benefit(self):
@@ -336,7 +336,7 @@ class TestBenefit(TestPayslipBase):
'date_stop': end,
})
leave_benef.action_validate(leave_benef.ids)
data = self.richard_emp.get_benefit_days_data(self.benefit_type_leave, self.start, self.end)
data = self.richard_emp._get_benefit_days_data(self.benefit_type_leave, self.start, self.end)
self.assertEqual(data['hours'], 5.0, "It should equal the number of hours richard should have worked")
def test_time_weekend_leave_benefit(self):
@@ -351,7 +351,7 @@ class TestBenefit(TestPayslipBase):
'date_stop': end,
})
leave_benef.action_validate(leave_benef.ids)
data = self.richard_emp.get_benefit_days_data(self.benefit_type_leave, self.start, self.end)
data = self.richard_emp._get_benefit_days_data(self.benefit_type_leave, self.start, self.end)
self.assertEqual(data['hours'], 0.0, "It should equal the number of hours richard should have worked")
def test_payslip_generation_with_leave(self):