Месторасположение: Отчёты → Финансы → Реестр просроченных платежей

Отчёт показывает запланированные платежи по сделкам, срок которых уже наступил, но оплата не поступила. Используется для контроля дебиторской задолженности и планирования работы с клиентами.
#Работа с отчётом
#Фильтры
Дата регистрации (с/по) — универсальный диапазонный фильтр. По умолчанию фильтрует по дате регистрации договора в Росреестре. Тип даты можно изменить в выпадающем списке рядом с полем:
- Дата платежа — плановая дата оплаты из графика;
- Дата проведения сделки;
- Дата сдачи в росреестр;
- Дата регистрации — дата регистрации договора (по умолчанию);
- Дата начала сделки.
ЖК/Дом — отбор по жилому комплексу или конкретному дому.
Тип операции — отбор по типу финансовой операции.
Источник денег — отбор по способу оплаты (безналичные, наличные и т. д.).
Клиент — отбор по плательщику.
Менеджер сделки — отбор по ответственному менеджеру.
Статус обзвона — отбор по результату прозвона клиента: Обзвон не производился, Обзвон проведён, Недозвон, Нет номера.
Номер объекта — отбор по идентификатору объекта недвижимости.
Теги платежей — отбор по тегам, назначенным платежу.
Есть посредник — отбор сделок с агентом или агентством.
Программы покупки — отбор по программе покупки (ипотека, рассрочка и т. д.).
Сотрудник сопровождения сделки — отбор по второму менеджеру сделки.
#Опции
Сделка в работе / Проведена — показывает только объекты в статусах Сделка в работе и Сделка проведена.
Договор отмечен к расторжению — показывает только сделки с установленным флагом «К расторжению».
Платёж обещан — показывает только платежи с признаком обещанной оплаты.
Показывать агента — добавляет в таблицу столбец с именем агента.
Показывать агентство — добавляет в таблицу столбец с названием агентства.

Расширенная статистика: группировать по клиенту и объекту — отображает сводную таблицу над основной. В ней просроченные платежи сгруппированы по клиентам и объектам с указанием суммарной задолженности и диапазона просрочки в днях. Таблица применяет те же фильтры, что и основной отчёт. Рядом с кнопкой → XLS появляется кнопка Скачать расширенную статистику для выгрузки сводки в Excel.

#Структура отчёта
Каждая строка — один просроченный платёж из графика. Строки с установленным флагом «К расторжению» выделены красным фоном.

