Bladeren bron

Fixed style column on JobSummaryGrid

Kenric Nugteren 1 jaar geleden
bovenliggende
commit
a45920552b
1 gewijzigde bestanden met toevoegingen van 28 en 24 verwijderingen
  1. 28 24
      prs.desktop/Panels/Jobs/JobSummaryGrid.cs

+ 28 - 24
prs.desktop/Panels/Jobs/JobSummaryGrid.cs

@@ -20,8 +20,6 @@ namespace PRSDesktop
         Guid empID = Guid.Empty;
         string empName = "";
 
-        private bool _stylecolumnVisible;
-
         public bool IncludeReserves { get; set; }
         
         public Job Job { get; set; }
@@ -30,7 +28,6 @@ namespace PRSDesktop
         
         public JobSummaryGrid() : base()
         {
-
             ColumnsTag = nameof(JobSummaryGrid);
 
             OnCellDoubleClick += JobSummaryGrid_OnCellDoubleClick;
@@ -80,6 +77,12 @@ namespace PRSDesktop
             );
         }
 
+        private bool StyleColumnVisible()
+        {
+            var styleColumn = CoreUtils.GetFullPropertyName<JobMaterial, ProductStyleLink>(x => x.Style, ".");
+
+            return VisibleColumns.Any(x => x.ColumnName.StartsWith(styleColumn));
+        }
 
         protected override void GenerateColumns(DynamicGridColumns columns)
         {
@@ -143,11 +146,11 @@ namespace PRSDesktop
         
         private void JobSummaryGrid_OnCellDoubleClick(object sender, DynamicGridCellClickEventArgs args)
         {
-            Guid productid = args.Row.Get<StockSummary, Guid>(c => c.Product.ID);
-            Guid? styleid = _stylecolumnVisible ? args.Row.Get<StockSummary, Guid>(c => c.Style.ID) : null;
-            String unitsize = args.Row.Get<StockSummary, String>(c => c.Dimensions.UnitSize);
+            var productid = args.Row.Get<StockSummary, Guid>(c => c.Product.ID);
+            Guid? styleid = StyleColumnVisible() ? args.Row.Get<StockSummary, Guid>(c => c.Style.ID) : null;
+            var unitsize = args.Row.Get<StockSummary, String>(c => c.Dimensions.UnitSize);
 
-            if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.BillOfMaterials, ".")))
+            if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.BillOfMaterials, ".")))
             {
                 ShowDetailGrid<JobBillOfMaterialsItem>(
                     args.Column.ColumnName, 
@@ -163,7 +166,7 @@ namespace PRSDesktop
                 );
             }
             
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Requisitions, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Requisitions, ".")))
             {
                 ShowDetailGrid<JobRequisitionItem>(
                     args.Column.ColumnName, 
@@ -179,7 +182,7 @@ namespace PRSDesktop
                 );
             }
             
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.PickingLists, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.PickingLists, ".")))
             {
                 ShowDetailGrid<RequisitionItem>(
                     args.Column.ColumnName, 
@@ -195,7 +198,7 @@ namespace PRSDesktop
                 );
             }
             
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Issued, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.Issued, ".")))
             {
                 ShowDetailGrid<StockMovement>(
                     args.Column.ColumnName, 
@@ -211,7 +214,7 @@ namespace PRSDesktop
                 );
             }
             
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.ReservedStock, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.ReservedStock, ".")))
             {
                 ShowDetailGrid<StockHolding>(
                     args.Column.ColumnName, 
@@ -227,7 +230,7 @@ namespace PRSDesktop
                 );                  
             }
             
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.OnOrder, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.OnOrder, ".")))
             {
                 ShowDetailGrid<PurchaseOrderItem>(
                     args.Column.ColumnName, 
@@ -243,7 +246,7 @@ namespace PRSDesktop
                 );                  
             }
             
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnHand, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnHand, ".")))
             {
                 ShowDetailGrid<StockHolding>(
                     args.Column.ColumnName, 
@@ -263,7 +266,7 @@ namespace PRSDesktop
                     null
                 );
             }
