diff --git a/src/products/products.module.ts b/src/products/products.module.ts index 38e3f59..60e54f2 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -14,14 +14,14 @@ export default moduleFactory display: { type: "list", search_bar: { - placeholder: "Digite o nome do produto", + placeholder: "Digite o nome, código ou EAN do produto", }, rows: { title: "title", - code: "code", + code: "seqproduto", }, }, - params: ["nome_produto"], + params: ["filtro"], }, }, entrypoint: "consulta", @@ -31,42 +31,61 @@ export default moduleFactory consulta: (args) => { return { sql: /*sql*/ ` -select --mpc.codacesso as code, +SELECT pro.seqproduto, - Upper(NVL(PRODIMAG.DESCRICAO,PRO.DESCCOMPLETA)) title, - 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 title = ${args.nome_produto} - ) cpa - on cpa.seqfamilia = pro.seqfamilia`, + UPPER(NVL(PRODIMAG.DESCRICAO, PRO.DESCCOMPLETA)) AS title, + UPPER(pro.desccompleta) AS pesquisa, + COALESCE(mapi.urlecommerceimg, '') AS imagemurl, + NVL(cpa.seqcategoria,0) AS categoriaid, + NVL(cpa.categoria,'SEM CATEGORIA') AS categoriadesc +FROM map_produto pro +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' +) cpa + ON cpa.seqfamilia = pro.seqfamilia +WHERE 1=1 +AND ( + UPPER(pro.desccompleta) LIKE UPPER('%' || ${args.filtro} || '%') + OR pro.seqproduto = CASE + WHEN REGEXP_LIKE(${args.filtro}, '^[0-9]+$') + THEN TO_NUMBER(${args.filtro}) + ELSE NULL + END + OR EXISTS ( + SELECT 1 + FROM CONSINCO.MAP_PRODCODIGO A + WHERE A.SEQPRODUTO = pro.SEQPRODUTO + AND ISNUMERIC(A.CODACESSO) = 'S' + AND TO_NUMBER(A.CODACESSO) = CASE + WHEN REGEXP_LIKE(${args.filtro}, '^[0-9]+$') + THEN TO_NUMBER(${args.filtro}) + ELSE NULL + END + ) +) +ORDER BY title + `, }; }, },