Update_7_52.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. //using Comal.Classes;
  2. //using Comal.Stores;
  3. //using InABox.Core;
  4. //using InABox.Database;
  5. //using PRS.Shared.Database_Update_Scripts.Utils;
  6. //using PRSStores;
  7. //using System.Collections.Generic;
  8. //using System.Linq;
  9. //using System.Text;
  10. //using System.Threading.Tasks;
  11. //using static ICSharpCode.AvalonEdit.Document.TextDocumentWeakEventManager;
  12. //
  13. //namespace PRS.Shared;
  14. //
  15. //public class Update_7_52 : DatabaseUpdateScript
  16. //{
  17. //
  18. // private Type jripoiType = null;
  19. //
  20. // public Update_7_52()
  21. // {
  22. // jripoiType = CoreUtils.GetEntity("Comal.Classes.JobRequisitionItemPurchaseOrderItem");
  23. // }
  24. //
  25. //
  26. // public override VersionNumber Version => new VersionNumber(7, 52);
  27. //
  28. // private IStore<JobRequisitionItem>? _store;
  29. //
  30. // private IStore<JobRequisitionItem> Store
  31. // {
  32. // get
  33. // {
  34. // _store ??= DbFactory.FindStore<JobRequisitionItem>(Guid.Empty, "", Platform.Server, CoreUtils.GetVersion(), Logger.New());
  35. // return _store;
  36. // }
  37. // }
  38. //
  39. // private void UpdateStockMovements()
  40. // {
  41. // var jobRequiItems = DbFactory.NewProvider(Logger.Main).Query(
  42. // new Filter<JobRequisitionItem>(x => x.PurchaseOrderItem.ID).IsNotEqualTo(null),
  43. // Columns.None<JobRequisitionItem>().Add(x => x.ID)
  44. // .Add(x => x.PurchaseOrderItem.ID))
  45. // .ToObjects<JobRequisitionItem>()
  46. // .ToList();
  47. //
  48. // var _poiIDs = DbFactory.NewProvider(Logger.Main).GetTable(jripoiType).ExtractValues<Guid>("PurchaseOrderItem.ID").Distinct().ToArray();
  49. //
  50. // var mvts = DbFactory.NewProvider(Logger.Main).Query(
  51. // new Filter<StockMovement>(x => x.JobRequisitionItem.ID).IsEqualTo(null)
  52. // .And(x => x.OrderItem.ID).IsNotEqualTo(null)
  53. // .And(new Filter<StockMovement>(x => x.OrderItem.ID).InList(_poiIDs) //<JobRequisitionItemPurchaseOrderItem>(null, x => x.PurchaseOrderItem.ID)
  54. // .Or(x => x.OrderItem.ID).InQuery<JobRequisitionItem>(null, x => x.PurchaseOrderItem.ID)),
  55. // Columns.None<StockMovement>().Add(x => x.ID)
  56. // .Add(x => x.OrderItem.ID))
  57. // .ToObjects<StockMovement>()
  58. // .ToList();
  59. //
  60. // Logger.Send(LogType.Information, "", $"Updating JobRequisitionItem.ID for {mvts.Count} StockMovements");
  61. //
  62. // var orderItemIDs = mvts.Select(x => x.OrderItem.ID).ToArray();
  63. //
  64. // var jriPois = DbFactory.NewProvider(Logger.Main).Query(
  65. // jripoiType, Filter.Create(jripoiType,"PurchaseOrderItem.ID",Operator.InList, orderItemIDs),
  66. // Columns.None(jripoiType).Add("JobRequisitionItem.ID").Add("PurchaseOrderItem.ID")
  67. // );
  68. //
  69. // var _jris = DbFactory.NewProvider(Logger.Main).Query(
  70. // new Filter<JobRequisitionItem>(x => x.PurchaseOrderItem.ID).InList(orderItemIDs),
  71. // Columns.None<JobRequisitionItem>().Add(x => x.ID).Add(x => x.PurchaseOrderItem.ID))
  72. // .ToObjects<JobRequisitionItem>();
  73. //
  74. // var requiIDs = new Dictionary<Guid, Guid>();
  75. // foreach(var _row in jriPois.Rows)
  76. // {
  77. // requiIDs.TryAdd(_row.Get<Guid>("PurchaseOrderItem.ID"), _row.Get<Guid>("JobRequisitionItem.ID"));
  78. // }
  79. // foreach (var _jri in _jris)
  80. // {
  81. // requiIDs.TryAdd(_jri.PurchaseOrderItem.ID, _jri.ID);
  82. // }
  83. //
  84. // foreach(var mvt in mvts)
  85. // {
  86. // if(requiIDs.TryGetValue(mvt.OrderItem.ID, out var requiItemID))
  87. // {
  88. // mvt.JobRequisitionItem.ID = requiItemID;
  89. // }
  90. // else
  91. // {
  92. // Logger.Send(LogType.Error, "", $"StockMovement which didn't have an associated JobRequisitionItem: {mvt.ID}");
  93. // }
  94. // }
  95. //
  96. // var changed = mvts.Where(x => x.IsChanged()).ToList();
  97. //
  98. // // Not going through the store otherwise the JobRequisitionItem Status will be updated incorrectly.
  99. // DbFactory.NewProvider(Logger.Main).Save(changed);
  100. //
  101. // Logger.Send(LogType.Information, "", $"Updated {changed.Count} StockMovements");
  102. // }
  103. //
  104. // private void UpdateOrderStatus()
  105. // {
  106. // var jobRequiItems = DbFactory.NewProvider(Logger.Main).Query(
  107. // new Filter<JobRequisitionItem>(x => x.OrderRequired).IsEqualTo(DateTime.MinValue)
  108. // .And(new Filter<JobRequisitionItem>(x => x.Status).IsEqualTo(JobRequisitionItemStatus.OrderRequired)
  109. // .Or(x => x.Status).IsEqualTo(JobRequisitionItemStatus.OnOrder)
  110. // .Or(x => x.Status).IsEqualTo(JobRequisitionItemStatus.Received)),
  111. // Columns.None<JobRequisitionItem>().Add(x => x.ID)
  112. // .Add(x => x.LastUpdate))
  113. // .ToObjects<JobRequisitionItem>()
  114. // .ToList();
  115. //
  116. // foreach (var jri in jobRequiItems)
  117. // {
  118. // jri.OrderRequired = jri.LastUpdate;
  119. // }
  120. //
  121. // DbFactory.NewProvider(Logger.Main).Save(jobRequiItems);
  122. // }
  123. //
  124. // private void CreateJobRequisitionItemPurchaseOrderItems()
  125. // {
  126. //
  127. // var _poiIDs = DbFactory.NewProvider(Logger.Main).GetTable(jripoiType).ExtractValues<Guid>("PurchaseOrderItem.ID").Distinct().ToArray();
  128. //
  129. // var jobRequiItems = DbFactory.NewProvider(Logger.Main).Query(
  130. // new Filter<JobRequisitionItem>(x => x.PurchaseOrderItem.ID).IsNotEqualTo(null)
  131. // .And(x => x.ID).NotInList(_poiIDs),
  132. // Columns.None<JobRequisitionItem>().Add(x => x.ID)
  133. // .Add(x => x.PurchaseOrderItem.ID)
  134. // .Add(x => x.Status))
  135. // .ToObjects<JobRequisitionItem>()
  136. // .ToList();
  137. // Logger.Send(LogType.Information, "", $"Creating JobRequisitionPurchaseOrderItems for {jobRequiItems.Count} JobRequisitionItems");
  138. //
  139. // var newJRIPois = new List<Entity>();
  140. // foreach (var jri in jobRequiItems)
  141. // {
  142. // var jriPoi = Activator.CreateInstance(jripoiType) as Entity;
  143. // CoreUtils.SetPropertyValue(jriPoi,"JobRequisitionItem.ID",jri.ID);
  144. // CoreUtils.SetPropertyValue(jriPoi,"PurchaseOrderItem.ID",jri.PurchaseOrderItem.ID);
  145. // newJRIPois.Add(jriPoi);
  146. // }
  147. // DbFactory.NewProvider(Logger.Main).Save(jripoiType,newJRIPois);
  148. // DbFactory.NewProvider(Logger.Main).Save(jobRequiItems);
  149. // }
  150. //
  151. // public override bool Update()
  152. // {
  153. // UpdateStockMovements();
  154. // UpdateOrderStatus();
  155. // CreateJobRequisitionItemPurchaseOrderItems();
  156. // //JobRequisitionItemUtils.RefreshStatuses(Store);
  157. //
  158. // return true;
  159. // }
  160. //}