diff --git a/src/flash/flash.module.ts b/src/flash/flash.module.ts index 80dcc50..1d00242 100644 --- a/src/flash/flash.module.ts +++ b/src/flash/flash.module.ts @@ -1079,8 +1079,9 @@ where 1 = 0`, filhos AS ( SELECT n.id_nodo, + -- Alteração 1: Sempre unifica o código pelo nome se não houver filtro de loja CASE - WHEN p.cod_empresa IS NULL AND p.codigo_categoria_pai IS NULL THEN + WHEN p.cod_empresa IS NULL THEN MIN(n.ID_NODO) OVER (PARTITION BY n.nome) ELSE n.ID_NODO @@ -1091,7 +1092,12 @@ where 1 = 0`, CROSS JOIN Parametros p WHERE n.ativo = 'S' AND ( (p.codigo_categoria_pai IS NULL AND n.tipo_nodo = 'CATEGORIA' AND n.NIVEL = 2) - OR (p.codigo_categoria_pai IS NOT NULL AND n.id_nodo_pai = p.codigo_categoria_pai) ) + -- Alteração 2: Busca os filhos de todos os nós que têm o mesmo nome da categoria pai filtrada + OR (p.codigo_categoria_pai IS NOT NULL AND n.id_nodo_pai IN ( + SELECT pai.id_nodo + FROM VERDEMAR.TB_FLASH_NODO pai + WHERE pai.nome = (SELECT nome FROM VERDEMAR.TB_FLASH_NODO WHERE id_nodo = p.codigo_categoria_pai) + )) ) AND (p.cod_empresa IS NULL OR n.cod_empresa = p.cod_empresa) ), Vendas_Metas AS (