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? _addChannelStocks; public ObservableCollection? AddChannelStocks { get => _addChannelStocks; set => SetProperty(ref _addChannelStocks, value); } public ChannelStock? ChStock { get => _channelStock; set => SetProperty(ref _channelStock, value); } /// ///全选 /// 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 RequestClose; public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { ChannelStock channelStock = parameters.GetValue("addManuno"); ChStock = channelStock; RequestData(); } IDialogService _dialogService; IEventAggregator _eventAggregator; public AddManunoDialogViewModel(IDialogService DialogService, IEventAggregator eventAggregator) { _dialogService = DialogService; _eventAggregator = eventAggregator; } public void RequestData() { //List queryData = SqlSugarHelper.Db.Queryable() // .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(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 queryData = SqlSugarHelper.Db.SqlQueryable(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(queryData); } public DelegateCommand SaveCommand { get => new DelegateCommand(() => { }); } public DelegateCommand BtnCloseCommand { get => new DelegateCommand(() => { // 关闭当前窗口 RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel)); }); } } }