(1) # платежа — номер платежа со ссылкой на его карточку и плановой датой оплаты. Под датой — количество дней просрочки и метки («ОБ» — обещанный платёж).
(2) Платёж — название платежа со ссылкой на карточку, телефон плательщика и статус обзвона. «Обзвон не производился» означает, что менеджер ещё не зафиксировал результат прозвона по данному платежу.
(3) Сумма платежа — плановая сумма платежа по графику.
(4) К расторжению — редактируемый флаг: отмечает сделку для последующего расторжения. Чекбокс доступен пользователям с правом на расторжение; остальные видят текст «Расторгнуть!», если флаг уже установлен.
(5) Объект сделки — номер и адрес объекта.
(6) Номер договора — номер основного договора.
(7) Дата сдачи в росреестр — фактическая дата отправки документов на регистрацию.
(8) Дата регистрации — дата регистрации договора в Росреестре.
(9) Менеджер — ответственный менеджер по сделке.
(10) Сотрудник сопровождения — второй менеджер сделки.
(11) Программа покупки — ипотека, рассрочка и т. д.
(12) Сумма по договору — стоимость объекта по договору. Заполняется только для объектов в статусах Сделка в работе и Сделка проведена.
(13) Цена 1 м² прайс — текущая прайсовая цена объекта за квадратный метр.
(14) Цена 1 м² факт — фактическая цена за квадратный метр, рассчитанная из суммы договора.
(15) Факт. оплачено — суммарная фактически поступившая оплата по сделке объекта. Заполняется только для объектов в статусах Сделка в работе и Сделка проведена.
(16) Общая сумма просрочки — суммарная просроченная задолженность по всем платежам объекта, а не только по текущей строке. Одинакова для всех строк одного объекта.
(17) Тип операции — тип финансовой операции.
(18) Источник денег — способ оплаты.
(19) Описание — комментарий к платежу.
Кнопка → XLS выгружает основной отчёт в Excel.
#Технический паспорт отчёта
#Условия попадания в отчёт
Платёж включается в отчёт при одновременном выполнении условий:
finances.status = 3— статус «К оплате» (платёж запланирован и не проведён);- тип операции входит в доходные (
is_income,is_income_lower,is_other_income,is_commission,is_arles); finances.date_to < сегодня— плановая дата оплаты уже прошла.
Частичная оплата не учитывается: платёж либо проведён полностью (status=1) и в отчёт не попадает, либо стоит в плане целиком.
Ограничение видимости. Менеджер без права estate.manage видит только платежи по своим сделкам.
Плательщик. Для объектов в статусе Бронь и «дальше» — только плательщик, совпадающий с покупателем сделки; для объектов «до брони» — любой плательщик из finances_ops.
#Данные в системе
Основные данные платежей, столбцы (1), (2), (3), (6), (7), (8), (9), (10), (12), (17)
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
f.id AS payment_id,
f.date_to AS date_to,
DATEDIFF(CURDATE(), f.date_to) AS days_overdue,
f.summa AS payment_sum,
ft.types_name AS operation_type,
ed.agreement_number AS agreement_number,
ed.justice_date_send AS justice_date_send,
ed.justice_date AS justice_date,
ed.deal_sum AS deal_sum,
u.users_name AS manager,
u_co.users_name AS co_manager
FROM finances f
JOIN finances_types ft
ON ft.id = f.types_id
AND ft.company_id = f.company_id
AND 1 IN (ft.is_income, ft.is_income_lower, ft.is_other_income, ft.is_commission, ft.is_arles)
LEFT JOIN estate_deals ed
ON ed.deal_id = f.deal_id
AND ed.company_id = f.company_id
LEFT JOIN users u ON u.id = ed.deal_manager_id
LEFT JOIN users u_co ON u_co.id = ed.deal_co_manager_id
WHERE f.company_id = {{company_id}}
AND f.status = 3
AND f.date_to < CURDATE()
ORDER BY f.date_to DESC, f.id
В запросах замените
{{company_id}}на числовой идентификатор компании.
Объект сделки (5), Цена 1 м² прайс (13), Цена 1 м² факт (14)
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
f.id AS payment_id,
es.estate_sell_id AS estate_id,
es.geo_flatnum AS flatnum,
ROUND(es.estate_price / NULLIF(es.estate_area, 0)) AS price_m2_pricelist,
ROUND(ed.deal_sum / NULLIF(es.estate_area, 0)) AS price_m2_fact
FROM finances f
JOIN finances_types ft
ON ft.id = f.types_id
AND ft.company_id = f.company_id
AND 1 IN (ft.is_income, ft.is_income_lower, ft.is_other_income, ft.is_commission, ft.is_arles)
LEFT JOIN estate_deals ed
ON ed.deal_id = f.deal_id AND ed.company_id = f.company_id
LEFT JOIN estate_sells es
ON es.estate_sell_id = ed.estate_sell_id AND es.company_id = f.company_id
WHERE f.company_id = {{company_id}}
AND f.status = 3
AND f.date_to < CURDATE()
Статус обзвона (2), источник денег (18), описание (19), программа покупки (11)
Данные не выгружаются в MacroData.
#Расчётные данные
Дни просрочки (1)
DATEDIFF(CURDATE(), finances.date_to) AS days_overdue
Общая сумма просрочки (16) — агрегат по объекту: сумма всех просроченных платежей по сделке объекта. Одно значение повторяется во всех строках одного объекта; в строке «Итого» дедуплицируется по объекту.
SELECT
ed.estate_sell_id,
SUM(f.summa) AS finances_overdue
FROM finances f
JOIN finances_types ft
ON ft.id = f.types_id
AND ft.company_id = f.company_id
AND 1 IN (ft.is_income, ft.is_other_income, ft.is_arles)
LEFT JOIN estate_deals ed
ON ed.deal_id = f.deal_id AND ed.company_id = f.company_id
WHERE f.company_id = {{company_id}}
AND f.status = 3
AND f.date_to < CURDATE()
GROUP BY ed.estate_sell_id
Факт. оплачено (15) — агрегат по объекту: сумма проведённых доходных операций по текущему графику сделки. Внимание: в строке «Итого» это значение суммируется без дедупликации по объекту — при нескольких просроченных платежах по одному объекту итог задваивается.
SELECT
ed.estate_sell_id,
SUM(f.summa) AS finances_income
FROM finances f
JOIN finances_types ft
ON ft.id = f.types_id
AND ft.company_id = f.company_id
AND 1 IN (ft.is_income, ft.is_income_lower, ft.is_other_income, ft.is_commission, ft.is_arles)
LEFT JOIN estate_deals ed
ON ed.deal_id = f.deal_id AND ed.company_id = f.company_id
WHERE f.company_id = {{company_id}}
AND f.status = 1
AND f.is_over_deal_sum = 0
AND ed.deal_status IN (110, 150)
GROUP BY ed.estate_sell_id