CREATE OR ALTER trigger ttbformulario_alternativa_b02i for tbformulario_alternativa
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' ALTERNATIVA INCLUIDA: '||NEW.DESCRICAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFORMULARIO',NEW.FORMULARIO_ID, HISTORICO);
    END
END;


CREATE OR ALTER trigger ttbformulario_alternativa_b1u for tbformulario_alternativa
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.DESCRICAO <> NEW.DESCRICAO) THEN
    BEGIN
       HISTORICO = HISTORICO||' DESC:'||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END

    IF (OLD.DESCRICAO_OBRIGATORIA <> NEW.DESCRICAO_OBRIGATORIA) THEN
    BEGIN
       HISTORICO = HISTORICO||' JUSTIFICATIVA:'||OLD.DESCRICAO_OBRIGATORIA||'->'||NEW.DESCRICAO_OBRIGATORIA;
    END

    IF (OLD.NOTA <> NEW.NOTA) THEN
    BEGIN
       HISTORICO = HISTORICO||' NOTA:'||OLD.NOTA||'->'||NEW.NOTA;
    END

    IF (OLD.FORMULARIO_ALTERN_NIVEL_ID IS DISTINCT FROM NEW.FORMULARIO_ALTERN_NIVEL_ID) THEN
    BEGIN
       HISTORICO = HISTORICO||' NOTA:'||COALESCE(OLD.FORMULARIO_ALTERN_NIVEL_ID, 0)||'->'||COALESCE(NEW.FORMULARIO_ALTERN_NIVEL_ID, 0);
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REG.ALTERADO: ALTERNATIVA: '||NEW.DESCRICAO||', '||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBFORMULARIO',NEW.FORMULARIO_ID, HISTORICO);
    END
END;


CREATE OR ALTER trigger ttbformulario_alternativa_b01d for tbformulario_alternativa
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' ALTERNATIVA EXCLUIDA: '||OLD.DESCRICAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFORMULARIO',OLD.FORMULARIO_ID, HISTORICO);
    END
END;


