fix(calculate_sale_amounts): SQL 补「产品精确+类别默认」匹配分支
原 SQL 只覆盖: (类别+产品精确)/(类别精确+产品默认)/(全默认), 缺「产品精确+类别为NULL」,导致只填 productid 不填 prodtypeid 的折扣查不到, supply_discount 回落到 default_discount=1.0。补第3优先级。
This commit is contained in:
parent
3a93804655
commit
927ee954ac
@ -664,11 +664,13 @@ WHERE resellerid = ${resellerid}$
|
||||
WHERE contract_id = ${contract_id}$
|
||||
AND ((prodtypeid = ${prodtypeid}$ AND productid = ${productid}$)
|
||||
OR (prodtypeid = ${prodtypeid}$ AND productid IS NULL)
|
||||
OR (prodtypeid IS NULL AND productid = ${productid}$)
|
||||
OR (prodtypeid IS NULL AND productid IS NULL))
|
||||
ORDER BY
|
||||
CASE WHEN prodtypeid IS NOT NULL AND productid IS NOT NULL THEN 1
|
||||
WHEN prodtypeid IS NOT NULL AND productid IS NULL THEN 2
|
||||
ELSE 3 END
|
||||
WHEN prodtypeid IS NULL AND productid IS NOT NULL THEN 3
|
||||
ELSE 4 END
|
||||
LIMIT 1"""
|
||||
recs_sci = await sor.sqlExe(sql_sci, {
|
||||
"contract_id": contract_id,
|
||||
@ -705,11 +707,13 @@ WHERE resellerid = ${resellerid}$
|
||||
WHERE agreement_id = ${agreement_id}$
|
||||
AND ((prodtypeid = ${prodtypeid}$ AND productid = ${productid}$)
|
||||
OR (prodtypeid = ${prodtypeid}$ AND productid IS NULL)
|
||||
OR (prodtypeid IS NULL AND productid = ${productid}$)
|
||||
OR (prodtypeid IS NULL AND productid IS NULL))
|
||||
ORDER BY
|
||||
CASE WHEN prodtypeid IS NOT NULL AND productid IS NOT NULL THEN 1
|
||||
WHEN prodtypeid IS NOT NULL AND productid IS NULL THEN 2
|
||||
ELSE 3 END
|
||||
WHEN prodtypeid IS NULL AND productid IS NOT NULL THEN 3
|
||||
ELSE 4 END
|
||||
LIMIT 1"""
|
||||
recs_dai = await sor.sqlExe(sql_dai, {
|
||||
"agreement_id": agreement_id,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user