using InABox.Configuration; using InABox.Core; using System; using System.Collections.Generic; using System.Text; namespace Comal.Classes { public enum AssignmentCostFillAlgorithm { /// /// Each assignment is costed as (Finish - Start) * HourlyRate /// Basic, /// /// The assignments are stacked into a single block, and scaled to fit the duration of the , either up or down. /// /// /// Any unpaid overtime intervals are removed from the time sheet, so the total duration of the scaled assignments will be /// TimeSheet.Duration - Unpaid.Duration /// Scale, /// /// The assignments are, one by one, extended to fill the length of the timesheet; the first assignment will be adjusted to start at the beginning /// of the day; any other assignments are extended to finish at the beginning of the next assignment. Assignments falling outside of the timesheet /// are chopped, and thus are uncosted. /// Extend, /// /// The assignments are not adjusted in size, except for chopping overlapping blocks, and then lost time blocks are created to fill the space left /// on the timesheet. Assignments outside of the timesheet are chopped. Overtime is taken into account, but the invented lost time blocks are only /// transient, and forgotten about later. /// FillTimeSheet } public class AssignmentCostSettings : BaseObject, IGlobalConfigurationSettings { public AssignmentCostFillAlgorithm Algorithm { get; set; } [ScriptEditor] public string Script { get; set; } } }