using System; using System.Collections.Generic; using System.Linq; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop; public class MyRequisitionsList : DynamicDataGrid { public MyRequisitionsList() : base() { ColumnsTag = nameof(MyRequisitionsList); HiddenColumns.Add(x=>x.Request); HiddenColumns.Add(x=>x.Destination.Description); } public override DynamicGridColumns GenerateColumns() { var columns = new DynamicGridColumns(); columns.Add(x => x.Number,50,"Req #","",Alignment.MiddleCenter); columns.Add(x => x.Title,0,"Subject","",Alignment.MiddleLeft); columns.Add(x => x.Created,80,"Created","dd MMM yy",Alignment.MiddleCenter); columns.Add(x => x.Destination.Description,100,"Detination","",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.RequestedBy.ID).IsEqualTo(App.EmployeeID) .And(x => x.Archived).IsEqualTo(DateTime.MinValue) ); base.Reload(criteria, columns, ref sort, action); } public override Requisition CreateItem() { var result = base.CreateItem(); result.RequestedBy.ID = App.EmployeeID; result.Title = $"Materials for {App.EmployeeName}"; return result; } protected override void DoValidate(Requisition[] items, List errors) { base.DoValidate(items, errors); if (items.Any(x=>x.Destination.ID == Guid.Empty)) errors.Add("Please select a destination"); } protected override BaseEditor? GetEditor(object item, DynamicGridColumn column) { if (column.Editor.Page == "Fulfilment") return new NullEditor(); return base.GetEditor(item, column); } public override DynamicEditorPages LoadEditorPages(Requisition item) { return new DynamicEditorPages(); //base.LoadEditorPages(item)); } }