Files
payg/contract_ls.cfm
T

147 lines
6.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<cfsilent>
<cfimport prefix="m" taglib="lib"/>
<cfimport prefix="c" taglib="lib/controls"/>
<cfimport prefix="d" taglib="lib/data"/>
<cfimport prefix="layout" taglib="layout"/>
</cfsilent><m:silent silent="No">
<cffunction name="hideNonPositive">
<cfargument name="a"/>
<cfreturn (a GT 0)? a : ""/>
</cffunction>
<m:prepare_ls entity="contract" accessObject="" pageInfoOut="pageInfo" trackOut="tr"/>
<!--- <m:filter_settings target="#pageInfo.entity#_ls">
<m:filterparam filter=#filter# param="quickfilter" ftype="string" prefix="%" suffix="%" expression="((p.project like ?) OR (p.customer like ?) OR (p.customer_alias like ?) OR (p.contract_class_type like ?) OR (p.division like ?) OR (p.performer_short like ?))" default=""/>
</m:filter_settings> --->
<!--- <cfset pageInfo.settings.filter=#filter#/> --->
<cftry>
<cfquery name="qRead" datasource="#request.DS#">
select
<d:field_set titleMapOut="titleMap" lengthOut="fieldCount">
<d:field title="ID" cfSqlType="CF_SQL_OTHER">d.__id::text as __id</d:field>
<d:field title="Внут.номер">d.agreement_id</d:field>
<d:field title="Договор">d.__name</d:field>
<d:field title="company_uid">d.company_uid::text as company_uid</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="Дата договора">d.date_of_aggrement</d:field>
<d:field title="Дата окончания">d.date_end_aggrement</d:field>
<d:field title="Тип договора">d.type_of_agreement</d:field>
<d:field title="Ответственный за к/а">c.__name as responsible</d:field>
<d:field title="Email отв-го">c.email as responsible_email</d:field>
<d:field title="Статус">c.__status_status as responsible_status</d:field>
<!--- <d:field title="Доп. соглашений">COALESCE(a.aa_cnt, 0) AS aa_cnt</d:field> --->
<d:field title="Доп. соглашений">a.aa_cnt</d:field>нас null вместо 0 совершенно устраивает
</d:field_set>
from elma.aggrements d
LEFT OUTER JOIN elma.companies k ON (d.company_uid=k.__id)
LEFT OUTER JOIN elma.comp_users_ext c ON (k.responsible=c.__id)
LEFT OUTER JOIN (
SELECT contract_uid, count(*) AS aa_cnt
FROM elma.additional_agreements
WHERE "__deletedAt" IS NULL
GROUP BY contract_uid
) a ON (a.contract_uid = d.__id)
where 1=1 <m:filter_build filter=#pageInfo.settings.filter#/>
order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
</cfquery>
<!--- <cfdump var=#qRead#/> --->
<cfcatch type="database">
<m:ls_catch catch=#cfcatch# status=#pageInfo.status#/>
</cfcatch>
</cftry>
<cfquery name="qCountTotal" datasource="#request.DS#">
select count(*) as cnt from elma.aggrements d where 1=1
</cfquery>
</m:silent><!---
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
---><cfif isDefined("output_xls")>
<layout:xml qRead=#qRead# titleMap=#titleMap# filename="#pageInfo.entity#.xml"/>
<cfabort/>
</cfif><cfif isDefined("output_json")>
<layout:json qRead=#qRead# titleMap=#titleMap# filename="#pageInfo.entity#.json"/>
<cfabort/>
</cfif><!---
---><layout:page section="header" pageInfo=#pageInfo#>
<layout:attribute name="title">
<cfoutput><b>Договоры</b></cfoutput>
</layout:attribute>
<!--- <layout:attribute name="controls"></layout:attribute> --->
</layout:page>
<cfif pageInfo.readPermitted() AND !pageInfo.status.errorState>
<layout:grid_summary
recordCount=#qRead.recordCount#
totalCount=#qCountTotal.cnt#
footerOut="gridFooter"
excelLink="Yes"
jsonLink="Yes"
/>
<!--- так довольно громоздко, но можно обойтись без Dynamic Evaluation --->
<cfset queryAddColumn(qRead,'f_link_view_edit')/>
<cfset titleMap.f_link_view_edit={ordinal=#StructCount(titleMap)+1#}/><!--- *** Это легко забыть, потому что TitleMap никак не сцеплен с qRead. Напрашивается: упаковать их в одну обертку (но тогда обращение станет длиннее). Еще идея - назвать qRead и TitleMap так, чтобы была видна их связь. --->
<!--- <cfdump var=#titleMap#/> --->
<cfset queryAddColumn(qRead,'f_contract')/>
<cfset titleMap.f_contract=titleMap.__name/>
<cfset queryAddColumn(qRead,'f_contragent')/>
<cfset titleMap.f_contragent=titleMap.contragent/>
<cfset queryAddColumn(qRead,'f_link_del')/>
<cfset titleMap.f_link_del={ordinal=0}/>
<!--- <cfdump var=#titleMap#/> --->
<cfoutput query=#qRead# startRow=#pageInfo.nStart# maxRows=#pageInfo.recordsPerPage#>
<cfsavecontent variable="qRead.f_link_view_edit">
<a href="contract.cfm?__id=#__id#&#tr.fwx#" name="#__id#" title="просмотр" class="view"></a>
</cfsavecontent>
<cfsavecontent variable="qRead.f_contract">
<a href="contract.cfm?__id=#__id#&#tr.fwx#">#__name#</a>
</cfsavecontent>
<cfsavecontent variable="qRead.f_contragent">
<a href="contragent.cfm?__id=#company_uid#&#tr.fwx#">#contragent#</a> <a href="contragent_rpt.cfm?__id=#company_uid#&#tr.fwx#" style="float:right"><img src="img/view.gif" title="сводка по контрагенту"/></a>
</cfsavecontent>
</cfoutput>
<c:table query=#qRead# recordsPerPage=#pageInfo.recordsPerPage# nStart=#pageInfo.nStart# titleMap=#titleMap# sortArray=#pageInfo.settings.sort.sortArray# class="worktable wide">
<c:column width="1%" sortable="false"><!---*** class="c" не пробрасывается --->
<c:td field="f_link_view_edit" class="c"/>
</c:column>
<c:column width="10%" field="__id" sortable=false><c:td class="l"/></c:column>
<c:column width="10%" field="f_contract"/>
<c:column width="10%" field="agreement_id"/>
<c:column width="10%" field="company_uid" sortable=false/>
<c:column width="10%" field="f_contragent"/>
<c:column width="10%" field="wz"/>
<c:column width="10%" field="responsible"/>
<c:column width="10%" field="responsible_email"/>
<c:column width="2%" field="responsible_status"/>
<c:column width="10%" field="date_of_aggrement" formatter=#function(dt){return dateformat(dt,"YYYY-MM-DD");}#/>
<c:column width="10%" field="date_end_aggrement" formatter=#function(dt){return dateformat(dt,"YYYY-MM-DD");}#/>
<c:column width="10%" field="type_of_agreement"><c:td class="l"/></c:column>
<c:column width="10%" field="aa_cnt"><c:td class="c"/></c:column>
</c:table>
<cfoutput>#gridFooter#</cfoutput>
</cfif>
<layout:page section="footer"/>