Adicionando Sistema Verdemar e Flash de Vendas Por Loja
davinTI/app-dono-modulos/pipeline/head There was a failure building this commit
davinTI/app-dono-modulos/pipeline/head There was a failure building this commit
This commit is contained in:
+103
-1
@@ -1,6 +1,6 @@
|
||||
import { createModuleFactory, createSchedule } from "@davinti/jeff";
|
||||
|
||||
const moduleFactory = createModuleFactory(["C5", "C5_big", "C5_mambo"]);
|
||||
const moduleFactory = createModuleFactory(["C5", "C5_big", "C5_mambo", "Verdemar"]);
|
||||
|
||||
export default moduleFactory
|
||||
.createModule({
|
||||
@@ -980,6 +980,98 @@ where 1 = 0`,
|
||||
}
|
||||
},
|
||||
},
|
||||
Verdemar:{
|
||||
flash: (args) => {
|
||||
return {
|
||||
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
|
||||
FROM DUAL
|
||||
),
|
||||
DadosUnificados AS (
|
||||
SELECT loja, empresa_tipo, data, venda, 0 as meta
|
||||
FROM (
|
||||
SELECT 1 AS empresa_tipo, loja, data, venda FROM MV_VENDAS_VERDEMAR_DIA
|
||||
UNION ALL
|
||||
SELECT 131 AS empresa_tipo, loja, data, venda FROM MV_VENDAS_RESTAURANTE_DIA
|
||||
) v
|
||||
CROSS JOIN Parametros p
|
||||
WHERE (v.data BETWEEN p.dt_inicio_mes AND p.dt_ref)
|
||||
OR (v.data BETWEEN p.dt_inicio_mes_ant AND p.dt_fim_mes_ant)
|
||||
OR (v.data BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT FNC_CODIGOLOJA(m.loja_ajustada), 1, m.data, 0, m.meta_diaria
|
||||
FROM ORCADO_METAS_IMPORT m
|
||||
CROSS JOIN Parametros p
|
||||
WHERE m.data BETWEEN p.dt_inicio_mes AND LAST_DAY(p.dt_ref)
|
||||
),
|
||||
Agrupado AS (
|
||||
SELECT
|
||||
d.loja,
|
||||
d.empresa_tipo,
|
||||
SUM(CASE WHEN d.data BETWEEN p.dt_inicio_mes AND p.dt_ref THEN d.venda ELSE 0 END) as v_mes,
|
||||
SUM(CASE WHEN d.data BETWEEN p.dt_inicio_mes AND LAST_DAY(p.dt_ref) THEN d.meta ELSE 0 END) as m_mes,
|
||||
SUM(CASE WHEN d.data BETWEEN p.dt_inicio_mes_ant AND p.dt_fim_mes_ant THEN d.venda ELSE 0 END) as v_mes_ant,
|
||||
SUM(CASE WHEN d.data BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant THEN d.venda ELSE 0 END) as v_ano_ant
|
||||
FROM DadosUnificados d
|
||||
CROSS JOIN Parametros p
|
||||
GROUP BY d.loja, d.empresa_tipo
|
||||
)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN empresa_tipo = 131 THEN 'RESTAURANTE'
|
||||
WHEN FNC_NUMEROLOJA(loja) = 0 THEN 'TOTAL'
|
||||
ELSE 'VERDEMAR'
|
||||
END as canalapp,
|
||||
CASE
|
||||
WHEN empresa_tipo = 1 THEN FNC_NUMEROLOJA(loja)
|
||||
ELSE RESTAURANTE.FNC_NUMEROLOJA(loja)
|
||||
END as cod_empresa,
|
||||
CASE
|
||||
WHEN empresa_tipo = 1 THEN FNC_NOMEPESSOAS(loja)
|
||||
ELSE RESTAURANTE.FNC_NOMEPESSOAS(loja)
|
||||
END as nomeempresaapp,
|
||||
GROUPING(loja) as is_total,
|
||||
-- Cálculos
|
||||
SUM(m_mes) as meta_mes,
|
||||
SUM(v_mes) as mes_atual,
|
||||
SUM(v_mes) - SUM(m_mes) as dif_mes_atual,
|
||||
ROUND(NVL((SUM(v_mes) / NULLIF(SUM(m_mes), 0)) * 100 - 100, 0), 2) as variacao_atual,
|
||||
SUM(v_mes_ant) as mes_anterior,
|
||||
SUM(v_mes) - SUM(v_mes_ant) as dif_mes_anterior,
|
||||
ROUND(NVL((SUM(v_mes) / NULLIF(SUM(v_mes_ant), 0)) * 100 - 100, 0), 2) as variacao_mes_anterior,
|
||||
SUM(v_ano_ant) as ano_anterior,
|
||||
SUM(v_mes) - SUM(v_ano_ant) as dif_ano_anterior,
|
||||
ROUND(NVL((SUM(v_mes) / NULLIF(SUM(v_ano_ant), 0)) * 100 - 100, 0), 2) as variacao_ano_anterior
|
||||
FROM Agrupado
|
||||
GROUP BY GROUPING SETS((empresa_tipo, loja), ());
|
||||
`
|
||||
}
|
||||
},
|
||||
flash_categorias: (args) => {
|
||||
return {
|
||||
sql: /*sql*/``
|
||||
}
|
||||
},
|
||||
flash_vendas_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/``
|
||||
}
|
||||
},
|
||||
query_vazia : (args) => {
|
||||
return {
|
||||
sql: /*sql*/``
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
.withSchedules({
|
||||
C5: [
|
||||
@@ -1030,4 +1122,14 @@ where 1 = 0`,
|
||||
timeout_seconds: 2400,
|
||||
},
|
||||
],
|
||||
|
||||
Verdemar: [
|
||||
{
|
||||
name: 'Procedure que atualiza os dados do flash',
|
||||
command: /*sql*/ `BEGIN
|
||||
END`,
|
||||
cron: "0 * * * *",
|
||||
timeout_seconds: 2400,
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user