Skip to main content
Полный перечень полей — в глоссарии.

Что это за раздел

Раздел описывает две сущности, которые «навешиваются» на аренду поверх основных позиций инвентаря:
  • Услуга аренды — строка дополнительной услуги (мойка, установка, обучение и т. п.), которая может быть привязана как ко всей аренде, так и к конкретной выданной позиции. Один из типов услуги — доставка; именно через тип связанной справочной услуги эти строки участвуют в вычислении признака «есть ли по аренде доставка».
  • Доставка аренды — отдельное задание на доставку клиенту или самовывоз/забор, с адресами отправления и назначения, назначенным курьером, сроками, статусом и стоимостью. Стоимость доставки автоматически суммируется в отдельную сумму «доставка» на самой аренде.
Доставка и услуги — это два независимых механизма. «Доставка аренды» — это полноценное задание со своим жизненным циклом и уведомлениями курьеру. «Услуга аренды» типа «доставка» — это лишь строка в расчёте стоимости, которая влияет на признак «доставка присутствует» у аренды, но не является заданием на выполнение.

Модель данных

Услуга аренды

Доставка аренды

Геолокация

Адрес отправления и адрес назначения — это точки на карте с широтой, долготой и человекочитаемым названием. Точки переиспользуются: при сохранении доставки система ищет геолокацию с точно такими же координатами и названием и подключает существующую, а создаёт новую только если совпадения нет. Это защищает справочник адресов от дублей, но означает, что одна и та же точка может быть общей для многих доставок.

Услуги аренды

Снимок тарифа и расчёт цены

У строки услуги две разные величины, и меняют их разные механизмы. Снимок тарифа — «Цена по тарифу» и «Длительность тарифа». Он берётся при сохранении строки, но только если тариф действительно сменили: в строку копируются цена выбранного тарифа и длительность его периода тарификации (если у тарифа период не указан — 1 день). Если тариф остался прежним, снимок не трогается.
Цена по тарифу — это редактируемый снимок, а не «живое зеркало» прайса. Сотрудник может задать по строке свою цену за период (например, сделать услугу дешевле для конкретного клиента), и она сохраняется: последующие сохранения строки и пересчёты аренды её не сбрасывают к тарифной. Тарифная цена подставляется заново только при реальной смене тарифа.
Цена и Цена со скидкой — их считает только пересчёт состава и сумм аренды, единственный владелец этих полей. Он запускается автоматически при создании, изменении и удалении строки услуги. Правило расчёта:
  1. число периодов оплаты: для тарифа с разовой оплатой (или с нулевой длительностью периода) — всегда 1 период; иначе — собственная длительность услуги делится на длительность тарифа и округляется вверх до целого;
  2. цена = «цена по тарифу × число периодов»;
  3. цена со скидкой считается отдельно, с применением скидок по услуге.
Собственная длительность услуги — это разница между её окончанием и началом (если они не заданы — берутся сроки всей аренды) за вычетом нерабочих дней. Подробные формулы — в разделе «Пересчёт сумм и цен».
Число периодов всегда округляется вверх: даже неполный период оплачивается как целый.

Создание, изменение и удаление

Управление услугами построено на двух адресах: список с созданием и точечный доступ (изменение/удаление). Для операций записи действуют права доступа модели и проверка активности интеграции «аренда». При создании услуги, если адрес вызван в контексте конкретной аренды, эта аренда подставляется автоматически. Создание блокируется, если аренда завершена или отменена — за исключением сотрудников уровня суперпользователя компании и обладателей права «изменять завершённые». Создание и изменение строки услуги запускают пересчёт состава и сумм аренды — цена и цена со скидкой самой строки, а также итоги «стоимость услуг» и «стоимость услуг со скидкой» по аренде обновляются сразу. Строка услуги без привязки к аренде (например, заведённая на клиента) пересчёт не запускает.
Раньше пересчёт после создания и изменения услуги не запускался вовсе, поэтому у только что заведённой услуги итоги аренды по услугам оставались нулевыми до следующего события, которое пересчёт вызывало. Теперь этого расхождения нет.
При удалении услуги:
  • удаление запрещено, если аренда завершена или отменена (возвращается ошибка);
  • после удаления автоматически пересчитываются услуги и итоговые суммы аренды;
  • дополнительно при удалении срабатывает автоматическое пересохранение самой аренды (если она ещё существует), что подтягивает суммы к актуальному состоянию.

