Add multi-company support to hr_payroll_rate

This commit is contained in:
Jared Kipe
2019-01-06 13:35:32 -08:00
parent 509eba1c7a
commit 2c70fcfd60
2 changed files with 33 additions and 5 deletions

View File

@@ -18,10 +18,15 @@ class PayrollRate(models.Model):
class Payslip(models.Model):
_inherit = 'hr.payslip'
def get_rate(self, code):
self.ensure_one()
return self.env['hr.payroll.rate'].search([
def _get_rate_domain(self, code):
return [
'|', ('date_to', '=', False), ('date_to', '>=', self.date_to),
'|', ('company_id', '=', False), ('company_id', '=', self.company_id.id),
('code', '=', code),
('date_from', '<=', self.date_from),
], limit=1)
]
def get_rate(self, code):
self.ensure_one()
return self.env['hr.payroll.rate'].search(
self._get_rate_domain(code), limit=1)

View File

@@ -27,8 +27,31 @@ class TestPayrollRate(common.TransactionCase):
self.payslip = self.env['hr.payslip'].create({
'employee_id': self.employee.id,
})
self.company_other = self.env['res.company'].create({
'name': 'Other'
})
def test_payslip_timesheet(self):
def test_payroll_rate_basic(self):
rate = self.payslip.get_rate('TEST')
self.assertFalse(rate)
test_rate = self.env['hr.payroll.rate'].create({
'name': 'Test Rate',
'code': 'TEST',
'rate': 1.65,
'date_from': '2018-01-01',
})
rate = self.payslip.get_rate('TEST')
self.assertEqual(rate, test_rate)
def test_payroll_rate_multicompany(self):
test_rate_other = self.env['hr.payroll.rate'].create({
'name': 'Test Rate',
'code': 'TEST',
'rate': 1.65,
'date_from': '2018-01-01',
'company_id': self.company_other.id,
})
rate = self.payslip.get_rate('TEST')
self.assertFalse(rate)
test_rate = self.env['hr.payroll.rate'].create({