From 761cd48cf0425aaf6e336e734d8cdce1d8776431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonath=C3=A3=20Correa?= Date: Tue, 28 Apr 2026 10:25:08 -0300 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20da=20query=20de=20consulta?= =?UTF-8?q?=20"ISNUMERIC"=20para=20REGEX,=20verificando=20se=20=C3=A9=20um?= =?UTF-8?q?=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/products/products.module.ts | 65 +++++++++++++++++---------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src/products/products.module.ts b/src/products/products.module.ts index 031fbfe..370ad27 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -1813,38 +1813,39 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1) consulta: (args) => { return { sql: /*sql*/ ` - SELECT - CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, - p.DESCCOMPLETA AS title - FROM - CONSINCO.MAP_PRODUTO p - WHERE - 1 = 1 - AND ( - ( - ${args.filtro} IS NOT NULL - AND ( - p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%' - OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%') - ) - ) - OR ( - ${args.ean} IS NOT NULL - AND EXISTS ( - SELECT 1 - FROM CONSINCO.MAP_PRODCODIGO A - WHERE A.SEQPRODUTO = p.SEQPRODUTO - AND ISNUMERIC(A.CODACESSO) = 'S' - AND A.CODACESSO = ${args.ean} - ) - ) - OR ( - ${args.filtro} IS NULL - AND ${args.ean} IS NULL - ) - ) - ORDER BY - 2 +SELECT CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code, + p.DESCCOMPLETA AS title + FROM CONSINCO.MAP_PRODUTO p + WHERE 1 = 1 + AND ( + -- Bloco 1: Filtro por Código Interno ou Descrição + ( + ${args.filtro} IS NOT NULL + AND ( + p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%' + OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%') + ) + ) + OR + -- Bloco 2: Filtro por EAN (Código de Barras) + ( + ${args.ean} IS NOT NULL + AND EXISTS ( + SELECT 1 + FROM CONSINCO.MAP_PRODCODIGO A + WHERE A.SEQPRODUTO = p.SEQPRODUTO + AND REGEXP_LIKE(A.CODACESSO, '^[0-9]+$') + AND A.CODACESSO = ${args.ean} + ) + ) + OR + -- Bloco 3: Caso ambos os filtros estejam nulos (Traz tudo) + ( + ${args.filtro} IS NULL + AND ${args.ean} IS NULL + ) + ) + ORDER BY 2 `, }; },