Связь с признаком «доставка» у аренды

Тип справочной услуги определяет, участвует ли строка в вычислении признака доставки у аренды. В этот признак попадают услуги трёх типов доставки: обычная доставка, обратная доставка и доставка в обе стороны. Тип услуги «мастерская», «не выбрано» и прочие в признак доставки не входят.
Это ключевое различие: «Услуга аренды» с типом доставки влияет на то, показывает ли аренда наличие доставки и как считается её стоимость, но не создаёт задание для курьера. Само задание — это отдельная сущность «Доставка аренды» со своим статусом и жизненным циклом (см. ниже).

Доставка аренды

Списки и просмотр

Есть несколько представлений над доставками:
  • Общий список доставок — с поиском (по названиям адресов, имени и телефону клиента, телефону доставки, комментарию), фильтрами (даты создания и подачи, аренда, курьер, тип, статус) и сортировкой. К списку прикладывается сводная статистика: общее число и сумма, разбивка по статусам и типам (количество и сумма по каждому), средняя стоимость завершённых доставок и средняя длительность выполнения (от времени выезда до времени завершения только по завершённым).
  • Счётчики — компактная сводка «ожидает / в процессе / завершено», где «завершено» объединяет завершённые и отменённые.
  • Доставки конкретной аренды — список и создание в рамках одной аренды (без пагинации).
  • Точечный доступ к доставке — просмотр, изменение и удаление; изменение и удаление запускают автоматический пересчёт итоговых сумм аренды.
Для доступа к общему списку и точечному просмотру требуется аутентификация и активная интеграция «доставка».

Создание доставки

При создании доставки в контексте аренды сама аренда подставляется автоматически. Обязательны тип, цена и дата подачи. Адреса отправления и назначения при сохранении обрабатываются через переиспользование точек (см. «Геолокация»).
Сразу после создания доставки курьеру автоматически уходит уведомление «назначена новая доставка» с указанием адресов отправления и назначения. При удалении доставки курьеру уходит уведомление «доставка отменена».

Пересчёт стоимости доставки в аренде

При любом сохранении и при удалении доставки автоматически пересчитывается сумма «доставка» на самой аренде: она равна сумме цен всех доставок этой аренды (при отсутствии доставок — ноль) и записывается в аренду отдельным полем.
В общую сумму «доставка» аренды складываются цены всех доставок независимо от их статуса — в том числе отменённых. Отмена доставки сама по себе не убирает её цену из суммы доставки аренды; чтобы исключить стоимость, доставку нужно удалить (или обнулить её цену).

Жизненный цикл доставки

Доставка проходит статусы: «Ожидает» → «В процессе» → «Завершена», либо в любой момент (кроме уже завершённой) — «Отменена». Управляется это четырьмя действиями.

Забор / выезд

Действие «забор/выезд» переводит доставку в статус «в процессе» и фиксирует время выезда. Если это доставка (а не самовывоз), клиенту автоматически отправляется сообщение в мессенджер «ваш заказ в пути, курьер выехал» с телефоном курьера (если он указан). Сообщение уходит на доп. телефон, а при его отсутствии — на основной телефон доставки.

Подтверждение (запуск финальной выдачи)

Действие «подтверждение» ведёт себя по-разному в зависимости от настройки «подтверждение доставки»:
  • если подтверждение отключено — доставка сразу переводится в «завершена» и фиксируется время завершения, без кода;
  • если включено — генерируется четырёхзначный код, который сохраняется в кэше на 24 часа и отправляется клиенту по SMS как код подтверждения. Телефон берётся из доп. или основного телефона доставки; если оба пусты — из телефона клиента аренды (а если клиента нет — возвращается ошибка). Перед отправкой номер проверяется на корректность.

Завершение (ввод кода)

Действие «завершение» закрывает доставку. Код проверяется, только если это доставка (а не самовывоз) и в компании включена настройка «подтверждение доставки» — при выключенной настройке код не выдаётся вовсе, поэтому и сверять нечего. Когда проверка применяется:
  • если кода нет — он ни разу не запрашивался или истёк 24-часовой срок его жизни — завершение отклоняется с ошибкой «код подтверждения не запрошен или истёк». Чтобы продолжить, нужно заново вызвать действие «подтверждение» и получить свежий код;
  • если код пустой или не совпадает с выданным — возвращается ошибка «неправильный код», а сам выданный код остаётся действующим;
  • при совпадении доставка переводится в «завершена», фиксируется время завершения, а код гасится — повторно тем же кодом закрыть доставку нельзя.
