using System; using System.Linq; 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(FluentList options) { base.DoReconfigure(options); options.BeginUpdate() .Clear() .Add(DynamicGridOption.AddRows) .Add(DynamicGridOption.EditRows) .Add(DynamicGridOption.DeleteRows) .EndUpdate(); } protected override void Reload(Filters criteria, Columns columns, ref SortOrder? sort, Action action) { criteria.Add( new Filter(x => x.RequisitionLink.ID).IsEqualTo(RequisitionID) ); base.Reload(criteria, columns, ref sort, 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.Picked, ".")) 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); } }