Метод beginSession. Начать смену сборщика

Метод начинает смену сборщика с указанием её планируемой продолжительности. Для начала новой смены у сборщика не должно быть открытых смен. Создаёт телеграмм- уведомление сборщику и магазину.

Алгоритм:

  • находит магазин и сборщика, проверяет продолжительность (диапазон значений от 1 до 24 часов),
  • создаёт пустой документ управления сменами за текущий день, если таковой отсутствует,
  • открывает транзакцию,
  • блокирует от изменения документ управления сменами за текущий день,
  • по документам управления сменами за последние 3 дня проверяет, чтобы у сборщика не было открытой смены,
  • добавляет строку смены в документ управления сменами за текущий день, в строке заполняются Магазин, Сборщик, текущая дата как Дата начала смены, Планируемая дата окончания смены,
  • записывает в очередь телеграмм-уведомлений сообщения «Сборщик ХХ начал смену в магазине ММ в hh:nn, планируемое время завершения смены dd-mm-yyyy hh:nn» для сборщика и магазина,
  • если любой из перечисленных выше шагов завершился с ошибкой, то выполняет откат транзакции
  • фиксирует транзакцию
  • возвращает код завершения и сообщение об ошибке (если ошибка)

Параметры

requestData : {

  storeId : <Идентификатор магазина СМ, обязательный, string>,

  collector : <Сборщик, обязательный, string>,

  duration : <Продолжительность смены, часов, обязательный, [1..24], integer>

}

Радел responceData в возвращаемом ответе отсутствует. Возвращается только стандартный заголовок с кодом и сообщением об ошибке.