JobRequisitionItemGrid.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using InABox.DynamicGrid;
  5. namespace PRSDesktop
  6. {
  7. internal class JobRequisitionItemGrid : DynamicDataGrid<JobRequisitionItem>
  8. {
  9. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  10. {
  11. base.DoReconfigure(options);
  12. options.AddRange(
  13. DynamicGridOption.RecordCount,
  14. DynamicGridOption.SelectColumns,
  15. DynamicGridOption.FilterRows,
  16. DynamicGridOption.MultiSelect
  17. );
  18. }
  19. public Requisition Requisition { get; set; }
  20. protected override void Reload(Filters<JobRequisitionItem> criteria, Columns<JobRequisitionItem> columns,
  21. ref SortOrder<JobRequisitionItem> sort,
  22. Action<CoreTable, Exception> action)
  23. {
  24. criteria.Add(new Filter<JobRequisitionItem>(x => x.Requisition.ID).IsEqualTo(Requisition.ID));
  25. base.Reload(criteria, columns, ref sort, action);
  26. }
  27. protected override JobRequisitionItem CreateItem()
  28. {
  29. var result = base.CreateItem();
  30. result.Requisition.ID = Requisition.ID;
  31. result.Requisition.Synchronise(Requisition);
  32. result.Job.ID = Requisition.JobLink.ID;
  33. result.Job.Synchronise(Requisition.JobLink);
  34. return result;
  35. }
  36. protected override void GenerateColumns(DynamicGridColumns columns)
  37. {
  38. columns.Add<JobRequisitionItem, DateTime>(x => x.Created, 80, "Date", "", Alignment.MiddleLeft);
  39. columns.Add<JobRequisitionItem, string>(x => x.Requisition.Job.JobNumber, 70, "Job", "", Alignment.MiddleLeft);
  40. columns.Add<JobRequisitionItem, int>(x => x.Requisition.Number, 50, "NO.", "", Alignment.MiddleLeft);
  41. columns.Add<JobRequisitionItem, string>(x => x.Product.Code, 70, "Code", "", Alignment.MiddleLeft);
  42. columns.Add<JobRequisitionItem, string>(x => x.Product.Name, 200, "Product Name", "", Alignment.MiddleLeft);
  43. columns.Add<JobRequisitionItem, string>(x => x.Style.Description, 150, "Style", "", Alignment.MiddleLeft);
  44. columns.Add<JobRequisitionItem, double>(x => x.Qty, 50, "Qty", "", Alignment.MiddleLeft);
  45. columns.Add<JobRequisitionItem, string>(x => x.Dimensions.UnitSize, 50, "Size", "", Alignment.MiddleLeft);
  46. columns.Add<JobRequisitionItem, string>(x => x.PurchaseOrderItem.PurchaseOrderLink.PONumber, 80, "PO Number", "", Alignment.MiddleLeft);
  47. columns.Add<JobRequisitionItem, string>(x => x.PurchaseOrderItem.PONumber, 80, "PO Number", "", Alignment.MiddleLeft);
  48. columns.Add<JobRequisitionItem, DateTime>(x => x.PurchaseOrderItem.DueDate, 80, "Due", "", Alignment.MiddleLeft);
  49. columns.Add<JobRequisitionItem, DateTime>(x => x.PurchaseOrderItem.ReceivedDate, 80, "Received", "", Alignment.MiddleLeft);
  50. columns.Add<JobRequisitionItem, JobRequisitionItemStatus>(x => x.Status, 80, "Status", "", Alignment.MiddleLeft);
  51. columns.Add<JobRequisitionItem, string>(x => x.Notes, 300, "Notes", "", Alignment.MiddleLeft);
  52. base.GenerateColumns(columns);
  53. }
  54. }
  55. }