|
|
@ -55,7 +55,8 @@ namespace BBWY.Server.Business |
|
|
|
PurchaseMethod = aso.PurchaseMethod, |
|
|
|
PurchaseOrderId = aso.PurchaseOrderId, |
|
|
|
PurchaseOrderPKId = aso.PurchaseOrderPKId, |
|
|
|
PurchasePlatform = aso.PurchasePlatform |
|
|
|
PurchasePlatform = aso.PurchasePlatform, |
|
|
|
SDRefundFreight = aso.SDRefundFreight |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
@ -73,7 +74,8 @@ namespace BBWY.Server.Business |
|
|
|
.WhereIf(request.EndDate != null, (aso, osku, oc) => aso.ApplyTime <= request.EndDate) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.Spu), (aso, osku, oc) => aso.ProductId == request.Spu) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.Sku), (aso, osku, oc) => aso.SkuId == request.Sku) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.OrderId), (aso, osku, oc) => aso.OrderId == request.OrderId); |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.OrderId), (aso, osku, oc) => aso.OrderId == request.OrderId) |
|
|
|
.WhereIf(request.OnlyUnhandle, (aso, osku, oc) => aso.ProductHealth == null || aso.ProductResult == null); |
|
|
|
} |
|
|
|
select = select.Where((aso, osku, oc) => aso.ShopId == request.ShopId) |
|
|
|
.OrderByDescending((aso, osku, oc) => aso.ApplyTime) |
|
|
@ -124,85 +126,83 @@ namespace BBWY.Server.Business |
|
|
|
dbAfterSaleOrder.ReissueProductAmount = 0M; |
|
|
|
dbAfterSaleOrder.StorageAmount = 0M; |
|
|
|
dbAfterSaleOrder.AfterTotalCost = 0M; |
|
|
|
dbAfterSaleOrder.SDRefundFreight = 0M; |
|
|
|
|
|
|
|
dbAfterSaleOrder.PurchaseMethod = null; |
|
|
|
dbAfterSaleOrder.PurchasePlatform = null; |
|
|
|
dbAfterSaleOrder.PurchaseOrderId = string.Empty; |
|
|
|
dbAfterSaleOrder.PurchaseOrderPKId = null; |
|
|
|
|
|
|
|
if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.维修 || |
|
|
|
dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发 || |
|
|
|
dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.线下换新) |
|
|
|
if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.SD退货) |
|
|
|
{ |
|
|
|
if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发) |
|
|
|
dbAfterSaleOrder.ProductHealth = Model.Enums.ProductHealth.客户无退货; |
|
|
|
|
|
|
|
dbAfterSaleOrder.ReissueProductAmount = editAfterSaleOrderRequest.ReissueProductAmount; |
|
|
|
|
|
|
|
if (dbOrder.StorageType == Model.Enums.StorageType.代发) |
|
|
|
dbAfterSaleOrder.ReissueFreight = editAfterSaleOrderRequest.ReissueFreight; //其他单单更新采购运费
|
|
|
|
else |
|
|
|
dbAfterSaleOrder.DeliveryExpressFreight = editAfterSaleOrderRequest.ReissueFreight; //代发单更新快递费
|
|
|
|
} |
|
|
|
else if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.换新 && dbOrderCostDetail != null) |
|
|
|
{ |
|
|
|
dbAfterSaleOrder.ConsumableAmount = dbOrderCostDetail.ConsumableAmount; |
|
|
|
dbAfterSaleOrder.DeliveryExpressFreight = dbOrderCostDetail.DeliveryExpressFreight; |
|
|
|
dbAfterSaleOrder.FirstFreight = dbOrderCostDetail.FirstFreight; |
|
|
|
dbAfterSaleOrder.ReissueProductAmount = dbOrderCostDetail.SkuAmount; |
|
|
|
dbAfterSaleOrder.ReissueFreight = dbOrderCostDetail.PurchaseFreight; |
|
|
|
dbAfterSaleOrder.StorageAmount = dbOrderCostDetail.StorageAmount; |
|
|
|
dbAfterSaleOrder.InStorageAmount = dbOrderCostDetail.InStorageAmount; |
|
|
|
dbAfterSaleOrder.OutStorageAmount = dbOrderCostDetail.OutStorageAmount; |
|
|
|
|
|
|
|
//if (dbOrder.StorageType == Model.Enums.StorageType.云仓)
|
|
|
|
//{
|
|
|
|
// dbAfterSaleOrder.InStorageAmount = 0.2M * dbOrderCostDetail.DeductionQuantity;
|
|
|
|
// dbAfterSaleOrder.OutStorageAmount = 0.9M * dbOrderCostDetail.DeductionQuantity;
|
|
|
|
//}
|
|
|
|
//else if (dbOrder.StorageType == Model.Enums.StorageType.京仓)
|
|
|
|
//{
|
|
|
|
// dbAfterSaleOrder.InStorageAmount = 1.4M * dbOrderCostDetail.DeductionQuantity; //0.2
|
|
|
|
// dbAfterSaleOrder.OutStorageAmount = 1.4M * dbOrderCostDetail.DeductionQuantity; //2.8
|
|
|
|
//}
|
|
|
|
} |
|
|
|
|
|
|
|
if ((dbAfterSaleOrder.ProductResult == Model.Enums.ProductResult.退回云仓 || dbAfterSaleOrder.ProductResult == Model.Enums.ProductResult.退回京仓) && |
|
|
|
dbOrderCostDetail != null && |
|
|
|
dbPurchaseOrder != null) |
|
|
|
dbAfterSaleOrder.RefundInStorageAmount = dbPurchaseOrder.SingleRefundInStorageAmount * dbOrderCostDetail.DeductionQuantity; |
|
|
|
|
|
|
|
if (dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.可二次销售) |
|
|
|
{ |
|
|
|
//原sku采购成本
|
|
|
|
dbAfterSaleOrder.RefundPurchaseAmount = dbOrderCostDetail.TotalCost; |
|
|
|
} |
|
|
|
else if (dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.残次品_无法二次销售 || |
|
|
|
dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.客户无退货 || |
|
|
|
dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.破损) |
|
|
|
{ |
|
|
|
dbAfterSaleOrder.RefundPurchaseAmount = 0M; |
|
|
|
dbAfterSaleOrder.SDRefundFreight = editAfterSaleOrderRequest.SDRefundFreight; |
|
|
|
dbAfterSaleOrder.AfterTotalCost = editAfterSaleOrderRequest.SDRefundFreight; |
|
|
|
} |
|
|
|
else if (dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.厂家退货退款 && |
|
|
|
dbOrderCostDetail != null && |
|
|
|
dbPurchaseOrder != null) |
|
|
|
else |
|
|
|
{ |
|
|
|
dbAfterSaleOrder.PurchaseMethod = dbPurchaseOrder.PurchaseMethod; |
|
|
|
dbAfterSaleOrder.PurchasePlatform = dbPurchaseOrder.PurchasePlatform; |
|
|
|
dbAfterSaleOrder.PurchaseOrderId = dbPurchaseOrder.PurchaseOrderId; |
|
|
|
dbAfterSaleOrder.PurchaseOrderPKId = dbPurchaseOrder.Id; |
|
|
|
if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.维修 || |
|
|
|
dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发 || |
|
|
|
dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.线下换新) |
|
|
|
{ |
|
|
|
if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.商品补发) |
|
|
|
dbAfterSaleOrder.ProductHealth = Model.Enums.ProductHealth.客户无退货; |
|
|
|
|
|
|
|
dbAfterSaleOrder.ReissueProductAmount = editAfterSaleOrderRequest.ReissueProductAmount; |
|
|
|
|
|
|
|
if (dbOrder.StorageType == Model.Enums.StorageType.代发) |
|
|
|
dbAfterSaleOrder.ReissueFreight = editAfterSaleOrderRequest.ReissueFreight; //其他单单更新采购运费
|
|
|
|
else |
|
|
|
dbAfterSaleOrder.DeliveryExpressFreight = editAfterSaleOrderRequest.ReissueFreight; //代发单更新快递费
|
|
|
|
} |
|
|
|
else if (dbAfterSaleOrder.ServiceResult == Model.Enums.ServiceResult.换新 && dbOrderCostDetail != null) |
|
|
|
{ |
|
|
|
dbAfterSaleOrder.ConsumableAmount = dbOrderCostDetail.ConsumableAmount; |
|
|
|
dbAfterSaleOrder.DeliveryExpressFreight = dbOrderCostDetail.DeliveryExpressFreight; |
|
|
|
dbAfterSaleOrder.FirstFreight = dbOrderCostDetail.FirstFreight; |
|
|
|
dbAfterSaleOrder.ReissueProductAmount = dbOrderCostDetail.SkuAmount; |
|
|
|
dbAfterSaleOrder.ReissueFreight = dbOrderCostDetail.PurchaseFreight; |
|
|
|
dbAfterSaleOrder.StorageAmount = dbOrderCostDetail.StorageAmount; |
|
|
|
dbAfterSaleOrder.InStorageAmount = dbOrderCostDetail.InStorageAmount; |
|
|
|
dbAfterSaleOrder.OutStorageAmount = dbOrderCostDetail.OutStorageAmount; |
|
|
|
} |
|
|
|
|
|
|
|
if ((dbAfterSaleOrder.ProductResult == Model.Enums.ProductResult.退回云仓 || dbAfterSaleOrder.ProductResult == Model.Enums.ProductResult.退回京仓) && |
|
|
|
dbOrderCostDetail != null && |
|
|
|
dbPurchaseOrder != null) |
|
|
|
dbAfterSaleOrder.RefundInStorageAmount = dbPurchaseOrder.SingleRefundInStorageAmount * dbOrderCostDetail.DeductionQuantity; |
|
|
|
|
|
|
|
if (dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.可二次销售) |
|
|
|
{ |
|
|
|
//原sku采购成本
|
|
|
|
dbAfterSaleOrder.RefundPurchaseAmount = dbOrderCostDetail.SkuAmount; //只退货款
|
|
|
|
} |
|
|
|
else if (dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.残次品_无法二次销售 || |
|
|
|
dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.客户无退货 || |
|
|
|
dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.破损) |
|
|
|
{ |
|
|
|
dbAfterSaleOrder.RefundPurchaseAmount = 0M; |
|
|
|
} |
|
|
|
else if (dbAfterSaleOrder.ProductHealth == Model.Enums.ProductHealth.厂家退货退款 && |
|
|
|
dbOrderCostDetail != null && |
|
|
|
dbPurchaseOrder != null) |
|
|
|
{ |
|
|
|
dbAfterSaleOrder.PurchaseMethod = dbPurchaseOrder.PurchaseMethod; |
|
|
|
dbAfterSaleOrder.PurchasePlatform = dbPurchaseOrder.PurchasePlatform; |
|
|
|
dbAfterSaleOrder.PurchaseOrderId = dbPurchaseOrder.PurchaseOrderId; |
|
|
|
dbAfterSaleOrder.PurchaseOrderPKId = dbPurchaseOrder.Id; |
|
|
|
} |
|
|
|
|
|
|
|
dbAfterSaleOrder.AfterTotalCost = dbAfterSaleOrder.ReissueAfterSaleAmount.Value + |
|
|
|
dbAfterSaleOrder.ConsumableAmount.Value + |
|
|
|
dbAfterSaleOrder.DeliveryExpressFreight.Value + |
|
|
|
dbAfterSaleOrder.FirstFreight.Value + |
|
|
|
dbAfterSaleOrder.InStorageAmount.Value + |
|
|
|
dbAfterSaleOrder.OutStorageAmount.Value + |
|
|
|
dbAfterSaleOrder.RefundInStorageAmount.Value + |
|
|
|
dbAfterSaleOrder.ReissueFreight.Value + |
|
|
|
dbAfterSaleOrder.ReissueProductAmount.Value + |
|
|
|
dbAfterSaleOrder.StorageAmount; |
|
|
|
} |
|
|
|
|
|
|
|
dbAfterSaleOrder.AfterTotalCost = dbAfterSaleOrder.ReissueAfterSaleAmount.Value + |
|
|
|
dbAfterSaleOrder.ConsumableAmount.Value + |
|
|
|
dbAfterSaleOrder.DeliveryExpressFreight.Value + |
|
|
|
dbAfterSaleOrder.FirstFreight.Value + |
|
|
|
dbAfterSaleOrder.InStorageAmount.Value + |
|
|
|
dbAfterSaleOrder.OutStorageAmount.Value + |
|
|
|
dbAfterSaleOrder.RefundInStorageAmount.Value + |
|
|
|
dbAfterSaleOrder.ReissueFreight.Value + |
|
|
|
dbAfterSaleOrder.ReissueProductAmount.Value + |
|
|
|
dbAfterSaleOrder.StorageAmount; |
|
|
|
#endregion
|
|
|
|
|
|
|
|
dbOrderCost.CalculationOrderProfitAndCost(dbOrder, afterSaleOrderList); |
|
|
|