[FIX] hr_payroll: Make some methods private
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user