HuNan_DM_MultiBatch/DM_Weight/ViewModels/AddManunoDialogViewModel.cs

152 lines
5.1 KiB
C#
Raw Normal View History

2023-11-13 14:00:30 +08:00
using DM_Weight.Models;
using DM_Weight.msg;
using DM_Weight.Port;
using DM_Weight.util;
using Prism.Commands;
using Prism.Events;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DM_Weight.ViewModels
{
public class AddManunoDialogViewModel : BindableBase, IDialogAware, IRegionMemberLifetime
{
public string Title => "添加批次";
public bool KeepAlive => false;
private ChannelStock? _channelStock;
private ObservableCollection<AddChannelStockManuNo>? _addChannelStocks;
public ObservableCollection<AddChannelStockManuNo>? AddChannelStocks
{
get => _addChannelStocks;
set => SetProperty(ref _addChannelStocks, value);
}
public ChannelStock? ChStock
{
get => _channelStock;
set => SetProperty(ref _channelStock, value);
}
/// <summary>
///全选
/// </summary>
private bool _allChecked = false;
public bool IsAllChecked
{
get { return _allChecked; }
set
{
SetProperty(ref _allChecked, value);
if (!IsItemCheck)
{
RequestData();
//根据全选或反选设置其后的选中状态
AddChannelStocks.ToList().ForEach(oi => oi.ItemIsChecked = _allChecked);
}
else
{
IsItemCheck = false;
}
}
}
public bool _isItemCheck = false;
public bool IsItemCheck
{
get => _isItemCheck;
set
{
SetProperty(ref _isItemCheck, value);
if (AddChannelStocks.ToList().Where(od => od.ItemIsChecked == false).Count() <= 0)
{
IsAllChecked = true;
}
}
}
public event Action<IDialogResult> RequestClose;
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed()
{
}
public void OnDialogOpened(IDialogParameters parameters)
{
ChannelStock channelStock = parameters.GetValue<ChannelStock>("addManuno");
ChStock = channelStock;
RequestData();
}
IDialogService _dialogService;
IEventAggregator _eventAggregator;
public AddManunoDialogViewModel(IDialogService DialogService, IEventAggregator eventAggregator)
{
_dialogService = DialogService;
_eventAggregator = eventAggregator;
}
public void RequestData()
{
//List<ChannelStock> queryData = SqlSugarHelper.Db.Queryable<ChannelStock>()
// .Includes(cs => cs.DrugInfo, di => di.DrugManuNos)
// .Where(cs => cs.DrawerNo == ChStock.DrawerNo&&cs.ColNo==ChStock.ColNo)
// .Where(cs => cs.DrawerType == 1)
// .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1"))
// .Where(cs => cs.DrugId ==ChStock.DrugId )
// .OrderBy(cs => cs.ManuNo)
// .ToList();
//ChannelStocks = queryData.Select(cs =>
//{
// cs.drugManuNo = cs.DrugInfo.DrugManuNos.Find(it => it.ManuNo.Equals(cs.ManuNo));
// return cs;
//}).ToList();
//obChannelStock = new ObservableCollection<ChannelStock>(ChannelStocks);
string strSQl = @"SELECT DISTINCT c.Col_no as ColNo,d.DRUG_NAME as DrugName,d.DRUG_SPEC as DrugSpec,m.eff_date as EffDate,m.Manu_No as ManuNo
from drug_manu_no m inner join drug_info d on m.drug_id=d.drug_id inner join channel_stock c on m.drug_id=c.drug_id
where c.row_no=@RowNo and col_no=@ColNo and machine_id=@MachineId and m.Manu_NO<>@ManuNo order by m.Manu_No desc";
List<AddChannelStockManuNo> queryData = SqlSugarHelper.Db.SqlQueryable<dynamic>(strSQl)
.AddParameters(new
{
MachineId = ConfigurationManager.AppSettings["machineId"] ?? "DM1",
RowNo = ChStock.DrawerNo,
ColNo = ChStock.ColNo,
ManuNo=ChStock.ManuNo
})
.Select(it => new AddChannelStockManuNo())
.ToList();
AddChannelStocks = new ObservableCollection<AddChannelStockManuNo>(queryData);
}
public DelegateCommand SaveCommand
{
get => new DelegateCommand(() =>
{
});
}
public DelegateCommand BtnCloseCommand
{
get => new DelegateCommand(() =>
{
// 关闭当前窗口
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
});
}
}
}