diff --git a/src/flash/flash.module.ts b/src/flash/flash.module.ts index 13a5f66..be0d27b 100644 --- a/src/flash/flash.module.ts +++ b/src/flash/flash.module.ts @@ -1057,12 +1057,12 @@ where 1 = 0`, flash_categorias: (args) => { return { sql: /*sql*/` - WITH Parametros_Base AS ( - SELECT - TO_DATE(${args.data_venda}, 'YYYY-MM-DD') AS dt_ref, - ${args.codigo_categoria_pai} AS id_nodo_pai, - ${args.cod_empresa} AS cod_empresa - FROM DUAL + WITH Parametros_Base AS ( + SELECT + TO_DATE(${args.data_venda}, 'YYYY-MM-DD') AS dt_ref, + ${args.codigo_categoria_pai} AS codigo_categoria_pai, + ${args.cod_empresa} AS cod_empresa + FROM DUAL ), Parametros AS ( SELECT @@ -1072,9 +1072,9 @@ where 1 = 0`, ADD_MONTHS(dt_ref, -1) AS dt_fim_mes_ant, ADD_MONTHS(TRUNC(dt_ref, 'MM'), -12) AS dt_inicio_ano_ant, ADD_MONTHS(dt_ref, -12) AS dt_fim_ano_ant, - id_nodo_pai, + codigo_categoria_pai, cod_empresa - FROM Parametros_Base + FROM Parametros_Base ), filhos AS ( SELECT @@ -1083,8 +1083,8 @@ where 1 = 0`, FROM VERDEMAR.TB_FLASH_NODO n CROSS JOIN Parametros p WHERE n.ativo = 'S' - AND ( (p.id_nodo_pai IS NULL AND n.tipo_nodo = 'CATEGORIA' AND n.NIVEL = 2) - OR (p.id_nodo_pai IS NOT NULL AND n.id_nodo_pai = p.id_nodo_pai) ) + 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) ) AND (p.cod_empresa IS NULL OR n.cod_empresa = p.cod_empresa) ), Vendas_Metas AS ( @@ -1103,6 +1103,8 @@ where 1 = 0`, ), Agrupado AS ( SELECT + -- Quando N�O tem filtro de empresa: agrupa por CODIGO (consolida v�rias empresas) + -- Quando TEM filtro de empresa: agrupa por ID_NODO (cada empresa separada) v.codigo AS codigo, MAX(v.nome) AS nome, MAX(v.tipo_nodo) AS tipo_nodo,