first commit
This commit is contained in:
commit
c9fb67e751
423 files changed
+53287
No files matched your search
@@ -0,0 +1,95 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { toast } from 'react-toastify';
|
||||
import api from '../../services/api';
|
||||
|
||||
interface CalculoPensao {
|
||||
id: string;
|
||||
titulo: string;
|
||||
descricao?: string;
|
||||
dataInicial: string;
|
||||
dataFinal?: string;
|
||||
percentualSalarioMinimo: number;
|
||||
multaPactuada?: number;
|
||||
tipoAtualizacao: string;
|
||||
valorCalculado: number;
|
||||
valorMulta: number;
|
||||
valorTotal: number;
|
||||
observacoes?: string;
|
||||
processo?: {
|
||||
numero: string;
|
||||
titulo: string;
|
||||
};
|
||||
cliente?: {
|
||||
nome: string;
|
||||
};
|
||||
}
|
||||
|
||||
export function DetalhePensaoAlimenticia() {
|
||||
const { id } = useParams<{ id: string }>();
|
||||
const [calculo, setCalculo] = useState<CalculoPensao | null>(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
const loadCalculo = async () => {
|
||||
try {
|
||||
const response = await api.get(`/pensao-alimenticia/${id}`);
|
||||
setCalculo(response.data);
|
||||
} catch (error) {
|
||||
console.error('Erro ao carregar cálculo:', error);
|
||||
toast.error('Falha ao carregar dados do cálculo');
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
loadCalculo();
|
||||
}, [id]);
|
||||
|
||||
if (loading) {
|
||||
return <div>Carregando...</div>;
|
||||
}
|
||||
|
||||
if (!calculo) {
|
||||
return <div>Cálculo não encontrado</div>;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="bg-white shadow-md rounded-lg p-6">
|
||||
<h1 className="text-2xl font-bold mb-4">{calculo.titulo}</h1>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<h2 className="text-lg font-semibold mb-2">Dados do Cálculo</h2>
|
||||
<div className="space-y-2">
|
||||
<p><span className="font-medium">Data Inicial:</span> {new Date(calculo.dataInicial).toLocaleDateString()}</p>
|
||||
{calculo.dataFinal && (
|
||||
<p><span className="font-medium">Data Final:</span> {new Date(calculo.dataFinal).toLocaleDateString()}</p>
|
||||
)}
|
||||
<p><span className="font-medium">Percentual:</span> {calculo.percentualSalarioMinimo}%</p>
|
||||
{calculo.multaPactuada && (
|
||||
<p><span className="font-medium">Multa:</span> {calculo.multaPactuada}%</p>
|
||||
)}
|
||||
<p><span className="font-medium">Índice:</span> {calculo.tipoAtualizacao}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className="text-lg font-semibold mb-2">Valores</h2>
|
||||
<div className="space-y-2">
|
||||
<p><span className="font-medium">Valor Base:</span> R$ {calculo.valorCalculado.toFixed(2)}</p>
|
||||
<p><span className="font-medium">Valor Multa:</span> R$ {calculo.valorMulta.toFixed(2)}</p>
|
||||
<p><span className="font-medium">Valor Total:</span> R$ {calculo.valorTotal.toFixed(2)}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{calculo.observacoes && (
|
||||
<div className="mt-6">
|
||||
<h2 className="text-lg font-semibold mb-2">Observações</h2>
|
||||
<p className="text-gray-700">{calculo.observacoes}</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user