fix: correção de filtro analitico
This commit is contained in:
parent
add83c5d6d
commit
91392ecc4a
|
|
@ -78,6 +78,8 @@ interface AnaliticoProps {
|
||||||
linhaSelecionada?: string;
|
linhaSelecionada?: string;
|
||||||
excluirCentroCusto?: string;
|
excluirCentroCusto?: string;
|
||||||
excluirCodigoConta?: string;
|
excluirCodigoConta?: string;
|
||||||
|
codigosCentrosCustoSelecionados?: string;
|
||||||
|
codigosContasSelecionadas?: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -379,6 +381,12 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
if (filtrosExternos.excluirCodigoConta) {
|
if (filtrosExternos.excluirCodigoConta) {
|
||||||
params.append('excluirCodigoConta', filtrosExternos.excluirCodigoConta);
|
params.append('excluirCodigoConta', filtrosExternos.excluirCodigoConta);
|
||||||
}
|
}
|
||||||
|
if (filtrosExternos.codigosCentrosCustoSelecionados) {
|
||||||
|
params.append('codigosCentrosCustoSelecionados', filtrosExternos.codigosCentrosCustoSelecionados);
|
||||||
|
}
|
||||||
|
if (filtrosExternos.codigosContasSelecionadas) {
|
||||||
|
params.append('codigosContasSelecionadas', filtrosExternos.codigosContasSelecionadas);
|
||||||
|
}
|
||||||
|
|
||||||
const url = `/api/analitico-oracle?${params.toString()}`;
|
const url = `/api/analitico-oracle?${params.toString()}`;
|
||||||
console.log('🌐 Fazendo requisição para:', url);
|
console.log('🌐 Fazendo requisição para:', url);
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,8 @@ export default function Teste() {
|
||||||
linhaSelecionada: "", // Adicionar informação da linha selecionada
|
linhaSelecionada: "", // Adicionar informação da linha selecionada
|
||||||
excluirCentroCusto: "", // Para excluir centro de custo específico quando desmarcado
|
excluirCentroCusto: "", // Para excluir centro de custo específico quando desmarcado
|
||||||
excluirCodigoConta: "", // Para excluir código de conta específico quando desmarcado
|
excluirCodigoConta: "", // Para excluir código de conta específico quando desmarcado
|
||||||
|
codigosCentrosCustoSelecionados: "", // Códigos dos centros de custo selecionados no filtro
|
||||||
|
codigosContasSelecionadas: "", // Códigos das contas selecionadas no filtro
|
||||||
});
|
});
|
||||||
const [linhaSelecionada, setLinhaSelecionada] = useState<string | null>(null);
|
const [linhaSelecionada, setLinhaSelecionada] = useState<string | null>(null);
|
||||||
const [isAllExpanded, setIsAllExpanded] = useState(false);
|
const [isAllExpanded, setIsAllExpanded] = useState(false);
|
||||||
|
|
@ -463,6 +465,24 @@ export default function Teste() {
|
||||||
excluirCodigoConta = "100050";
|
excluirCodigoConta = "100050";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Obter códigos dos centros de custo selecionados no filtro
|
||||||
|
const codigosCentrosCustoSelecionados = centrosCustoSelecionados
|
||||||
|
.map(centro => {
|
||||||
|
const item = data.find((d: DREItem) => d.centro_custo === centro);
|
||||||
|
return item?.codigo_centro_custo;
|
||||||
|
})
|
||||||
|
.filter(codigo => codigo) // Remover undefined
|
||||||
|
.join(',');
|
||||||
|
|
||||||
|
// Obter códigos das contas selecionadas no filtro
|
||||||
|
const codigosContasSelecionadas = contasSelecionadas
|
||||||
|
.map(conta => {
|
||||||
|
const item = data.find((d: DREItem) => d.conta === conta);
|
||||||
|
return item?.codigo_conta?.toString();
|
||||||
|
})
|
||||||
|
.filter(codigo => codigo) // Remover undefined
|
||||||
|
.join(',');
|
||||||
|
|
||||||
const novosFiltros = {
|
const novosFiltros = {
|
||||||
dataInicio: dataInicioFiltro,
|
dataInicio: dataInicioFiltro,
|
||||||
dataFim: dataFimFiltro,
|
dataFim: dataFimFiltro,
|
||||||
|
|
@ -473,6 +493,8 @@ export default function Teste() {
|
||||||
linhaSelecionada: row.grupo || row.subgrupo || row.centro_custo || row.conta || "", // Incluir informação da linha selecionada
|
linhaSelecionada: row.grupo || row.subgrupo || row.centro_custo || row.conta || "", // Incluir informação da linha selecionada
|
||||||
excluirCentroCusto,
|
excluirCentroCusto,
|
||||||
excluirCodigoConta,
|
excluirCodigoConta,
|
||||||
|
codigosCentrosCustoSelecionados,
|
||||||
|
codigosContasSelecionadas,
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('🎯 Novos filtros para analítico:', novosFiltros);
|
console.log('🎯 Novos filtros para analítico:', novosFiltros);
|
||||||
|
|
@ -480,7 +502,9 @@ export default function Teste() {
|
||||||
centroCusto: novosFiltros.centroCusto,
|
centroCusto: novosFiltros.centroCusto,
|
||||||
codigoConta: novosFiltros.codigoConta,
|
codigoConta: novosFiltros.codigoConta,
|
||||||
codigoContaType: typeof novosFiltros.codigoConta,
|
codigoContaType: typeof novosFiltros.codigoConta,
|
||||||
codigoContaLength: novosFiltros.codigoConta?.length
|
codigoContaLength: novosFiltros.codigoConta?.length,
|
||||||
|
codigosCentrosCustoSelecionados: novosFiltros.codigosCentrosCustoSelecionados,
|
||||||
|
codigosContasSelecionadas: novosFiltros.codigosContasSelecionadas
|
||||||
});
|
});
|
||||||
setAnaliticoFiltros(novosFiltros);
|
setAnaliticoFiltros(novosFiltros);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ export async function GET(request: NextRequest) {
|
||||||
// Parâmetros para exclusão de valores específicos
|
// Parâmetros para exclusão de valores específicos
|
||||||
const excluirCentroCusto = searchParams.get('excluirCentroCusto');
|
const excluirCentroCusto = searchParams.get('excluirCentroCusto');
|
||||||
const excluirCodigoConta = searchParams.get('excluirCodigoConta');
|
const excluirCodigoConta = searchParams.get('excluirCodigoConta');
|
||||||
|
|
||||||
|
// Novos parâmetros para códigos selecionados no filtro
|
||||||
|
const codigosCentrosCustoSelecionados = searchParams.get('codigosCentrosCustoSelecionados');
|
||||||
|
const codigosContasSelecionadas = searchParams.get('codigosContasSelecionadas');
|
||||||
|
|
||||||
console.log('🎯 Filtros recebidos:', {
|
console.log('🎯 Filtros recebidos:', {
|
||||||
dataInicio,
|
dataInicio,
|
||||||
|
|
@ -27,7 +31,9 @@ export async function GET(request: NextRequest) {
|
||||||
codigoGrupo,
|
codigoGrupo,
|
||||||
codigoConta,
|
codigoConta,
|
||||||
excluirCentroCusto,
|
excluirCentroCusto,
|
||||||
excluirCodigoConta
|
excluirCodigoConta,
|
||||||
|
codigosCentrosCustoSelecionados,
|
||||||
|
codigosContasSelecionadas
|
||||||
});
|
});
|
||||||
|
|
||||||
// Construir query SQL com filtros
|
// Construir query SQL com filtros
|
||||||
|
|
@ -83,6 +89,24 @@ export async function GET(request: NextRequest) {
|
||||||
console.log('🚫 Excluindo código de conta:', excluirCodigoConta);
|
console.log('🚫 Excluindo código de conta:', excluirCodigoConta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filtro por códigos de centros de custo selecionados no filtro
|
||||||
|
if (codigosCentrosCustoSelecionados) {
|
||||||
|
const codigosArray = codigosCentrosCustoSelecionados.split(',');
|
||||||
|
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
||||||
|
sql += ` AND CODIGOCENTROCUSTO IN (${placeholders})`;
|
||||||
|
params.push(...codigosArray);
|
||||||
|
console.log('🏢 Filtrando por códigos de centros de custo:', codigosArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtro por códigos de contas selecionadas no filtro
|
||||||
|
if (codigosContasSelecionadas) {
|
||||||
|
const codigosArray = codigosContasSelecionadas.split(',');
|
||||||
|
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
||||||
|
sql += ` AND CODCONTA IN (${placeholders})`;
|
||||||
|
params.push(...codigosArray);
|
||||||
|
console.log('💰 Filtrando por códigos de contas:', codigosArray);
|
||||||
|
}
|
||||||
|
|
||||||
sql += ` ORDER BY DTVENC, CODFORNEC, CODCONTA`;
|
sql += ` ORDER BY DTVENC, CODFORNEC, CODCONTA`;
|
||||||
|
|
||||||
console.log('🗄️ Query SQL final:', sql);
|
console.log('🗄️ Query SQL final:', sql);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue