mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
Add multi-company support to hr_payroll_rate
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user