067 end customer

This commit is contained in:
2026-08-05 09:50:54 +03:00
parent 7ac2c85238
commit 5cc71b6587
7 changed files with 70 additions and 47 deletions
+22 -33
View File
@@ -24,61 +24,49 @@
('Закрыта неуспешно',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))
end_customers_agg AS (
SELECT
unnest(siv.deal) AS deal_id,
STRING_AGG(DISTINCT z.id_klienta, ', ') AS end_customer_wzs
FROM elma.deals_services siv
LEFT JOIN elma.companies z ON siv.end_customer = z.__id
GROUP BY unnest(siv.deal)
)
select
<d:field_set titleMapOut="titleMap" lengthOut="fieldCount">
<d:field title="ID" cfSqlType="CF_SQL_OTHER">d.__id</d:field>
<d:field title="ID" cfSqlType="CF_SQL_OTHER">d.__id::text as __id</d:field>
<d:field title="index" cfSqlType="CF_SQL_INTEGER">d.__index</d:field>
<d:field title="Название">d.__name</d:field>
<d:field title="company_uid">d._companies</d:field>
<d:field title="company_uid">d._companies::text as _companies</d:field>
<d:field title="Создана">d."__createdAt" as __createdAt</d:field><!--- *** косяк d:field, если взять в кавычки имя поля, оно не попадает в массив полей --->
<d:field title="Контрагент">k.__name as contragent</d:field>
<d:field title="Контрагент">k.__id as contragent_uid</d:field>
<d:field title="Контрагент">k.__id::text as contragent_uid</d:field>
<d:field title="WZ">k.id_klienta as wz</d:field>
<d:field title="status_id">d.__status_status</d:field>
<d:field title="Статус">s.status</d:field>
<d:field title="Вер-ть %">s.probability_pc</d:field>
<d:field title="Ответственный">c.__name as owner</d:field>
<d:field title="Допник">a.__name as additional_agreement</d:field>
<d:field title="Допник">a.__id as additional_agreement_uid</d:field>
<d:field title="Допник">a.__id::text as additional_agreement_uid</d:field>
<d:field title="Договор">g.__name as contract</d:field>
<d:field title="Договор">g.__id as contract_uid</d:field>
<d:field title="Договор">g.__id::text as contract_uid</d:field>
<d:field title="Дата дог.">g.date_of_aggrement as dt_contract</d:field>
<!--- <d:field>(select count(*)
from elma.deals_services siv
where d.__id = ANY(siv.deal)
) as line_cnt
</d:field> --->
<!--- <d:field title="Строк">(select count(*)
from elma.deals_services siv
where d.__id = ANY(siv.deal) AND siv.is_actual AND siv."__deletedAt" IS NULL
) as line_cnt_actual
</d:field> --->
<!---<d:field>(select sum(param_cost)
from component
where d.__id = ANY(component.deal_uids) AND component.type IN (2)
) as periodical
</d:field>
<d:field>(select sum(param_cost)
from component
where d.__id = ANY(component.deal_uids) AND component.type IN (3)
) as metered
</d:field> --->
<d:field title="Конечники">ec.end_customer_wzs</d:field>
</d:field_set>
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)
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)
LEFT OUTER JOIN end_customers_agg ec ON (d.__id = ec.deal_id)
where 1=1 <m:filter_build filter=#pageInfo.settings.filter#/>
order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
<!--- limit #pageInfo.recordsPerPage#
offset #pageInfo.nStart# --->
</cfquery>
<!--- <cfdump var=#qRead#/> --->
<cfcatch type="database">
@@ -182,6 +170,7 @@ select count(*) as cnt from elma.deals d where 1=1
<c:column width="5%" field="f_additional_agreement"><c:td class="l"/></c:column>
<c:column width="5%" field="f_contract"><c:td class="l"/></c:column>
<c:column width="5%" field="dt_contract" formatter=#function(dt){return dateformat(dt,"YYYY-MM-DD");}#><c:td class="c"/></c:column>
<c:column width="5%" field="end_customer_wzs"/>
<!--- <c:column width="1%" field="line_cnt"><c:td class="c"/></c:column> --->
<!--- <c:column width="1%" field="line_cnt_actual"><c:td class="c"/></c:column> --->
<!--- <c:column width="5%" field="install" formatter=#nFmt#><c:td class="c"/></c:column>