029 reconciliation
This commit is contained in:
+1
-1
@@ -97,7 +97,7 @@
|
||||
<!--- <cfdump var=#this.datasources#/> --->
|
||||
|
||||
<cfset request.RECORDS_PER_PAGE=500/>
|
||||
<cfset request.APP_VERSION="0.00.028"/>
|
||||
<cfset request.APP_VERSION="0.00.029"/>
|
||||
<cfset request.STAND=getStand()/>
|
||||
|
||||
<cflock scope="application" type="readonly" timeout=3>
|
||||
|
||||
+148
-4
@@ -183,13 +183,10 @@
|
||||
<td><a href="additional_agreement.cfm?__id=#base_by_uid#&#tr.fwx#">#base_by_uid#</a></td>
|
||||
<td><a href="additional_agreement.cfm?__id=#base_by_uid#&#tr.fwx#">#base_by_name#</a></td>
|
||||
|
||||
<!--- <td class="c">
|
||||
#dateFormat(dt_contract,'YYYY-MM-DD')#
|
||||
</td> --->
|
||||
</tr>
|
||||
</cfoutput>
|
||||
</table>
|
||||
</cfif>
|
||||
|
||||
<br/>
|
||||
Мы не показываем тут сделки, поскольку связь со сделкой у договора не прямая и не обязательная. Сделки относятся к контрагенту, а не к договору. Сделка может быть связана с договором через дополнительное соглашение (включая нулевое соглашение, по умолчанию)
|
||||
<!--- <cfquery name="qDeal">
|
||||
@@ -206,5 +203,152 @@
|
||||
from elma.deals d limit 10
|
||||
</cfquery> --->
|
||||
|
||||
<!--- ----------------------------------------------------- --->
|
||||
<!--- ----------------------------------------------------- --->
|
||||
<!--- ----------------------------------------------------- --->
|
||||
|
||||
<cfquery name="qService">
|
||||
with
|
||||
status(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
|
||||
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
|
||||
,a.__id::text as additional_agreement_uid
|
||||
,a.__name as additional_agreement
|
||||
,p.price
|
||||
,p.cnt as p_cnt
|
||||
,p.ed_izm
|
||||
,p.code
|
||||
,p.discount as p_discount
|
||||
,p.__id as p_uid
|
||||
,p.name
|
||||
/*,(select
|
||||
sum(siv.cnt*(100-COALESCE(siv.discount,0))/100*p.price*p.cnt*(100-COALESCE(p.discount,0))/100)
|
||||
from elma.service_parametrs p
|
||||
where p.__id = ANY (siv.params)
|
||||
AND p."__deletedAt" IS NULL
|
||||
) as line_cost
|
||||
,(select count(*)
|
||||
from elma.service_parametrs p
|
||||
where p.__id = ANY (siv.params)
|
||||
AND p."__deletedAt" IS NULL
|
||||
) as param_cnt*/
|
||||
,s.probability_pc
|
||||
,d.__index
|
||||
,d.__id as deal_uid
|
||||
from elma.deals_services siv
|
||||
join elma.deals d on d.__id=ANY(siv.deal)
|
||||
join status s on (d.__status_status=s.status_id)
|
||||
join elma.service_parametrs p ON (p.__id = ANY (siv.params) AND p."__deletedAt" IS NULL)
|
||||
left outer join elma.additional_agreements a on (a.__id=ANY(siv.additional_agreement))
|
||||
where a.contract_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#d.__id#" null=#!isValid('guid',d.__id)#/>
|
||||
and siv.is_actual
|
||||
and a.is_actual
|
||||
order by siv.version::int
|
||||
</cfquery>
|
||||
|
||||
<cfoutput>
|
||||
<h4>Услуги (версии строк спецификации, только актуальные) (#qService.recordCount#) </h4>
|
||||
</cfoutput>
|
||||
|
||||
<!--- <layout:render_query query=#qService#/> --->
|
||||
<table class="worktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>__index</th>
|
||||
<th>Код</th>
|
||||
<th width="20%">user_description</th>
|
||||
<th width="25%">Компоненты</th>
|
||||
<th>Кол-во</th>
|
||||
<th>Скидка</th>
|
||||
<th width="5%">Сумма</th>
|
||||
|
||||
<th>type</th>
|
||||
<th>is_actual</th>
|
||||
<th>hash</th>
|
||||
<th>version</th>
|
||||
<th>name_version</th>
|
||||
<th>date_accept</th>
|
||||
<th>__index</th>
|
||||
<th width="5%">date_nop</th>
|
||||
<th width="5%">date_end</th>
|
||||
<th>is_easy</th>
|
||||
|
||||
<th width="7%">additional_agreement</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<cfoutput query="qService" group="__index">
|
||||
<tr>
|
||||
<td class="c"><a href="deal_service.cfm?__id=#__id#&#tr.fwx#" title="__id">#__index#</a></td>
|
||||
<!--- <td class="c">#__name#</td> --->
|
||||
<td class="l">
|
||||
#abstractive_service_code#.#modifier_code#<!--- <cfswitch expression=#type#>
|
||||
<cfcase value=1>-i</cfcase>
|
||||
<cfcase value=2>-f</cfcase>
|
||||
<cfcase value=3>-m</cfcase>
|
||||
</cfswitch> --->
|
||||
</td>
|
||||
<td class="l">#user_description#</td>
|
||||
<td>
|
||||
<table>
|
||||
<cfset cost=0/>
|
||||
<cfoutput group="p_uid">
|
||||
<cfif p_cnt NEQ 0>
|
||||
<tr>
|
||||
<td class="nw">#code#</td>
|
||||
<td>#name#</td>
|
||||
<td>#p_cnt#</td>
|
||||
<td>#ed_izm#</td>
|
||||
<td class="r nw">#nFmt(price,3)#</td>
|
||||
<td class="r">#p_discount#%</td>
|
||||
</tr>
|
||||
<cfset cost+=price*p_cnt*(100-(isNumeric(p_discount)?p_discount:0))/100 />
|
||||
</cfif>
|
||||
</cfoutput>
|
||||
</table>
|
||||
</td>
|
||||
<td class="c">#cnt#</td>
|
||||
<td class="c">#discount#%</td>
|
||||
<td class="r">#nFmt(cost*cnt*(100-(isNumeric(discount)?discount:0))/100)#</td>
|
||||
|
||||
<td class="c">#type#</td>
|
||||
<td class="c">#is_actual#</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">#is_easy#</td>
|
||||
|
||||
<!--- <td class="c">#additional_agreement_uid#</td> --->
|
||||
<td><a href="additional_agreement.cfm?__id=#additional_agreement_uid#&#tr.fwx#">#additional_agreement#</a></td>
|
||||
</tr>
|
||||
</cfoutput>
|
||||
</table>
|
||||
|
||||
</cfif><!--- len(d.__id) --->
|
||||
|
||||
|
||||
<layout:page section="footer"/>
|
||||
+36
-22
@@ -121,7 +121,6 @@
|
||||
</div>
|
||||
|
||||
</cfoutput>
|
||||
сюда добавить сделок, договоров и т.д.
|
||||
|
||||
<layout:page section="extension" closeForm="Yes"/>
|
||||
|
||||
@@ -398,31 +397,29 @@
|
||||
,siv.params::text
|
||||
,a.__id::text as additional_agreement_uid
|
||||
,a.__name as additional_agreement
|
||||
,(select
|
||||
sum(siv.cnt*(100-COALESCE(siv.discount,0))/100*p.price*p.cnt*(100-COALESCE(p.discount,0))/100)
|
||||
from elma.service_parametrs p
|
||||
where p.__id = ANY (siv.params)
|
||||
AND p."__deletedAt" IS NULL
|
||||
) as line_cost
|
||||
,(select count(*)
|
||||
from elma.service_parametrs p
|
||||
where p.__id = ANY (siv.params)
|
||||
AND p."__deletedAt" IS NULL
|
||||
) as param_cnt
|
||||
,p.price
|
||||
,p.cnt as p_cnt
|
||||
,p.ed_izm
|
||||
,p.code
|
||||
,p.discount as p_discount
|
||||
,p.__id as p_uid
|
||||
,p.name
|
||||
,s.probability_pc
|
||||
,d.__index
|
||||
,d.__id as deal_uid
|
||||
from elma.deals_services siv
|
||||
join elma.deals d on d.__id=ANY(siv.deal)
|
||||
join status s on (d.__status_status=s.status_id)
|
||||
join elma.service_parametrs p ON (p.__id = ANY (siv.params) AND p."__deletedAt" IS NULL)
|
||||
left outer join elma.additional_agreements a on (a.__id=ANY(siv.additional_agreement))
|
||||
where d._companies=<cfqueryparam cfsqltype="cf_sql_other" value="#d.__id#" null=#!isValid("guid",d.__id)#/>
|
||||
and siv.is_actual
|
||||
AND siv.is_actual
|
||||
AND a.is_actual
|
||||
order by version::int
|
||||
</cfquery>
|
||||
|
||||
<cfoutput>
|
||||
<h4>Услуги (версии строк спецификации, только актуальные) (#qService.recordCount#) *** здесь не учтено дублирование строк в новых версиях</h4>
|
||||
<h4>Услуги (версии строк спецификации, только актуальные) <!--- (#qService.recordCount#) ---></h4>
|
||||
</cfoutput>
|
||||
|
||||
<!--- <layout:render_query query=#qService#/> --->
|
||||
@@ -431,7 +428,8 @@
|
||||
<tr>
|
||||
<th>__index</th>
|
||||
<!--- <th>__name</th> --->
|
||||
<th width="12%">user_description</th>
|
||||
<th width="20%">user_description</th>
|
||||
<th width="25%">Компоненты</th>
|
||||
<th>Кол-во</th>
|
||||
<th>Скидка%</th>
|
||||
<th width="5%">Сумма</th>
|
||||
@@ -446,19 +444,36 @@
|
||||
<th width="5%">date_nop</th>
|
||||
<th width="5%">date_end</th>
|
||||
<th>is_easy</th>
|
||||
<th>Компонентов</th>
|
||||
<th width="12%">additional_agreement</th>
|
||||
<th width="7%">additional_agreement</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<cfoutput query="qService">
|
||||
<cfoutput query="qService" group="__index">
|
||||
<tr>
|
||||
<td class="c"><a href="deal_service.cfm?__id=#__id#&#tr.fwx#" title="__id">#__index#</a></td>
|
||||
<!--- <td class="c">#__name#</td> --->
|
||||
<td class="l">#user_description#</td>
|
||||
<td>
|
||||
<table>
|
||||
<cfset cost=0/>
|
||||
<cfoutput group="p_uid">
|
||||
<cfif p_cnt NEQ 0>
|
||||
<tr>
|
||||
<td class="nw">#code#</td>
|
||||
<td>#name#</td>
|
||||
<td>#p_cnt#</td>
|
||||
<td>#ed_izm#</td>
|
||||
<td class="r nw">#nFmt(price,3)#</td>
|
||||
<td class="r">#p_discount#%</td>
|
||||
</tr>
|
||||
<cfset cost+=price*p_cnt*(100-(isNumeric(p_discount)?p_discount:0))/100 />
|
||||
</cfif>
|
||||
</cfoutput>
|
||||
</table>
|
||||
</td>
|
||||
<td class="c">#cnt#</td>
|
||||
<td class="c">#discount#</td>
|
||||
<td class="r">#nFmt(line_cost)#</td>
|
||||
<td class="c">#discount#%</td>
|
||||
<td class="r">#nFmt(cost*cnt*(100-(isNumeric(discount)?discount:0))/100)#</td>
|
||||
<td class="l">
|
||||
#abstractive_service_code#.#modifier_code#<!--- <cfswitch expression=#type#>
|
||||
<cfcase value=1>-i</cfcase>
|
||||
@@ -476,7 +491,6 @@
|
||||
<td class="c">#dateFormat(date_nop,'YYYY-MM-DD')#</td>
|
||||
<td class="c">#dateFormat(date_end,'YYYY-MM-DD')#</td>
|
||||
<td class="c">#is_easy#</td>
|
||||
<td class="c">#param_cnt#</td>
|
||||
|
||||
<!--- <td class="c">#additional_agreement_uid#</td> --->
|
||||
<td class="c"><a href="additional_agreement.cfm?__id=#additional_agreement_uid#&#tr.fwx#">#additional_agreement#</a></td>
|
||||
@@ -484,5 +498,5 @@
|
||||
</cfoutput>
|
||||
</table>
|
||||
|
||||
</cfif>
|
||||
</cfif><!--- len(d.__id) --->
|
||||
<layout:page section="footer"/>
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
<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:prepare_ls entity="crm2cloud" accessObject="" pageInfoOut="pageInfo" trackOut="tr"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<cfquery name="qReconciliation">
|
||||
WITH
|
||||
status(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)
|
||||
),
|
||||
line as (
|
||||
SELECT siv.__id as siv_uid, siv.discount, siv.type as line_pricing_model_id
|
||||
,siv.hash as line_key, siv.is_actual as siv_is_actual
|
||||
,siv.version::numeric as line_version
|
||||
,d.__index as deal_index
|
||||
,d._companies
|
||||
,a.index as agreement_version
|
||||
,siv.date_nop::date as dt_from
|
||||
,siv.date_end::date as dt_to
|
||||
,siv.is_easy as is_simple
|
||||
,siv.cnt -- should mutiliply
|
||||
,s.probability_pc
|
||||
,a.__id as agreement_uid, a.contract_uid, a.is_actual as agreement_is_actual, a.deal_uid
|
||||
,d.__name as deal, d.__status_status as deal_status_id
|
||||
--,c.__name as contract
|
||||
,siv.user_description
|
||||
,siv.params
|
||||
--,(SELECT sum(p.price*p.cnt*(100.0-COALESCE(p.discount,0.0))/100.0) FROM elma.service_parametrs p WHERE(p.__id = ANY (siv.params))) as cost
|
||||
FROM elma.deals_services siv
|
||||
JOIN elma.deals d on (d.__id = ANY(siv.deal))
|
||||
JOIN status s on (d.__status_status=s.status_id)
|
||||
LEFT OUTER JOIN elma.additional_agreements a on (a.__id = ANY(siv.additional_agreement))
|
||||
WHERE siv.is_actual AND siv."__deletedAt" IS NULL AND d."__deletedAt" IS NULL AND a."__deletedAt" IS NULL
|
||||
AND a.is_actual
|
||||
AND siv.type IN (2,3)
|
||||
),
|
||||
component as (
|
||||
SELECT
|
||||
price*cnt*(100.0-COALESCE(discount,0))/100.0 as cost
|
||||
,price
|
||||
,cnt
|
||||
,code
|
||||
,__id
|
||||
FROM elma.service_parametrs
|
||||
where "__deletedAt" IS NULL
|
||||
),
|
||||
stair as ( -- рабочая лесенка (инстансы строк, имеющие нетривиальную вероятность)
|
||||
select * FROM (
|
||||
SELECT *,
|
||||
MIN(dt_from) OVER (PARTITION BY line_key ORDER BY deal_index desc) running_min_dt
|
||||
FROM line --WHERE probability_pc > 0
|
||||
) t
|
||||
WHERE t.dt_from = t.running_min_dt
|
||||
),
|
||||
alloc as (select c."WZ" as wz
|
||||
, round(sum(c."VM_RAM_Allocated")) as ram
|
||||
, round(sum(CASE WHEN "VM_is_ON" > 0 THEN c."VM_RAM_Allocated" ELSE 0 END)) as ram_on
|
||||
, round(sum(c."VM_vCPU_count")) as cpu
|
||||
, round(sum(CASE WHEN "VM_is_ON" > 0 THEN c."VM_vCPU_count" ELSE 0 END)) as cpu_on
|
||||
from vmreports.compute c
|
||||
where ts=(select max(ts) from vmreports.compute)
|
||||
group by c."WZ"
|
||||
),
|
||||
disk_alloc as (select c."WZ" as wz
|
||||
, round(sum(c."Disk_Allocated")) as disk_alloc
|
||||
from vmreports.storage c
|
||||
where ts=(select max(ts) from vmreports.storage)
|
||||
group by c."WZ"
|
||||
),
|
||||
sold_ram as (SELECT
|
||||
z.id_klienta as WZ, z.__name as client, z.__id as company_uid, round(sum(c.cnt*o.cnt)) as quantity
|
||||
,count(*) as lines, STRING_AGG(c.code,', ') as codes
|
||||
/*,o.line_key, o.probability_pc, dt_next, o.deal_uid, o.deal, o.agreement_uid, o.line_pricing_model_id,o.dt_from, o.dt_to*/
|
||||
FROM stair o
|
||||
JOIN elma.companies z on (o._companies=z.__id)
|
||||
LEFT OUTER JOIN component c on (c.__id = ANY (o.params))
|
||||
WHERE c.code LIKE 'iaas.ngc.%.ram-_'
|
||||
GROUP BY z.id_klienta, z.__id, z.__name
|
||||
),
|
||||
sold_cpu as (SELECT
|
||||
z.id_klienta as WZ, z.__name as client, z.__id as company_uid, round(sum(c.cnt*o.cnt)) as quantity
|
||||
,count(*) as lines, STRING_AGG(c.code,', ') as codes
|
||||
/*,o.line_key, o.probability_pc, dt_next, o.deal_uid, o.deal, o.agreement_uid, o.line_pricing_model_id,o.dt_from, o.dt_to*/
|
||||
FROM stair o
|
||||
JOIN elma.companies z on (o._companies=z.__id)
|
||||
LEFT OUTER JOIN component c on (c.__id = ANY (o.params))
|
||||
WHERE c.code LIKE 'iaas.ngc.%.vcpu-_'
|
||||
GROUP BY z.id_klienta, z.__id, z.__name
|
||||
),
|
||||
sold_disk as (SELECT
|
||||
z.id_klienta as WZ, z.__name as client, z.__id as company_uid, round(sum(c.cnt*o.cnt)) as quantity
|
||||
,count(*) as lines, STRING_AGG(c.code,', ') as codes
|
||||
/*,o.line_key, o.probability_pc, dt_next, o.deal_uid, o.deal, o.agreement_uid, o.line_pricing_model_id,o.dt_from, o.dt_to*/
|
||||
FROM stair o
|
||||
JOIN elma.companies z on (o._companies=z.__id)
|
||||
LEFT OUTER JOIN component c on (c.__id = ANY (o.params))
|
||||
WHERE c.code SIMILAR TO 'iaas.ngc.%.(ssd|fstssd|sata)-_'
|
||||
GROUP BY z.id_klienta, z.__id, z.__name
|
||||
),
|
||||
deal_stat as (
|
||||
select STRING_AGG(distinct deal_status_id::text,', ') as status_ids
|
||||
, z.id_klienta as WZ
|
||||
from line o join elma.companies z on (o._companies=z.__id)
|
||||
GROUP BY z.id_klienta
|
||||
)
|
||||
|
||||
select
|
||||
r.wz as wz_sold,
|
||||
r.client as client_sold, r.company_uid,
|
||||
a.wz as wz_alloc,
|
||||
ds.status_ids,
|
||||
r.codes as ram_codes,
|
||||
r.quantity as ram_sold,
|
||||
a.ram as ram_alloc,
|
||||
a.ram_on as ram_alloc_on,
|
||||
c.codes as cpu_codes,
|
||||
c.quantity as cpu_sold,
|
||||
a.cpu as cpu_alloc,
|
||||
a.cpu_on as cpu_alloc_on,
|
||||
d.quantity as disk_sold,
|
||||
da.disk_alloc,
|
||||
d.codes as disk_codes
|
||||
from sold_ram r
|
||||
join deal_stat ds on (r.wz=ds.wz)
|
||||
join sold_cpu c on (r.wz=c.wz)
|
||||
left join sold_disk d on (r.wz=d.wz)
|
||||
full join alloc a on (r.wz=a.wz)
|
||||
left join disk_alloc da on (a.wz=da.wz)
|
||||
|
||||
order by 1,3
|
||||
</cfquery>
|
||||
<!--- QoQ does not support join syntax, at least of Lucee 5.4--->
|
||||
|
||||
|
||||
|
||||
<cfif isDefined("output_xls")>
|
||||
<layout:xml qRead=#qCharge# titleMap=#titleMap# filename="#pageInfo.entity#.xml"/>
|
||||
<cfabort/>
|
||||
</cfif><cfif isDefined("output_json")>
|
||||
<layout:json qRead=#qCharge# titleMap=#titleMap# filename="#pageInfo.entity#.json"/>
|
||||
<cfabort/>
|
||||
</cfif><!---
|
||||
---><layout:page section="header" pageInfo=#pageInfo#>
|
||||
|
||||
<layout:attribute name="title">
|
||||
<cfoutput><b>Сверка CRM - Cloud</b></cfoutput>
|
||||
</layout:attribute>
|
||||
<layout:attribute name="controls">
|
||||
<!---skip filter link, filter is not implemented--->
|
||||
<!---<layout:language_switch/>--->
|
||||
</layout:attribute>
|
||||
</layout:page>
|
||||
|
||||
<!--- <cfdump var=#qReconciliation# abort=true/> --->
|
||||
|
||||
<cfoutput>
|
||||
<!--- <form method="post" action="">
|
||||
Период с <input type="text" name="dt_start" value="#dateFormat(dt_start,'YYYY-MM-DD')#"/>
|
||||
по <input type="text" name="dt_finish" value="#dateFormat(dt_finish,'YYYY-MM-DD')#"/>
|
||||
<input type="submit" style="cursor:pointer;"/>
|
||||
<input type="submit" name="DEBUG" value="DEBUG" style="cursor:pointer;"/>
|
||||
</form> --->
|
||||
<!--- Часов в периоде: <b>#hours#</b> Строк в отчете: <b>#qCharge.recordCount#</b><br/>
|
||||
Актуальность данных:
|
||||
VCD Computing: <b>#dateFormat(qComputingAge.dt_load,'YYYY-MM-DD')# #timeFormat(qComputingAge.dt_load,'HH:MM:SS')#</b>
|
||||
VCD Storage: <b>#dateFormat(qStorageAge.dt_load,'YYYY-MM-DD')# #timeFormat(qStorageAge.dt_load,'HH:MM:SS')#</b>
|
||||
S3 хранение: <b>#dateFormat(qS3VolAge.dt_load,'YYYY-MM-DD')# #timeFormat(qS3VolAge.dt_load,'HH:MM:SS')#</b>
|
||||
S3 операции и трафик: <b>#dateFormat(qS3OpsTrfAge.dt_load,'YYYY-MM-DD')# #timeFormat(qS3OpsTrfAge.dt_load,'HH:MM:SS')#</b>
|
||||
--->
|
||||
<br/>
|
||||
<a href="#request.thisPage#?output_xls" title="экспорт в Excel" style="margin-left:.5em; height:100%;" target="_blank"><img src="img/xls.gif" style="vertical-align:text-bottom;"/></a>
|
||||
|
||||
<a href="#request.thisPage#?output_json" 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>
|
||||
</cfoutput>
|
||||
<table class="worktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<td width="1%"></td>
|
||||
|
||||
|
||||
<th width="7%">WZ Elma</th>
|
||||
<th width="10%">Клиент</th>
|
||||
<th width="7%">WZ Cloud</th>
|
||||
<th width="3%">Статусы</th>
|
||||
|
||||
<th width="15%">Коды RAM</th>
|
||||
<th width="3%">RAM GB Elma</th>
|
||||
<th width="3%">RAM Cloud</th>
|
||||
<th width="3%">RAM Cloud ON</th>
|
||||
|
||||
<th width="15%">Коды CPU</th>
|
||||
<th width="3%">CPU Elma</th>
|
||||
<th width="3%">CPU Cloud</th>
|
||||
<th width="3%">CPU Cloud ON</th>
|
||||
|
||||
<th width="15%">Коды Дисков</th>
|
||||
<th width="3%">Диски GB Elma</th>
|
||||
<th width="3%">Диски Cloud</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<cfoutput query="qReconciliation">
|
||||
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>#wz_sold#</td>
|
||||
<td><a href="contragent.cfm?__id=#company_uid#&#tr.fwx#">#client_sold#</a></td>
|
||||
<td>#wz_alloc#</td>
|
||||
<td>#status_ids#</td>
|
||||
|
||||
<td>#ram_codes#</td>
|
||||
<td>#ram_sold#</td>
|
||||
<td>#ram_alloc#</td>
|
||||
<td>#ram_alloc_on#</td>
|
||||
|
||||
<td>#cpu_codes#</td>
|
||||
<td>#cpu_sold#</td>
|
||||
<td>#cpu_alloc#</td>
|
||||
<td>#cpu_alloc_on#</td>
|
||||
|
||||
<td>#disk_codes#</td>
|
||||
<td>#disk_sold#</td>
|
||||
<td>#disk_alloc#</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<!---
|
||||
<td class="r" style="font-size:120%; padding:0 1em;">#chargeable_metric#</td>
|
||||
<td class="c" style="font-size:90%;">#ed_izm#</td>
|
||||
<td class="r">#discounted_price#</td>
|
||||
<td class="r">#charge#</td>
|
||||
|
||||
<td></td>
|
||||
|
||||
<td>#abstract_service# #modifier#</td>
|
||||
<td>#component#</td>
|
||||
<td>#user_description#</td>
|
||||
|
||||
<td class="r">#price#</td>
|
||||
<td class="r">#discount#</td>
|
||||
|
||||
<td class="r">#dateFormat(dt_from,'YYYY-MM-DD')#</td>
|
||||
<td class="r">#dateFormat(dt_to,'YYYY-MM-DD')#</td>
|
||||
|
||||
<td class="r">#line_key#</td>
|
||||
<td class="r" style="color:##bbb">#raw_metric#</td>
|
||||
<td class="r">#metric#</td>
|
||||
<td><a href="contract.cfm?__id=#contract_uid#&#tr.fwx#">#contract#</a></td>
|
||||
<td><a href="additional_agreement.cfm?__id=#additional_agreement_uid#&#tr.fwx#">#additional_agreement#</a></td>
|
||||
<td><a href="deal.cfm?__id=#deal_uid#&#tr.fwx#">#deal#</a></td>
|
||||
</tr> --->
|
||||
|
||||
</cfoutput>
|
||||
|
||||
</table>
|
||||
<!--- <cfdump var=#qCharge#/> --->
|
||||
|
||||
|
||||
<layout:page section="footer"/>
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
<m:filterparam filter=#filter# param="wz" ftype="string" compare="LIKE%" field="k.id_klienta" default=""/>
|
||||
<m:filterparam filter=#filter# param="status_id" ftype="numeric" compare="EQ" field="d.__status_status" default=""/>
|
||||
<m:filterparam filter=#filter# param="__index" ftype="numeric" compare="EQ" field="d.__index" default=""/>
|
||||
<m:filterparam filter=#filter# param="probability_lt" ftype="numeric" compare="LT" field="s.probability_pc" default=""/>
|
||||
<m:filterparam filter=#filter# param="probability_gt" ftype="numeric" compare="GT" field="s.probability_pc" default=""/>
|
||||
</m:filter_settings>
|
||||
|
||||
<cfif isDefined("resetAndClose") or isDefined("saveAndClose")>
|
||||
@@ -126,6 +128,16 @@ $(document).ready(function() {
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Вероятность</div>
|
||||
<div class="td">
|
||||
<input type="text" name="probability_gt" value="#probability_gt#" size="3"/>
|
||||
< % <
|
||||
<input type="text" name="probability_lt" value="#probability_lt#" size="3"/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!--- detail --->
|
||||
добавить сюда множественный выбор статуса
|
||||
|
||||
|
||||
+5
-5
@@ -150,13 +150,13 @@
|
||||
<b>#nFmt(qParamCost.line_cost)#</b> по строке, с количеством и скидкой (<b>#nFmt(qParamCost.param_cost)#</b> по компонентам)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!---
|
||||
<div class="tr">
|
||||
<div class="th">Версия</div>
|
||||
<div class="td">
|
||||
#d.version# <i>вообще не понимаю, какой смысл вкладывается в эту цифру...</i>
|
||||
</div>
|
||||
</div>
|
||||
</div> --->
|
||||
|
||||
<div class="tr">
|
||||
<div class="th">Версии</div>
|
||||
@@ -389,8 +389,8 @@
|
||||
<td class="c">#__index#</td>
|
||||
<!--- <td class="c">#__name#</td> --->
|
||||
<td class="c">#type#</td>
|
||||
<td class="c">#code#</td>
|
||||
<td class="c">#name#</td>
|
||||
<td>#code#</td>
|
||||
<td>#name#</td>
|
||||
<td class="r">#cnt#</td>
|
||||
<td class="c">#ed_izm#</td>
|
||||
<td class="r">#price#</td>
|
||||
@@ -434,7 +434,7 @@
|
||||
left outer join elma.deals d on (d.__id = ANY(siv.deal))
|
||||
left outer join status on (d.__status_status = status.status_id)
|
||||
where hash=<cfqueryparam cfsqltype="cf_sql_varchar" value=#d.hash#/>
|
||||
order by d.__index
|
||||
order by d.__index desc
|
||||
</cfquery>
|
||||
|
||||
<cfquery name="qVerActual" dbtype="query">
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
WITH
|
||||
status(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)
|
||||
),
|
||||
line as (
|
||||
SELECT siv.__id as siv_uid, siv.discount, siv.type as line_pricing_model_id
|
||||
,siv.hash as line_key, siv.is_actual as siv_is_actual
|
||||
,siv.version::numeric as line_version
|
||||
,d.__index as deal_index
|
||||
,d._companies
|
||||
,a.index as agreement_version
|
||||
,siv.date_nop::date as dt_from
|
||||
,siv.date_end::date as dt_to
|
||||
,siv.is_easy as is_simple
|
||||
,siv.cnt -- should mutiliply
|
||||
,s.probability_pc
|
||||
,a.__id as agreement_uid, a.contract_uid, a.is_actual as agreement_is_actual, a.deal_uid
|
||||
,d.__name as deal, d.__status_status as deal_status_id
|
||||
--,c.__name as contract
|
||||
,siv.user_description
|
||||
,siv.params
|
||||
--,(SELECT sum(p.price*p.cnt*(100.0-COALESCE(p.discount,0.0))/100.0) FROM elma.service_parametrs p WHERE(p.__id = ANY (siv.params))) as cost
|
||||
FROM elma.deals_services siv
|
||||
JOIN elma.deals d on (d.__id = ANY(siv.deal))
|
||||
JOIN status s on (d.__status_status=s.status_id)
|
||||
LEFT OUTER JOIN elma.additional_agreements a on (a.__id = ANY(siv.additional_agreement))
|
||||
WHERE siv.is_actual AND siv."__deletedAt" IS NULL AND d."__deletedAt" IS NULL AND a."__deletedAt" IS NULL
|
||||
AND a.is_actual
|
||||
AND siv.type IN (2,3)
|
||||
),
|
||||
component as (
|
||||
SELECT
|
||||
price*cnt*(100.0-COALESCE(discount,0))/100.0 as cost
|
||||
,price
|
||||
,cnt
|
||||
,code
|
||||
,__id
|
||||
FROM elma.service_parametrs
|
||||
where "__deletedAt" IS NULL
|
||||
),
|
||||
stair as ( -- рабочая лесенка (инстансы строк, имеющие нетривиальную вероятность)
|
||||
select * FROM (
|
||||
SELECT *,
|
||||
MIN(dt_from) OVER (PARTITION BY line_key ORDER BY deal_index desc) running_min_dt
|
||||
FROM line --WHERE probability_pc > 0
|
||||
) t
|
||||
WHERE t.dt_from = t.running_min_dt
|
||||
),
|
||||
alloc as (select c."WZ" as wz
|
||||
, round(sum(c."VM_RAM_Allocated")) as ram
|
||||
, round(sum(CASE WHEN "VM_is_ON" > 0 THEN c."VM_RAM_Allocated" ELSE 0 END)) as ram_on
|
||||
, round(sum(c."VM_vCPU_count")) as cpu
|
||||
, round(sum(CASE WHEN "VM_is_ON" > 0 THEN c."VM_vCPU_count" ELSE 0 END)) as cpu_on
|
||||
from vmreports.compute c
|
||||
where ts=(select max(ts) from vmreports.compute)
|
||||
group by c."WZ"
|
||||
),
|
||||
disk_alloc as (select c."WZ" as wz
|
||||
, round(sum(c."Disk_Allocated")) as disk_alloc
|
||||
from vmreports.storage c
|
||||
where ts=(select max(ts) from vmreports.storage)
|
||||
group by c."WZ"
|
||||
),
|
||||
sold_ram as (SELECT
|
||||
z.id_klienta as WZ, z.__name as client, round(sum(c.cnt*o.cnt)) as quantity
|
||||
,count(*) as lines, STRING_AGG(c.code,', ') as codes
|
||||
/*,o.line_key, o.probability_pc, dt_next, o.deal_uid, o.deal, o.agreement_uid, o.line_pricing_model_id,o.dt_from, o.dt_to*/
|
||||
FROM stair o
|
||||
JOIN elma.companies z on (o._companies=z.__id)
|
||||
LEFT OUTER JOIN component c on (c.__id = ANY (o.params))
|
||||
WHERE c.code LIKE 'iaas.ngc.%.ram-_'
|
||||
GROUP BY z.id_klienta, z.__name
|
||||
),
|
||||
sold_cpu as (SELECT
|
||||
z.id_klienta as WZ, z.__name as client, round(sum(c.cnt*o.cnt)) as quantity
|
||||
,count(*) as lines, STRING_AGG(c.code,', ') as codes
|
||||
/*,o.line_key, o.probability_pc, dt_next, o.deal_uid, o.deal, o.agreement_uid, o.line_pricing_model_id,o.dt_from, o.dt_to*/
|
||||
FROM stair o
|
||||
JOIN elma.companies z on (o._companies=z.__id)
|
||||
LEFT OUTER JOIN component c on (c.__id = ANY (o.params))
|
||||
WHERE c.code LIKE 'iaas.ngc.%.vcpu-_'
|
||||
GROUP BY z.id_klienta, z.__name
|
||||
),
|
||||
sold_disk as (SELECT
|
||||
z.id_klienta as WZ, z.__name as client, round(sum(c.cnt*o.cnt)) as quantity
|
||||
,count(*) as lines, STRING_AGG(c.code,', ') as codes
|
||||
/*,o.line_key, o.probability_pc, dt_next, o.deal_uid, o.deal, o.agreement_uid, o.line_pricing_model_id,o.dt_from, o.dt_to*/
|
||||
FROM stair o
|
||||
JOIN elma.companies z on (o._companies=z.__id)
|
||||
LEFT OUTER JOIN component c on (c.__id = ANY (o.params))
|
||||
WHERE c.code SIMILAR TO 'iaas.ngc.%.(ssd|fstssd|sata)-_'
|
||||
GROUP BY z.id_klienta, z.__name
|
||||
),
|
||||
deal_stat as (
|
||||
select STRING_AGG(distinct deal_status_id::text,', ') as status_ids
|
||||
, z.id_klienta as WZ
|
||||
from line o join elma.companies z on (o._companies=z.__id)
|
||||
GROUP BY z.id_klienta
|
||||
)
|
||||
|
||||
select
|
||||
r.wz as wz_sold,
|
||||
r.client as client_sold,
|
||||
a.wz as wz_alloc,
|
||||
ds.status_ids,
|
||||
r.codes as ram_codes,
|
||||
r.quantity as ram_sold,
|
||||
a.ram as ram_alloc,
|
||||
a.ram_on as ram_alloc_on,
|
||||
c.codes as cpu_codes,
|
||||
c.quantity as cpu_sold,
|
||||
a.cpu as cpu_alloc,
|
||||
a.cpu_on as cpu_alloc_on,
|
||||
d.quantity as disk_sold,
|
||||
da.disk_alloc,
|
||||
d.codes as disk_codes
|
||||
from sold_ram r
|
||||
join deal_stat ds on (r.wz=ds.wz)
|
||||
join sold_cpu c on (r.wz=c.wz)
|
||||
left join sold_disk d on (r.wz=d.wz)
|
||||
full join alloc a on (r.wz=a.wz)
|
||||
left join disk_alloc da on (a.wz=da.wz)
|
||||
|
||||
|
||||
--where s.quantity=a.ram
|
||||
order by 1,3
|
||||
|
||||
--select * from vmreports.compute where "WZ"='WZ01005'
|
||||
--select * from vmreports.compute where "WZ"='WZ01038' AND
|
||||
|
||||
--select distinct "WZ" from vmreports.compute a where not exists (select * from elma.companies z where lower(trim(a."WZ"))=lower(trim(z.id_klienta)))
|
||||
--select distinct "WZ" from vmreports.compute a where not exists (select * from elma.companies z where a."WZ"=z.id_klienta)
|
||||
|
||||
--select * from elma.companies where id_klienta='WZ00114'
|
||||
--select * from vmreports.compute where "WZ"='WZ00114'
|
||||
--select * from vmreports.compute where "WZ"='WZ00195'
|
||||
|
||||
--select d.* from elma.companies z join elma.deals d on (z.__id=d._companies) where id_klienta='WZ03378'
|
||||
--select aa.* from elma.additional_agreements aa join elma.aggrements a on (aa.contract_uid=a.__id) join elma.companies z on (a.company_uid=z.__id)where id_klienta='WZ03378'
|
||||
|
||||
|
||||
|
||||
|
||||
+5
-1
@@ -12,15 +12,19 @@
|
||||
|
||||
<li class="menu-title">Реестры</li>
|
||||
|
||||
<c:menu_item acl="" page="deal_ls.cfm" label="Сделки"/>
|
||||
|
||||
<c:menu_item acl="" page="contract_ls.cfm" label="Договоры"/>
|
||||
<c:menu_item acl="" page="additional_agreement_ls.cfm" label="Доп. соглашения"/>
|
||||
<c:menu_item acl="" page="deal_ls.cfm" label="Сделки"/>
|
||||
|
||||
<c:menu_item acl="" page="vm_ls.cfm" label="VM"/>
|
||||
|
||||
<!---
|
||||
<c:menu_item acl="" page="specification_ls.cfm" label="Спецификации"/>
|
||||
<c:menu_item acl="" page="agreement_ls.cfm" label="Сделки"/>
|
||||
<c:menu_item acl="" page="specification_item_ls.cfm" label="Экземпляры услуг"/>--->
|
||||
<li class="menu-title">Отчеты</li>
|
||||
<c:menu_item acl="" page="crm2cloud.cfm" label="CRM - Cloud"/>
|
||||
<c:menu_item acl="" page="payg.cfm" label="PAYG"/>
|
||||
<!--- <c:menu_item acl="" page="detail_daily_rpt.cfm" label="Детализация по дням"/>
|
||||
<c:menu_item acl="" page="income_daily_rpt.cfm" label="Выручка по дням"/>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<cflocation url="payg.cfm" addtoken="No"/>
|
||||
<cflocation url="contract_ls.cfm" addtoken="No"/>
|
||||
+2
-2
@@ -7,7 +7,7 @@
|
||||
<cfparam name="ATTRIBUTES.closeForm" type="boolean" default="No"/>
|
||||
|
||||
<cfparam name="title" default=""/><!---заголовок страницы, отображаемый в теле например, <h1>--->
|
||||
<cfparam name="pageTitle" default="PAYG"/><!---заголовок окна браузера, в теге <title>--->
|
||||
<cfparam name="pageTitle" default="Сверка"/><!---заголовок окна браузера, в теге <title>--->
|
||||
<cfparam name="controls" default=""/>
|
||||
|
||||
</cfsilent><cfsilent>
|
||||
@@ -126,7 +126,7 @@ select login, firstname, middlename, lastname from worker where id='#request.usr
|
||||
<!--- <div style="width:20px; height:30px; margin: 5px; background: url('img/logo0.png') 0 0 no-repeat; background-size:contain; display:inline-block;"></div>--->
|
||||
<div style="width:138px; height:30px; margin: 5px 0 0 5px; background: url('img/logo0.png') 0 0 no-repeat; background-size:contain; display:inline-block; -border:1px solid red;">
|
||||
<p class="b r" style="color:white; margin:0 10px 10px 10px; font-size:130%;">
|
||||
Отчет PAYG
|
||||
Сверка CRM-Cloud
|
||||
</p>
|
||||
</div>
|
||||
<p style="color:lightgray; margin:10px 12px; text-align:right;">
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
<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:prepare_ls entity="crm2cloud" accessObject="" pageInfoOut="pageInfo" trackOut="tr"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<cfquery name="qVM">
|
||||
select "Name", "Object_UUID", "UUID_VM",
|
||||
"VDC", "Organization_UUID", "Organization", "WZ", "Cluster", "Host",
|
||||
"Host_Model", "CPU_Model", "Host_CPU_Cores", "Host_CPU_Sockets", "Host_CPU_Speed", "Host_RAM",
|
||||
"Host_CPU_Used", "Host_CPU_Used_Avg",
|
||||
"VDC_CPU_Reserv", "VDC_CPU_Speed",
|
||||
"VM_vCPU_count", "VM_CPU_Used", "VM_CPU_Used_AVG", "VM_CPU_Reserv_GHz", "VM_CPU_Reserv_perc",
|
||||
"VM_RAM_Allocated", "VM_RAM_Used",
|
||||
"VM_is_ON"
|
||||
from vmreports.compute
|
||||
where ts=(select max(ts) from vmreports.compute)
|
||||
order by "WZ"
|
||||
</cfquery>
|
||||
|
||||
<!--- <cfdump var=#qVM# abort=true/> --->
|
||||
|
||||
|
||||
|
||||
<cfif isDefined("output_xls")>
|
||||
<layout:xml qRead=#qCharge# titleMap=#titleMap# filename="#pageInfo.entity#.xml"/>
|
||||
<cfabort/>
|
||||
</cfif><cfif isDefined("output_json")>
|
||||
<layout:json qRead=#qCharge# titleMap=#titleMap# filename="#pageInfo.entity#.json"/>
|
||||
<cfabort/>
|
||||
</cfif><!---
|
||||
---><layout:page section="header" pageInfo=#pageInfo#>
|
||||
|
||||
<layout:attribute name="title">
|
||||
<cfoutput><b>Сверка CRM - Cloud</b></cfoutput>
|
||||
</layout:attribute>
|
||||
<layout:attribute name="controls">
|
||||
<!---skip filter link, filter is not implemented--->
|
||||
<!---<layout:language_switch/>--->
|
||||
</layout:attribute>
|
||||
</layout:page>
|
||||
|
||||
<!--- <cfdump var=#qReconciliation# abort=true/> --->
|
||||
|
||||
<cfoutput>
|
||||
<!--- <form method="post" action="">
|
||||
Период с <input type="text" name="dt_start" value="#dateFormat(dt_start,'YYYY-MM-DD')#"/>
|
||||
по <input type="text" name="dt_finish" value="#dateFormat(dt_finish,'YYYY-MM-DD')#"/>
|
||||
<input type="submit" style="cursor:pointer;"/>
|
||||
<input type="submit" name="DEBUG" value="DEBUG" style="cursor:pointer;"/>
|
||||
</form> --->
|
||||
<!--- Часов в периоде: <b>#hours#</b> Строк в отчете: <b>#qCharge.recordCount#</b><br/>
|
||||
Актуальность данных:
|
||||
VCD Computing: <b>#dateFormat(qComputingAge.dt_load,'YYYY-MM-DD')# #timeFormat(qComputingAge.dt_load,'HH:MM:SS')#</b>
|
||||
VCD Storage: <b>#dateFormat(qStorageAge.dt_load,'YYYY-MM-DD')# #timeFormat(qStorageAge.dt_load,'HH:MM:SS')#</b>
|
||||
S3 хранение: <b>#dateFormat(qS3VolAge.dt_load,'YYYY-MM-DD')# #timeFormat(qS3VolAge.dt_load,'HH:MM:SS')#</b>
|
||||
S3 операции и трафик: <b>#dateFormat(qS3OpsTrfAge.dt_load,'YYYY-MM-DD')# #timeFormat(qS3OpsTrfAge.dt_load,'HH:MM:SS')#</b>
|
||||
--->
|
||||
<br/>
|
||||
<a href="#request.thisPage#?output_xls" title="экспорт в Excel" style="margin-left:.5em; height:100%;" target="_blank"><img src="img/xls.gif" style="vertical-align:text-bottom;"/></a>
|
||||
|
||||
<a href="#request.thisPage#?output_json" 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>
|
||||
</cfoutput>
|
||||
<table class="worktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="7%">WZ</th>
|
||||
<th width="10%">Имя</th>
|
||||
<th width="7%">Уникальное имя</th>
|
||||
|
||||
<th width="3%">Organization</th>
|
||||
|
||||
<th width="3%">VDC</th>
|
||||
<th width="3%">VDC CPU Reserv</th>
|
||||
<th width="3%">VDC CPU Speed GHz</th>
|
||||
|
||||
<th width="3%">Cluster</th>
|
||||
|
||||
<th width="3%">Host</th>
|
||||
<th width="3%">Host Model</th>
|
||||
<th width="3%">CPU Model</th>
|
||||
<th width="3%">Host CPU Cores</th>
|
||||
<th width="3%">Host CPU Sockets</th>
|
||||
<th width="3%">Host CPU Speed GHz</th>
|
||||
<th width="3%">Host RAM GB</th>
|
||||
<th width="3%">Host CPU Used</th>
|
||||
<th width="3%">Host CPU Used_Avg</th>
|
||||
|
||||
<th width="3%">VM vCPU count</th>
|
||||
<th width="3%">VM CPU Used</th>
|
||||
<th width="3%">VM CPU Used AVG</th>
|
||||
<th width="3%">VM CPU Reserv GHz</th>
|
||||
<th width="3%">VM CPU Reserv perc</th>
|
||||
|
||||
<th width="3%">VM RAM Allocated GB</th>
|
||||
<th width="3%">VM RAM Used GB</th>
|
||||
|
||||
<th width="3%">VM is ON</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<cfoutput query="qVM">
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td>#WZ#</td>
|
||||
<td>#Name#</td>
|
||||
<td>#UUID_VM#</td>
|
||||
<td>#Organization#</td>
|
||||
|
||||
<td>#VDC#</td>
|
||||
<td>#VDC_CPU_Reserv#</td>
|
||||
<td>#VDC_CPU_Speed#</td>
|
||||
|
||||
<td>#qVM.Cluster#</td>
|
||||
|
||||
<td>#Host#</td>
|
||||
<td>#Host_Model#</td>
|
||||
<td>#CPU_Model#</td>
|
||||
<td>#Host_CPU_Cores#</td>
|
||||
<td>#Host_CPU_Sockets#</td>
|
||||
<td>#round(Host_CPU_Speed,3)#</td>
|
||||
<td>#Host_RAM#</td>
|
||||
<td>#Host_CPU_Used#</td>
|
||||
<td>#Host_CPU_Used_Avg#</td>
|
||||
|
||||
<td>#VM_vCPU_count#</td>
|
||||
<td>#VM_CPU_Used#</td>
|
||||
<td>#VM_CPU_Used_AVG#</td>
|
||||
<td>#VM_CPU_Reserv_GHz#</td>
|
||||
<td>#VM_CPU_Reserv_GHz#</td>
|
||||
<td>#VM_CPU_Reserv_perc#</td>
|
||||
|
||||
<td>#VM_RAM_Allocated#</td>
|
||||
<td>#VM_RAM_Used#</td>
|
||||
|
||||
<td>#VM_is_ON#</td>
|
||||
|
||||
|
||||
<!--- <td><a href="contragent.cfm?__id=#company_uid#&#tr.fwx#">#client_sold#</a></td> --->
|
||||
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</cfoutput>
|
||||
|
||||
</table>
|
||||
<!--- <cfdump var=#qCharge#/> --->
|
||||
|
||||
|
||||
<layout:page section="footer"/>
|
||||
|
||||
Reference in New Issue
Block a user