Месторасположение отчёта: Отчёты → Сделки → Реестр расторгнутых договоров
Отчёт «Реестр расторгнутых договоров» предназначен для анализа сделок, по которым произошло расторжение договора. Он позволяет руководству и финансово-коммерческому блоку контролировать отток, отслеживать суммы возвратов покупателям и фиксировать причины расторжений в разрезе объектов и менеджеров.
#Работа с отчётом
#Фильтры
- Дата — период, по которому формируется выборка. Нажмите на тип даты, чтобы изменить событие, по которому будут отобраны сделки:
- Дата договора — дата подписания основного договора.
- Дата расторжения — фактическая дата расторжения сделки.
- Дата подписания договора — дата подписания в системе.
- Дата согласования договора — дата согласования договора.
- Дата регистрации расторжения — дата государственной регистрации расторжения.
- ЖК/Дом — ограничивает выборку по жилому комплексу или конкретному строению.
- Категория объекта — позволяет выбрать один или несколько типов объектов: Квартира, Машино-место, Малоэтажка, Земельный участок, Кладовая, Коммерческая недвижимость.
Нажмите Сформировать для построения отчёта. Для выгрузки данных используйте кнопку → XLS.
#Структура отчёта
Отчёт представляет собой построчный реестр расторгнутых сделок. Каждая строка соответствует одному расторжению. В нижней строке «Итого» суммируются площадь, стоимость по договору и сумма оплаченных средств.
Блок «Сумма и дата возврата» отображает финансовые операции возврата средств покупателю по данной сделке. На экране каждая операция показывается отдельной строкой с датой, суммой и статусом, а внизу — подытог «Итого» по сделке. Возможные статусы операции:
- Проведено — возврат фактически выплачен.
- К оплате — возврат запланирован, но ещё не проведён.
#Технический паспорт отчёта
{width=70%}
#Данные в системе
Основа отчёта — сделки в статусе Сделка расторгнута (код 140). Данные берутся из таблицы estate_shows с обязательными связями к estate_buys, estate_sells, contacts (покупатель и продавец) и users (менеджер). Данные о площадях и расположении объекта подтягиваются через EAV-атрибуты объекта продажи. Финансовые операции возвратов формируются отдельным запросом из таблицы finances.
Тип договора (2), Предварительный договор (3), № договора (4), Дата договора (5)
Данные хранятся в estate_shows. Предварительный договор формируется объединением номера и даты предварительного договора и может быть заполнен для любого типа договора при наличии данных в сделке.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
es.agreement_type AS `Тип договора`,
CONCAT(
IFNULL(es.preliminary_number, ''),
IF(es.preliminary_date IS NOT NULL,
CONCAT(' от ', DATE_FORMAT(es.preliminary_date, '%d.%m.%Y')), '')
) AS `Предварительный договор`,
es.agreement_number AS `№ договора`,
es.agreement_date AS `Дата договора`
FROM estate_shows es
WHERE es.status = 140;
Район (6), № дома (7), № объекта (8), Этаж (9), Категория объекта (10), Кол-во комнат (11)
Расположение и характеристики объекта хранятся в EAV-атрибутах объекта продажи (estate_sells). Поле «Кол-во комнат» заполняется только для категории flat.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
es.agreement_number AS `№ договора`,
sell.category AS `Категория объекта`
FROM estate_shows es
INNER JOIN estate_sells sell ON es.estate_sell_id = sell.id
WHERE es.status = 140;
Продавец (12), Покупатель (13)
Данные хранятся в таблице contacts. Связь с сделкой устанавливается через estate_shows:
SELECT
seller.name AS `Продавец`,
buyer.name AS `Покупатель`
FROM estate_shows es
LEFT JOIN contacts seller ON es.contacts_sell_id = seller.id
LEFT JOIN contacts buyer ON es.contacts_buy_id = buyer.id
WHERE es.status = 140;
Площадь общ. проектная (14), Полная площадь (15), Приведённая площадь (16)
Три типа площадей хранятся в EAV-атрибутах объекта и имеют следующий смысл:
- Площадь общ. проектная — базовая проектная площадь объекта из карточки объекта (
estate_area). - Полная площадь — сумма всех помещений без понижающих коэффициентов, включая балконы и лоджии (
estate_area_max_custom). - Приведённая площадь — площадь с коэффициентами для балконов (0,3) и лоджий (0,5) (
estate_area_reduced).
В строке «Итого» суммируется значение столбца Площадь общ. проектная.
Цена за м² по договору (17), Стоимость объекта по договору (18)
Стоимость сделки и расчётная цена за квадратный метр хранятся в estate_shows:
SELECT
es.deal_sum AS `Стоимость объекта по договору`,
ROUND(es.deal_sum / NULLIF(es.deal_area, 0), 2) AS `Цена за м² по договору`
FROM estate_shows es
WHERE es.status = 140;
Оплачено, ₽ (19)
Суммарный объём поступивших платежей по сделке. Берётся из таблицы finances — суммируются приходные операции по данной сделке в статусах «Проведено» и «Зарезервировано».
SELECT
es.agreement_number AS `№ договора`,
SUM(f.summa) AS `Оплачено`
FROM estate_shows es
LEFT JOIN finances f ON f.estate_shows_id = es.id
AND f.is_income = 1
AND f.summa > 0
AND f.is_ignore_inout = 0
WHERE es.status = 140
GROUP BY es.id, es.agreement_number;
Сумма и дата возврата (20)
Расходные финансовые операции, соответствующие возврату средств покупателю. Берутся из finances с условием is_income = 0 и is_income_lower = 1.
SELECT
f.date_added AS `Дата возврата`,
f.summa AS `Сумма возврата`,
f.status AS `Статус`
FROM finances f
INNER JOIN estate_shows es ON f.estate_shows_id = es.id
WHERE es.status = 140
AND f.is_income = 0
AND f.is_income_lower = 1
AND f.summa > 0
AND f.is_ignore_inout = 0
ORDER BY es.id, f.date_added;
Дата снятия залога (21)
Хранится в estate_shows.deposit_date:
es.deposit_date AS `Дата снятия залога`
Фактическая дата расторжения сделки (22), Дата регистрации расторжения (23), Номер регистрации расторжения (24)
Все три поля хранятся в estate_shows:
es.deal_date_cancelled AS `Фактическая дата расторжения`,
es.deal_date_cancelled_reg AS `Дата регистрации расторжения`,
es.deal_cancel_reg_agreement_number AS `Номер регистрации расторжения`
Менеджер сделки (25)
Ответственный менеджер берётся из таблицы users через estate_shows.users_id:
SELECT
u.name AS `Менеджер сделки`
FROM estate_shows es
LEFT JOIN users u ON es.users_id = u.id
WHERE es.status = 140;
Причина расторжения (26)
Хранится в estate_shows.deal_cancelled_reason:
es.deal_cancelled_reason AS `Причина расторжения`
Итоговый запрос
Полный запрос для получения данных реестра в MacroData:
SELECT
es.agreement_type AS `Тип договора`,
CONCAT(
IFNULL(es.preliminary_number, ''),
IF(es.preliminary_date IS NOT NULL,
CONCAT(' от ', DATE_FORMAT(es.preliminary_date, '%d.%m.%Y')), '')
) AS `Предварительный договор`,
es.agreement_number AS `№ договора`,
es.agreement_date AS `Дата договора`,
sell.category AS `Категория объекта`,
seller.name AS `Продавец`,
buyer.name AS `Покупатель`,
es.deal_sum AS `Стоимость объекта по договору`,
ROUND(es.deal_sum / NULLIF(es.deal_area, 0), 2) AS `Цена за м² по договору`,
es.deposit_date AS `Дата снятия залога`,
es.deal_date_cancelled AS `Фактическая дата расторжения`,
es.deal_date_cancelled_reg AS `Дата регистрации расторжения`,
es.deal_cancel_reg_agreement_number AS `Номер регистрации расторжения`,
u.name AS `Менеджер сделки`,
es.deal_cancelled_reason AS `Причина расторжения`
FROM estate_shows es
INNER JOIN estate_sells sell ON es.estate_sell_id = sell.id
LEFT JOIN contacts seller ON es.contacts_sell_id = seller.id
LEFT JOIN contacts buyer ON es.contacts_buy_id = buyer.id
LEFT JOIN users u ON es.users_id = u.id
WHERE es.status = 140
ORDER BY es.deal_date_cancelled DESC;
Строка «Итого»
В строке «Итого» суммируются три показателя:
- Площадь общ. проектная — суммарная проектная площадь по всем расторгнутым сделкам в выборке.
- Стоимость объекта по договору — суммарная стоимость расторгнутых сделок.
- Оплачено, ₽ — суммарный объём поступивших платежей по всем сделкам в выборке.