Skip to main content

Function: createMaxHoursWeekRule()

function createMaxHoursWeekRule(config): CompilationRule;
Caps total hours a person can work within each scheduling week. Supports entity scoping (people, roles, skills) and time scoping (date ranges, specific dates, days of week, recurring periods). Time scoping filters which days within each week count toward the limit.

Parameters

ParameterType
config{ dateRange?: { end: string; start: string; }; dayOfWeek?: ( | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday")[]; employeeIds?: string[]; hours: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; recurringPeriods?: { endDay: number; endMonth: number; name: string; startDay: number; startMonth: number; }[]; roleIds?: string[]; skillIds?: string[]; specificDates?: string[]; weekStartsOn?: | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday"; }
config.dateRange?{ end: string; start: string; }
config.dateRange.endstring
config.dateRange.startstring
config.dayOfWeek?( | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday")[]
config.employeeIds?string[]
config.hoursnumber
config.priority"LOW" | "MEDIUM" | "HIGH" | "MANDATORY"
config.recurringPeriods?{ endDay: number; endMonth: number; name: string; startDay: number; startMonth: number; }[]
config.roleIds?string[]
config.skillIds?string[]
config.specificDates?string[]
config.weekStartsOn?| "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday"

Returns

CompilationRule

Examples

createMaxHoursWeekRule({
  hours: 40,
  priority: "HIGH",
});
createMaxHoursWeekRule({
  roleIds: ["student"],
  hours: 20,
  recurringPeriods: [
    { name: "fall-term", startMonth: 9, startDay: 1, endMonth: 12, endDay: 15 },
    { name: "spring-term", startMonth: 1, startDay: 15, endMonth: 5, endDay: 31 },
  ],
  priority: "MANDATORY",
});