feat: update requisition approval process in 'Almoxarifado' to prevent approval with stock issues, enhance error handling, and conditionally render approval button based on stock availability
This commit is contained in:
@@ -208,14 +208,23 @@
|
||||
async function confirmarAprovar() {
|
||||
if (!requisicaoParaAprovar) return;
|
||||
|
||||
// Não permitir aprovação se houver problemas de estoque
|
||||
if (problemasEstoqueAprovar.length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
processandoAprovar = true;
|
||||
await client.mutation(api.almoxarifado.aprovarRequisicao, { id: requisicaoParaAprovar });
|
||||
mostrarMensagem('success', 'Requisição aprovada com sucesso!');
|
||||
fecharModalAprovar();
|
||||
} catch (error: unknown) {
|
||||
const message = error instanceof Error ? error.message : 'Erro ao aprovar requisição';
|
||||
mostrarMensagem('error', message);
|
||||
// Silenciar erros de estoque insuficiente (já verificados no frontend)
|
||||
const errorMessage = error instanceof Error ? error.message : String(error);
|
||||
if (!errorMessage.includes('Estoque insuficiente')) {
|
||||
const message = error instanceof Error ? error.message : 'Erro ao aprovar requisição';
|
||||
mostrarMensagem('error', message);
|
||||
}
|
||||
} finally {
|
||||
processandoAprovar = false;
|
||||
}
|
||||
@@ -929,19 +938,21 @@
|
||||
>
|
||||
Cancelar
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-success btn-lg min-w-[200px] shadow-lg hover:shadow-xl"
|
||||
onclick={confirmarAprovar}
|
||||
disabled={processandoAprovar}
|
||||
>
|
||||
{#if processandoAprovar}
|
||||
<span class="loading loading-spinner loading-sm"></span>
|
||||
Aprovando...
|
||||
{:else}
|
||||
<CheckCircle class="h-5 w-5" />
|
||||
Confirmar Aprovação
|
||||
{/if}
|
||||
</button>
|
||||
{#if problemasEstoqueAprovar.length === 0}
|
||||
<button
|
||||
class="btn btn-success btn-lg min-w-[200px] shadow-lg hover:shadow-xl"
|
||||
onclick={confirmarAprovar}
|
||||
disabled={processandoAprovar}
|
||||
>
|
||||
{#if processandoAprovar}
|
||||
<span class="loading loading-spinner loading-sm"></span>
|
||||
Aprovando...
|
||||
{:else}
|
||||
<CheckCircle class="h-5 w-5" />
|
||||
Confirmar Aprovação
|
||||
{/if}
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user