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

View File

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