| 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; }    }}
 |