Correção da query de consulta "ISNUMERIC" para REGEX, verificando se é um código
davinTI/app-dono-modulos/pipeline/head This commit looks good

This commit is contained in:
Jonathã Correa
2026-04-28 10:25:08 -03:00
parent e369a60c47
commit 761cd48cf0
+12 -11
View File
@@ -1813,14 +1813,12 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
consulta: (args) => { consulta: (args) => {
return { return {
sql: /*sql*/ ` sql: /*sql*/ `
SELECT SELECT CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code,
CAST(p.SEQPRODUTO AS NUMERIC(15)) AS code,
p.DESCCOMPLETA AS title p.DESCCOMPLETA AS title
FROM FROM CONSINCO.MAP_PRODUTO p
CONSINCO.MAP_PRODUTO p WHERE 1 = 1
WHERE
1 = 1
AND ( AND (
-- Bloco 1: Filtro por Código Interno ou Descrição
( (
${args.filtro} IS NOT NULL ${args.filtro} IS NOT NULL
AND ( AND (
@@ -1828,23 +1826,26 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%') OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%')
) )
) )
OR ( OR
-- Bloco 2: Filtro por EAN (Código de Barras)
(
${args.ean} IS NOT NULL ${args.ean} IS NOT NULL
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
FROM CONSINCO.MAP_PRODCODIGO A FROM CONSINCO.MAP_PRODCODIGO A
WHERE A.SEQPRODUTO = p.SEQPRODUTO WHERE A.SEQPRODUTO = p.SEQPRODUTO
AND ISNUMERIC(A.CODACESSO) = 'S' AND REGEXP_LIKE(A.CODACESSO, '^[0-9]+$')
AND A.CODACESSO = ${args.ean} AND A.CODACESSO = ${args.ean}
) )
) )
OR ( OR
-- Bloco 3: Caso ambos os filtros estejam nulos (Traz tudo)
(
${args.filtro} IS NULL ${args.filtro} IS NULL
AND ${args.ean} IS NULL AND ${args.ean} IS NULL
) )
) )
ORDER BY ORDER BY 2
2
`, `,
}; };
}, },