I have installed the following module:
https://apps.odoo.com/apps/modules/12.0/l10n_ch_payroll/
When I try to create a new payslip, the following error happens (unfortunately, I did not get any feedback from the author yet):
Here is the code
class HrPayslip(models.Model):
_inherit = 'hr.payslip'
is_correction_final_payslip = fields.Boolean(string="Bulletin final de correction")
other_year_payslip_ids = fields.Many2many('hr.payslip', string="Autres salaires de l'années", compute="_get_other_payslips")
@api.multi
def _get_other_payslips(self):
for payslip in self:
current_year = fields.Date.from_string(payslip.date_from).year
date_from = "%s-01-01" % current_year
date_to = "%s-12-31" % current_year
other_payslips = self.search([
('employee_id', '=', payslip.employee_id.id),
('id', '!=', payslip.id),
('date_from', '>=', date_from),
('date_to', '<=', date_to)
])
payslip.other_year_payslip_ids = other_payslips
Here the field definition payslip.date_from:
date_from = fields.Date(string='Date From', readonly=True, required=True,default=lambda self:fields.Date.to_string(date.today().replace(day=1)), states={'draft': [('readonly', False)]})
|
And this is the traceback: Odoo Server ErrorTraceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/api.py", line 1049, in get value = self._data[key][field][record._ids[0]] KeyError: <odoo.models.NewId object at 0x7f1b49640ca8> During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1005, in __get__ value = record.env.cache.get(record, self) File "/usr/lib/python3/dist-packages/odoo/api.py", line 1051, in get raise CacheMiss(record, field) odoo.exceptions.CacheMiss: ('hr.payslip(<odoo.models.NewId object at 0x7f1b49640ca8>,).other_year_payslip_ids', None) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/http.py", line 656, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python3/dist-packages/odoo/http.py", line 314, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise raise value File "/usr/lib/python3/dist-packages/odoo/http.py", line 698, in dispatch result = self._call_function(**self.params) File "/usr/lib/python3/dist-packages/odoo/http.py", line 346, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in checked_call result = self.endpoint(*a, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 941, in __call__ return self.method(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 519, in response_wrap response = f(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 962, in call_kw return self._call_kw(model, method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 954, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 759, in call_kw return _call_kw_multi(method, model, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 746, in _call_kw_multi result = method(recs, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/models.py", line 5492, in onchange record = self.new(values) File "/usr/lib/python3/dist-packages/odoo/models.py", line 4954, in new record._cache.update(record._convert_to_cache(values, update=True)) File "/usr/lib/python3/dist-packages/odoo/models.py", line 4824, in _convert_to_cache for name, value in values.items() File "/usr/lib/python3/dist-packages/odoo/models.py", line 4825, in <dictcomp> if name in fields File "/usr/lib/python3/dist-packages/odoo/fields.py", line 2278, in convert_to_cache ids = OrderedSet(record[self.name]._ids) File "/usr/lib/python3/dist-packages/odoo/models.py", line 5134, in __getitem__ return self._fields[key].__get__(self, type(self)) File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1011, in __get__ self.determine_draft_value(record) File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1133, in determine_draft_value self._compute_value(record) File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1067, in _compute_value getattr(records, self.compute)() File "/usr/lib/python3/dist-packages/odoo/custom/addons/l10n_ch_payroll/models/hr_payslip.py", line 24, in _get_other_payslips current_year = fields.Date.from_string(payslip.date_from).year AttributeError: 'NoneType' object has no attribute 'year' |
Any help is appreciated, thanks
1- check payslip.date_from Value then
2- check fields.Date.from_string(payslip.date_from) Value
what do these 2 points return ?
@Ibrahim
Thanks for your feedback. I'm not a developer and have no developing environment, so I do not know how to get this information. But I have amended my question and have added the module, which produces the error when trying to create a new payslip.