From ccc8c5d5f4d0a8a68e52c48e0e66e03d72cdea3c Mon Sep 17 00:00:00 2001 From: deyvisonwanderley Date: Tue, 4 Nov 2025 03:45:09 -0300 Subject: [PATCH] fix: update licencaOriginalId handling and improve error feedback in document retrieval MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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. --- .../atestados-licencas/+page.svelte | 57 +++++++++++++++---- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte index 1e1f21e..079db7f 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte @@ -51,7 +51,7 @@ observacoes: "", documentoId: "" as string | undefined, ehProrrogacao: false, - licencaOriginalId: "" as string | undefined, + licencaOriginalId: undefined as string | undefined, }); // Licença Paternidade @@ -249,13 +249,19 @@ try { 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, { funcionarioId: licencaMaternidade.funcionarioId as Id<"funcionarios">, dataInicio: licencaMaternidade.dataInicio, dataFim: licencaMaternidade.dataFim, observacoes: licencaMaternidade.observacoes || undefined, documentoId: licencaMaternidade.documentoId as Id<"_storage">, - licencaOriginalId: licencaMaternidade.licencaOriginalId as Id<"licencas"> | undefined, + licencaOriginalId, }); 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 $effect(() => { if (abaAtiva === "maternidade" && licencaMaternidade.dataInicio && !licencaMaternidade.ehProrrogacao && !licencaMaternidade.dataFim) { @@ -1160,13 +1173,25 @@ class="btn btn-xs btn-ghost" onclick={async () => { try { - const storageClient = client as any; - const url = await storageClient.storage?.getUrl( + const url = await client.storage.getUrl( atestado.documentoId as any ); - if (url) window.open(url, "_blank"); - } catch (err) { + if (url) { + 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); + 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" onclick={async () => { try { - const storageClient = client as any; - const url = await storageClient.storage?.getUrl( + const url = await client.storage.getUrl( licenca.documentoId as any ); - if (url) window.open(url, "_blank"); - } catch (err) { + if (url) { + 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); + mostrarErro( + "Erro ao visualizar documento", + "Não foi possível abrir o documento.", + err?.message || err?.toString() || "Erro desconhecido" + ); } }} >