|
|
@ -25,7 +25,10 @@ namespace BBWY.Client.ViewModels |
|
|
|
private string purchaserName; |
|
|
|
private bool isLoading; |
|
|
|
|
|
|
|
public Product Product { get; set; } |
|
|
|
//public Product Product { get; set; }
|
|
|
|
|
|
|
|
public IList<ProductSku> ProductSkuList { get; set; } |
|
|
|
|
|
|
|
public string PurchaserId { get; set; } |
|
|
|
public string PurchaserName { get => purchaserName; set { Set(ref purchaserName, value); } } |
|
|
|
public string PurchaserLocation { get; set; } |
|
|
@ -64,9 +67,10 @@ namespace BBWY.Client.ViewModels |
|
|
|
SavePurchaseSchemeCommand = new RelayCommand(SavePurchaseScheme); |
|
|
|
} |
|
|
|
|
|
|
|
public void SetData(Product product, string purchaserId, string purchaserName) |
|
|
|
public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserName) |
|
|
|
{ |
|
|
|
this.Product = product; |
|
|
|
this.ProductSkuList = productSkuList; |
|
|
|
//this.Product = product;
|
|
|
|
this.PurchaserId = purchaserId; |
|
|
|
this.PurchaserName = purchaserName; |
|
|
|
} |
|
|
@ -76,48 +80,48 @@ namespace BBWY.Client.ViewModels |
|
|
|
if (!string.IsNullOrEmpty(PurchaserId)) |
|
|
|
{ |
|
|
|
IsLoading = true; |
|
|
|
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(new List<string>() { Product.Id }, PurchaserId, globalContext.User.Shop.ShopId)).ContinueWith(r => |
|
|
|
{ |
|
|
|
var apiResponse = r.Result; |
|
|
|
if (!apiResponse.Success) |
|
|
|
{ |
|
|
|
App.Current.Dispatcher.BeginInvoke((Action)delegate |
|
|
|
{ |
|
|
|
MessageBox.Show(apiResponse.Msg, "查询采购方案"); |
|
|
|
}); |
|
|
|
IsLoading = false; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var purchaseSchemeList = apiResponse.Data; |
|
|
|
|
|
|
|
var waitList = new List<EventWaitHandle>(); |
|
|
|
foreach (var sku in Product.SkuList) |
|
|
|
{ |
|
|
|
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId)).ContinueWith(r => |
|
|
|
{ |
|
|
|
var apiResponse = r.Result; |
|
|
|
if (!apiResponse.Success) |
|
|
|
{ |
|
|
|
App.Current.Dispatcher.BeginInvoke((Action)delegate |
|
|
|
{ |
|
|
|
MessageBox.Show(apiResponse.Msg, "查询采购方案"); |
|
|
|
}); |
|
|
|
IsLoading = false; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var purchaseSchemeList = apiResponse.Data; |
|
|
|
|
|
|
|
var waitList = new List<EventWaitHandle>(); |
|
|
|
foreach (var sku in ProductSkuList) |
|
|
|
{ |
|
|
|
//当前SKU下当前采购商的采购方案
|
|
|
|
var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId); |
|
|
|
|
|
|
|
if (apiScheme == null) |
|
|
|
continue; |
|
|
|
|
|
|
|
sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme); |
|
|
|
var ewh = new ManualResetEvent(false); |
|
|
|
waitList.Add(ewh); |
|
|
|
|
|
|
|
Task.Factory.StartNew(() => |
|
|
|
{ |
|
|
|
foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList) |
|
|
|
{ |
|
|
|
purchaseSchemeProduct.IsEditing = false; |
|
|
|
LoadPurchaseProduct(purchaseSchemeProduct); |
|
|
|
} |
|
|
|
ewh.Set(); |
|
|
|
ewh.Dispose(); |
|
|
|
}); |
|
|
|
} |
|
|
|
WaitHandle.WaitAll(waitList.ToArray()); |
|
|
|
IsLoading = false; |
|
|
|
}); |
|
|
|
if (apiScheme == null) |
|
|
|
continue; |
|
|
|
|
|
|
|
sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme); |
|
|
|
var ewh = new ManualResetEvent(false); |
|
|
|
waitList.Add(ewh); |
|
|
|
|
|
|
|
Task.Factory.StartNew(() => |
|
|
|
{ |
|
|
|
foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList) |
|
|
|
{ |
|
|
|
purchaseSchemeProduct.IsEditing = false; |
|
|
|
LoadPurchaseProduct(purchaseSchemeProduct); |
|
|
|
} |
|
|
|
ewh.Set(); |
|
|
|
ewh.Dispose(); |
|
|
|
}); |
|
|
|
} |
|
|
|
WaitHandle.WaitAll(waitList.ToArray()); |
|
|
|
IsLoading = false; |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -230,7 +234,7 @@ namespace BBWY.Client.ViewModels |
|
|
|
{ |
|
|
|
productSku.SelectedPurchaseScheme = new PurchaseScheme() |
|
|
|
{ |
|
|
|
ProductId = Product.Id, |
|
|
|
ProductId = productSku.ProductId, |
|
|
|
SkuId = productSku.Id |
|
|
|
}; |
|
|
|
} |
|
|
@ -250,9 +254,9 @@ namespace BBWY.Client.ViewModels |
|
|
|
|
|
|
|
private void RemovePurchaseSchemeProduct(PurchaseSchemeProduct purchaseSchemeProduct) |
|
|
|
{ |
|
|
|
var productSku = Product.SkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId); |
|
|
|
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId); |
|
|
|
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Remove(purchaseSchemeProduct); |
|
|
|
if (!Product.SkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0)) |
|
|
|
if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0)) |
|
|
|
PurchaserId = string.Empty; |
|
|
|
} |
|
|
|
|
|
|
@ -274,7 +278,7 @@ namespace BBWY.Client.ViewModels |
|
|
|
MessageBox.Show("未能识别的url"); |
|
|
|
return; |
|
|
|
} |
|
|
|
var sku = Product.SkuList.FirstOrDefault(s => s.Id == purchaseSchemeProduct.SkuId); |
|
|
|
var sku = ProductSkuList.FirstOrDefault(s => s.Id == purchaseSchemeProduct.SkuId); |
|
|
|
var purchaseUrl = match.Groups[1].Value; |
|
|
|
if (sku.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.PurchaseUrl == purchaseUrl)) |
|
|
|
{ |
|
|
@ -342,7 +346,7 @@ namespace BBWY.Client.ViewModels |
|
|
|
} |
|
|
|
purchaseSchemeProduct.IsEditing = false; |
|
|
|
|
|
|
|
var productSku = Product.SkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId); |
|
|
|
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId); |
|
|
|
productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId; |
|
|
|
productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName; |
|
|
|
productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation; |
|
|
@ -357,24 +361,24 @@ namespace BBWY.Client.ViewModels |
|
|
|
|
|
|
|
private void SavePurchaseScheme() |
|
|
|
{ |
|
|
|
if (!Product.SkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count != 0)) |
|
|
|
if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count != 0)) |
|
|
|
{ |
|
|
|
MessageBox.Show("没有需要保存的数据,如需删除该采购商所有数据请返回采购商列表进行删除", "提示"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var hasNoReady = Product.SkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.IsEditing)); |
|
|
|
var hasNoReady = ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.IsEditing)); |
|
|
|
if (hasNoReady) |
|
|
|
{ |
|
|
|
MessageBox.Show("存在未保存的数据", "提示"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
var addPurchaseSchemeList = Product.SkuList.Where(s => s.SelectedPurchaseScheme != null && |
|
|
|
var addPurchaseSchemeList = ProductSkuList.Where(s => s.SelectedPurchaseScheme != null && |
|
|
|
s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0 && |
|
|
|
s.SelectedPurchaseScheme.Id == 0) |
|
|
|
.Select(s => s.SelectedPurchaseScheme).ToList(); |
|
|
|
var editPurchaseSchemeList = Product.SkuList.Where(s => s.SelectedPurchaseScheme != null && |
|
|
|
var editPurchaseSchemeList = ProductSkuList.Where(s => s.SelectedPurchaseScheme != null && |
|
|
|
s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0 && |
|
|
|
s.SelectedPurchaseScheme.Id != 0) |
|
|
|
.Select(s => s.SelectedPurchaseScheme).ToList(); |
|
|
@ -409,11 +413,11 @@ namespace BBWY.Client.ViewModels |
|
|
|
{ |
|
|
|
PurchaserId = PurchaserName = string.Empty; |
|
|
|
//clear data
|
|
|
|
foreach (var sku in Product.SkuList) |
|
|
|
foreach (var sku in ProductSkuList) |
|
|
|
{ |
|
|
|
sku.SelectedPurchaseScheme = null; |
|
|
|
} |
|
|
|
Product = null; |
|
|
|
//Product = null;
|
|
|
|
e.Cancel = false; |
|
|
|
} |
|
|
|
|
|
|
|