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

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

Услуга задачи мастерской — это услуга из справочника компании (прайс сервисных работ), добавленная к конкретной ремонтной задаче. У каждой такой записи хранится, во-первых, снимок выбранного тарифа (цена и срок на момент добавления), а во-вторых — фактическая итоговая цена, которую и берут в расчёт стоимости задачи. В отличие от расходников (складских ресурсов), услуги не имеют складского учёта: это работа, а не материал. Поэтому у услуги нет количества и списания остатков — есть только цена и справочная длительность.
Ключевая роль услуги в модуле: её итоговая цена суммируется с ценами всех остальных услуг и расходников задачи и формирует общую стоимость ремонтной задачи. Любое добавление, изменение или удаление услуги автоматически запускает пересчёт стоимости задачи.

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

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

Логика и побочные эффекты

Автоматический пересчёт стоимости задачи

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

Автоматическое заполнение служебных полей

  • Привязка к ремонтной задаче берётся из адреса запроса (идентификатор задачи в пути), клиент её не передаёт.
  • Компания-владелец проставляется автоматически из текущего контекста.
  • Даты создания и обновления ведутся автоматически.

Как это используется в API

Услуги задачи доступны через два адреса, оба работают в разрезе конкретной задачи (её идентификатор всегда присутствует в адресе):
  • Список и добавление — показывает все услуги одной задачи и позволяет добавить новую. Список отдаётся целиком, без постраничной разбивки, отсортированным от новых к старым.
  • Просмотр, изменение и удаление одной услуги — работа с отдельной записью услуги внутри задачи.
Оба адреса требуют прав доступа к услугам задачи (проверка прав по модели).

Разные представления на чтение и запись

  • При чтении (просмотр, список) услуга отдаётся вместе с развёрнутыми данными связанной услуги из справочника — удобно показывать в интерфейсе название и параметры услуги, а не только её идентификатор.
  • При создании и изменении используется облегчённое представление: связанная услуга передаётся идентификатором, привязка к задаче игнорируется во входных данных и берётся из адреса запроса.
Привязку к ремонтной задаче нельзя переназначить через API — она только для чтения и всегда определяется адресом запроса. Даже если передать её в теле запроса, значение будет проигнорировано.
Список услуг задачи всегда ограничен одной задачей (по идентификатору из адреса) — увидеть чужие услуги через эти адреса нельзя.

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

Глоссарий: Услуги

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

Мастерская (ремонтные задачи)

Обзорная страница модуля со всеми его разделами.

Воронка и задачи

Kanban-воронки, этапы и ремонтные задачи с их статусами, порядком и агрегатами по списку.

Ресурсы и склад

Складской справочник расходников и их списание/возврат при привязке к задачам с контролем остатков.

Стоимость и оплаты

Автоагрегация цены задачи из ресурсов и услуг и суммы оплат из платежей CRM, плюс статусы оплаты.

Метрика прибыли

Проецирование прибыли по ресурсам и услугам завершённой задачи в общую таблицу метрик прибыли.

Автосмена состояния инвентаря

Автоматический перевод инвентаря в целевое состояние этапа при движении задачи по воронке.