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.RECORDS_PER_PAGE=500/>
<cfset request.APP_VERSION="0.00.016"/> <cfset request.APP_VERSION="0.00.017"/>
<cfset request.STAND=getStand()/> <cfset request.STAND=getStand()/>
<cflock scope="application" type="readonly" timeout=3> <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="__id" type="uuid" key/>
<d:param field="__name" type="varchar" size="255" preprocessor=#cleanInput# forNull=""/> <d:param field="__name" type="varchar" size="255" preprocessor=#cleanInput# forNull=""/>
<d:param field="_companies" type="uuid" 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="__index" type="integer" forNull="" default="0" init="0"/>
<d:param field="__status_status" 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=""/> <d:param field="is_corrective_transaction" type="bit" forNull=""/>
@@ -44,15 +44,37 @@
s(status, status_id, probability_pc) as (VALUES s(status, status_id, probability_pc) as (VALUES
('Закрыта неуспешно',7,0),('Закрыта успешно',6,100),('Договор подписан',5,100),('Договор на подписании',15,90),('Договор на согласовании',12,70), ('Закрыта неуспешно',7,0),('Закрыта успешно',6,100),('Договор подписан',5,100),('Договор на подписании',15,90),('Договор на согласовании',12,70),
('Тестирование',8,50),('Отправлено ТКП',10,20),('Внутреннее согласование',37,10),('Проработка решения',4,10),('Сбор потребностей',1,0) ('Тестирование',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 select
k.__name as contragent k.__name as contragent
,k.id_klienta as wz ,k.id_klienta as wz
,k.__index as contragent_index
,d."_plannedDueDate" as _plannedDueDate ,d."_plannedDueDate" as _plannedDueDate
,d."__createdAt"
,d."__index" as deal_index
,s.status ,s.status
,s.probability_pc ,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 from elma.deals d
left outer join elma.companies k on (d._companies=k.__id) 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) left outer join s on (d.__status_status=s.status_id)
where d.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.__id#/> where d.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.__id#/>
</cfquery> </cfquery>
@@ -89,7 +111,10 @@
<div class="tr"> <div class="tr">
<div class="th">__id</div> <div class="th">__id</div>
<div class="td">#d.__id#</div> <div class="td">
#d.__id#
index:#qDecoration.deal_index#
</div>
</div> </div>
<div class="tr"> <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')# <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> ---> [#d.contract_uid#]</a> --->
#qDecoration.contragent# #qDecoration.wz# #qDecoration.contragent# #qDecoration.wz#
index:#qDecoration.contragent_index#
</div> </div>
</div> </div>
<div class="tr"> <div class="tr">
<div class="th">_plannedDueDate</div> <div class="th">_plannedDueDate</div>
<div class="td">#qDecoration._plannedDueDate#</div> <div class="td">#dateFormat(qDecoration._plannedDueDate,'YYYY-MM-DD')#
Паразитное поле, не использовать в расчетах
</div>
</div> </div>
<div class="tr"> <div class="tr">
@@ -145,7 +173,32 @@
<div class="tr"> <div class="tr">
<div class="th">dt_load</div> <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> </div>
+19 -6
View File
@@ -27,18 +27,26 @@
select select
<d:field_set titleMapOut="titleMap" lengthOut="fieldCount"> <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</d:field>
<d:field title="index" cfSqlType="CF_SQL_INTEGER">d.__index</d:field>
<d:field title="Название">d.__name</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</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.__name as contragent</d:field>
<d:field title="WZ">k.id_klienta as wz</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="status_id">d.__status_status</d:field>
<d:field title="Статус">s.status</d:field> <d:field title="Статус">s.status</d:field>
<d:field title="Вероятность%">s.probability_pc</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> </d:field_set>
from elma.deals d from elma.deals d
left outer join elma.companies k on (d._companies=k.__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 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#/> where 1=1 <m:filter_build filter=#pageInfo.settings.filter#/>
order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/> order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
</cfquery> </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:td field="f_link_view_edit" class="c"/>
</c:column> </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="__name"/>
<c:column width="10%" field="_companies"/> <!--- <c:column width="10%" field="_companies"/> --->
<c:column width="10%" field="contragent"/> <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="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="status"><c:td class="c"/></c:column>
<c:column width="5%" field="probability_pc"><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> </c:table>
+1
View File
@@ -103,6 +103,7 @@ AND o.table_schema=<cfqueryparam cfsqltype="cf_sql_varchar" value="#schema#"/>
</form> </form>
добавить сюда еще выполнение селекта, чтобы почитать данные
<hr/> <hr/>