| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | using System;using System.ComponentModel;using System.Linq;using System.Linq.Expressions;using InABox.Core;using PRSClasses;namespace Comal.Classes{    public enum JobRequisitionItemStatus    {         NotChecked,        Reserved,        TreatmentRequired,        OrderRequired,        TreatmentOnOrder,        OnOrder,        Received,        TreatmentReceived,        Cancelled,        Archived    }    public class JobRequisitionItemTotalQtyFormula : IFormula<JobRequisitionItem, double>    {        public Expression<Func<JobRequisitionItem, double>> Value => x => x.Qty;        public Expression<Func<JobRequisitionItem, double>>[] Modifiers => new Expression<Func<JobRequisitionItem, double>>[] { x => x.Dimensions.Value };        public FormulaOperator Operator => FormulaOperator.Multiply;        public FormulaType Type => FormulaType.Virtual;    }    [Caption("Items")]    [UserTracking(typeof(Job))]    public class JobRequisitionItem : StockEntity, IRemotable, IPersistent, IOneToMany<JobRequisition>,         ILicense<ProjectManagementLicense>, IJobMaterial, ISequenceable    {                [EntityRelationship(DeleteAction.Cascade)]        public JobLink Job { get; set; }                [EntityRelationship(DeleteAction.Cascade)]        public JobRequisitionLink Requisition { get; set; }        [EntityRelationship(DeleteAction.SetNull)]        [EditorSequence(0)]        [RequiredColumn]        public override ProductLink Product { get; set; }        [EditorSequence(1)]        [MemoEditor]        public string Notes { get; set; }        [EditorSequence(2)]        public ProductStyleLink Style { get; set; }        [EditorSequence(3)]        public double Qty { get; set; }        [NullEditor]        [Obsolete("Replaced with Dimensions", true)]        public double UnitSize { get; set; }                [EditorSequence(4)]        [RequiredColumn]        [DimensionsEditor(typeof(StockDimensions), AllowEditingUnit = false)]        public override StockDimensions Dimensions { get; set; }        [EditorSequence(5)]        public SupplierLink Supplier { get; set; }        [DoubleEditor(Editable = Editable.Hidden)]        [Formula(typeof(JobRequisitionItemTotalQtyFormula))]        public double TotalQty { get; set; }        [EnumLookupEditor(typeof(JobRequisitionItemStatus))]              public JobRequisitionItemStatus Status { get; set; }               public PurchaseOrderItemLink PurchaseOrderItem { get; set; }        [NullEditor]        public long Sequence { get; set; }        protected override void Init()        {            base.Init();            Job = new JobLink();            Requisition = new JobRequisitionLink();            Style = new ProductStyleLink(() => this);            Status = JobRequisitionItemStatus.NotChecked;            PurchaseOrderItem = new PurchaseOrderItemLink();            Supplier = new SupplierLink();        }        static JobRequisitionItem()        {            StockEntity.LinkStockDimensions<JobRequisitionItem>();            LinkedProperties.Register<JobRequisitionItem, ProductStyleLink, Guid>(x => x.Product.DefaultStyle, x => x.ID, x => x.Style.ID);        }    }}
 |