Необходимо скорректировать скрипт с учетом требований + убрать закоммеченные строки + заменить константы дат для params на передаваемые параметры.
Сервис profiles: изменен регистр для атрибута pd.citizenship
with params as (
select '2026-03-31'::date at time zone 'gmt+03' as end_date
)
select u.id
, case u.type
when 'LEGAL' then lp.title
when 'ENTREPRENEUR' then concat_ws(' ', pd.last_name, pd.first_name, pd.second_name)
when 'INDIVIDUAL' then concat_ws(' ', pd.last_name, pd.first_name, pd.second_name)
end as title
, case u.type
when 'LEGAL' then 'ЮЛ'
when 'ENTREPRENEUR' then 'ФЛ'
when 'INDIVIDUAL' then 'ФЛ'
end as type_name
, case
when u.type = 'LEGAL' and p.legal_type = 'resident' then 'Резидент'
--when u.type in ('INDIVIDUAL', 'ENTREPRENEUR') and pd.citizenship = 'ru' then 'Резидент'
when u.type in ('INDIVIDUAL', 'ENTREPRENEUR') and pd.citizenship = 'RU' then 'Резидент'
else 'Нерезидент'
end as resident_status
, case u.type
when 'LEGAL' then lp.inn
when 'ENTREPRENEUR' then pd.inn
when 'INDIVIDUAL' then pd.inn
end as inn
, p.report_okato
, 'Нет' as qualified
, null as qualified_date
, null as disqualified_date
from params, users u
inner join profile p on p.user_id = u.id and p.type = u.type
left join individual_profile ip on ip.id = p.id
left join entrepreneur_profile ep on ep.id = p.id
left join legal_profile lp on lp.id = p.id
left join personal_data pd on pd.id = coalesce(ip.personal_data_id, ep.personal_data_id)
where u.type in ('LEGAL', 'ENTREPRENEUR', 'INDIVIDUAL')
and p.status = 'APPROVED'
and p.created_at <= params.end_date
;
Сервис investor-registry: добавлен фильтр по статусу записи, изменен атрибут по дате присвоения/снятия квалификации.
ВАЖНО!!! Логику определения статуса квалификации и дат его изменения нужно переиспользовать для отчетов 1_users.
*Также было обнаружено, что в итоговом отчете не заполняются столбцы Дата присвоения квалификации и Дата снятия квалификации; необходимо для заполнения использовать значение qualified_updated_at*
with params as (
select '2026-03-31'::date at time zone 'gmt+03' as end_date
)
select a.user_uuid as user_id
, a.application_type = 'inclusion' as is_qualified
, a.created_at
, a.updated_at
– новая дата присвоения квалификации
, coalesce(a.updated_at, a.created_at) as qulififed_updated_at
from params, applications a
where a.application_type in ('inclusion', 'exclusion')
/* and a.created_at = (
select max(a2.created_at)
from applications a2
where a2.user_uuid = a.user_uuid
and a2.application_type = a.application_type
and a2.created_at <= params.end_date
)*/
--добавление нового фильтра по статусу и по реальной дате присвоения квалификации
and a.status ='approved'
and coalesce(a.updated_at, a.created_at) = (
select max(coalesce(a2.updated_at, a2.created_at))
from applications a2
where a2.user_uuid = a.user_uuid
and a2.application_type = a.application_type
and a2.status = 'approved'
and coalesce(a2.updated_at, a2.created_at) <= params.end_date
)
;