> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yume.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Глоссарий: Пересчёт сумм и цен

> Справочник моделей, движка пересчёта и справочников, из которых складываются стоимость, скидки, штрафы и прибыль аренды.

Справочник к странице [«Пересчёт сумм и цен аренды»](/ru/logic/rent/pricing).

## Понятия

| Понятие                    | Значение                                                                                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Аренда (заявка)            | Центральная сущность аренды: одна заявка клиента со сроками, суммами, скидками, оплатой, штрафами и вычисляемым статусом жизненного цикла.                    |
| Позиция инвентаря в аренде | Одна строка заявки: конкретная единица инвентаря или услуга, добавленная в аренду, со своим тарифом, сроками, ценой и штрафами.                               |
| Движок пересчёта сумм      | выражения заново считают цены, скидки, штрафы и налоги по всем позициям и услугам и складывают итоги в саму аренду, после чего перекладывают прибыль по дням. |
| Прибыль (по дням)          | Ежедневная прогнозная и фактическая выручка по позиции аренды, услуге, доставке или штрафу; наполняется движком пересчёта.                                    |

## Модели и поля

### Аренда (заявка)

*Центральная сущность аренды: одна заявка клиента со сроками, суммами, скидками, оплатой, штрафами и вычисляемым статусом жизненного цикла. Статус и статус оплаты не задаются напрямую, а пересчитываются в методе сохранения из действий, состояний позиций инвентаря и оплаты.*

**Идентификация**

| Поле                 | Тип   | Описание                                                                        |
| -------------------- | ----- | ------------------------------------------------------------------------------- |
| Идентификатор        | число | Первичный ключ аренды.                                                          |
| Идентификатор в Plus | число | Ссылка на запись во внешней системе Plus; аренды из Plus нельзя жёстко удалять. |

**Связи**

| Поле                         | Тип   | Описание                                                                     |
| ---------------------------- | ----- | ---------------------------------------------------------------------------- |
| Клиент                       | связь | Клиент, на которого оформлена аренда; может отсутствовать у черновой заявки. |
| Создатель                    | связь | Пользователь, оформивший аренду.                                             |
| Точка выдачи                 | связь | Точка проката, где выдаётся аренда; используется для фильтрации по правам.   |
| Точка возврата               | связь | Точка проката для приёмки.                                                   |
| Корзина                      | связь | Связанная корзина витрины.                                                   |
| Тарифный период по умолчанию | связь | Базовый период тарификации аренды.                                           |

**Статусы**

| Поле               | Тип    | Описание                                                                                                                  |
| ------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| Статус аренды      | список | Этап жизненного цикла: заявка, бронь, в аренде, отмена, завершена, должник, просрочка. Вычисляется автоматически.         |
| Статус оплаты      | список | Ожидает оплаты / оплачено / частично оплачено. Вычисляется из оплаченной суммы и итоговой цены.                           |
| Активна            | флаг   | Заявка считается активной, если есть услуги, позиции, клиент, оплата, депозиты или доставки; иначе скрывается из списков. |
| Удалена (в архиве) | флаг   | Мягкое удаление/архивирование; переключается при архивации.                                                               |

**Сроки**

| Поле                   | Тип        | Описание                                                                                       |
| ---------------------- | ---------- | ---------------------------------------------------------------------------------------------- |
| Плановое начало аренды | дата/время | Планируемая дата и время начала.                                                               |
| Плановый конец аренды  | дата/время | Планируемая дата и время окончания; не может быть раньше начала (проверяется ограничением БД). |
| Фактическое начало     | дата/время | Момент фактической выдачи (по первому действию выдачи).                                        |
| Фактический конец      | дата/время | Момент фактической приёмки/завершения; сбрасывается при возврате позиции в аренду.             |
| Автопродление          | флаг       | Аренда автоматически продлевается посуточно.                                                   |
| Автосписание           | флаг       | Признак автоматического списания.                                                              |

**Длительность**

| Поле                   | Тип          | Описание                                          |
| ---------------------- | ------------ | ------------------------------------------------- |
| Начальная длительность | длительность | Изначальная длительность аренды.                  |
| Расчётная длительность | длительность | Длительность, используемая при расчёте стоимости. |

**Суммы**

