| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | 
							- using System;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     public class JobStageCalendarLink : EntityLink<JobStageCalendar>
 
-     {
 
-         [LookupEditor(typeof(JobStageCalendar))]
 
-         public override Guid ID { get; set; }
 
-         [TextBoxEditor(Editable = Editable.Hidden)]
 
-         public string Name { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Monday { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Tuesday { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Wednesday { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Thursday { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Friday { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Saturday { get; set; }
 
-         [DoubleEditor(Editable = Editable.Hidden)]
 
-         public double Sunday { get; set; }
 
-         protected override void Init()
 
-         {
 
-             base.Init();
 
-         }
 
-         private double WorkHours(DateTime date)
 
-         {
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Sunday))
 
-                 return ID.Equals(Guid.Empty) ? 0.0F : Sunday;
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Monday))
 
-                 return ID.Equals(Guid.Empty) ? 8.0F : Monday;
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Tuesday))
 
-                 return ID.Equals(Guid.Empty) ? 8.0F : Tuesday;
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Wednesday))
 
-                 return ID.Equals(Guid.Empty) ? 8.0F : Wednesday;
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Thursday))
 
-                 return ID.Equals(Guid.Empty) ? 8.0F : Thursday;
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Friday))
 
-                 return ID.Equals(Guid.Empty) ? 8.0F : Friday;
 
-             if (date.DayOfWeek.Equals(DayOfWeek.Saturday))
 
-                 return ID.Equals(Guid.Empty) ? 0.0F : Saturday;
 
-             return 0.0F;
 
-         }
 
-         public int CalculateWorkDays(DateTime start, DateTime finish)
 
-         {
 
-             var result = 0;
 
-             for (var date = start; date <= finish; date = date.AddDays(1))
 
-                 if (WorkHours(date) > 0.0F)
 
-                     result++;
 
-             return result;
 
-         }
 
-         public DateTime CalculateEndDate(DateTime start, int days)
 
-         {
 
-             var result = start.AddDays(-1);
 
-             var curdays = days;
 
-             while (curdays > 0)
 
-             {
 
-                 result = result.AddDays(1);
 
-                 var hours = WorkHours(result);
 
-                 if (hours > 0.0F)
 
-                     curdays--;
 
-             }
 
-             return result;
 
-         }
 
-         public double CalculateHours(DateTime start, DateTime end, double ratio)
 
-         {
 
-             double result = 0.0F;
 
-             for (var date = start; date <= end; date = date.AddDays(1))
 
-                 result += WorkHours(date) * ratio;
 
-             return result;
 
-         }
 
-         public double CalculateWorkers(DateTime start, DateTime end, double hours)
 
-         {
 
-             if (hours == 0.0F)
 
-                 return 0.0F;
 
-             double hoursperworker = 0.0F;
 
-             for (var date = start; date <= end; date = date.AddDays(1))
 
-                 hoursperworker += WorkHours(date);
 
-             if (hoursperworker == 0.0F)
 
-                 return 0.0F;
 
-             return hours / hoursperworker;
 
-         }
 
-     }
 
-     [UserTracking(typeof(JobStage))]
 
-     public class JobStageCalendar : Entity, IRemotable, IPersistent, ILicense<ProjectManagementLicense>
 
-     {
 
-         public string Name { get; set; }
 
-         public double Monday { get; set; }
 
-         public double Tuesday { get; set; }
 
-         public double Wednesday { get; set; }
 
-         public double Thursday { get; set; }
 
-         public double Friday { get; set; }
 
-         public double Saturday { get; set; }
 
-         public double Sunday { get; set; }
 
-         protected override void Init()
 
-         {
 
-             base.Init();
 
-             Monday = 8.0F;
 
-             Tuesday = 8.0F;
 
-             Wednesday = 8.0F;
 
-             Thursday = 8.0F;
 
-             Friday = 8.0F;
 
-             Saturday = 0.0F;
 
-             Sunday = 0.0F;
 
-         }
 
-     }
 
- }
 
 
  |