Понятия
Модели и поля
Позиция инвентаря в аренде
Одна строка заявки: конкретная единица инвентаря или услуга, добавленная в аренду, со своим тарифом, сроками, ценой и штрафами. Ключевая модель под-области; каждая замена (обмен) — это новая строка, связанная 1:1 с заменённой через связь замены. Итоговый штраф позиции переносится в пер-позиционные авто-штрафы. Связи
Тип и комплекты
Тариф
Скидки
Суммы
Штрафы
Сроки
Прочее
Формат обмена позиции
Выполняет замену одной позиции инвентаря на другую внутри аренды, сохраняя историю через связь замены. Создаёт новую позицию (начало — момент обмена), у старой ставит связь замены на новую и плановый конец — момент обмена; в доп. данных хранится идентификатор старой позиции.Массовое добавление позиций
Добавляет пачку позиций в аренду за один запрос, группируя их по срокам и проверяя занятость расписания. Запрещает изменение завершённой/отменённой аренды без специальных прав; создаёт действие брони при соответствующем статусе.Массовое обновление позиций
Обновляет пачку позиций; при смене единицы автоматически создаёт обмен (новую позицию и связь замены). Порождает обмены для строк, где сменилась единица инвентаря, и пересчитывает плановый конец заменённых по началу новой позиции.Массовое удаление позиций
Удаляет пачку позиций по списку идентификаторов и пересчитывает суммы статичных комплектов. Перед удалением чинит связи обмена, перераспределяет цену комплекта и сбрасывает продажу у продажных единиц.Форма позиции (для массовых операций)
Описывает поля одной позиции внутри массового добавления/обновления. Вложенный формат; в массовом обновлении расширяется полем идентификатора.Подбор позиций по группе
Подбирает свободные единицы инвентаря из группы (или одну по идентификатору) с учётом доступности, точки проката и приоритета, возвращая готовые формы позиций. Не создаёт записи, а формирует список форм для последующего массового добавления; выбрасывает ошибку при нехватке инвентаря.Подбор позиций по комплекту
Собирает экземпляры комплекта: по каждому элементу шаблона подбирает нужное число свободных единиц и присваивает общий ключ экземпляра. Возвращает список форм позиций; проверяет наличие для обязательных элементов комплекта.Смена периода тарификации позиций
Пересчитывает тариф, цену и длительность для набора единиц (и комплектов) при смене периода тарификации. Возвращает формы позиций с новым тарифом; записи в базе не создаёт.
Результат
Фильтр списка позиций
Набор query-фильтров для адреса списка позиций аренды. Фильтры начала/конца работают как пересечение интервалов; выдача/приёмка проверяют факт выдачи и приёмки; признак обмена — наличие связи замены.Статусы и справочники
Состояние позиции в аренде
Состояние отдельной позиции инвентаря внутри аренды; используется при пересчёте статуса аренды для определения непринятых и несданных позиций.- Не выдана
- Выдана
- Принята
- Просрочена
Тип позиции инвентаря
Различает арендные и продажные позиции аренды; влияет на пересчёт статуса при сохранении (аренда завершается по-разному для арендных и продажных позиций).- Аренда
- Продажа