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) => {
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
`,
};
},