From 55e70a337cc5daf5803978cbfb738f31572cc04b Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 28 Apr 2023 02:05:38 +0800
Subject: [PATCH] 1
---
.../PurchaseScheme/ProductSkuWithScheme.cs | 69 ++++
.../PurchaseSchemeProductSku.cs | 8 +
.../Order/ChoosePurchaseSchemeViewModel.cs | 9 +-
.../Purchase/OnlinePurchaseViewModel.cs | 336 ++++++++++-------
.../Purchase/EditQuantityRatioWindow.xaml | 38 ++
.../Purchase/EditQuantityRatioWindow.xaml.cs | 43 +++
.../Views/Purchase/OnlinePurchase.xaml | 245 ++++++++++++-
.../PurchaseOrder/PurchaseOrderBusiness.cs | 339 ++++++++++--------
.../Db/Order/OrderPurchaseInfo.cs | 30 +-
.../PurchaseOrder/CargoParamRequest.cs | 8 +
.../PurchaseOrder/CreateOrderRequest.cs | 6 -
.../PurchaseOrder/PreviewOrderRequest.cs | 15 +-
.../PurchaseOrder/PurchaseAccountRequest.cs | 28 ++
13 files changed, 849 insertions(+), 325 deletions(-)
create mode 100644 BBWYB.Client/Models/PurchaseScheme/ProductSkuWithScheme.cs
create mode 100644 BBWYB.Client/Views/Purchase/EditQuantityRatioWindow.xaml
create mode 100644 BBWYB.Client/Views/Purchase/EditQuantityRatioWindow.xaml.cs
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseOrder/PurchaseAccountRequest.cs
diff --git a/BBWYB.Client/Models/PurchaseScheme/ProductSkuWithScheme.cs b/BBWYB.Client/Models/PurchaseScheme/ProductSkuWithScheme.cs
new file mode 100644
index 0000000..a283a12
--- /dev/null
+++ b/BBWYB.Client/Models/PurchaseScheme/ProductSkuWithScheme.cs
@@ -0,0 +1,69 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+
+namespace BBWYB.Client.Models
+{
+ public class ProductSkuWithScheme : ObservableObject
+ {
+ private int quantity;
+ private bool isSelected;
+ public string Id { get; set; }
+
+ public string SkuId { get; set; }
+
+ public string ProductId { get; set; }
+
+ public decimal Price { get; set; }
+
+ ///
+ /// Sku标题
+ ///
+ public string Title { get; set; }
+
+ public string Logo { get; set; }
+
+ ///
+ /// 京东Sku状态【1:上架 2:下架 4:删除】
+ ///
+ public int State { get; set; }
+
+ public DateTime? CreateTime { get; set; }
+
+ public long PurchaseSchemeId { get; set; }
+
+ public string PurchaserId { get; set; }
+
+ public string PurchaserName { get; set; }
+
+ public Platform? PurchasePlatform { get; set; }
+
+ public int Quantity { get => quantity; set { if (SetProperty(ref quantity, value)) OnQuantityChanged(); } }
+
+ public IList PurchaseSchemeProductSkuList { get; set; }
+
+ public bool IsSelected
+ {
+ get => isSelected; set { if (SetProperty(ref isSelected, value)) OnSelectChanged(); }
+ }
+
+ public ProductSkuWithScheme()
+ {
+ PurchaseSchemeProductSkuList = new ObservableCollection();
+ }
+
+ private void OnSelectChanged()
+ {
+ if (IsSelected && Quantity <= 0)
+ Quantity = 1;
+ else if (!IsSelected)
+ Quantity = 0;
+ }
+
+ private void OnQuantityChanged()
+ {
+ IsSelected = Quantity > 0;
+ }
+ }
+}
diff --git a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProductSku.cs b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProductSku.cs
index a17e8b7..ac8fc65 100644
--- a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProductSku.cs
+++ b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProductSku.cs
@@ -8,6 +8,11 @@ namespace BBWYB.Client.Models
///
public class PurchaseSchemeProductSku : ObservableObject
{
+ public PurchaseSchemeProductSku()
+ {
+ QuantityRatio = 1;
+ }
+
///
/// 采购商品的SKU和采购方案的关系Id
///
@@ -52,7 +57,10 @@ namespace BBWYB.Client.Models
private int itemTotal;
private decimal skuAmount;
+ private int quantityRatio;
public Action OnItemTotalChanged { get; set; }
+
+ public int QuantityRatio { get => quantityRatio; set { SetProperty(ref quantityRatio, value); } }
}
}
diff --git a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
index 36cdbe5..deb0168 100644
--- a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
+++ b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
@@ -100,9 +100,16 @@ namespace BBWYB.Client.ViewModels
return;
if (!isResponse)
return;
-
isResponse = false;
+ var purchaserId = skuGroup.SelectedScheme.PurchaserId;
+
+ foreach (var otherSkuGroup in SkuGroup)
+ {
+ if (otherSkuGroup.SkuId == skuGroup.SkuId)
+ continue;
+ otherSkuGroup.SelectedScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
+ }
isResponse = true;
}
}
diff --git a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
index 539b4c6..ea93615 100644
--- a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
+++ b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
@@ -20,7 +20,15 @@ namespace BBWYB.Client.ViewModels
public ICommand FastCreateOrderCommand { get; set; }
public ICommand PreviewOrderCommand { get; set; }
- public IList PurchaseSchemeProductSkuList { get; set; }
+ public ICommand EditQuantityRatioCommand { get; set; }
+
+ public ICommand AddQuantityCommand { get; set; }
+
+ public ICommand SubtractQuantityCommand { get; set; }
+
+ //public IList PurchaseSchemeProductSkuList { get; set; }
+
+ public IList ProductSkuWithSchemeList { get; set; }
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } }
@@ -70,6 +78,8 @@ namespace BBWYB.Client.ViewModels
private string town;
private string prucahseRemark;
private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.代发;
+
+ private IList schemeList;
///
/// 扩展数据,暂用于拳探
///
@@ -86,10 +96,13 @@ namespace BBWYB.Client.ViewModels
this.purchaseService = purchaseService;
this.delayTrigger = new DelayTrigger();
this.delayTrigger.OnExecute = OnDelayTriggerExecute;
- PurchaseSchemeProductSkuList = new ObservableCollection();
+ ProductSkuWithSchemeList = new ObservableCollection();
purchaseSchemeList = new List();
FastCreateOrderCommand = new RelayCommand(FastCreateOrder);
PreviewOrderCommand = new RelayCommand(PreviewOrder);
+ EditQuantityRatioCommand = new RelayCommand