using com.sun.net.ssl.@internal.ssl; 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.Database_Update_Scripts; public class Update_7_63 : DatabaseUpdateScript { public override VersionNumber Version => new VersionNumber(7, 63); public override bool Update() { Logger.Send(LogType.Information, "", $"Updating uninitialised stock movement types"); while (true) { var movements = DbFactory.Provider.Query( new Filter(x => x.Type).IsEqualTo(null), new Columns(x => x.ID) .Add(x => x.Received) .Add(x => x.Issued) .Add(x => x.IsTransfer) .Add(x => x.Batch.Type), top: 1000) .ToArray(); if (movements.Length == 0) break; Logger.Send(LogType.Information, "", $"Updating {movements.Length} movements"); foreach(var movement in movements) { if (movement.IsTransfer) { if(movement.Received > 0) { movement.Type = StockMovementType.TransferIn; } else { movement.Type = StockMovementType.TransferOut; } } else if(movement.Batch.Type == StockMovementBatchType.Stocktake) { movement.Type = StockMovementType.StockTake; } else if(movement.Received > 0) { movement.Type = StockMovementType.Receive; } else { movement.Type = StockMovementType.Issue; } } DbFactory.Provider.Save(movements); } return true; } }