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;
- }
- }
- }
|