TRIGGER trigger_verifica_atrasos
AFTER INSERT OR UPDATE on REGISTRO_HORARIO
REFERENCING NEW AS NOVO
FOR EACH ROW
DECLARE
v_atrasos NUMBER;
v_hora_chegada TIMESTAMP(6);
v_hora_atual TIMESTAMP(6);
v_atraso_atual NUMBER;
BEGIN
v_hora_atual := SYSTIMESTAMP;
v_hora_chegada := :NOVO.hora_chegada;
SELECT atrasos INTO v_atraso_atual FROM funcionario WHERE id = :NOVO.id_funcionario;
IF (v_hora_atual > v_hora_chegada) THEN
UPDATE funcionario SET atraso = v_atraso_atual + 1 where id = :NOVO.id_funcionario;
END IF;
END trigger_verifica_atrasos; |