Sales Return Error for Serialized Item

Hi,

I got this error when submitting sales return. I checked warranty date is correct. Anybody know what’s wrong here? Tks

Traceback (innermost last):
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/desk/form/save.py”, line 18, in savedocs
doc.save()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 238, in save
self.run_post_save_methods()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 562, in run_post_save_methods
self.run_method(“on_submit”)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 507, in run_method
return Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 620, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 603, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 501, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py”, line 71, in on_submit
self.update_stock_ledger()
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py”, line 463, in update_stock_ledger
self.make_sl_entries(sl_entries, self.amended_from and ‘Yes’ or ‘No’)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/controllers/stock_controller.py”, line 203, in make_sl_entries
make_sl_entries(sl_entries, is_amended, allow_negative_stock, via_landed_cost_voucher)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/stock_ledger.py”, line 31, in make_sl_entries
sle_id = make_entry(sle, allow_negative_stock, via_landed_cost_voucher)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/stock_ledger.py”, line 56, in make_entry
sle.submit()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 518, in submit
self.save()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 238, in save
self.run_post_save_methods()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 562, in run_post_save_methods
self.run_method(“on_submit”)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 507, in run_method
return Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 620, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 603, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 501, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py”, line 32, in on_submit
process_serial_no(self)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 198, in process_serial_no
update_serial_nos(sle, item_det)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 264, in update_serial_nos
sr.save(ignore_permissions=True)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 223, in save
self.run_before_save_methods()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 541, in run_before_save_methods
self.run_method(“validate”)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 507, in run_method
return Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 620, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 603, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 501, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 32, in validate
self.set_maintenance_status()
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 41, in set_maintenance_status
if self.warranty_expiry_date and self.warranty_expiry_date < nowdate():
TypeError: can’t compare datetime.date to str

Traceback (innermost last):
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/app.py”, line 51, in application
response = frappe.handler.handle()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/handler.py”, line 66, in handle
execute_cmd(cmd)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/handler.py”, line 89, in execute_cmd
ret = frappe.call(method, **frappe.form_dict)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/init.py”, line 741, in call
return fn(*args, **newargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/desk/form/save.py”, line 18, in savedocs
doc.save()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 238, in save
self.run_post_save_methods()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 562, in run_post_save_methods
self.run_method(“on_submit”)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 507, in run_method
return Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 620, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 603, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 501, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py”, line 71, in on_submit
self.update_stock_ledger()
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py”, line 463, in update_stock_ledger
self.make_sl_entries(sl_entries, self.amended_from and ‘Yes’ or ‘No’)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/controllers/stock_controller.py”, line 203, in make_sl_entries
make_sl_entries(sl_entries, is_amended, allow_negative_stock, via_landed_cost_voucher)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/stock_ledger.py”, line 31, in make_sl_entries
sle_id = make_entry(sle, allow_negative_stock, via_landed_cost_voucher)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/stock_ledger.py”, line 56, in make_entry
sle.submit()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 518, in submit
self.save()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 238, in save
self.run_post_save_methods()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 562, in run_post_save_methods
self.run_method(“on_submit”)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 507, in run_method
return Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 620, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 603, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 501, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py”, line 32, in on_submit
process_serial_no(self)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 198, in process_serial_no
update_serial_nos(sle, item_det)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 264, in update_serial_nos
sr.save(ignore_permissions=True)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 223, in save
self.run_before_save_methods()
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 541, in run_before_save_methods
self.run_method(“validate”)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 507, in run_method
return Document.hook(fn)(self, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 620, in composer
return composed(self, method, *args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 603, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/ubuntu/frappe-bench/apps/frappe/frappe/model/document.py”, line 501, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 32, in validate
self.set_maintenance_status()
File “/home/ubuntu/frappe-bench/apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py”, line 41, in set_maintenance_status
if self.warranty_expiry_date and self.warranty_expiry_date < nowdate():
TypeError: can’t compare datetime.date to str

Thanks

Pushed the fix, please update