fix: ajuste no filtro de centro de custo

This commit is contained in:
Alessandro Gonçaalves 2025-11-03 16:17:34 -03:00
parent 4be3965fea
commit df741a287d
1 changed files with 19 additions and 4 deletions

View File

@ -1207,6 +1207,7 @@ export default function Teste() {
} }
// Filtro por centro de custo (multi-seleção) - USAR APENAS CÓDIGO // Filtro por centro de custo (multi-seleção) - USAR APENAS CÓDIGO
// IMPORTANTE: Preservar grupos calculados (isCalculado ou centro_custo === "CALCULADO")
if (centrosCustoSelecionados.length > 0) { if (centrosCustoSelecionados.length > 0) {
// Criar conjunto de códigos esperados dos centros selecionados - APENAS CÓDIGOS // Criar conjunto de códigos esperados dos centros selecionados - APENAS CÓDIGOS
const codigosEsperados = new Set<string>(); const codigosEsperados = new Set<string>();
@ -1226,7 +1227,14 @@ export default function Teste() {
}); });
// Filtrar APENAS pelo código do centro de custo, ignorando o nome // Filtrar APENAS pelo código do centro de custo, ignorando o nome
// MAS preservar grupos calculados
dadosFiltrados = dadosFiltrados.filter((item: DREItem) => { dadosFiltrados = dadosFiltrados.filter((item: DREItem) => {
// Preservar grupos calculados (têm centro_custo === "CALCULADO" ou isCalculado === true)
if (item.centro_custo === "CALCULADO" || item.isCalculado === true) {
return true;
}
// Para outros itens, verificar pelo código
if (!item.codigo_centro_custo) { if (!item.codigo_centro_custo) {
return false; return false;
} }
@ -1238,15 +1246,22 @@ export default function Teste() {
codigosEsperados: Array.from(codigosEsperados), codigosEsperados: Array.from(codigosEsperados),
totalFiltrado: dadosFiltrados.length, totalFiltrado: dadosFiltrados.length,
centrosEncontrados: [...new Set(dadosFiltrados.map((d: DREItem) => d.centro_custo))], centrosEncontrados: [...new Set(dadosFiltrados.map((d: DREItem) => d.centro_custo))],
codigosEncontrados: [...new Set(dadosFiltrados.map((d: DREItem) => d.codigo_centro_custo).filter(Boolean))] codigosEncontrados: [...new Set(dadosFiltrados.map((d: DREItem) => d.codigo_centro_custo).filter(Boolean))],
gruposCalculados: dadosFiltrados.filter((d: DREItem) => d.centro_custo === "CALCULADO" || d.isCalculado === true).length
}); });
} }
// Filtro por conta (multi-seleção) // Filtro por conta (multi-seleção)
// IMPORTANTE: Preservar grupos calculados (isCalculado ou centro_custo === "CALCULADO")
if (contasSelecionadas.length > 0) { if (contasSelecionadas.length > 0) {
dadosFiltrados = dadosFiltrados.filter((item: DREItem) => dadosFiltrados = dadosFiltrados.filter((item: DREItem) => {
contasSelecionadas.includes(item.conta) // Preservar grupos calculados
); if (item.centro_custo === "CALCULADO" || item.isCalculado === true) {
return true;
}
// Para outros itens, verificar se a conta está selecionada
return contasSelecionadas.includes(item.conta);
});
} }
// Filtro por valor mínimo // Filtro por valor mínimo