refactor: 取消内部供应商概念,统一为外部; 修复ServerEnv→request._run_ns; 修复editable嵌套

This commit is contained in:
yumoqing 2026-07-13 17:06:57 +08:00
parent 44042b80dd
commit bc46774401
2 changed files with 12 additions and 28 deletions

View File

@ -14,11 +14,6 @@
"op": "LIKE",
"var": "supplier_name"
},
{
"field": "is_external",
"op": "=",
"var": "is_external"
},
{
"field": "status",
"op": "=",
@ -28,13 +23,13 @@
},
"filter_labels": {
"supplier_name": "供应商名称",
"is_external": "供应商类型",
"status": "状态"
},
"editexclouded": [
"id",
"resellerid",
"orgid",
"is_external",
"status",
"created_by",
"created_at",
@ -44,7 +39,8 @@
"exclouded": [
"id",
"resellerid",
"created_by"
"created_by",
"is_external"
],
"alters": {
"orgid": {
@ -53,11 +49,6 @@
"valueField": "orgid",
"textField": "orgid_text"
},
"is_external": {
"uitype": "code",
"valueField": "is_external",
"textField": "is_external_text"
},
"payment_type": {
"uitype": "code",
"valueField": "payment_type",
@ -75,11 +66,9 @@
}
}
},
"editable": {
"new_data_url": "{{entire_url('/supplychain/api/suppliers_create.dspy')}}",
"update_data_url": "{{entire_url('/supplychain/api/suppliers_update.dspy')}}",
"delete_data_url": "{{entire_url('/supplychain/api/suppliers_delete.dspy')}}"
},
"new_data_url": "{{entire_url('/supplychain/api/suppliers_create.dspy')}}",
"update_data_url": "{{entire_url('/supplychain/api/suppliers_update.dspy')}}",
"delete_data_url": "{{entire_url('/supplychain/api/suppliers_delete.dspy')}}",
"subtables": [
{
"field": "supplier_id",

View File

@ -109,24 +109,21 @@ WHERE resellerid = ${resellerid}$ AND agreement_code LIKE ${prefix}$"""
# ============================================================
async def create_supplier(request, params_kw):
"""Create a new supplier record."""
env = ServerEnv()
"""Create a new supplier record (all external)."""
env = request._run_ns
user_id = await env.get_user()
resellerid = await env.get_userorgid()
data = params_kw
db, dbname = _get_sor()
# Handle external supplier: create new org
is_external = data.get("is_external", "1")
orgid = data.get("orgid")
if is_external == "1" and not orgid:
# External supplier: create new organization
if not orgid:
# Create new organization for this supplier
supplier_name = data.get("supplier_name")
if not supplier_name:
return json.dumps({"status": "error", "message": "供应商名称不能为空"})
# Create org in sage database
new_orgid = getID()
now_org = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
org_rec = {
@ -141,8 +138,6 @@ async def create_supplier(request, params_kw):
async with db.sqlorContext("sage") as sor_sage:
await sor_sage.C("organization", org_rec)
orgid = new_orgid
elif is_external == "0" and not orgid:
return json.dumps({"status": "error", "message": "内部供应商必须选择所属机构"})
async with db.sqlorContext(dbname) as sor:
supplier_code = data.get("supplier_code") or _generate_supplier_code(resellerid)
@ -160,7 +155,7 @@ async def create_supplier(request, params_kw):
"bank_name": data.get("bank_name"),
"bank_account": data.get("bank_account"),
"orgid": orgid,
"is_external": is_external,
"is_external": "1",
"settlement_cycle": data.get("settlement_cycle"),
"settlement_day": data.get("settlement_day"),
"payment_type": data.get("payment_type"),
@ -183,7 +178,7 @@ async def update_supplier(request, params_kw):
rec = {"id": data["id"], "updated_at": now}
for key in ["supplier_name", "contact_person", "contact_phone", "contact_email",
"address", "tax_number", "bank_name", "bank_account",
"orgid", "is_external", "settlement_cycle", "settlement_day",
"orgid", "settlement_cycle", "settlement_day",
"payment_type", "status", "remark"]:
if key in data:
rec[key] = data[key]