I encounter an error when creating a Supplier Quotation. Could you please help me identify the cause

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}\"]"
}

Hello @Hank20240902

did you check the Fraction and Fraction Units in the Currency used in you system if not check it out and if not set so setup them up and try again hope this helps