From df741a287dffeda24fdffb487e7192eada9f8e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Gon=C3=A7aalves?= Date: Mon, 3 Nov 2025 16:17:34 -0300 Subject: [PATCH] fix: ajuste no filtro de centro de custo --- src/app/DRE/teste.tsx | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/app/DRE/teste.tsx b/src/app/DRE/teste.tsx index 1c74366..e336962 100644 --- a/src/app/DRE/teste.tsx +++ b/src/app/DRE/teste.tsx @@ -1207,6 +1207,7 @@ export default function Teste() { } // 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) { // Criar conjunto de códigos esperados dos centros selecionados - APENAS CÓDIGOS const codigosEsperados = new Set(); @@ -1226,7 +1227,14 @@ export default function Teste() { }); // Filtrar APENAS pelo código do centro de custo, ignorando o nome + // MAS preservar grupos calculados 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) { return false; } @@ -1238,15 +1246,22 @@ export default function Teste() { codigosEsperados: Array.from(codigosEsperados), totalFiltrado: dadosFiltrados.length, 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) + // IMPORTANTE: Preservar grupos calculados (isCalculado ou centro_custo === "CALCULADO") if (contasSelecionadas.length > 0) { - dadosFiltrados = dadosFiltrados.filter((item: DREItem) => - contasSelecionadas.includes(item.conta) - ); + dadosFiltrados = dadosFiltrados.filter((item: DREItem) => { + // 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