| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 
							- using Comal.Classes;
 
- using InABox.Core;
 
- using InABox.Database;
 
- namespace PRS.Shared.Database_Update_Scripts;
 
- internal class Update_8_14_Unused : DatabaseUpdateScript
 
- {
 
-     private static readonly int CHUNK_SIZE = 500;
 
-     private static readonly bool DESTRUCTIVE = false;
 
-     
 
-     public override VersionNumber Version => new(8, 14);
 
-     
 
-     public override bool Update()
 
-     {
 
-         var _provider = DbFactory.NewProvider(Logger.Main);
 
-         Clear_POIAs(_provider);
 
-         var _poias = Migrate_JRIPOIs(_provider);
 
-         Migrate_POIs(_provider, _poias);
 
-         return true;
 
-     }
 
-     private void Clear_POIAs(IProvider provider)
 
-     {
 
-         return;
 
-         Logger.Send(LogType.Information, "", "Clearing Existing Allocations");
 
-         var _queue = provider.Query(
 
-             new Filter<PurchaseOrderItemAllocation>().All(),
 
-             Columns.None<PurchaseOrderItemAllocation>().Add(x => x.ID)
 
-         ).Rows.ToQueue();
 
-         while (_queue.Any())
 
-         {
 
-             List<PurchaseOrderItemAllocation> _poias = _queue
 
-                 .Dequeue(CHUNK_SIZE)
 
-                 .Select(x => x.ToObject<PurchaseOrderItemAllocation>())
 
-                 .ToList();
 
-             provider.Delete(_poias, "");
 
-             Logger.Send(LogType.Information, "", $"- Deleted {_poias.Count} Allocations ({_queue.Count} remaining)");
 
-         }
 
-     }
 
-     private List<PurchaseOrderItemAllocation> Migrate_JRIPOIs(IProvider provider)
 
-     {
 
-         var _result = new List<PurchaseOrderItemAllocation>();
 
-         return _result;
 
-         
 
-         Logger.Send(LogType.Information,"","Migrating JobRequisitionItems");
 
-         var _queue = provider.Query(
 
-             new Filter<JobRequisitionItemPurchaseOrderItem>().All(),
 
-             Columns.None<JobRequisitionItemPurchaseOrderItem>()
 
-                 .Add(x=>x.PurchaseOrderItem.ID)
 
-                 .Add(x=>x.PurchaseOrderItem.Qty)
 
-                 .Add(x=>x.JobRequisitionItem.ID)
 
-                 .Add(x=>x.JobRequisitionItem.Job.ID)
 
-         ).Rows.ToQueue();
 
-         
 
-         while (_queue.Any())
 
-         {
 
-             List<PurchaseOrderItemAllocation> _poias = new();
 
-             var _jripois = _queue.Dequeue(CHUNK_SIZE).Select(x=>x.ToObject<JobRequisitionItemPurchaseOrderItem>()).ToList();
 
-             foreach (var _jripoi in _jripois)
 
-             {
 
-                 var _poia = new PurchaseOrderItemAllocation();
 
-                 _poia.Item.ID = _jripoi.ID;
 
-                 _poia.Job.ID = _jripoi.JobRequisitionItem.Job.ID;
 
-                 _poia.JobRequisitionItem.ID = _jripoi.JobRequisitionItem.ID;
 
-                 _poia.Quantity = _jripoi.PurchaseOrderItem.Qty;
 
-                 _poias.Add(_poia);
 
-                 CoreUtils.SetPropertyValue(_jripoi,"Job.ID",Guid.Empty);
 
-             }
 
-             provider.Save(_poias);
 
-             if (DESTRUCTIVE)
 
-                 provider.Delete(_jripois,"");
 
-             Logger.Send(LogType.Information, "", $"- Created {_poias.Count} Allocations ({_queue.Count} remaining)");
 
-             _result.AddRange(_poias);
 
-         }
 
-         return _result;
 
-     }
 
-     
 
-     private void Migrate_POIs(IProvider provider, List<PurchaseOrderItemAllocation> poias)
 
-     {
 
-         Logger.Send(LogType.Information,"","Migrating PurchaseOrderItems");
 
-         var _ids = poias.Select(x => x.Item.ID).Distinct().ToArray();
 
-         var _queue = provider.Query(
 
-             new Filter<PurchaseOrderItem>("Job.ID").IsNotEqualTo(Guid.Empty),
 
-             Columns.Required<PurchaseOrderItem>().Add("Job.ID")
 
-         ).Rows.ToQueue();
 
-         
 
-         while (_queue.Any())
 
-         {
 
-             List<PurchaseOrderItemAllocation> _poias = new();
 
-             var _pois = _queue.Dequeue(CHUNK_SIZE)
 
-                 .Where(r => !_ids.Contains(r.Get<PurchaseOrderItemAllocation,Guid>(c=>c.ID)))
 
-                 .Select(x=>x.ToObject<PurchaseOrderItem>())
 
-                 .ToList();
 
-             foreach (var _poi in _pois)
 
-             {
 
-                 var _poia = new PurchaseOrderItemAllocation();
 
-                 _poia.Item.ID = _poi.ID;
 
-                 _poia.Job.ID = (Guid)(CoreUtils.GetPropertyValue(_poi, "Job.ID") ?? Guid.Empty);
 
-                 _poia.Quantity = _poi.Qty;
 
-                 _poias.Add(_poia);
 
-                 CoreUtils.SetPropertyValue(_poi,"Job.ID",Guid.Empty);
 
-             }
 
-             provider.Save(_poias);
 
-             if(DESTRUCTIVE)
 
-                 provider.Save(_pois);
 
-             Logger.Send(LogType.Information, "", $"- Created {_poias.Count} Allocations ({_queue.Count} remaining)");
 
-         }
 
-     }
 
- }
 
 
  |