diff --git a/BBWY.Client/APIServices/OrderService.cs b/BBWY.Client/APIServices/OrderService.cs index d5d24749..707bfd6e 100644 --- a/BBWY.Client/APIServices/OrderService.cs +++ b/BBWY.Client/APIServices/OrderService.cs @@ -30,7 +30,7 @@ namespace BBWY.Client.APIServices bool onlyDF, bool excludeSD, bool excludeCanceled, - bool? isContainsAfterSaleOrder) + bool includeExceptionOrder) { return SendRequest(globalContext.BBYWApiHost, "api/order/getOrderList", new { @@ -49,7 +49,7 @@ namespace BBWY.Client.APIServices onlyDF, excludeSD, excludeCanceled, - isContainsAfterSaleOrder + includeExceptionOrder }, null, HttpMethod.Post); } diff --git a/BBWY.Client/Models/Order/Order.cs b/BBWY.Client/Models/Order/Order.cs index 73df0c4d..aa084909 100644 --- a/BBWY.Client/Models/Order/Order.cs +++ b/BBWY.Client/Models/Order/Order.cs @@ -214,7 +214,7 @@ namespace BBWY.Client.Models { get { - return StorageType != null && + return StorageType != null && StorageType != Models.StorageType.SD && ((OrderCost?.BeforeTotalCost ?? 0M) == 0M || (OrderCost?.BeforeTotalCost ?? 0M) > OrderSellerPrice + FreightPrice); } diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index f2e71c45..1b823f25 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -47,6 +47,7 @@ namespace BBWY.Client.ViewModels private Random random; private GlobalContext globalContext; private bool? includeAfterOrder; + private bool includeExceptionOrder; private decimal currentConditionsTotalProfit; private string searchServiceId; @@ -124,11 +125,17 @@ namespace BBWY.Client.ViewModels public ICommand EditAfterSaleOrderRefundPurchaseAmountCommand { get; set; } + public ICommand SetIncludeExceptionOrderCommand { get; set; } + /// /// 当前条件利润汇总 /// public decimal CurrentConditionsTotalProfit { get => currentConditionsTotalProfit; set { Set(ref currentConditionsTotalProfit, value); } } + /// + /// 是否包含异常订单 + /// + public bool IncludeExceptionOrder { get => includeExceptionOrder; set { Set(ref includeExceptionOrder, value); } } public OrderListViewModel(OrderService orderService, StatisticsService statisticsService, AfterOrderService afterOrderService, GlobalContext globalContext, ChoosePurchaseSchemeViewModel choosePurchaseSchemeViewModel) { @@ -188,6 +195,7 @@ namespace BBWY.Client.ViewModels EditVenderRemarkCommand = new RelayCommand(EditVenderRemark); ExportCommand = new RelayCommand(Export); SetIncludeAfterOrderCommand = new RelayCommand(SetIncludeAfterOrder); + SetIncludeExceptionOrderCommand = new RelayCommand(SetIncludeExceptionOrder); EditAfterSaleOrderCommand = new RelayCommand(EditAfterSaleOrder); EditAfterSaleOrderRefundPurchaseAmountCommand = new RelayCommand(EditAfterSaleOrderRefundPurchaseAmount); FindAfterSaleOrderCommand = new RelayCommand(FindAfterSaleOrder); @@ -207,6 +215,7 @@ namespace BBWY.Client.ViewModels StartDate = DateTime.Now.Date.AddDays(-6); PageIndex = 1; IncludeAfterOrder = null; + IncludeExceptionOrder = false; } public override void Refresh() @@ -235,6 +244,13 @@ namespace BBWY.Client.ViewModels Task.Factory.StartNew(() => LoadOrder(1)); //选择状态查询订单 } + private void SetIncludeExceptionOrder() + { + InitSearchParam(); + IncludeExceptionOrder = true; + Task.Factory.StartNew(() => LoadOrder(1)); + } + public void SetIncludeAfterOrder() { InitSearchParam(); @@ -337,7 +353,7 @@ namespace BBWY.Client.ViewModels OnlyDF, ExcludeSD, ExcludeCanceled, - IncludeAfterOrder); + IncludeExceptionOrder); if (!response.Success) { IsLoading = false; diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml index 7343c220..f25e672f 100644 --- a/BBWY.Client/Views/Order/OrderList.xaml +++ b/BBWY.Client/Views/Order/OrderList.xaml @@ -60,9 +60,10 @@ Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Null}"> + ConverterParameter=";;false:&:#8080FF:#F2F2F2:6"> + @@ -70,6 +71,7 @@ ConverterParameter=";:&:#FFFFFF:#4A4A4A:6"> + @@ -102,8 +104,9 @@ Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=已取消:White:#4A4A4A}" Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.已取消}"/> + Background="{Binding IncludeExceptionOrder,Converter={StaticResource objConverter},ConverterParameter=true:#8080FF:#F2F2F2}" + Foreground="{Binding IncludeExceptionOrder,Converter={StaticResource objConverter},ConverterParameter=true:White:#4A4A4A}" + Command="{Binding SetIncludeExceptionOrderCommand}"/> o.OrderState == searchOrderRequest.OrderState) .WhereIf(searchOrderRequest.StartDate != null, (o, ocs, oct) => o.StartTime >= searchOrderRequest.StartDate) .WhereIf(searchOrderRequest.EndDate != null, (o, ocs, oct) => o.StartTime <= searchOrderRequest.EndDate) - .WhereIf(searchOrderRequest.IsContainsAfterSaleOrder != null, (o, ocs, oct) => o.IsAfterSaleOrder == searchOrderRequest.IsContainsAfterSaleOrder) + .WhereIf(searchOrderRequest.IncludeExceptionOrder, (o, ocs, oct) => o.StorageType != null && o.StorageType != Enums.StorageType.SD && + (oct.PurchaseAmount == 0M || + oct.PurchaseAmount + oct.DeliveryExpressFreight < o.OrderSellerPrice + o.FreightPrice)) + //.WhereIf(searchOrderRequest.IsContainsAfterSaleOrder != null, (o, ocs, oct) => o.IsAfterSaleOrder == searchOrderRequest.IsContainsAfterSaleOrder) .WhereIf(searchOrderRequest.OnlyDF, (o, ocs, oct) => o.StorageType == Enums.StorageType.代发) .WhereIf(searchOrderRequest.ExcludeCanceled, (o, ocs, oct) => o.OrderState != Enums.OrderState.已取消) .WhereIf(searchOrderRequest.ExcludeSD && !searchOrderRequest.OnlyDF, (o, ocs, oct) => o.StorageType == null || o.StorageType != Enums.StorageType.SD) diff --git a/BBWY.Server.Model/Dto/Request/Order/SearchOrderRequest.cs b/BBWY.Server.Model/Dto/Request/Order/SearchOrderRequest.cs index 45372fe7..74e8e388 100644 --- a/BBWY.Server.Model/Dto/Request/Order/SearchOrderRequest.cs +++ b/BBWY.Server.Model/Dto/Request/Order/SearchOrderRequest.cs @@ -61,7 +61,9 @@ namespace BBWY.Server.Model.Dto /// /// 是否包含售后单 /// - public bool? IsContainsAfterSaleOrder { get;set; } + //public bool? IsContainsAfterSaleOrder { get;set; } + + public bool IncludeExceptionOrder { get; set; } } }