CREATE OR ALTER TRIGGER TTBPDV_CFE_B09U FOR TBPDV_CFE
ACTIVE BEFORE UPDATE POSITION 9
AS

DECLARE VARIABLE HISTORICO VARCHAR(500);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    IF(OLD.CLIENTE_COMPLEMENTO <> NEW.CLIENTE_COMPLEMENTO) THEN
    BEGIN
       HISTORICO = HISTORICO||' CLI.COMPL.'||OLD.CLIENTE_COMPLEMENTO||'->'||NEW.CLIENTE_COMPLEMENTO;
    END

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

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

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

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

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

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

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

END;