diff --git a/src/flash/flash.module.ts b/src/flash/flash.module.ts index 491ffcb..c042f82 100644 --- a/src/flash/flash.module.ts +++ b/src/flash/flash.module.ts @@ -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`, + }; + }, + }, + }); diff --git a/src/products/products.module.ts b/src/products/products.module.ts new file mode 100644 index 0000000..798aa62 --- /dev/null +++ b/src/products/products.module.ts @@ -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`, + }; + }, + }, + });