WITH sub AS (
SELECT DISTINCT
contract.number AS contract_number,
sh.number AS sh_number,
i.last_name,
i.first_name,
i.middle_name,
to_char(i.birth_date, 'DD.MM.YYYY') AS birth_date,
i.insurance_number,
i.certificate_series,
i.certificate_number,
case
when i.sex = 'F' then 'Ж'
else 'М'
end AS sex,
i.id
FROM ourpension.application_termination_contract atc
left join ourpension.application_termination_contract_data atcd
on atcd.application_termination_contract_id = atc.id
LEFT JOIN ourpension.sharer sh
ON sh.id = atcd.sharer_id
LEFT JOIN ourpension.contract contract
ON contract.id = sh.contract_id
left join ourpension.individual i
on sh.individual_id = i.id
left join ourpension.uv_activity_type uat
on uat.activity_eng_type = contract.service_type
and uat.client_type = contract.client_type
WHERE atc.id is not null
and (uat.activity_rus_type = 'ПДС' or uat.activity_rus_type = 'НПО')
)
SELECT
sub.contract_number,
sub.sh_number,
sub.last_name,
sub.first_name,
sub.middle_name,
sub.birth_date,
sub.insurance_number,
sub.certificate_series,
sub.certificate_number,
sub.sex,
sub.id
FROM sub
WHERE 1=1
#if
(("$!fl_first_name" == "")
&& ("$!fl_last_name" == "")
&& ("$!fl_middle_name" == "")
&& ("$!cert_number" == "")
&& ("$!cert_series" == "")
&& ("$!insurance_number_fl" == "")
&& ("$!fl_contract_number" == "")
&& ("$!fl_birth_date" == "")
&& ("$!fl_sh_number" == ""))
and 1 = 0
#end
#if ("$!fl_first_name" != "")
and sub.first_name ILIKE '%' || :fl_first_name || '%'
#end
#if ("$!fl_last_name" != "")
and sub.last_name ILIKE '%' || :fl_last_name || '%'
#end
#if ("$!fl_middle_name" != "")
and sub.middle_name ILIKE '%' || :fl_middle_name || '%'
#end
#if ("$!cert_number" != "")
and sub.certificate_number ILIKE '%' || :cert_number || '%'
#end
#if ("$!cert_series" != "")
and sub.certificate_series ILIKE '%' || :cert_series || '%'
#end
#if ("$!insurance_number_fl" != "")
and sub.insurance_number ILIKE '%' || :insurance_number_fl || '%'
#end
#if ("$!fl_contract_number" != "")
and sub.contract_number ILIKE '%' || replace(:fl_contract_number, chr(92), chr(92) || chr(92)) || '%' ESCAPE chr(92)
#end
#if ("$!fl_birth_date" != "")
and sub.birth_date = :fl_birth_date
#end
#if ("$!fl_sh_number" != "")
and sub.sh_number ILIKE '%' || :fl_sh_number || '%'
#end