-            else if (String.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnOrder, ".")))
+            else if (string.Equals(args.Column.ColumnName, CoreUtils.GetFullPropertyName<JobMaterial, double>(x => x.FreeOnOrder, ".")))
             {
                 ShowDetailGrid<PurchaseOrderItem>(
                     args.Column.ColumnName, 
@@ -406,8 +409,9 @@ namespace PRSDesktop
 
                         var freeorders = query.Get<PurchaseOrderItem>();
                         Columns<PurchaseOrderItem> freeordercolumns = new Columns<PurchaseOrderItem>(freeorders.Columns.Select(x => x.ColumnName));
-                        
-                        var keys = GetKeys(data.Rows, columns, _stylecolumnVisible);
+
+                        var hasStyle = StyleColumnVisible();
+                        var keys = GetKeys(data.Rows, columns, hasStyle);
 
                         foreach (var key in keys)
                         {
@@ -419,29 +423,29 @@ namespace PRSDesktop
                                 CoreRow newrow = table.NewRow();
                                 newrow.LoadValues(rows.First().Values);
 
-                                var bom = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.BillOfMaterials, newrow,
+                                var bom = Aggregate(rows, columns, hasStyle, true, x => x.BillOfMaterials, newrow,
                                     x => x.BillOfMaterials);
-                                var requi = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.Requisitions, newrow, x => x.Requisitions);
-                                var picklist = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.PickingLists, newrow,
+                                var requi = Aggregate(rows, columns, hasStyle, true, x => x.Requisitions, newrow, x => x.Requisitions);
+                                var picklist = Aggregate(rows, columns, hasStyle, true, x => x.PickingLists, newrow,
                                     x => x.PickingLists);
-                                var issued = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.Issued, newrow, x => x.Issued);
+                                var issued = Aggregate(rows, columns, hasStyle, true, x => x.Issued, newrow, x => x.Issued);
 
-                                var reserved = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.ReservedStock, newrow,
+                                var reserved = Aggregate(rows, columns, hasStyle, true, x => x.ReservedStock, newrow,
                                     x => x.ReservedStock);
-                                var ordered = Aggregate(rows, columns, _stylecolumnVisible, true, x => x.OnOrder, newrow, x => x.OnOrder);
+                                var ordered = Aggregate(rows, columns, hasStyle, true, x => x.OnOrder, newrow, x => x.OnOrder);
 
                                 var shortage = Math.Max(0, Math.Max(0, (requi - issued)) - (reserved + ordered));
                                 newrow.Set<JobMaterial, double>(x => x.JobShortage, shortage);
 
                                 var freestockrows = GetRows(freestock.Rows, freestockcolumns, null, key.Item2, key.Item3, key.Item4, 
                                     IncludeReserves ? null : (r) => !r.Get<StockHolding,bool>(x=>x.Job.JobStatus.Active));
-                                var freeonhand = Aggregate(freestockrows, freestockcolumns, _stylecolumnVisible, false, x => x.Units, newrow,
+                                var freeonhand = Aggregate(freestockrows, freestockcolumns, hasStyle, false, x => x.Units, newrow,
                                     x => x.FreeOnHand);
                                 newrow.Set<JobMaterial, double>(x => x.FreeOnHand, freeonhand);
 
                                 var freeorderrows = GetRows(freeorders.Rows, freeordercolumns, null, key.Item2, key.Item3, key.Item4,
                                     IncludeReserves ? null : (r) => !r.Get<PurchaseOrderItem,bool>(x=>x.Job.JobStatus.Active));
-                                var freeonorder = Aggregate(freeorderrows, freeordercolumns, _stylecolumnVisible, false, x => x.Qty, newrow,
+                                var freeonorder = Aggregate(freeorderrows, freeordercolumns, hasStyle, false, x => x.Qty, newrow,
                                     x => x.FreeOnOrder);
                                 newrow.Set<JobMaterial, double>(x => x.FreeOnOrder, freeonorder);