| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using InABox.Configuration;
- using InABox.Core;
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace Comal.Classes
- {
- public enum AssignmentCostFillAlgorithm
- {
- /// <summary>
- /// Each assignment is costed as <c>(Finish - Start) * HourlyRate</c>
- /// </summary>
- Basic,
- /// <summary>
- /// The assignments are stacked into a single block, and scaled to fit the duration of the <see cref="TimeSheet"/>, either up or down.
- /// </summary>
- /// <remarks>
- /// Any unpaid overtime intervals are removed from the time sheet, so the total duration of the scaled assignments will be
- /// <c>TimeSheet.Duration - Unpaid.Duration</c>
- /// </remarks>
- Scale,
- /// <summary>
- /// 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.
- /// </summary>
- Extend,
- /// <summary>
- /// 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.
- /// </summary>
- FillTimeSheet
- }
- public class AssignmentCostSettings : BaseObject, IGlobalConfigurationSettings
- {
- public AssignmentCostFillAlgorithm Algorithm { get; set; }
- [ScriptEditor]
- public string Script { get; set; }
- }
- }
|