diff --git a/supplychain/init.py b/supplychain/init.py index e5b62c8..508b7e0 100644 --- a/supplychain/init.py +++ b/supplychain/init.py @@ -300,10 +300,17 @@ async def update_supply_contract_item(request, params_kw): async def delete_supply_contract_item(request, params_kw): """Delete a supply contract item.""" data = params_kw + item_id = data["id"] db, dbname = _get_sor() async with db.sqlorContext(dbname) as sor: - await sor.D("supply_contract_items", {"id": data["id"]}) - return json.dumps({"status": "ok", "message": "删除成功"}) + await sor.D("supply_contract_items", {"id": item_id}) + # Also remove product_org_auth + async with DBPools().sqlorContext("sage") as sor_sage: + await sor_sage.sqlExe( + "DELETE FROM product_org_auth WHERE auth_source_id = ${sid}$", + {"sid": item_id} + ) + return json.dumps({"status": "ok", "message": "删除成功"}) # ============================================================ diff --git a/wwwroot/api/supply_contract_items_create.dspy b/wwwroot/api/supply_contract_items_create.dspy index cc6848c..bb7b801 100644 --- a/wwwroot/api/supply_contract_items_create.dspy +++ b/wwwroot/api/supply_contract_items_create.dspy @@ -6,15 +6,29 @@ try: dbname = get_module_dbname('supplychain') data = dict(params_kw) - data['id'] = getID() + item_id = getID() + data['id'] = item_id data['resellerid'] = user_orgid - data['created_by'] = user_id data['created_at'] = timestampstr() data['updated_at'] = timestampstr() + product_id = data.get('productid') + contract_id = data.get('contract_id') + async with DBPools().sqlorContext(dbname) as sor: await sor.C('supply_contract_items', data) + # Sync product_org_auth + if product_id: + async with DBPools().sqlorContext('sage') as sor_sage: + await sor_sage.C('product_org_auth', { + 'id': getID(), + 'product_id': product_id, + 'org_id': user_orgid, + 'auth_source': 'supply_contract', + 'auth_source_id': item_id, + }) + result = {'widgettype': 'Message', 'options': {'title': 'Success', 'message': '供应合同项目创建成功', 'type': 'success'}} except Exception as e: