| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 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<StockMovement>(x => x.Type).IsEqualTo(null),                new Columns<StockMovement>(x => x.ID)                    .Add(x => x.Received)                    .Add(x => x.Issued)                    .Add(x => x.IsTransfer)                    .Add(x => x.Batch.Type),                top: 1000)                .ToArray<StockMovement>();            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;                }                // manually setting original value because originally the same.                movement.SetOriginalValue(x => x.Type, StockMovementType.Receive);            }            DbFactory.Provider.Save(movements);        }        return true;    }}
 |