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.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||' BANCO: '||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.CONTA_RECEBER_BAIXA_ID <> NEW.CONTA_RECEBER_BAIXA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' OP.BAIXA: '||OLD.CONTA_RECEBER_BAIXA_ID||'->'||NEW.CONTA_RECEBER_BAIXA_ID;
    END

    IF ( OLD.HABILITA_CHEQUE <> NEW.HABILITA_CHEQUE) THEN
    BEGIN
        HISTORICO = HISTORICO||' HAB.CHEQUE: '||OLD.HABILITA_CHEQUE||'->'||NEW.HABILITA_CHEQUE;
    END
    
     IF ( OLD.QTD_PARCELAS <> NEW.QTD_PARCELAS) THEN
    BEGIN
        HISTORICO = HISTORICO||' QTD.PARCELAS: '||OLD.QTD_PARCELAS||'->'||NEW.QTD_PARCELAS;
    END

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

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

    IF(OLD.REGISTRAR_RECEBIMENTO_NFS <> NEW.REGISTRAR_RECEBIMENTO_NFS) THEN
    BEGIN
        HISTORICO = HISTORICO||' RE.RECEB.NFS: '||OLD.REGISTRAR_RECEBIMENTO_NFS||'->'||NEW.REGISTRAR_RECEBIMENTO_NFS;
    END

    IF(OLD.PARCELAS_SEM_SALDO <> NEW.PARCELAS_SEM_SALDO) THEN
    BEGIN
        HISTORICO = HISTORICO||' PARC.SEM SALDO: '||OLD.PARCELAS_SEM_SALDO||'->'||NEW.PARCELAS_SEM_SALDO;
    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;

