087 tests and storage rpt improved

This commit is contained in:
2026-09-27 09:41:28 +03:00
parent 2f260a3b63
commit d6193481e1
2 changed files with 52 additions and 23 deletions
+1 -1
View File
@@ -87,7 +87,7 @@
<!--- global settings ---> <!--- global settings --->
<!--- *************************************************************************************************** ---> <!--- *************************************************************************************************** --->
<cfset request.APP_VERSION="0.00.086"/> <!--- *********************************************************** ---> <cfset request.APP_VERSION="0.00.087"/> <!--- *********************************************************** --->
<!--- *************************************************************************************************** ---> <!--- *************************************************************************************************** --->
<cfset request.STAND=getStand()/> <cfset request.STAND=getStand()/>
<cfset request.RECORDS_PER_PAGE=500/> <cfset request.RECORDS_PER_PAGE=500/>
+50 -21
View File
@@ -59,29 +59,42 @@ SELECT upper(k.id_klienta) as wz, k.__id as id, c.__name as responsible, c.email
LEFT OUTER JOIN elma.comp_users_ext c on (k.responsible=c.__id) LEFT OUTER JOIN elma.comp_users_ext c on (k.responsible=c.__id)
</cfquery> </cfquery>
<cfquery name="qLastDeal"> <cfquery name="qCurrentDeal">
WITH WITH
status(status, status_id, probability_pc) status(status, status_id, probability_pc)
AS (VALUES 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)
),
current_deal
AS (select
d.__id, d._companies, d.__status_status, d.__index, d.__name, d.kommentarii_k_sdelke, d."__statusComment", d."__deletedAt", d.is_corrective_transaction,
a.__id as additional_agreement_uid, a.__name as additional_agreement,
g.__id as contract_uid, g.__name as contract, g.date_of_aggrement as dt_contract, g.agreement_id as contract_id /*сохранена авторская орфография*/
,ROW_NUMBER() OVER (PARTITION BY _companies ORDER BY d.__index DESC) rn
from elma.deals d
join status s on (d.__status_status=s.status_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 d."__deletedAt" IS NULL AND s.probability_pc > 0
AND NOT coalesce(d.is_corrective_transaction, false)
AND NOT d.__status_status=7
) )
select z.id_Klienta as wz, z.__name as company,
d.__id as deal_uid, d.__status_status as status_id, s.status, d.__index as deal_index, d.__name as deal --, d.kommentarii_k_sdelke, d."__statusComment"
from elma.companies z
join (select
__id, _companies, __status_status, __index, __name, kommentarii_k_sdelke, "__statusComment", "__deletedAt", is_corrective_transaction
,ROW_NUMBER() OVER (PARTITION BY _companies ORDER BY __index desc) rn
from elma.deals) d on (z.__id=d._companies AND d.rn=1)
join status s on (d.__status_status=s.status_id)
where z."__deletedAt" IS NULL AND d."__deletedAt" IS NULL SELECT z.id_klienta as wz, z.__name as company,
AND NOT coalesce(d.is_corrective_transaction, false) d.__id::text as deal_uid, d.__status_status as status_id, s.status, d.__index as deal_index, d.__name as deal,
AND NOT d.__status_status=7 d.additional_agreement_uid::text as additional_agreement_uid, d.additional_agreement,
order by z.id_Klienta, d.__index DESC d.contract_uid::text as contract_uid, d.contract, d.dt_contract, d.contract_id
FROM elma.companies z
LEFT JOIN current_deal d ON (z.__id=d._companies AND d.rn=1)
LEFT JOIN status s ON (d.__status_status=s.status_id)
where z."__deletedAt" IS NULL
ORDER BY z.id_klienta, d.__index DESC
</cfquery> </cfquery>
<!--- <cfdump var=#qCurrentDeal#/>
<!--- patch date ---> --->
<!--- patch date to make id processable--->
<cfloop query="qStorage"> <cfloop query="qStorage">
<cftry> <cftry>
<cfif len(qStorage.end_test_date)> <cfif len(qStorage.end_test_date)>
@@ -97,14 +110,14 @@ order by z.id_Klienta, d.__index DESC
<cfset db = new MemoryDbHelper()/> <cfset db = new MemoryDbHelper()/>
<cfset db.register("qStorage", qStorage, "inmem")/> <cfset db.register("qStorage", qStorage, "inmem")/>
<cfset db.register("qResponsible", qResponsible, "inmem")/><!--- имя колонки __id мы не принимаем почему-то ---> <cfset db.register("qResponsible", qResponsible, "inmem")/><!--- имя колонки __id мы не принимаем почему-то --->
<cfset db.register("qLastDeal", qLastDeal, "inmem")/><!--- имя колонки __id мы не принимаем почему-то ---> <cfset db.register("qCurrentDeal", qCurrentDeal, "inmem")/><!--- имя колонки __id мы не принимаем почему-то --->
<cfquery name="qRead" datasource="inmem"> <cfquery name="qRead" datasource="inmem">
select select
<d:field_set titleMapOut="titleMap" lengthOut="fieldCount"> <d:field_set titleMapOut="titleMap" lengthOut="fieldCount">
<d:field title="Тенант">s.tenant</d:field> <d:field title="Тенант">s.tenant</d:field>
<d:field title="WZ">s.wz</d:field> <d:field title="WZ">s.wz</d:field>
<d:field title="status">s.status</d:field> <d:field title="status">s.status</d:field><!--- статус ресурса, а не сделки --->
<d:field title="End of Test">s.end_test_date</d:field> <d:field title="End of Test">s.end_test_date</d:field>
<d:field title="End of Test">s.dt_end_of_test</d:field> <d:field title="End of Test">s.dt_end_of_test</d:field>
<d:field title="VDC">s.vdc</d:field> <d:field title="VDC">s.vdc</d:field>
@@ -118,15 +131,22 @@ order by z.id_Klienta, d.__index DESC
<d:field title="Email отв-го">r.responsible_email</d:field> <d:field title="Email отв-го">r.responsible_email</d:field>
<d:field title="Статус отв-го">r.responsible_status</d:field> <d:field title="Статус отв-го">r.responsible_status</d:field>
<d:field title="deal_uid">d.deal_uid</d:field> <d:field>d.deal_uid</d:field>
<d:field title="Номер сделки">d.deal_index</d:field> <d:field title="Номер сделки">d.deal_index</d:field>
<d:field title="Сделка">d.deal</d:field> <d:field title="Сделка">d.deal</d:field>
<d:field title="Статус сделки">d.status_id</d:field> <d:field title="Статус сделки">d.status_id</d:field>
<d:field title="Статус сделки">d.status as deal_status</d:field> <d:field title="Статус сделки">d.status as deal_status</d:field>
<d:field>d.additional_agreement_uid</d:field>
<d:field title="Допник">d.additional_agreement</d:field>
<d:field>d.contract_uid</d:field>
<d:field title="Договор">d.contract</d:field>
<d:field title="Дата договора">d.dt_contract</d:field>
<d:field title="Номер договора">d.contract_id</d:field>
</d:field_set> </d:field_set>
from qStorage s from qStorage s
LEFT OUTER JOIN qResponsible r ON (s.wz=r.wz) LEFT OUTER JOIN qResponsible r ON (s.wz=r.wz)
LEFT OUTER JOIN qLastDeal d ON (s.wz=d.wz) LEFT OUTER JOIN qCurrentDeal d ON (s.wz=d.wz)
ORDER BY ORDER BY
<m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/> <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
</cfquery> </cfquery>
@@ -173,6 +193,10 @@ ORDER BY
<th><layout:column_head name="deal"/></th> <th><layout:column_head name="deal"/></th>
<th><layout:column_head name="deal_status"/></th> <th><layout:column_head name="deal_status"/></th>
<th><layout:column_head name="additional_agreement"/></th>
<th><layout:column_head name="contract"/></th>
<th><layout:column_head name="dt_contract"/></th>
<th><layout:column_head name="vdc"/></th> <th><layout:column_head name="vdc"/></th>
<th><layout:column_head name="provider_vdc"/></th> <th><layout:column_head name="provider_vdc"/></th>
<th><layout:column_head name="code"/></th> <th><layout:column_head name="code"/></th>
@@ -184,17 +208,22 @@ ORDER BY
<th><layout:column_head name="responsible_email"/></th> <th><layout:column_head name="responsible_email"/></th>
<th><layout:column_head name="responsible_status"/></th> <th><layout:column_head name="responsible_status"/></th>
</layout:grid_head> </layout:grid_head>
<cfoutput query="qRead"> <cfoutput query="qRead">
<tr> <tr>
<!--- <td><a href="contragent.cfm?__id=#company_uid#&#tr.fwx#">#WZ#</a><a href="contragent_rpt.cfm?__id=#company_uid#&#tr.fwx#" style="float:right"><img src="img/view.gif" title="сводка по контрагенту"/></a></td> ---> <!--- <td><a href="contragent.cfm?__id=#company_uid#&#tr.fwx#">#WZ#</a><a href="contragent_rpt.cfm?__id=#company_uid#&#tr.fwx#" style="float:right"><img src="img/view.gif" title="сводка по контрагенту"/></a></td> --->
<td class="c"><a href="contragent.cfm?id_klienta=#UCASE(wz)#&#tr.fwx#">#wz#</td> <td class="c"><a href="contragent.cfm?id_klienta=#UCASE(wz)#&#tr.fwx#">#wz#</td>
<td>#tenant#</td> <td>#tenant#</td>
<td<cfif NOT (status EQ "prod" OR status EQ "internal-test")> class="b"</cfif>>#status#</td> <td<cfif NOT (status EQ "prod" OR status EQ "internal-test")> class="b"</cfif>>#status#</td>
<!--- <td>#end_test_date#</td> ---> <!--- <td>#end_test_date#</td> --->
<td class="c<cfif NOT (status EQ "prod" OR status EQ "internal-test") AND isDate(dt_end_of_test) AND dt_end_of_test LE Now()> b err</cfif>">#dateFormat(dt_end_of_test,"YYYY-MM-DD")#</td> <td class="c<cfif NOT (status EQ "prod" OR status EQ "internal-test") AND isDate(dt_end_of_test) AND dt_end_of_test LE Now()> b err</cfif>">#dateFormat(dt_end_of_test,"YYYY-MM-DD")#</td>
<td><a href="deal.cfm?__id=#deal_uid#&#tr.fwx#">#deal#</a></td> <td><a href="deal.cfm?__id=#deal_uid#&#tr.fwx#">#deal#</a></td>
<td>#deal_status#</td> <td>#deal_status# [#status_id#]</td>
<td><a href="additional_agreement.cfm?__id=#additional_agreement_uid#&#tr.fwx#">#additional_agreement#</a></td>
<td><a href="contract.cfm?__id=#contract_uid#&#tr.fwx#">#contract#</a> <cfif contract_id NEQ contract>(#contract_id#)</cfif> </td>
<td>#dateFormat(dt_contract,"DD.MM.YYYY")#</td>
<td>#VDC#</td> <td>#VDC#</td>
<td>#provider_vdc#</td> <td>#provider_vdc#</td>