| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | using System;using InABox.Core;namespace Comal.Classes{        public enum LeaveRequestApprovalStatus    {        Approved,        NotYetApproved,        Rejected    }        public class LeaveRequestApproval : Entity, ISequenceable, IRemotable, IPersistent, ILicense<HumanResourcesLicense>    {        private class EmployeeLookup : LookupDefinitionGenerator<Employee, LeaveRequestApproval>        {            public override Filter<Employee>? DefineFilter(LeaveRequestApproval[] items)            {                return new Filter<Employee>(x => x.ID).NotInList(items.ToArray(x => x.Employee.ID));            }            public override Columns<LeaveRequestApproval> DefineFilterColumns()            {                return base.DefineFilterColumns().Add(x => x.Employee.ID);            }        }        [EditorSequence(1)]        [EntityRelationship(DeleteAction.Cascade)]        [LookupDefinition(typeof(EmployeeLookup))]        public EmployeeLink Employee { get; set; }        [NullEditor]        [EntityRelationship(DeleteAction.Cascade)]        public LeaveRequestLink LeaveRequest { get; set; }        [EditorSequence(2)]         public LeaveRequestApprovalStatus Status { get; set; } = LeaveRequestApprovalStatus.NotYetApproved;                [EditorSequence(3)]        public string Notes { get; set; }        [NullEditor]        public bool IsCustom { get; set; }        [NullEditor]        public long Sequence { get; set; }        static LeaveRequestApproval()        {            DefaultColumns.Add<LeaveRequestApproval>(x => x.LeaveRequest.EmployeeLink.Code);            DefaultColumns.Add<LeaveRequestApproval>(x => x.LeaveRequest.EmployeeLink.Name);            DefaultColumns.Add<LeaveRequestApproval>(x => x.Employee.Code);            DefaultColumns.Add<LeaveRequestApproval>(x => x.Employee.Name);            DefaultColumns.Add<LeaveRequestApproval>(x => x.Status);            DefaultColumns.Add<LeaveRequestApproval>(x => x.Notes);        }    }}
 |