|
@@ -2,6 +2,7 @@
|
|
|
using Comal.Stores;
|
|
|
using InABox.Core;
|
|
|
using InABox.Database;
|
|
|
+using PRS.Shared.Database_Update_Scripts.Utils;
|
|
|
using PRSStores;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
@@ -135,60 +136,12 @@ public class Update_7_52 : DatabaseUpdateScript
|
|
|
DbFactory.Provider.Save(jobRequiItems);
|
|
|
}
|
|
|
|
|
|
- private void RefreshStatuses()
|
|
|
- {
|
|
|
- Logger.Send(LogType.Information, "", $"Refreshing JobRequisitionItem statuses");
|
|
|
- var jobRequiItems = DbFactory.Provider.Query(
|
|
|
- null,
|
|
|
- JobRequisitionItemStore.StatusRequiredColumns().Add(x => x.Status))
|
|
|
- .ToObjects<JobRequisitionItem>()
|
|
|
- .ToList();
|
|
|
-
|
|
|
- var statusUpdates = new Dictionary<Tuple<JobRequisitionItemStatus, JobRequisitionItemStatus>, List<Guid>>();
|
|
|
-
|
|
|
- var i = 0;
|
|
|
- foreach(var item in jobRequiItems)
|
|
|
- {
|
|
|
- if(i % 50 == 0)
|
|
|
- {
|
|
|
- Logger.Send(LogType.Information, "", $"Refreshing statuses: {(((double)i) / (double)jobRequiItems.Count * 100):F0}%");
|
|
|
- }
|
|
|
- if (JobRequisitionItemStore.CalculateStatus(Store, item))
|
|
|
- {
|
|
|
- var key = new Tuple<JobRequisitionItemStatus, JobRequisitionItemStatus>(item.GetOriginalValue(x=>x.Status), item.Status);
|
|
|
- if(!statusUpdates.TryGetValue(key, out var list))
|
|
|
- {
|
|
|
- list = new List<Guid>();
|
|
|
- statusUpdates.Add(key, list);
|
|
|
- }
|
|
|
- list.Add(item.ID);
|
|
|
- item.Issues += $"Updated status from {item.GetOriginalValue(x=>x.Status)} to {item.Status}";
|
|
|
-
|
|
|
- }
|
|
|
- ++i;
|
|
|
- }
|
|
|
-
|
|
|
- foreach(var ((from, to), list) in statusUpdates)
|
|
|
- {
|
|
|
- Logger.Send(LogType.Information, "", $"{from} -> {to}: {list.Count} entries");
|
|
|
- }
|
|
|
-
|
|
|
- new BaseStore<JobRequisitionItem>
|
|
|
- {
|
|
|
- UserGuid = Guid.Empty,
|
|
|
- UserID = "",
|
|
|
- Platform = Platform.Server,
|
|
|
- Version = CoreUtils.GetVersion(),
|
|
|
- Provider = DbFactory.Provider
|
|
|
- }.Save(jobRequiItems, "");
|
|
|
- }
|
|
|
-
|
|
|
public override bool Update()
|
|
|
{
|
|
|
UpdateStockMovements();
|
|
|
UpdateOrderStatus();
|
|
|
CreateJobRequisitionItemPurchaseOrderItems();
|
|
|
- RefreshStatuses();
|
|
|
+ JobRequisitionItemUtils.RefreshStatuses(Store);
|
|
|
|
|
|
return true;
|
|
|
}
|