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.
145 lines
6.0 KiB
145 lines
6.0 KiB
using BBWY.Client.APIServices;
|
|
using BBWY.Client.Models;
|
|
using BBWY.Client.Views.BatchPurchase;
|
|
using BBWY.Common.Extensions;
|
|
using BBWY.Common.Models;
|
|
using BBWY.Controls;
|
|
using GalaSoft.MvvmLight.Command;
|
|
using HandyControl.Controls;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace BBWY.Client.ViewModels
|
|
{
|
|
public class BatchPurchaseOrderListViewModel : BaseVM, IDenpendency
|
|
{
|
|
private BatchPurchaseService batchPurchaseService;
|
|
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;
|
|
private bool isLoading;
|
|
private long totalCount;
|
|
|
|
public ICommand SearchPurchaseOrderCommand { get; set; }
|
|
public ICommand OpenCreateNewPurchaseOrderDialogCommand { get; set; }
|
|
|
|
public ICommand SetSearchDateCommand { get; set; }
|
|
|
|
public ICommand SetPurchaseOrderStateCommand { get; set; }
|
|
|
|
public ICommand OnPageIndexChangedCommand { get; set; }
|
|
|
|
|
|
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); } }
|
|
|
|
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)
|
|
{
|
|
this.batchPurchaseService = batchPurchaseService;
|
|
SetSearchDateCommand = new RelayCommand<int>(SetSearchDate);
|
|
SetPurchaseOrderStateCommand = new RelayCommand<PurchaseOrderState?>(SetPurchaseOrderState);
|
|
SearchPurchaseOrderCommand = new RelayCommand(InitQueryPurchaseOrder);
|
|
OpenCreateNewPurchaseOrderDialogCommand = new RelayCommand(OpenCreateNewPurchaseOrderDialog);
|
|
OnPageIndexChangedCommand = new RelayCommand<PageArgs>(OnPageIndexChanged);
|
|
PageSize = 10;
|
|
this.globalContext = globalContext;
|
|
EndDate = DateTime.Now.Date;
|
|
StartDate = DateTime.Now.Date.AddDays(-15);
|
|
PurchaseOrderList = new ObservableCollection<PurchaseOrderV2>();
|
|
InitQueryPurchaseOrder();
|
|
}
|
|
|
|
|
|
private void InitQueryPurchaseOrder()
|
|
{
|
|
PageIndex = 1;
|
|
Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex));
|
|
}
|
|
|
|
private void SetPurchaseOrderState(PurchaseOrderState? purchaseOrderState)
|
|
{
|
|
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)
|
|
{
|
|
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;
|
|
}
|
|
|
|
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);
|
|
});
|
|
}
|
|
|
|
private void OpenCreateNewPurchaseOrderDialog()
|
|
{
|
|
var createWindow = new BatchCreateNewPurchaseOrder();
|
|
if (createWindow.ShowDialog() == true)
|
|
{
|
|
InitQueryPurchaseOrder(); //刷新采购单页面
|
|
}
|
|
}
|
|
|
|
private void OnPageIndexChanged(PageArgs pageArgs)
|
|
{
|
|
Task.Factory.StartNew(() => QueryPurchaseOrder(pageArgs.PageIndex));
|
|
}
|
|
}
|
|
}
|
|
|