
CREATE OR ALTER trigger ttbfrete_cotacao_b01u for tbfrete_cotacao
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

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

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


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

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

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

    IF ( NEW.OBSERVACAO IS DISTINCT FROM OLD.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS: '||FN_IS_EMPTY(OLD.OBSERVACAO)||'->'||FN_IS_EMPTY(NEW.OBSERVACAO);
    END


    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' REG.ALTERADO: '||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBFRETE_COTACAO',NEW.ID, HISTORICO);
    END
END;

