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