Procházet zdrojové kódy

Merge remote-tracking branch 'origin/kenric' into frank

frogsoftware před 1 rokem
rodič
revize
519bb62ea7

+ 1 - 2
prs.classes/EnclosedEntities/Dimensions/DimensionUnit.cs

@@ -158,8 +158,7 @@ namespace Comal.Classes
             {
                 if(entity.IsSubclassOf(typeof(Entity))
                     && !entity.HasAttribute<AutoEntity>()
-                    && entity.HasInterface<IRemotable>()
-                    && entity.HasInterface<IPersistent>())
+                    && entity.HasInterface<IRemotable>())
                 {
                     foreach(var property in DatabaseSchema.Properties(entity))
                     {

+ 9 - 0
prs.classes/Entities/Product/Product.cs

@@ -205,6 +205,15 @@ namespace Comal.Classes
             {
                 return new Filter<TreatmentType>(x => x.Active).IsEqualTo(true);
             }
+
+            public override Columns<TreatmentType> DefineColumns()
+            {
+                return base.DefineColumns().Add(x => x.Description);
+            }
+            public override string FormatDisplay(CoreRow row)
+            {
+                return row.Get<TreatmentType, string>(x => x.Description);
+            }
         }
         [LookupDefinition(typeof(TreatmentTypeLookup))]
         [EditorSequence("Warehousing", 6)]

+ 10 - 0
prs.classes/Entities/Product/Treatment/ProductTreatment.cs

@@ -31,6 +31,16 @@ namespace Comal.Classes
             {
                 return Columns.None<ProductTreatment>().Add(x => x.Product.ID).Add(x => x.TreatmentType.ID);
             }
+
+            public override Columns<TreatmentType> DefineColumns()
+            {
+                return base.DefineColumns().Add(x => x.Description);
+            }
+
+            public override string FormatDisplay(CoreRow row)
+            {
+                return row.Get<TreatmentType, string>(x => x.Description);
+            }
         }
         [EditorSequence(1)]
         [LookupDefinition(typeof(TreatmentTypeLookup))]

+ 14 - 20
prs.stores/ProductStore.cs

@@ -24,31 +24,25 @@ namespace Comal.Stores
             if (entity.GetOriginalValue(x => x.ID, entity.ID) == Guid.Empty)
                 return;
             
-            _stockentitytypes ??= CoreUtils.TypeList(x => x.IsSubclassOf(typeof(StockEntity)));
+            _stockentitytypes ??= CoreUtils.TypeList(x =>
+                x.IsSubclassOf(typeof(StockEntity))
+                    && !x.HasAttribute<AutoEntity>()
+                    && x.HasInterface<IPersistent>());
             var _uom = Provider.Query(new Filter<ProductDimensionUnit>(x => x.ID).IsEqualTo(entity.UnitOfMeasure.ID))
                 .ToObjects<ProductDimensionUnit>().FirstOrDefault() ?? new ProductDimensionUnit();
-            //List<Task> _tasks = new List<Task>();
             foreach (var _stockentitytype in _stockentitytypes)
             {
-                //var _task = Task.Run(() =>
-                //{
-                    var _children = Provider.Query(
-                        _stockentitytype,
-                        new Filter<StockEntity>(x => x.Product.ID).IsEqualTo(entity.ID),
-                        Columns.None<StockEntity>()
-                            .Add(x => x.ID)
-                            .AddSubColumns(x => x.Dimensions, null)
-                    ).ToObjects(_stockentitytype).OfType<StockEntity>().ToArray();
-                    foreach (var _child in _children)
-                        _child.Dimensions.Unit.CopyFrom(_uom);
-                    var _updates = _children.Where(x => x.IsChanged()).ToArray();
-                    if (_updates.Any())
-                        Provider.Save(_stockentitytype,_updates);
-                    //});
-                    //_tasks.Add(_task);
+                var _children = (Provider.Query(
+                    _stockentitytype,
+                    new Filter<StockEntity>(x => x.Product.ID).IsEqualTo(entity.ID),
+                    Columns.None<StockEntity>()
+                        .Add(x => x.ID)
+                        .AddSubColumns(x => x.Dimensions, null)
+                ).ToArray(_stockentitytype) as StockEntity[])!;
+                foreach (var _child in _children)
+                    _child.Dimensions.Unit.CopyFrom(_uom);
+                Provider.Save(_stockentitytype, _children.Where(x => x.IsChanged()));
             }
-
-            //Task.WaitAll(_queries.ToArray());
         }
 
         protected override void AfterDelete(Product entity)