Przeglądaj źródła

DimensionsScriptCache is reset when saving ProductDimensionUnits

Kenric Nugteren 6 dni temu
rodzic
commit
3c8d3ee23f
1 zmienionych plików z 9 dodań i 0 usunięć
  1. 9 0
      prs.desktop/Grids/ProductDimensionUnitGrid.cs

+ 9 - 0
prs.desktop/Grids/ProductDimensionUnitGrid.cs

@@ -195,6 +195,7 @@ public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
     }
 
     private bool ShouldUpdateExpressions = false;
+    private ProductDimensionUnit[]? _updates;
 
     protected override void DoBeforeSave(IDynamicEditorForm editor, ProductDimensionUnit[] items)
     {
@@ -208,6 +209,8 @@ public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
                 ShouldUpdateExpressions = true;
             }
         }
+
+        _updates = items.Where(x => x.HasOriginalValue(x => x.Conversion)).ToArray();
     }
 
     protected override void DoAfterSave(IDynamicEditorForm editor, ProductDimensionUnit[] items)
@@ -218,6 +221,12 @@ public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
         {
             UpdateExpressions(items);
         }
+
+        if(_updates is not null && _updates.Length > 0)
+        {
+            DimensionUtils.ReloadDimensionScriptCache(_updates.ToArray(x => x.ID), Client<ProductDimensionUnit>.Provider);
+            _updates = null;
+        }
     }
 
     protected override bool DoMerge(CoreRow[] rows)