I am trying to migrate my custom module from v9 to v10. Here is a part of code :
class hr_payslip(models.Model):
_inherit = 'hr.payslip'
seniority_rate = fields.Float(compute=lambda self, *args, **kwargs:
self._calculate_seniority_rate(*args, **kwargs),
type='float',
string='Seniority rate',
store=True),
def _calculate_seniority_rate(self, cr, uid, ids, field_name, args, context=None):
res = dict.fromkeys(ids, 0.0)
for slip_id in ids:
payslip = self.browse(cr, uid, slip_id, context=None)
employee = payslip.employee_id
# Yes, assuming all years have 365 days.
# Also assuming the seniority is calculated w.r.t. the start date for the payslip, not the end date.
years = (datetime.strptime(payslip.date_from, DEFAULT_SERVER_DATE_FORMAT) - \
datetime.strptime(employee.start_date, DEFAULT_SERVER_DATE_FORMAT)).days / 365
rate = 0.03 if years >= 3 else 0.02 if years >= 2 else 0.0
res.update({slip_id: rate})
return res
And I get this error :
Traceback (most recent call last): File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 640, in _handle_exception File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 677, in dispatch File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 333, in _call_function File "C:\Program Files (x86)\Odoo 10.0\server\odoo\service\model.py", line 101, in wrapper File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 326, in checked_call File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 935, in __call__ File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 506, in response_wrap File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\web\controllers\main.py", line 889, in call_button File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\web\controllers\main.py", line 877, in _call_kw File "C:\Program Files (x86)\Odoo 10.0\server\odoo\api.py", line 689, in call_kw File "C:\Program Files (x86)\Odoo 10.0\server\odoo\api.py", line 680, in call_kw_multi File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\module\module.py", line 411, in button_immediate_install File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\module\module.py", line 485, in _button_immediate_function File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\registry.py", line 82, in new File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 339, in load_modules File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 237, in load_marked_modules File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 136, in load_module_graph File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\registry.py", line 313, in init_models File "C:\Program Files (x86)\Odoo 10.0\server\odoo\models.py", line 2508, in _auto_init File "C:\Program Files (x86)\Odoo 10.0\server\odoo\models.py", line 2278, in _init_column TypeError: <lambda>() takes exactly 4 arguments (1 given)
Please i need a help.