Модель данных
Оплата — центральная сущность финансового модуля. Одна запись всегда относится ровно к одному объекту бизнеса.Оплата не может одновременно относиться к аренде, продаже, мастерской и тех.обслуживанию — при указании одного объекта
остальные обнуляются. Хотя бы один объект указать обязательно (это проверяется ещё до основной валидации).
Логика и побочные эффекты
Знак суммы и подбор счёта
- Знак задаёт направление, а не пользователь. При каждом сохранении оплаты сумма нормализуется: расход всегда становится отрицательным, приход — положительным. Вручную заданный знак игнорируется.
- Счёт подставляется по виду оплаты. Если у оплаты указан вид оплаты, система берёт первый счёт, в перечне привязанных видов которого этот вид присутствует, и подставляет его — перезаписывая явно выбранный счёт.
Проверки суммы при создании
- Продажа: сумма не может превышать остаток к оплате по продаже; дополнительно проверяется наличие продаваемого инвентаря на складе.
- Аренда: сумма не может превысить остаток по аренде (цена со скидкой + штрафы − уже оплачено), а при оплате депозита — остаток по депозиту. При включённой настройке переплаты эти проверки пропускаются.
- Мастерская: сумма не может превышать остаток по задаче.
- Распределение: если оно передано по аренде и непусто, сумма всех частей обязана точно совпадать с суммой оплаты (см. «Распределение, назначение платежа и контрагенты»).
Проверка достаточности инвентаря на складе выполняется только для оплат по продаже, но не по аренде. Проверка равенства
распределения сумме оплаты срабатывает только для оплат по аренде.
Пересчёт оплаченности заказа
После любого сохранения или удаления оплаты автоматически пересчитываются суммы по связанному объекту:- по аренде — обновляется оплаченность заказа (сумма всех успешных платежей аренды, не привязанных к назначению платежа);
- по продаже — дочерние расчёты продажи;
- по задаче мастерской — расчёты задачи.
Уведомления
- О поступлении — при создании новой успешной оплаты с положительной суммой; текст зависит от объекта. Депозитные оплаты по аренде намеренно не порождают такое уведомление.
- Об удалении — при удалении оплаты, с текстом по соответствующему объекту.
- О возврате — сразу после оформления возврата, с указанием объекта и причины (причина подставляется вместо комментария; подробнее — в разделе «Переводы между счетами и возвраты»). Возвраты по залогам из этого правила исключены — как и приход залога, они уведомлений не порождают.
Уведомление о поступлении не отправляется, если сумма не положительна, если это не новая запись или если статус не «успешно».
Поэтому для оплаты возврата (отрицательная сумма) обычное уведомление о поступлении не срабатывает.
Как оплаты превращаются в прибыль
Оплата не пишет прибыль напрямую. При её сохранении или удалении срабатывает граница «оплата → прибыль»:1
Пересчёт оплаченной суммы
Система заново собирает оплаченную сумму по аренде (или продаже) как сумму успешных платежей, не привязанных к назначению
платежа, округлённую до целого.
2
Фоновый пересчёт прибыли
Запускается отложенная задача: ей передаются период аренды, цены по группам (инвентарь, услуги, доставка, штрафы) и общая
оплаченная сумма.
3
Раскладка по дням «по остатку»
Оплаченная сумма раскладывается по дням и позициям своим алгоритмом: заводится «остаток», равный оплаченной сумме, и
последовательно расходуется на предметы проката → услуги → доставку → штрафы. По каждой позиции и дню берётся минимум из
планового дневного значения и оставшегося остатка.
4
Обновление окупаемости
По каждой затронутой единице инвентаря пересчитывается накопленная окупаемость — прибыль относительно закупочной цены.
Связанные страницы
Глоссарий: Оплата
Полный перечень полей оплаты и моделей пересчёта прибыли.
Прибыль и окупаемость
Как оплаченная сумма раскладывается по дням и сворачивается в окупаемость инвентаря.
Счета, виды оплаты и статьи
Как подбирается счёт и пересчитывается его баланс.
Депозиты, штрафы и транзакции
Депозиты и штрафы по аренде, к которым привязываются оплаты.
Жизненный цикл аренды
Как статусы аренды влияют на оплаченность и графики платежей.
Фоновые процессы
Задачи пересчёта оплаты, прибыли и графиков.