物料订单袋子数量超标金额计算

This commit is contained in:
苏尹岚
2020-03-12 10:06:41 +08:00
parent 2256a7966e
commit 953406a7dc

View File

@@ -432,12 +432,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
outJxOrder.StoreName = storeDetail.Name
skus := formalizeSkus(jxOrder.Skus)
if fromStoreID != 0 {
err = matterSkusLimited(skus, fromStoreID)
if err != nil {
return nil, nil, err
}
}
// 允许空商品列表(一般用于测试配送地址,门店信息是否合适)
if len(skus) > 0 {
var skuIDs []int
@@ -470,7 +464,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
}
skuMap[v.ID] = v
}
var result *orderman.OrderCount
if fromStoreID != 0 {
result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID)
}
sum := result.Count
for _, v := range skus {
if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil {
if sku := skuMap[v.SkuID]; sku != nil {
@@ -504,18 +502,35 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
if fromStoreID == 0 {
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
} else {
if bagMap[jxSku.SkuID] != 0 {
if jxSku.Count > 1 {
for i := 0; i < jxSku.Count; i++ {
if i == 0 {
outJxOrder.OrderPrice += 1
if jxSku.SkuID == 6039382 {
if bagMap[jxSku.SkuID] != 0 {
if sum > 0 {
if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 {
outJxOrder.OrderPrice += int64(1 * jxSku.Count)
} else {
outJxOrder.OrderPrice += jxSku.SalePrice
outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/100)))
outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/100)))) * jxSku.SalePrice
}
} else {
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
sum = sum - bagMap[jxSku.SkuID]*jxSku.Count
}
}
if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 {
if bagMap[jxSku.SkuID] != 0 {
if sum > 0 {
if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 {
outJxOrder.OrderPrice += int64(1 * jxSku.Count)
} else {
outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/200)))
outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/200)))) * jxSku.SalePrice
}
} else {
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
sum = sum - bagMap[jxSku.SkuID]*jxSku.Count
}
} else {
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
}
}
outJxOrder.Weight += jxSku.Count * jxSku.Weight