Загрузка данных
with cte as (
select
2 as cid,
0 as pid,
'текущие обязательства' as name,
'' as strateg,
sum(case
when account = '38302'
and contract_class_code = 'INS'
and contract_model_label = 'VFA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end) as sVFA_рu,
sum(case
when account = '38902'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end) as ВВА_рu,
sum(case
when account in ('39002', '39022', '39023', '39024')
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end) as iVFA_рu,
sum(case
when account = '38302'
and coalesce(contract_class_code, 'INS') = 'INS'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end) as sVFA_bu,
sum(case
when account = '38902'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end) as ВВА_bu,
sum(case
when account in ('39002', '39022', '39023', '39024')
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end) as iVFA_bu
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
3, 0, 'обязательства к выплате', '',
sum(case
when account = '38311.1'
and contract_class_code = 'INS'
and contract_model_label = 'VFA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '38911.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account in ('39011.1', '39032.1', '39033.1', '39037.1')
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '38311.1'
and coalesce(contract_class_code, 'INS') = 'INS'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '38911.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account in ('39011.1', '39032.1', '39033.1', '39037.1')
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
4, 0, 'обязательства, не исполненные в срок', '',
sum(case
when account = '38311.2'
and contract_class_code = 'INS'
and contract_model_label = 'VFA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '38911.2'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account in ('39011.2', '39032.2', '39033.2', '39037.2')
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '38311.2'
and coalesce(contract_class_code, 'INS') = 'INS'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '38911.2'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account in ('39011.2', '39032.2', '39033.2', '39037.2')
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
5, 0, 'Страховой резерв', '',
null,
sum(case
when account = '39703'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '39703'
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '39703'
and coalesce(contract_class_code, 'INS') = 'INS'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '39703'
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
8, 0, 'Незавершенные (неопознанные) платежи', '',
null,
sum(case
when account = '48309'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48309'
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48309'
and coalesce(contract_class_code, 'INS') = 'INS'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48309'
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
9, 0, 'Расчеты по пенсионным взносам (переплаты)', '',
null,
sum(case
when account = '48306.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48306.3'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48306.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48306.3'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
10, 0, 'Расчеты по пенсионным взносам с ФЛ', '',
null,
sum(case
when account = '48301.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48301.3'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48301.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48301.3'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
11, 0, 'Расчеты по пенсионным взносам с ЮЛ', '',
null,
sum(case
when account = '48303.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48303.3'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48303.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48303.3'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
13, 0, 'Незавершенные (неопознанные) платежи', '',
null,
sum(case
when account = '48310'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48310'
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48310'
and coalesce(contract_class_code, 'INS') = 'INS'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48310'
and coalesce(contract_class_code, 'INV') = 'INV'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
14, 0, 'Расчеты по выплатам по договорам', '',
null,
sum(case
when account = '48305.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48305.3'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48305.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48305.3'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
15, 0, 'Расчеты по пенсионным взносам с ФЛ', '',
null,
sum(case
when account = '48302.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48302.3'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48302.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48302.3'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
union all
select
16, 0, 'Расчеты по пенсионным взносам с ЮЛ', '',
null,
sum(case
when account = '48304.1'
and contract_class_code = 'INS'
and contract_model_label = 'BBA'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
sum(case
when account = '48304.3'
then abs(coalesce(sum_dt_pu, 0) - coalesce(sum_ct_pu, 0))
end),
null,
sum(case
when account = '48304.1'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end),
sum(case
when account = '48304.3'
then abs(coalesce(sum_dt_bu, 0) - coalesce(sum_ct_bu, 0))
end)
from back_office.report_conformity_pu_bu_detail
where report_conformity_pu_bu_id = $P{id}
),
cte_gr as (
select
1 as cid, 0 as pid,
'РППО, итого' as name, '' as strateg,
sum(svfa_рu) as svfa_рu,
sum(ВВА_рu) as ВВА_рu,
sum(ivfa_рu) as ivfa_рu,
sum(svfa_bu) as svfa_bu,
sum(ВВА_bu) as ВВА_bu,
sum(ivfa_bu) as ivfa_bu
from cte
where cid in (2, 3, 4)
union all
select
7, 0, 'Дебиторская задолженность, итого', '',
sum(svfa_рu),
sum(ВВА_рu),
sum(ivfa_рu),
sum(svfa_bu),
sum(ВВА_bu),
sum(ivfa_bu)
from cte
where cid in (8, 9, 10, 11)
union all
select
12, 0, 'Кредиторская задолженность, итого', '',
sum(svfa_рu),
sum(ВВА_рu),
sum(ivfa_рu),
sum(svfa_bu),
sum(ВВА_bu),
sum(ivfa_bu)
from cte
where cid in (13, 14, 15, 16)
),
cte_gr_gr as (
select
0 as cid, 0 as pid,
'ПЕНСИОННЫЕ ОБЯЗАТЕЛЬСТВА по НПО, итого' as name,
'' as strateg,
sum(svfa_рu) as svfa_рu,
sum(ВВА_рu) as ВВА_рu,
sum(ivfa_рu) as ivfa_рu,
sum(svfa_bu) as svfa_bu,
sum(ВВА_bu) as ВВА_bu,
sum(ivfa_bu) as ivfa_bu
from cte
where cid in (1, 5)
union all
select
6, 0, 'РАСЧЕТЫ ПО ДОГОВОРАМ НПО', '',
sum(case when cid = 12 then svfa_рu * -1 else svfa_рu end),
sum(case when cid = 12 then ВВА_рu * -1 else ВВА_рu end),
sum(case when cid = 12 then ivfa_рu * -1 else ivfa_рu end),
sum(case when cid = 12 then svfa_bu * -1 else svfa_bu end),
sum(case when cid = 12 then ВВА_bu * -1 else ВВА_bu end),
sum(case when cid = 12 then ivfa_bu * -1 else ivfa_bu end)
from cte_gr
where cid in (7, 12)
),
cte_ps as (
select
1 as cid,
row_number() over (
order by
g.uidpensionscheme,
g.pension_scheme_id,
g.uidsubtypeactivity,
g.strategy_id
) as pid,
coalesce(
ps_id.name,
ps_uid.name,
case
when g.pension_scheme_id is null
and nullif(btrim(g.uidpensionscheme), '') is null
then 'Пенсионная схема не указана'
else 'Пенсионная схема не сопоставлена'
end
) as name,
coalesce(
st_id.name,
st_uid.name,
case
when g.strategy_id is null
and nullif(btrim(g.uidsubtypeactivity), '') is null
then 'Стратегия не указана'
else 'Стратегия не сопоставлена'
end
) as strateg,
g.svfa_рu,
g.ВВА_рu,
g.ivfa_рu,
g.svfa_bu,
g.ВВА_bu,
g.ivfa_bu
from (
select
rd.pension_scheme_id,
rd.uidpensionscheme,
rd.strategy_id,
rd.uidsubtypeactivity,
sum(case
when rd.account = '38302'
and rd.contract_class_code = 'INS'
and rd.contract_model_label = 'VFA'
then abs(
coalesce(rd.sum_dt_pu, 0)
- coalesce(rd.sum_ct_pu, 0)
)
end) as svfa_рu,
sum(case
when rd.account = '38902'
and rd.contract_class_code = 'INS'
and rd.contract_model_label = 'BBA'
then abs(
coalesce(rd.sum_dt_pu, 0)
- coalesce(rd.sum_ct_pu, 0)
)
end) as ВВА_рu,
sum(case
when rd.account in (
'39002', '39022', '39023', '39024'
)
and coalesce(rd.contract_class_code, 'INV') = 'INV'
then abs(
coalesce(rd.sum_dt_pu, 0)
- coalesce(rd.sum_ct_pu, 0)
)
end) as ivfa_рu,
sum(case
when rd.account = '38302'
and coalesce(rd.contract_class_code, 'INS') = 'INS'
then abs(
coalesce(rd.sum_dt_bu, 0)
- coalesce(rd.sum_ct_bu, 0)
)
end) as svfa_bu,
sum(case
when rd.account = '38902'
then abs(
coalesce(rd.sum_dt_bu, 0)
- coalesce(rd.sum_ct_bu, 0)
)
end) as ВВА_bu,
sum(case
when rd.account in (
'39002', '39022', '39023', '39024'
)
and coalesce(rd.contract_class_code, 'INV') = 'INV'
then abs(
coalesce(rd.sum_dt_bu, 0)
- coalesce(rd.sum_ct_bu, 0)
)
end) as ivfa_bu
from back_office.report_conformity_pu_bu_detail rd
where rd.report_conformity_pu_bu_id = $P{id}
and rd.account in (
'38302', '38902', '39002',
'39022', '39023', '39024'
)
group by
rd.pension_scheme_id,
rd.uidpensionscheme,
rd.strategy_id,
rd.uidsubtypeactivity
) g
left join prod_line.pens_scheme ps_id
on ps_id.id = g.pension_scheme_id
left join prod_line.hb_invest_strategy st_id
on st_id.id = g.strategy_id
left join lateral (
select max(ps.name) as name
from prod_line.pens_scheme ps
where g.pension_scheme_id is null
and nullif(
lower(btrim(cast(ps.uid_1c as text))), ''
) = nullif(
lower(btrim(g.uidpensionscheme)), ''
)
having count(*) = 1
) ps_uid on true
left join lateral (
select max(st.name) as name
from prod_line.hb_invest_strategy st
where g.strategy_id is null
and nullif(
lower(btrim(cast(st.uid_1c as text))), ''
) = nullif(
lower(btrim(g.uidsubtypeactivity)), ''
)
having count(*) = 1
) st_uid on true
),
cte_all as (
select * from cte
union all
select * from cte_gr
union all
select * from cte_gr_gr
union all
select * from cte_ps
),
cte_all_itog as (
select
*,
coalesce(svfa_рu, 0)
+ coalesce(ВВА_рu, 0) as s_pu,
coalesce(svfa_рu, 0)
+ coalesce(ВВА_рu, 0)
+ coalesce(ivfa_рu, 0) as itog_pu,
coalesce(svfa_bu, 0)
+ coalesce(ВВА_bu, 0) as s_bu,
coalesce(svfa_bu, 0)
+ coalesce(ВВА_bu, 0)
+ coalesce(ivfa_bu, 0) as itog_bu
from cte_all
)
select
*,
s_pu - s_bu as rash_s,
coalesce(ivfa_рu, 0)
- coalesce(ivfa_bu, 0) as rash_i,
itog_pu - itog_bu as rash_itog
from cte_all_itog
order by cid, pid