using System; using System.Linq; using System.Threading; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop; public class MyRequisitionItems : DynamicDataGrid { public Guid RequisitionID { get; set; } public MyRequisitionItems() : base() { ColumnsTag = nameof(MyRequisitionItems); } public override DynamicGridColumns GenerateColumns() { var columns = new DynamicGridColumns(); columns.Add(x => x.Product.ID,80,"Product","",Alignment.MiddleLeft); columns.Add(x => x.Description,0,"Items Required","",Alignment.MiddleLeft); columns.Add(x => x.Dimensions.UnitSize,80,"Size","",Alignment.MiddleLeft); columns.Add(x => x.Style.ID,80,"Style","",Alignment.MiddleLeft); columns.Add(x => x.Quantity,50,"Qty","F2",Alignment.MiddleCenter); return columns; } protected override void DoReconfigure(DynamicGridOptions options) { base.DoReconfigure(options); options.Clear(); options.AddRows = true; options.EditRows = true; options.DeleteRows = true; } protected override void Reload( Filters criteria, Columns columns, ref SortOrder? sort, CancellationToken token, Action action) { criteria.Add( new Filter(x => x.RequisitionLink.ID).IsEqualTo(RequisitionID) ); base.Reload(criteria, columns, ref sort, token, action); } public override RequisitionItem CreateItem() { var result = base.CreateItem(); result.RequisitionLink.ID = RequisitionID; result.Quantity = 1; return result; } protected override BaseEditor? GetEditor(object item, DynamicGridColumn column) { if (column.ColumnName == CoreUtils.GetFullPropertyName(x => x.ActualQuantity, ".")) return new NullEditor(); if (column.ColumnName == CoreUtils.GetFullPropertyName(x => x.Location.ID, ".")) return new NullEditor(); if (column.ColumnName == CoreUtils.GetFullPropertyName(x => x.Done, ".")) return new NullEditor(); if (column.ColumnName == CoreUtils.GetFullPropertyName(x => x.JobRequisitionItem.ID, ".")) return new NullEditor(); if (column.ColumnName.StartsWith($"{CoreUtils.GetFullPropertyName(x => x.Charge, ".")}.")) return new NullEditor(); if (column.ColumnName == CoreUtils.GetFullPropertyName(x => x.JobScope.ID, ".")) return new NullEditor(); if (column.ColumnName == CoreUtils.GetFullPropertyName(x => x.Image.ID, ".")) return new NullEditor(); return base.GetEditor(item, column); } }