Files
advx/src/components/calculos/DetalhePensaoAlimenticia.tsx
T
rodrigo 5acec6b71e Lint errors
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
2025-04-12 20:32:39 -03:00

121 lines
3.4 KiB
TypeScript

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