Ajuste query flash por loja sem MVs e adicao query flash categoria
davinTI/app-dono-modulos/pipeline/head This commit looks good
davinTI/app-dono-modulos/pipeline/head This commit looks good
This commit is contained in:
@@ -8,7 +8,6 @@ export default moduleFactory
|
|||||||
description: "Flash de Vendas",
|
description: "Flash de Vendas",
|
||||||
label: "Flash de Vendas",
|
label: "Flash de Vendas",
|
||||||
icon: "bar-chart",
|
icon: "bar-chart",
|
||||||
order: 1,
|
|
||||||
ai: {
|
ai: {
|
||||||
topics: {
|
topics: {
|
||||||
flash_vendas: {
|
flash_vendas: {
|
||||||
@@ -996,7 +995,6 @@ where 1 = 0`,
|
|||||||
FROM DUAL
|
FROM DUAL
|
||||||
),
|
),
|
||||||
Vendas AS (
|
Vendas AS (
|
||||||
-- Venda diaria por loja (lê só os nos EMPRESA do resumo, que já vem com rollup)
|
|
||||||
SELECT n.cod_empresa AS loja,
|
SELECT n.cod_empresa AS loja,
|
||||||
r.data_referencia AS data,
|
r.data_referencia AS data,
|
||||||
r.valor_venda AS venda,
|
r.valor_venda AS venda,
|
||||||
@@ -1011,7 +1009,6 @@ where 1 = 0`,
|
|||||||
OR r.data_referencia BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant)
|
OR r.data_referencia BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant)
|
||||||
),
|
),
|
||||||
Metas AS (
|
Metas AS (
|
||||||
-- Metas em tempo real, igual antes
|
|
||||||
SELECT FNC_CODIGOLOJA(m.loja_ajustada) AS loja,
|
SELECT FNC_CODIGOLOJA(m.loja_ajustada) AS loja,
|
||||||
m.data,
|
m.data,
|
||||||
0 AS venda,
|
0 AS venda,
|
||||||
@@ -1041,7 +1038,6 @@ where 1 = 0`,
|
|||||||
FNC_NUMEROLOJA(loja) AS cod_empresa,
|
FNC_NUMEROLOJA(loja) AS cod_empresa,
|
||||||
FNC_NOMEPESSOAS(loja) AS nomeempresaapp,
|
FNC_NOMEPESSOAS(loja) AS nomeempresaapp,
|
||||||
GROUPING(loja) AS is_total,
|
GROUPING(loja) AS is_total,
|
||||||
-- Calculos
|
|
||||||
SUM(m_mes) AS meta_mes,
|
SUM(m_mes) AS meta_mes,
|
||||||
SUM(v_mes) AS mes_atual,
|
SUM(v_mes) AS mes_atual,
|
||||||
SUM(v_mes) - SUM(m_mes) AS dif_mes_atual,
|
SUM(v_mes) - SUM(m_mes) AS dif_mes_atual,
|
||||||
@@ -1059,7 +1055,79 @@ where 1 = 0`,
|
|||||||
},
|
},
|
||||||
flash_categorias: (args) => {
|
flash_categorias: (args) => {
|
||||||
return {
|
return {
|
||||||
sql: /*sql*/``
|
sql: /*sql*/`
|
||||||
|
WITH Parametros AS (
|
||||||
|
SELECT TO_DATE(${args.data_venda}, 'YYYY-MM-DD') AS dt_ref,
|
||||||
|
TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM') AS dt_inicio_mes,
|
||||||
|
ADD_MONTHS(TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM'), -1) AS dt_inicio_mes_ant,
|
||||||
|
ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -1) AS dt_fim_mes_ant,
|
||||||
|
ADD_MONTHS(TRUNC(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), 'MM'), -12) AS dt_inicio_ano_ant,
|
||||||
|
ADD_MONTHS(TO_DATE(${args.data_venda}, 'YYYY-MM-DD'), -12) AS dt_fim_ano_ant,
|
||||||
|
${args.codigo_categoria_pai} AS id_nodo_pai,
|
||||||
|
${args.cod_empresa} AS cod_empresa
|
||||||
|
FROM DUAL
|
||||||
|
),
|
||||||
|
filhos AS (
|
||||||
|
SELECT n.id_nodo, n.codigo, n.nome, n.tipo_nodo, n.nivel,
|
||||||
|
n.cod_empresa, n.ordem_exibicao
|
||||||
|
FROM VERDEMAR.TB_FLASH_NODO n
|
||||||
|
CROSS JOIN Parametros p
|
||||||
|
WHERE n.ativo = 'S'
|
||||||
|
AND ( (p.id_nodo_pai IS NULL AND n.id_nodo_pai IS NULL AND n.tipo_nodo = 'EMPRESA')
|
||||||
|
OR (p.id_nodo_pai IS NOT NULL AND n.id_nodo_pai = p.id_nodo_pai) )
|
||||||
|
AND (p.cod_empresa IS NULL OR n.cod_empresa = p.cod_empresa)
|
||||||
|
),
|
||||||
|
Vendas AS (
|
||||||
|
SELECT f.id_nodo,
|
||||||
|
f.codigo,
|
||||||
|
f.nome,
|
||||||
|
f.tipo_nodo,
|
||||||
|
f.nivel,
|
||||||
|
f.cod_empresa,
|
||||||
|
f.ordem_exibicao,
|
||||||
|
r.data_referencia AS data,
|
||||||
|
r.valor_venda AS venda
|
||||||
|
FROM filhos f
|
||||||
|
JOIN VERDEMAR.TB_FLASH_NODO_RESUMO_VENDA r ON r.id_nodo = f.id_nodo
|
||||||
|
CROSS JOIN Parametros p
|
||||||
|
WHERE ( r.data_referencia BETWEEN p.dt_inicio_mes AND p.dt_ref
|
||||||
|
OR r.data_referencia BETWEEN p.dt_inicio_mes_ant AND p.dt_fim_mes_ant
|
||||||
|
OR r.data_referencia BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant)
|
||||||
|
),
|
||||||
|
Agrupado AS (
|
||||||
|
SELECT
|
||||||
|
v.id_nodo,
|
||||||
|
v.codigo,
|
||||||
|
MAX(v.nome) AS nome,
|
||||||
|
MAX(v.tipo_nodo) AS tipo_nodo,
|
||||||
|
MAX(v.nivel) AS nivel,
|
||||||
|
MAX(v.cod_empresa) AS cod_empresa,
|
||||||
|
MAX(v.ordem_exibicao) AS ordem_exibicao,
|
||||||
|
GROUPING(v.id_nodo) AS is_total,
|
||||||
|
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_mes AND p.dt_ref THEN v.venda ELSE 0 END) AS v_mes,
|
||||||
|
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_mes_ant AND p.dt_fim_mes_ant THEN v.venda ELSE 0 END) AS v_mes_ant,
|
||||||
|
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant THEN v.venda ELSE 0 END) AS v_ano_ant
|
||||||
|
FROM Vendas v
|
||||||
|
CROSS JOIN Parametros p
|
||||||
|
GROUP BY GROUPING SETS ((v.id_nodo, v.codigo), ())
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
codigo AS cod_nodo,
|
||||||
|
nome AS nome_nodo,
|
||||||
|
tipo_nodo,
|
||||||
|
nivel,
|
||||||
|
cod_empresa,
|
||||||
|
is_total,
|
||||||
|
v_mes AS mes_atual,
|
||||||
|
v_mes_ant AS mes_anterior,
|
||||||
|
(v_mes - v_mes_ant) AS dif_mes_anterior,
|
||||||
|
ROUND(NVL((v_mes / NULLIF(v_mes_ant, 0)) * 100 - 100, 0), 2) AS variacao_mes_anterior,
|
||||||
|
v_ano_ant AS ano_anterior,
|
||||||
|
(v_mes - v_ano_ant) AS dif_ano_anterior,
|
||||||
|
ROUND(NVL((v_mes / NULLIF(v_ano_ant, 0)) * 100 - 100, 0), 2) AS variacao_ano_anterior
|
||||||
|
FROM Agrupado
|
||||||
|
ORDER BY is_total, ordem_exibicao NULLS LAST, nome_nodo;
|
||||||
|
`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
flash_vendas_ai: (args) => {
|
flash_vendas_ai: (args) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user