- 7个数据库表: suppliers, supply_contracts, supply_contract_items, sub_distributors, distribution_agreements, distribution_agreement_items, supplychain_accounting - CRUD JSON配置 (7个列表 + editable段) - API端点: create/update/delete (21个) + calculate_accounting + query_discount (2个) - 前端页面: index.ui + 5个功能页 + menu.ui - 记账计算: 自动查找有效合同/协议折扣,计算进货金额、分销金额、利润 - 折扣查找优先级: 精确产品 > 产品分类 > 默认折扣 - productid/prodtypeid引用product模块(即将开发)
28 lines
891 B
Plaintext
28 lines
891 B
Plaintext
import json
|
|
from datetime import datetime
|
|
|
|
async def main(request, params_kw):
|
|
"""Update a distribution_agreements record."""
|
|
user_id = await get_user()
|
|
dbname = get_module_dbname('supplychain')
|
|
|
|
data = params_kw.get("data", "{}")
|
|
if isinstance(data, str):
|
|
data = json.loads(data)
|
|
|
|
record_id = data.get("id")
|
|
if not record_id:
|
|
return json.dumps({"status": "error", "message": "Missing record id"})
|
|
|
|
data["updated_at"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
# Remove fields that should not be updated
|
|
for key in ["id", "resellerid", "created_by", "created_at"]:
|
|
data.pop(key, None)
|
|
|
|
config = getConfig(".")
|
|
DBPools(config.databases)
|
|
async with db.sqlorContext(dbname) as sor:
|
|
await sor.U("distribution_agreements", data)
|
|
return json.dumps({"status": "ok", "data": data})
|