App Versions
{
"frappe": "16.4.0",
"erpnext": "16.3.0",
"hrms": "16.2.0"
}
Route
Form/Supplier Quotation/new-supplier-quotation-iaibzbhfsl
Traceback
Traceback (most recent call last):
File "apps/frappe/frappe/app.py", line 121, in application
response = frappe.api.handle(request)
File "apps/frappe/frappe/api/__init__.py", line 63, in handle
data = endpoint(**arguments)
File "apps/frappe/frappe/api/v1.py", line 40, in handle_rpc_call
return frappe.handler.handle()
~~~~~~~~~~~~~~~~~~~~~^^
File "apps/frappe/frappe/handler.py", line 53, in handle
data = execute_cmd(cmd)
File "apps/frappe/frappe/handler.py", line 86, in execute_cmd
return frappe.call(method, **frappe.form_dict)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/__init__.py", line 1124, in call
return fn(*args, **newargs)
File "apps/frappe/frappe/utils/typing_validations.py", line 36, in wrapper
return func(*args, **kwargs)
File "apps/frappe/frappe/desk/form/save.py", line 43, in savedocs
doc.save()
~~~~~~~~^^
File "apps/frappe/frappe/model/document.py", line 518, in save
return self._save(*args, **kwargs)
~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 540, in _save
return self.insert()
~~~~~~~~~~~^^
File "apps/frappe/frappe/model/document.py", line 447, in insert
self.run_before_save_methods()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "apps/frappe/frappe/model/document.py", line 1332, in run_before_save_methods
self.run_method("validate")
~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 1181, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1578, in composer
return composed(self, method, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1556, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
~~^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 1178, in fn
return method_object(*args, **kwargs)
File "apps/erpnext/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py", line 116, in validate
super().validate()
~~~~~~~~~~~~~~~~^^
File "apps/erpnext/erpnext/controllers/buying_controller.py", line 36, in validate
super().validate()
~~~~~~~~~~~~~~~~^^
File "apps/erpnext/erpnext/controllers/subcontracting_controller.py", line 77, in validate
super().validate()
~~~~~~~~~~~~~~~~^^
File "apps/erpnext/erpnext/controllers/stock_controller.py", line 58, in validate
super().validate()
~~~~~~~~~~~~~~~~^^
File "apps/erpnext/erpnext/controllers/accounts_controller.py", line 307, in validate
self.set_total_in_words()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "apps/erpnext/erpnext/controllers/buying_controller.py", line 392, in set_total_in_words
self.base_in_words = money_in_words(amount, self.company_currency)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/utils/data.py", line 1563, in money_in_words
out = out + " " + _("and") + " " + fraction_in_words() + " " + fraction_currency
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str
Request Data
{
"type": "POST",
"args": {
"doc": "{\"docstatus\":0,\"doctype\":\"Supplier Quotation\",\"name\":\"new-supplier-quotation-iaibzbhfsl\",\"__islocal\":1,\"__unsaved\":1,\"owner\":\"hank@tianlangtech.com\",\"naming_series\":\"PUR-SQTN-.YYYY.-\",\"company\":\"苏州天郎科技有限公司\",\"status\":\"Draft\",\"transaction_date\":\"2026-01-31\",\"has_unit_price_items\":0,\"currency\":\"CNY\",\"buying_price_list\":\"Standard Buying\",\"price_list_currency\":\"CNY\",\"ignore_pricing_rule\":0,\"items\":[{\"docstatus\":0,\"doctype\":\"Supplier Quotation Item\",\"name\":\"new-supplier-quotation-item-ahychcduxo\",\"__islocal\":1,\"__unsaved\":1,\"owner\":\"hank@tianlangtech.com\",\"is_free_item\":0,\"stock_uom\":\"Nos\",\"margin_type\":\"\",\"page_break\":0,\"parent\":\"new-supplier-quotation-iaibzbhfsl\",\"parentfield\":\"items\",\"parenttype\":\"Supplier Quotation\",\"idx\":1,\"qty\":1,\"conversion_factor\":1,\"stock_qty\":1,\"price_list_rate\":0,\"base_price_list_rate\":0,\"margin_rate_or_amount\":0,\"rate_with_margin\":0,\"discount_amount\":0,\"distributed_discount_amount\":0,\"rate\":3.2,\"amount\":3.2,\"base_rate\":3.2,\"base_amount\":3.2,\"net_rate\":3.2,\"net_amount\":3.2,\"base_net_rate\":3.2,\"base_net_amount\":3.2,\"weight_per_unit\":0,\"total_weight\":0,\"item_code\":\"TL-RM-IC-00001\",\"item_name\":\"ADS6133 成品模组\",\"lead_time_days\":0,\"description\":\"\",\"item_group\":\"Raw Material\",\"image\":\"\",\"uom\":\"Nos\",\"discount_percentage\":0,\"warehouse\":\"原材料仓 - TL\",\"item_tax_rate\":\"{\\\"22210101 - \\\\u8fdb\\\\u9879\\\\u7a0e\\\\u989d - TL\\\": 13}\",\"cost_center\":\"Main - TL\",\"base_rate_with_margin\":0,\"stock_uom_rate\":3.2,\"projected_qty\":0,\"actual_qty\":0,\"reserved_qty\":0,\"company_total_stock\":null}],\"taxes\":[{\"docstatus\":0,\"doctype\":\"Purchase Taxes and Charges\",\"name\":\"new-purchase-taxes-and-charges-eclsrpwned\",\"__islocal\":1,\"__unsaved\":1,\"owner\":\"hank@tianlangtech.com\",\"category\":\"Total\",\"add_deduct_tax\":\"Add\",\"charge_type\":\"On Net Total\",\"included_in_print_rate\":0,\"included_in_paid_amount\":0,\"is_tax_withholding_account\":0,\"set_by_item_tax_template\":0,\"cost_center\":\"Main - TL\",\"account_currency\":\"CNY\",\"dont_recompute_tax\":0,\"parent\":\"new-supplier-quotation-iaibzbhfsl\",\"parentfield\":\"taxes\",\"parenttype\":\"Supplier Quotation\",\"idx\":1,\"account_head\":\"22210101 - 进项税额 - TL\",\"description\":\"进项税额\",\"rate\":13,\"net_amount\":0,\"tax_amount\":0.42,\"tax_amount_after_discount_amount\":0.42,\"total\":3.62,\"base_net_amount\":0,\"base_tax_amount\":0.42,\"base_total\":3.62,\"base_tax_amount_after_discount_amount\":0.42,\"item_wise_tax_detail\":{}}],\"apply_discount_on\":\"Grand Total\",\"disable_rounded_total\":0,\"item_wise_tax_details\":[],\"pricing_rules\":[],\"letter_head\":\"TL-中文\",\"group_same_items\":0,\"is_subcontracted\":0,\"supplier\":\"深圳市灵明光子科技有限公司\",\"valid_till\":\"2026-02-28\",\"billing_address\":\"\",\"shipping_address\":\"\",\"billing_address_display\":\"\",\"shipping_address_display\":\"\",\"conversion_rate\":1,\"plc_conversion_rate\":1,\"taxes_and_charges\":\"采购-增值税-13% - TL\",\"base_net_total\":3.2,\"net_total\":3.2,\"base_total\":3.2,\"total\":3.2,\"total_qty\":1,\"grand_total\":3.62,\"total_taxes_and_charges\":0.42,\"taxes_and_charges_deducted\":0,\"taxes_and_charges_added\":0.42,\"base_grand_total\":3.62,\"base_taxes_and_charges_added\":0.42,\"base_taxes_and_charges_deducted\":0,\"base_total_taxes_and_charges\":0.42,\"rounded_total\":3.62,\"rounding_adjustment\":0,\"base_rounding_adjustment\":0,\"base_rounded_total\":3.62,\"in_words\":\"\",\"base_in_words\":\"\",\"base_discount_amount\":0,\"supplier_name\":\"深圳市灵明光子科技有限公司\",\"supplier_address\":\"深圳灵明光子-办公室\",\"address_display\":\"南山区留仙大道南山智园崇文园区3号楼12层<br>\\n深圳市<br>\\n广东<br>China<br>\\n<br>\\n\",\"tax_category\":\"\",\"language\":\"en\",\"idx\":0,\"total_net_weight\":0,\"additional_discount_percentage\":0,\"discount_amount\":0,\"other_charges_calculation\":\"<div class=\\\"tax-break-up\\\" style=\\\"overflow-x: auto;\\\">\\n\\t<table class=\\\"table table-bordered table-hover\\\">\\n\\t\\t<thead>\\n\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t<th class=\\\"text-left\\\">物料</th>\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t<th class=\\\"text-right\\\">应税金额</th>\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t<th class=\\\"text-right\\\">进项税额</th>\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t</tr>\\n\\t\\t</thead>\\n\\t\\t<tbody>\\n\\t\\t\\t\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<td>TL-RM-IC-00001</td>\\n\\t\\t\\t\\t\\t<td class=\\\"text-right\\\">\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t0.00\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t</td>\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t<td class=\\\"text-right\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(13.0%)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t0.00\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t</td>\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t\\n\\t\\t</tbody>\\n\\t</table>\\n</div>\"}",
"action": "Save"
},
"btn": {
"jQuery370037248961678751981": {
"events": {
"click": [
{
"type": "click",
"origType": "click",
"guid": 6706,
"namespace": ""
}
]
}
}
},
"freeze": true,
"headers": {},
"error_handlers": {},
"url": "/api/method/frappe.desk.form.save.savedocs",
"request_id": null
}
Response Data
{
"exception": "TypeError: can only concatenate str (not \"NoneType\") to str",
"exc_type": "TypeError",
"_exc_source": "erpnext (app)",
"_server_messages": "[\"{\\\"message\\\":\\\"物料价格TL-RM-IC-00001自动添加到价格表Standard Buying中了,以备以后订单使用\\\",\\\"as_table\\\":false,\\\"title\\\":\\\"信息\\\",\\\"alert\\\":1}\"]"
}