using Comal.Classes; using InABox.Core; using InABox.Database; namespace PRS.Shared; public class Update_6_39 : DatabaseUpdateScript { public override VersionNumber Version => new (6, 39); public override bool Update() { ConvertJobDocumentIssuedDates(); ConvertProductUnitsOfMeasure(); ConvertQuoteUnitsOfMeasure(); return true; } void ConvertJobDocumentIssuedDates() { Logger.Send(LogType.Information, "", "Converting Job Document Issued Dates"); List updates = new List(); var columns = new Columns(x => x.ID).Add(x => x.Submitted).Add(x => x.Status); columns.Add("Issued"); CoreTable milestones = DbFactory.Provider.Query(null, columns); foreach (var row in milestones.Rows) { var milestone = row.ToObject(); if (milestone.Status == JobDocumentSetMileStoneStatus.Unknown) milestone.Status = JobDocumentSetMileStoneStatus.Submitted; milestone.Submitted = row.Get("Issued"); updates.Add(milestone); } DbFactory.Provider.Save(updates); } void ConvertProductUnitsOfMeasure() { Logger.Send(LogType.Information, "", "Converting Product Units of Measure"); List updates = new List(); var columns = new Columns(x => x.ID).Add(x => x.Description); CoreTable units = DbFactory.Provider.Query(new Filter(x=>x.Code).IsEqualTo(""), columns); foreach (var row in units.Rows) { var unit = row.ToObject(); unit.Code = unit.Description; updates.Add(unit); } DbFactory.Provider.Save(updates); } void ConvertQuoteUnitsOfMeasure() { Logger.Send(LogType.Information, "", "Converting Quote Units of Measure"); List updates = new List(); var columns = new Columns(x => x.ID).Add(x => x.Description); CoreTable units = DbFactory.Provider.Query(new Filter(x=>x.Code).IsEqualTo(""), columns); foreach (var row in units.Rows) { var unit = row.ToObject(); unit.Code = unit.Description; updates.Add(unit); } DbFactory.Provider.Save(updates); } }