fix: correção de filtro analitico
This commit is contained in:
parent
add83c5d6d
commit
91392ecc4a
|
|
@ -78,6 +78,8 @@ interface AnaliticoProps {
|
|||
linhaSelecionada?: string;
|
||||
excluirCentroCusto?: string;
|
||||
excluirCodigoConta?: string;
|
||||
codigosCentrosCustoSelecionados?: string;
|
||||
codigosContasSelecionadas?: string;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -379,6 +381,12 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
|||
if (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()}`;
|
||||
console.log('🌐 Fazendo requisição para:', url);
|
||||
|
|
|
|||
|
|
@ -221,6 +221,8 @@ export default function Teste() {
|
|||
linhaSelecionada: "", // Adicionar informação da linha selecionada
|
||||
excluirCentroCusto: "", // Para excluir centro de custo 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 [isAllExpanded, setIsAllExpanded] = useState(false);
|
||||
|
|
@ -463,6 +465,24 @@ export default function Teste() {
|
|||
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 = {
|
||||
dataInicio: dataInicioFiltro,
|
||||
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
|
||||
excluirCentroCusto,
|
||||
excluirCodigoConta,
|
||||
codigosCentrosCustoSelecionados,
|
||||
codigosContasSelecionadas,
|
||||
};
|
||||
|
||||
console.log('🎯 Novos filtros para analítico:', novosFiltros);
|
||||
|
|
@ -480,7 +502,9 @@ export default function Teste() {
|
|||
centroCusto: novosFiltros.centroCusto,
|
||||
codigoConta: novosFiltros.codigoConta,
|
||||
codigoContaType: typeof novosFiltros.codigoConta,
|
||||
codigoContaLength: novosFiltros.codigoConta?.length
|
||||
codigoContaLength: novosFiltros.codigoConta?.length,
|
||||
codigosCentrosCustoSelecionados: novosFiltros.codigosCentrosCustoSelecionados,
|
||||
codigosContasSelecionadas: novosFiltros.codigosContasSelecionadas
|
||||
});
|
||||
setAnaliticoFiltros(novosFiltros);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@ export async function GET(request: NextRequest) {
|
|||
// Parâmetros para exclusão de valores específicos
|
||||
const excluirCentroCusto = searchParams.get('excluirCentroCusto');
|
||||
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:', {
|
||||
dataInicio,
|
||||
|
|
@ -27,7 +31,9 @@ export async function GET(request: NextRequest) {
|
|||
codigoGrupo,
|
||||
codigoConta,
|
||||
excluirCentroCusto,
|
||||
excluirCodigoConta
|
||||
excluirCodigoConta,
|
||||
codigosCentrosCustoSelecionados,
|
||||
codigosContasSelecionadas
|
||||
});
|
||||
|
||||
// Construir query SQL com filtros
|
||||
|
|
@ -83,6 +89,24 @@ export async function GET(request: NextRequest) {
|
|||
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`;
|
||||
|
||||
console.log('🗄️ Query SQL final:', sql);
|
||||
|
|
|
|||
Loading…
Reference in New Issue