步步为盈
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
6.0 KiB

2 years ago
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.Views.BatchPurchase;
2 years ago
using BBWY.Common.Extensions;
2 years ago
using BBWY.Common.Models;
2 years ago
using BBWY.Controls;
2 years ago
using GalaSoft.MvvmLight.Command;
2 years ago
using HandyControl.Controls;
2 years ago
using System;
2 years ago
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
2 years ago
using System.Threading.Tasks;
using System.Windows.Input;
namespace BBWY.Client.ViewModels
{
public class BatchPurchaseOrderListViewModel : BaseVM, IDenpendency
{
2 years ago
private BatchPurchaseService batchPurchaseService;
2 years ago
private GlobalContext globalContext;
private DateTime startDate;
private DateTime endDate;
private string searchPurchaseOrderId;
private string searchPurchaseName;
private string searchProductId;
private string searchSkuId;
private PurchaseOrderState? purchaseOrderState;
private int pageIndex;
private int pageSize;
2 years ago
private bool isLoading;
private long totalCount;
2 years ago
public ICommand SearchPurchaseOrderCommand { get; set; }
public ICommand OpenCreateNewPurchaseOrderDialogCommand { get; set; }
public ICommand SetSearchDateCommand { get; set; }
public ICommand SetPurchaseOrderStateCommand { get; set; }
2 years ago
public ICommand OnPageIndexChangedCommand { get; set; }
2 years ago
public DateTime StartDate { get => startDate; set { Set(ref startDate, value); } }
public DateTime EndDate { get => endDate; set { Set(ref endDate, value); } }
public string SearchPurchaseOrderId { get => searchPurchaseOrderId; set { Set(ref searchPurchaseOrderId, value); } }
public string SearchPurchaseName { get => searchPurchaseName; set { Set(ref searchPurchaseName, value); } }
public string SearchProductId { get => searchProductId; set { Set(ref searchProductId, value); } }
public string SearchSkuId { get => searchSkuId; set { Set(ref searchSkuId, value); } }
public PurchaseOrderState? PurchaseOrderState { get => purchaseOrderState; set { Set(ref purchaseOrderState, value); } }
public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } }
public int PageSize { get => pageSize; set { Set(ref pageSize, value); } }
2 years ago
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
public long TotalCount { get => totalCount; set { Set(ref totalCount, value); } }
public IList<PurchaseOrderV2> PurchaseOrderList { get; set; }
public BatchPurchaseOrderListViewModel(GlobalContext globalContext, BatchPurchaseService batchPurchaseService)
2 years ago
{
2 years ago
this.batchPurchaseService = batchPurchaseService;
2 years ago
SetSearchDateCommand = new RelayCommand<int>(SetSearchDate);
SetPurchaseOrderStateCommand = new RelayCommand<PurchaseOrderState?>(SetPurchaseOrderState);
SearchPurchaseOrderCommand = new RelayCommand(InitQueryPurchaseOrder);
OpenCreateNewPurchaseOrderDialogCommand = new RelayCommand(OpenCreateNewPurchaseOrderDialog);
2 years ago
OnPageIndexChangedCommand = new RelayCommand<PageArgs>(OnPageIndexChanged);
2 years ago
PageSize = 10;
this.globalContext = globalContext;
EndDate = DateTime.Now.Date;
StartDate = DateTime.Now.Date.AddDays(-15);
2 years ago
PurchaseOrderList = new ObservableCollection<PurchaseOrderV2>();
2 years ago
InitQueryPurchaseOrder();
}
private void InitQueryPurchaseOrder()
{
PageIndex = 1;
Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex));
}
private void SetPurchaseOrderState(PurchaseOrderState? purchaseOrderState)
2 years ago
{
2 years ago
this.PurchaseOrderState = purchaseOrderState;
InitQueryPurchaseOrder();
}
private void SetSearchDate(int d)
{
EndDate = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now;
StartDate = DateTime.Now.Date.AddDays(d * -1);
InitQueryPurchaseOrder();
}
private void QueryPurchaseOrder(int pageIndex)
{
2 years ago
IsLoading = true;
var response = batchPurchaseService.GetPurchaseOrderList(SearchProductId,
SearchSkuId,
SearchPurchaseName,
SearchPurchaseOrderId,
pageIndex,
PageSize,
StartDate,
EndDate,
this.PurchaseOrderState);
IsLoading = false;
if (!response.Success)
{
App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示"));
return;
}
2 years ago
2 years ago
TotalCount = response.Data.Count;
App.Current.Dispatcher.Invoke(() => PurchaseOrderList.Clear());
if (response.Data.ItemList == null || response.Data.ItemList.Count() == 0)
return;
var list = response.Data.ItemList.Map<IList<PurchaseOrderV2>>();
App.Current.Dispatcher.Invoke(() =>
{
foreach (var p in list)
PurchaseOrderList.Add(p);
});
2 years ago
}
private void OpenCreateNewPurchaseOrderDialog()
{
var createWindow = new BatchCreateNewPurchaseOrder();
if (createWindow.ShowDialog() == true)
{
InitQueryPurchaseOrder(); //刷新采购单页面
}
2 years ago
}
2 years ago
private void OnPageIndexChanged(PageArgs pageArgs)
{
Task.Factory.StartNew(() => QueryPurchaseOrder(pageArgs.PageIndex));
}
2 years ago
}
}