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

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

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

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

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

Источник записи

Источник показывает, откуда взялась запись:
  • Вручную — оператор сам открыл единицу и отметил её состояние (проверка без привязки к аренде или отдельная ручная фиксация). Это значение по умолчанию.
  • Из заказа — запись создана в ходе оформления заказа, при массовой фиксации состояний нескольких единиц сразу (например, приёмка/выдача по позициям аренды).
  • Из мастерской — запись, связанная с обслуживанием/ремонтом; проставляется в сценариях мастерской (за пределами обычной ручной или заказной фиксации).

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

Автоматическая синхронизация состояния единицы

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

Цепочка истории

Поле «предыдущая инвентаризация» связывает записи одной единицы в цепочку, по которой можно восстановить, как менялось состояние во времени. Для восстановления «что было до текущей отметки» система также умеет вычислять предыдущее состояние напрямую — как состояние из самой свежей записи той же единицы, сделанной раньше текущей.

Одиночное создание записи

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

Массовое создание записей по заказу

Для оформления сразу нескольких единиц в рамках одного заказа используется массовое создание. Оно выполняется единой транзакцией и делает следующее:
  1. Создаёт записи инвентаризации по каждой переданной единице с источником Из заказа, привязывая их к заказу и, при наличии, к позиции заказа.
  2. Привязывает переданные изображения к созданным записям.
  3. Обновляет текущее состояние каждой единицы и дописывает дополнительные сведения (например, пробег).
  4. Для единиц, по которым передан общий пробег, заводит записи о пробеге.
  5. Для каждой единицы запускает связанную логику мастерской (создание задач обслуживания/ремонта в зависимости от зафиксированного состояния).
Массовое создание выполняется целиком: либо создаются все записи, либо не создаётся ни одна. Если что-то пошло не так, транзакция откатывается и запрос завершается ошибкой — «внешне успешного» ответа при незаписанных данных не бывает. Ответ «создано» означает, что записи действительно сохранены.
Если в массовом запросе передано несуществующее состояние, ответ будет технической внутренней ошибкой, а не понятным сообщением «такого состояния нет». Данные при этом не портятся (ничего не сохраняется), но по тексту ответа причину не понять — состояния стоит выбирать из справочника, а не подставлять произвольные значения.
В массовом пути состояние единиц обновляется явным пакетным обновлением, а не через пооперационную синхронизацию. Присланное состояние записывается в каждую единицу безусловно — это замысел: оператор указывает состояние по каждой позиции сам, и оно должно попасть в карточку, даже если её состояние правили вручную.

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

Журнал инвентаризаций (список записей)

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

Сводка по состояниям

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

Список единиц для инвентаризации (задачи)

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

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

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

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

Глоссарий: Инвентаризация

Полный перечень полей и терминов раздела инвентаризации.

Инвентарь и услуги (CRM)

Обзорная страница модуля: единицы, продукты, комплекты, тарифы и услуги.

Инвентарь (единицы)

Отдельные единицы оборудования: статусы и состояние, пробег, страховка, авто-поля, импорт и массовые операции.

Продукт

Учёт однотипного инвентаря по количеству вместо отдельных единиц.

Комплекты (наборы)

Наборы инвентаря, сдаваемые как единое целое: состав, позиции и цены комплекта.

Тарифы и цены

Тарифы аренды по временным периодам для единиц, продуктов и комплектов.

Доступность и расписание

Расписание занятости и расчёт доступности с учётом заказов, склада и мастерской.

Субаренда

Периоды субаренды единиц с процентом владельца — источник истории для распределения выручки.

Услуги (сервисы)

Дополнительные платные услуги и их тарифы, добавляемые к заказам.

Обслуживание и ремонт

Плановое и разовое техобслуживание по интервалу или пробегу, с ресурсами и уведомлениями.