017 improvements

This commit is contained in:
msyu
2025-08-27 16:42:41 +03:00
parent 9752bc9742
commit 517585258d
4 changed files with 78 additions and 11 deletions
+1 -1
View File
@@ -99,7 +99,7 @@
<cfset request.RECORDS_PER_PAGE=500/>
<cfset request.APP_VERSION="0.00.016"/>
<cfset request.APP_VERSION="0.00.017"/>
<cfset request.STAND=getStand()/>
<cflock scope="application" type="readonly" timeout=3>
+57 -4
View File
@@ -21,7 +21,7 @@
<d:param field="__id" type="uuid" key/>
<d:param field="__name" type="varchar" size="255" preprocessor=#cleanInput# forNull=""/>
<d:param field="_companies" type="uuid" forNull=""/>
<!--- <d:param field="_plannedDueDate" type="timestamp" forNull=""/> --->
<!--- <d:param field="_plannedDueDate" type="timestamp" forNull=""/> ---><!--- *** не используем, потому что имя в смешанном регистре --->
<d:param field="__index" type="integer" forNull="" default="0" init="0"/>
<d:param field="__status_status" type="integer" forNull="" default="0" init="0"/>
<d:param field="is_corrective_transaction" type="bit" forNull=""/>
@@ -44,15 +44,37 @@
s(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
k.__name as contragent
,k.id_klienta as wz
,k.__index as contragent_index
,d."_plannedDueDate" as _plannedDueDate
,d."__createdAt"
,d."__index" as deal_index
,s.status
,s.probability_pc
,c.__name as owner
,(select sum(param_cost)
from component
where d.__id = ANY(component.deal_uids) AND component.type IN (1)
) as install
,(select sum(param_cost)
from component
where d.__id = ANY(component.deal_uids) AND component.type IN (2)
) as periodical
,(select sum(param_cost)
from component
where d.__id = ANY(component.deal_uids) AND component.type IN (3)
) as metered
from elma.deals d
left outer join elma.companies k on (d._companies=k.__id)
left outer join elma.comp_users_ext c on (d._owner=c.__id)
left outer join s on (d.__status_status=s.status_id)
where d.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.__id#/>
</cfquery>
@@ -89,7 +111,10 @@
<div class="tr">
<div class="th">__id</div>
<div class="td">#d.__id#</div>
<div class="td">
#d.__id#
index:#qDecoration.deal_index#
</div>
</div>
<div class="tr">
@@ -102,12 +127,15 @@
<div class="td"><!--- <a href="contract.cfm?__id=#d.contract_uid#&#tr.fwx#"><b>#qDecoration.contract#</b> #dateFormat(qDecoration.date_of_aggrement,'DD.MM.YYYY')#
[#d.contract_uid#]</a> --->
#qDecoration.contragent# #qDecoration.wz#
index:#qDecoration.contragent_index#
</div>
</div>
<div class="tr">
<div class="th">_plannedDueDate</div>
<div class="td">#qDecoration._plannedDueDate#</div>
<div class="td">#dateFormat(qDecoration._plannedDueDate,'YYYY-MM-DD')#
Паразитное поле, не использовать в расчетах
</div>
</div>
<div class="tr">
@@ -145,7 +173,32 @@
<div class="tr">
<div class="th">dt_load</div>
<div class="td">#d.dt_load#</div>
<div class="td">#dateTimeFormat(d.dt_load,"yyyy-MM-dd HH:nn:ss.SSSZ")#</div>
</div>
<div class="tr">
<div class="th">__createdAt</div>
<div class="td">#dateFormat(qDecoration.__createdAt,"YYYY-MM-DD")#</div>
</div>
<div class="tr">
<div class="th">Ответственный</div>
<div class="td">#qDecoration.owner#</div>
</div>
<div class="tr">
<div class="th">Инсталл</div>
<div class="td">#numFmt(qDecoration.install,2)#</div>
</div>
<div class="tr">
<div class="th">Ежемес</div>
<div class="td">#numFmt(qDecoration.periodical,2)#</div>
</div>
<div class="tr">
<div class="th">Тарифицируемые</div>
<div class="td">#numFmt(qDecoration.metered,2)#</div>
</div>
+19 -6
View File
@@ -27,18 +27,26 @@
select
<d:field_set titleMapOut="titleMap" lengthOut="fieldCount">
<d:field title="ID" cfSqlType="CF_SQL_OTHER">d.__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="Создана">d."__createdAt" as __createdAt</d:field><!--- *** косяк d:field, если взять в кавычки имя поля, оно не попадает в массив полей --->
<d:field title="Контрагент">k.__name as contragent</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="Договор">g.__name as contract</d:field>
<d:field title="Дата дог.">g.date_of_aggrement as dt_contract</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)
where 1=1 <m:filter_build filter=#pageInfo.settings.filter#/>
order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
</cfquery>
@@ -103,14 +111,19 @@ select count(*) as cnt from elma.deals d where 1=1
<c:td field="f_link_view_edit" class="c"/>
</c:column>
<c:column width="10%" field="__id"><c:td class="l"/></c:column>
<c:column width="3%" field="__index"><c:td class="r"/></c:column>
<c:column width="10%" field="__name"/>
<c:column width="10%" field="_companies"/>
<!--- <c:column width="10%" field="_companies"/> --->
<c:column width="10%" field="contragent"/>
<c:column width="5%" field="wz"/>
<c:column width="3%" field="wz"/>
<c:column width="3%" field="__status_status"><c:td class="c"/></c:column>
<c:column width="10%" field="status"><c:td class="c"/></c:column>
<c:column width="5%" field="probability_pc"><c:td class="c"/></c:column>
<c:column width="5%" field="status"><c:td class="c"/></c:column>
<c:column width="3%" field="probability_pc"><c:td class="c"/></c:column>
<c:column width="5%" field="__createdAt" formatter=#function(dt){return dateformat(dt,"YYYY-MM-DD");}#><c:td class="c"/></c:column>
<c:column width="8%" field="owner"><c:td class="l"/></c:column>
<c:column width="5%" field="additional_agreement"><c:td class="l"/></c:column>
<c:column width="5%" field="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:table>
+1
View File
@@ -103,6 +103,7 @@ AND o.table_schema=<cfqueryparam cfsqltype="cf_sql_varchar" value="#schema#"/>
</form>
добавить сюда еще выполнение селекта, чтобы почитать данные
<hr/>