|
|
@@ -8,6 +8,7 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
+using InABox.Database.SQLite;
|
|
|
|
|
|
namespace PRS.Shared.Database_Update_Scripts;
|
|
|
|
|
|
@@ -19,17 +20,27 @@ internal class Update_8_57 : DatabaseUpdateScript
|
|
|
{
|
|
|
Logger.Send(LogType.Information, "", "Approving all old setouts");
|
|
|
|
|
|
+ if (provider is SQLiteProvider p)
|
|
|
+ {
|
|
|
+ var sql = $"update setout set [status]='Approved'";
|
|
|
+ p.Update(sql);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var ids = provider.Query(
|
|
|
+ Filter<StagingSetout>.Where(x => x.Setout.ID).IsNotEqualTo(Guid.Empty).And(
|
|
|
+ Filter<StagingSetout>.Where(x => x.Task.ID).IsNotEqualTo(Guid.Empty)
|
|
|
+ .Or(x => x.UnapprovedDocuments).IsGreaterThan(0)
|
|
|
+ ),
|
|
|
+ Columns.None<StagingSetout>().Add(x => x.ID)).ExtractValues<StagingSetout, Guid>(x => x.Setout.ID);
|
|
|
+
|
|
|
var setouts = provider.Query(
|
|
|
Filter<Setout>.Where(x => x.Status).IsEqualTo(SetoutStatus.Unapproved)
|
|
|
- .And(x => x.ID).NotInQuery(
|
|
|
- Filter<StagingSetout>.Where(x => x.Task.ID).IsNotEqualTo(Guid.Empty)
|
|
|
- .Or(x => x.UnapprovedDocuments).IsGreaterThan(0),
|
|
|
- x => x.Setout.ID),
|
|
|
+ .And(x => x.ID).NotInList(ids),
|
|
|
Columns.None<Setout>()
|
|
|
.Add(x => x.ID)
|
|
|
.Add(x => x.Status))
|
|
|
.ToArray<Setout>()
|
|
|
-
|
|
|
.ToQueue();
|
|
|
var totalsetouts = setouts.Count;
|
|
|
var processedsetouts = 0;
|
|
|
@@ -43,13 +54,25 @@ internal class Update_8_57 : DatabaseUpdateScript
|
|
|
processedsetouts += updates.Length;
|
|
|
};
|
|
|
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void ApproveAllManufacturingPackets(IProvider provider)
|
|
|
+ {
|
|
|
Logger.Send(LogType.Information, "", "Approving all old manufacturing packets");
|
|
|
+ if (provider is SQLiteProvider p)
|
|
|
+ {
|
|
|
+ var sql = $"update manufacturingpacket set [approved]=[created] where [approved] is null";
|
|
|
+ p.Update(sql);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
var packets = provider.Query(
|
|
|
- Filter<ManufacturingPacket>.Where(x => x.Approved).IsEqualTo(DateTime.MinValue),
|
|
|
- Columns.None<ManufacturingPacket>()
|
|
|
- .Add(x => x.ID)
|
|
|
- .Add(x => x.Approved)
|
|
|
- .Add(x => x.Created))
|
|
|
+ Filter<ManufacturingPacket>.Where(x => x.Approved).IsEqualTo(DateTime.MinValue),
|
|
|
+ Columns.None<ManufacturingPacket>()
|
|
|
+ .Add(x => x.ID)
|
|
|
+ .Add(x => x.Approved)
|
|
|
+ .Add(x => x.Created))
|
|
|
.ToArray<ManufacturingPacket>()
|
|
|
.ToQueue();
|
|
|
var totalpackets = packets.Count;
|
|
|
@@ -63,7 +86,6 @@ internal class Update_8_57 : DatabaseUpdateScript
|
|
|
provider.Save(updates);
|
|
|
processedpackets += updates.Length;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
public override bool Update()
|
|
|
@@ -71,31 +93,38 @@ internal class Update_8_57 : DatabaseUpdateScript
|
|
|
var provider = DbFactory.NewProvider(Logger.Main);
|
|
|
|
|
|
ApproveOldSetouts(provider);
|
|
|
+ ApproveAllManufacturingPackets(provider);
|
|
|
+ ConvertStagingSetouts(provider);
|
|
|
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ConvertStagingSetouts(IProvider provider)
|
|
|
+ {
|
|
|
var stagingSetoutsQueue = provider.Query(
|
|
|
- Filter<StagingSetout>.Where(x => x.Setout.ID).IsEqualTo(Guid.Empty)
|
|
|
- .Or(x => x.Task.ID).IsNotEqualTo(Guid.Empty)
|
|
|
- .Or(x => x.UnapprovedDocuments).IsGreaterThan(0),
|
|
|
- Columns.None<StagingSetout>()
|
|
|
- .Add(x => x.ID)
|
|
|
- .Add(x => x.Created)
|
|
|
- .Add(x => x.CreatedBy)
|
|
|
- .Add(x => x.Number)
|
|
|
- .Add(x => x.JobLink.ID)
|
|
|
- .Add(x => x.Group.ID)
|
|
|
- .Add(x => x.OriginalPath)
|
|
|
- .Add(x => x.OriginalCRC)
|
|
|
- .Add(x => x.SavePath)
|
|
|
- .Add(x => x.Archived)
|
|
|
- .Add(x => x.LockedBy.ID)
|
|
|
- .Add(x => x.Task.ID)
|
|
|
- .Add(x => x.Task.EmployeeLink.ID)
|
|
|
- .Add(x => x.Task.Title)
|
|
|
- .Add(x => x.Task.Description)
|
|
|
- .Add(x => x.Task.Notes)
|
|
|
- .Add(x => x.Task.Completed)
|
|
|
- .Add(x => x.JobScope.ID)
|
|
|
- .Add(x => x.Setout.ID))
|
|
|
+ Filter<StagingSetout>.Where(x => x.Setout.ID).IsEqualTo(Guid.Empty)
|
|
|
+ .Or(x => x.Task.ID).IsNotEqualTo(Guid.Empty)
|
|
|
+ .Or(x => x.UnapprovedDocuments).IsGreaterThan(0),
|
|
|
+ Columns.None<StagingSetout>()
|
|
|
+ .Add(x => x.ID)
|
|
|
+ .Add(x => x.Created)
|
|
|
+ .Add(x => x.CreatedBy)
|
|
|
+ .Add(x => x.Number)
|
|
|
+ .Add(x => x.JobLink.ID)
|
|
|
+ .Add(x => x.Group.ID)
|
|
|
+ .Add(x => x.OriginalPath)
|
|
|
+ .Add(x => x.OriginalCRC)
|
|
|
+ .Add(x => x.SavePath)
|
|
|
+ .Add(x => x.Archived)
|
|
|
+ .Add(x => x.LockedBy.ID)
|
|
|
+ .Add(x => x.Task.ID)
|
|
|
+ .Add(x => x.Task.EmployeeLink.ID)
|
|
|
+ .Add(x => x.Task.Title)
|
|
|
+ .Add(x => x.Task.Description)
|
|
|
+ .Add(x => x.Task.Notes)
|
|
|
+ .Add(x => x.Task.Completed)
|
|
|
+ .Add(x => x.JobScope.ID)
|
|
|
+ .Add(x => x.Setout.ID))
|
|
|
.ToArray<StagingSetout>()
|
|
|
.ToQueue();
|
|
|
|
|
|
@@ -114,8 +143,6 @@ internal class Update_8_57 : DatabaseUpdateScript
|
|
|
|
|
|
processed += stagingSetouts.Length;
|
|
|
}
|
|
|
-
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
void ProcessStagingSetouts(IProvider provider, StagingSetout[] stagingSetouts)
|
|
|
@@ -275,10 +302,10 @@ internal class Update_8_57 : DatabaseUpdateScript
|
|
|
{
|
|
|
var newSetoutDocuments = setoutDocuments.GetValueOrAdd(setout);
|
|
|
|
|
|
- if(documents.All(x => x.Approved))
|
|
|
- {
|
|
|
- setout.Status = SetoutStatus.Approved;
|
|
|
- }
|
|
|
+ //if(documents.All(x => x.Approved))
|
|
|
+ //{
|
|
|
+ // setout.Status = SetoutStatus.Approved;
|
|
|
+ //}
|
|
|
|
|
|
foreach(var stagingSetoutDocument in documents)
|
|
|
{
|