diff --git a/src/products/products.module.ts b/src/products/products.module.ts index 93e9645..da9e441 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -18,10 +18,10 @@ export default moduleFactory }, rows: { title: "title", - code: "seqproduto", + code: "code", }, }, - params: ["filtro"], + params: ["filtro", "ean"], }, }, entrypoint: "consulta", @@ -31,20 +31,26 @@ export default moduleFactory consulta: (args) => { return { sql: /*sql*/ ` - SELECT - CAST(p.SEQPRODUTO AS NUMERIC(15)) AS PRODUTO, - p.DESCCOMPLETA AS NOME - FROM DIN_ABASTECIMENTO_PRODUTOS p - WHERE - CAST(p.SEQPRODUTO AS VARCHAR(50)) LIKE '%' || ${args.filtro} || '%' - OR UPPER(p.DESCCOMPLETA) LIKE '%' || UPPER(${args.filtro}) || '%' - OR p.SEQPRODUTO IN ( - SELECT A.SEQPRODUTO - FROM CONSINCO.MAP_PRODCODIGO A - WHERE ISNUMERIC(A.CODACESSO) = 'S' - AND CAST(A.CODACESSO AS NUMERIC) = CAST(${args.filtro} AS NUMERIC) - ) - ORDER BY p.DESCCOMPLETA + SELECT + CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, + p.DESCCOMPLETA AS title + FROM DIN_ABASTECIMENTO_PRODUTOS p + WHERE 1=1 + AND ( + (${args.filtro} IS NULL OR ${args.filtro} = '') + OR ( + p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%' + OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' ||${args.filtro} || '%') + OR EXISTS ( + SELECT 1 + FROM CONSINCO.MAP_PRODCODIGO A + WHERE A.SEQPRODUTO = p.SEQPRODUTO + AND ISNUMERIC(A.CODACESSO) = 'S' + AND CAST(A.CODACESSO AS NUMBER) = CAST(${args.ean} AS NUMBER) + ) + ) + ) + ORDER BY 2 `, }; },