logo

[ELMA3] Настройка рабочего календаря

Состояние рабочего календаря по умолчанию

Внимание!
Приведенная ниже информация актуальна только для системы ELMA версии 3.11.х и ниже.
По умолчанию для рабочего календаря заданы следующие настройки:
  • с понедельника по пятницу – рабочие дни;
  • суббота и воскресенье – выходные;
  • рабочий день начинается в 09:00 и заканчивается в 18:00;
  • обед с 12:00 до 13:00.
В случае, если необходимо задать собственное расписание, праздничные или дополнительные рабочие дни, можно создать собственный рабочий календарь.

Файл настройки рабочего календаря

Управление настройками рабочего календаря осуществляется с помощью файла {CONFIGDIR}/ProductionSchedule/ProductionSchedule.xml.
Для изменения рабочего календаря введите необходимые данные и сохраните файл. При следующем обращении ELMA к рабочему календарю данные будут загружены в настройки (далее Текущий календарь). В случае, если сохраненный файл заполнен неправильно, будет использован последний корректный Текущий календарь.
Информацию о настройках Текущего рабочего календаря можно посмотреть по прямой ссылке
~ /Calendar/ProductionSchedule

Файл настройки состоит из двух разделов:
  1. Раздел workDays – обязательный раздел. Содержит информацию о расписании рабочих дней недели и распорядке рабочего дня.
  2. Раздел exceptions – необязательный раздел. Содержит информацию о днях-исключениях.

Формат вводимых данных дат и времени

Данные о дате и времени вводятся в языковом стандарте InvariantCulture.
Примеры заполнения:
для 11 января 2013 года
01/11/13
для 4 февраля 2013 года
02/04/13
для 9 часов утра
09:00:00
для 5 часов вечера:
17:00:00
Информация о заполнении дат и времени
Для данных, содержащих информацию о времени, будет учитываться только время. Дата будет отброшена. Для данных, содержащих информацию о дате, будет учитываться только дата.

Настройка рабочих дней

В разделе workDays для каждого дня недели заводится запись с его настройками. Каждая запись именуется day и содержит атрибуты dayOfWeek и state. Атрибут dayOfWeek определяет номер дня недели ("1" – понедельник, "2" – вторник и т.д.). Атрибут state определяет, является ли этот день рабочим (значение Work) или выходным (значение Holiday).
Дня настройки расписания рабочего дня в разделе workDays указываются атрибуты workStart (начало рабочего дня), workEnd (конец рабочего дня), dinnerStart (начало обеда), dinnerEnd (конец обеда).
Пример раздела настройки рабочих дней:
<workDays workStart="09:00:00" workEnd="18:00:00" dinnerStart="12:00:00" dinnerEnd="13:00:00">
 <day dayOfWeek="1" state="Work" />
 <day dayOfWeek="2" state="Work" />
 <day dayOfWeek="3" state="Work" />
 <day dayOfWeek="4" state="Work" />
 <day dayOfWeek="5" state="Work" />
 <day dayOfWeek="6" state="Holiday" />
 <day dayOfWeek="7" state="Holiday" />
</workDays>

Настройка исключительных дней

Исключительные дни бывают трех видов: выходной в рабочий день, рабочий день в выходной и сокращенный день. Каждый исключительный день задается отдельной записью в разделе exceptions:
  1. Выходной в рабочий день. Задается записью с названием holiday. Должен содержать атрибут date с указанием даты этого дня.
  2. Рабочий день в выходной. Задается записью с названием workDay. Должен содержать атрибут date с указанием даты этого дня.
  3. Сокращенный день. Задается записью с названием shortDay. Должен содержать атрибут date с указанием даты этого дня. Данные о времени начала и конца работы в этот день, а также об обеде, берутся из настроек обычного рабочего дня. При этом окончание рабочего дня сдвигается на час назад. В случае, если нужно задать собственное расписание сокращенного дня, можно добавить атрибуты startTime (начало рабочего дня), endTime (конец рабочего дня), dinnerStartTime (начало обеда), dinnerEndTime (конец обеда).

Правила настройки

Для расписания недели действуют следующие правила:
  • для каждого дня недели должна быть ровно одна запись;
  • должен быть хотя бы один рабочий день.
Для расписания обычного рабочего дня и сокращенных дней действуют следующие правила:
  • конец дня должен быть позже начала дня;
  • конец обеда должен быть позже начала обеда;
  • обед должен быть между началом и концом дня;
  • начала и концы дня и обеда должны находиться между 0 и 24 часами.
Исключением из этих правил является случай, когда рабочий день без обеда. Для этого начало и конец обеда устанавливаются на одно время.

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

Примеры

Рабочий календарь по умолчанию:

<?xml version="1.0" encoding="utf-8"?>
<schedule>
  <workDays workStart="09:00:00" workEnd="18:00:00" dinnerStart="12:00:00" dinnerEnd="13:00:00">
    <day dayOfWeek="1" state="Work" />
    <day dayOfWeek="2" state="Work" />
    <day dayOfWeek="3" state="Work" />
    <day dayOfWeek="4" state="Work" />
    <day dayOfWeek="5" state="Work" />
    <day dayOfWeek="6" state="Holiday" />
    <day dayOfWeek="7" state="Holiday" />
  </workDays>
  <exceptions />
</schedule>

Рабочий календарь с измененной рабочей неделей, расписанием рабочего дня и добавленными исключительными днями:

<?xml version="1.0" encoding="utf-8"?>
<schedule>
  <workDays workStart="09:00:00" workEnd="18:00:00" dinnerStart="12:00:00" dinnerEnd="13:00:00">
   <day dayOfWeek="1" state="Work" />
   <day dayOfWeek="2" state="Work" />
   <day dayOfWeek="3" state="Work" />
   <day dayOfWeek="4" state="Work" />
   <day dayOfWeek="5" state="Work" />
   <day dayOfWeek="6" state="Work" />
   <day dayOfWeek="7" state="Holiday" />
  </workDays>
  <exceptions>
   <shortDay date="11/01/13" startTime="10:00:00" endTime="14:00:00" dinnerStartTime="12:00:00" dinnerEndTime="13:00:00" />
   <holiday date="01/11/13" />
   <workDay date="01/23/13" />
  </exceptions>
</schedule>
Примечание
Также настройку обеденного времени, рабочих дней и дней-исключений можно производить в веб-приложении системы ELMA. Подробно данный функционал описан в справке по системе.

Дополнительные ссылки