Метод collectOrder. Начать сборку заказа

Метод переводит заказ, находящийся в статусе «Новый» в состояние «В сборке», назначает сборщика на заказ, отправляет в СМ уведомление order.in_work, создаёт телеграмм- уведомление для сборщика и магазина о назначении заказа в сборку. Возвращает обновлённое содержание заказа, включая строки (order.positions).

Алгоритм:

  • открывает транзакцию,
  • находит заказ по идентификатору подразделения и заказа, читает его с блокировкой (for update),
  • проверяет текущий статус заказа
  • находит сборщика, если указан
  • проверяет, что для сборщика активна смена по указанному магазину
  • отправляет уведомление order.in_work в СМ
  • изменяет в заказе статус на «В сборке», записывает сборщика и дату-время начала сборки
  • если любой из перечисленных выше шагов завершился с ошибкой, то выполняет откат транзакции
  • фиксирует транзакцию
  • записывает в очередь телеграмм-уведомлений сообщения «Начата сборка заказа NN, сборщик ХХ, завершить до HH:MM» для сборщика и магазина,
  • возвращает обновлённое содержание заказа

Параметры

requestData : {

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

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

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

}

Возвращаемый ответ

responseData : {

  order : {

      <Заказ в виде объекта типа order, включая строки (order.positions)>

  }

}