CREATE OR ALTER trigger ttbpagamento_forma_b01u for tbpagamento_forma
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.FINALIDADE <> NEW.FINALIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||'FINALIDADE:'||OLD.FINALIDADE||'->'||NEW.FINALIDADE;
    END
    
    IF ( OLD.CONFIRMACAO_PEDIDO <> NEW.CONFIRMACAO_PEDIDO) THEN
    BEGIN
        HISTORICO = HISTORICO||'CONF.PED:'||OLD.CONFIRMACAO_PEDIDO||'->'||NEW.CONFIRMACAO_PEDIDO;
    END
    
    IF ( OLD.COBRANCA_ID <> NEW.COBRANCA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'VINC.COB:'||OLD.COBRANCA_ID||'->'||NEW.COBRANCA_ID;
    END
    
    IF ( OLD.BANCO_ID <> NEW.BANCO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'BCO:'||OLD.BANCO_ID||'->'||NEW.BANCO_ID;
    END
    
    IF ( OLD.MODALIDADE_ID <> NEW.MODALIDADE_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'MOD:'||OLD.MODALIDADE_ID||'->'||NEW.MODALIDADE_ID;
    END
    
    IF ( OLD.POSICAO_ID <> NEW.POSICAO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'POS:'||OLD.POSICAO_ID||'->'||NEW.POSICAO_ID;
    END
    
    IF ( OLD.EMPRESA_ID <> NEW.EMPRESA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'ADQUIRENTE:'||OLD.EMPRESA_ID||'->'||NEW.EMPRESA_ID;
    END

    IF ( OLD.OPERACAO_ID_CPA <> NEW.OPERACAO_ID_CPA) THEN
    BEGIN
        HISTORICO = HISTORICO||'OP.CPA:'||OLD.OPERACAO_ID_CPA||'->'||NEW.OPERACAO_ID_CPA;
    END
    
    IF ( OLD.STATUSEXCLUSAO <> NEW.STATUSEXCLUSAO AND NEW.STATUSEXCLUSAO = 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO EXCLUIDO.';
    END
    
    IF ( OLD.STATUSEXCLUSAO <> NEW.STATUSEXCLUSAO AND NEW.STATUSEXCLUSAO = 1) THEN
    BEGIN
        HISTORICO = HISTORICO||'EXCLUSAO DESFEITA.';
    END
    
    IF (HISTORICO <> '') THEN
    BEGIN
    -- EXECUTE PROCEDURE SPI_HISTORICO('TBPAGAMENTO_FORMA', NEW.CODIGO, HISTORICO);
          INSERT INTO TBHISTORICO (
                TABELA,
                TABELA_ID,
                HISTORICO
            ) VALUES (
                'TBPAGAMENTO_FORMA',
                NEW.CODIGO,
                :HISTORICO
            );
    END
end;

