Update_6_39.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using Comal.Classes;
  2. using InABox.Core;
  3. using InABox.Database;
  4. namespace PRS.Shared;
  5. public class Update_6_39 : DatabaseUpdateScript
  6. {
  7. public override VersionNumber Version => new (6, 39);
  8. public override bool Update()
  9. {
  10. ConvertJobDocumentIssuedDates();
  11. ConvertProductUnitsOfMeasure();
  12. ConvertQuoteUnitsOfMeasure();
  13. return true;
  14. }
  15. void ConvertJobDocumentIssuedDates()
  16. {
  17. Logger.Send(LogType.Information, "", "Converting Job Document Issued Dates");
  18. List<JobDocumentSetMileStone> updates = new List<JobDocumentSetMileStone>();
  19. var columns = Columns.None<JobDocumentSetMileStone>().Add(x => x.ID).Add(x => x.Submitted).Add(x => x.Status);
  20. columns.Add("Issued");
  21. CoreTable milestones = DbFactory.NewProvider(Logger.Main).Query<JobDocumentSetMileStone>(null, columns);
  22. foreach (var row in milestones.Rows)
  23. {
  24. var milestone = row.ToObject<JobDocumentSetMileStone>();
  25. if (milestone.Status == JobDocumentSetMileStoneStatus.Unknown)
  26. milestone.Status = JobDocumentSetMileStoneStatus.Submitted;
  27. milestone.Submitted = row.Get<DateTime>("Issued");
  28. updates.Add(milestone);
  29. }
  30. DbFactory.NewProvider(Logger.Main).Save(updates);
  31. }
  32. void ConvertProductUnitsOfMeasure()
  33. {
  34. Logger.Send(LogType.Information, "", "Converting Product Units of Measure");
  35. List<ProductDimensionUnit> updates = new List<ProductDimensionUnit>();
  36. var columns = Columns.None<ProductDimensionUnit>().Add(x => x.ID).Add(x => x.Description);
  37. CoreTable units = DbFactory.NewProvider(Logger.Main).Query<ProductDimensionUnit>(new Filter<ProductDimensionUnit>(x=>x.Code).IsEqualTo(""), columns);
  38. foreach (var row in units.Rows)
  39. {
  40. var unit = row.ToObject<ProductDimensionUnit>();
  41. unit.Code = unit.Description;
  42. updates.Add(unit);
  43. }
  44. DbFactory.NewProvider(Logger.Main).Save(updates);
  45. }
  46. void ConvertQuoteUnitsOfMeasure()
  47. {
  48. Logger.Send(LogType.Information, "", "Converting Quote Units of Measure");
  49. List<QuoteTakeOffUnit> updates = new List<QuoteTakeOffUnit>();
  50. var columns = Columns.None<QuoteTakeOffUnit>().Add(x => x.ID).Add(x => x.Description);
  51. CoreTable units = DbFactory.NewProvider(Logger.Main).Query<QuoteTakeOffUnit>(new Filter<QuoteTakeOffUnit>(x=>x.Code).IsEqualTo(""), columns);
  52. foreach (var row in units.Rows)
  53. {
  54. var unit = row.ToObject<QuoteTakeOffUnit>();
  55. unit.Code = unit.Description;
  56. updates.Add(unit);
  57. }
  58. DbFactory.NewProvider(Logger.Main).Save(updates);
  59. }
  60. }