feat: integração da consulta sintetica com a aplicação

This commit is contained in:
Alessandro Gonçaalves 2025-10-20 23:43:13 -03:00
parent 5acdff6dd2
commit a1d22d3ac6
4 changed files with 52 additions and 10 deletions

View File

@ -62,7 +62,7 @@ export default function Teste() {
try {
setLoading(true);
setError(null);
const response = await fetch("/api/dre");
const response = await fetch("/api/dre-oracle");
if (!response.ok) {
throw new Error(`Erro ao carregar dados: ${response.status}`);

View File

@ -0,0 +1,42 @@
import { NextRequest, NextResponse } from 'next/server';
import { executeOracleQuery } from '@/db/oracle';
export async function GET(request: NextRequest) {
try {
console.log('🔄 Buscando dados DRE do Oracle...');
// Query para buscar dados da tabela DRE_RESULTADO
const sql = `SELECT * FROM DRE_RESULTADO ORDER BY CODGRUPO, CODCONTA, CODCENTROCUSTO`;
const data = await executeOracleQuery(sql);
console.log('✅ Query executada com sucesso:', data.length, 'registros encontrados');
// Transformar os dados do Oracle para o formato esperado pelo componente
const transformedData = data.map((item: any) => ({
codfilial: "001", // Valor padrão
data_competencia: item.DATA || "2023-03", // Usar DATA do Oracle
data_cai: item.DATA || "2023-03", // Usar DATA do Oracle
grupo: item.GRUPO || "", // Usar GRUPO do Oracle
subgrupo: item.CENTROCUSTO || "", // Usar CENTROCUSTO como subgrupo
centro_custo: item.CODIGOCENTROCUSTO || "", // Usar CODIGOCENTROCUSTO
codigo_conta: parseInt(item.CODCONTA) || 0, // Converter CODCONTA para número
conta: item.CONTA || "", // Usar CONTA do Oracle
valor: item.VALOR?.toString() || "0", // Converter VALOR para string
}));
return NextResponse.json(transformedData);
} catch (error) {
console.error('❌ Erro ao buscar dados DRE do Oracle:', error);
return NextResponse.json(
{
success: false,
error: error instanceof Error ? error.message : 'Erro desconhecido',
details: error instanceof Error ? error.stack : undefined
},
{ status: 500 }
);
}
}

View File

@ -1,14 +1,14 @@
import type { Metadata } from 'next';
import { Geist, Geist_Mono } from 'next/font/google';
import { Inter, JetBrains_Mono } from 'next/font/google';
import './globals.css';
const geistSans = Geist({
variable: '--font-geist-sans',
const inter = Inter({
variable: '--font-inter',
subsets: ['latin'],
});
const geistMono = Geist_Mono({
variable: '--font-geist-mono',
const jetbrainsMono = JetBrains_Mono({
variable: '--font-jetbrains-mono',
subsets: ['latin'],
});
@ -25,7 +25,7 @@ export default function RootLayout({
return (
<html lang="pt-BR">
<body
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
className={`${inter.variable} ${jetbrainsMono.variable} antialiased`}
>
{children}
</body>