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 = Columns.None().Add(x => x.ID).Add(x => x.Submitted).Add(x => x.Status); columns.Add("Issued"); CoreTable milestones = DbFactory.NewProvider(Logger.Main).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.NewProvider(Logger.Main).Save(updates); } void ConvertProductUnitsOfMeasure() { Logger.Send(LogType.Information, "", "Converting Product Units of Measure"); List updates = new List(); var columns = Columns.None().Add(x => x.ID).Add(x => x.Description); CoreTable units = DbFactory.NewProvider(Logger.Main).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.NewProvider(Logger.Main).Save(updates); } void ConvertQuoteUnitsOfMeasure() { Logger.Send(LogType.Information, "", "Converting Quote Units of Measure"); List updates = new List(); var columns = Columns.None().Add(x => x.ID).Add(x => x.Description); CoreTable units = DbFactory.NewProvider(Logger.Main).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.NewProvider(Logger.Main).Save(updates); } }