CREATE OR ALTER trigger ttbtabela_preco_b02u for tbtabela_preco
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(8000);
BEGIN
  
  HISTORICO = '';

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

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

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

    IF(NEW.DATA_INICIAL <> OLD.DATA_INICIAL) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' DT.INICIAL:'||FN_DATE(OLD.DATA_INICIAL, 'DD/MM/YYYY')||'->'||FN_DATE(NEW.DATA_INICIAL, 'DD/MM/YYYY');
        END

    IF(NEW.DATA_FINAL <> OLD.DATA_FINAL) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' DT.FINAL:'||FN_DATE(OLD.DATA_FINAL, 'DD/MM/YYYY')||'->'||FN_DATE(NEW.DATA_FINAL, 'DD/MM/YYYY');
        END

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

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

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REGISTRO ALTERADO:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBTABELA_PRECO', NEW.ID, FN_ELIPSES(HISTORICO,500));
    END
END;