| Поле                           | Тип             | Описание                                                                        |
| ------------------------------ | --------------- | ------------------------------------------------------------------------------- |
| Стоимость без скидки           | число (2 знака) | Полная сумма до применения скидок.                                              |
| Итоговая стоимость             | число (2 знака) | Сумма к оплате со скидкой; сравнивается с оплаченной суммой для статуса оплаты. |
| Стоимость инвентаря            | число (2 знака) | Сумма по арендным/продажным позициям без скидки.                                |
| Стоимость инвентаря со скидкой | число (2 знака) | Сумма по позициям после скидки.                                                 |
| Стоимость услуг                | число (2 знака) | Сумма по услугам без скидки.                                                    |
| Стоимость услуг со скидкой     | число (2 знака) | Сумма по услугам после скидки.                                                  |
| Стоимость доставки             | число (2 знака) | Сумма за доставку.                                                              |

**Налоги**

| Поле                 | Тип             | Описание                                            |
| -------------------- | --------------- | --------------------------------------------------- |
| Ставка налога        | число (2 знака) | Процент налога (0–100).                             |
| Налог включён в цену | флаг            | Налог заложен в стоимость, а не добавляется сверху. |
| Сумма налога         | число (2 знака) | Рассчитанная сумма налога.                          |

**Скидки**

| Поле                      | Тип             | Описание                                     |
| ------------------------- | --------------- | -------------------------------------------- |
| Скидка                    | связь           | Применённая скидка/промокод.                 |
| Сумма скидки              | число (2 знака) | Общая сумма скидки по аренде.                |
| Сумма скидки на инвентарь | число (2 знака) | Скидка, отнесённая на позиции инвентаря.     |
| Сумма скидки на услуги    | число (2 знака) | Скидка, отнесённая на услуги.                |
| Совмещать скидки          | флаг            | Разрешено ли комбинировать несколько скидок. |
| Дополнительная скидка     | число (2 знака) | Ручная добавочная скидка.                    |

**Оплата**

| Поле             | Тип             | Описание                                                                                     |
| ---------------- | --------------- | -------------------------------------------------------------------------------------------- |
| Оплаченная сумма | число (2 знака) | Сколько уже оплачено; определяет статус оплаты (>= итоговой цены — оплачено, >0 — частично). |

**Штрафы**

| Поле                 | Тип             | Описание                                                                                                   |
| -------------------- | --------------- | ---------------------------------------------------------------------------------------------------------- |
| Сумма штрафа         | число (2 знака) | Итоговая сумма штрафа за просрочку (автоматический плюс ручной).                                           |
| Автоматический штраф | число (2 знака) | Часть штрафа за просрочку, посчитанная по формуле по всем позициям; пишется только пересчётом сумм аренды. |
| Ручной штраф         | число (2 знака) | Часть штрафа, заданная вручную (ручные штрафы заявки).                                                     |

**Прочее**

| Поле           | Тип        | Описание                                                                |
| -------------- | ---------- | ----------------------------------------------------------------------- |
| Доп. данные    | словарь    | Произвольные дополнительные данные (JSON), в т.ч. идентификатор в Plus. |
| Дата создания  | дата/время | Момент создания записи.                                                 |
| Дата изменения | дата/время | Момент последнего изменения.                                            |

### Позиция инвентаря в аренде

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

**Связи**

| Поле                       | Тип                 | Описание                                                                                                                                       |
| -------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Замена (следующая позиция) | связь 1:1 (на себя) | Ссылка на новую позицию, пришедшую на замену этой; обратная связь называется «предыдущая». У заменённой строки заполнена, у активной — пустая. |
| Аренда (заявка)            | связь               | Заявка, к которой относится позиция; удаление заявки удаляет позиции (каскад).                                                                 |
| Клиент                     | связь               | Клиент позиции; если пуст, берётся клиент заявки.                                                                                              |
| Группа инвентаря           | связь               | Товарная группа, из которой взята единица (для позиций без привязки к конкретной единице).                                                     |
| Единица инвентаря          | связь               | Конкретная арендуемая/продаваемая единица; может быть пустой (групповая позиция).                                                              |
| Склад                      | связь               | Склад, к которому привязана позиция.                                                                                                           |
| Контрагент                 | связь               | Контрагент (поставщик/субарендодатель) позиции.                                                                                                |

**Тип и комплекты**

| Поле                      | Тип          | Описание                                                                    |
| ------------------------- | ------------ | --------------------------------------------------------------------------- |
| Тип позиции               | перечисление | Аренда или продажа; по умолчанию аренда.                                    |
| Комплект                  | связь        | Комплект, в рамках которого добавлена позиция.                              |
| Элемент комплекта         | связь        | Позиция шаблона комплекта, которой соответствует эта строка.                |
| Ключ экземпляра комплекта | текст        | Случайный ключ, объединяющий строки одного собранного экземпляра комплекта. |

**Тариф**

