diff --git a/BBWY.Client/APIServices/PurchaseOrderService.cs b/BBWY.Client/APIServices/PurchaseOrderService.cs index e47fd4ab..b6c37501 100644 --- a/BBWY.Client/APIServices/PurchaseOrderService.cs +++ b/BBWY.Client/APIServices/PurchaseOrderService.cs @@ -56,10 +56,11 @@ namespace BBWY.Client.APIServices /// /// /// - public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount) + public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode) { return SendRequest(globalContext.BBYWApiHost, "api/purchaseOrder/PreviewPurchaseOrder", new { + purchaseOrderMode, consignee, CargoParamList = purchaseSchemeProductSkuList.Select(sku => new { @@ -94,6 +95,7 @@ namespace BBWY.Client.APIServices IList purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount, + PurchaseOrderMode purchaseOrderMode, string tradeMode, string remark, string orderId, @@ -103,6 +105,7 @@ namespace BBWY.Client.APIServices { return SendRequest(globalContext.BBYWApiHost, "api/purchaseOrder/FastCreateOrder", new { + purchaseOrderMode, consignee, CargoParamList = purchaseSchemeProductSkuList.Select(sku => new { diff --git a/BBWY.Client/App.xaml b/BBWY.Client/App.xaml index 0c4e72d0..19e6c302 100644 --- a/BBWY.Client/App.xaml +++ b/BBWY.Client/App.xaml @@ -20,6 +20,7 @@ + diff --git a/BBWY.Client/Converters/EnumToBooleanConverter.cs b/BBWY.Client/Converters/EnumToBooleanConverter.cs new file mode 100644 index 00000000..0933e9b5 --- /dev/null +++ b/BBWY.Client/Converters/EnumToBooleanConverter.cs @@ -0,0 +1,21 @@ +using System; +using System.Globalization; +using System.Windows.Data; + +namespace BBWY.Client.Converters +{ + public class EnumToBooleanConverter : IValueConverter + { + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return value == null ? false : value.Equals(parameter); + } + + /// + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return value != null && value.Equals(true) ? parameter : Binding.DoNothing; + } + } +} diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index f446b363..3790cc9d 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -20,6 +20,15 @@ 线下采购 = 1 } + /// + /// 采购单模式 + /// + public enum PurchaseOrderMode + { + 批发 = 0, + 代发 = 1 + } + /// /// 仓储类型 /// diff --git a/BBWY.Client/Models/Order/RelationPurchaseOrderSku.cs b/BBWY.Client/Models/Order/RelationPurchaseOrderSku.cs index 177f0f43..87082933 100644 --- a/BBWY.Client/Models/Order/RelationPurchaseOrderSku.cs +++ b/BBWY.Client/Models/Order/RelationPurchaseOrderSku.cs @@ -5,6 +5,12 @@ namespace BBWY.Client.Models { public class RelationPurchaseOrderSku : NotifyObject { + public RelationPurchaseOrderSku() + { + SingleSkuAmountStr = (0).ToString(); + } + + private string singleSkuAmountStr; private decimal singleSkuAmount; private decimal skuAmount; @@ -18,6 +24,18 @@ namespace BBWY.Client.Models public string Title { get; set; } + public string SingleSkuAmountStr + { + get => singleSkuAmountStr; set + { + if (Set(ref singleSkuAmountStr, value)) + { + if (decimal.TryParse(value, out decimal d)) + SingleSkuAmount = d; + } + } + } + public decimal SingleSkuAmount { get => singleSkuAmount; @@ -41,5 +59,6 @@ namespace BBWY.Client.Models [JsonIgnore] public Action OnSkuAmountChanged { get; set; } + } } diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index 9075f60f..320c224f 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -351,7 +351,8 @@ namespace BBWY.Client.ViewModels SkuId = osku.Id, Quantity = osku.ItemTotal, Title = osku.Title, - SingleSkuAmount = (order.OrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == osku.Id)?.SkuAmount / osku.ItemTotal) ?? 0 + SingleSkuAmount = (order.OrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == osku.Id)?.SkuAmount / osku.ItemTotal) ?? 0, + SingleSkuAmountStr = ((order.OrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == osku.Id)?.SkuAmount / osku.ItemTotal) ?? 0).ToString() }).ToList()); relationPurchaseOrder.Closed += RelationPurchaseOrder_Closed; relationPurchaseOrder.ShowDialog(); diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs index 694f5fcd..af3df55c 100644 --- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs +++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs @@ -36,6 +36,15 @@ namespace BBWY.Client.ViewModels public string Town { get => town; set { Set(ref town, value); } } public string PrucahseRemark { get => prucahseRemark; set { Set(ref prucahseRemark, value); } } + public PurchaseOrderMode PurchaseOrderMode + { + get => purchaseOrderMode; set + { + if (Set(ref purchaseOrderMode, value)) + OnDelayTriggerExecute(Guid.NewGuid().ToString()); + } + } + private OrderListViewModel orderListViewModel; private GlobalContext globalContext; private string orderId; @@ -56,7 +65,7 @@ namespace BBWY.Client.ViewModels private string county; private string town; private string prucahseRemark; - + private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.代发; private string tradeMode; public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService, GlobalContext globalContext, OrderListViewModel orderListViewModel) @@ -69,6 +78,7 @@ namespace BBWY.Client.ViewModels FastCreateOrderCommand = new RelayCommand(FastCreateOrder); this.globalContext = globalContext; this.orderListViewModel = orderListViewModel; + //PurchaseOrderMode = PurchaseOrderMode.代发; } public void SetData(string orderId, int skuItemCount, PurchaseScheme purchaseScheme, PurchaseAccount purchaseAccount, Consignee consignee) @@ -102,7 +112,13 @@ namespace BBWY.Client.ViewModels { WaitHandle.WaitAll(waitList.ToArray()); //IsLoading = false; - OnDelayTriggerExecute(string.Empty); + if (PurchaseSchemeProductSkuList.Count() > 0) + OnDelayTriggerExecute(Guid.NewGuid().ToString()); + else + { + IsLoading = false; + App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示")); + } }); } @@ -150,6 +166,7 @@ namespace BBWY.Client.ViewModels //记录日志 errorMsg = response.Msg; + Console.WriteLine(errorMsg); return null; } var jobject = response.Data; @@ -205,6 +222,8 @@ namespace BBWY.Client.ViewModels private void OnDelayTriggerExecute(string key) { + if (string.IsNullOrEmpty(key)) + return; IsLoading = true; Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee() { @@ -216,7 +235,7 @@ namespace BBWY.Client.ViewModels Province = Province, TelePhone = Mobile, Town = Town - }, PurchaseSchemeProductSkuList, Platform.阿里巴巴, PurchaseAccount)) + }, PurchaseSchemeProductSkuList, Platform.阿里巴巴, PurchaseAccount, PurchaseOrderMode)) .ContinueWith(t => { IsLoading = false; @@ -242,9 +261,19 @@ namespace BBWY.Client.ViewModels MessageBox.Show("总金额为0不能提交订单", "提示"); return; } + if (string.IsNullOrEmpty(Mobile) || + string.IsNullOrEmpty(Address) || + string.IsNullOrEmpty(City) || + string.IsNullOrEmpty(Province) || + string.IsNullOrEmpty(County) || + string.IsNullOrEmpty(Town) || + string.IsNullOrEmpty(ContactName)) + { + MessageBox.Show("收货人信息不全", "下单"); + return; + } IsLoading = true; - Task.Factory.StartNew(() => purchaseOrderService.FastCreateOrder(new Consignee() { Address = Address, @@ -258,6 +287,7 @@ namespace BBWY.Client.ViewModels }, PurchaseSchemeProductSkuList, Platform.阿里巴巴, PurchaseAccount, + PurchaseOrderMode, tradeMode, PrucahseRemark, orderId, diff --git a/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml b/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml index 04b10983..2341956b 100644 --- a/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml +++ b/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml @@ -123,7 +123,7 @@ TextWrapping="Wrap"/> + Text="{Binding SingleSkuAmountStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> diff --git a/BBWY.Client/Views/Purchase/1688Purchase.xaml b/BBWY.Client/Views/Purchase/1688Purchase.xaml index adfa7a4e..1defc6aa 100644 --- a/BBWY.Client/Views/Purchase/1688Purchase.xaml +++ b/BBWY.Client/Views/Purchase/1688Purchase.xaml @@ -4,6 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BBWY.Client.Views.Purchase" + xmlns:cmodel="clr-namespace:BBWY.Client.Models" xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" mc:Ignorable="d" @@ -122,6 +123,14 @@ + + + + diff --git a/BBWY.Server.Business/PlatformSDK/_1688Business.cs b/BBWY.Server.Business/PlatformSDK/_1688Business.cs index 3aab9b76..526fcf79 100644 --- a/BBWY.Server.Business/PlatformSDK/_1688Business.cs +++ b/BBWY.Server.Business/PlatformSDK/_1688Business.cs @@ -72,7 +72,7 @@ namespace BBWY.Server.Business townText = previewOrderReuqest.Consignee.Town }, cargoParamList = new List(), - flow = "general" + flow = previewOrderReuqest.PurchaseOrderMode == Enums.PurchaseOrderMode.批发 ? "general" : "saleproxy" }; foreach (var cargo in previewOrderReuqest.CargoParamList) { @@ -142,7 +142,7 @@ namespace BBWY.Server.Business var param = new { - flow = "general", + flow = createOnlinePurchaseOrderRequest.PurchaseOrderMode == Enums.PurchaseOrderMode.批发 ? "general" : "saleproxy", message = createOnlinePurchaseOrderRequest.Remark, addressParam = new { diff --git a/BBWY.Server.Business/Vender/VenderBusiness.cs b/BBWY.Server.Business/Vender/VenderBusiness.cs index 32e49b6c..d93417c3 100644 --- a/BBWY.Server.Business/Vender/VenderBusiness.cs +++ b/BBWY.Server.Business/Vender/VenderBusiness.cs @@ -20,7 +20,7 @@ namespace BBWY.Server.Business public VenderResponse GetVenderInfo(PlatformRequest platformRequest) { var relayAPIHost = GetPlatformRelayAPIHost(platformRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetVenderInfo", platformRequest, null, System.Net.Http.HttpMethod.Post); + var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetVenderInfo", platformRequest, null, HttpMethod.Post); if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; var response = JsonConvert.DeserializeObject>(sendResult.Content); diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs index ffe3c825..23d13394 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs @@ -4,6 +4,12 @@ namespace BBWY.Server.Model.Dto { public class PreviewOrderReuqest: PlatformRequest { + /// + /// 订单模式 + /// 1688 general大市场订单 saleproxy分销订单 + /// + public Enums.PurchaseOrderMode PurchaseOrderMode { get; set; } + public ConsigneeRequest Consignee { get; set; } public IList CargoParamList { get; set; } diff --git a/BBWY.Server.Model/Enums.cs b/BBWY.Server.Model/Enums.cs index 0464934d..6e767a6f 100644 --- a/BBWY.Server.Model/Enums.cs +++ b/BBWY.Server.Model/Enums.cs @@ -22,6 +22,15 @@ 线下采购 = 1 } + /// + /// 采购单模式 + /// + public enum PurchaseOrderMode + { + 批发 = 0, + 代发 = 1 + } + /// /// 仓储类型 ///