Browse Source

Added CurrentMieSTone link to DocumentSEt

Kenric Nugteren 1 year ago
parent
commit
9c6debe204

+ 9 - 8
prs.classes/Entities/Job/DocumentSet/JobDocumentSet.cs

@@ -74,17 +74,18 @@ namespace Comal.Classes
         [EditorSequence("Advanced", 5)]
         public DateTime Retired { get; set; }
 
-        /*[Aggregate(typeof(JobDocumentSetCurrentAggregate))]
-        public DateTime Current { get; set; }*/
+        [ChildEntity(typeof(JobDocumentSetCurrentMileStone))]
+        public LightJobDocumentSetMileStoneLink CurrentMileStone { get; set; }
     }
 
-    /*
-    public class JobDocumentSetCurrentAggregate : CoreAggregate<JobDocumentSet, JobDocumentSetMileStone, DateTime>
+    public class JobDocumentSetCurrentMileStone : IChildEntityDefinition<JobDocumentSetMileStone>
     {
-        public override Expression<Func<JobDocumentSetMileStone, DateTime>> Aggregate => x => x.Date;
+        public Filter<JobDocumentSetMileStone>? Filter { get; set; } = null;
 
-        public override Dictionary<Expression<Func<JobDocumentSetMileStone, object>>, Expression<Func<JobDocumentSet, object>>> Links => throw new NotImplementedException();
+        public SortOrder<JobDocumentSetMileStone>? Sort { get; set; }
+            = new SortOrder<JobDocumentSetMileStone>(x => x.Type.Sequence, SortDirection.Descending).ThenBy(x => x.Created);
+
+        public Expression<Func<JobDocumentSetMileStone, Guid>> Parent => x => x.DocumentSet.ID;
+    }
 
-        public override AggregateCalculation Calculation => throw new NotImplementedException();
-    }*/
 }

+ 2 - 0
prs.classes/Entities/Job/DocumentSet/JobDocumentSetLink.cs

@@ -25,5 +25,7 @@ namespace Comal.Classes
         public JobDocumentSetTypeLink Type { get; set; }
         public JobDocumentSetCategoryLink Category { get; set; }
         public JobITPLink Area { get; set; }
+
+        public LightJobDocumentSetMileStoneLink CurrentMileStone { get; set; }
     }
 }

+ 40 - 0
prs.classes/Entities/Job/DocumentSet/JobDocumentSetMileStoneLink.cs

@@ -45,4 +45,44 @@ namespace Comal.Classes
         [EditorSequence(6)]
         public EmployeeLink Employee { get; set; }
     }
+
+    public class LightJobDocumentSetMileStoneLink : EntityLink<JobDocumentSetMileStone>, IJobDocumentSetMileStone
+    {
+        [NullEditor]
+        public override Guid ID { get; set; }
+
+        [EditorSequence(1)]
+        public JobDocumentSetMileStoneTypelink Type { get; set; }
+
+        [CodeEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
+        [EditorSequence(2)]
+        public String Revision { get; set; }
+
+        [EnumLookupEditor(typeof(JobDocumentSetMileStoneStatus), Editable = Editable.Disabled)]
+        [EditorSequence(3)]
+        public JobDocumentSetMileStoneStatus Status { get; set; }
+
+        [DateTimeEditor(Editable = Editable.Hidden)]
+        [EditorSequence(4)]
+        public DateTime Due { get; set; }
+
+        [NullEditor]
+        [Obsolete("Replaced with Submitted", true)]
+        public DateTime Issued { get; set; }
+
+        [DateTimeEditor(Editable = Editable.Hidden)]
+        [EditorSequence(5)]
+        public DateTime Submitted { get; set; }
+
+        [DateTimeEditor(Editable = Editable.Hidden)]
+        [EditorSequence(6)]
+        public DateTime Expected { get; set; }
+
+        [DateTimeEditor(Editable = Editable.Hidden)]
+        [EditorSequence(7)]
+        public DateTime Closed { get; set; }
+
+        [EditorSequence(6)]
+        public EmployeeLink Employee { get; set; }
+    }
 }

+ 3 - 0
prs.classes/Entities/Job/DocumentSet/JobDocumentSetMileStoneTypelink.cs

@@ -19,5 +19,8 @@ namespace Comal.Classes
         [CheckBoxEditor(Editable=Editable.Hidden)]
         [EditorSequence(3)]
         public bool SiteVisible { get; set; }
+
+        [NullEditor]
+        public long Sequence { get; set; }
     }
 }

+ 0 - 1
prs.classes/Entities/Job/JobProductMapping.cs

@@ -20,7 +20,6 @@ namespace Comal.Classes
         [EntityRelationship(DeleteAction.SetNull)]
         public ProductLink Product { get; set; }
 
-        [NullEditor]
         [EntityRelationship(DeleteAction.SetNull)]
         public JobDocumentSetLink JobDocumentSet { get; set; }
     }

+ 1 - 1
prs.classes/Entities/Job/JobStyle.cs

@@ -16,7 +16,7 @@ namespace Comal.Classes
         [MemoEditor]
         public string Note { get; set; } = "";
 
-        [NullEditor]
+        [EntityRelationship(DeleteAction.SetNull)]
         public JobDocumentSetLink JobDocumentSet { get; set; }
     }
 }

+ 1 - 1
prs.desktop/Panels/Jobs/JobProductMappingsGrid.cs

@@ -43,7 +43,7 @@ public class JobProductMappingsGrid : DynamicDataGrid<JobProductMapping>, IJobCo
             if(docSet != Guid.Empty)
             {
                 var caption = Security.CanEdit<JobDocumentSet>() ? "Edit Document Set" : "View Document Set";
-                column.AddItem("Edit Document Set", PRSDesktop.Resources.design, (_) =>
+                column.AddItem(caption, PRSDesktop.Resources.design, (_) =>
                 {
                     ViewDocumentSet(docSet);
                 });

+ 1 - 1
prs.desktop/Panels/Jobs/JobProductStylesGrid.cs

@@ -40,7 +40,7 @@ public class JobProductStylesGrid : DynamicDataGrid<JobStyle>, IJobControl, IDat
             if (docSet != Guid.Empty)
             {
                 var caption = Security.CanEdit<JobDocumentSet>() ? "Edit Document Set" : "View Document Set";
-                column.AddItem("Edit Document Set", PRSDesktop.Resources.design, (_) =>
+                column.AddItem(caption, PRSDesktop.Resources.design, (_) =>
                 {
                     ViewDocumentSet(docSet);
                 });