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; }
}
}