123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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;
- internal class Update_8_47 : DatabaseUpdateScript
- {
- public override VersionNumber Version => new(8, 47);
-
- public override bool Update()
- {
- MigrateProductInstanceMinimumStockLevels();
- return true;
- }
- private void MigrateProductInstanceMinimumStockLevels()
- {
- var provider = DbFactory.NewProvider(Logger.Main);
- Logger.Send(LogType.Information, "", $"Migrating ProductInstance Minimum Stock Levels...");
- var instances = provider.Query(
- new Filter<ProductInstance>("MinimumStockLevel").IsNotEqualTo(FilterConstant.Null),
- Columns.Local<ProductInstance>()
- ).ToArray<ProductInstance>();
-
- Utils.Utils.ProcessInChunks(
- instances,
- chunk =>
- {
- foreach(var instance in instances)
- {
- instance.MinimumStock.CustomStockLevel = true;
- instance.MinimumStock.StockLevel = (int)(CoreUtils.GetPropertyValue(instance, "MinimumStockLevel") ?? 0);
- CoreUtils.SetPropertyValue(instance, "MinimumStockLevel", 0);
- }
- provider.Save(chunk.Where(x => x.IsChanged()));
- },
- 1000,
- percent => Logger.Send(LogType.Information, "", $"Migrating Minimum Stock Levels: {percent:F2}%")
-
- );
- Logger.Send(LogType.Information, "", $"Migrating Minimum Stock Levels complete");
-
- }
- }
|