intermediate draft 4
This commit is contained in:
@@ -16,17 +16,17 @@
|
||||
</cffunction>
|
||||
|
||||
<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/>
|
||||
<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="quantity" type="numeric" init="1"/>
|
||||
<d:param field="price" type="numeric" init="0"/>
|
||||
<d:param field="dt_from" type="timestamp" format="yyyy-MM-dd" forNull="" init="#dateFormat(Now(),'YYYY-MM-DD')#"/> <!--- !!! Important yyyy-MM-dd NOT YYYY-MM-DD --->
|
||||
<d:param field="dt_to" type="timestamp" format="yyyy-MM-dd" forNull="" init=""/> <!--- !!! 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#" />
|
||||
@@ -48,7 +48,10 @@
|
||||
<!--- контекст строки всегда известен при создании версии, полный ключ не нужен для него - соответственно, джойн с основной таблицей. При этом мы собираем неверсионную часть данных, а версионная образует параллельную ветку --->
|
||||
<!--- можно обратить внимание на то, что это один джойн, который растет сверху вниз (возможно, ветвится), добавляются таблицы и поля. На самом деле джойны внешние только для удобства отладки - так ошибки виднее --->
|
||||
<cfquery name="qSpecificationItem" datasource="#request.DS#">
|
||||
select s.specification_id, s.specification, i.svc_id, d.contract, d.dt_contract, k.contragent, v.svc
|
||||
select i.svc_id, v.svc
|
||||
,s.specification_id, s.specification, s.contract_id
|
||||
,d.contract, d.dt_contract, d.contragent_id
|
||||
,k.contragent
|
||||
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)
|
||||
@@ -127,85 +130,74 @@
|
||||
|
||||
<cfoutput>
|
||||
<input type="hidden" name="specification_item_uid" value="#d.specification_item_uid#"/>
|
||||
<input type="hidden" name="agreement_version" value="#d.agreement_version#"/>
|
||||
<!--- <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 --->
|
||||
|
||||
<div class="detail">
|
||||
|
||||
<layout:detail_line title="Спецификация">
|
||||
<a href="specification.cfm?specification_id=#qSpecificationItem.specification_id#&#tr.fwx#">#qSpecificationItem.specification#[#qSpecificationItem.specification_id#]</a>
|
||||
<a href="contract.cfm?contract_id=#qSpecificationItem.contract_id#&#tr.fwx#">#qSpecificationItem.contract# #dateFormat(qSpecificationItem.dt_contract,'DD.MM.YYYY')#</a>
|
||||
<a href="contragent.cfm?contragent_id=#qSpecificationItem.contragent_id#&#tr.fwx#">#qSpecificationItem.contragent# </a>
|
||||
</layout:detail_line>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Спецификация (номер)</div>
|
||||
<div class="td">
|
||||
<a href="specification.cfm?specification_id=#qSpecificationItem.specification_id#&#tr.fwx#">#qSpecificationItem.specification#</a>
|
||||
</div>
|
||||
</div>
|
||||
<layout:detail_line title="Услуга">
|
||||
<a href="svc.cfm?svc_id=#qSpecificationItem.svc_id#&#tr.fwx#">[#d.specification_item_uid#] #qSpecificationItem.svc#</a>
|
||||
</layout:detail_line>
|
||||
|
||||
<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>
|
||||
</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>
|
||||
<!--- <layout:detail_line title="Версия">#d.agreement_version# (версия-номер соглашения)</layout:detail_line> --->
|
||||
<layout:detail_line title="Версия">
|
||||
<cfquery name="qList" datasource="#request.DS#">
|
||||
select a.agreement_version, a.agreement, a.dt_agreement
|
||||
from agreement a
|
||||
where a.contract_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#qSpecificationItem.contract_id#" null=#!isValid('integer',qSpecificationItem.contract_id)#/>
|
||||
order by 1
|
||||
</cfquery>
|
||||
<c:combo
|
||||
query=#qList#
|
||||
combo="agreement_version"
|
||||
id="agreement_version"
|
||||
key="agreement_version"
|
||||
selected="#d.agreement_version#"
|
||||
displayf="##agreement## [##agreement_version##] ##dateFormat(dt_agreement,'DD.MM.YYYY')##"
|
||||
class=""
|
||||
/>
|
||||
(версия-номер соглашения)
|
||||
</layout:detail_line>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Имя для печати</div>
|
||||
<div class="td">
|
||||
<!--- <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_version="#qService.abstract_service# - #qService.modifier#."/>
|
||||
<cfelse>
|
||||
<cfset m_specification_item_version="#qService.abstract_service#."/>
|
||||
</cfif>
|
||||
|
||||
<cfloop query="qSpecificationItemParam">
|
||||
<cfif qSpecificationItemParam.quantity GT 0>
|
||||
<cfset m_param_name="#qSpecificationItemParam.param_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_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>
|
||||
<layout:detail_line title="Имя для печати">
|
||||
<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> --->
|
||||
</layout:detail_line>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Количество</div>
|
||||
<div class="td">
|
||||
<layout:detail_line title="Дата с">
|
||||
<input type="date" name="dt_from" id="dt_from" value="#dateFormat(d.dt_from,"YYYY-MM-DD")#"/>
|
||||
<button type="button" onclick="document.getElementById('dt_from').value='#DateFormat(Now(), 'YYYY-MM-DD')#';">Сегодня</button>
|
||||
</layout:detail_line>
|
||||
|
||||
<layout:detail_line title="Дата по">
|
||||
<input type="date" name="dt_to" id="dt_to" value="#dateFormat(d.dt_to,"YYYY-MM-DD")#"/>
|
||||
<button type="button" onclick="document.getElementById('dt_to').value='#DateFormat(Now(), 'YYYY-MM-DD')#';">Сегодня</button>
|
||||
</layout:detail_line>
|
||||
|
||||
<layout:detail_line title="Количество">
|
||||
<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="td">
|
||||
<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>
|
||||
</layout:detail_line>
|
||||
|
||||
<layout:detail_line title="Цена">
|
||||
<input type="text" name="price" id="price" value="#d.price#" size="10" class="r"/>
|
||||
</layout:detail_line>
|
||||
|
||||
<layout:detail_line title="Создано">
|
||||
#dateFormat(d.dt_created,'DD.MM.YYYY')# #timeFormat(d.dt_created,'HH:MM')#
|
||||
#qDecoration.creator# <cfif len(qDecoration.creator_shortname)>(#qDecoration.creator_shortname#)</cfif>
|
||||
|
||||
Изменено
|
||||
#dateFormat(d.dt_updated,'DD.MM.YYYY')# #timeFormat(d.dt_updated,'HH:MM')#
|
||||
#qDecoration.updater# <cfif len(qDecoration.updater_shortname)>(#qDecoration.updater_shortname#)</cfif>
|
||||
</layout:detail_line>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Создано</div>
|
||||
<div class="td">
|
||||
#dateFormat(d.dt_created,'DD.MM.YYYY')# #timeFormat(d.dt_created,'HH:MM')#
|
||||
#qDecoration.creator# <cfif len(qDecoration.creator_shortname)>(#qDecoration.creator_shortname#)</cfif>
|
||||
|
||||
Изменено
|
||||
#dateFormat(d.dt_updated,'DD.MM.YYYY')# #timeFormat(d.dt_updated,'HH:MM')#
|
||||
#qDecoration.updater# <cfif len(qDecoration.updater_shortname)>(#qDecoration.updater_shortname#)</cfif>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</cfoutput>
|
||||
@@ -213,7 +205,7 @@
|
||||
<layout:page section="extension" closeForm="Yes"/>
|
||||
|
||||
<cfif len(d.specification_item_uid) AND d.agreement_version GT 0>
|
||||
<cfoutput>
|
||||
<!--- <cfoutput>
|
||||
<p>
|
||||
Компоненты (#qSpecificationItemParam.recordCount#)
|
||||
<!---<cfif pageInfo.writePermitted()>
|
||||
@@ -226,7 +218,7 @@
|
||||
</cfif>--->
|
||||
</p>
|
||||
</cfoutput>
|
||||
<table class="worktable">
|
||||
<table class="worktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
@@ -271,12 +263,10 @@
|
||||
</td>
|
||||
</tr>
|
||||
</cfoutput>
|
||||
</table>
|
||||
</table> --->
|
||||
|
||||
</cfif>
|
||||
*** Можно переделать на прямой ввод в форму. Можно однородные позиции выбирать из списка, но тогда вариант выбрать 2 разных интерфейсно непонятно как реализовывать.
|
||||
поскольку спека только для демонстрации, может этого и не делать?
|
||||
Цену базовую показать
|
||||
Здесь могли бы быть компоненты (но мы их пока не запилили)
|
||||
|
||||
|
||||
<layout:page section="footer"/>
|
||||
|
||||
Reference in New Issue
Block a user