ALTER TABLE TBGP_ETAPA_PMP_COLUNA DROP FORMULA;

CREATE OR ALTER trigger ttbgp_etapa_pmp_coluna_b01u for tbgp_etapa_pmp_coluna
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE GP_ID INTEGER;
DECLARE VARIABLE DESC_ETAPA VARCHAR(500);

BEGIN

    HISTORICO = '';
    SELECT FIRST 1 T.GP_ID FROM TBGP_ETAPA_PMP T WHERE T.ID = NEW.GP_ETAPA_PMP_ID INTO GP_ID;
    SELECT FIRST 1 T.DESCRICAO FROM TBGP_ETAPA_PMP T WHERE T.ID = NEW.GP_ETAPA_PMP_ID INTO DESC_ETAPA;

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

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

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' ETAPA '||NEW.GP_ETAPA_PMP_ID||' - '||DESC_ETAPA||' ALTERADA: '||' COLUNA: '||NEW.ID||' ALTERADA: '||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBESTEIRA',GP_ID, HISTORICO);
    END
END;
