StockMovementStore.cs 1.8 KB

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