O Problema Atual: Se um operador tentar dar saída em 50 unidades de um produto que só tem 10 no estoque, o sistema barra a atualização na tabela produtos, mas ainda assim pode gravar a linha de "SAIDA" no histórico, gerando um furo de auditoria (o extrato diz que saiu, mas o saldo real não mudou).
A Evolução Lógica: Mover a chamada da função registrar_log() para dentro do bloco de decisão correto. O histórico só deve ser carimbado se o commit do banco for garantido.
O Problema Atual: Se um operador tentar dar saída em 50 unidades de um produto que só tem 10 no estoque, o sistema barra a atualização na tabela produtos, mas ainda assim pode gravar a linha de "SAIDA" no histórico, gerando um furo de auditoria (o extrato diz que saiu, mas o saldo real não mudou).
A Evolução Lógica: Mover a chamada da função registrar_log() para dentro do bloco de decisão correto. O histórico só deve ser carimbado se o commit do banco for garantido.