using System; using System.Linq; using System.Windows.Media.Imaging; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; using InABox.WPF; namespace PRSDesktop { internal class RequisitionItemHoldingGrid : DynamicGrid { public RequisitionItemHoldingGrid() { Options.Clear(); HiddenColumns.Add(x => x.ID); HiddenColumns.Add(x => x.Holding.ID); HiddenColumns.Add(x => x.Style.ID); ActionColumns.Add(new DynamicActionColumn(HoldingImage, HoldingClick) { AllowHeaderClick = false }); } private BitmapImage HoldingImage(CoreRow arg) { return PRSDesktop.Resources.rightarrow.AsBitmapImage(); } private bool HoldingClick(CoreRow arg) { var dlg = new MultiSelectDialog( new Filter(x => x.Product.ID).IsEqualTo(arg.Get(c => c.Product.ID)).And(x => x.Location.Active) .IsEqualTo(true), new Columns(x => x.ID, x => x.Location.Area.Warehouse.Code, x => x.Location.Area.Code, x => x.Location.Code, x => x.Location.Description, x => x.Units, x => x.Style.ID), false ); if (dlg.ShowDialog()) { var holding = dlg.Items().FirstOrDefault(); UpdateRow(arg, x => x.Holding.ID, holding.ID, false); UpdateRow(arg, x => x.Holding.Location.Code, holding.Location.Code, false); UpdateRow(arg, x => x.Holding.Style.ID, holding.Style.ID, false); UpdateRow(arg, x => x.Holding.Style.Description, holding.Style.Description); return true; } return false; } public override void ConfigureColumns(DynamicGridColumns columns) { base.ConfigureColumns(columns); } protected override void DeleteItems(params CoreRow[] rows) { throw new NotImplementedException(); } protected override DynamicGridColumns LoadColumns() { var result = new DynamicGridColumns(); result.Add(x => x.Product.Code, 200, "Code", "", Alignment.MiddleLeft); result.Add(x => x.Product.Name, 0, "Description", "", Alignment.MiddleLeft); result.Add(x => x.Style.Description, 0, "Style", "", Alignment.MiddleLeft); result.Add(x => x.Quantity, 100, "Quantity", "", Alignment.MiddleCenter); result.Add(x => x.Holding.Location.Code, 0, "Location", "", Alignment.MiddleLeft); return result; } protected override RequisitionItem LoadItem(CoreRow row) { return row.ToObject(); } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { action?.Invoke(MasterData, null); } protected override void SaveItem(RequisitionItem item) { } } }