SET TERM ^ ;



CREATE OR ALTER TRIGGER CENTRAL_SERVICOS_NOTIF_FINALIZA FOR CENTRAL_SERVICOS_NOTIFICACOES
ACTIVE BEFORE INSERT OR UPDATE POSITION 3
AS
DECLARE VARIABLE I_TEMP INTEGER;
BEGIN
  IF (OLD.FINALIZADO IS DISTINCT FROM NEW.FINALIZADO) THEN
  BEGIN
    IF (NEW.FINALIZADO = 1) THEN
    BEGIN
      SELECT COD_USUARIO
      FROM FUNCAO_COD_USUARIO
      INTO :I_TEMP;

      NEW.COD_USUARIO_FINALIZADO = :I_TEMP;
      NEW.DATA_FINALIZADO = CURRENT_TIMESTAMP;
    END
    ELSE
    BEGIN
      NEW.COD_USUARIO_FINALIZADO = NULL;
      NEW.DATA_FINALIZADO = NULL;
    END
  END
END
^
SET TERM ; ^