using System; using System.Linq; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop { public class QuoteCostSheetGrid : DynamicDataGrid { public QuoteCostSheetGrid() { Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns); OnCustomiseEditor += CustomiseEditor; HiddenColumns.Add(x => x.CostSheet.ID); HiddenColumns.Add(x => x.CostSheet.Deleted); } protected override void GenerateColumns(DynamicGridColumns columns) { columns.Add(x => x.Description, 0, "Description", "", Alignment.MiddleCenter); } public Guid QuoteID { get; set; } private void CustomiseEditor(IDynamicEditorForm sender, QuoteCostSheet[]? items, DynamicGridColumn column, BaseEditor editor) { if (column.ColumnName.Equals("CostSheet.ID")) editor.Editable = items?.FirstOrDefault()?.CostSheet.IsValid() != true ? Editable.Enabled : Editable.Disabled; } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { criteria.Add(new Filter(x => x.Quote.ID).IsEqualTo(QuoteID)); base.Reload(criteria, columns, ref sort, action); } protected override QuoteCostSheet CreateItem() { var result = base.CreateItem(); result.Quote.ID = QuoteID; return result; } } }