| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | 
							- using System;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     [UserTracking("Timesheets")]
 
-     public class TimeSheet : Entity, IPersistent, IRemotable, IOneToMany<Employee>, IOneToMany<Job>,
 
-         ILicense<TimeManagementLicense>,
 
-         IExportable, IImportable
 
-     {
 
-         [EditorSequence(1)]
 
-         public EmployeeLink EmployeeLink { get; set; }
 
-         [SecondaryIndex]
 
-         [DateEditor]
 
-         [EditorSequence(2)]
 
-         [LoggableProperty(Format = "dd MMM yy")]
 
-         public DateTime Date { get; set; }
 
-         [NullEditor]
 
-         public Guid JobID { get; set; }
 
-         [EditorSequence(3)]
 
-         public JobLink JobLink { get; set; }
 
-         [EntityRelationship(DeleteAction.SetNull)]
 
-         [EditorSequence(4)]
 
-         public TimeSheetActivityLink ActivityLink { get; set; }
 
-         [TimeOfDayEditor]
 
-         [EditorSequence(5)]
 
-         [LoggableProperty(Format = "hh\\:mm")]
 
-         public TimeSpan Start { get; set; }
 
-         [TimeOfDayEditor]
 
-         [EditorSequence(6)]
 
-         [LoggableProperty(Format = "hh\\:mm")]
 
-         public TimeSpan Finish { get; set; }
 
-         [DurationEditor]
 
-         [EditorSequence(7)]
 
-         [LoggableProperty(Format = "hh\\:mm")]
 
-         public TimeSpan ApprovedStart { get; set; }
 
-         [DurationEditor]
 
-         [EditorSequence(8)]
 
-         [LoggableProperty(Format = "hh\\:mm")]
 
-         public TimeSpan ApprovedFinish { get; set; }
 
-         [MemoEditor]
 
-         [EditorSequence(9)]
 
-         public string Notes { get; set; }
 
-         [TimestampEditor]
 
-         [EditorSequence(10)]
 
-         [LoggableProperty(Format = "dd MMM yy HH:mm")]
 
-         public DateTime Confirmed { get; set; }
 
-         [TimestampEditor]
 
-         [EditorSequence(11)]
 
-         [LoggableProperty(Format = "dd MMM yy HH:mm")]
 
-         public DateTime Approved { get; set; }
 
-         [SecondaryIndex]
 
-         [TimestampEditor]
 
-         [EditorSequence(12)]
 
-         [LoggableProperty(Format = "dd MMM yy HH:mm")]
 
-         public DateTime Processed { get; set; }
 
-         
 
-         [NullEditor]
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public LeaveRequestLink LeaveRequestLink { get; set; }
 
-         
 
-         [NullEditor]
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public StandardLeaveLink StandardLeaveLink { get; set; }
 
-         [TextBoxEditor(Editable = Editable.Hidden)]
 
-         public string SoftwareVersion { get; set; }
 
-         [NullEditor]
 
-         public Location StartLocation { get; set; }
 
-         [NullEditor]
 
-         public Location FinishLocation { get; set; }
 
-         [DurationEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
 
-         public TimeSpan ApprovedDuration { get; set; }
 
-         [NullEditor]
 
-         [Obsolete("Replaced with EmployeeLink.ID",true)]
 
-         public Guid EmployeeID { get; set; }
 
-         [DurationEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]
 
-         public TimeSpan Duration { get; set; }
 
-         [TextBoxEditor(Editable = Editable.Hidden)]
 
-         public string Address { get; set; }
 
-         [TextBoxEditor(Editable = Editable.Hidden)]
 
-         public string Gate { get; set; }
 
-         protected override void Init()
 
-         {
 
-             base.Init();
 
-             Notes = string.Empty;
 
-             Approved = DateTime.MinValue;
 
-             Processed = DateTime.MinValue;
 
-             EmployeeLink = new EmployeeLink();
 
-             JobLink = new JobLink();
 
-             ActivityLink = new TimeSheetActivityLink();
 
-             
 
-             LeaveRequestLink = new LeaveRequestLink();
 
-             StandardLeaveLink = new StandardLeaveLink();
 
-             
 
-             StartLocation = new Location();
 
-             FinishLocation = new Location();
 
-         }
 
-         protected override void DoPropertyChanged(string name, object before, object after)
 
-         {
 
-             base.DoPropertyChanged(name, before, after);
 
-             if (name.Equals("Start"))
 
-                 Duration = Finish > (TimeSpan)after ? Finish.Subtract((TimeSpan)after) : new TimeSpan();
 
-             else if (name.Equals("Finish"))
 
-                 Duration = (TimeSpan)after > Start ? ((TimeSpan)after).Subtract(Start) : new TimeSpan();
 
-             else if (name.Equals("ApprovedStart"))
 
-                 //ApprovedDuration = ApprovedFinish > ((TimeSpan)after) ? ApprovedFinish.Subtract((TimeSpan)after) : new TimeSpan();
 
-                 ApprovedDuration = ApprovedFinish > (TimeSpan)after ? ApprovedFinish.Subtract((TimeSpan)after) : new TimeSpan();
 
-             else if (name.Equals("ApprovedFinish"))
 
-                 ApprovedDuration = (TimeSpan)after > ApprovedStart ? ((TimeSpan)after).Subtract(ApprovedStart) : new TimeSpan();
 
-         }
 
-     }
 
- }
 
 
  |