using System; using System.Linq.Expressions; using InABox.Core; namespace Comal.Classes { [UserTracking(typeof(Requisition))] public class RequisitionItem : Entity, IPersistent, IRemotable, INumericAutoIncrement, ILicense { [IntegerEditor(Editable = Editable.Hidden)] [NullEditor] public int Sequence { get; set; } [EntityRelationship(DeleteAction.Cascade)] [NullEditor] public RequisitionLink RequisitionLink { get; set; } [EditorSequence(1)] public ProductLink Product { get; set; } [EditorSequence(2)] [NullEditor] public string BarCode { get; set; } [EditorSequence(3)] [CodeEditor(Visible = Visible.Hidden, Editable = Editable.Hidden)] public string Code { get; set; } [MemoEditor] [EditorSequence(4)] public string Description { get; set; } [EditorSequence(5)] public ProductStyleLink Style { get; set; } [EditorSequence(6)] public double Quantity { get; set; } [NullEditor] public StockHoldingLink Holding { get; set; } [EditorSequence(7)] public StockLocationLink Location { get; set; } public Expression> AutoIncrementField() { return x => x.Sequence; } public Filter AutoIncrementFilter() { return new Filter(x => x.RequisitionLink.ID).IsEqualTo(RequisitionLink.ID); } protected override void Init() { base.Init(); RequisitionLink = new RequisitionLink(); Product = new ProductLink(() => this); Holding = new StockHoldingLink(); Location = new StockLocationLink(); Style = new ProductStyleLink(); //StockMovement = new StockMovementLink(); } static RequisitionItem() { LinkedProperties.Register(x => x.Product, x => x.Code, x => x.Code); LinkedProperties.Register(x => x.Product, x => x.Name, x => x.Description); LinkedProperties.Register(x=>x.Product.DefaultStyle, x => x.ID, x => x.Style.ID); } } }