|
|
@ -27,6 +27,11 @@ namespace BBWY.Client.ViewModels |
|
|
|
private string searchShopKeyWord; |
|
|
|
private DelayTrigger delayTrigger; |
|
|
|
private bool isLoading; |
|
|
|
private KVModel selectedLocalFilterOperation; |
|
|
|
private bool isEnableCanCorrectionOrder; |
|
|
|
private StorageType? selectedStorageType; |
|
|
|
private string searchLocalOrderId; |
|
|
|
private Shop selectedLocalShop; |
|
|
|
|
|
|
|
private GlobalContext globalContext; |
|
|
|
|
|
|
@ -48,6 +53,8 @@ namespace BBWY.Client.ViewModels |
|
|
|
|
|
|
|
public IList<Shop> ShopList { get; set; } |
|
|
|
|
|
|
|
public IList<Shop> LocalShopList { get; set; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 店铺搜索关键词
|
|
|
|
/// </summary>
|
|
|
@ -73,21 +80,50 @@ namespace BBWY.Client.ViewModels |
|
|
|
/// </summary>
|
|
|
|
public ICommand SearchBillCorrectionOrderCommand { get; set; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 清空数据
|
|
|
|
/// </summary>
|
|
|
|
public ICommand ClearCommand { get; set; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 矫正费用
|
|
|
|
/// </summary>
|
|
|
|
public ICommand CorrectCommand { get; set; } |
|
|
|
|
|
|
|
public ICommand SearchLocalCommand { get; set; } |
|
|
|
|
|
|
|
public ICommand ClearLocalConditionCommand { get; set; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 保存
|
|
|
|
/// </summary>
|
|
|
|
public ICommand SaveCommand { get; set; } |
|
|
|
|
|
|
|
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } |
|
|
|
|
|
|
|
public IList<BillCorrectionOrder> OrderList { get; set; } |
|
|
|
|
|
|
|
public IList<BillCorrectionOrder> LocalOrderList { get; set; } |
|
|
|
|
|
|
|
public IList<KVModel> LocalFilterOperationList { get; set; } |
|
|
|
|
|
|
|
public KVModel SelectedLocalFilterOperation { get => selectedLocalFilterOperation; set { Set(ref selectedLocalFilterOperation, value); } } |
|
|
|
|
|
|
|
public bool IsEnableCanCorrectionOrder { get => isEnableCanCorrectionOrder; set { Set(ref isEnableCanCorrectionOrder, value); } } |
|
|
|
|
|
|
|
public StorageType? SelectedStorageType { get => selectedStorageType; set { Set(ref selectedStorageType, value); } } |
|
|
|
|
|
|
|
public string SearchLocalOrderId { get => searchLocalOrderId; set { Set(ref searchLocalOrderId, value); } } |
|
|
|
|
|
|
|
public Shop SelectedLocalShop { get => selectedLocalShop; set { Set(ref selectedLocalShop, value); } } |
|
|
|
|
|
|
|
public BillCorrectionViewModel(GlobalContext globalContext, BillCorrectionService billCorrectionService) |
|
|
|
{ |
|
|
|
this.billCorrectionService = billCorrectionService; |
|
|
|
this.globalContext = globalContext; |
|
|
|
var shopList = JsonConvert.DeserializeObject<List<Shop>>(JsonConvert.SerializeObject(globalContext.User.ShopList)); |
|
|
|
this.ShopList = new ObservableCollection<Shop>(shopList); |
|
|
|
this.LocalShopList = new ObservableCollection<Shop>(); |
|
|
|
SaleFreightBillFileList = new ObservableCollection<string>(); |
|
|
|
SaleFreightBillList = new List<BillModel>(); |
|
|
|
StartDate = DateTime.Now.Date.AddDays((DateTime.Now.Day - 1) * -1).AddMonths(-1); |
|
|
@ -95,10 +131,20 @@ namespace BBWY.Client.ViewModels |
|
|
|
delayTrigger = new DelayTrigger(500); |
|
|
|
delayTrigger.OnExecute = OnSearchShopKeyWordChanged; |
|
|
|
OrderList = new ObservableCollection<BillCorrectionOrder>(); |
|
|
|
|
|
|
|
LocalOrderList = new ObservableCollection<BillCorrectionOrder>(); |
|
|
|
LocalFilterOperationList = new List<KVModel>() |
|
|
|
{ |
|
|
|
new KVModel(){ Key="保留",Value="save" }, |
|
|
|
new KVModel(){ Key="过滤",Value="filter"} |
|
|
|
}; |
|
|
|
ImportSaleFreightBillCommand = new RelayCommand<string>(ImportSaleFreightBill); |
|
|
|
SearchBillCorrectionOrderCommand = new RelayCommand(SearchBillCorrectionOrder); |
|
|
|
CorrectCommand = new RelayCommand(Correct); |
|
|
|
ClearCommand = new RelayCommand(Clear); |
|
|
|
SearchLocalCommand = new RelayCommand(SearchLocalOrderList); |
|
|
|
ClearLocalConditionCommand = new RelayCommand(ClearLocalCondition); |
|
|
|
SaveCommand = new RelayCommand(Save); |
|
|
|
SelectedLocalFilterOperation = LocalFilterOperationList[0]; |
|
|
|
} |
|
|
|
|
|
|
|
private void OnSearchShopKeyWordChanged(string key) |
|
|
@ -302,9 +348,19 @@ namespace BBWY.Client.ViewModels |
|
|
|
/// </summary>
|
|
|
|
private void SearchBillCorrectionOrder() |
|
|
|
{ |
|
|
|
IsLoading = true; |
|
|
|
OrderList.Clear(); |
|
|
|
var shopIds = ShopList.Where(s => s.IsSelected).Select(s => s.ShopId).ToList(); |
|
|
|
LocalShopList.Clear(); |
|
|
|
var selectShops = ShopList.Where(s => s.IsSelected).ToList(); |
|
|
|
if (selectShops.Count() == 0) |
|
|
|
{ |
|
|
|
MessageBox.Show("至少选择一个店铺", "提示"); |
|
|
|
return; |
|
|
|
} |
|
|
|
IsLoading = true; |
|
|
|
foreach (var shop in LocalShopList) |
|
|
|
LocalShopList.Add(shop); |
|
|
|
SelectedLocalShop = null; |
|
|
|
var shopIds = selectShops.Select(s => s.ShopId).ToList(); |
|
|
|
Task.Factory.StartNew(() => billCorrectionService.GetBillCorrectionOrderList(shopIds, StartDate, EndDate)) |
|
|
|
.ContinueWith(t => |
|
|
|
{ |
|
|
@ -337,15 +393,102 @@ namespace BBWY.Client.ViewModels |
|
|
|
//}
|
|
|
|
OrderList.Add(order); |
|
|
|
} |
|
|
|
SearchLocalOrderList(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void SearchLocalOrderList() |
|
|
|
{ |
|
|
|
LocalOrderList.Clear(); |
|
|
|
var where = OrderList.Where(o => true); |
|
|
|
if (SelectedLocalShop != null) |
|
|
|
where = where.Where(o => o.ShopId == SelectedLocalShop.ShopId); |
|
|
|
if (SelectedStorageType != null) |
|
|
|
where = where.Where(o => o.StorageType == SelectedStorageType); |
|
|
|
if (!string.IsNullOrEmpty(SearchLocalOrderId)) |
|
|
|
where = where.Where(o => o.OrderId == SearchLocalOrderId); |
|
|
|
if (IsEnableCanCorrectionOrder) |
|
|
|
{ |
|
|
|
if (SelectedLocalFilterOperation.Value == "save") |
|
|
|
where = where.Where(o => !string.IsNullOrEmpty(o.ChangedContent)); |
|
|
|
else |
|
|
|
where = where.Where(o => string.IsNullOrEmpty(o.ChangedContent)); |
|
|
|
} |
|
|
|
var list = where.ToList(); |
|
|
|
foreach (var o in list) |
|
|
|
LocalOrderList.Add(o); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 矫正费用
|
|
|
|
/// </summary>
|
|
|
|
private void Correct() |
|
|
|
{ |
|
|
|
if (OrderList.Count() == 0) |
|
|
|
{ |
|
|
|
MessageBox.Show("缺少待矫正订单"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (SaleFreightBillList.Count() == 0) |
|
|
|
{ |
|
|
|
MessageBox.Show("缺少运费账单"); |
|
|
|
return; |
|
|
|
} |
|
|
|
foreach (var order in OrderList) |
|
|
|
{ |
|
|
|
//矫正销售运费
|
|
|
|
if (!string.IsNullOrEmpty(order.WaybillNo)) |
|
|
|
{ |
|
|
|
var expressBillModel = SaleFreightBillList.FirstOrDefault(b => b.BillNo == order.WaybillNo); |
|
|
|
if (expressBillModel != null && expressBillModel.Amount != order.DeliveryExpressFreight) |
|
|
|
{ |
|
|
|
order.NewDeliveryExpressFreight = expressBillModel.Amount; |
|
|
|
order.ChangedContent = $"销售运费{order.DeliveryExpressFreight}->{order.NewDeliveryExpressFreight} "; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//矫正入仓操作
|
|
|
|
|
|
|
|
|
|
|
|
//矫正出仓操作
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private void Clear() |
|
|
|
{ |
|
|
|
SaleFreightBillFileList.Clear(); |
|
|
|
SaleFreightBillList.Clear(); |
|
|
|
OrderList.Clear(); |
|
|
|
LocalOrderList.Clear(); |
|
|
|
SelectedStorageType = null; |
|
|
|
IsEnableCanCorrectionOrder = false; |
|
|
|
SearchShopKeyWord = string.Empty; |
|
|
|
SearchLocalOrderId = string.Empty; |
|
|
|
SelectedLocalShop = null; |
|
|
|
SelectedLocalFilterOperation = LocalFilterOperationList[0]; |
|
|
|
} |
|
|
|
|
|
|
|
private void ClearLocalCondition() |
|
|
|
{ |
|
|
|
SelectedStorageType = null; |
|
|
|
IsEnableCanCorrectionOrder = false; |
|
|
|
SearchLocalOrderId = string.Empty; |
|
|
|
SelectedLocalShop = null; |
|
|
|
SearchLocalOrderList(); |
|
|
|
} |
|
|
|
|
|
|
|
private void Save() |
|
|
|
{ |
|
|
|
var saveOrderList = OrderList.Where(o => !string.IsNullOrEmpty(o.ChangedContent)); |
|
|
|
if (saveOrderList.Count() == 0) |
|
|
|
{ |
|
|
|
MessageBox.Show("没有需要矫正的订单", "提示"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|