|
|
@ -306,150 +306,151 @@ namespace BBWY.Server.Business |
|
|
|
if (orderCouponDetailResponse.Success) |
|
|
|
{ |
|
|
|
var jtoken = orderCouponDetailResponse.Data["jingdong_pop_order_queryCouponDetai_responce"]["couponDetailExternal"]["couponDetailVo"]; |
|
|
|
|
|
|
|
#region 订单合计信息
|
|
|
|
var orderTotal = new OrderTotalInfo() |
|
|
|
{ |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
Id = orderId, |
|
|
|
TotalBalance = jtoken.Value<decimal>("totalBalance"), |
|
|
|
TotalBaseDiscount = jtoken.Value<decimal>("TotalBaseDiscount"), |
|
|
|
TotalBaseFee = jtoken.Value<decimal>("totalBaseFee"), |
|
|
|
TotalCoupon = jtoken.Value<decimal>("totalCoupon"), |
|
|
|
TotalDongQuan = jtoken.Value<decimal>("totalDongQuan"), |
|
|
|
TotalExpiryGiftDiscount = jtoken.Value<decimal>("totalExpiryGiftDiscount"), |
|
|
|
TotalGlobalGeneralIncludeTax = jtoken.Value<decimal>("totalGlobalGeneralIncludeTax"), |
|
|
|
TotalGlobalGeneralTax = jtoken.Value<decimal>("totalGlobalGeneralTax"), |
|
|
|
TotalItemPrice = jtoken.Value<decimal>("totalItemPrice"), |
|
|
|
TotalJdZhiFuYouHui = jtoken.Value<decimal>("totalJdZhiFuYouHui"), |
|
|
|
TotalJingDou = jtoken.Value<decimal>("totalJingDou"), |
|
|
|
TotalJingQuan = jtoken.Value<decimal>("totalJingQuan"), |
|
|
|
TotalJingXiangLiJin = jtoken.Value<decimal>("totalJingXiangLiJin"), |
|
|
|
TotalLiJinYouHui = jtoken.Value<decimal>("totalLiJinYouHui"), |
|
|
|
TotalLuoDiPeiService = jtoken.Value<decimal>("totalLuoDiPeiService"), |
|
|
|
TotalManJian = jtoken.Value<decimal>("totalManJian"), |
|
|
|
TotalPingTaiChengDanYouHuiQuan = jtoken.Value<decimal>("totalPingTaiChengDanYouHuiQuan"), |
|
|
|
TotalPlus95 = jtoken.Value<decimal>("totalPlus95"), |
|
|
|
TotalPromotionDiscount = jtoken.Value<decimal>("totalPromotionDiscount"), |
|
|
|
TotalRemoteFee = jtoken.Value<decimal>("totalRemoteFee"), |
|
|
|
TotalShouldPay = jtoken.Value<decimal>("totalShouldPay"), |
|
|
|
TotalSuperRedEnvelope = jtoken.Value<decimal>("totalSuperRedEnvelope"), |
|
|
|
TotalTaxFee = jtoken.Value<decimal>("totalTaxFee"), |
|
|
|
TotalTuiHuanHuoWuYou = jtoken.Value<decimal>("totalTuiHuanHuoWuYou"), |
|
|
|
TotalVenderFee = jtoken.Value<decimal>("totalVenderFee"), |
|
|
|
TotalXianPinLeiDongQuan = jtoken.Value<decimal>("totalXianPinLeiDongQuan"), |
|
|
|
TotalXianPinLeiJingQuan = jtoken.Value<decimal>("totalXianPinLeiJingQuan"), |
|
|
|
TotalZhiFuYingXiaoYouHui = jtoken.Value<decimal>("totalZhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
insertOrderTotalInfoList.Add(orderTotal); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单优惠券信息
|
|
|
|
var couponJArray = jtoken["couponList"] as JArray; |
|
|
|
if (couponJArray != null && couponJArray.Count() > 0) |
|
|
|
if (jtoken.Value<decimal>("totalShouldPay") > 0M) |
|
|
|
{ |
|
|
|
insertOrderCouponNewList.AddRange(couponJArray.Select(j => new OrderCoupon_New() |
|
|
|
#region 订单合计信息
|
|
|
|
var orderTotal = new OrderTotalInfo() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CouponId = j.Value<int>("couponId"), |
|
|
|
CouponName = j.Value<string>("couponName"), |
|
|
|
CouponNum = j.Value<int>("couponNum"), |
|
|
|
CouponPrice = j.Value<decimal>("couponPrice"), |
|
|
|
CouponTypeDesc = j.Value<string>("couponTypeDesc"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
JdCouponId = j.Value<string>("jdCouponId"), |
|
|
|
JdDivideMoney = j.Value<decimal>("jdDivideMoney"), |
|
|
|
OrderId = orderId, |
|
|
|
PriceDivide = j.Value<bool>("priceDivide"), |
|
|
|
VenderDivideMoney = j.Value<decimal>("venderDivideMoney") |
|
|
|
})); |
|
|
|
} |
|
|
|
Id = orderId, |
|
|
|
TotalBalance = jtoken.Value<decimal>("totalBalance"), |
|
|
|
TotalBaseDiscount = jtoken.Value<decimal>("TotalBaseDiscount"), |
|
|
|
TotalBaseFee = jtoken.Value<decimal>("totalBaseFee"), |
|
|
|
TotalCoupon = jtoken.Value<decimal>("totalCoupon"), |
|
|
|
TotalDongQuan = jtoken.Value<decimal>("totalDongQuan"), |
|
|
|
TotalExpiryGiftDiscount = jtoken.Value<decimal>("totalExpiryGiftDiscount"), |
|
|
|
TotalGlobalGeneralIncludeTax = jtoken.Value<decimal>("totalGlobalGeneralIncludeTax"), |
|
|
|
TotalGlobalGeneralTax = jtoken.Value<decimal>("totalGlobalGeneralTax"), |
|
|
|
TotalItemPrice = jtoken.Value<decimal>("totalItemPrice"), |
|
|
|
TotalJdZhiFuYouHui = jtoken.Value<decimal>("totalJdZhiFuYouHui"), |
|
|
|
TotalJingDou = jtoken.Value<decimal>("totalJingDou"), |
|
|
|
TotalJingQuan = jtoken.Value<decimal>("totalJingQuan"), |
|
|
|
TotalJingXiangLiJin = jtoken.Value<decimal>("totalJingXiangLiJin"), |
|
|
|
TotalLiJinYouHui = jtoken.Value<decimal>("totalLiJinYouHui"), |
|
|
|
TotalLuoDiPeiService = jtoken.Value<decimal>("totalLuoDiPeiService"), |
|
|
|
TotalManJian = jtoken.Value<decimal>("totalManJian"), |
|
|
|
TotalPingTaiChengDanYouHuiQuan = jtoken.Value<decimal>("totalPingTaiChengDanYouHuiQuan"), |
|
|
|
TotalPlus95 = jtoken.Value<decimal>("totalPlus95"), |
|
|
|
TotalPromotionDiscount = jtoken.Value<decimal>("totalPromotionDiscount"), |
|
|
|
TotalRemoteFee = jtoken.Value<decimal>("totalRemoteFee"), |
|
|
|
TotalShouldPay = jtoken.Value<decimal>("totalShouldPay"), |
|
|
|
TotalSuperRedEnvelope = jtoken.Value<decimal>("totalSuperRedEnvelope"), |
|
|
|
TotalTaxFee = jtoken.Value<decimal>("totalTaxFee"), |
|
|
|
TotalTuiHuanHuoWuYou = jtoken.Value<decimal>("totalTuiHuanHuoWuYou"), |
|
|
|
TotalVenderFee = jtoken.Value<decimal>("totalVenderFee"), |
|
|
|
TotalXianPinLeiDongQuan = jtoken.Value<decimal>("totalXianPinLeiDongQuan"), |
|
|
|
TotalXianPinLeiJingQuan = jtoken.Value<decimal>("totalXianPinLeiJingQuan"), |
|
|
|
TotalZhiFuYingXiaoYouHui = jtoken.Value<decimal>("totalZhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
insertOrderTotalInfoList.Add(orderTotal); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region 订单优惠券信息
|
|
|
|
var couponJArray = jtoken["couponList"] as JArray; |
|
|
|
if (couponJArray != null && couponJArray.Count() > 0) |
|
|
|
{ |
|
|
|
insertOrderCouponNewList.AddRange(couponJArray.Select(j => new OrderCoupon_New() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CouponId = j.Value<int>("couponId"), |
|
|
|
CouponName = j.Value<string>("couponName"), |
|
|
|
CouponNum = j.Value<int>("couponNum"), |
|
|
|
CouponPrice = j.Value<decimal>("couponPrice"), |
|
|
|
CouponTypeDesc = j.Value<string>("couponTypeDesc"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
JdCouponId = j.Value<string>("jdCouponId"), |
|
|
|
JdDivideMoney = j.Value<decimal>("jdDivideMoney"), |
|
|
|
OrderId = orderId, |
|
|
|
PriceDivide = j.Value<bool>("priceDivide"), |
|
|
|
VenderDivideMoney = j.Value<decimal>("venderDivideMoney") |
|
|
|
})); |
|
|
|
} |
|
|
|
|
|
|
|
#region 订单活动信息
|
|
|
|
var promotionJArray = jtoken["promotionList"] as JArray; |
|
|
|
if (promotionJArray != null && promotionJArray.Count() > 0) |
|
|
|
{ |
|
|
|
insertOrderPromotionList.AddRange(promotionJArray.Select(j => new OrderPromotion() |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单活动信息
|
|
|
|
var promotionJArray = jtoken["promotionList"] as JArray; |
|
|
|
if (promotionJArray != null && promotionJArray.Count() > 0) |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
BeginTime = j.Value<DateTime>("beginTime"), |
|
|
|
EndTime = j.Value<DateTime>("endTime"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
OrderId = orderId, |
|
|
|
PromotionId = j.Value<long>("promotionId"), |
|
|
|
PromotionName = j.Value<string>("promotionName"), |
|
|
|
SalePrice = j.Value<decimal>("salePrice"), |
|
|
|
SaleTypeDesc = j.Value<string>("saleTypeDesc") |
|
|
|
})); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
insertOrderPromotionList.AddRange(promotionJArray.Select(j => new OrderPromotion() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
BeginTime = j.Value<DateTime>("beginTime"), |
|
|
|
EndTime = j.Value<DateTime>("endTime"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
OrderId = orderId, |
|
|
|
PromotionId = j.Value<long>("promotionId"), |
|
|
|
PromotionName = j.Value<string>("promotionName"), |
|
|
|
SalePrice = j.Value<decimal>("salePrice"), |
|
|
|
SaleTypeDesc = j.Value<string>("saleTypeDesc") |
|
|
|
})); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单sku金额明细
|
|
|
|
var skuJArray = jtoken["skuList"] as JArray; |
|
|
|
if (skuJArray != null && skuJArray.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var oskuJtoken in skuJArray) |
|
|
|
#region 订单sku金额明细
|
|
|
|
var skuJArray = jtoken["skuList"] as JArray; |
|
|
|
if (skuJArray != null && skuJArray.Count() > 0) |
|
|
|
{ |
|
|
|
var skuDiscountInfoList = oskuJtoken["skuDiscountInfoList"] as JArray; |
|
|
|
decimal? xianPinLeiDongQuan = 0M; |
|
|
|
if (skuDiscountInfoList != null && skuDiscountInfoList.Count > 0) |
|
|
|
foreach (var oskuJtoken in skuJArray) |
|
|
|
{ |
|
|
|
foreach (var item1 in skuDiscountInfoList) |
|
|
|
var skuDiscountInfoList = oskuJtoken["skuDiscountInfoList"] as JArray; |
|
|
|
decimal? xianPinLeiDongQuan = 0M; |
|
|
|
if (skuDiscountInfoList != null && skuDiscountInfoList.Count > 0) |
|
|
|
{ |
|
|
|
var discountTypeList = item1["discountTypeList"] as JArray; |
|
|
|
if (discountTypeList != null && discountTypeList.Count() > 0) |
|
|
|
foreach (var item1 in skuDiscountInfoList) |
|
|
|
{ |
|
|
|
foreach (var discountType in discountTypeList) |
|
|
|
var discountTypeList = item1["discountTypeList"] as JArray; |
|
|
|
if (discountTypeList != null && discountTypeList.Count() > 0) |
|
|
|
{ |
|
|
|
if (discountType.Value<int>("type") == 6) |
|
|
|
xianPinLeiDongQuan += discountType.Value<decimal>("amount"); |
|
|
|
foreach (var discountType in discountTypeList) |
|
|
|
{ |
|
|
|
if (discountType.Value<int>("type") == 6) |
|
|
|
xianPinLeiDongQuan += discountType.Value<decimal>("amount"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (xianPinLeiDongQuan == 0M) |
|
|
|
xianPinLeiDongQuan = oskuJtoken.Value<decimal>("xianPinLeiDongQuan"); |
|
|
|
if (xianPinLeiDongQuan == 0M) |
|
|
|
xianPinLeiDongQuan = oskuJtoken.Value<decimal>("xianPinLeiDongQuan"); |
|
|
|
|
|
|
|
var oskuCF = new OrderSkuCFDetail() |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
SkuId = oskuJtoken.Value<string>("skuCode"), |
|
|
|
Balance = oskuJtoken.Value<decimal>("balance"), |
|
|
|
BaseDiscount = oskuJtoken.Value<decimal>("baseDiscount"), |
|
|
|
BaseFee = oskuJtoken.Value<decimal>("baseFee"), |
|
|
|
Coupon = oskuJtoken.Value<decimal>("coupon"), |
|
|
|
DongQuan = oskuJtoken.Value<decimal>("dongQuan"), |
|
|
|
ExpiryGiftDiscount = oskuJtoken.Value<decimal>("expiryGiftDiscount"), |
|
|
|
GlobalGeneralIncludeTax = oskuJtoken.Value<decimal>("globalGeneralIncludeTax"), |
|
|
|
GlobalGeneralTax = oskuJtoken.Value<decimal>("globalGeneralTax"), |
|
|
|
JdZhiFuYouHui = oskuJtoken.Value<decimal>("jdZhiFuYouHui"), |
|
|
|
JingDou = oskuJtoken.Value<decimal>("jingDou"), |
|
|
|
JingQuan = oskuJtoken.Value<decimal>("jingQuan"), |
|
|
|
JingXiangLiJin = oskuJtoken.Value<decimal>("jingXiangLiJin"), |
|
|
|
LiJinYouHui = oskuJtoken.Value<decimal>("liJinYouHui"), |
|
|
|
LuoDiPeiService = oskuJtoken.Value<decimal>("luoDiPeiService"), |
|
|
|
ManJian = oskuJtoken.Value<decimal>("manJian"), |
|
|
|
PingTaiChengDanYouHuiQuan = oskuJtoken.Value<decimal>("pingTaiChengDanYouHuiQuan"), |
|
|
|
Plus95 = oskuJtoken.Value<decimal>("plus95"), |
|
|
|
PromotionDiscount = oskuJtoken.Value<decimal>("promotionDiscount"), |
|
|
|
RemoteFee = oskuJtoken.Value<decimal>("remoteFee"), |
|
|
|
ShouldPay = oskuJtoken.Value<decimal>("shouldPay"), |
|
|
|
SuperRedEnvelope = oskuJtoken.Value<decimal>("superRedEnvelope"), |
|
|
|
TaxFee = oskuJtoken.Value<decimal>("taxFee"), |
|
|
|
TuiHuanHuoWuYou = oskuJtoken.Value<decimal>("tuiHuanHuoWuYou"), |
|
|
|
VenderFee = oskuJtoken.Value<decimal>("venderFee"), |
|
|
|
XianPinLeiDongQuan = xianPinLeiDongQuan, //数据不齐
|
|
|
|
XianPinLeiJingQuan = oskuJtoken.Value<decimal>("xianPinLeiJingQuan"), |
|
|
|
ZhiFuYingXiaoYouHui = oskuJtoken.Value<decimal>("zhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
orderSkuCFDetailList.Add(oskuCF); |
|
|
|
var oskuCF = new OrderSkuCFDetail() |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
SkuId = oskuJtoken.Value<string>("skuCode"), |
|
|
|
Balance = oskuJtoken.Value<decimal>("balance"), |
|
|
|
BaseDiscount = oskuJtoken.Value<decimal>("baseDiscount"), |
|
|
|
BaseFee = oskuJtoken.Value<decimal>("baseFee"), |
|
|
|
Coupon = oskuJtoken.Value<decimal>("coupon"), |
|
|
|
DongQuan = oskuJtoken.Value<decimal>("dongQuan"), |
|
|
|
ExpiryGiftDiscount = oskuJtoken.Value<decimal>("expiryGiftDiscount"), |
|
|
|
GlobalGeneralIncludeTax = oskuJtoken.Value<decimal>("globalGeneralIncludeTax"), |
|
|
|
GlobalGeneralTax = oskuJtoken.Value<decimal>("globalGeneralTax"), |
|
|
|
JdZhiFuYouHui = oskuJtoken.Value<decimal>("jdZhiFuYouHui"), |
|
|
|
JingDou = oskuJtoken.Value<decimal>("jingDou"), |
|
|
|
JingQuan = oskuJtoken.Value<decimal>("jingQuan"), |
|
|
|
JingXiangLiJin = oskuJtoken.Value<decimal>("jingXiangLiJin"), |
|
|
|
LiJinYouHui = oskuJtoken.Value<decimal>("liJinYouHui"), |
|
|
|
LuoDiPeiService = oskuJtoken.Value<decimal>("luoDiPeiService"), |
|
|
|
ManJian = oskuJtoken.Value<decimal>("manJian"), |
|
|
|
PingTaiChengDanYouHuiQuan = oskuJtoken.Value<decimal>("pingTaiChengDanYouHuiQuan"), |
|
|
|
Plus95 = oskuJtoken.Value<decimal>("plus95"), |
|
|
|
PromotionDiscount = oskuJtoken.Value<decimal>("promotionDiscount"), |
|
|
|
RemoteFee = oskuJtoken.Value<decimal>("remoteFee"), |
|
|
|
ShouldPay = oskuJtoken.Value<decimal>("shouldPay"), |
|
|
|
SuperRedEnvelope = oskuJtoken.Value<decimal>("superRedEnvelope"), |
|
|
|
TaxFee = oskuJtoken.Value<decimal>("taxFee"), |
|
|
|
TuiHuanHuoWuYou = oskuJtoken.Value<decimal>("tuiHuanHuoWuYou"), |
|
|
|
VenderFee = oskuJtoken.Value<decimal>("venderFee"), |
|
|
|
XianPinLeiDongQuan = xianPinLeiDongQuan, //数据不齐
|
|
|
|
XianPinLeiJingQuan = oskuJtoken.Value<decimal>("xianPinLeiJingQuan"), |
|
|
|
ZhiFuYingXiaoYouHui = oskuJtoken.Value<decimal>("zhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
orderSkuCFDetailList.Add(oskuCF); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -726,199 +727,211 @@ namespace BBWY.Server.Business |
|
|
|
orderState != Enums.OrderState.待付款 && |
|
|
|
orderState != Enums.OrderState.已取消) |
|
|
|
{ |
|
|
|
var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); |
|
|
|
if (orderCost == null && orderSellerPrice > 0M) |
|
|
|
bool checkOrderTotal = true; |
|
|
|
if (dbOrder.StorageType == Enums.StorageType.京仓 || dbOrder.StorageType == Enums.StorageType.云仓) |
|
|
|
{ |
|
|
|
if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) |
|
|
|
var orderTotalInfo = insertOrderTotalInfoList.FirstOrDefault(x => x.Id == dbOrder.Id); |
|
|
|
if (orderTotalInfo == null) |
|
|
|
orderTotalInfo = dbOrderTotalList.FirstOrDefault(x => x.Id == dbOrder.Id); |
|
|
|
if (orderTotalInfo == null || orderTotalInfo.TotalShouldPay == 0M) |
|
|
|
checkOrderTotal = false; |
|
|
|
} |
|
|
|
if (checkOrderTotal) |
|
|
|
{ |
|
|
|
var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); |
|
|
|
if (orderCost == null && orderSellerPrice > 0M) |
|
|
|
{ |
|
|
|
//检查SD埋点
|
|
|
|
if (sDCalculationCostRequest.PlatformCommissionRatio == 0M) |
|
|
|
sDCalculationCostRequest.PlatformCommissionRatio = 0.05M; |
|
|
|
orderCost = new OrderCost() |
|
|
|
if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) |
|
|
|
{ |
|
|
|
OrderId = sDCalculationCostRequest.OrderId, |
|
|
|
PlatformCommissionRatio = sDCalculationCostRequest.PlatformCommissionRatio, |
|
|
|
PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, |
|
|
|
Profit = 0, |
|
|
|
DeliveryExpressFreight = sDCalculationCostRequest.DeliveryExpressFreight, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsManualEdited = true, |
|
|
|
SDCommissionAmount = sDCalculationCostRequest.SDCommissionAmount, |
|
|
|
SDOrderAmount = sDCalculationCostRequest.SDOrderAmount |
|
|
|
}; |
|
|
|
orderCost.CalculationSDOrderProfitAndCost(dbOrder, null); |
|
|
|
insertOrderCostList.Add(orderCost); |
|
|
|
} |
|
|
|
else if (!fsql.Select<OrderCost>(dbOrder.Id).Any()) //再查询一次数据库,以防同步开始执行后被人为操作扣减库存,造成重复扣减库存
|
|
|
|
{ |
|
|
|
var orderSkuJArray = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value<decimal>("jdPrice") != 0M); |
|
|
|
if (orderSkuJArray != null && orderSkuJArray.Count() > 0) |
|
|
|
//检查SD埋点
|
|
|
|
if (sDCalculationCostRequest.PlatformCommissionRatio == 0M) |
|
|
|
sDCalculationCostRequest.PlatformCommissionRatio = 0.05M; |
|
|
|
orderCost = new OrderCost() |
|
|
|
{ |
|
|
|
OrderId = sDCalculationCostRequest.OrderId, |
|
|
|
PlatformCommissionRatio = sDCalculationCostRequest.PlatformCommissionRatio, |
|
|
|
PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, |
|
|
|
Profit = 0, |
|
|
|
DeliveryExpressFreight = sDCalculationCostRequest.DeliveryExpressFreight, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsManualEdited = true, |
|
|
|
SDCommissionAmount = sDCalculationCostRequest.SDCommissionAmount, |
|
|
|
SDOrderAmount = sDCalculationCostRequest.SDOrderAmount |
|
|
|
}; |
|
|
|
orderCost.CalculationSDOrderProfitAndCost(dbOrder, null); |
|
|
|
insertOrderCostList.Add(orderCost); |
|
|
|
} |
|
|
|
else if (!fsql.Select<OrderCost>(dbOrder.Id).Any()) //再查询一次数据库,以防同步开始执行后被人为操作扣减库存,造成重复扣减库存
|
|
|
|
{ |
|
|
|
var orderCostPurchaseAmount = 0M; |
|
|
|
var orderDeliveryExpressFreight = 0M; //发货总运费,sku购买数量第二个开始半价
|
|
|
|
|
|
|
|
//var avgPreferential = preferentialAmount / orderSkuJArray.Count();
|
|
|
|
|
|
|
|
#region 扣减库存
|
|
|
|
foreach (var orderSkuJToken in orderSkuJArray) |
|
|
|
var orderSkuJArray = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value<decimal>("jdPrice") != 0M); |
|
|
|
if (orderSkuJArray != null && orderSkuJArray.Count() > 0) |
|
|
|
{ |
|
|
|
var orderSkuId = orderSkuJToken.Value<string>("skuId"); |
|
|
|
var itemTotal = orderSkuJToken.Value<int>("itemTotal"); //sku购买数量
|
|
|
|
|
|
|
|
#region sku拆分明细
|
|
|
|
decimal? skuShouldPay = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
if (skuShouldPay == null) |
|
|
|
skuShouldPay = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
if (skuShouldPay == null) |
|
|
|
skuShouldPay = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
|
|
|
|
|
|
|
|
decimal? skuPingTaiChengDanYouHuiQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; |
|
|
|
if (skuPingTaiChengDanYouHuiQuan == null) |
|
|
|
skuPingTaiChengDanYouHuiQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; |
|
|
|
if (skuPingTaiChengDanYouHuiQuan == null) |
|
|
|
skuPingTaiChengDanYouHuiQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; |
|
|
|
|
|
|
|
decimal? skuSuperRedEnvelope = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.SuperRedEnvelope; |
|
|
|
if (skuSuperRedEnvelope == null) |
|
|
|
skuSuperRedEnvelope = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; |
|
|
|
if (skuSuperRedEnvelope == null) |
|
|
|
skuSuperRedEnvelope = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; |
|
|
|
|
|
|
|
decimal? skuXianPinLeiDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.XianPinLeiDongQuan; |
|
|
|
if (skuXianPinLeiDongQuan == null) |
|
|
|
skuXianPinLeiDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; |
|
|
|
if (skuXianPinLeiDongQuan == null) |
|
|
|
skuXianPinLeiDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; |
|
|
|
|
|
|
|
decimal? skuVenderFee = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.VenderFee; |
|
|
|
if (skuVenderFee == null) |
|
|
|
skuVenderFee = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; |
|
|
|
if (skuVenderFee == null) |
|
|
|
skuVenderFee = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; |
|
|
|
|
|
|
|
decimal? skuJingDou = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.JingDou; |
|
|
|
if (skuJingDou == null) |
|
|
|
skuJingDou = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; |
|
|
|
if (skuJingDou == null) |
|
|
|
skuJingDou = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; |
|
|
|
|
|
|
|
decimal? skuDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.DongQuan; |
|
|
|
if (skuDongQuan == null) |
|
|
|
skuDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; |
|
|
|
if (skuDongQuan == null) |
|
|
|
skuDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; |
|
|
|
|
|
|
|
decimal? skuBalnace = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.Balance; |
|
|
|
if (skuBalnace == null) |
|
|
|
skuBalnace = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; |
|
|
|
if (skuBalnace == null) |
|
|
|
skuBalnace = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; |
|
|
|
#endregion
|
|
|
|
var orderCostPurchaseAmount = 0M; |
|
|
|
var orderDeliveryExpressFreight = 0M; //发货总运费,sku购买数量第二个开始半价
|
|
|
|
|
|
|
|
//var avgPreferential = preferentialAmount / orderSkuJArray.Count();
|
|
|
|
|
|
|
|
//var itemPrice = orderSkuJToken.Value<decimal>("jdPrice"); //sku单价
|
|
|
|
var isReduceMultiTimes = false; //是否多次扣减库存
|
|
|
|
while (itemTotal != 0) |
|
|
|
#region 扣减库存
|
|
|
|
foreach (var orderSkuJToken in orderSkuJArray) |
|
|
|
{ |
|
|
|
var purchaseOrder = dbPurchaseOrderList.FirstOrDefault(po => po.StorageType == dbOrder.StorageType && |
|
|
|
po.RemainingQuantity != 0 && |
|
|
|
po.SkuId == orderSkuId); |
|
|
|
if (purchaseOrder == null) |
|
|
|
break; //没有库存了
|
|
|
|
|
|
|
|
//本次扣减量
|
|
|
|
var deductionQuantity = purchaseOrder.RemainingQuantity >= itemTotal ? itemTotal : purchaseOrder.RemainingQuantity; |
|
|
|
//var deductionQuantity = itemTotal;
|
|
|
|
//本次扣减量的采购成本
|
|
|
|
var currentPurchaseAmount = purchaseOrder.UnitCost * deductionQuantity; |
|
|
|
//本次扣减量的发货运费
|
|
|
|
var currentSkuDeliveryFreight = isReduceMultiTimes ? |
|
|
|
(purchaseOrder.SingleDeliveryFreight / 2 * deductionQuantity) : |
|
|
|
(purchaseOrder.SingleDeliveryFreight + purchaseOrder.SingleDeliveryFreight / 2 * (deductionQuantity - 1)); |
|
|
|
|
|
|
|
purchaseOrder.RemainingQuantity -= deductionQuantity; |
|
|
|
itemTotal -= deductionQuantity; |
|
|
|
|
|
|
|
//累计采购成本
|
|
|
|
orderCostPurchaseAmount += currentPurchaseAmount; |
|
|
|
//累计发货运费(销售运费)
|
|
|
|
orderDeliveryExpressFreight += currentSkuDeliveryFreight; |
|
|
|
isReduceMultiTimes = true; |
|
|
|
|
|
|
|
var updateSql = fsql.Update<PurchaseOrder>(purchaseOrder.Id).Set(po => po.RemainingQuantity - deductionQuantity); |
|
|
|
updatePurchaseOrderList.Add(updateSql); |
|
|
|
|
|
|
|
var orderCostDetail = new OrderCostDetail() |
|
|
|
var orderSkuId = orderSkuJToken.Value<string>("skuId"); |
|
|
|
var itemTotal = orderSkuJToken.Value<int>("itemTotal"); //sku购买数量
|
|
|
|
|
|
|
|
#region sku拆分明细
|
|
|
|
decimal? skuShouldPay = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
if (skuShouldPay == null) |
|
|
|
skuShouldPay = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
if (skuShouldPay == null) |
|
|
|
skuShouldPay = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
|
|
|
|
|
|
|
|
decimal? skuPingTaiChengDanYouHuiQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; |
|
|
|
if (skuPingTaiChengDanYouHuiQuan == null) |
|
|
|
skuPingTaiChengDanYouHuiQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; |
|
|
|
if (skuPingTaiChengDanYouHuiQuan == null) |
|
|
|
skuPingTaiChengDanYouHuiQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; |
|
|
|
|
|
|
|
decimal? skuSuperRedEnvelope = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.SuperRedEnvelope; |
|
|
|
if (skuSuperRedEnvelope == null) |
|
|
|
skuSuperRedEnvelope = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; |
|
|
|
if (skuSuperRedEnvelope == null) |
|
|
|
skuSuperRedEnvelope = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; |
|
|
|
|
|
|
|
decimal? skuXianPinLeiDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.XianPinLeiDongQuan; |
|
|
|
if (skuXianPinLeiDongQuan == null) |
|
|
|
skuXianPinLeiDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; |
|
|
|
if (skuXianPinLeiDongQuan == null) |
|
|
|
skuXianPinLeiDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; |
|
|
|
|
|
|
|
decimal? skuVenderFee = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.VenderFee; |
|
|
|
if (skuVenderFee == null) |
|
|
|
skuVenderFee = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; |
|
|
|
if (skuVenderFee == null) |
|
|
|
skuVenderFee = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; |
|
|
|
|
|
|
|
decimal? skuJingDou = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.JingDou; |
|
|
|
if (skuJingDou == null) |
|
|
|
skuJingDou = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; |
|
|
|
if (skuJingDou == null) |
|
|
|
skuJingDou = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; |
|
|
|
|
|
|
|
decimal? skuDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.DongQuan; |
|
|
|
if (skuDongQuan == null) |
|
|
|
skuDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; |
|
|
|
if (skuDongQuan == null) |
|
|
|
skuDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; |
|
|
|
|
|
|
|
decimal? skuBalnace = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && |
|
|
|
x.SkuId == orderSkuId)?.Balance; |
|
|
|
if (skuBalnace == null) |
|
|
|
skuBalnace = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; |
|
|
|
if (skuBalnace == null) |
|
|
|
skuBalnace = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; |
|
|
|
#endregion
|
|
|
|
|
|
|
|
//var itemPrice = orderSkuJToken.Value<decimal>("jdPrice"); //sku单价
|
|
|
|
var isReduceMultiTimes = false; //是否多次扣减库存
|
|
|
|
while (itemTotal != 0) |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
OrderId = orderId, |
|
|
|
ProductId = orderSkuJToken.Value<string>("wareId"), |
|
|
|
SkuId = orderSkuId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
PurchaseOrderPKId = purchaseOrder.Id, |
|
|
|
//UnitCost = purchaseOrder.UnitCost,
|
|
|
|
DeductionQuantity = deductionQuantity, |
|
|
|
DeliveryExpressFreight = currentSkuDeliveryFreight, |
|
|
|
//TotalCost = currentPurchaseAmount,
|
|
|
|
ConsumableAmount = purchaseOrder.SingleConsumableAmount * deductionQuantity, |
|
|
|
FirstFreight = purchaseOrder.SingleFirstFreight * deductionQuantity, |
|
|
|
//OperationAmount = purchaseOrder.SingleOperationAmount * deductionQuantity,
|
|
|
|
InStorageAmount = purchaseOrder.SingleInStorageAmount * deductionQuantity, |
|
|
|
OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity, |
|
|
|
PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, |
|
|
|
SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, |
|
|
|
StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, |
|
|
|
IsEnabled = true |
|
|
|
}; |
|
|
|
|
|
|
|
//orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential -
|
|
|
|
// (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) -
|
|
|
|
// itemPrice * deductionQuantity * platformCommissionRatio;
|
|
|
|
|
|
|
|
//var koudian = (skuShouldPay.Value - venderFee.Value) * deductionQuantity * platformCommissionRatio;
|
|
|
|
//orderCostDetail.SkuGrossProfit = (skuShouldPay.Value + pingtaiCoupon.Value) * deductionQuantity -
|
|
|
|
// orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight -
|
|
|
|
// koudian;
|
|
|
|
|
|
|
|
orderCostDetail.CalculationSkuGrossProfit(skuShouldPay ?? 0M, |
|
|
|
skuPingTaiChengDanYouHuiQuan ?? 0M, |
|
|
|
skuSuperRedEnvelope ?? 0M, |
|
|
|
skuXianPinLeiDongQuan ?? 0M, |
|
|
|
skuVenderFee ?? 0M, |
|
|
|
skuJingDou ?? 0M, |
|
|
|
skuDongQuan ?? 0M, |
|
|
|
skuBalnace ?? 0M, |
|
|
|
platformCommissionRatio); |
|
|
|
insertOrderCostDetailList.Add(orderCostDetail); |
|
|
|
var purchaseOrder = dbPurchaseOrderList.FirstOrDefault(po => po.StorageType == dbOrder.StorageType && |
|
|
|
po.RemainingQuantity != 0 && |
|
|
|
po.SkuId == orderSkuId); |
|
|
|
if (purchaseOrder == null) |
|
|
|
break; //没有库存了
|
|
|
|
|
|
|
|
//本次扣减量
|
|
|
|
var deductionQuantity = purchaseOrder.RemainingQuantity >= itemTotal ? itemTotal : purchaseOrder.RemainingQuantity; |
|
|
|
//var deductionQuantity = itemTotal;
|
|
|
|
//本次扣减量的采购成本
|
|
|
|
var currentPurchaseAmount = purchaseOrder.UnitCost * deductionQuantity; |
|
|
|
//本次扣减量的发货运费
|
|
|
|
var currentSkuDeliveryFreight = isReduceMultiTimes ? |
|
|
|
(purchaseOrder.SingleDeliveryFreight / 2 * deductionQuantity) : |
|
|
|
(purchaseOrder.SingleDeliveryFreight + purchaseOrder.SingleDeliveryFreight / 2 * (deductionQuantity - 1)); |
|
|
|
|
|
|
|
purchaseOrder.RemainingQuantity -= deductionQuantity; |
|
|
|
itemTotal -= deductionQuantity; |
|
|
|
|
|
|
|
//累计采购成本
|
|
|
|
orderCostPurchaseAmount += currentPurchaseAmount; |
|
|
|
//累计发货运费(销售运费)
|
|
|
|
orderDeliveryExpressFreight += currentSkuDeliveryFreight; |
|
|
|
isReduceMultiTimes = true; |
|
|
|
|
|
|
|
var updateSql = fsql.Update<PurchaseOrder>(purchaseOrder.Id).Set(po => po.RemainingQuantity - deductionQuantity); |
|
|
|
updatePurchaseOrderList.Add(updateSql); |
|
|
|
|
|
|
|
var orderCostDetail = new OrderCostDetail() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
OrderId = orderId, |
|
|
|
ProductId = orderSkuJToken.Value<string>("wareId"), |
|
|
|
SkuId = orderSkuId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
PurchaseOrderPKId = purchaseOrder.Id, |
|
|
|
//UnitCost = purchaseOrder.UnitCost,
|
|
|
|
DeductionQuantity = deductionQuantity, |
|
|
|
DeliveryExpressFreight = currentSkuDeliveryFreight, |
|
|
|
//TotalCost = currentPurchaseAmount,
|
|
|
|
ConsumableAmount = purchaseOrder.SingleConsumableAmount * deductionQuantity, |
|
|
|
FirstFreight = purchaseOrder.SingleFirstFreight * deductionQuantity, |
|
|
|
//OperationAmount = purchaseOrder.SingleOperationAmount * deductionQuantity,
|
|
|
|
InStorageAmount = purchaseOrder.SingleInStorageAmount * deductionQuantity, |
|
|
|
OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity, |
|
|
|
PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, |
|
|
|
SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, |
|
|
|
StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, |
|
|
|
IsEnabled = true |
|
|
|
}; |
|
|
|
|
|
|
|
//orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential -
|
|
|
|
// (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) -
|
|
|
|
// itemPrice * deductionQuantity * platformCommissionRatio;
|
|
|
|
|
|
|
|
//var koudian = (skuShouldPay.Value - venderFee.Value) * deductionQuantity * platformCommissionRatio;
|
|
|
|
//orderCostDetail.SkuGrossProfit = (skuShouldPay.Value + pingtaiCoupon.Value) * deductionQuantity -
|
|
|
|
// orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight -
|
|
|
|
// koudian;
|
|
|
|
|
|
|
|
orderCostDetail.CalculationSkuGrossProfit(skuShouldPay ?? 0M, |
|
|
|
skuPingTaiChengDanYouHuiQuan ?? 0M, |
|
|
|
skuSuperRedEnvelope ?? 0M, |
|
|
|
skuXianPinLeiDongQuan ?? 0M, |
|
|
|
skuVenderFee ?? 0M, |
|
|
|
skuJingDou ?? 0M, |
|
|
|
skuDongQuan ?? 0M, |
|
|
|
skuBalnace ?? 0M, |
|
|
|
platformCommissionRatio); |
|
|
|
insertOrderCostDetailList.Add(orderCostDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 计算成本
|
|
|
|
orderCost = new OrderCost() |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
PlatformCommissionRatio = platformCommissionRatio, |
|
|
|
PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, |
|
|
|
Profit = 0, |
|
|
|
PurchaseAmount = orderCostPurchaseAmount, |
|
|
|
DeliveryExpressFreight = orderDeliveryExpressFreight, |
|
|
|
CreateTime = DateTime.Now |
|
|
|
}; |
|
|
|
if (dbOrder.OrderTotalPrice != 0) |
|
|
|
orderCost.CalculationOrderProfitAndCost(dbOrder, null); |
|
|
|
else |
|
|
|
orderCost.CalculationOrderProfitAndCost(actualAmount, null); |
|
|
|
#region 计算成本
|
|
|
|
orderCost = new OrderCost() |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
PlatformCommissionRatio = platformCommissionRatio, |
|
|
|
PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, |
|
|
|
Profit = 0, |
|
|
|
PurchaseAmount = orderCostPurchaseAmount, |
|
|
|
DeliveryExpressFreight = orderDeliveryExpressFreight, |
|
|
|
CreateTime = DateTime.Now |
|
|
|
}; |
|
|
|
if (dbOrder.OrderTotalPrice != 0) |
|
|
|
orderCost.CalculationOrderProfitAndCost(dbOrder, null); |
|
|
|
else |
|
|
|
orderCost.CalculationOrderProfitAndCost(actualAmount, null); |
|
|
|
|
|
|
|
insertOrderCostList.Add(orderCost); |
|
|
|
#endregion
|
|
|
|
insertOrderCostList.Add(orderCost); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|