JobRequisitionStore.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using Comal.Classes;
  2. using Comal.Stores;
  3. using InABox.Core;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. namespace PRSStores
  8. {
  9. public class JobRequisitionStore : BaseStore<JobRequisition>
  10. {
  11. protected override void AfterSave(JobRequisition entity)
  12. {
  13. base.AfterSave(entity);
  14. //this was originally written for Job Requisition tracked kanbans - no longer needed?
  15. //If reinstating this code, refer to:
  16. // - JobRequisitionStore
  17. // - JobBillOfMaterialsItemGrid (where JobRequisitions are created) - Create Requi Method
  18. // - PurchaseOrderItemStore (needed to trigger aftersave of JobRequisition to update tracked kanban when items are received)
  19. //UpdateTrackingKanban<JobRequisitionKanban, JobRequisition, JobRequisitionLink>(entity, m =>
  20. //{
  21. // CoreTable table = Provider.Query<JobRequisitionItem>(
  22. // new Filter<JobRequisitionItem>(x => x.Requisition.ID).IsEqualTo(entity.ID),
  23. // new Columns<JobRequisitionItem>(
  24. // x => x.PurchaseOrderItem.ID, //0
  25. // x => x.PurchaseOrderItem.ReceivedDate, //1
  26. // x => x.Status //2
  27. // )
  28. // );
  29. // if (table.Rows.Any())
  30. // {
  31. // bool keepKanbanOpen = false;
  32. // foreach (CoreRow row in table.Rows)
  33. // {
  34. // JobRequisitionItem item = row.ToObject<JobRequisitionItem>();
  35. // if (item.PurchaseOrderItem.ReceivedDate == DateTime.MinValue)
  36. // {
  37. // if (item.PurchaseOrderItem.ID == Guid.Empty)
  38. // {
  39. // if (item.Status != JobRequisitionItemStatus.NotChecked) //no purchase order but at least one item has been checked
  40. // {
  41. // return KanbanStatus.InProgress;
  42. // }
  43. // else
  44. // keepKanbanOpen = true;
  45. // }
  46. // else
  47. // return KanbanStatus.Waiting; //at least one purchase order item not received, but also at least one purchase order has been raised
  48. // }
  49. // }
  50. // if (keepKanbanOpen)
  51. // return KanbanStatus.Open; //no purchase orders raised and no items have been checked to arrive here
  52. // else
  53. // return KanbanStatus.Complete; //all jobrequiitem.purchaseorderitems have to be received AND keepKanbanOpen must have remained false to arrive here
  54. // }
  55. // return KanbanStatus.Open;
  56. //});
  57. }
  58. }
  59. }