From 3e4dcbb86821a4ad8d987c98c4cad03d383141e4 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 7 Jan 2019 08:39:25 -0800 Subject: [PATCH] FIX `hr_payroll_rate` sort by 'date_from' to pick newest rate. --- hr_payroll_rate/models/payroll.py | 2 +- hr_payroll_rate/tests/test_payroll_rate.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/hr_payroll_rate/models/payroll.py b/hr_payroll_rate/models/payroll.py index e6589efd..8f8c4a09 100644 --- a/hr_payroll_rate/models/payroll.py +++ b/hr_payroll_rate/models/payroll.py @@ -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') diff --git a/hr_payroll_rate/tests/test_payroll_rate.py b/hr_payroll_rate/tests/test_payroll_rate.py index a0a7aa9c..26097426 100644 --- a/hr_payroll_rate/tests/test_payroll_rate.py +++ b/hr_payroll_rate/tests/test_payroll_rate.py @@ -63,3 +63,20 @@ class TestPayrollRate(common.TransactionCase): rate = self.payslip.get_rate('TEST') self.assertEqual(rate, test_rate) + + 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)