intermediate draft
This commit is contained in:
@@ -15,13 +15,18 @@
|
||||
<cfreturn htmlEditFormat(s)/>
|
||||
</cffunction>
|
||||
|
||||
<m:prepare_detail entity="specification_item" key="specification_item_uid" pageInfoOut="pageInfo"/>
|
||||
<m:prepare_detail entity="specification_item_version" key="specification_item_uid" pageInfoOut="pageInfo"/>
|
||||
<!--- так, а у нас ключ составной --->
|
||||
|
||||
<d:bean readonly=#!pageInfo.writePermitted()# table="#pageInfo.entity#" datasource="#request.DS#" output="d" status="status">
|
||||
<d:param field="specification_item_uid" type="guid" key autoincrement/>
|
||||
<d:param field="specification_id" type="integer" required/>
|
||||
<d:param field="svc_id" type="integer" required/>
|
||||
<!--- <d:param field="specification_item" type="varchar" size="1023" preprocessor=#cleanInput#/> можно было оставить здесь --->
|
||||
<d:param field="specification_item_uid" type="guid" key/>
|
||||
<d:param field="agreement_version" type="integer" key/>
|
||||
|
||||
<d:param field="specification_item_version" type="varchar" size="1023" preprocessor=#cleanInput#/>
|
||||
<d:param field="quantity" type="numeric"/>
|
||||
<d:param field="price" type="numeric"/>
|
||||
<d:param field="dt_from" type="timestamp" format="yyyy-MM-dd" forNull="" init="#Now()#"/> <!--- !!! Important yyyy-MM-dd NOT YYYY-MM-DD --->
|
||||
<d:param field="dt_to" type="timestamp" format="yyyy-MM-dd" forNull="" init="#Now()#"/> <!--- !!! Important yyyy-MM-dd NOT YYYY-MM-DD --->
|
||||
|
||||
<d:param field="creator_id" type="integer" value="#request.usr_id#" skipUpdate/>
|
||||
<d:param field="updater_id" type="integer" value="#request.usr_id#" />
|
||||
@@ -32,34 +37,38 @@
|
||||
<m:dispatch_detail
|
||||
usePRG="No"<!---*** --->
|
||||
pageInfo=#pageInfo#
|
||||
id="#d.specification_item_uid#"
|
||||
id=""
|
||||
queryString="#request.thisPage#?specification_item_uid=#d.specification_item_uid#&agreement_version=#d.agreement_version#"
|
||||
defaultBackUrl="specification_item.cfm?specification_item_uid=#d.specification_item_uid#"
|
||||
status=#pageInfo.status#
|
||||
trackOut="tr"
|
||||
idAttributesOut="id"
|
||||
/>
|
||||
|
||||
<cfquery name="qSpecification" datasource="#request.DS#">
|
||||
select s.specification_id, s.specification
|
||||
from specification s
|
||||
where s.specification_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.specification_id#" null=#!isNumeric(d.specification_id)#/>
|
||||
<!--- контекст строки всегда известен при создании версии, полный ключ не нужен для него - соответственно, джойн с основной таблицей. При этом мы собираем неверсионную часть данных, а версионная образует параллельную ветку --->
|
||||
<!--- можно обратить внимание на то, что это один джойн, который растет сверху вниз (возможно, ветвится), добавляются таблицы и поля. На самом деле джойны внешние только для удобства отладки - так ошибки виднее --->
|
||||
<cfquery name="qSpecificationItem" datasource="#request.DS#">
|
||||
select s.specification_id, s.specification, i.svc_id, d.contract, d.dt_contract, k.contragent, v.svc
|
||||
from specification_item i
|
||||
left join specification s on (i.specification_id=s.specification_id)
|
||||
left join contract d on (s.contract_id=d.contract_id)
|
||||
left join contragent k on (d.contragent_id=k.contragent_id)
|
||||
left join svc v on (i.svc_id=v.svc_id)
|
||||
where i.specification_item_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#d.specification_item_uid#" null=#!IsValid('guid',d.specification_item_uid)#/>
|
||||
</cfquery>
|
||||
|
||||
<cfquery name="qSvc" datasource="#request.DS#">
|
||||
select s.svc, s.code, s.measure_id
|
||||
from svc s
|
||||
where s.svc_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.svc_id#" null=#!isNumeric(d.svc_id)#/>
|
||||
</cfquery>
|
||||
|
||||
|
||||
<!--- <cfquery name="qCost" datasource="#request.DS#">
|
||||
select sum(sip.price*sip.quantity) as cost
|
||||
from specification_item_param sip
|
||||
where sip.specification_item_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.specification_item_id#" null=#!isNumeric(d.specification_item_id)#/>
|
||||
from specification_item_version_param sip
|
||||
where sip.specification_item_version_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.specification_item_version_id#" null=#!isNumeric(d.specification_item_version_id)#/>
|
||||
</cfquery> --->
|
||||
|
||||
|
||||
<!--- <cfquery name="qSpecificationItemParam" datasource="#request.DS#">
|
||||
select
|
||||
sip.specification_item_param_id
|
||||
sip.specification_item_version_param_id
|
||||
,sp.service_param_id
|
||||
,sp.param_id
|
||||
,sip.price
|
||||
@@ -73,8 +82,8 @@
|
||||
,m.measure_short
|
||||
,spp.min_price
|
||||
from service_param sp
|
||||
left outer join specification_item_param sip
|
||||
on (sp.service_param_id=sip.service_param_id AND sip.specification_item_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.specification_item_id#"/>)
|
||||
left outer join specification_item_version_param sip
|
||||
on (sp.service_param_id=sip.service_param_id AND sip.specification_item_version_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.specification_item_version_id#"/>)
|
||||
left outer join param p on (sp.param_id=p.param_id)
|
||||
left outer join abstract_service_param_class ac on (sp.abstract_service_param_class_id=ac.abstract_service_param_class_id)
|
||||
left outer join param_class c on (ac.param_class_id=c.param_class_id)
|
||||
@@ -90,10 +99,11 @@
|
||||
<cfquery name="qDecoration" datasource="#request.DS#">
|
||||
select
|
||||
a.login as creator, a.shortname as creator_shortname, m.login as updater, m.shortname as updater_shortname
|
||||
from specification_item e
|
||||
from specification_item_version e
|
||||
left outer join usr a on (e.creator_id=a.usr_id)
|
||||
left outer join usr m on (e.updater_id=m.usr_id)
|
||||
where e.specification_item_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#d.specification_item_uid# null=#!isValid('guid',d.specification_item_uid)#/>
|
||||
AND e.agreement_version=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.agreement_version#" null=#!isValid('integer',d.agreement_version)#/>
|
||||
</cfquery>
|
||||
|
||||
</m:silent><!---
|
||||
@@ -105,10 +115,8 @@
|
||||
---><layout:page section="header" pageInfo=#pageInfo#>
|
||||
<layout:attribute name="title">
|
||||
<cfoutput>
|
||||
Строка спецификации (экземпляр услуги)
|
||||
<cfif len(d.specification_item_uid)>
|
||||
[#d.specification_item_uid#]
|
||||
</cfif>
|
||||
Версия строки спецификации
|
||||
[#d.specification_item_uid#]:[#d.agreement_version#]
|
||||
</cfoutput>
|
||||
</layout:attribute>
|
||||
</layout:page>
|
||||
@@ -119,7 +127,7 @@
|
||||
|
||||
<cfoutput>
|
||||
<input type="hidden" name="specification_item_uid" value="#d.specification_item_uid#"/>
|
||||
<input type="hidden" name="specification_id" value="#d.specification_id#"/>
|
||||
<input type="hidden" name="agreement_version" value="#d.agreement_version#"/>
|
||||
<input type="hidden" name="track" value="#tr.self#"/>
|
||||
<input type="hidden" name="pass" value=""/><!--- pass marker to prevent save on submit --->
|
||||
|
||||
@@ -129,79 +137,61 @@
|
||||
<div class="tr">
|
||||
<div class="th">Спецификация (номер)</div>
|
||||
<div class="td">
|
||||
<a href="specification.cfm?specification_id=#d.specification_id#&#tr.fwx#">#qSpecification.specification#</a>
|
||||
<a href="specification.cfm?specification_id=#qSpecificationItem.specification_id#&#tr.fwx#">#qSpecificationItem.specification#</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Услуга</div>
|
||||
<div class="td">
|
||||
<cfquery name="qList" datasource="#request.DS#">
|
||||
select s.svc_id, s.code
|
||||
from svc s
|
||||
order by 2
|
||||
</cfquery>
|
||||
<c:combo
|
||||
query=#qList#
|
||||
combo="svc_id"
|
||||
id="svc_id"
|
||||
key="svc_id"
|
||||
selected="#d.svc_id#"
|
||||
displayf="##code## ##svc##
|
||||
empty=""
|
||||
class=""
|
||||
onchange="submit();"
|
||||
/>
|
||||
<cfif d.service_id GT 0>
|
||||
<c:link_view_edit canWrite=#pageInfo.writePermitted()# entity="svc" id=#d.svc_id# fwx=#tr.fwx#/>
|
||||
</cfif>
|
||||
|
||||
<a href="svc.cfm?svc_id=#qSpecificationItem.svc_id#&#tr.fwx#">[#d.specification_item_uid#] #qSpecificationItem.svc#</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Версия</div>
|
||||
<div class="td">
|
||||
<!--- <a href="svc.cfm?svc_id=#qSpecificationItem.svc_id#&#tr.fwx#">[#d.specification_item_uid#] #qSpecificationItem.svc#</a> --->
|
||||
#d.agreement_version#
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--- <div class="tr">
|
||||
<div class="tr">
|
||||
<div class="th">Имя для печати</div>
|
||||
<div class="td">
|
||||
<cfset m_specification_item=#d.specification_item#/>
|
||||
<cfif len(m_specification_item) EQ 0 AND d.service_id GT 0>
|
||||
<!--- <cfset m_specification_item_version=#d.specification_item_version#/>
|
||||
<cfif len(m_specification_item_version) EQ 0 AND d.service_id GT 0>
|
||||
<cfif len(qService.modifier)>
|
||||
<cfset m_specification_item="#qService.abstract_service# - #qService.modifier#."/>
|
||||
<cfset m_specification_item_version="#qService.abstract_service# - #qService.modifier#."/>
|
||||
<cfelse>
|
||||
<cfset m_specification_item="#qService.abstract_service#."/>
|
||||
<cfset m_specification_item_version="#qService.abstract_service#."/>
|
||||
</cfif>
|
||||
|
||||
<cfloop query="qSpecificationItemParam">
|
||||
<cfif qSpecificationItemParam.quantity GT 0>
|
||||
<!--- <cfif len(qSpecificationItemParam.param_class)>
|
||||
<cfset m_param_name="#qSpecificationItemParam.param_class#/#qSpecificationItemParam.param#"/>
|
||||
<cfelse>
|
||||
<cfset m_param_name="#qSpecificationItemParam.param#"/>
|
||||
</cfif> --->
|
||||
<cfset m_param_name="#qSpecificationItemParam.param_short#"/>
|
||||
<cfset m_specification_item="#m_specification_item# #m_param_name# #qSpecificationItemParam.quantity# #qSpecificationItemParam.measure_short#;"/>
|
||||
<cfset m_specification_item_version="#m_specification_item_version# #m_param_name# #qSpecificationItemParam.quantity# #qSpecificationItemParam.measure_short#;"/>
|
||||
</cfif>
|
||||
</cfloop>
|
||||
|
||||
</cfif>
|
||||
|
||||
<textarea name="specification_item" id="specification_item" rows="3" cols="90" style="width:99%;"/>#m_specification_item#</textarea>
|
||||
<button type="button" onclick="document.getElementById('specification_item').value='';submit();">Сформировать</button>
|
||||
</cfloop>
|
||||
</cfif> --->
|
||||
<textarea name="specification_item_version" id="specification_item_version" rows="2" cols="90" style="width:99%;"/><cfif len(d.specification_item_version)>#d.specification_item_version#<cfelse>#qSpecificationItem.svc#</cfif></textarea>
|
||||
<button type="button" onclick="document.getElementById('specification_item_version').value='';submit();">Сформировать</button>
|
||||
</div>
|
||||
</div> --->
|
||||
</div>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Количество</div>
|
||||
<div class="td">
|
||||
<input type="text" name="quantity" value="#request.roundSafe(d.quantity,qService.precision)#" size="5" class="r"/><!---*** Халява с точностью ---><!--- <cftry>#round(d.quantity,qService.precision)#<cfcatch type="ANY"></cfcatch></cftry> --->
|
||||
<input type="text" name="quantity" value="#d.quantity#" size="5" class="r"/><!---*** Халява с точностью ---><!--- <cftry>#round(d.quantity,qService.precision)#<cfcatch type="ANY"></cfcatch></cftry> --->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Стоимость</div>
|
||||
<div class="th">Цена</div>
|
||||
<div class="td">
|
||||
<input type="text" name="price" id="price" value="#d.price#" size="15" class="r"/>
|
||||
<i>подставить сумму по позициям: </i>
|
||||
<b><a onclick="document.getElementById('price').value='#qCost.cost#';return false;" style="cursor:pointer;">#qCost.cost#</a></b>
|
||||
<input type="text" name="price" id="price" value="#d.price#" size="10" class="r"/>
|
||||
<!--- <i>подставить сумму по позициям: </i>
|
||||
<b><a onclick="document.getElementById('price').value='#qCost.cost#';return false;" style="cursor:pointer;">#qCost.cost#</a></b> --->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -222,13 +212,13 @@
|
||||
|
||||
<layout:page section="extension" closeForm="Yes"/>
|
||||
|
||||
<cfif d.specification_item_id GT 0>
|
||||
<cfif len(d.specification_item_uid) AND d.agreement_version GT 0>
|
||||
<cfoutput>
|
||||
<p>
|
||||
Компоненты (#qSpecificationItemParam.recordCount#)
|
||||
<!---<cfif pageInfo.writePermitted()>
|
||||
<cfoutput>
|
||||
<cfset addUrl="specification_item_param.cfm?specification_item_param=-1&specification_item_id=#d.specification_item_id#&#tr.fwx#"/>
|
||||
<cfset addUrl="specification_item_version_param.cfm?specification_item_version_param=-1&specification_item_version_id=#d.specification_item_version_id#&#tr.fwx#"/>
|
||||
<button type="button" class="maincontrol" onclick="document.location.href='#addUrl#'">
|
||||
<a href="#addUrl#">Создать</a>
|
||||
</button>
|
||||
@@ -252,13 +242,13 @@
|
||||
<cfoutput query="qSpecificationItemParam">
|
||||
<tr>
|
||||
<td>
|
||||
<cfif specification_item_param_id GT 0>
|
||||
<a href="specification_item_param.cfm?specification_item_param_id=#specification_item_param_id#&#tr.fwx#">
|
||||
<cfif specification_item_version_param_id GT 0>
|
||||
<a href="specification_item_version_param.cfm?specification_item_version_param_id=#specification_item_version_param_id#&#tr.fwx#">
|
||||
<img src="img/edit.gif"/>
|
||||
</a>
|
||||
</cfif>
|
||||
<!--- <cfif NOT (specification_item_param_id GT 0)> --->
|
||||
<a href="specification_item_param.cfm?service_param_id=#service_param_id#&specification_item_id=#d.specification_item_id#&#tr.fwx#">
|
||||
<!--- <cfif NOT (specification_item_version_param_id GT 0)> --->
|
||||
<a href="specification_item_version_param.cfm?service_param_id=#service_param_id#&specification_item_version_id=#d.specification_item_version_id#&#tr.fwx#">
|
||||
<img src="img/add.gif"/>
|
||||
</a>
|
||||
</td>
|
||||
@@ -275,8 +265,8 @@
|
||||
<td class="r">#min_price#</td>
|
||||
<td class="r">#price#</td>
|
||||
<td class="c">
|
||||
<cfif specification_item_param_id GT 0>
|
||||
<c:link_del canWrite=#pageInfo.writePermitted()# entity="specification_item_param" id=#specification_item_param_id# fwx=#tr.fwx#/>
|
||||
<cfif specification_item_version_param_id GT 0>
|
||||
<c:link_del canWrite=#pageInfo.writePermitted()# entity="specification_item_version_param" id=#specification_item_version_param_id# fwx=#tr.fwx#/>
|
||||
</cfif>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
Reference in New Issue
Block a user