097 extra columns, diags moved to sql, legend extended
This commit is contained in:
@@ -572,6 +572,21 @@ WITH
|
||||
|
||||
SELECT
|
||||
<d:field_set titleMapOut="titleMap" lengthOut="fieldCount">
|
||||
<d:field>s.cnt as occurrences_spec</d:field>
|
||||
<d:field>m.cnt as occurrences_metric</d:field>
|
||||
<d:field title="Точное соотв. специф. - метр.">CASE WHEN (m.cnt=1 AND s.cnt=1) THEN 1 ELSE 0 END as exact_match</d:field>
|
||||
<d:field title="Диагностика">
|
||||
CASE
|
||||
WHEN (m.cnt=1 AND s.cnt=1) THEN 'EXACT MATCH'
|
||||
WHEN (m.cnt>1 AND s.cnt>1) THEN 'CRITICAL: Many-to-Many Explosion (Duplicates on BOTH sides)'
|
||||
WHEN (s.cnt>1) THEN 'DUP: Multiple entries in Spec'
|
||||
WHEN (m.cnt>1) THEN 'DUP: Multiple entries in Metrics'
|
||||
WHEN (coalesce(m.cnt,0)=0 AND s.cnt>0) THEN 'ORPHAN: Only in Spec'
|
||||
WHEN (m.cnt>0 AND coalesce(s.cnt,0)=0) THEN 'ORPHAN: Only in Metrics'
|
||||
ELSE 'Other Discrepancy'
|
||||
END as diag
|
||||
</d:field>
|
||||
|
||||
<d:field title="WZ">coalesce(coalesce(c.wz, m.wz), s.wz) as wz</d:field>
|
||||
<d:field title="WZ spec">s.wz as wzs</d:field>
|
||||
<d:field title="WZ contragent">c.wz as wzc</d:field>
|
||||
@@ -586,8 +601,8 @@ SELECT
|
||||
<d:field title="Тип по спец.">s.type</d:field>
|
||||
<d:field title="Ед.изм.">s.ed_izm</d:field>
|
||||
<d:field title="Цена &##8381; с НДС" cfSqlType="CF_SQL_NUMERIC">
|
||||
CASE
|
||||
-- Isolate the 3rd decimal place using MOD instead of %
|
||||
CASE --inline implementation of gaussian round to 2 decimal places
|
||||
-- Isolate the 3rd decimal place using MOD instead of %, hsql syntax
|
||||
WHEN ABS(MOD(TRUNCATE(s.discounted_price * 1000, 0), 10)) = 5
|
||||
AND ABS(MOD(TRUNCATE(s.discounted_price * 100, 0), 2)) = 0
|
||||
-- If it's a perfect .xx5 tie and the 2nd digit is EVEN, shave off the 5
|
||||
@@ -627,9 +642,8 @@ SELECT
|
||||
<d:field title="Email отв-го">c.responsible_email</d:field>
|
||||
<d:field title="Статус отв-го">c.responsible_status</d:field>
|
||||
|
||||
<d:field>s.cnt AS occurrences_spec</d:field>
|
||||
<d:field>m.cnt AS occurrences_metric</d:field>
|
||||
<!---<d:field>COUNT(*) OVER(PARTITION BY COALESCE(s.wz, m.wz), COALESCE(s.sku_code, m.code)) AS total_row_cardinality</d:field> --->
|
||||
|
||||
|
||||
</d:field_set>
|
||||
<!--- --,'***' as delim,s.* --->
|
||||
FROM metric m
|
||||
@@ -725,6 +739,8 @@ S3 операции и трафик: <b<cfif datediff("h",qS3OpsTrfAge.dt_load,
|
||||
|
||||
<a href="#request.thisPage#?output_json&dt_start=#dateFormat(dt_start,'YYYY-MM-DD')#&dt_finish=#dateFormat(dt_finish,'YYYY-MM-DD')#&inner_join=#local.inner_join#&only_articles_in_spec=#local.only_articles_in_spec#&code=#code#&wz=#wz#" title="экспорт в json" style="margin-left:.5em; height:100%;" target="_blank"><img src="img/json.svg" style="vertical-align:text-bottom;" width="13" height="13"/></a>
|
||||
<i><b>(перед выгрузкой отчета на произвольную дату или с параметрами сначала просмотрите его в браузере)</b></i>
|
||||
<br/>
|
||||
<span class="gray">серая строка</span> - нет метрик; <span class="err">красное</span> число в поле "Кол-во специф." - для PAYG в спецификации кол-во не 1
|
||||
|
||||
</cfoutput>
|
||||
<table class="worktable">
|
||||
@@ -759,11 +775,11 @@ S3 операции и трафик: <b<cfif datediff("h",qS3OpsTrfAge.dt_load,
|
||||
<td width="3%">Сырая метрика</td>
|
||||
<td width="3%">Приведен­ная метрика</td>
|
||||
|
||||
<td width="3%">Цена ₽ до ск. с НДС</td>
|
||||
<td width="3%">Цена ₽ co ск. с НДС без окр.</td>
|
||||
<td width="3%">Кол-во сервиса</td>
|
||||
<!--- <td width="3%">Цена ₽ до ск. с НДС</td>
|
||||
<td width="3%">Цена ₽ co ск. с НДС без окр.</td> --->
|
||||
<!--- <td width="3%">Кол-во сервиса</td> --->
|
||||
<!--- <td width="3%">Скидка на сервис</td> --->
|
||||
<td width="3%">Кол-во комп-та</td>
|
||||
<!--- <td width="3%">Кол-во комп-та</td> --->
|
||||
<!--- <td width="3%">Скидка на комп-т %</td> --->
|
||||
|
||||
<!--- <td width="5%">Договор</td>
|
||||
@@ -806,22 +822,9 @@ S3 операции и трафик: <b<cfif datediff("h",qS3OpsTrfAge.dt_load,
|
||||
<!--- детализация --->
|
||||
<tr<cfif !len(unit)> class="gray"</cfif>>
|
||||
<td>#currentRow#</a></td>
|
||||
<td>#occurrences_spec#|#occurrences_metric#
|
||||
<cfif occurrences_spec EQ 1 AND occurrences_metric EQ 1>
|
||||
<span style="color:green">EXACT MATCH</span>
|
||||
<cfelseif occurrences_spec GT 1 AND occurrences_metric GT 1 >
|
||||
<span style="color:red">CRITICAL: Many-to-Many Explosion (Duplicates on BOTH sides)</span>
|
||||
<cfelseif occurrences_spec GT 1 >
|
||||
<span style="color:red">DUPLICATION: Multiple entries for this key in Spec</span>
|
||||
<cfelseif occurrences_metric GT 1>
|
||||
<span style="color:red">DUPLICATION: Multiple entries for this key in Metrics</span>
|
||||
<cfelseif occurrences_spec GT 0 AND NOT occurrences_metric GT 0>
|
||||
<span style="color:red">ORPHAN: Only in Spec</span>
|
||||
<cfelseif NOT occurrences_spec GT 0 AND occurrences_metric GT 0>
|
||||
<span style="color:red">ORPHAN: Only in Metrics</span>
|
||||
<cfelse>
|
||||
<span style="color:red">Other Discrepancy</span>
|
||||
</cfif>
|
||||
<td<cfif exact_match GT 0> style="color:green"<cfelse> style="color:red"</cfif>>
|
||||
#occurrences_spec#|#occurrences_metric#
|
||||
#diag#
|
||||
</td>
|
||||
<td>#abstract_service#<cfif len(modifier)>: #modifier#</cfif></a></td>
|
||||
<td><div<cfif type EQ 3> style="background:lightgreen;color:black;"</cfif>>#s_code#</div></td>
|
||||
@@ -833,7 +836,6 @@ S3 операции и трафик: <b<cfif datediff("h",qS3OpsTrfAge.dt_load,
|
||||
<td class="r"><!--- #free_tier# ---></td>
|
||||
<td></td>
|
||||
<td class="c" style="font-size:80%;">#unit# <cfif len(ed_izm)>[#ed_izm#]</cfif></td><!--- #len(unit)?unit:'['& ed_izm &']'# --->
|
||||
<!--- <td class="r">#gaussianRound(discounted_price,2)#</td> --->
|
||||
<td class="r">#discounted_price#</td>
|
||||
<td class="r"></td>
|
||||
|
||||
@@ -855,10 +857,10 @@ S3 операции и трафик: <b<cfif datediff("h",qS3OpsTrfAge.dt_load,
|
||||
|
||||
<!--- сырые исходные данные без округлений --->
|
||||
<!--- <td class="r">#price#</td> --->
|
||||
<td class="r">#discounted_price#</td><!--- style="word-wrap:break-word" --->
|
||||
<td class="r">#service_quantity#</td>
|
||||
<!--- <td class="r">#discounted_price#</td> ---><!--- style="word-wrap:break-word" --->
|
||||
<!--- <td class="r">#service_quantity#</td> --->
|
||||
<!--- <td class="r">#service_discount#</td> --->
|
||||
<td class="r">#component_quantity#</td>
|
||||
<!--- <td class="r">#component_quantity#</td> --->
|
||||
<!--- <td class="r">#component_discount#</td> --->
|
||||
|
||||
<!--- <td><a href="contract.cfm?__id=#contract_uid#&#tr.fwx#">#contract#</a></td>
|
||||
@@ -882,7 +884,6 @@ S3 операции и трафик: <b<cfif datediff("h",qS3OpsTrfAge.dt_load,
|
||||
<td class="b r">#gaussianRoundSafe(cost_dimension_1,2)#</td>
|
||||
<td colspan="7"></td>
|
||||
<td class="b r" title="сумма корректна, если нет замножения строк из-за наличия PAYG и FIX по одному артикулу">#request.roundSafe(accum_metric_dimension_1_all,3)#<!--- #final_metric_dimension_1_all# ---></td>
|
||||
<td colspan="100"></td>
|
||||
</tr>
|
||||
</cfoutput><!--- serviceStart --->
|
||||
</cfoutput><!--- code --->
|
||||
|
||||
Reference in New Issue
Block a user