| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- using InABox.Core;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq.Expressions;
 
- using System.Text;
 
- namespace Comal.Classes
 
- {
 
-     public class ProductInstanceFreeStockAggregate : CoreAggregate<ProductInstance, StockMovement, double>
 
-     {
 
-         public override Expression<Func<StockMovement, double>> Aggregate => x => x.Qty;
 
-         public override Filter<StockMovement> Filter => new Filter<StockMovement>(x => x.Job).NotLinkValid();
 
-         public override Dictionary<Expression<Func<StockMovement, object?>>, Expression<Func<ProductInstance, object?>>>
 
-             Links =>
 
-             new Dictionary<Expression<Func<StockMovement, object?>>, Expression<Func<ProductInstance, object?>>>()
 
-             {
 
-                 { StockMovement => StockMovement.Product.ID, Instance => Instance.Product.ID },
 
-                 { StockMovement => StockMovement.Style.ID, Instance => Instance.Style.ID },
 
-             }.AddRange(Dimensions.GetLinks<StockMovement, ProductInstance>(x => x.Dimensions, x => x.Dimensions));
 
-         public override AggregateCalculation Calculation => AggregateCalculation.Sum;
 
-     }
 
-     public class ProductInstance : StockEntity, IRemotable, IPersistent, IProductInstance,
 
-         ISequenceable, ILicense<ProductManagementLicense>
 
-     {
 
-         [NullEditor] public long Sequence { get; set; }
 
-         [EditorSequence(1)] 
 
-         public override ProductLink Product { get; set; }
 
-         [EditorSequence(2)] 
 
-         public ProductStyleLink Style { get; set; }
 
-         [EditorSequence(3)]
 
-         [RequiredColumn]
 
-         [DimensionsEditor(typeof(StockDimensions))]
 
-         public override StockDimensions Dimensions { get; set; }
 
-         [IntegerEditor]
 
-         [EditorSequence(4)]
 
-         [LoggableProperty]
 
-         public int MinimumStockLevel { get; set; }
 
-         [EditorSequence(5)]
 
-         [Aggregate(typeof(ProductInstanceFreeStockAggregate))]
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double FreeStock { get; set; }
 
-         [CurrencyEditor(Visible = Visible.Optional)]
 
-         [EditorSequence(5)]
 
-         [LoggableProperty]
 
-         public double NettCost { get; set; }
 
-         [CurrencyEditor(Visible = Visible.Optional, Editable = Editable.Disabled)]
 
-         [EditorSequence(6)]
 
-         [LoggableProperty]
 
-         public double AverageCost { get; set; }
 
-         [CurrencyEditor(Visible = Visible.Optional, Editable = Editable.Disabled)]
 
-         [EditorSequence(7)]
 
-         [LoggableProperty]
 
-         public double LastCost { get; set; }
 
-         [NullEditor]
 
-         [Obsolete("", true)]
 
-         public double Parameter { get; set; }
 
-     }
 
- }
 
 
  |