| Поле                        | Тип             | Описание                                                  |
| --------------------------- | --------------- | --------------------------------------------------------- |
| Тариф                       | связь           | Применённый тариф аренды; при удалении тарифа обнуляется. |
| Цена тарифа                 | число (2 знака) | Стоимость за один период тарифа на момент добавления.     |
| Длительность периода тарифа | длительность    | Единица периода тарификации (по умолчанию 1 день).        |

**Скидки**

| Поле   | Тип   | Описание            |
| ------ | ----- | ------------------- |
| Скидка | связь | Применённая скидка. |

**Суммы**

| Поле             | Тип             | Описание                               |
| ---------------- | --------------- | -------------------------------------- |
| Сумма позиции    | число (2 знака) | Итоговая начисленная сумма за позицию. |
| Сумма со скидкой | число (2 знака) | Сумма позиции после применения скидки. |

**Штрафы**

| Поле           | Тип             | Описание                                                             |
| -------------- | --------------- | -------------------------------------------------------------------- |
| Итоговый штраф | число (2 знака) | Общая сумма штрафа по позиции; источник для авто-штрафа пер-позиции. |

**Сроки**

| Поле                | Тип        | Описание                                                                            |
| ------------------- | ---------- | ----------------------------------------------------------------------------------- |
| Плановое начало     | дата/время | Запланированное начало аренды позиции.                                              |
| Плановый конец      | дата/время | Запланированный конец аренды позиции; проверка ограничением: не раньше начала.      |
| Фактическая выдача  | дата/время | Момент фактической выдачи единицы клиенту; заполнение означает, что позиция выдана. |
| Фактическая приёмка | дата/время | Момент фактического возврата единицы; заполнение означает, что позиция принята.     |

**Прочее**

| Поле           | Тип        | Описание                                                                   |
| -------------- | ---------- | -------------------------------------------------------------------------- |
| Кем создана    | связь      | Сотрудник, добавивший позицию.                                             |
| Доп. данные    | JSON       | Произвольные атрибуты; при обмене хранит идентификатор заменённой позиции. |
| Дата создания  | дата/время | Проставляется автоматически.                                               |
| Дата изменения | дата/время | Проставляется автоматически.                                               |

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

*Строка дополнительной услуги (в т.ч. доставки), привязанная к аренде и, при необходимости, к конкретной позиции инвентаря. Через тип связанной услуги участвует в вычислении признака доставки аренды.*

**Связи**

| Поле              | Тип   | Описание                                                 |
| ----------------- | ----- | -------------------------------------------------------- |
| Аренда            | связь | Аренда, к которой относится услуга.                      |
| Клиент            | связь | Клиент по услуге.                                        |
| Позиция инвентаря | связь | Конкретная выданная позиция, к которой привязана услуга. |
| Услуга            | связь | Справочная услуга (её тип определяет доставку).          |
| Исполнитель       | связь | Сотрудник, выполняющий услугу.                           |

**Тариф**

| Поле                | Тип             | Описание                                    |
| ------------------- | --------------- | ------------------------------------------- |
| Тариф               | связь           | Тариф услуги; при смене пересчитывает цену. |
| Цена по тарифу      | число (2 знака) | Зафиксированная цена тарифа.                |
| Длительность тарифа | длительность    | Период тарификации, по умолчанию 1 день.    |

**Сроки**

| Поле      | Тип        | Описание                   |
| --------- | ---------- | -------------------------- |
| Начало    | дата/время | Начало оказания услуги.    |
| Окончание | дата/время | Окончание оказания услуги. |

**Деньги**

| Поле            | Тип             | Описание                   |
| --------------- | --------------- | -------------------------- |
| Цена            | число (2 знака) | Итоговая стоимость услуги. |
| Цена со скидкой | число (2 знака) | Стоимость с учётом скидки. |

**Прочее**

| Поле              | Тип     | Описание                       |
| ----------------- | ------- | ------------------------------ |
| Примечание        | текст   | Дополнительная информация.     |
| Доп. данные       | JSON    | Произвольные служебные данные. |
| История изменений | история | Журнал аудита изменений.       |

### Скидка аренды

*Одна применённая к аренде скидка — по всей аренде, по конкретной позиции инвентаря или по услуге; хранит рассчитанную сумму скидки. Сигналы сохранения и удаления пересчитывают дополнительную скидку аренды. Уровень применения задаётся связями с позицией/услугой и назначением.*

**Связи**

| Поле              | Тип   | Описание                                            |
| ----------------- | ----- | --------------------------------------------------- |
| Аренда            | связь | Аренда, к которой относится скидка.                 |
| Позиция инвентаря | связь | Заполнено — скидка на конкретную позицию инвентаря. |
| Услуга            | связь | Заполнено — скидка на конкретную услугу.            |

