changed sql query and filter

This commit is contained in:
2026-03-02 11:21:03 -03:00
parent 28bba63131
commit 49eca1605a
+57 -38
View File
@@ -14,14 +14,14 @@ export default moduleFactory
display: { display: {
type: "list", type: "list",
search_bar: { search_bar: {
placeholder: "Digite o nome do produto", placeholder: "Digite o nome, código ou EAN do produto",
}, },
rows: { rows: {
title: "title", title: "title",
code: "code", code: "seqproduto",
}, },
}, },
params: ["nome_produto"], params: ["filtro"],
}, },
}, },
entrypoint: "consulta", entrypoint: "consulta",
@@ -31,42 +31,61 @@ export default moduleFactory
consulta: (args) => { consulta: (args) => {
return { return {
sql: /*sql*/ ` sql: /*sql*/ `
select --mpc.codacesso as code, SELECT
pro.seqproduto, pro.seqproduto,
Upper(NVL(PRODIMAG.DESCRICAO,PRO.DESCCOMPLETA)) title, UPPER(NVL(PRODIMAG.DESCRICAO, PRO.DESCCOMPLETA)) AS title,
Upper(pro.desccompleta) Pesquisa, UPPER(pro.desccompleta) AS pesquisa,
coalesce(mapi.urlecommerceimg, '') IMAGEMURL, COALESCE(mapi.urlecommerceimg, '') AS imagemurl,
NVL(cpa.seqcategoria,0) CATEGORIAID, NVL(cpa.seqcategoria,0) AS categoriaid,
NVL(cpa.categoria,'SEM CATEGORIA') CATEGORIADESC NVL(cpa.categoria,'SEM CATEGORIA') AS categoriadesc
from map_produto pro FROM map_produto pro
LEFT JOIN map_produtoimagem mapi
/* inner join map_prodcodigo mpc ON mapi.seqproduto = pro.seqproduto
on mpc.seqfamilia = pro.seqfamilia AND mapi.indpricipal = 'S'
and mpc.seqproduto = pro.seqproduto LEFT JOIN CONSINCO.GMGB_VW_MOBILE_PRODIMAGE PRODIMAG
AND mpc.tipcodigo = 'E' ON PRODIMAG.ID = PRO.SEQPRODUTO
and mpc.indutilvenda = 'S'*/ LEFT JOIN (
SELECT fdc.seqfamilia, fdc.seqcategoria, c.categoria
left join map_produtoimagem mapi FROM map_famdivcateg fdc
on mapi.seqproduto = pro.seqproduto INNER JOIN consinco.map_categoria c
and mapi.indpricipal = 'S' ON fdc.seqcategoria = c.seqcategoria
AND fdc.nrodivisao = c.nrodivisao
LEFT JOIN CONSINCO.GMGB_VW_MOBILE_PRODIMAGE PRODIMAG WHERE c.nrodivisao = 2
ON PRODIMAG.ID = PRO.SEQPRODUTO AND c.categoria NOT IN (
' A CLASSIFICAR',
left join (select fdc.seqfamilia, fdc.seqcategoria, c.categoria 'ATIVO FIXO',
from map_famdivcateg fdc 'ALMOXARIFADO',
inner join consinco.map_categoria c 'LANCHONETE',
on fdc.seqcategoria = c.seqcategoria 'SERVI OS'
and fdc.nrodivisao = c.nrodivisao )
where c.nrodivisao = 2 AND c.nivelhierarquia = 1
and c.categoria not in (' A CLASSIFICAR','ATIVO FIXO','ALMOXARIFADO','LANCHONETE','SERVI OS') AND c.statuscategor = 'A'
and c.nivelhierarquia = 1 AND c.tipcategoria = 'M'
and c.statuscategor = 'A' AND fdc.status = 'A'
and c.tipcategoria = 'M' ) cpa
and fdc.status = 'A' ON cpa.seqfamilia = pro.seqfamilia
and title = ${args.nome_produto} WHERE 1=1
) cpa AND (
on cpa.seqfamilia = pro.seqfamilia`, UPPER(pro.desccompleta) LIKE UPPER('%' || ${args.filtro} || '%')
OR pro.seqproduto = CASE
WHEN REGEXP_LIKE(${args.filtro}, '^[0-9]+$')
THEN TO_NUMBER(${args.filtro})
ELSE NULL
END
OR EXISTS (
SELECT 1
FROM CONSINCO.MAP_PRODCODIGO A
WHERE A.SEQPRODUTO = pro.SEQPRODUTO
AND ISNUMERIC(A.CODACESSO) = 'S'
AND TO_NUMBER(A.CODACESSO) = CASE
WHEN REGEXP_LIKE(${args.filtro}, '^[0-9]+$')
THEN TO_NUMBER(${args.filtro})
ELSE NULL
END
)
)
ORDER BY title
`,
}; };
}, },
}, },