Hierarchy
- ProductionSchedule
Properties
Readonly specialCalendars
Объект для работы календарями исключительных дней.
Readonly workCalendars
Объект для работы с рабочими календарями.
Methods
calcDate
-
Метод позволяет вычислить дату, входящую в интервал рабочего времени.
Дата вычисляется от заданной даты и с указанной продолжительностью. Если передан пользователь, то для расчёта будет использоваться рабочий календарь, связанный с этим пользователем, в противном случае — календарь по умолчанию, указанный для компании в целом.
Например, можно вычислить, какая дата в рамках рабочего времени будет стоять через 14 часов после даты запуска процесса:
const workingTime = await System.productionSchedule.calcDate(Context.data.__createdAt, new Duration(14, 'hours'));
Важно: параметр
time
должен быть кратен минутам.Результат — объект типа
TDatetime
, который будет с той же временной зоной, что и у значения входного параметраfrom
.Parameters
-
from: TDatetime
Дата и время, от которых начинается отсчёт.
-
time: number | TDuration
Интервал в часах или в виде значения TDuration.
-
Optional user: TUser
Пользователь для которого вычисляется дата
Returns Promise<TDatetime>
-
deleteSpecialDays
-
Удалить исключения в рабочем календаре по умолчанию.
Пример удаления праздничных или укороченных дней:
await System.productionSchedule.deleteSpecialDays([ new TDate(2023, 12, 31), new TDate(2023, 12, 30), ]);
Parameters
-
dates: TDate[]
Даты удаляемых праздничных или укороченных дней.
Returns Promise<void>
-
getGeneralSettings
-
Метод получает общие настройки рабочего календаря.
К общим настройкам относятся режим рабочего времени и выходные дни недели.
const generalSettings = await System.productionSchedule.getGeneralSettings();
Returns Promise<ProductionScheduleGeneralSettings>
getSpecialDays
-
Метод получает укороченные и праздничные дни рабочего календаря.
Укороченные и праздничные дни возвращаются за определенный период, передаваемый в аргументах метода:
Parameters
-
from: TDatetime | TDate
Начало периода.
-
to: TDatetime | TDate
Конец периода.
const fromDate = Context.data.__createdAt; const toDate = Context.data.request_deadline const specialDays = await System.productionSchedule.getSpecialDays(fromDate, toDate);
Returns Promise<ProductionScheduleSpecialDay[]>
-
getWorkingTime
-
Метод позволяет получить продолжительность рабочего времени за определённый период.
Продолжительность рабочего времени возвращается за период, передаваемый в аргументах метода. Если передан пользователь, то для расчёта будет использоваться рабочий календарь, связанный с этим пользователем, в противном случае — календарь по умолчанию, указанный для компании в целом.
Parameters
-
from: TDatetime
Начало периода.
-
to: TDatetime
Конец периода.
-
Optional user: TUser
Пользователь, для которого необходимо получить продолжительность рабочего времени.
const fromDatetime = Context.data.report_start; const toDatetime = Context.data.report_end; const reportedWorkingTime = await System.productionSchedule.getWorkingTime(fromDatetime, toDatetime); const weeklyHours = new Duration(40, "hours"); if (workingTime.hours > eightHours.hours) { Context.data.notification = "Указанная длительность выходит за рамки рабочего времени"; }
Returns Promise<TDuration>
-
saveGeneralSettings
-
Метод позволяет изменить общие настройки рабочего календаря по умолчанию, т. е. календаря, который указан в настройках компании.
Пример изменения настроек:
const settings = await System.productionSchedule.getGeneralSettings(); settings.weekends = { monday: false, tuesday: false, wednesday: false, thursday: false, friday: false, saturday: true, // Суббота — выходной sunday: true, // Воскресенье — выходной } await System.productionSchedule.saveGeneralSettings(settings);
Parameters
-
settings: ProductionScheduleGeneralSettings
Объект изменённых настроек.
Returns Promise<void>
-
saveSpecialDays
-
Создать или изменить исключения в рабочем календаре по умолчанию.
Пример создания укороченных и праздничных дней:
await System.productionSchedule.saveSpecialDays([ { date: new TDate(2023, 12, 30), holiday: false, from: 16 * 60 * 60, // с 16:00 to: 18 * 60 * 60, // до 18:00 }, { date: new TDate(2023, 12, 31), holiday: true, // Праздничный день from: 0, to: 0, }, ]);
Parameters
-
specialDays: ProductionScheduleSpecialDay[]
Сохраняемые праздничные или укороченные дни.
Returns Promise<void>
-
Объект рабочего календаря
Используется для получения настроек рабочего календаря, таких как: