I have a problem when upgrade ERPNext to version 14. An error occurs when changing anything in the Purchase Invoice doctype. The error is:
Traceback (most recent call last):
File "apps/frappe/frappe/app.py", line 66, in application
response = frappe.api.handle()
File "apps/frappe/frappe/api.py", line 55, in handle
return frappe.handler.handle()
File "apps/frappe/frappe/handler.py", line 38, in handle
data = execute_cmd(cmd)
File "apps/frappe/frappe/handler.py", line 76, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File "apps/frappe/frappe/__init__.py", line 1474, in call
return fn(*args, **newargs)
File "apps/frappe/frappe/desk/form/save.py", line 25, in savedocs
doc.save()
File "apps/frappe/frappe/model/document.py", line 312, in save
return self._save(*args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 366, in _save
self.run_post_save_methods()
File "apps/frappe/frappe/model/document.py", line 1090, in run_post_save_methods
self.run_method("on_update")
File "apps/frappe/frappe/model/document.py", line 943, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1267, in composer
return composed(self, method, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1249, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File "apps/frappe/frappe/model/document.py", line 940, in fn
return method_object(*args, **kwargs)
File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 355, in on_update
raise e
File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 352, in on_update
frappe.db.updatedb(self.name, Meta(self))
File "apps/frappe/frappe/database/mariadb/database.py", line 375, in updatedb
db_table.sync()
File "apps/frappe/frappe/database/schema.py", line 45, in sync
self.alter()
File "apps/frappe/frappe/database/mariadb/schema.py", line 50, in alter
col.build_for_alter_table(self.current_columns.get(col.fieldname.lower()))
File "apps/frappe/frappe/database/schema.py", line 242, in build_for_alter_table
self.default_changed(current_def)
File "apps/frappe/frappe/database/schema.py", line 258, in default_changed
return self.default_changed_for_decimal(current_def)
File "apps/frappe/frappe/database/schema.py", line 298, in default_changed_for_decimal
return float(current_def["default"]) != float(self.default)
ValueError: could not convert string to float: 'outstanding_amount'
This is because the default value of paid_amount is set to ‘outstanding_amount’, but in the UI is this set to nothing.
When I run the python debugger I see that outstanding amount is pass into this field.