Atualização de campos e Queries

This commit is contained in:
2026-04-28 14:17:10 -03:00
parent 645cc9129c
commit 25d4ed2f15
+111 -96
View File
@@ -30,40 +30,49 @@ export default moduleFactory
format: "currency_short", format: "currency_short",
}, },
{ {
label: "VDA", label: "Mês Atual",
column: "vda", column: "mes_atual",
format: "currency_short", format: "currency_short",
}, },
{ {
label: "DMA", label: "Dif ($)",
column: "dma", column: "dif_mes_atual",
format: "currency_short", format: "currency_short",
}, },
{ {
label: "Meta Dia", label: "% Variação",
column: "meta_dia", column: "variacao_atual",
format: "currency_short",
},
{
label: "Meta Margem Dia",
column: "meta_margem_dia",
format: "percentage", format: "percentage",
}, },
{ {
label: "Qtd Clientes", label: "Mês Anterior",
column: "qtd_clientes", column: "mes_anterior",
format: "integer", format: "currency_short",
}, },
{ {
label: "Ticket Médio", label: "Dif ($)",
column: "ticket_medio", column: "dif_mes_anterior",
format: "currency", format: "currency_short",
}, },
{ {
label: "Margem", label: "% Variação",
column: "margem", column: "variacao_mes_anterior",
format: "percentage",
},
{
label: "Ano Anterior",
column: "ano_anterior",
format: "currency_short",
},
{
label: "Dif ($)",
column: "dif_ano_anterior",
format: "currency_short",
},
{
label: "% Variação",
column: "variacao_ano_anterior",
format: "percentage", format: "percentage",
accent: true,
}, },
], ],
}, },
@@ -108,88 +117,94 @@ order by grouping(canalapp) desc, grouping(nomeempresaapp) desc`,
C5_big: {flash: (args) => { C5_big: {flash: (args) => {
return { return {
sql: /*sql*/ ` sql: /*sql*/ `
SELECT
CASE
WHEN GROUPING(x.canalapp) = 1 THEN 'TOTAL'
ELSE x.canalapp
END AS canalapp,
CASE
WHEN GROUPING(x.canalapp) = 1 THEN 1
ELSE 0
END AS is_total,
SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_meta_efetiva ELSE 0 END) 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 - x.valor_meta_efetiva ELSE 0 END) AS dif_mes_atual,
CASE
WHEN SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_meta_efetiva 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 = 'ATUAL' THEN x.valor_meta_efetiva ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_atual,
SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) 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 = 'MES_ANTERIOR' THEN x.valor_venda - x.valor_meta_efetiva ELSE 0 END) AS dif_mes_anterior,
CASE
WHEN SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) = 0 THEN 0
ELSE ROUND(
((SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END) /
SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_mes_anterior,
SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) 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 = 'ANO_ANTERIOR' THEN x.valor_venda - x.valor_meta_efetiva ELSE 0 END) AS dif_ano_anterior,
CASE
WHEN SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) = 0 THEN 0
ELSE ROUND(
((SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END) /
SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_ano_anterior
FROM (
SELECT SELECT
n.codigo, CASE
n.nome AS canalapp, WHEN GROUPING(x.canalapp) = 1 THEN null
r.valor_meta_efetiva, ELSE x.canalapp
r.valor_venda, END AS canalapp,
CASE
WHEN r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_venda}, '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_venda}, 'YYYY-MM-DD'), 'MM'), -1) x.canalapp AS nomeempresaapp,
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -1)
THEN 'MES_ANTERIOR'
WHEN r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM'), -12) CASE
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -12) WHEN GROUPING(x.canalapp) = 1 THEN 1
THEN 'ANO_ANTERIOR' ELSE 0
END AS periodo END AS is_total,
FROM tb_flash_nodo_resumo_venda r SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_meta_efetiva ELSE 0 END) AS meta_mes,
JOIN tb_flash_nodo n SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda ELSE 0 END) AS mes_atual,
ON n.id_nodo = r.id_nodo SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_venda - x.valor_meta_efetiva ELSE 0 END) AS dif_mes_atual,
WHERE n.tipo_nodo = 'EMPRESA'
AND (
r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_venda}, '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_venda}, 'YYYY-MM-DD'), 'MM'), -1)
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -1)
OR r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM'), -12)
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -12)
)
) x
GROUP BY ROLLUP(x.codigo, x.canalapp) CASE
WHEN SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_meta_efetiva 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 = 'ATUAL' THEN x.valor_meta_efetiva ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_atual,
ORDER BY is_total, canalapp SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) 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 = 'MES_ANTERIOR' THEN x.valor_venda - x.valor_meta_efetiva ELSE 0 END) AS dif_mes_anterior,
CASE
WHEN SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) = 0 THEN 0
ELSE ROUND(
((SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_venda ELSE 0 END) /
SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_mes_anterior,
SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) 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 = 'ANO_ANTERIOR' THEN x.valor_venda - x.valor_meta_efetiva ELSE 0 END) AS dif_ano_anterior,
CASE
WHEN SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END) = 0 THEN 0
ELSE ROUND(
((SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_venda ELSE 0 END) /
SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_meta_efetiva ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_ano_anterior
FROM (
SELECT
n.codigo,
n.nome AS canalapp,
r.valor_meta_efetiva,
r.valor_venda,
CASE
WHEN r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_venda}, '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_venda}, 'YYYY-MM-DD'), 'MM'), -1)
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -1)
THEN 'MES_ANTERIOR'
WHEN r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM'), -12)
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -12)
THEN 'ANO_ANTERIOR'
END AS periodo
FROM tb_flash_nodo_resumo_venda r
JOIN tb_flash_nodo n
ON n.id_nodo = r.id_nodo
WHERE n.tipo_nodo = 'EMPRESA'
AND (
r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_venda}, '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_venda}, 'YYYY-MM-DD'), 'MM'), -1)
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -1)
OR r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM'), -12)
AND ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -12)
)
) x
GROUP BY GROUPING SETS (
(x.codigo, x.canalapp),
()
)
ORDER BY
CASE WHEN GROUPING(x.canalapp) = 1 THEN 1 ELSE 0 END,
x.canalapp
`,}; `,};
}, },
}, },