fix: update licencaOriginalId handling and improve error feedback in document retrieval

- Changed the initialization of licencaOriginalId to undefined for better clarity in state management.
- Added logic to ensure licencaOriginalId is cleared when not a prorrogação, enhancing data integrity.
- Improved error handling for document retrieval, providing clearer user feedback when URLs cannot be obtained.
- Refactored document URL fetching to streamline the process and enhance user experience.
This commit is contained in:
2025-11-04 03:45:09 -03:00
parent 6d613fe618
commit ccc8c5d5f4

View File

@@ -51,7 +51,7 @@
observacoes: "", observacoes: "",
documentoId: "" as string | undefined, documentoId: "" as string | undefined,
ehProrrogacao: false, ehProrrogacao: false,
licencaOriginalId: "" as string | undefined, licencaOriginalId: undefined as string | undefined,
}); });
// Licença Paternidade // Licença Paternidade
@@ -249,13 +249,19 @@
try { try {
salvandoMaternidade = true; salvandoMaternidade = true;
// Garantir que licencaOriginalId seja undefined quando não é prorrogação
const licencaOriginalId = licencaMaternidade.ehProrrogacao && licencaMaternidade.licencaOriginalId
? (licencaMaternidade.licencaOriginalId as Id<"licencas">)
: undefined;
await client.mutation(api.atestadosLicencas.criarLicencaMaternidade, { await client.mutation(api.atestadosLicencas.criarLicencaMaternidade, {
funcionarioId: licencaMaternidade.funcionarioId as Id<"funcionarios">, funcionarioId: licencaMaternidade.funcionarioId as Id<"funcionarios">,
dataInicio: licencaMaternidade.dataInicio, dataInicio: licencaMaternidade.dataInicio,
dataFim: licencaMaternidade.dataFim, dataFim: licencaMaternidade.dataFim,
observacoes: licencaMaternidade.observacoes || undefined, observacoes: licencaMaternidade.observacoes || undefined,
documentoId: licencaMaternidade.documentoId as Id<"_storage">, documentoId: licencaMaternidade.documentoId as Id<"_storage">,
licencaOriginalId: licencaMaternidade.licencaOriginalId as Id<"licencas"> | undefined, licencaOriginalId,
}); });
toast.success("Licença maternidade registrada com sucesso!"); toast.success("Licença maternidade registrada com sucesso!");
@@ -356,6 +362,13 @@
}; };
} }
// Limpar licencaOriginalId quando não é prorrogação
$effect(() => {
if (abaAtiva === "maternidade" && !licencaMaternidade.ehProrrogacao) {
licencaMaternidade.licencaOriginalId = undefined;
}
});
// Calcular data fim automaticamente para licenças // Calcular data fim automaticamente para licenças
$effect(() => { $effect(() => {
if (abaAtiva === "maternidade" && licencaMaternidade.dataInicio && !licencaMaternidade.ehProrrogacao && !licencaMaternidade.dataFim) { if (abaAtiva === "maternidade" && licencaMaternidade.dataInicio && !licencaMaternidade.ehProrrogacao && !licencaMaternidade.dataFim) {
@@ -1160,13 +1173,25 @@
class="btn btn-xs btn-ghost" class="btn btn-xs btn-ghost"
onclick={async () => { onclick={async () => {
try { try {
const storageClient = client as any; const url = await client.storage.getUrl(
const url = await storageClient.storage?.getUrl(
atestado.documentoId as any atestado.documentoId as any
); );
if (url) window.open(url, "_blank"); if (url) {
} catch (err) { window.open(url, "_blank");
} else {
mostrarErro(
"Erro ao visualizar documento",
"Não foi possível obter a URL do documento.",
"O documento pode ter sido removido ou não existe mais."
);
}
} catch (err: any) {
console.error("Erro ao obter URL do documento:", err); console.error("Erro ao obter URL do documento:", err);
mostrarErro(
"Erro ao visualizar documento",
"Não foi possível abrir o documento.",
err?.message || err?.toString() || "Erro desconhecido"
);
} }
}} }}
> >
@@ -1215,13 +1240,25 @@
class="btn btn-xs btn-ghost" class="btn btn-xs btn-ghost"
onclick={async () => { onclick={async () => {
try { try {
const storageClient = client as any; const url = await client.storage.getUrl(
const url = await storageClient.storage?.getUrl(
licenca.documentoId as any licenca.documentoId as any
); );
if (url) window.open(url, "_blank"); if (url) {
} catch (err) { window.open(url, "_blank");
} else {
mostrarErro(
"Erro ao visualizar documento",
"Não foi possível obter a URL do documento.",
"O documento pode ter sido removido ou não existe mais."
);
}
} catch (err: any) {
console.error("Erro ao obter URL do documento:", err); console.error("Erro ao obter URL do documento:", err);
mostrarErro(
"Erro ao visualizar documento",
"Não foi possível abrir o documento.",
err?.message || err?.toString() || "Erro desconhecido"
);
} }
}} }}
> >