StockMovementStore.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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,
  19. x => x.Cancelled,
  20. x => x.Archived,
  21. x => x.PurchaseOrderItem.ReceivedDate,
  22. x => x.Ordered,
  23. x => x.Qty,
  24. x => x.Style.ID,
  25. x => x.Status
  26. )
  27. );
  28. var item = table.Rows.FirstOrDefault().ToObject<JobRequisitionItem>();
  29. item = JobRequisitionItemStore.DoStatusChecks(item, DoQuery(item));
  30. Provider.Save(item);
  31. }
  32. base.AfterSave(sm);
  33. }
  34. private JobRequisitionItem QueryJobRequiItem(Guid itemID)
  35. {
  36. CoreTable table = Provider.Query<JobRequisitionItem>(new Filter<JobRequisitionItem>(x => x.ID).IsEqualTo(itemID));
  37. return table.Rows.FirstOrDefault().ToObject<JobRequisitionItem>();
  38. }
  39. private CoreTable DoQuery(JobRequisitionItem item)
  40. {
  41. return Provider.Query<StockMovement>(
  42. new Filter<StockMovement>(x => x.JobRequisitionItem.ID).IsEqualTo(item.ID),
  43. new Columns<StockMovement>(
  44. x => x.Received,
  45. x => x.Style.ID
  46. ));
  47. }
  48. }
  49. }