SET TERM ^ ;



CREATE OR ALTER TRIGGER PROCESSOS_MI_STATUS FOR PROCESSOS_MINERAR
ACTIVE AFTER INSERT OR UPDATE POSITION 30
AS
BEGIN
  /* Trigger text */
  IF ((NEW.STATUS IS DISTINCT FROM OLD.STATUS) AND
      (NEW.STATUS = 3) AND
      (NEW.PROCESSO IS NOT NULL) AND
      (UPPER(NEW.OBS) = 'SEGREDO DE JUSTIÇA')) THEN
  BEGIN
    IF (NEW.SEQ_RECURSO IS NULL) THEN
    BEGIN
      UPDATE PUBLICACOES
      SET PUBLICACOES.SENHA_PUBLICACOES = 1
      WHERE PUBLICACOES.COD_DADOS IS NULL AND
            PUBLICACOES.DATA_BAIXA IS NULL AND
            PUBLICACOES.PROCESSO = NEW.PROCESSO AND
            PUBLICACOES.SEQ_RECURSO IS NULL AND
            ((PUBLICACOES.SENHA_PUBLICACOES IS NULL) OR (PUBLICACOES.SENHA_PUBLICACOES = 0));
    END
    ELSE
    IF (NEW.SEQ_RECURSO > 0) THEN
    BEGIN
      UPDATE PUBLICACOES
      SET PUBLICACOES.SENHA_PUBLICACOES = 1
      WHERE PUBLICACOES.COD_DADOS IS NULL AND
            PUBLICACOES.DATA_BAIXA IS NULL AND
            PUBLICACOES.PROCESSO = NEW.PROCESSO AND
            PUBLICACOES.SEQ_RECURSO = NEW.SEQ_RECURSO AND
            ((PUBLICACOES.SENHA_PUBLICACOES IS NULL) OR (PUBLICACOES.SENHA_PUBLICACOES = 0));

      UPDATE PUBLICACOES
      SET PUBLICACOES.SENHA_PUBLICACOES = 1
      WHERE PUBLICACOES.COD_DADOS IS NULL AND
            PUBLICACOES.DATA_BAIXA IS NULL AND
            PUBLICACOES.PROCESSO = NEW.PROCESSO AND
            ((PUBLICACOES.SENHA_PUBLICACOES IS NULL) OR (PUBLICACOES.SENHA_PUBLICACOES = 0));
    END
  END
END
^
SET TERM ; ^