55 lines
2.1 KiB
Plaintext
55 lines
2.1 KiB
Plaintext
|
|
user_orgid = await get_userorgid()
|
|
dbname = get_module_dbname('supplychain')
|
|
|
|
productid = params_kw.get("productid")
|
|
prodtypeid = params_kw.get("prodtypeid")
|
|
|
|
if not productid:
|
|
return json.dumps({"status": "error", "message": "缺少productid参数"})
|
|
|
|
db = DBPools()
|
|
async with db.sqlorContext(dbname) as sor:
|
|
sql = """SELECT sci.id, sci.contract_id, sci.discount, sci.settlement_price,
|
|
sc.contract_code, sc.contract_name, sc.supplier_id,
|
|
s.supplier_name
|
|
FROM supply_contract_items sci
|
|
JOIN supply_contracts sc ON sci.contract_id = sc.id
|
|
LEFT JOIN suppliers s ON sc.supplier_id = s.id
|
|
WHERE sci.resellerid = ${resellerid}$
|
|
AND sc.status = '1'
|
|
AND sc.start_date <= CURDATE()
|
|
AND (sc.end_date IS NULL OR sc.end_date >= CURDATE())
|
|
AND sci.productid = ${productid}$
|
|
ORDER BY sc.start_date DESC"""
|
|
recs = await sor.sqlExe(sql, {"resellerid": user_orgid, "productid": productid})
|
|
|
|
if not recs and prodtypeid:
|
|
sql = """SELECT sci.id, sci.contract_id, sci.discount, sci.settlement_price,
|
|
sc.contract_code, sc.contract_name, sc.supplier_id,
|
|
s.supplier_name
|
|
FROM supply_contract_items sci
|
|
JOIN supply_contracts sc ON sci.contract_id = sc.id
|
|
LEFT JOIN suppliers s ON sc.supplier_id = s.id
|
|
WHERE sci.resellerid = ${resellerid}$
|
|
AND sc.status = '1'
|
|
AND sc.start_date <= CURDATE()
|
|
AND (sc.end_date IS NULL OR sc.end_date >= CURDATE())
|
|
AND sci.prodtypeid = ${prodtypeid}$
|
|
ORDER BY sc.start_date DESC"""
|
|
recs = await sor.sqlExe(sql, {"resellerid": user_orgid, "prodtypeid": prodtypeid})
|
|
|
|
if not recs:
|
|
sql = """SELECT id as contract_id, contract_code, contract_name,
|
|
supplier_id, default_discount as discount, NULL as settlement_price
|
|
FROM supply_contracts
|
|
WHERE resellerid = ${resellerid}$
|
|
AND status = '1'
|
|
AND start_date <= CURDATE()
|
|
AND (end_date IS NULL OR end_date >= CURDATE())
|
|
ORDER BY start_date DESC"""
|
|
recs = await sor.sqlExe(sql, {"resellerid": user_orgid})
|
|
|
|
result = [dict(r) for r in recs] if recs else []
|
|
return json.dumps({"status": "ok", "data": result})
|