🚀 Initial commit: Versão atual do TrackSteel APP

This commit is contained in:
2026-03-18 21:17:53 +00:00
commit bde410c9ad
633 changed files with 108150 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
-- Verificar relacionamento entre tabelas e criar trigger para reverter empenhos automaticamente
-- Primeiro, vamos limpar dados inconsistentes como solicitado
DELETE FROM empenhos_material;
DELETE FROM movimentacoes_estoque;
-- Criar trigger para reverter automaticamente empenhos quando movimentação de empenho é excluída
CREATE OR REPLACE FUNCTION reverter_empenho_na_exclusao()
RETURNS TRIGGER AS $$
BEGIN
-- Se a movimentação excluída for do tipo 'empenho', reverter o empenho correspondente
IF OLD.tipo_movimentacao = 'empenho' THEN
-- Buscar e cancelar empenho vinculado a esta movimentação
UPDATE empenhos_material
SET status = 'Cancelado',
movimentacao_empenho_id = NULL
WHERE movimentacao_empenho_id = OLD.id;
-- Reverter quantidades no estoque
UPDATE estoque_materiais
SET quantidade_empenhada = quantidade_empenhada - OLD.quantidade,
quantidade_disponivel = quantidade_disponivel + OLD.quantidade
WHERE id = OLD.material_id;
RAISE NOTICE 'Empenho revertido para movimentação %', OLD.id;
END IF;
RETURN OLD;
END;
$$ LANGUAGE plpgsql;
-- Criar trigger que será executado ANTES da exclusão
DROP TRIGGER IF EXISTS trigger_reverter_empenho_exclusao ON movimentacoes_estoque;
CREATE TRIGGER trigger_reverter_empenho_exclusao
BEFORE DELETE ON movimentacoes_estoque
FOR EACH ROW
EXECUTE FUNCTION reverter_empenho_na_exclusao();