| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | using System;using System.Linq.Expressions;using InABox.Core;namespace Comal.Classes{    [UserTracking(typeof(Job))]    public class JobRequisition : Entity, IRemotable, IPersistent, INumericAutoIncrement<JobRequisition>, IJobMaterialRequisition,        ILicense<ProjectManagementLicense>,        IChildEntityLookup<Job, JobRequisition, JobRequisitionJobLookup>    {        [NullEditor]        [EntityRelationship(DeleteAction.Cascade)]        public JobLink Job { get; set; }                [IntegerEditor(Visible = Visible.Default, Editable = Editable.Disabled)]        [EditorSequence(1)]        public int Number { get; set; }                [TextBoxEditor(Visible = Visible.Default)]        [EditorSequence(2)]        public string Description { get; set; } = "";        [MemoEditor(Visible = Visible.Optional)]        [EditorSequence(3)]        public string Notes { get; set; } = "";        [DateEditor(Visible = Visible.Default)]        [EditorSequence(4)]        public DateTime DueDate { get; set; }        [NullEditor]        [Obsolete("Replaced with Approved", true)]        public DateTime Date { get; set; }                [TimestampEditor(Visible = Visible.Default)]        [EditorSequence(5)]        [LoggableProperty]        public DateTime Approved { get; set; }        public Expression<Func<JobRequisition, int>> AutoIncrementField()        {            return x => x.Number;        }        public Filter<JobRequisition> AutoIncrementFilter()        {            return new Filter<JobRequisition>(x => x.Job.ID).IsEqualTo(Job.ID);        }    }    internal class JobRequisitionJobLookup : LookupDefinitionGenerator<JobRequisition, Job>    {        public override Filter<JobRequisition> DefineFilter(Job[] items)        {            if (items.Length == 1)                return new Filter<JobRequisition>(x => x.Job.ID).IsEqualTo(items[0].ID);            return new Filter<JobRequisition>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);        }        public override Columns<Job> DefineFilterColumns()            => Columns.None<Job>().Add(x => x.ID);    }}
 |