Для самовывоза, а также при выключенной настройке подтверждения доставки, код не проверяется — доставка завершается без него.

Отмена

Действие «отмена» требует обязательный комментарий-причину. Отменить уже завершённую доставку нельзя (возвращается ошибка). При отмене проставляются статус «отменена», время отмены и причина.
Отмена меняет только статус доставки. Она не удаляет запись, поэтому цена отменённой доставки остаётся в сумме «доставка» аренды, и уведомление «доставка отменена» курьеру отправляется автоматически именно при удалении записи, а не при переводе в статус «отменена». Это два разных сценария.

Как это связано с действиями по аренде

Среди типов действий по аренде отдельно выделены «забор при доставке» и «выдача при доставке». Это специальные разновидности событий жизненного цикла аренды, относящиеся к доставке (в отличие от обычных выдачи и приёмки, происходящих на торговой точке). Они позволяют учитывать в истории аренды, что выдача или возврат прошли через логистику доставки.

Обе стороны доставки: прямая и обратная

Поле «связанная выдача» позволяет связать две доставки между собой (ссылка на парную запись). Это используется, когда по аренде оформляется доставка в обе стороны: прямая доставка клиенту и обратная (забор от клиента) могут ссылаться друг на друга. Типы услуги доставки — обычная, обратная и «в обе стороны» — все три учитываются в признаке доставки у аренды.

Особенности поведения

  • Число периодов оплаты услуги всегда округляется вверх — неполный период тарификации оплачивается как целый.
  • Цену и цену со скидкой строки услуги пишет только пересчёт состава и сумм аренды; сохранение строки само по себе меняет лишь снимок тарифа, и только при реальной смене тарифа.
  • Вручную заданная цена по тарифу в строке услуги переживает последующие сохранения и пересчёты — она сбрасывается к тарифной только при смене тарифа.
  • Создание и изменение строки услуги запускают пересчёт сумм аренды; строка услуги без привязки к аренде пересчёт не запускает.
  • При типе «самовывоз» код подтверждения не проверяется вовсе — доставка завершается без ввода кода.
  • При выключенной настройке подтверждения доставки действие «подтверждение» сразу закрывает доставку без отправки SMS-кода, и код при завершении не проверяется.
  • Отсутствующий или истёкший код подтверждения отклоняет завершение доставки; успешно использованный код гасится и повторно не работает.
  • Телефон для сообщений берётся сначала из доп. телефона, потом из основного; при подтверждении, если оба пусты, используется телефон клиента аренды, а при отсутствии клиента возвращается ошибка.
  • Удаление услуги запрещено для завершённой или отменённой аренды и, помимо автоматического пересчёта услуг и сумм, вызывает автоматическое пересохранение самой аренды.
  • Геолокации адресов переиспользуются по точному совпадению координат и названия, поэтому одна точка может быть общей для многих доставок.
  • Создание услуги для завершённой или отменённой аренды разрешено только суперпользователю компании или обладателю права изменять завершённые аренды.
  • Изменение и удаление доставки через точечный адрес запускают автоматический пересчёт итоговых сумм аренды.

Связанные страницы

Глоссарий: Услуги и доставка

Полный перечень полей услуг аренды и заданий на доставку.

Аренда: заявки и жизненный цикл

Обзорный раздел модуля аренды и переход ко всем связанным страницам.

Аренда и статусы

Ядро сущности аренды, автомат статусов и статус оплаты, создание, редактирование, закрытие и архивация заявок.

Выдача и приёмка

Действия по аренде — бронирование, сборка, выдача, приёмка, отмена и архив — а также отмена действия с восстановлением статуса.

Позиции инвентаря и обмен

Строки инвентаря аренды с тарифами и периодами, массовые операции и обмен позиций внутри заявки.

Пересчёт сумм и цен

Движок пересчёта итогов аренды — цены позиций и услуг, скидки, налоги, продление и суммарные поля заявки.

Депозиты и штрафы

Привязка депозитов и штрафов к аренде и позициям, плюс генерация штрафных задач.

График оплат, паузы и рабочие дни

График платежей, автосписание, паузы аренды и рабочие/выходные дни, влияющие на длительность и суммы.

Уведомления, бонусы и воронка

Реакции на смену статуса аренды — уведомления клиенту, бонусы, реферальные выплаты и продвижение по воронке.