123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- using Comal.Classes;
- using InABox.Core;
- using InABox.Database;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PRS.Shared
- {
- public static class DatabaseUpdateScripts
- {
- public static void RegisterScripts()
- {
- DataUpdater.RegisterUpdateScript("6.31", Update_6_31);
- DataUpdater.RegisterUpdateScript("6.37", Update_6_37);
- DataUpdater.RegisterUpdateScript("6.38", Update_6_38);
- DataUpdater.RegisterUpdateScript("6.39", Update_6_39);
- }
- private static Dictionary<string, Tuple<string, string>> _6_31_module_map = new()
- {
- { "Assignments", new("Assignments", "Assignments") },
- { "Daily Report", new("Daily Report", "Assignments") },
- { "Delivered On Site", new("Delivered On Site", "Delivery Items") },
- { "Deliveries", new("Deliveries", "Deliveries") },
- { "Digital Forms", new("Digital Forms", "DigitalForm") },
- { "Employee List", new("Employees", "Employee") },
- { "Equipment List", new("Equipment", "Equipment") },
- { "Factory Floor", new("Factory", "Manufacturing Packets") },
- { "Incoming Consignments", new("Consignments", "Consignment") },
- { "Manufacturing Status", new("Manufacturing Packets", "Manufacturing Packets") },
- { "Product List", new("Products", "Products") },
- { "Projects", new("Job Details", "Job Details") },
- { "Purchase Orders", new("Purchase Orders", "PurchaseOrder") },
- { "Quotes", new("Quotes", "Quotes") },
- { "Rack List", new("Shipping", "Shipments") },
- { "Site Requisitions", new("Requisitions", "Requisition") },
- { "Staff TimeSheets", new("Timesheets", "TimeSheet") },
- { "Stock Locations", new("Stock Locations", "StockLocation") },
- { "Stock Movements", new("Stock Movements", "StockMovement") },
- { "Task List", new("Tasks By Status", "Kanban") },
- };
- private static bool Update_6_31()
- {
- var modules = DbFactory.Provider.Query(new Filter<CustomModule>().All())
- .Rows.Select(x => x.ToObject<CustomModule>()).ToList();
- foreach(var module in modules)
- {
- if (!string.IsNullOrWhiteSpace(module.Section))
- {
- if (_6_31_module_map.TryGetValue(module.Section, out var map))
- {
- module.Section = map.Item1;
- module.DataModel = map.Item2;
- module.AllRecords = true;
- }
- else
- {
- Logger.Send(LogType.Error, "", $"Custom Module '{module.Name}' has section name '{module.Section}' and will no longer be visible!");
- }
- }
- }
- DbFactory.Provider.Save(modules);
- return true;
- }
- private static bool Update_6_37()
- {
- Logger.Send(LogType.Information, "", "Recreating views");
- DbFactory.Provider.ForceRecreateViews();
- return true;
- }
-
- private static bool Update_6_38()
- {
-
- Logger.Send(LogType.Information, "", "Converting Job Requisition Dates to Due Dates");
- List<JobRequisition> updates = new List<JobRequisition>();
- var columns = new Columns<JobRequisition>(x => x.ID);
- columns.Add("Date");
- CoreTable requis = DbFactory.Provider.Query<JobRequisition>(null, columns);
- foreach (var row in requis.Rows)
- {
- var requi = row.ToObject<JobRequisition>();
- requi.Approved = row.Get<DateTime>("Date");
- updates.Add(requi);
- }
- DbFactory.Provider.Save(updates);
-
- return true;
- }
-
- private static bool Update_6_39()
- {
- void ConvertJobDocumentIssuedDates()
- {
- Logger.Send(LogType.Information, "", "Converting Job Document Issued Dates");
- List<JobDocumentSetMileStone> updates = new List<JobDocumentSetMileStone>();
- var columns = new Columns<JobDocumentSetMileStone>(x => x.ID).Add(x => x.Submitted).Add(x => x.Status);
- columns.Add("Issued");
- CoreTable milestones = DbFactory.Provider.Query<JobDocumentSetMileStone>(null, columns);
- foreach (var row in milestones.Rows)
- {
- var milestone = row.ToObject<JobDocumentSetMileStone>();
- if (milestone.Status == JobDocumentSetMileStoneStatus.Unknown)
- milestone.Status = JobDocumentSetMileStoneStatus.Submitted;
- milestone.Submitted = row.Get<DateTime>("Issued");
- updates.Add(milestone);
- }
- DbFactory.Provider.Save(updates);
- }
-
- void ConvertProductUnitsOfMeasure()
- {
- Logger.Send(LogType.Information, "", "Converting Product Units of Measure");
- List<ProductDimensionUnit> updates = new List<ProductDimensionUnit>();
- var columns = new Columns<ProductDimensionUnit>(x => x.ID).Add(x => x.Description);
- CoreTable units = DbFactory.Provider.Query<ProductDimensionUnit>(new Filter<ProductDimensionUnit>(x=>x.Code).IsEqualTo(""), columns);
- foreach (var row in units.Rows)
- {
- var unit = row.ToObject<ProductDimensionUnit>();
- unit.Code = unit.Description;
- updates.Add(unit);
- }
- DbFactory.Provider.Save(updates);
- }
-
- void ConvertQuoteUnitsOfMeasure()
- {
- Logger.Send(LogType.Information, "", "Converting Quote Units of Measure");
- List<QuoteTakeOffUnit> updates = new List<QuoteTakeOffUnit>();
- var columns = new Columns<QuoteTakeOffUnit>(x => x.ID).Add(x => x.Description);
- CoreTable units = DbFactory.Provider.Query<QuoteTakeOffUnit>(new Filter<QuoteTakeOffUnit>(x=>x.Code).IsEqualTo(""), columns);
- foreach (var row in units.Rows)
- {
- var unit = row.ToObject<QuoteTakeOffUnit>();
- unit.Code = unit.Description;
- updates.Add(unit);
- }
- DbFactory.Provider.Save(updates);
- }
-
- ConvertJobDocumentIssuedDates();
-
- ConvertProductUnitsOfMeasure();
- ConvertQuoteUnitsOfMeasure();
-
- return true;
- }
- }
- }
|