Merge branch 'main' of https://git.davinti.com.br/davinTI/app-dono-modulos
davinTI/app-dono-modulos/pipeline/head This commit looks good

This commit is contained in:
2026-05-07 14:21:45 -03:00
10 changed files with 1193 additions and 0 deletions
@@ -0,0 +1,221 @@
import { createModuleFactory } from "@davinti/jeff";
const moduleFactory = createModuleFactory(["C5", "C5_big", "C5_mambo"]);
export default moduleFactory
.createModule({
id: "flash-de-contribuicao",
description: "Flash de Contribuição",
label: "Flash de Contribuição",
icon: "bar-chart",
queries: {
flashContribuicao: {
name: "Flash de Contribuição",
display: {
type: "flash",
settings: {
group_column: "canalapp",
total_indicator_column: "is_total",
null_label_key: "Geral",
},
header: {
title_column: "canalapp",
value_column: "contribuicao_dia",
value_format: "currency",
},
rows: [
{
label: "Meta Mês",
column: "meta_mes",
format: "currency_short",
},
{
label: "Mês Atual",
column: "mes_atual",
format: "currency_short",
},
{
label: "Dif ($)",
column: "dif_mes_atual",
format: "currency_short",
},
{
label: "% Variação",
column: "variacao_atual",
format: "percentage",
},
{
label: "Mês Anterior",
column: "mes_anterior",
format: "currency_short",
},
{
label: "Dif ($)",
column: "dif_mes_anterior",
format: "currency_short",
},
{
label: "% Variação",
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",
},
],
},
params: ["data_contribuicao"],
},
},
entrypoint: "flashContribuicao",
})
.withImplementations({
C5: {
flashContribuicao: (args) => {
return {
sql: /*sql*/ ``,
};
},
},
C5_big: {
flashContribuicao: (args) => {
return {
sql: /*sql*/ `
SELECT
'Lojas' 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.data_referencia = TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD') THEN x.valor_contribuicao ELSE 0 END) AS contribuicao_dia,
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_contribuicao ELSE 0 END) AS mes_atual,
SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_contribuicao - 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_contribuicao 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_contribuicao ELSE 0 END) AS mes_anterior,
SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_contribuicao ELSE 0 END) -
SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_contribuicao ELSE 0 END) AS dif_mes_anterior,
CASE
WHEN SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_contribuicao ELSE 0 END) = 0 THEN 0
ELSE ROUND(
((SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_contribuicao ELSE 0 END) /
SUM(CASE WHEN x.periodo = 'MES_ANTERIOR' THEN x.valor_contribuicao 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_contribuicao ELSE 0 END) AS ano_anterior,
SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_contribuicao ELSE 0 END) -
SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_contribuicao ELSE 0 END) AS dif_ano_anterior,
CASE
WHEN SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_contribuicao ELSE 0 END) = 0 THEN 0
ELSE ROUND(
((SUM(CASE WHEN x.periodo = 'ATUAL' THEN x.valor_contribuicao ELSE 0 END) /
SUM(CASE WHEN x.periodo = 'ANO_ANTERIOR' THEN x.valor_contribuicao ELSE 0 END)) * 100) - 100
, 2)
END AS variacao_ano_anterior
FROM
(
SELECT
n.codigo,
n.nome AS nomeempresaapp,
r.data_referencia,
r.valor_meta_efetiva,
r.valor_contribuicao,
CASE
WHEN r.data_referencia BETWEEN TRUNC(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), 'MM') AND TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD')
THEN 'ATUAL'
WHEN r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), 'MM'), -1)
AND ADD_MONTHS(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), -1)
THEN 'MES_ANTERIOR'
WHEN r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), 'MM'), -12)
AND ADD_MONTHS(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), -12)
THEN 'ANO_ANTERIOR'
END AS periodo
FROM
tb_flash_nodo_resumo_contribuicao 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_contribuicao}, 'YYYY-MM-DD'), 'MM') AND TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD')
OR r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), 'MM'), -1)
AND ADD_MONTHS(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), -1)
OR r.data_referencia BETWEEN ADD_MONTHS(TRUNC(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), 'MM'), -12)
AND ADD_MONTHS(TO_DATE(${args.data_contribuicao}, 'YYYY-MM-DD'), -12)
)
) x
GROUP BY
GROUPING SETS (
(x.codigo, x.nomeempresaapp),
()
)
`,
};
},
},
C5_mambo: {
flashContribuicao: (args) => {
return {
sql: /*sql*/ ``,
};
},
},
}).withSchedules({
C5: [
{
name: "Procedure que atualiza os dados do flash de contribuição",
command: /*sql*/ `BEGIN
END`,
cron: "0 * * * *",
timeout_seconds: 2400,
},
],
C5_big: [
{
name: "Procedure que atualiza os dados do flash de contribuição",
command: /*sql*/ `BEGIN
PRC_FLASH_ATUALIZA_CONTRIBUICAO_DONO(
p_data_inicial => TRUNC(SYSDATE) - 30,
p_data_final => TRUNC(SYSDATE),
p_empresa_ini => 1,
p_empresa_fim => 10
);
END`,
cron: "0 * * * *",
timeout_seconds: 2400,
},
],
C5_mambo: [
{
name: "Procedure que atualiza os dados do flash de contribuição",
command: /*sql*/ `BEGIN
END`,
cron: "0 * * * *",
timeout_seconds: 2400,
},
],
});