**Параметры**

| Поле              | Тип          | Описание                                                                         |
| ----------------- | ------------ | -------------------------------------------------------------------------------- |
| Тип скидки        | перечисление | Скидка по справочнику или ручная.                                                |
| Справочная скидка | связь        | Ссылка на скидку из справочника (процент или фикс. сумма).                       |
| Назначение скидки | перечисление | Куда относится скидка уровня аренды: вся аренда / инвентарь / услуги / доставка. |

**Суммы**

| Поле         | Тип             | Описание                                      |
| ------------ | --------------- | --------------------------------------------- |
| Сумма скидки | число (2 знака) | Итоговая рассчитанная сумма скидки в деньгах. |

**Сроки**

| Поле         | Тип  | Описание                                           |
| ------------ | ---- | -------------------------------------------------- |
| Действует с  | дата | Дата начала действия скидки внутри периода аренды. |
| Действует по | дата | Дата окончания действия скидки.                    |

**График**

| Поле          | Тип             | Описание                                                   |
| ------------- | --------------- | ---------------------------------------------------------- |
| По графику    | флаг            | Скидка распределена по дням графика (фикс. сумма за день). |
| Сумма за день | число (2 знака) | Размер скидки в день для скидки по графику.                |

**Мета**

| Поле        | Тип   | Описание                          |
| ----------- | ----- | --------------------------------- |
| Кем создана | связь | Пользователь, применивший скидку. |
| Причина     | текст | Комментарий/обоснование скидки.   |

### Прибыль (по дням)

*Строка ежедневной прогнозной и фактической выручки по позиции аренды/услуге/доставке/штрафу; наполняется движком пересчёта. Метод пересборки строк считает плановую выручку как тариф за день, прогноз — с учётом скидок, а фактическую — с учётом оплаты.*

**Связи**

| Поле                | Тип   | Описание |
| ------------------- | ----- | -------- |
| Аренда              | связь |          |
| Позиция инвентаря   | связь |          |
| Услуга аренды       | связь |          |
| Доставка            | связь |          |
| Штраф               | связь |          |
| Единица инвентаря   | связь |          |
| Группа инвентаря    | связь |          |
| Комплект            | связь |          |
| Группа комплекта    | текст |          |
| Тариф инвентаря     | связь |          |
| Услуга (справочник) | связь |          |
| Тариф услуги        | связь |          |
| Категория           | связь |          |

**Суммы**

| Поле                     | Тип             | Описание                                                |
| ------------------------ | --------------- | ------------------------------------------------------- |
| Плановая выручка за день | число (2 знака) | Цена без скидок, поделённая на дни.                     |
| Прогноз выручки          | число (2 знака) | Ожидаемая выручка за день с учётом скидок.              |
| Фактическая выручка      | число (2 знака) | Признанная выручка за день с учётом фактической оплаты. |

**Сроки**

| Поле   | Тип        | Описание |
| ------ | ---------- | -------- |
| Начало | дата/время |          |
| Конец  | дата/время |          |

**Индексы**

| Поле       | Тип   | Описание                         |
| ---------- | ----- | -------------------------------- |
| День №     | число | Порядковый номер дня в периоде.  |
| Всего дней | число | Число оплачиваемых дней позиции. |
| Дата       | дата  | Календарная дата строки.         |

### Пересчёт позиций и сумм аренды

*Главная функция движка пересчёта: выражениями заново считает цены, скидки, штрафы и налоги по всем позициям инвентаря и услугам и складывает итоги в саму аренду. Выполняется в транзакции с блокировкой строк; до 15 повторов ради автопродления; в конце ставит задачу пересчёта прибыли по завершении транзакции.*

**Параметры**

| Поле                    | Тип  | Описание                                    |
| ----------------------- | ---- | ------------------------------------------- |
| Пересчитывать инвентарь | флаг | Обновлять ли цены/штрафы позиций инвентаря. |
| Пересчитывать услуги    | флаг | Обновлять ли цены услуг.                    |

**Расчётные аннотации**

| Поле                          | Тип             | Описание                                                                             |
| ----------------------------- | --------------- | ------------------------------------------------------------------------------------ |
| Базовая цена позиции          | число (2 знака) | Тариф × число периодов (для аренды) либо тариф (для продажи/разового).               |
| Цена со скидкой               | число (2 знака) | Базовая цена минус применённые скидки, не ниже нуля.                                 |
| Цена после инвентарной скидки | число (2 знака) | Промежуточная величина в устаревшей (не совмещённой) ветке расчёта скидок.           |
| Скидка уровня аренды          | число (2 знака) | Промежуточная величина в устаревшей ветке.                                           |
| Автоштраф позиции             | число (2 знака) | Штраф за просрочку возврата: тариф × число шагов просрочки, с буфером и округлением. |
| Длительность просрочки        | интервал        | Фактический конец (или сейчас) минус плановый конец минус паузы.                     |
| Дней аренды                   | число           | Число оплачиваемых дней позиции (с учётом выходных/пауз).                            |

