diff --git a/BBWYB.Client/Views/Order/OrderList.xaml.cs b/BBWYB.Client/Views/Order/OrderList.xaml.cs index d0f7e38..999a77e 100644 --- a/BBWYB.Client/Views/Order/OrderList.xaml.cs +++ b/BBWYB.Client/Views/Order/OrderList.xaml.cs @@ -19,7 +19,7 @@ namespace BBWYB.Client.Views.Order { this.Dispatcher.Invoke(() => { - scrollviewer_OrderList.Dispatcher.Invoke(() => scrollviewer_OrderList.ScrollToTop()); + scrollviewer_OrderList.Dispatcher?.Invoke(() => scrollviewer_OrderList.ScrollToTop()); }); }); } diff --git a/BBWYB.Client/Views/WebB/WebB.xaml.cs b/BBWYB.Client/Views/WebB/WebB.xaml.cs index a4ae4c4..90bd88a 100644 --- a/BBWYB.Client/Views/WebB/WebB.xaml.cs +++ b/BBWYB.Client/Views/WebB/WebB.xaml.cs @@ -23,6 +23,14 @@ namespace BBWYB.Client.Views.WebB { InitializeComponent(); this.Loaded += WebB_Loaded; + this.Unloaded += WebB_Unloaded; + } + + private void WebB_Unloaded(object sender, RoutedEventArgs e) + { + grid.Children.Remove(w2m.wb2); + //w2m.wb2.Dispose(); + w2m.Close(); } private void WebB_Loaded(object sender, System.Windows.RoutedEventArgs e) @@ -48,6 +56,7 @@ namespace BBWYB.Client.Views.WebB w2m.Init(); w2m.wb2.SetValue(Grid.RowProperty, 1); w2m.wb2.Margin = new Thickness(1, 0, 1, 0); + //grid.Children.Clear(); grid.Children.Add(w2m.wb2); if (w2m.IsInitializationCompleted && !isNavigated) diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 5b887d4..847fe46 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -71,6 +71,12 @@ namespace BBWYB.Server.Business return orderProductParamList; } + /// + /// 预览采购单 + /// + /// + /// + /// public PreviewOrderResponse PreviewPurchaseOrder(PreviewOrderRequest request) { nLogManager.Default().Info($"PreviewPurchaseOrder {JsonConvert.SerializeObject(request)}"); @@ -145,6 +151,11 @@ namespace BBWYB.Server.Business }; } + /// + /// 创建采购单 + /// + /// + /// public void CreatePurchaseOrder(CreateOrderRequest request) { nLogManager.Default().Info($"CreatePurchaseOrder\r\n{JsonConvert.SerializeObject(request)}"); @@ -304,6 +315,7 @@ namespace BBWYB.Server.Business PurchaseMethod = Enums.PurchaseMethod.线上采购, PurchaseOrderId = createOrderResponse.OrderId, PurchasePlatform = cargoParamGroup.PurchasePlatform, + PurchaserId = cargoParamGroup.PurchaserId, PurchaserName = cargoParamGroup.PurchaserName, ShopId = request.ShopId, BelongSkuIds = string.Join(",", belongSkuGroups.Select(bsg => bsg.Key)) @@ -373,6 +385,52 @@ namespace BBWYB.Server.Business }); } + /// + /// 获取关联订单列表 + /// + /// + /// + public IList GetAssociationPurchaseOrderList(string orderId) + { + IList list = new List(); + var purchaseOrderList = fsql.Select().Where(opi => opi.OrderId == orderId).ToList(); + var orderSkuList = fsql.Select().Where(osku => osku.OrderId == orderId).ToList(); + var orderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == orderId).ToList(); + + foreach (var purchaseOrder in purchaseOrderList) + { + var associationPurchaseOrder = new AssociationPurchaseOrderResponse() + { + PurchaseAccountId = purchaseOrder.PurchaseAccountId, + PurchaseAccountName = purchaseOrder.PurchaseAccountName, + PurchasePlatform = purchaseOrder.PurchasePlatform.Value, + PurchaserId = purchaseOrder.PurchaserId, + PurchaserName = purchaseOrder.PurchaserName, + PurchaserOrderId = purchaseOrder.PurchaseOrderId + }; + var currentOrderCostDetailList = orderCostDetailList.Where(ocd => ocd.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); + foreach (var orderCostDetail in currentOrderCostDetailList) + { + var orderSku = orderSkuList.FirstOrDefault(osku => osku.SkuId == orderCostDetail.SkuId); + var assocationOrderCostDetail = new AssocationOrderCostDetailResponse() + { + Id = orderCostDetail.Id, + Logo = orderSku.Logo, + Title = orderSku.Title, + OrderId = orderSku.OrderId, + SkuId = orderSku.SkuId, + PurchaseQuantity = orderCostDetail.DeductionQuantity ?? 0, + PurchaseFreight = orderCostDetail.PurchaseFreight ?? 0M, + SkuAmount = orderCostDetail.SkuAmount ?? 0M, + }; + if (assocationOrderCostDetail.PurchaseQuantity != 0) + assocationOrderCostDetail.PurchasePrice = assocationOrderCostDetail.SkuAmount / assocationOrderCostDetail.PurchaseQuantity; + } + list.Add(associationPurchaseOrder); + } + return list; + } + #region 1688CallBack public void CallbackFrom1688(string jsonStr) { diff --git a/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs b/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs index fdeb97a..0e0e21c 100644 --- a/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs +++ b/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs @@ -39,6 +39,12 @@ namespace BBWYB.Server.Model.Db [Column(MapType = typeof(int?))] public Enums.Platform? PurchasePlatform { get; set; } + /// + /// ɹId + /// + [Column(StringLength = 100)] + public string PurchaserId { get; set; } + /// /// ɹ /// diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssocationOrderCostDetailResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssocationOrderCostDetailResponse.cs new file mode 100644 index 0000000..164f6c9 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssocationOrderCostDetailResponse.cs @@ -0,0 +1,44 @@ +namespace BBWYB.Server.Model.Dto +{ + public class AssocationOrderCostDetailResponse + { + /// + /// SKU成本Id + /// + public long Id { get; set; } + + /// + /// 订单Id + /// + public string OrderId { get; set; } + + public string SkuId { get; set; } + + /// + /// SKU标题 + /// + public string Title { get; set; } + + public string Logo { get; set; } + + /// + /// 采购货款 + /// + public decimal SkuAmount { get; set; } + + /// + /// 采购运费 + /// + public decimal PurchaseFreight { get; set; } + + /// + /// 采购数量 + /// + public int PurchaseQuantity { get; set; } + + /// + /// 采购单价 + /// + public decimal PurchasePrice { get; set; } + } +} diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs new file mode 100644 index 0000000..fdf95b0 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs @@ -0,0 +1,53 @@ +namespace BBWYB.Server.Model.Dto +{ + public class AssociationPurchaseOrderResponse + { + public AssociationPurchaseOrderResponse() + { + AssocationOrderCostDetailList = new List(); + } + + /// + /// 采购单号 + /// + public string PurchaserOrderId { get; set; } + + public Enums.Platform PurchasePlatform { get; set; } + + /// + /// 买家账号Id (如果采购平台为不支持的平台,此Id可填空) + /// + public string PurchaseAccountId { get; set; } + + /// + /// 买家账号 + /// + public string PurchaseAccountName { get; set; } + + + /// + /// 商家Id + /// + public string PurchaserId { get; set; } + + /// + /// 商家名称 + /// + public string PurchaserName { get; set; } + + /// + /// 采购金额 + /// + public decimal PurchaseAmount { get; set; } + + /// + /// 采购运费 + /// + public decimal PurchaseFreight { get; set; } + + /// + /// 订单成本明细列表 + /// + public IList AssocationOrderCostDetailList { get; set; } + } +}