add product module and add icon to modules

This commit is contained in:
2026-02-26 16:38:58 -03:00
parent b717f89fa8
commit 487bf2eda4
2 changed files with 153 additions and 77 deletions
+80 -77
View File
@@ -2,78 +2,81 @@ import { createModuleFactory } from "@davinti/jeff";
const moduleFactory = createModuleFactory(["C5"]);
export default moduleFactory.createModule({
id: "flash-de-vendas",
description: "Flash de Vendas",
label: "Flash de Vendas",
queries: {
"flash": {
name: "Flash de Vendas",
display: {
type: "flash",
settings: {
group_column: "canalapp",
total_indicator_column: "is_total",
null_label_key: "Geral",
},
header: {
title_column: "canalapp",
value_column: "venda_dia",
value_format: "currency",
},
rows: [
{
label: "Meta Mês",
column: "meta_mes",
format: "currency_short",
},
{
label: "VDA",
column: "vda",
format: "currency_short",
},
{
label: "DMA",
column: "dma",
format: "currency_short",
},
{
label: "Meta Dia",
column: "meta_dia",
format: "currency_short",
},
{
label: "Meta Margem Dia",
column: "meta_margem_dia",
format: "percentage",
},
{
label: "Qtd Clientes",
column: "qtd_clientes",
format: "integer",
},
{
label: "Ticket Médio",
column: "ticket_medio",
format: "currency",
},
{
label: "Margem",
column: "margem",
format: "percentage",
accent: true,
},
],
},
params: ["data_venda"],
}
},
entrypoint: "flash",
}).withImplementations({
C5: {
flash: (args) => {
return {
sql: /*sql*/`
export default moduleFactory
.createModule({
id: "flash-de-vendas",
description: "Flash de Vendas",
label: "Flash de Vendas",
icon: "bar-chart",
queries: {
flash: {
name: "Flash de Vendas",
display: {
type: "flash",
settings: {
group_column: "canalapp",
total_indicator_column: "is_total",
null_label_key: "Geral",
},
header: {
title_column: "canalapp",
value_column: "venda_dia",
value_format: "currency",
},
rows: [
{
label: "Meta Mês",
column: "meta_mes",
format: "currency_short",
},
{
label: "VDA",
column: "vda",
format: "currency_short",
},
{
label: "DMA",
column: "dma",
format: "currency_short",
},
{
label: "Meta Dia",
column: "meta_dia",
format: "currency_short",
},
{
label: "Meta Margem Dia",
column: "meta_margem_dia",
format: "percentage",
},
{
label: "Qtd Clientes",
column: "qtd_clientes",
format: "integer",
},
{
label: "Ticket Médio",
column: "ticket_medio",
format: "currency",
},
{
label: "Margem",
column: "margem",
format: "percentage",
accent: true,
},
],
},
params: ["data_venda"],
},
},
entrypoint: "flash",
})
.withImplementations({
C5: {
flash: (args) => {
return {
sql: /*sql*/ `
select
tes.canalapp,
tes.nomeempresaapp,
@@ -97,8 +100,8 @@ where 1=1
and tvf.vlrvendaacumulada > 0
and tvf.dtavda = TO_DATE(${args.data_venda}, 'YYYY-MM-DD')
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`,
};
},
},
});