123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using System;
- using System.Collections.ObjectModel;
- using System.Windows.Media;
- using Comal.Classes;
- using InABox.Core;
- using InABox.WPF;
- namespace PRSDesktop
- {
- public class EquipmentAssignmentModel : Model<EquipmentAssignmentModel,EquipmentAssignment>
- {
-
- public Guid EquipmentID { get; }
- public int Number { get; set; }
- public String? Description { get; set; }
- public DateTime Completed { get; set; }
- public DateTime Date { get; }
- public TimeSpan BookedStart { get; set; }
- public TimeSpan BookedFinish { get; set; }
- public TimeSpan BookedDuration { get; }
-
- public TimeSpan ActualStart { get; set; }
- public TimeSpan ActualFinish { get; set; }
- public TimeSpan ActualDuration { get; }
-
- public static TimeSpan EffectiveTime(TimeSpan actual, TimeSpan booked) => actual.Ticks != 0L ? actual : booked;
- public TimeSpan EffectiveStart()
- {
- return EffectiveTime(ActualStart, BookedStart);
- }
- public TimeSpan EffectiveFinish()
- {
- // If we have an actual finish, always use that
- // otherwise use EffectiveStart() + booked.duration
- return EffectiveTime(
- ActualFinish,
- EffectiveTime(ActualStart, BookedStart)
- .Add(BookedDuration)
- );
-
- }
-
- public Guid JobID { get; }
- public string? JobNumber { get; }
- public string? JobName { get; }
-
- public EquipmentAssignmentModel(CoreRow row) : base(row)
- {
- EquipmentID = Get(x=>x.Equipment.ID);
- Number = Get(x => x.Number);
- Description = Get(x => x.Description);
- Completed = Get(x => x.Completed);
- Date = Get(x=>x.Date);
- BookedDuration = Get(x => x.Booked.Duration);
- BookedStart = Get(x => x.Booked.Start);
- BookedFinish = Get(x => x.Booked.Finish);
- ActualDuration = Get(x => x.Actual.Duration);
- ActualStart = Get(x => x.Actual.Start);
- ActualFinish = Get(x => x.Actual.Finish);
-
- JobID = Get(x => x.JobLink.ID);
- JobNumber = Get(x => x.JobLink.JobNumber);
- JobName = Get(x => x.JobLink.Name);
-
-
- }
-
- public override Columns<EquipmentAssignment> GetColumns()
- {
- return InABox.Core.Columns.None<EquipmentAssignment>().Add(x => x.ID)
- .Add(x => x.Equipment.ID)
- .Add(x => x.Number)
- .Add(x => x.Description)
- .Add(x => x.Completed)
- .Add(x => x.Date)
- .Add(x => x.Booked.Start)
- .Add(x => x.Booked.Duration)
- .Add(x => x.Booked.Finish)
- .Add(x => x.Actual.Start)
- .Add(x => x.Actual.Duration)
- .Add(x => x.Actual.Finish)
- .Add(x => x.JobLink.ID)
- .Add(x => x.JobLink.JobNumber)
- .Add(x => x.JobLink.Name);
- }
- }
- }
|