| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | using System;using System.ComponentModel;using InABox.Core;namespace Comal.Classes{    [UserTracking("Gantt Charts")]    public class JobStage : Entity, IRemotable, IPersistent, ISequenceable, INotifyPropertyChanged, ILicense<ProjectManagementLicense>, IOneToMany<Job>    {        private bool bChanging;        [EntityRelationship(DeleteAction.Cascade)]        [EditorSequence(0)]        public JobLink Job { get; set; }        [NullEditor]        public bool IsHeader { get; set; }        [NullEditor]        public JobStageLink Parent { get; set; }        [EditorSequence(1)]        public string Name { get; set; }        [EditorSequence(2)]        [NullEditor]        public JobStageCalendarLink Calendar { get; set; }        [DateEditor]        [EditorSequence(3)]        public DateTime StartDate { get; set; }        [IntegerEditor]        [EditorSequence(4)]        public int WorkDays { get; set; }        [DateEditor]        [EditorSequence(5)]        public DateTime EndDate { get; set; }        [DoubleEditor]        [EditorSequence(9)]        public double SupervisionHours { get; set; }        [DoubleEditor]        [EditorSequence(10)]        public double TradesHours { get; set; }        [DoubleEditor]        [EditorSequence(11)]        public double ApprenticeHours { get; set; }        [DoubleEditor(Editable = Editable.Disabled)]        [EditorSequence("Summary", 1)]        public double TotalHours { get; set; }        [DoubleEditor(Editable = Editable.Disabled)]        [EditorSequence("Summary", 2)]        public double Supervisors { get; set; }        [DoubleEditor(Editable = Editable.Disabled)]        [EditorSequence("Summary", 3)]        public double Tradespersons { get; set; }        [DoubleEditor(Editable = Editable.Disabled)]        [EditorSequence("Summary", 4)]        public double Apprentices { get; set; }        [NullEditor]        public long Sequence { get; set; }        protected override void Init()        {            base.Init();            Job = new JobLink();            Parent = new JobStageLink();            Calendar = new JobStageCalendarLink();        }        protected override void DoPropertyChanged(string name, object before, object after)        {            base.DoPropertyChanged(name, before, after);            if (bChanging)                return;            bChanging = true;            if (name.Equals("WorkDays"))            {                EndDate = Calendar.CalculateEndDate(StartDate, (int)after);                Tradespersons = Calendar.CalculateWorkers(StartDate, EndDate, TradesHours);                Supervisors = Calendar.CalculateWorkers(StartDate, EndDate, SupervisionHours);                Apprentices = Calendar.CalculateWorkers(StartDate, EndDate, ApprenticeHours);            }            else if (name.Equals("EndDate"))            {                WorkDays = Calendar.CalculateWorkDays(StartDate, (DateTime)after);                Tradespersons = Calendar.CalculateWorkers(StartDate, (DateTime)after, TradesHours);                Supervisors = Calendar.CalculateWorkers(StartDate, (DateTime)after, SupervisionHours);                Apprentices = Calendar.CalculateWorkers(StartDate, (DateTime)after, ApprenticeHours);            }            else if (name.Equals("TradesHours"))            {                Tradespersons = Calendar.CalculateWorkers(StartDate, EndDate, (double)after);                TotalHours = SupervisionHours + (double)after + ApprenticeHours;            }            else if (name.Equals("SupervisionHours"))            {                Supervisors = Calendar.CalculateWorkers(StartDate, EndDate, (double)after);                TotalHours = (double)after + TradesHours + ApprenticeHours;            }            else if (name.Equals("ApprenticeHours"))            {                Apprentices = Calendar.CalculateWorkers(StartDate, EndDate, (double)after);                TotalHours = SupervisionHours + TradesHours + (double)after;            }            bChanging = false;        }    }}
 |