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
+33 -32
View File
@@ -1813,38 +1813,39 @@ 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 CONSINCO.MAP_PRODUTO p
FROM WHERE 1 = 1
CONSINCO.MAP_PRODUTO p AND (
WHERE -- Bloco 1: Filtro por Código Interno ou Descrição
1 = 1 (
AND ( ${args.filtro} IS NOT NULL
( AND (
${args.filtro} IS NOT NULL p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%'
AND ( OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%')
p.SEQPRODUTO LIKE '%' || ${args.filtro} || '%' )
OR UPPER(p.DESCCOMPLETA) LIKE UPPER('%' || ${args.filtro} || '%') )
) OR
) -- Bloco 2: Filtro por EAN (Código de Barras)
OR ( (
${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
${args.filtro} IS NULL -- Bloco 3: Caso ambos os filtros estejam nulos (Traz tudo)
AND ${args.ean} IS NULL (
) ${args.filtro} IS NULL
) AND ${args.ean} IS NULL
ORDER BY )
2 )
ORDER BY 2
`, `,
}; };
}, },