Используется для получения настроек рабочего календаря, таких как:

  • интервалы рабочего и обеденного времени;
  • выходные дни;
  • укороченные и праздничные дни.

Hierarchy

  • ProductionSchedule

Methods

calcDate

  • Метод позволяет вычислить дату, входящую в интервал рабочего времени.

    Дата вычисляется от заданной даты и с указанной продолжительностью.

    Например, можно вычислить, какая дата в рамках рабочего времени будет стоять через 14 часов после даты запуска процесса:

    const workingTime = await System.productionSchedule.calcDate(Context.data.__createdAt, new Duration(14, 'hours'));
    

    Важно: параметр time должен быть кратен минутам.

    Parameters

    • from: TDatetime

      Дата и время, от которых начинается отсчет.

    • time: number | TDuration

      Интервал в часах или в виде значения TDuration.

    Returns Promise<TDatetime>

getGeneralSettings

  • Метод получает общие настройки рабочего календаря.

    К общим настройкам относятся режим рабочего времени и выходные дни недели.

    const generalSettings = await System.productionSchedule.getGeneralSettings();
    

    Returns Promise<ProductionScheduleGeneralSettings>

getSpecialDays

  • Метод получает укороченные и праздничные дни рабочего календаря.

    Укороченные и праздничные дни возвращаются за определенный период, передаваемый в аргументах метода:

    Parameters

    • from: TDatetime

      Начало периода.

    • to: TDatetime

      Конец периода.

      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

      Конец периода.

      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>