物料订单袋子数量超标金额计算
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user