diff --git a/Application.cfc b/Application.cfc index 57f24b2..a01c0c8 100644 --- a/Application.cfc +++ b/Application.cfc @@ -76,7 +76,7 @@ - + diff --git a/contragent_rpt.cfm b/contragent_rpt.cfm index 0d2fb9d..30b4788 100644 --- a/contragent_rpt.cfm +++ b/contragent_rpt.cfm @@ -117,7 +117,7 @@ ('Закрыта неуспешно',7,0),('Закрыта успешно',6,100),('Договор подписан',5,100),('Договор на подписании',15,90),('Договор на согласовании',12,70), ('Тестирование',8,50),('Отправлено ТКП',10,20),('Внутреннее согласование',37,10),('Проработка решения',4,10),('Сбор потребностей',1,0) ) - ,line_expanded + ,line AS ( SELECT siv.__id AS siv_uid ,siv.discount @@ -186,7 +186,7 @@ ), ( SELECT CURRENT_TIMESTAMP + INTERVAL '1 day' )) dt_next - FROM line_expanded + FROM line WHERE probability_pc > 0 ) t WHERE t.dt_from = t.running_min_dt diff --git a/crm2cloud.cfm b/crm2cloud.cfm index 0e349c3..125575b 100644 --- a/crm2cloud.cfm +++ b/crm2cloud.cfm @@ -8,25 +8,26 @@ + 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 ( + 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 @@ -61,8 +62,8 @@ AS ( --and a.is_actual AND siv.type IN (2, 3) ) - ,component -AS ( +----------------------------- + ,component AS ( SELECT -- price*cnt*(100.0-COALESCE(discount,0))/100.0 as cost , -- price , @@ -72,8 +73,8 @@ AS ( FROM elma.service_parametrs WHERE "__deletedAt" IS NULL ) - ,stair -AS ( +------------------------------ + ,stair AS ( SELECT * FROM ( SELECT * @@ -86,16 +87,14 @@ AS ( ,deal_index ) ), ( - SELECT CURRENT_TIMESTAMP + INTERVAL '1 day' + + )) dt_next FROM line WHERE probability_pc > 0 ) t WHERE t.dt_from = t.running_min_dt - AND ( - t.dt_to > CURRENT_TIMESTAMP - OR t.dt_to IS NULL - ) + ) ,line_expanded AS ( @@ -103,8 +102,8 @@ AS ( ,unnest(line.params) AS param_id FROM line ) - ,alloc -AS ( +----------------------------- + ,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 @@ -117,8 +116,7 @@ AS ( ) GROUP BY c."WZ" ) - ,disk_alloc -AS ( + ,disk_alloc AS ( SELECT c."WZ" AS wz ,round(sum(c."Disk_Allocated")) AS disk_alloc FROM vmreports.storage c @@ -128,8 +126,8 @@ AS ( ) GROUP BY c."WZ" ) - ,sold_ram -AS ( +----------------------------- + ,sold_ram AS ( SELECT z.id_klienta AS WZ ,z.__name AS client ,z.__id AS company_uid @@ -141,20 +139,18 @@ AS ( --LEFT JOIN component c on (c.__id = ANY (o.params)) LEFT JOIN line_expanded e ON o.siv_uid = e.siv_uid LEFT JOIN component c ON c.__id = e.param_id - WHERE + WHERE o.dt_from <= + AND ( < o.dt_next) --c.code SIMILAR TO 'iaas.(ngc|dcp).%.ram-_' - ( - c.code LIKE 'iaas.ngc.%.ram-_' - OR c.code LIKE 'iaas.dcp.%.ram-_' - ) + AND (c.code LIKE 'iaas.ngc.%.ram-_' OR c.code LIKE 'iaas.dcp.%.ram-_') AND c.cnt <> 0 AND o.cnt <> 0 GROUP BY z.id_klienta ,z.__id ,z.__name ) - ,sold_cpu -AS ( +------------------------------ + ,sold_cpu AS ( SELECT z.id_klienta AS WZ ,z.__name AS client ,z.__id AS company_uid @@ -163,24 +159,23 @@ AS ( ,STRING_AGG(DISTINCT c.code, ', ' ORDER BY c.code) AS codes FROM stair o JOIN elma.companies z ON (o._companies = z.__id) - --LEFT JOIN component c ON c.__id = o.param_id - --LEFT JOIN component c on (c.__id = ANY (o.params)) LEFT JOIN line_expanded e ON o.siv_uid = e.siv_uid - LEFT JOIN component c ON c.__id = e.param_id - WHERE - --c.code SIMILAR TO 'iaas.(ngc|dcp).%.vcpu%-_' - ( + LEFT JOIN component c ON (c.__id = e.param_id) + WHERE o.dt_from <= + AND ( < o.dt_next) + --c.code SIMILAR TO 'iaas.(ngc|dcp).%.vcpu%-_' + AND ( c.code LIKE 'iaas.ngc.%.vcpu%-_' OR c.code LIKE 'iaas.dcp.%.vcpu%-_' - ) + ) AND c.cnt <> 0 AND o.cnt <> 0 GROUP BY z.id_klienta ,z.__id ,z.__name ) - ,sold_disk -AS ( +--------------------------------- + ,sold_disk AS ( SELECT z.id_klienta AS WZ ,z.__name AS client ,z.__id AS company_uid @@ -193,24 +188,25 @@ AS ( --LEFT JOIN component c on (c.__id = ANY (o.params)) LEFT JOIN line_expanded e ON o.siv_uid = e.siv_uid LEFT JOIN component c ON c.__id = e.param_id - WHERE + WHERE o.dt_from <= + AND ( < o.dt_next) --c.code SIMILAR TO 'iaas.(ngc|dcp).%.(ssd|fstssd|sata)-_' - ( + AND ( c.code LIKE 'iaas.ngc.%.ssd-_' OR c.code LIKE 'iaas.dcp.%.ssd-_' OR c.code LIKE 'iaas.ngc.%.fstssd-_' OR c.code LIKE 'iaas.dcp.%.fstssd-_' OR c.code LIKE 'iaas.ngc.%.sata-_' OR c.code LIKE 'iaas.dcp.%.sata-_' - ) + ) AND c.cnt <> 0 AND o.cnt <> 0 GROUP BY z.id_klienta ,z.__id ,z.__name ) - ,sold_gpu -AS ( +-------------------------------- + ,sold_gpu AS ( SELECT z.id_klienta AS WZ ,z.__name AS client ,z.__id AS company_uid @@ -223,9 +219,10 @@ AS ( --LEFT JOIN component c on (c.__id = ANY (o.params)) LEFT JOIN line_expanded e ON o.siv_uid = e.siv_uid LEFT JOIN component c ON c.__id = e.param_id - WHERE + WHERE o.dt_from <= + AND ( < o.dt_next) --c.code SIMILAR TO 'iaas.(ngc|dcp).%.vcpu%-_' - ( + AND ( c.code LIKE 'iaas.ngc.%.gpu%-_' OR c.code LIKE 'iaas.dcp.%.gpu%-_' ) @@ -235,8 +232,8 @@ AS ( ,z.__id ,z.__name ) - ,gpu_alloc -AS ( +------------------------------- + ,gpu_alloc AS ( SELECT c."ClientID" AS wz , -- json_agg("GPU") as gpu, @@ -249,8 +246,8 @@ AS ( ) GROUP BY c."ClientID" ) - ,deal_stat -AS ( +-------------------------------- + ,deal_stat AS ( SELECT STRING_AGG(DISTINCT deal_status_id::TEXT, ', ' ORDER BY deal_status_id::TEXT) AS status_ids ,ARRAY_AGG(DISTINCT deal_status_id ORDER BY deal_status_id) AS ar_status_ids ,STRING_AGG(DISTINCT line_pricing_model_id::TEXT, ', ' ORDER BY line_pricing_model_id::TEXT) AS line_pricing_model_ids @@ -260,8 +257,8 @@ AS ( --LEFT JOIN LATERAL unnest(d.params) AS arr(param_id) ON TRUE --JOIN component p ON (p.__id = arr.param_id) JOIN elma.companies z ON (d._companies = z.__id) - WHERE d.dt_from <= CURRENT_TIMESTAMP - AND (CURRENT_TIMESTAMP < d.dt_next) + WHERE d.dt_from <= + AND ( < d.dt_next) GROUP BY z.id_klienta ) select