fix: filtro analitico pelo SUBGRUPO (DIRETO / INDIRETO / SEM CC)

This commit is contained in:
Alessandro Gonçaalves 2025-11-20 23:35:29 -03:00
parent 5234066d98
commit 5c97a7911e
3 changed files with 29 additions and 1 deletions

View File

@ -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}`;

View File

@ -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);
}

View File

@ -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,