
CREATE OR ALTER trigger ttbpdv_adquirente_b01u for tbpdv_adquirente
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

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

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

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

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

    IF ( OLD.CHAVE_REQUISICAO <> NEW.CHAVE_REQUISICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CHAVE DE REQ:'|| OLD.CHAVE_REQUISICAO||'->'||NEW.CHAVE_REQUISICAO;
    END

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

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

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

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

-- ////////////////////////////////////////////////////////////////////////////////////////////////////////////

    IF ( OLD.OPERACAO_TAXA_MFE IS DISTINCT FROM NEW.OPERACAO_TAXA_MFE) THEN
    BEGIN
        HISTORICO = HISTORICO||' OP.TX MFE:'|| COALESCE(OLD.OPERACAO_TAXA_MFE, 0)||'->'||COALESCE(NEW.OPERACAO_TAXA_MFE, 0);
    END

    IF ( OLD.OPERACAO_BAIXA_MFE IS DISTINCT FROM NEW.OPERACAO_BAIXA_MFE) THEN
    BEGIN
        HISTORICO = HISTORICO||' OP.BX MFE:'|| COALESCE(OLD.OPERACAO_BAIXA_MFE, 0)||'->'||COALESCE(NEW.OPERACAO_BAIXA_MFE, 0);
    END

    IF ( OLD.OPERACAO_OUTRAS_DESPESAS_MFE IS DISTINCT FROM NEW.OPERACAO_OUTRAS_DESPESAS_MFE) THEN
    BEGIN
        HISTORICO = HISTORICO||' OP.DESP MFE:'|| COALESCE(OLD.OPERACAO_OUTRAS_DESPESAS_MFE, 0)||'->'||COALESCE(NEW.OPERACAO_OUTRAS_DESPESAS_MFE, 0);
    END

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

    EXECUTE PROCEDURE SPI_INTEGRACAO('TBPDV_ADQUIRENTE',NEW.ID,1);
END;

