diff --git a/hr_payroll_rate/__manifest__.py b/hr_payroll_rate/__manifest__.py index 3fa63491..212b2030 100755 --- a/hr_payroll_rate/__manifest__.py +++ b/hr_payroll_rate/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Payroll Rates', 'description': 'Payroll Rates', - 'version': '11.0.1.0.0', + 'version': '11.0.1.0.1', 'website': 'https://hibou.io/', 'author': 'Hibou Corp. ', 'license': 'AGPL-3', diff --git a/hr_payroll_rate/models/payroll.py b/hr_payroll_rate/models/payroll.py index e6589efd..fecd6dcc 100644 --- a/hr_payroll_rate/models/payroll.py +++ b/hr_payroll_rate/models/payroll.py @@ -10,7 +10,7 @@ class PayrollRate(models.Model): date_from = fields.Date(string='Date From', required=True) date_to = fields.Date(string='Date To') company_id = fields.Many2one('res.company', string='Company', copy=False, - default=lambda self: self.env['res.company']._company_default_get()) + default=False) rate = fields.Float(string='Rate', required=True) code = fields.Char(string='Code', required=True) @@ -34,4 +34,4 @@ class Payslip(models.Model): def get_rate(self, code): self.ensure_one() return self.env['hr.payroll.rate'].search( - self._get_rate_domain(code), limit=1) + self._get_rate_domain(code), limit=1, order='date_from DESC, company_id ASC') diff --git a/hr_payroll_rate/tests/test_payroll_rate.py b/hr_payroll_rate/tests/test_payroll_rate.py index a0a7aa9c..2cf9ff2c 100644 --- a/hr_payroll_rate/tests/test_payroll_rate.py +++ b/hr_payroll_rate/tests/test_payroll_rate.py @@ -63,3 +63,30 @@ class TestPayrollRate(common.TransactionCase): rate = self.payslip.get_rate('TEST') self.assertEqual(rate, test_rate) + + test_rate_more_specific = self.env['hr.payroll.rate'].create({ + 'name': 'Test Rate Specific', + 'code': 'TEST', + 'rate': 1.65, + 'date_from': '2018-01-01', + 'company_id': self.payslip.company_id.id, + }) + rate = self.payslip.get_rate('TEST') + self.assertEqual(rate, test_rate_more_specific) + + def test_payroll_rate_newer(self): + test_rate_old = self.env['hr.payroll.rate'].create({ + 'name': 'Test Rate', + 'code': 'TEST', + 'rate': 1.65, + 'date_from': '2018-01-01', + }) + test_rate = self.env['hr.payroll.rate'].create({ + 'name': 'Test Rate', + 'code': 'TEST', + 'rate': 2.65, + 'date_from': '2019-01-01', + }) + + rate = self.payslip.get_rate('TEST') + self.assertEqual(rate, test_rate)