ALTER TABLE TBCAIXABANCO
    ADD PREFIXO_ARQUIVO VARCHAR(10);




SET TERM ^ ;

CREATE OR ALTER trigger ttbcaixabanco_b04u for tbcaixabanco
active before update position 9
AS
DECLARE VARIABLE HISTORICO             VARCHAR(2000);
DECLARE VARIABLE HISTORICO_CONTABIL    VARCHAR(500);
DECLARE VARIABLE HISTORICO_ARQ_RETORNO VARCHAR(300);
DECLARE VARIABLE HISTORICO_ARQ_REMESSA VARCHAR(300);
DECLARE VARIABLE HISTORICO_MSG1        VARCHAR(500);
DECLARE VARIABLE HISTORICO_MSG2        VARCHAR(500);
DECLARE VARIABLE HISTORICO_LOC_PAG     VARCHAR(500);
BEGIN
    HISTORICO             = '';
    HISTORICO_CONTABIL    = '';
    HISTORICO_ARQ_RETORNO = '';
    HISTORICO_ARQ_REMESSA = '';
    HISTORICO_MSG1        = '';
    HISTORICO_MSG2        = '';
    HISTORICO_LOC_PAG     = '';
    IF(NEW.NOME <> OLD.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.NOME||'->'||NEW.NOME;
    END            

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

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

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

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

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

    IF(NEW.HISTORICO_CONTABIL <> OLD.HISTORICO_CONTABIL) THEN
    BEGIN
        HISTORICO_CONTABIL = HISTORICO_CONTABIL||' HIST.CONTABIL:'||OLD.HISTORICO_CONTABIL||'->'||NEW.HISTORICO_CONTABIL;
    END

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

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

    IF(NEW.ARQUIVO_REMESSA <> OLD.ARQUIVO_REMESSA) THEN
    BEGIN
        HISTORICO_ARQ_REMESSA = HISTORICO_ARQ_REMESSA||' ARQ.REM:'||OLD.ARQUIVO_REMESSA||'->'||NEW.ARQUIVO_REMESSA;
    END  

    IF(NEW.ARQUIVO_RETORNO <> OLD.ARQUIVO_RETORNO) THEN
    BEGIN
        HISTORICO_ARQ_RETORNO = HISTORICO_ARQ_RETORNO||' ARQ.RET:'||OLD.ARQUIVO_RETORNO||'->'||NEW.ARQUIVO_RETORNO;
    END  

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

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

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

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

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

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

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

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

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

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

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

    IF(NEW.MENSAGEM1 <> OLD.MENSAGEM1) THEN
    BEGIN
        HISTORICO_MSG1 = HISTORICO_MSG1||' MENS.1:'||OLD.MENSAGEM1||'->'||NEW.MENSAGEM1;
    END  

    IF(NEW.MENSAGEM2 <> OLD.MENSAGEM2) THEN
    BEGIN
        HISTORICO_MSG2 = HISTORICO_MSG2||' MENS.2:'||OLD.MENSAGEM2||'->'||NEW.MENSAGEM2;
    END

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

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

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

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

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

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

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

    IF(NEW.LOCAL_PAGAMENTO <> OLD.LOCAL_PAGAMENTO) THEN
    BEGIN
        HISTORICO_LOC_PAG = HISTORICO_LOC_PAG||' LOC.PGTO:'||OLD.LOCAL_PAGAMENTO||'->'||NEW.LOCAL_PAGAMENTO;
    END

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

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

    IF(NEW.ESPECIE_DOC_BOLETO <> OLD.ESPECIE_DOC_BOLETO) THEN
    BEGIN
        HISTORICO = HISTORICO||' ESP.DOC.BOL:'||OLD.ESPECIE_DOC_BOLETO||'->'||NEW.ESPECIE_DOC_BOLETO;
    END  

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

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

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

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

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

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO,500));
    END
    
    IF(HISTORICO_CONTABIL <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO_CONTABIL,500));
    END    

    IF(HISTORICO_ARQ_RETORNO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO_ARQ_RETORNO,500));
    END    

    IF(HISTORICO_ARQ_REMESSA <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO_ARQ_REMESSA,500));
    END
    
    IF(HISTORICO_MSG1 <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO_MSG1,500));
    END    

    IF(HISTORICO_MSG2 <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO_MSG2,500));
    END    

    IF(HISTORICO_LOC_PAG <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCAIXABANCO',NEW.CODIGO,FN_ELIPSES(HISTORICO_LOC_PAG,500));
    END
END
^

SET TERM ; ^

