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 dataFim = searchParams.get('dataFim');
const centroCusto = searchParams.get('centroCusto'); const centroCusto = searchParams.get('centroCusto');
const codigoGrupo = searchParams.get('codigoGrupo'); const codigoGrupo = searchParams.get('codigoGrupo');
const codigoSubgrupo = searchParams.get('codigoSubgrupo');
const codigoConta = searchParams.get('codigoConta'); const codigoConta = searchParams.get('codigoConta');
// Parâmetros para exclusão de valores específicos // Parâmetros para exclusão de valores específicos
@ -29,6 +30,7 @@ export async function GET(request: NextRequest) {
dataFim, dataFim,
centroCusto, centroCusto,
codigoGrupo, codigoGrupo,
codigoSubgrupo,
codigoConta, codigoConta,
excluirCentroCusto, excluirCentroCusto,
excluirCodigoConta, excluirCodigoConta,
@ -57,6 +59,14 @@ export async function GET(request: NextRequest) {
console.log('📊 Adicionando filtro de grupo:', codigoGrupo); 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 // Filtro por código da conta
if (codigoConta) { if (codigoConta) {
sql += ` AND CODCONTA = :${paramIndex}`; sql += ` AND CODCONTA = :${paramIndex}`;

View File

@ -388,6 +388,9 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
if (filtrosExternos.codigoGrupo) { if (filtrosExternos.codigoGrupo) {
params.append('codigoGrupo', filtrosExternos.codigoGrupo); params.append('codigoGrupo', filtrosExternos.codigoGrupo);
} }
if (filtrosExternos.codigoSubgrupo) {
params.append('codigoSubgrupo', filtrosExternos.codigoSubgrupo);
}
if (filtrosExternos.codigoConta) { if (filtrosExternos.codigoConta) {
params.append('codigoConta', filtrosExternos.codigoConta); params.append('codigoConta', filtrosExternos.codigoConta);
} }

View File

@ -492,8 +492,23 @@ export default function Teste() {
entidadeFiltro = row.entidade || ""; entidadeFiltro = row.entidade || "";
// Filtrar por direto/indireto se disponível // 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 || ""; 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 // 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 // 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") { 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, dataFim: dataFimFiltro,
centroCusto: centroCustoFiltro, centroCusto: centroCustoFiltro,
codigoGrupo: codigoGrupoFiltro, // CODGRUPO da entidade/linha selecionada 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, codigoConta: codigoContaFiltro,
linhaSelecionada: row.entidade || row.direto_indireto || row.centro_custo || row.conta || "", linhaSelecionada: row.entidade || row.direto_indireto || row.centro_custo || row.conta || "",
excluirCentroCusto, excluirCentroCusto,