Files
payg/additional_agreement.cfm
T
2025-08-23 22:05:03 +03:00

301 lines
9.8 KiB
Plaintext

<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="plain2HtmClean">
<cfargument name="s" type="string"/>
<cfreturn request.plain2htm(request.cleanHtm(s))/>
</cffunction>
<cffunction name="cleanInput">
<cfargument name="s" type="string"/>
<cfreturn htmlEditFormat(s)/>
</cffunction>
<m:prepare_detail entity="additional_agreement" accessObject="" key="__id" pageInfoOut="pageInfo"/>
<d:bean readonly=true table="elma.additional_agreements" datasource="#request.DS#" output="d" status="status">
<d:param field="__id" type="uuid" key/>
<d:param field="__name" type="varchar" size="255" preprocessor=#cleanInput# forNull=""/>
<!--- <d:param field="__createdAt" type="timestamp" forNull=""/> тут нужно добавлять в селект кавычки
<d:param field="__createdBy" type="uuid" forNull=""/>
<d:param field="__updatedAt" type="timestamp" forNull=""/>
<d:param field="__updatedBy" type="uuid" forNull=""/>
<d:param field="__deletedAt" type="timestamp" forNull=""/> --->
<d:param field="documents" type="ARRAY" forNull=""/>
<d:param field="contract_uid" type="uuid" forNull=""/>
<d:param field="index" type="integer" forNull="" default="0" init="0"/>
<!--- <d:param field="services" type="ARRAY" forNull=""/> --->
<d:param field="is_actual" type="bit" forNull=""/>
<d:param field="last_aa" type="bit" forNull=""/>
<!--- <d:param field="services_::text as services_" type="ARRAY" forNull=""/> --->
<d:param field="deal_uid" type="uuid" forNull=""/>
<d:param field="base_by" type="ARRAY" forNull=""/>
<d:param field="__index" type="integer" forNull="" default="0" init="0"/>
<d:param field="dt_load" type="timestamp"/>
</d:bean>
<m:dispatch_detail
usePRG="No"<!---*** --->
pageInfo=#pageInfo#
id="#d.__id#"
status=#pageInfo.status#
trackOut="tr"
idAttributesOut="id"
/>
<!--- decoration --->
<cfquery name="qDecoration" datasource="#request.DS#">
select
c.__name as contract
,c.date_of_aggrement
,c.date_end_aggrement
,k.__name as contragent
,k.id_klienta as wz
from elma.aggrements c
left outer join elma.companies k on (c.company_uid=k.__id)
where c.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.contract_uid#/>
</cfquery>
</m:silent><!---
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
---><layout:page section="header" pageInfo=#pageInfo#>
<layout:attribute name="title">
<cfoutput>
Дополнительное соглашение
<cfif len(d.__id)>
<b>#d.__name#</b>
[#d.__id#]
</cfif>
</cfoutput>
</layout:attribute>
</layout:page>
<!--- <cfif status.errorState GT 0>
<cfoutput><div class="err">#status.errorMessage#</div></cfoutput>
</cfif>
--->
<cfoutput>
<input type="hidden" name="__id" value="#d.__id#"/>
<input type="hidden" name="track" value="#tr.self#"/>
<input type="hidden" name="pass" value=""/><!--- pass marker to prevent save on submit --->
<div class="detail">
<div class="tr">
<div class="th">__id</div>
<div class="td">#d.__id#</div>
</div>
<div class="tr">
<div class="th">Название</div>
<div class="td">#d.__name#</div>
</div>
<div class="tr">
<div class="th">Версия (index)</div>
<div class="td">#d.index#</div>
</div>
<div class="tr">
<div class="th">Версии</div>
<div class="td">
<cfquery name="qVer">
with
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)
)
select
index
, a.__id::text
, d.__id::text as deal_uid
, a.__name
, d.__status_status
, s.status
, s.probability_pc
from elma.additional_agreements a
left outer join elma.deals d on (a.deal_uid=d.__id)
left outer join s on (d.__status_status=s.status_id)
where a.contract_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#d.contract_uid#/>
order by index
</cfquery>
<cfloop query=#qVer#>
<cfif __id EQ toString(d.__id)>
#index#: #__name#
<cfelse>
<a href="additional_agreement.cfm?__id=#__id#&#tr.fwx#">#index#: #__name# </a>
</cfif>
<a href="deal.cfm?__id=#deal_uid#&#tr.fwx#">(#__status_status#: #probability_pc#%)</a>
<cfif qVer.currentRow LT qVer.recordCount>|</cfif>
</cfloop>
</div>
</div>
<div class="tr">
<div class="th">Договор</div>
<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#
</div>
</div>
<div class="tr">
<div class="th">is_actual</div>
<div class="td">#d.is_actual#</div>
</div>
<div class="tr">
<div class="th">Последнее в цепочке</div>
<div class="td">#d.last_aa#</div>
</div>
<div class="tr">
<div class="th">Сделка</div>
<div class="td">
<a href="deal.cfm?__id=#d.deal_uid#&#tr.fwx#">#d.deal_uid#</a>
<cfquery name="qDeal">
with
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)
)
select d.__id::text
, d.__name
, d.__status_status
, s.status
, s.probability_pc
from elma.deals d
left outer join s on (d.__status_status=s.status_id)
where d.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.deal_uid#/>
</cfquery>
#qDeal.__name#
(#qDeal.status#:
#qDeal.probability_pc#%)
</div>
</div>
<div class="tr">
<div class="th">Услуги</div>
<div class="td">
<cfquery name="qService_">
select services_::text
from elma.additional_agreements a
where a.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.__id#/>
</cfquery>
#qService_.services_# (обратная ссылка)
</div>
</div>
<div class="tr">
<div class="th">base_by</div>
<div class="td">
<cfquery name="qBaseBy">
select b.__id::text
, b.__name
from elma.additional_agreements a
join elma.additional_agreements b on (b.__id = ANY(a.base_by))
where a.__id=<cfqueryparam cfsqltype="cf_sql_other" value=#d.__id#/>
</cfquery>
<a href="additional_agreement.cfm?__id=#qBaseBy.__id#&#tr.fwx#">#qBaseBy.__id#</a>
#qBaseBy.__name#
</div>
</div>
</div>
</cfoutput>
<layout:page section="extension" closeForm="Yes"/>
<cfif len(d.__id)>
<cfquery name="qService">
select
siv.__id
,siv.__name
,siv.user_description
,siv.discount
,siv.cnt
,siv.modifier_code
,siv.abstractive_service_code
,siv.is_actual
,siv.type
,siv.hash
,siv.version
,siv.name_version
,siv.date_accept
,siv.__index
,siv.date_nop
,siv.date_end
,siv.is_easy
,siv.params::text
from elma.deals_services siv
where <cfqueryparam cfsqltype="cf_sql_other" value="#d.__id#"/>=ANY(siv.additional_agreement)
order by type
</cfquery>
<cfoutput>
<h4>Услуги (строки спецификации) (#qService.recordCount#)</h4>
</cfoutput>
<!--- <layout:render_query query=#qService#/> --->
<table class="worktable">
<thead>
<tr>
<th>__id</th>
<!--- <th>__name</th> --->
<th>user_description</th>
<th>Кол-во</th>
<th>Скидка</th>
<th>abstractive_service_code</th>
<th>modifier_code</th>
<th>is_actual</th>
<th>type</th>
<th>hash</th>
<th>version</th>
<th>name_version</th>
<th>date_accept</th>
<th>__index</th>
<th>date_nop</th>
<th>date_end</th>
<th>is_easy</th>
<th>params</th>
</tr>
</thead>
<cfoutput query="qService">
<tr>
<td class="c"><a href="deal_service.cfm?__id=#__id#&#tr.fwx#">#__id#</a></td>
<!--- <td class="c">#__name#</td> --->
<td class="c">#user_description#</td>
<td class="c">#cnt#</td>
<td class="c">#discount#</td>
<td class="c">#abstractive_service_code#</td>
<td class="c">#modifier_code#</td>
<td class="c">#is_actual#</td>
<td class="c">#type#</td>
<td class="c">#hash#</td>
<td class="c">#version#</td>
<td class="c">#name_version#</td>
<td class="c">#date_accept#</td>
<td class="c">#__index#</td>
<td class="c">#dateFormat(date_nop,'YYYY-MM-DD')#</td>
<td class="c">#dateFormat(date_end,'YYYY-MM-DD')#</td>
<td class="c"><cfif is_easy GT 0>Простая<cfelse>Композитная</cfif></td>
<td class="c">#params#</td>
</tr>
</cfoutput>
</table>
</cfif>
<layout:page section="footer"/>