StockMovementStore.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Comal.Classes;
  2. using Comal.Stores;
  3. using InABox.Core;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. namespace PRSStores
  9. {
  10. public class StockMovementStore : BaseStore<StockMovement>
  11. {
  12. protected override void AfterSave(StockMovement sm)
  13. {
  14. if (sm.JobRequisitionItem.ID != Guid.Empty)
  15. {
  16. CoreTable table = Provider.Query<JobRequisitionItem>(
  17. new Filter<JobRequisitionItem>(x => x.ID).IsEqualTo(sm.JobRequisitionItem.ID),
  18. new Columns<JobRequisitionItem>(x => x.ID, x => x.Cancelled, x => x.Archived, x => x.PurchaseOrderItem.ReceivedDate, x => x.Ordered)
  19. );
  20. var item = table.Rows.FirstOrDefault().ToObject<JobRequisitionItem>();
  21. item = JobRequisitionItemStore.DoStatusChecks(item, DoQuery(item));
  22. Provider.Save(item);
  23. }
  24. base.AfterSave(sm);
  25. }
  26. private JobRequisitionItem QueryJobRequiItem(Guid itemID)
  27. {
  28. CoreTable table = Provider.Query<JobRequisitionItem>(new Filter<JobRequisitionItem>(x => x.ID).IsEqualTo(itemID));
  29. return table.Rows.FirstOrDefault().ToObject<JobRequisitionItem>();
  30. }
  31. private CoreTable DoQuery(JobRequisitionItem item)
  32. {
  33. return Provider.Query<StockMovement>(
  34. new Filter<StockMovement>(x => x.JobRequisitionItem.ID).IsEqualTo(item.ID),
  35. new Columns<StockMovement>(
  36. x => x.Received
  37. ));
  38. }
  39. }
  40. }