diff --git a/src/app/api/analitico-entidade-oracle/route.ts b/src/app/api/analitico-entidade-oracle/route.ts index 4302eef..4bc46e2 100644 --- a/src/app/api/analitico-entidade-oracle/route.ts +++ b/src/app/api/analitico-entidade-oracle/route.ts @@ -14,6 +14,7 @@ export async function GET(request: NextRequest) { const dataFim = searchParams.get('dataFim'); const centroCusto = searchParams.get('centroCusto'); const codigoGrupo = searchParams.get('codigoGrupo'); + const codigoSubgrupo = searchParams.get('codigoSubgrupo'); const codigoConta = searchParams.get('codigoConta'); // Parâmetros para exclusão de valores específicos @@ -29,6 +30,7 @@ export async function GET(request: NextRequest) { dataFim, centroCusto, codigoGrupo, + codigoSubgrupo, codigoConta, excluirCentroCusto, excluirCodigoConta, @@ -57,6 +59,14 @@ export async function GET(request: NextRequest) { console.log('📊 Adicionando filtro de grupo:', codigoGrupo); } + // Filtro por subgrupo (DIRETO, INDIRETO, SEM CC, etc.) + if (codigoSubgrupo) { + sql += ` AND SUBGRUPO = :${paramIndex}`; + params.push(codigoSubgrupo); + paramIndex++; + console.log('📊 Adicionando filtro de subgrupo:', codigoSubgrupo); + } + // Filtro por código da conta if (codigoConta) { sql += ` AND CODCONTA = :${paramIndex}`; diff --git a/src/app/dre-entidade/analitico.tsx b/src/app/dre-entidade/analitico.tsx index c45670d..aa7a68f 100644 --- a/src/app/dre-entidade/analitico.tsx +++ b/src/app/dre-entidade/analitico.tsx @@ -388,6 +388,9 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { if (filtrosExternos.codigoGrupo) { params.append('codigoGrupo', filtrosExternos.codigoGrupo); } + if (filtrosExternos.codigoSubgrupo) { + params.append('codigoSubgrupo', filtrosExternos.codigoSubgrupo); + } if (filtrosExternos.codigoConta) { params.append('codigoConta', filtrosExternos.codigoConta); } diff --git a/src/app/dre-entidade/teste.tsx b/src/app/dre-entidade/teste.tsx index 15f2d0c..6e1cd26 100644 --- a/src/app/dre-entidade/teste.tsx +++ b/src/app/dre-entidade/teste.tsx @@ -492,8 +492,23 @@ export default function Teste() { entidadeFiltro = row.entidade || ""; // Filtrar por direto/indireto se disponível + // Quando clicar em uma célula de valor de uma linha "direto_indireto" (DIRETO, INDIRETO ou SEM CC), + // adicionar o SUBGRUPO como filtro adicional diretoIndiretoFiltro = row.direto_indireto || ""; + // Verificar se a linha é do tipo "direto_indireto" e se a entidade pai está expandida (drill aberto) + // Se sim, usar o direto_indireto como codigoSubgrupo no filtro + let codigoSubgrupoFiltro = ""; + if (row.type === "direto_indireto" && row.direto_indireto) { + // Verificar se a entidade pai está expandida + const entidadePaiExpandida = expandedEntidades.has(row.entidade || ""); + if (entidadePaiExpandida) { + // Usar o direto_indireto (DIRETO, INDIRETO ou SEM CC) como filtro de subgrupo + codigoSubgrupoFiltro = row.direto_indireto; + console.log('📊 Drill aberto - Adicionando filtro de subgrupo:', codigoSubgrupoFiltro); + } + } + // Buscar CODGRUPO dos dados originais baseado na hierarquia selecionada // Quando clicar em qualquer nível (entidade, direto/indireto, centro de custo ou conta), deve filtrar por CODGRUPO if (row.type === "entidade" || row.type === "direto_indireto" || row.type === "centro_custo" || row.type === "conta") { @@ -637,7 +652,7 @@ export default function Teste() { dataFim: dataFimFiltro, centroCusto: centroCustoFiltro, codigoGrupo: codigoGrupoFiltro, // CODGRUPO da entidade/linha selecionada - codigoSubgrupo: diretoIndiretoFiltro, // Usar direto/indireto como subgrupo + codigoSubgrupo: codigoSubgrupoFiltro || diretoIndiretoFiltro, // SUBGRUPO quando drill aberto (DIRETO, INDIRETO ou SEM CC) codigoConta: codigoContaFiltro, linhaSelecionada: row.entidade || row.direto_indireto || row.centro_custo || row.conta || "", excluirCentroCusto,