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):
|
class Payslip(models.Model):
|
||||||
_inherit = 'hr.payslip'
|
_inherit = 'hr.payslip'
|
||||||
|
|
||||||
def get_rate(self, code):
|
def _get_rate_domain(self, code):
|
||||||
self.ensure_one()
|
return [
|
||||||
return self.env['hr.payroll.rate'].search([
|
|
||||||
'|', ('date_to', '=', False), ('date_to', '>=', self.date_to),
|
'|', ('date_to', '=', False), ('date_to', '>=', self.date_to),
|
||||||
|
'|', ('company_id', '=', False), ('company_id', '=', self.company_id.id),
|
||||||
('code', '=', code),
|
('code', '=', code),
|
||||||
('date_from', '<=', self.date_from),
|
('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({
|
self.payslip = self.env['hr.payslip'].create({
|
||||||
'employee_id': self.employee.id,
|
'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')
|
rate = self.payslip.get_rate('TEST')
|
||||||
self.assertFalse(rate)
|
self.assertFalse(rate)
|
||||||
test_rate = self.env['hr.payroll.rate'].create({
|
test_rate = self.env['hr.payroll.rate'].create({
|
||||||
|
|||||||
Reference in New Issue
Block a user