ajustes de filtros na sintetica passando para analitico

This commit is contained in:
Felipe Batista 2025-10-08 02:40:47 -03:00
parent 3b9f58b48c
commit 4cb38c0eb9
2 changed files with 21 additions and 17 deletions

View File

@ -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 };

View File

@ -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
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')
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``
}
${
AND SUBSTRING(dre.grupo FROM '^\\s*(\\d+)\\s*\\.') = ${codigoGrupo}
${sql.raw(
codigoSubgrupo
? sql`AND (SUBSTRING(dre.subgrupo FROM '^\\s*(\\d+(?:\\.\\d+)+)\\s*-') = ${codigoSubgrupo} OR dre.subgrupo ILIKE '%${codigoSubgrupo}%')`
: sql``
}
? `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`