CREATE OR ALTER TRIGGER TBMDF_B01U FOR TBMDF
ACTIVE BEFORE UPDATE POSITION 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

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

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

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

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

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

    IF(OLD.UF_ORIGEM <> NEW.UF_ORIGEM) THEN
    BEGIN
       HISTORICO = HISTORICO||' UF.ORIG.'||OLD.UF_ORIGEM||'->'||NEW.UF_ORIGEM;
    END

    IF(OLD.UF_DESTINO <> NEW.UF_DESTINO) THEN
    BEGIN
       HISTORICO = HISTORICO||' UF.DEST.'||OLD.UF_DESTINO||'->'||NEW.UF_DESTINO;
    END

    IF(OLD.TIPO_EMITENTE <> NEW.TIPO_EMITENTE) THEN
    BEGIN
       HISTORICO = HISTORICO||' TIPO EMIT.'||OLD.TIPO_EMITENTE||'->'||NEW.TIPO_EMITENTE;
    END

    IF(OLD.TIPO_TRANSPORTADOR <> NEW.TIPO_TRANSPORTADOR) THEN
    BEGIN
       HISTORICO = HISTORICO||' TIPO TRANS.'||OLD.TIPO_TRANSPORTADOR||'->'||NEW.TIPO_TRANSPORTADOR;
    END

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

    IF(OLD.MODALIDADE_TRANSPORTE <> NEW.MODALIDADE_TRANSPORTE) THEN
    BEGIN
       HISTORICO = HISTORICO||' MODAL.TRANS.'||OLD.MODALIDADE_TRANSPORTE||'->'||NEW.MODALIDADE_TRANSPORTE;
    END

    IF(OLD.DATA_EMISSAO <> NEW.DATA_EMISSAO) THEN
    BEGIN
       HISTORICO = HISTORICO||' DT.EMI.'||OLD.DATA_EMISSAO||'->'||NEW.DATA_EMISSAO;
    END

    IF(OLD.DATAHORA_INICIO_VIAGEM <> NEW.DATAHORA_INICIO_VIAGEM) THEN
    BEGIN
       HISTORICO = HISTORICO||' DH.INI.VIAGEM:'||OLD.DATAHORA_INICIO_VIAGEM||'->'||NEW.DATAHORA_INICIO_VIAGEM;
    END

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

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

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

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

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

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

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

    IF(OLD.VEICULO_CAPACIDADE <> NEW.VEICULO_CAPACIDADE) THEN
    BEGIN
       HISTORICO = HISTORICO||' VEIC.CAPAC.'||OLD.VEICULO_CAPACIDADE||'->'||NEW.VEICULO_CAPACIDADE;
    END

    IF(OLD.VEICULO_TIPO_RODADO <> NEW.VEICULO_TIPO_RODADO) THEN
    BEGIN
       HISTORICO = HISTORICO||' VEIC.TIPO ROD.'||OLD.VEICULO_TIPO_RODADO||'->'||NEW.VEICULO_TIPO_RODADO;
    END

    IF(OLD.VEICULO_TIPO_CARROCERIA <> NEW.VEICULO_TIPO_CARROCERIA) THEN
    BEGIN
       HISTORICO = HISTORICO||' VEIC.TIPO CARROC.'||OLD.VEICULO_TIPO_CARROCERIA||'->'||NEW.VEICULO_TIPO_CARROCERIA;
    END

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

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

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

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

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

    IF(OLD.PROPRIETARIO_TIPO_PROPRIEDADE <> NEW.PROPRIETARIO_TIPO_PROPRIEDADE) THEN
    BEGIN
       HISTORICO = HISTORICO||' PROP.TIPO PROPRIE.'||OLD.PROPRIETARIO_TIPO_PROPRIEDADE||'->'||NEW.PROPRIETARIO_TIPO_PROPRIEDADE;
    END

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

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

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

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

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

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

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

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

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBMDF',NEW.ID,FN_ELIPSES(HISTORICO,500));
    END

END;