| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Linq.Expressions;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     [UserTracking("Human Resources")]
 
-     public class Employee : Entity, IEmployee, ISchedulable, IPersistent, IRemotable, IOrgChart<EmployeeLink>, ILicense<CoreLicense>, IExportable,
 
-         IImportable
 
-     {
 
-         
 
-         [UniqueCodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
 
-         [EditorSequence(1)]
 
-         public string Code { get; set; }
 
-         [TextBoxEditor]
 
-         [EditorSequence(2)]
 
-         public string Name { get; set; }
 
-                 
 
-         [EnumLookupEditor(typeof(EmployeeType))]
 
-         [EditorSequence("Payroll", 3)]
 
-         public EmployeeType Type { get; set; }
 
-         
 
-         [EditorSequence(4)]
 
-         public Address Address { get; set; }
 
-         
 
-         [TextBoxEditor]
 
-         [EditorSequence(5)]
 
-         public string Email { get; set; }
 
-         [TextBoxEditor]
 
-         [EditorSequence(6)]
 
-         public string Mobile { get; set; }
 
-         
 
-         [DateEditor]
 
-         [EditorSequence(7)]
 
-         public DateTime DateOfBirth { get; set; }
 
-         
 
-         [EditorSequence(8)]
 
-         public UserLink UserLink { get; set; }
 
-         
 
-         [CodeEditor(Editable = Editable.Enabled)]
 
-         [EditorSequence(9)]
 
-         [Obsolete("Replaced with EmployeeGroup", true)]
 
-         public string Department { get; set; }
 
-         [EditorSequence(10)]
 
-         public EmployeeGroupLink Group { get; set; }
 
-         
 
-         [EditorSequence(11)]
 
-         public ImageDocumentLink Thumbnail { get; set; }
 
-         [SecondaryIndex]
 
-         [CheckBoxEditor]
 
-         [EditorSequence(12)]
 
-         public bool CanAllocateTasks { get; set; }
 
-         
 
-         [CheckBoxEditor]
 
-         [EditorSequence(13)]
 
-         [Caption("Show In/Out Status?")]
 
-         public bool ShowOnInOutBoard { get; set; }
 
-         
 
-         [SecondaryIndex]
 
-         [DateEditor]
 
-         [EditorSequence("Payroll", 1)]
 
-         public DateTime StartDate { get; set; }
 
-         [SecondaryIndex]
 
-         [DateEditor]
 
-         [EditorSequence("Payroll", 2)]
 
-         public DateTime FinishDate { get; set; }
 
-         
 
-         [EditorSequence("Payroll", 3)]
 
-         [EmbeddedListEditor(typeof(EmployeeRosterItem), DirectEdit = true)]
 
-         public String Roster { get; set; }
 
-         
 
-         [EditorSequence("Payroll", 4)]
 
-         [DateTimeEditor(Visible = Visible.Optional)]
 
-         public DateTime RosterStart { get; set; }
 
-         [EditorSequence("Payroll",5)]
 
-         public OvertimeRuleLink OvertimeRuleLink { get; set; }
 
-         
 
-         [CodeEditor(Editable = Editable.Enabled)]
 
-         [EditorSequence("Payroll",6)]
 
-         public string PayrollID { get; set; }
 
-         
 
-         [EditorSequence("Org Chart", 1)]
 
-         public EmployeePositionLink Position { get; set; }
 
-         [EditorSequence("Org Chart", 2)]
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public EmployeeLink Manager { get; set; }
 
-         [EditorSequence("Org Chart", 3)]
 
-         public OrgChartSettings<EmployeeLink> OrgChart { get; set; }
 
-         
 
-         [NullEditor]
 
-         [Obsolete("Replaced with UserLink.ID", true)]
 
-         public Guid UserID { get; set; }
 
-         
 
-         [NullEditor]
 
-         public int ActiveSchedules { get; set; }
 
-         [NullEditor]
 
-         public byte[]? Signature { get; set; }
 
-         [NullEditor]
 
-         [Obsolete("Replaced with EmployeeRoster class", true)]
 
-         public TimeSpan UsualStart { get; set; }
 
-         [NullEditor]
 
-         [Obsolete("Replaced with EmployeeRoster class", true)]
 
-         public TimeSpan UsualFinish { get; set; }
 
-         protected override void Init()
 
-         {
 
-             base.Init();
 
-             Code = "";
 
-             Name = "";
 
-             Address = new Address();
 
-             Thumbnail = new ImageDocumentLink();
 
-             Group = new EmployeeGroupLink();
 
-             UserLink = new UserLink();
 
-             UserLink.PropertyChanged += UserLink_PropertyChanged;
 
-             OvertimeRuleLink = new OvertimeRuleLink();
 
-             Roster = "";
 
-             RosterStart = DateTime.MinValue;
 
-             Manager = new EmployeeLink();
 
-             Position = new EmployeePositionLink();
 
-             OrgChart = new OrgChartSettings<EmployeeLink>();
 
-         }
 
-         private void UserLink_PropertyChanged(object sender, PropertyChangedEventArgs e)
 
-         {
 
-             //if (e.PropertyName == "ID")
 
-             //    UserID = UserLink.ID;
 
-             if (e.PropertyName == "Type")
 
-                 ShowOnInOutBoard = Type == EmployeeType.Employee;
 
-         }
 
-         public override string ToString()
 
-         {
 
-             return Name;
 
-         }
 
-         public static Filter<Employee> ActiveEmployees(DateTime date)
 
-         {
 
-             var start = new Filter<Employee>(x => x.StartDate).IsEqualTo(DateTime.MinValue).Or(x => x.StartDate).IsLessThanOrEqualTo(date);
 
-             var finish = new Filter<Employee>(x => x.FinishDate).IsEqualTo(DateTime.MinValue).Or(x => x.FinishDate).IsGreaterThanOrEqualTo(date);
 
-             return start.And(finish);
 
-         }
 
-     }
 
- }
 
 
  |