From 37481173cc10af40363fe033cabeba798bc6e226 Mon Sep 17 00:00:00 2001 From: "lucas.favaro" Date: Fri, 29 May 2026 09:14:56 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20de=20query=20de=20perda?= =?UTF-8?q?s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/flash_perdas/flash_perdas.module.ts | 82 ++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/src/flash_perdas/flash_perdas.module.ts b/src/flash_perdas/flash_perdas.module.ts index 9659b87..cce5596 100644 --- a/src/flash_perdas/flash_perdas.module.ts +++ b/src/flash_perdas/flash_perdas.module.ts @@ -154,7 +154,87 @@ export default moduleFactory C5: { flashPerdas: (args) => { return { - sql: /*sql*/ ``, + sql: /*sql*/ ` + SELECT + x.nome_segmento AS canalapp, + x.codigo AS cod_empresa, + x.nomeempresaapp AS nomeempresaapp, + CASE + WHEN GROUPING(x.codigo) = 1 THEN 1 + ELSE 0 + END AS is_total, + SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) * 1.02 AS meta_mes, + SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) AS mes_atual, + SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) - + SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) * 1.02 AS dif_mes_atual, + CASE + WHEN SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) * 1.02 = 0 THEN 0 + ELSE ROUND( + ((SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) / + (SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) * 1.02)) * 100) - 100 + , 2) + END AS variacao_atual, + SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END) * 1.02 AS meta_mes_anterior, + SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END) AS mes_anterior, + SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) - + SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END) AS dif_mes_anterior, + CASE + WHEN SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END) = 0 THEN 0 + ELSE ROUND( + ((SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) / + SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END)) * 100) - 100 + , 2) + END AS variacao_mes_anterior, + SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END) * 1.02 AS meta_ano_anterior, + SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END) AS ano_anterior, + SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) - + SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END) AS dif_ano_anterior, + CASE + WHEN SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END) = 0 THEN 0 + ELSE ROUND( + ((SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) / + SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END)) * 100) - 100 + , 2) + END AS variacao_ano_anterior + FROM + ( + SELECT + r.nome_segmento, + n.codigo, + n.nome AS nomeempresaapp, + r.valor_venda, + CASE + WHEN r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), 'MM') AND TO_DATE(${args.data_venda}, 'YYYY-MM-DD') + THEN 'ATUAL' + WHEN r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), 'MM'), -1) + AND ADD_MONTHS(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), -1) + THEN 'MES_ANTERIOR' + WHEN r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), 'MM'), -12) + AND ADD_MONTHS(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), -12) + THEN 'ANO_ANTERIOR' + END AS periodo + FROM + tb_flash_nodo_resumo_perda r + JOIN tb_flash_nodo n + ON + n.id_nodo = r.id_nodo + WHERE + n.tipo_nodo = 'EMPRESA' + and (n.cod_empresa in (${args.ctx_user_companies_for_module})) + AND ( + r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), 'MM') AND TO_DATE(${args.data_venda}, 'YYYY-MM-DD') + OR r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), 'MM'), -1) + AND ADD_MONTHS(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), -1) + OR r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), 'MM'), -12) + AND ADD_MONTHS(TO_DATE(${args.data_perda}, 'YYYY-MM-DD'), -12) + ) + ) x + GROUP BY + GROUPING SETS ( + (x.codigo, x.nomeempresaapp, x.nome_segmento), + () + ) + `, }; }, flash_categorias: (args) => {