feat: add new module consulta de produtos #1

Merged
tiago.inaba merged 3 commits from feature/new-modules into develop 2026-02-27 15:10:49 +00:00
2 changed files with 153 additions and 77 deletions
Showing only changes of commit 487bf2eda4 - Show all commits
+80 -77
View File
@@ -2,78 +2,81 @@ import { createModuleFactory } from "@davinti/jeff";
const moduleFactory = createModuleFactory(["C5"]); const moduleFactory = createModuleFactory(["C5"]);
export default moduleFactory.createModule({ export default moduleFactory
id: "flash-de-vendas", .createModule({
description: "Flash de Vendas", id: "flash-de-vendas",
label: "Flash de Vendas", description: "Flash de Vendas",
queries: { label: "Flash de Vendas",
"flash": { icon: "bar-chart",
name: "Flash de Vendas", queries: {
display: { flash: {
type: "flash", name: "Flash de Vendas",
settings: { display: {
group_column: "canalapp", type: "flash",
total_indicator_column: "is_total", settings: {
null_label_key: "Geral", group_column: "canalapp",
}, total_indicator_column: "is_total",
header: { null_label_key: "Geral",
title_column: "canalapp", },
value_column: "venda_dia", header: {
value_format: "currency", title_column: "canalapp",
}, value_column: "venda_dia",
rows: [ value_format: "currency",
{ },
label: "Meta Mês", rows: [
column: "meta_mes", {
format: "currency_short", label: "Meta Mês",
}, column: "meta_mes",
{ format: "currency_short",
label: "VDA", },
column: "vda", {
format: "currency_short", label: "VDA",
}, column: "vda",
{ format: "currency_short",
label: "DMA", },
column: "dma", {
format: "currency_short", label: "DMA",
}, column: "dma",
{ format: "currency_short",
label: "Meta Dia", },
column: "meta_dia", {
format: "currency_short", label: "Meta Dia",
}, column: "meta_dia",
{ format: "currency_short",
label: "Meta Margem Dia", },
column: "meta_margem_dia", {
format: "percentage", label: "Meta Margem Dia",
}, column: "meta_margem_dia",
{ format: "percentage",
label: "Qtd Clientes", },
column: "qtd_clientes", {
format: "integer", label: "Qtd Clientes",
}, column: "qtd_clientes",
{ format: "integer",
label: "Ticket Médio", },
column: "ticket_medio", {
format: "currency", label: "Ticket Médio",
}, column: "ticket_medio",
{ format: "currency",
label: "Margem", },
column: "margem", {
format: "percentage", label: "Margem",
accent: true, column: "margem",
}, format: "percentage",
], accent: true,
}, },
params: ["data_venda"], ],
} },
}, params: ["data_venda"],
entrypoint: "flash", },
}).withImplementations({ },
C5: { entrypoint: "flash",
flash: (args) => { })
return { .withImplementations({
sql: /*sql*/` C5: {
flash: (args) => {
return {
sql: /*sql*/ `
select select
tes.canalapp, tes.canalapp,
tes.nomeempresaapp, tes.nomeempresaapp,
@@ -97,8 +100,8 @@ where 1=1
and tvf.vlrvendaacumulada > 0 and tvf.vlrvendaacumulada > 0
and tvf.dtavda = TO_DATE(${args.data_venda}, 'YYYY-MM-DD') and tvf.dtavda = TO_DATE(${args.data_venda}, 'YYYY-MM-DD')
group by rollup(canalapp, nomeempresaapp) group by rollup(canalapp, nomeempresaapp)
order by grouping(canalapp) desc, grouping(nomeempresaapp) desc` order by grouping(canalapp) desc, grouping(nomeempresaapp) desc`,
}; };
} },
} },
}) });
+73
View File
@@ -0,0 +1,73 @@
import { createModuleFactory } from "@davinti/jeff";
const moduleFactory = createModuleFactory(["C5"]);
export default moduleFactory
.createModule({
id: "consulta-de-produto",
description: "Consulta de Produtos",
label: "Consulta de Produtos",
icon: "search",
queries: {
consulta: {
name: "Consulta de Produtos",
display: {
type: "list",
search_bar: {
placeholder: "Digite o nome do produto",
},
rows: {
title: "title",
code: "code",
},
},
params: ["nome_produto"],
},
},
entrypoint: "consulta",
})
.withImplementations({
C5: {
consulta: (args) => {
return {
sql: /*sql*/ `
select --mpc.codacesso,
pro.seqproduto,
Upper(NVL(PRODIMAG.DESCRICAO,PRO.DESCCOMPLETA)) Descricao,
Upper(pro.desccompleta) Pesquisa,
coalesce(mapi.urlecommerceimg, '') IMAGEMURL,
NVL(cpa.seqcategoria,0) CATEGORIAID,
NVL(cpa.categoria,'SEM CATEGORIA') CATEGORIADESC
from map_produto pro
/* inner join map_prodcodigo mpc
on mpc.seqfamilia = pro.seqfamilia
and mpc.seqproduto = pro.seqproduto
AND mpc.tipcodigo = 'E'
and mpc.indutilvenda = 'S'*/
left join map_produtoimagem mapi
on mapi.seqproduto = pro.seqproduto
and mapi.indpricipal = 'S'
LEFT JOIN CONSINCO.GMGB_VW_MOBILE_PRODIMAGE PRODIMAG
ON PRODIMAG.ID = PRO.SEQPRODUTO
left join (select fdc.seqfamilia, fdc.seqcategoria, c.categoria
from map_famdivcateg fdc
inner join consinco.map_categoria c
on fdc.seqcategoria = c.seqcategoria
and fdc.nrodivisao = c.nrodivisao
where c.nrodivisao = 2
and c.categoria not in (' A CLASSIFICAR','ATIVO FIXO','ALMOXARIFADO','LANCHONETE','SERVI OS')
and c.nivelhierarquia = 1
and c.statuscategor = 'A'
and c.tipcategoria = 'M'
and fdc.status = 'A'
and Descricao = ${args.nome_produto}
) cpa
on cpa.seqfamilia = pro.seqfamilia`,
};
},
},
});