123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using com.sun.net.ssl.@internal.ssl;
- using Comal.Classes;
- using InABox.Core;
- using InABox.Database;
- 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");
- int iCount = 0;
- while (true)
- {
- var movements = DbFactory.NewProvider(Logger.Main).Query(typeof(StockMovement),
- new Filter<StockMovement>(x => x.Type).IsEqualTo(null),
- Columns.None<StockMovement>().Add(x => x.ID)
- .Add(x => x.Received)
- .Add(x => x.Issued)
- .Add(x => x.Batch.Type)
- .Add("IsTransfer"),
- null,
- CoreRange.Database(1000));
-
- if (movements.Rows.Count == 0)
- break;
-
- iCount += movements.Rows.Count;
- Logger.Send(LogType.Information, "", $"Updating {iCount} movements");
- List<StockMovement> updates = new List<StockMovement>();
- foreach(var row in movements.Rows)
- {
-
- var istransfer = row.Get<bool>("IsTransfer");
- var movement = row.ToObject<StockMovement>();
- if (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);
- updates.Add(movement);
- }
- DbFactory.NewProvider(Logger.Main).Save(updates);
- }
- return true;
- }
- }
|