first commit
This commit is contained in:
commit
c9fb67e751
423 files changed
+53287
No files matched your search
@@ -0,0 +1,171 @@
|
||||
import { useState } from "react";
|
||||
import api from "../services/api";
|
||||
|
||||
/**
|
||||
* Hook para gerenciar operações de honorários
|
||||
*/
|
||||
export const useHonorarios = (processoId: string) => {
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
/**
|
||||
* Adiciona um novo honorário
|
||||
*/
|
||||
const addHonorario = async (data: any) => {
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
|
||||
try {
|
||||
// Validações
|
||||
if (!data.formaPagamento) {
|
||||
throw new Error("Forma de pagamento é obrigatória");
|
||||
}
|
||||
|
||||
// Preparar dados
|
||||
const payload = {
|
||||
processoId,
|
||||
formaPagamento: data.formaPagamento,
|
||||
status: data.status || "PENDENTE",
|
||||
dataVencimento: data.dataVencimento || new Date(),
|
||||
observacoes: data.observacoes || null,
|
||||
valorFixo: data.valorFixo ? Number(data.valorFixo) : null,
|
||||
percentualCausa: data.percentualCausa
|
||||
? Number(data.percentualCausa)
|
||||
: null,
|
||||
percentualExito: data.percentualExito
|
||||
? Number(data.percentualExito)
|
||||
: null,
|
||||
valorEntrada: data.valorEntrada ? Number(data.valorEntrada) : null,
|
||||
numeroParcelas: data.numeroParcelas ? Number(data.numeroParcelas) : 1,
|
||||
valorParcela: data.valorParcela ? Number(data.valorParcela) : null,
|
||||
diaVencimento: data.diaVencimento ? Number(data.diaVencimento) : 10,
|
||||
};
|
||||
|
||||
// Fazer requisição
|
||||
const response = await api.post(
|
||||
`/processos/${processoId}/honorarios`,
|
||||
payload,
|
||||
);
|
||||
return response.data;
|
||||
} catch (err: any) {
|
||||
const errorMsg =
|
||||
err.response?.data?.details ||
|
||||
err.response?.data?.error ||
|
||||
err.message ||
|
||||
"Erro ao adicionar honorário";
|
||||
setError(errorMsg);
|
||||
throw new Error(errorMsg);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Atualiza um honorário existente
|
||||
*/
|
||||
const updateHonorario = async ({ id, data }: { id: string; data: any }) => {
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
|
||||
try {
|
||||
// Preparar dados
|
||||
const payload = {
|
||||
formaPagamento: data.formaPagamento,
|
||||
status: data.status,
|
||||
dataVencimento: data.dataVencimento,
|
||||
observacoes: data.observacoes,
|
||||
valorFixo: data.valorFixo ? Number(data.valorFixo) : null,
|
||||
percentualCausa: data.percentualCausa
|
||||
? Number(data.percentualCausa)
|
||||
: null,
|
||||
percentualExito: data.percentualExito
|
||||
? Number(data.percentualExito)
|
||||
: null,
|
||||
valorEntrada: data.valorEntrada ? Number(data.valorEntrada) : null,
|
||||
numeroParcelas: data.numeroParcelas ? Number(data.numeroParcelas) : 1,
|
||||
valorParcela: data.valorParcela ? Number(data.valorParcela) : null,
|
||||
diaVencimento: data.diaVencimento ? Number(data.diaVencimento) : 10,
|
||||
};
|
||||
|
||||
// Fazer requisição
|
||||
const response = await api.put(`/honorarios/${id}`, payload);
|
||||
return response.data;
|
||||
} catch (err: any) {
|
||||
const errorMsg =
|
||||
err.response?.data?.error ||
|
||||
err.message ||
|
||||
"Erro ao atualizar honorário";
|
||||
setError(errorMsg);
|
||||
throw new Error(errorMsg);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Remove um honorário
|
||||
*/
|
||||
const deleteHonorario = async (id: string) => {
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
|
||||
try {
|
||||
await api.delete(`/honorarios/${id}`);
|
||||
} catch (err: any) {
|
||||
const errorMsg =
|
||||
err.response?.data?.error || err.message || "Erro ao excluir honorário";
|
||||
setError(errorMsg);
|
||||
throw new Error(errorMsg);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Busca todos os honorários do processo
|
||||
*/
|
||||
const getHonorarios = async () => {
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
|
||||
try {
|
||||
const response = await api.get(`/processos/${processoId}/honorarios`);
|
||||
return response.data;
|
||||
} catch (err: any) {
|
||||
const errorMsg =
|
||||
err.response?.data?.error || err.message || "Erro ao buscar honorários";
|
||||
setError(errorMsg);
|
||||
throw new Error(errorMsg);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
// Adicionar função para atualizar parcela
|
||||
const updateParcela = async ({ id, data }: { id: string; data: any }) => {
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
|
||||
try {
|
||||
const response = await api.put(`/honorarios/parcelas/${id}`, data);
|
||||
return response.data;
|
||||
} catch (err: any) {
|
||||
const errorMsg =
|
||||
err.response?.data?.error || err.message || "Erro ao atualizar parcela";
|
||||
setError(errorMsg);
|
||||
throw new Error(errorMsg);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
addHonorario,
|
||||
updateHonorario,
|
||||
deleteHonorario,
|
||||
getHonorarios,
|
||||
isLoading,
|
||||
error,
|
||||
updateParcela,
|
||||
};
|
||||
};
|
||||
Reference in new issue
Block a user