with
status(status, status_id, probability_pc) as (VALUES
('Закрыта неуспешно',7,0),('Закрыта успешно',6,100),('Договор подписан',5,100),('Договор на подписании',15,90),('Договор на согласовании',12,70),
('Тестирование',8,50),('Отправлено ТКП',10,20),('Внутреннее согласование',37,10),('Проработка решения',4,10),('Сбор потребностей',1,0)
),
component as (select siv.deal as deal_uids, siv.type, (siv.cnt*(100-COALESCE(siv.discount,0))/100*p.price*p.cnt*(100-COALESCE(p.discount,0))) as param_cost
from elma.deals_services siv
join elma.service_parametrs p on (p.__id = ANY(siv.params))
)
select
d.__id
d.__index
d.__name
d._companies
d."__createdAt" as __createdAt
k.__name as contragent
k.__id as contragent_uid
k.id_klienta as wz
d.__status_status
s.status
s.probability_pc
c.__name as owner
a.__name as additional_agreement
a.__id as additional_agreement_uid
g.__name as contract
g.__id as contract_uid
g.date_of_aggrement as dt_contract
from elma.deals d
left outer join elma.companies k on (d._companies=k.__id)
left outer join status s on (d.__status_status=s.status_id)
left outer join elma.comp_users_ext c on (d._owner=c.__id)
left outer join elma.additional_agreements a on (d.__id=a.deal_uid)
left outer join elma.aggrements g on (a.contract_uid = g.__id)
where 1=1
order by
limit #pageInfo.recordsPerPage#
offset #pageInfo.nStart#
select count(*) as cnt from elma.deals d where 1=1
Сделки
#additional_agreement#
#contract#
#contragent#
#gridFooter#