Что делает этот раздел
Инвентаризация — это запись о том, в каком состоянии находится единица оборудования в конкретный момент. Каждая такая запись фиксирует: какую единицу проверяли, какое у неё зафиксировано состояние, кто и когда сделал отметку, а также (если проверка связана с арендой) в рамках какого заказа и по какой позиции заказа это произошло. Записи инвентаризации выполняют две задачи одновременно:- ведут историю состояний каждой единицы во времени (цепочка «предыдущая → текущая»);
- поддерживают актуальное состояние единицы в её карточке — при появлении новой записи текущее состояние единицы автоматически подтягивается из неё.
Проще говоря: единица инвентаря «показывает» состояние из последней сделанной по ней записи инвентаризации (либо то, что после этого выставили вручную в карточке), а сами записи никуда не исчезают и образуют журнал проверок.
Модель данных
Записи по умолчанию сортируются от новых к старым.
Связь с заказом и позицией заказа при удалении заказа приводит к удалению связанных записей инвентаризации (запись «живёт» вместе с заказом, если была к нему привязана). Записи, не привязанные к заказу, этим не затрагиваются.
Источник записи
Источник показывает, откуда взялась запись:- Вручную — оператор сам открыл единицу и отметил её состояние (проверка без привязки к аренде или отдельная ручная фиксация). Это значение по умолчанию.
- Из заказа — запись создана в ходе оформления заказа, при массовой фиксации состояний нескольких единиц сразу (например, приёмка/выдача по позициям аренды).
- Из мастерской — запись, связанная с обслуживанием/ремонтом; проставляется в сценариях мастерской (за пределами обычной ручной или заказной фиксации).
Логика и побочные эффекты
Автоматическая синхронизация состояния единицы
Ключевой эффект: состояние из записи инвентаризации переносится в карточку единицы. Перенос выполняется в двух случаях:- при создании новой записи — единица получает зафиксированное в ней состояние;
- при изменении состояния в уже существующей записи — то есть когда оператор исправляет ошибочно указанное состояние, поправка доходит до единицы.
Перенос пропускается, если у записи не заполнена единица инвентаря или не указано состояние, а также если состояние единицы уже совпадает с записанным — запись при этом сохраняется как обычно, просто без побочного эффекта.
Цепочка истории
Поле «предыдущая инвентаризация» связывает записи одной единицы в цепочку, по которой можно восстановить, как менялось состояние во времени. Для восстановления «что было до текущей отметки» система также умеет вычислять предыдущее состояние напрямую — как состояние из самой свежей записи той же единицы, сделанной раньше текущей.Одиночное создание записи
При создании одной записи:- если создатель явно не передан, им становится текущий пользователь;
- запись можно сопроводить прикреплёнными изображениями — они после сохранения привязываются к созданной записи;
- можно передать дополнительные данные о пробеге: если указан общий пробег, он дописывается в дополнительные сведения единицы и заводится отдельная запись о пробеге, связанная с этой инвентаризацией.
Массовое создание записей по заказу
Для оформления сразу нескольких единиц в рамках одного заказа используется массовое создание. Оно выполняется единой транзакцией и делает следующее:- Создаёт записи инвентаризации по каждой переданной единице с источником Из заказа, привязывая их к заказу и, при наличии, к позиции заказа.
- Привязывает переданные изображения к созданным записям.
- Обновляет текущее состояние каждой единицы и дописывает дополнительные сведения (например, пробег).
- Для единиц, по которым передан общий пробег, заводит записи о пробеге.
- Для каждой единицы запускает связанную логику мастерской (создание задач обслуживания/ремонта в зависимости от зафиксированного состояния).
Массовое создание выполняется целиком: либо создаются все записи, либо не создаётся ни одна. Если что-то пошло не так, транзакция откатывается и запрос завершается ошибкой — «внешне успешного» ответа при незаписанных данных не бывает. Ответ «создано» означает, что записи действительно сохранены.
В массовом пути состояние единиц обновляется явным пакетным обновлением, а не через пооперационную синхронизацию. Присланное состояние записывается в каждую единицу безусловно — это замысел: оператор указывает состояние по каждой позиции сам, и оно должно попасть в карточку, даже если её состояние правили вручную.
Как это используется
Журнал инвентаризаций (список записей)
Основной список записей показывает историю проверок и поддерживает:- поиск по названию и уникальному номеру единицы, тексту комментария и названию состояния; при включённой поддержке транспорта дополнительно ищет по номеру и техпаспорту авто-карточки;
- фильтры: по дате создания (диапазон), по единице, по продукту единицы, по точке проката единицы, по создателю, по состоянию, по заказу и по предыдущему состоянию;
- сортировки: по дате, заказу, создателю, номеру/названию единицы, номеру авто, комментарию, статусу единицы, состоянию и предыдущему состоянию.
Сводка по состояниям
Отдельная сводка показывает, сколько единиц находится в каждом состоянии. В подсчёт берутся только «живые» единицы: исключаются выведенные из оборота, проданные и находящиеся на складе. Видимость ограничивается точками проката пользователя — сотрудник видит только свои точки, а администратор компании видит все либо конкретную выбранную точку.Список единиц для инвентаризации (задачи)
Отдельный список показывает единицы под инвентаризацию вместе с их последней записью. Для каждой единицы подтягивается самая свежая запись инвентаризации и признак её свежести, а также дата последней проверки. Список так же ограничен точками проката пользователя и исключает выведенные из оборота, проданные и складские единицы; единицы упорядочиваются так, чтобы наверх попадали давно не проверявшиеся.Видимость во всех списках, где она применяется, работает единообразно: администратор компании видит все точки проката (или одну выбранную через параметр точки), а обычный сотрудник — только закреплённые за ним точки.
Особенности поведения
- У источника записи три возможных значения — «Вручную» (по умолчанию), «Из заказа» и «Из мастерской».
- Состояние переносится в карточку единицы при создании записи или при фактическом изменении состояния в записи; пересохранение записи без смены состояния карточку не трогает.
- Перенос пропускается, если у сохранённой записи не заполнена единица инвентаря или состояние, а также если состояние единицы уже совпадает с записанным; сама запись при этом всё равно сохраняется, но без побочного эффекта.
- Массовое создание обновляет состояние единиц отдельным пакетным обновлением, минуя пооперационную синхронизацию, и записывает присланное состояние безусловно.
- Массовое создание либо сохраняет все записи, либо не сохраняет ни одной и отвечает ошибкой; несуществующее состояние в запросе даёт техническую ошибку без понятного объяснения.
- Состояние и предыдущая инвентаризация защищены от удаления: нельзя удалить используемое состояние или запись, на которую ссылаются как на предыдущую.
- Записи, привязанные к заказу или позиции заказа, удаляются каскадно вместе с заказом; записи без такой привязки не затрагиваются.
- Порог «свежести» инвентаризации берётся из конфигурации, а при отсутствии значения по умолчанию равен 7 дням.
- Расширенный поиск по номеру и техпаспорту авто включается только при включённой поддержке транспорта в конфигурации.
- Поиск ищет вхождение подстроки без учёта регистра и не подбирает «неправильную раскладку клавиатуры»: запрос латиницей не найдёт кириллические названия, и наоборот. Запросы в один-два символа обрабатываются медленнее, чем от трёх символов.
- В списке единиц для инвентаризации поиск по числовому идентификатору требует точного совпадения номера, а не вхождения цифр внутри него, — в выдачу больше не попадают посторонние единицы, у которых запрошенные цифры просто встречались в номере.
Связанные страницы
Глоссарий: Инвентаризация
Полный перечень полей и терминов раздела инвентаризации.
Инвентарь и услуги (CRM)
Обзорная страница модуля: единицы, продукты, комплекты, тарифы и услуги.
Инвентарь (единицы)
Отдельные единицы оборудования: статусы и состояние, пробег, страховка, авто-поля, импорт и массовые операции.
Продукт
Учёт однотипного инвентаря по количеству вместо отдельных единиц.
Комплекты (наборы)
Наборы инвентаря, сдаваемые как единое целое: состав, позиции и цены комплекта.
Тарифы и цены
Тарифы аренды по временным периодам для единиц, продуктов и комплектов.
Доступность и расписание
Расписание занятости и расчёт доступности с учётом заказов, склада и мастерской.
Субаренда
Периоды субаренды единиц с процентом владельца — источник истории для распределения выручки.
Услуги (сервисы)
Дополнительные платные услуги и их тарифы, добавляемые к заказам.
Обслуживание и ремонт
Плановое и разовое техобслуживание по интервалу или пробегу, с ресурсами и уведомлениями.