From 4cb38c0eb94305ab90f37dd74b4fb5f658106197 Mon Sep 17 00:00:00 2001 From: Felipe Batista Date: Wed, 8 Oct 2025 02:40:47 -0300 Subject: [PATCH] ajustes de filtros na sintetica passando para analitico --- src/app/DRE/teste.tsx | 8 +++++++- src/app/api/analitico/route.ts | 30 ++++++++++++++---------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/app/DRE/teste.tsx b/src/app/DRE/teste.tsx index 59bf634..0817b0a 100644 --- a/src/app/DRE/teste.tsx +++ b/src/app/DRE/teste.tsx @@ -119,8 +119,14 @@ export default function Teste() { let codigoSubgrupo = ''; if (subgrupo) { + // Primeiro tenta extrair código numérico (ex: "001.008 - LOJA 8" -> "001.008") const subgrupoMatch = subgrupo.match(/^(\d+(?:\.\d+)+)/); - codigoSubgrupo = subgrupoMatch ? subgrupoMatch[1] : ''; + if (subgrupoMatch) { + codigoSubgrupo = subgrupoMatch[1]; + } else { + // Se não tem código numérico, usa a descrição completa (ex: "DESPESAS ADMINISTRATIVAS") + codigoSubgrupo = subgrupo; + } } return { codigoGrupo, codigoSubgrupo }; diff --git a/src/app/api/analitico/route.ts b/src/app/api/analitico/route.ts index b57c0af..c33e87a 100644 --- a/src/app/api/analitico/route.ts +++ b/src/app/api/analitico/route.ts @@ -80,22 +80,20 @@ export async function GET(request: NextRequest) { ffa.created_at, ffa.updated_at FROM fato_financeiro_analitico AS ffa - INNER JOIN public.view_dre_gerencial AS dre - ON ffa.codigo_conta = dre.codigo_conta::text - AND ffa.codigo_centrocusto = dre.centro_custo - AND to_char(ffa.data_competencia, 'YYYY-MM') = to_char(dre.data_competencia, 'YYYY-MM') - WHERE to_char(ffa.data_competencia, 'YYYY-MM') BETWEEN ${dataInicio} AND ${dataFim} - ${sql.raw(whereClause)} - ${ - codigoGrupo - ? sql`AND SUBSTRING(dre.grupo FROM '^\\s*(\\d+)\\s*\\.') = ${codigoGrupo}` - : sql`` - } - ${ - codigoSubgrupo - ? sql`AND (SUBSTRING(dre.subgrupo FROM '^\\s*(\\d+(?:\\.\\d+)+)\\s*-') = ${codigoSubgrupo} OR dre.subgrupo ILIKE '%${codigoSubgrupo}%')` - : sql`` - } + WHERE EXISTS ( + SELECT 1 FROM public.view_dre_gerencial AS dre + WHERE ffa.codigo_conta = dre.codigo_conta::text + AND ffa.codigo_centrocusto = dre.centro_custo + AND to_char(ffa.data_competencia, 'YYYY-MM') = to_char(dre.data_competencia, 'YYYY-MM') + AND SUBSTRING(dre.grupo FROM '^\\s*(\\d+)\\s*\\.') = ${codigoGrupo} + ${sql.raw( + codigoSubgrupo + ? `AND (SUBSTRING(dre.subgrupo FROM '^\\s*(\\d+(?:\\.\\d+)+)\\s*-') = '${codigoSubgrupo}' OR dre.subgrupo ILIKE '%${codigoSubgrupo}%')` + : '' + )} + ) + AND to_char(ffa.data_competencia, 'YYYY-MM') BETWEEN ${dataInicio} AND ${dataFim} + ${sql.raw(whereClause)} `; } else { query = sql`