JobMaterialRequisitionItemStore.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. namespace Comal.Stores
  6. {
  7. public class JobMaterialRequisitionItemStore : BaseStore<JobRequisitionItem>
  8. {
  9. protected override void BeforeSave(JobRequisitionItem entity)
  10. {
  11. base.BeforeSave(entity);
  12. EnsureJobMaterials(entity.Product, entity.Requisition.Job, entity.Style, entity.Dimensions);
  13. }
  14. protected override void AfterSave(JobRequisitionItem entity)
  15. {
  16. base.AfterSave(entity);
  17. CleanupJobMaterials(entity.ID, entity.Product, entity.Requisition.Job, entity.Style, entity.Dimensions, false);
  18. }
  19. protected override void AfterDelete(JobRequisitionItem entity)
  20. {
  21. base.AfterDelete(entity);
  22. var delete = Provider.Query(
  23. new Filter<JobRequisitionItem>(x => x.ID).IsEqualTo(entity.ID),
  24. new Columns<JobRequisitionItem>(x => x.ID)
  25. .Add(x => x.Product.ID)
  26. .Add(x => x.Requisition.Job.ID)
  27. .Add(x => x.Style.ID)
  28. .Add(x => x.Dimensions.Unit.ID)
  29. .Add(x => x.Dimensions.Length)
  30. .Add(x => x.Dimensions.Width)
  31. .Add(x => x.Dimensions.Height)
  32. .Add(x => x.Dimensions.Weight)
  33. ).Rows.FirstOrDefault()?.ToObject<JobRequisitionItem>();
  34. CleanupJobMaterials(delete.ID, delete.Product, delete.Requisition.Job, delete.Style, delete.Dimensions, true);
  35. }
  36. }
  37. }