123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- using System;
- using System.Collections.Generic;
- using System.Linq.Expressions;
- using InABox.Core;
- using PRSClasses;
- namespace Comal.Classes
- {
- // public class StockHoldingLastStocktake : CoreAggregate<StockHolding, StockMovement, DateTime>
- // {
- // public override Expression<Func<StockMovement, DateTime>> Aggregate => x => x.Date;
- //
- // public override Filter<StockMovement> Filter => new Filter<StockMovement>(x => x.Type)
- // .IsEqualTo(StockMovementType.StockTake);
- //
- // public override Dictionary<Expression<Func<StockMovement, object?>>, Expression<Func<StockHolding, object?>>> Links =>
- // new Dictionary<Expression<Func<StockMovement, object?>>, Expression<Func<StockHolding, object?>>>()
- // {
- // { StockMovement => StockMovement.Product.ID, StockHolding => StockHolding.Product.ID },
- // { StockMovement => StockMovement.Location.ID, StockHolding => StockHolding.Location.ID },
- // { StockMovement => StockMovement.Style.ID, StockHolding => StockHolding.Style.ID },
- // { StockMovement => StockMovement.Job.ID, StockHolding => StockHolding.Job.ID },
- // }.AddRange(Dimensions.GetLinks<StockMovement, StockHolding>(x => x.Dimensions, x => x.Dimensions));
- //
- // public override AggregateCalculation Calculation => AggregateCalculation.Maximum;
- // }
- //
- // [UserTracking(typeof(StockMovement))]
- // [Unrecoverable]
- // public class StockHolding : StockEntity, IRemotable, IPersistent, IOneToMany<StockLocation>, IOneToMany<Product>,
- // IStockHolding, ILicense<WarehouseLicense>
- // {
- //
- // [Editable(Editable.Disabled)]
- // [EditorSequence(1)]
- // public StockLocationLink Location { get; set; }
- //
- // private class ProductLookupGenerator : LookupDefinitionGenerator<Product, StockHolding>
- // {
- // public override Filter<Product>? DefineFilter(StockHolding[] items)
- // => LookupFactory.DefineFilter<Product>().And(x => x.NonStock).IsEqualTo(false);
- // }
- // [Editable(Editable.Disabled)]
- // [EditorSequence(2)]
- // [LookupDefinition(typeof(ProductLookupGenerator))]
- // public override ProductLink Product { get; set; }
- //
- // [DimensionsEditor(typeof(StockDimensions))]
- // [Editable(Editable.Disabled)]
- // [EditorSequence(3)]
- // public override StockDimensions Dimensions { get; set; }
- //
- // [Editable(Editable.Disabled)]
- // [EditorSequence(4)]
- // public ProductStyleLink Style { get; set; }
- //
- // [Editable(Editable.Disabled)]
- // [EditorSequence(4)]
- // public JobLink Job { get; set; }
- //
- // [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
- // [EditorSequence(5)]
- // public double Units { get; set; }
- //
- // [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
- // [EditorSequence(6)]
- // public double Qty { get; set; }
- //
- // [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
- // [EditorSequence(7)]
- // public double Weight { get; set; }
- //
- // [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
- // [EditorSequence(8)]
- // public double Value { get; set; }
- //
- // [DoubleEditor(Editable = Editable.Disabled)]
- // [EditorSequence(9)]
- // public double AverageValue { get; set; }
- //
- // [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
- // [EditorSequence(10)]
- // public double Available { get; set; }
- //
- // [Formula(typeof(StockHoldingAllocatedFormula))]
- // [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
- // [EditorSequence(11)]
- // public double Allocated { get; set; }
- //
- // [Aggregate(typeof(StockHoldingLastStocktake))]
- // [DateEditor(Editable = Editable.Disabled)]
- // [EditorSequence(11)]
- // public DateTime LastStockTake { get; set; }
- //
- // public static Column<IStockHolding>[] Columns => new Column<IStockHolding>[]
- // {
- // new Column<IStockHolding>(x => x.Job.ID),
- // new Column<IStockHolding>(x => x.Location.ID),
- // new Column<IStockHolding>(x => x.Product.ID),
- // new Column<IStockHolding>(x => x.Style.ID),
- // new Column<IStockHolding>(x => x.Dimensions.Unit.ID),
- // new Column<IStockHolding>(x => x.Dimensions.Quantity),
- // new Column<IStockHolding>(x => x.Dimensions.Length),
- // new Column<IStockHolding>(x => x.Dimensions.Width),
- // new Column<IStockHolding>(x => x.Dimensions.Height),
- // new Column<IStockHolding>(x => x.Dimensions.Weight),
- // };
- //
- // public static Filter<StockMovement>? GetFilter(IStockHolding holding)
- // {
- // var filter = new Filters<StockMovement>();
- //
- // foreach(var column in Columns)
- // {
- // filter.Add(new Filter<StockMovement>(column.Cast<StockMovement>()).IsEqualTo(CoreUtils.GetPropertyValue(holding, column.Property)));
- // }
- //
- // return filter.Combine();
- // }
- // }
- //
- // internal class StockHoldingAllocatedFormula : IFormula<StockHolding, double>
- // {
- // public Expression<Func<StockHolding, double>> Value => x => x.Qty;
- //
- // public FormulaOperator Operator => FormulaOperator.Subtract;
- //
- // public Expression<Func<StockHolding, double>>[] Modifiers => new Expression<Func<StockHolding, double>>[]
- // {
- // x => x.Available
- // };
- //
- // public FormulaType Type => FormulaType.Virtual;
- // }
- }
|