### Раскладка скидок по позициям

*Помощник в движке: выражениями вычисляет сумму каждой скидки по её типу (процент/сумма/график) и записывает результат в суммы строк скидок. Разбивает скидки на три набора — по аренде, по инвентарю и по услугам; ручные позиционные скидки не пересчитывает, только скидки уровня аренды и графика.*

**Параметры**

| Поле          | Тип    | Описание                                                    |
| ------------- | ------ | ----------------------------------------------------------- |
| Выходные даты | список | Даты, исключаемые из подсчёта дней (нерабочие дни графика). |

**Расчётные аннотации**

| Поле         | Тип             | Описание                                           |
| ------------ | --------------- | -------------------------------------------------- |
| Сумма скидки | число (2 знака) | Итог по строке скидки, ограниченный ценой позиции. |

### Подзапросы скидок по инвентарю

*Строит подзапросы, вычитающие скидки из цены позиции инвентаря; имеет режим объединения скидок и устаревшую раздельную ветку. Учитывает скидки, привязанные к позиции, и скидки уровня аренды с назначением «вся аренда» или «инвентарь».*

### Подзапросы скидок по услугам

*Строит подзапрос, вычитающий из цены услуги скидки, привязанные к услуге, и скидки уровня аренды с назначением «вся аренда» или «услуги».*

### Задача пересчёта прибыли

*Задача: при необходимости обновляет штрафы и заново раскладывает прибыль аренды по дням. Вызывается из пересчёта позиций и сумм по завершении транзакции.*

| Поле                                   | Тип             | Описание                                                |
| -------------------------------------- | --------------- | ------------------------------------------------------- |
| ID аренды                              | число           | Аренда, для которой считается прибыль.                  |
| Начало периода                         | дата/время      |                                                         |
| Конец периода                          | дата/время      |                                                         |
| Сумма со скидкой (без штрафа/доставки) | число (2 знака) | Основа для дневного прогноза выручки.                   |
| Сумма доставки                         | число (2 знака) |                                                         |
| Сумма штрафов                          | число (2 знака) |                                                         |
| Сумма по инвентарю                     | число (2 знака) |                                                         |
| Сумма по услугам                       | число (2 знака) |                                                         |
| Оплачено                               | число (2 знака) | Определяет фактическую прибыль по дням.                 |
| Обновить штрафы                        | флаг            | Запускать ли пересчёт штрафов перед раскладкой прибыли. |

### Смена периода тарификации позиций

*Пересчитывает тариф/цену/длительность для набора единиц (и комплектов) при смене периода тарификации. Возвращает формы позиций с новым тарифом; записи в БД не создаёт.*

| Поле                | Тип             | Описание                                          |
| ------------------- | --------------- | ------------------------------------------------- |
| Период тарификации  | связь           | Новый период; допускает пустое значение.          |
| Единицы инвентаря   | список чисел    | Идентификаторы единиц вне комплектов.             |
| Комплекты           | список          | Пары комплект + список входящих единиц.           |
| Тариф               | число           | Идентификатор подобранного тарифа (в результате). |
| Цена тарифа         | число (2 знака) |                                                   |
| Длительность тарифа | интервал        |                                                   |

### Сводка сумм по арендам

*Endpoint предпросмотра итогов: агрегирует по отфильтрованным арендам суммы цены, цены со скидкой, налога, оплаты и задолженности. Фильтрация по точкам проката, периоду и поиску; без пагинации.*

| Поле                | Тип             | Описание                                             |
| ------------------- | --------------- | ---------------------------------------------------- |
| Сумма цены          | число (2 знака) | Сумма стоимостей без скидки.                         |
| Сумма со скидкой    | число (2 знака) | Сумма итоговых стоимостей.                           |
| Сумма налога        | число (2 знака) | Сумма налогов.                                       |
| Сумма оплат         | число (2 знака) | Сумма оплаченных сумм.                               |
| Сумма задолженности | число (2 знака) | Сумма разностей «итоговая стоимость минус оплачено». |

## Статусы и справочники

### Тип скидки аренды

* По справочнику
* Ручная сумма

### Назначение скидки

* Вся аренда
* Инвентарь
* Услуги
* Доставка

### Способ расчёта скидки

* Процент
* Сумма
