spec/abstract_service_ls.cfm
2025-06-02 16:16:51 +03:00

164 lines
8.0 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">
<m:prepare_ls entity="abstract_service" 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.abstract_service_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_INTEGER">a.abstract_service_id</d:field>
<d:field title="Код группы">g.area_code</d:field>
<d:field title="Группа">g.analytic_code</d:field>
<d:field title="Группа">g.area</d:field>
<d:field>a.area_id</d:field>
<d:field title="Номенклатура (RUS)">a.abstract_service</d:field>
<d:field title="Номенклатура (ENG)">a.abstract_service_en</d:field>
<d:field title="Код">a.code</d:field>/***use case: составное поле. А как сортировать*/
<d:field title="Статус">a.status_id</d:field>
<d:field title="Статус">s.status</d:field>
<d:field title="Ед. изм.">m.measure</d:field>
<d:field title="Ед. изм.">m.measure_short</d:field>
<d:field title="Ответственный">a.manager_id</d:field>
<d:field title="">u.login</d:field>
<d:field title="">u.firstname</d:field>
<d:field title="">u.middlename</d:field>
<d:field title="Ответственный">u.lastname</d:field>
<d:field title="Email ответственного">u.email</d:field>
<d:field title="">a.descr</d:field>
<d:field title="Коммерческие примечания">a.commercial_note</d:field>
<!--- <d:field title="Провайдер" cfSqlType="CF_SQL_INTEGER">(select count(*) from abstract_service_provider sp where sp.abstract_service_id=a.abstract_service_id) as provider_count</d:field> --->
<!---https://habr.com/ru/post/200120/--->
<!---<d:field title="Провайдеры">
/*MSSQL*/STUFF(CAST((
select [text()] = ', ' || "provider"
from abstract_service_provider sp
join provider p on (sp.provider_id=p.provider_id)
where sp.abstract_service_id=a.abstract_service_id
FOR XML PATH(''), TYPE) AS VARCHAR(MAX)), 1, 2, '')
as providers
</d:field>--->
<!--- <d:field title="Провайдеры">
/*PostgreSQL*/(select STRING_AGG(p.provider,', ')
from abstract_service_provider sp
join provider p on (sp.provider_id=p.provider_id)
where sp.abstract_service_id=a.abstract_service_id
)as providers
</d:field> --->
<!---<d:field title="Периодичность">p.payment_periodicity</d:field>--->
<d:field title="Компон.">(select count(*) from abstract_service_param_class ac where ac.abstract_service_id=a.abstract_service_id) as param_count</d:field>
<d:field title="Класс характеристики">c.modifier_class</d:field>
<d:field>a.modifier_class_id</d:field>
<d:field title="Вариан." cfSqlType="CF_SQL_INTEGER">(select count(*) from service s where s.abstract_service_id=a.abstract_service_id) as service_count</d:field>
<d:field title="Доп.усл.">(select count(*) from abstract_service_complementary ac where ac.abstract_service_id=a.abstract_service_id) as complementary_count</d:field>
<d:field title="Документов" cfSqlType="CF_SQL_INTEGER">(select count(*) from abstract_service_doc d where d.abstract_service_id=a.abstract_service_id) as doc_count</d:field>
</d:field_set>
from abstract_service a
left outer join modifier_class c on (a.modifier_class_id=c.modifier_class_id)
left outer join area g on (a.area_id=g.area_id)
left outer join measure m on (a.measure_id=m.measure_id)
left outer join status s on (a.status_id=s.status_id)
left outer join usr u on (a.manager_id=u.usr_id)
<!---left outer join payment_periodicity p on (b.payment_periodicity_id=p.payment_periodicity_id)--->
where 1=1 <m:filter_build filter=#pageInfo.settings.filter#/>
order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
</cfquery>
<cfcatch type="database">
<cfrethrow/>
<m:ls_catch catch=#cfcatch# status=#pageInfo.status#/>
</cfcatch>
</cftry>
<cfquery name="qCountTotal" datasource="#request.DS#">
select count(*) as cnt from abstract_service 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:page>
<cfif pageInfo.readPermitted() AND !pageInfo.status.errorState>
<layout:grid_summary
recordCount=#qRead.recordCount#
totalCount=#qCountTotal.cnt#
footerOut="gridFooter"
excelLink="Yes"
jsonLink="Yes"
/>
<table class="worktable">
<thead>
<layout:grid_head titleMap=#titleMap# sortArray=#pageInfo.settings.sort.sortArray#>
<th width="1%">
<c:link_add canWrite=#pageInfo.writePermitted()# entity=#pageInfo.entity# fwx=#tr.fwx#/>
</th>
<th width="1%"></th>
<th width="7%"><layout:column_head name="analytic_code"/></th>
<th width="2%"><layout:column_head name="code"/></th>
<th width="15%"><layout:column_head name="abstract_service"/></th>
<th width="3%"><layout:column_head name="measure_short"/></th>
<th width="2%"><layout:column_head name="param_count"/></th>
<th width="15%"><layout:column_head name="modifier_class"/></th>
<th width="2%"><layout:column_head name="service_count"/></th>
<th width="2%"><layout:column_head name="complementary_count"/></th>
<th width="2%"><layout:column_head name="lastname"/></th>
<th width="3%"><layout:column_head name="status"/></th>
<th width="1%"></th>
</layout:grid_head>
</thead>
<cfoutput query="qRead" maxrows=#pageInfo.recordsPerPage# startrow=#pageInfo.nStart#>
<tr>
<td class="c">
<c:link_view_edit canWrite=#pageInfo.writePermitted()# entity=#pageInfo.entity# id=#qRead[pageInfo.entity&'_id'][currentRow]# fwx=#tr.fwx#/>
</td>
<td class="c"><cfif doc_count GT 0><img src="img/paperclip.gif" title="#doc_count# док."/></cfif></td>
<td><a href="area.cfm?area_id=#area_id#&#tr.fwx#">#analytic_code# #area#</a></td>
<td>#request.skuCode(area_code,code)#</td>
<td><a href="abstract_service.cfm?abstract_service_id=#abstract_service_id#&#tr.fwx#">#abstract_service#</a></td>
<td class="c">#measure_short#</td>
<td class="c"><cfif param_count GT 0>#param_count#</cfif></td>
<td><a href="modifier_class.cfm?modifier_class_id=#modifier_class_id#&#tr.fwx#">#modifier_class#</a></td>
<td class="c"><cfif service_count GT 0>#service_count#</cfif></td>
<td class="c"><cfif complementary_count GT 0>#complementary_count#</cfif></td>
<td class="c"><cfif manager_id GT 0><a href="mailto:#email#">#lastname# #firstname# #middlename#</a></cfif></td>
<td>#status#</td>
<td class="c">
<c:link_del canWrite=#pageInfo.writePermitted()# entity=#pageInfo.entity# id=#qRead[pageInfo.entity&'_id'][currentRow]# fwx=#tr.fwx#/>
</td>
</tr>
</cfoutput>
</table>
<cfoutput>#gridFooter#</cfoutput>
</cfif>
<layout:page section="footer"/>