Ir para conteúdo
  • Cadastre-se

dtybel

Membros
  • Total de ítens

    36
  • Registro em

  • Última visita

Posts postados por dtybel

  1. Juliana,
     
    Enfrentei um caso novo nessa unit essa semana.
    Tenho um cliente pessoa física. E para pessoa física usa o cpf no arquivo retorno. Por esse motivo emitia erro de CNPJ inválido.
     
    Tive que realizar alteração no metodo:
     
    procedure TACBrBancoob.LerRetorno400(ARetorno: TStringList);
     
     

       rCNPJCPF := trim( Copy(ARetorno[1],4,14)) ;
    
       with ACBrBanco.ACBrBoleto do
       begin
          Cedente.Nome    := rCedente;
    
          case StrToIntDef(Copy(ARetorno[1],2,2),0) of
              1: begin
                   Cedente.TipoInscricao:= pFisica;
                   rCNPJCPF             := copy(rCNPJCPF,length(rCNPJCPF) - 10,length(rCNPJCPF));
                 end;
    
             else
                Cedente.TipoInscricao:= pJuridica;
          end;
          Cedente.CNPJCPF := rCNPJCPF;
    
          ACBrBanco.ACBrBoleto.ListadeBoletos.Clear;
       end;

    Exemplo de preenchimento:

         //Configurar banco
         ACBrBoleto1.Banco.Numero := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger;
    
          // DADOS DO BANCO 
          with ACBrBoleto1.Banco do
          begin
             Digito       := 0;//StrtoIntDef(0, 0);
             Nome         := DMEmpresa.ClientDataSet2NOME_CONTA.AsString;
             Numero       := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger;
    
             case DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger of
                237           : TipoCobranca := cobBradesco;
                1             : TipoCobranca := cobBancoDoBrasil;
                341           : TipoCobranca := cobItau;
                748           : TipoCobranca := cobSicred;
                104           : TipoCobranca := cobCaixaEconomica;
                756           : TipoCobranca := cobBancoob;
                33,53,008     : TipoCobranca := cobSantander;
                21            : TipoCobranca := cobBanestes;
             else
                TipoCobranca := cobNenhum;
             end;
          end;
    
    
         with ACBrBoleto1.Cedente do
           begin
             Nome                 := DMEmpresa.ClientDataSet1EMPRESA.AsString;
             Agencia              := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString;
             AgenciaDigito        := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString;
             CodigoCedente        := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString;
             Conta                := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString;
             ContaDigito          := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString;
    
    
             if ( isCPF(tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString)) ) then
               TipoInscricao        := pFisica
    
             else
              TipoInscricao        := pJuridica;
    
              CNPJCPF              := tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString);
    
             if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then
             Modalidade           := DMEmpresa.ClientDataSet2MODALIDADE.AsString;
    
             if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then
             Convenio             := DMEmpresa.ClientDataSet2CONVENIO.AsString;
    
           end;
    
          ACBrBoleto1.DirArqRetorno  := ExtractFilePath(txtNomeArquivoRetorno.Text)  ;
          ACBrBoleto1.NomeArqRetorno := ExtractFileName(txtNomeArquivoRetorno.Text) ;
    
          ACBrBoleto1.LerRetorno;
    

     

    ACBrBancoob-03-09-2013.rar

  2. Juliana,

     

    O problema é o seguinte:

     

    Na unit ACbrBoleto no método: SetCNPJCPF

    1. Cria um validador.
    2. Valida o CNPJ ou CPF
    3. Formata

    Até aí tudo bem, mas no retorno a linha é a seguinte: ACbrBancoSantander.pas

     

    Linha 351: if (not LeCedenteRetorno) and (rCNPJCPF <> Cedente.CNPJCPF) then

     

    Repare que Cedente.CNPJCPF estará formatado devido o SetCNPJCPF enquanto o rCNPJCPF não estará, uma vez que é obtido do arquivo retorno, desse modo não ficará igual nunca.

     

    Alterar a linha 351, para: if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then

     

    Observar outros bancos também.

    Favor mudar no SVN, pois mudei o meu aqui e funcionou, mas quando eu atualizar, vai voltar novamente.

  3. Juliana,

    Na função: MontarCodigoBarras do ACBrBancoob:

    A partir da linha 166 mudar:

    ACBrTitulo.Parcela := IfThen(ACBrTitulo.Parcela = 0,1,ACBrTitulo.Parcela);

    {Montando Campo Livre}

    CampoLivre := padR(ACBrTitulo.ACBrBoleto.Cedente.Modalidade, 2, '0') +

    padR(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente, 7, '0') +

    padR(Copy(ANossoNumero,1,8), 8, '0') + //7 Sequenciais + 1 do digito

    padR(IntToStr( ACBrTitulo.Parcela), 3, '0');

    No layout carnê o local da linha digitável que deveria incrementar de acordo com as parcelas não está fazendo, pois está fixa.

    Lembrando que o campo Parcela do componente ACBrBoleto deve ser instanciada.

    Exemplo:

    
    Titulo   := ACBrBoleto1.CriarTituloNaLista;
    
         with Titulo do
    
         begin
    
           ...etc...
    
           Parcela           :=  1; //Parcela, incrementar de acordo com a parcela incluída no componente.
    
          ...etc...
    
         end;
    
    

    Exemplo:

    1º - PARCELA

    7591.02846.00426.644308 00000.100016 6 46290000015052 - OK

    2º - PARCELA

    7591.02846.00426.644308 00000.280016 4 46290000025088 - ERRADO

    7591.02846.00426.644308 00000.280026 4 46290000025088 - CORRETO

    3º - PARCELA

    7591.02846.00426.644308 00000.350017 9 46290000035122 - ERRADO

    7591.02846.00426.644308 00000.350037 9 46290000035122 - CORRETO

    Um usuário chamado: Wanderson entrou em contato solicitando correção.

  4. Juliana,

    Em uma nova homologação do boleto para o Sicoob foi rejeitado devido o nome do banco: BANCO COOPERATIVO DO BRASIL S.A.

    Solicitaram que fosse alterado apenas para: SICCOB.

    Alterado na classe no método construtor:

    
    constructor TACBrBancoob.create(AOwner: TACBrBanco);
    
    begin
    
       inherited create(AOwner);
    
       fpDigito := 0;
    
       fpNome   := 'SICOOB.';
    
       fpNumero:= 756;
    
       fpTamanhoMaximoNossoNum := 7;
    
       fpTamanhoCarteira := 1;
    
    end;
    
    

    Pode alterar no SVN ?

    CriticaHomologacaoBoleto.pdf

  5. Olá Juliana,

    O banco não solicitou que eu removesse para a homologação. Só que fica uma frase estranha sobre cheque na parte de baixo.

    Eu quero saber como ocultar a nível de programação, não quero que apareça...atualmente eu deletei o componente de lá, mas quando eu atualizar o SVN voltará.

    Tem alguma propriedade onde eu consiga definir o texto que está lá ? assim eu poderia definir como nada e ficaria certo.

  6. Juliana,

    Sobre este erro do Ratio ? será alterado no SVN ?

    Erro:

    Acessei ACBRBoletoFCFortesFr no componente imgCodigoBarra e alterei a propriedade Ratio de 2 para 3

    Outro ERRO no layout:

    O componente: RLMemo2 com texto padrão sobre recebimento de cheque, saia em todos os boletos, e foi criticado pelo banco.

    Removi o componente e compilei, minha dúvida, como fica estas alterações no SVN, será corrigido ?

  7. Na função:

    
    function TACBrBancoBrasil.GerarRegistroTransacao240(ACBrTitulo : TACBrTitulo): String;
    
    

    Na linha 389

    Alterei de 1 para 7, solicitado pelo BANCO DO BRASIL - Agência: São Mateus/ES.

    Após esse correção, foi homologado com sucesso.

    '7'+ //58 - Cobrança Simples - Colunas 058 a 058 - informar 7 ao invés de 1 (por ser carteira 17).

    Juliana, verificar possibilidade de acertar no SVN.

  8. Atualizei a versão no SVN ontem para atualizar minha rotina de boletos, então foi onde começou o problema, pois os códigos de barras dos meus boletos começaram a ter inconsistência na leitura(a linha digitável batendo corretamente), realmente a olho nu se via em menor tamanho e por isso foi recusado na homologação do banco do Brasil.

    Até mesmo com meu Milestone tentando ler o código de barras não lia de jeito nenhum e antes funcionava certinho.

    Acessei ACBRBoletoFCFortesFr no componente imgCodigoBarra e alterei a propriedade Ratio de 2 para 3 e funcionou certinho a leitura do código de barras pelo meu Milestone.

    Estou informando para ver se altera no servidor, pois está com esse problema na versão que baixei ontem.

  9. Atilio,

    Recebi a resposta do banco, segue abaixo:

    *Obs: Caso vc queria que eu faça um testes com seus dados na minha rotina e imprima em pdf para vc ver, só falar.

    BANCO DO BRASIL - CSO BELO HORIZONTE – 12/09/2011

    RELATÓRIO DE TESTE CBR 641 F87603XX

    Cliente : XXX

    Agencia : 4628-0 Conta : 71xx-5

    Carteira: 17 Variacao: 01 - 9 Convenio: 17115xx

    Informamos que o arquivo recebido para teste está de acordo com o padrão definido pelo Banco do Brasil, não apresentando inconsistência referente a leiaute.

    Salientamos que a informação correta dos dados impostados é de responsabilidade do cliente.

    No teste é conferido apenas o Leiaute por amostragem.

    É conveniente a transmissão de arquivo-teste pelo Gerenciador Financeiro, para que seja gerado arquivo-retorno a ser tratado pelo sistema da empresa. Para isso, o arquivo deverá conter a palavra TESTE nas posições 03 a 07 do Header de Arquivo.

    Alertamos que a não informação da palavra TESTE implica no processamento do arquivo em ambiente de produção, gerando a impressão dos boletos e a cobrança de tarifas.

    Consideramos os testes finalizados.

    Atenciosamente,

    Equipe de testes de leiaute

  10. Olá Juliana Tamizou,

    Fiz uma pequena alteração na classe TACBrBancoSantander, pois estava emitindo um erro, apenas coloquei a variável:

    fpTamanhoConta := 11;

    no constructor.

    Segue anexo:

    ACBrBancoSantander.rar

    Na Classe TACBrCaixaEconomica emitia a seguinte mensagem ao realizar retorno:

    Agencia\Conta do arquivo inválido

    Mesmo com as informações passadas corretamente

    A correção foi:

    fpTamanhoAgencia := 5; no construtor e

    Em TACBrCaixaEconomica.LerRetorno240, alterei o trecho:

    DE:

    if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or

    (rConta <> OnlyNumber(Cedente.Conta))) then

    raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido'));

    PARA

    if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or

    (rConta+rDigitoConta <> OnlyNumber(Cedente.CodigoCedente))) then

    raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido'));

    Seria até mais apropriado colocar em rConta sendo rCodCedente, mas não alterei, deixei por sua decisão alterar o nome da variável.

    Segue classe:

    ACBrCaixaEconomica.rar

    Agora o retorno está funcionando certinho, segue código do meu retorno:

    
          // DADOS DO BANCO 
    
          with ACBrBoleto1.Banco do
    
          begin
    
             Digito       := 0;//StrtoIntDef(0, 0);
    
             Nome         := DMEmpresa.ClientDataSet2NOME_CONTA.AsString;
    
             Numero       := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger;
    
    
             case DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger of
    
                237           : TipoCobranca := cobBradesco;
    
                1             : TipoCobranca := cobBancoDoBrasil;
    
                341           : TipoCobranca := cobItau;
    
                748           : TipoCobranca := cobSicred;
    
                104           : TipoCobranca := cobCaixaEconomica;
    
                756           : TipoCobranca := cobBancoob;
    
                33,53,008     : TipoCobranca := cobSantander;
    
             else
    
                TipoCobranca := cobNenhum;
    
             end;
    
          end;
    
    
    
         with ACBrBoleto1.Cedente do
    
           begin
    
             Nome                 := DMEmpresa.ClientDataSet1EMPRESA.AsString;
    
             Agencia              := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString;
    
             AgenciaDigito        := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString;
    
             CodigoCedente        := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString;
    
             Conta                := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString;
    
             ContaDigito          := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString;
    
             CNPJCPF              := tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString);
    
    
    
             if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then
    
             Modalidade           := DMEmpresa.ClientDataSet2MODALIDADE.AsString;
    
    
             if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then
    
             Convenio             := DMEmpresa.ClientDataSet2CONVENIO.AsString;
    
    
           end;
    
          ACBrBoleto1.NomeArqRetorno := txtNomeArquivoRetorno.Text;
    
          ACBrBoleto1.LerRetorno;
    
    

  11. Olá amigo,

    A classe do banco foi alterada devido a caixa manter dois padrões:

    Segue post explicando:

    Como você deve fazer agora para passar o código do banco para o componente(Exemplo):

          
    
        // DADOS DO BANCO 
    
          with ACBrBoleto1.Banco do
    
          begin
    
             Digito       := 0;//StrtoIntDef(0, 0);
    
             Nome         := DMEmpresa.ClientDataSet2NOME_CONTA.AsString;
    
             Numero       := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger;
    
    
             case DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger of
    
                237           : TipoCobranca := cobBradesco;
    
                1             : TipoCobranca := cobBancoDoBrasil;
    
                341           : TipoCobranca := cobItau;
    
                748           : TipoCobranca := cobSicred;
    
                104           : TipoCobranca := cobCaixaEconomica;
    
                756           : TipoCobranca := cobBancoob;
    
                33,53,008     : TipoCobranca := cobSantander;
    
             else
    
                TipoCobranca := cobNenhum;
    
             end;
    
          end;
    
    
    
    
    
    //Restante do código, mas a alteração é só a de cima mesmo:
    
    
         with ACBrBoleto1.Cedente do
    
           begin
    
             Nome                 := DMEmpresa.ClientDataSet1EMPRESA.AsString;
    
             Agencia              := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString;
    
             AgenciaDigito        := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString;
    
             CodigoCedente        := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString;
    
             Conta                := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString;
    
             ContaDigito          := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString;
    
             CNPJCPF              := tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString);
    
    
    
             if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then
    
             Modalidade           := DMEmpresa.ClientDataSet2MODALIDADE.AsString;
    
    
             if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then
    
             Convenio             := DMEmpresa.ClientDataSet2CONVENIO.AsString;
    
    
           end;
    
          ACBrBoleto1.NomeArqRetorno := txtNomeArquivoRetorno.Text;
    
          ACBrBoleto1.LerRetorno;
    
    

    Lembrando que você deve atualizar o ACBr.

    Erros que enfrentei:

    Devido 2 Delphis na maquina

    "Nao foi possivel localizar o ponto de entrada do procedimento @Synautil@BinToInt$qqrx17System@AnsiString na biblioteca de vinculo dinamico synapse.bpl".

    Resposta:

    Exclui todos os arquivo bdl (ACBr) da pasta Delphi\projects\bpl e recompilar e reinstalar o ACBr novamente.

    Versão do Rave diferente do componente(Ainda não consegui remover a 5 e instalar a 5.0.8, quem souber me avisa)

    [Error] ACBrDANFeCBRave.pas(263): Undeclared identifier: 'OnDecodeImage'

    Erros ao instalar o ACBrNFeDanfeRVCodeBase:

    [Error] ACBrDANFeCBRave.pas(259): Undeclared identifier: 'OnDecodeImage'

    [Error] ACBrDANFeCBRave.pas(259): Not enough actual parameters

    [Error] ACBrDANFeCBRave.pas(261): Undeclared identifier: 'OnDecodeImage'

    Resposta:

    Versão do Rave deve ser Rave 5.0.8 não pode ser diferente

    Ao instalar o Danfe Rave

    [Fatal Error] ACBrNFeDanfeRV.dpk(76): Required package 'rave90vcl' not found

    [Fatal Error] Required package 'rave90vcl' not found

    Resposta:

    Remover rave90vcl do requires

    Uso o pacote Capicom A1 e A3, sem OpenSSL

    ACBrCapicom.bpl can't be installed because it is not a design time package

    Resposta:

    Na tela de instalação clique em "Options"

    Escolha Designtime and runtime

    Compile e instale

  12. Olá Juliana,

    Fizeram umas correções na Unit ACBrBancoob que fiz e percebi algumas alterações muito boas, obrigado e desculpa por algumas variáveis esquecidas e não usadas!

    Bom, o problema que ao testar a nova revisão, emite erro de layout da carteira inválido, pois está sendo passado para o componente o valor: SR que significa = 1 sem carteira, mas ao montar o código de barras ele coloca o S no lugar do 1 emitindo erro no meu cliente.

    O que fiz foi alterar no unit para fixar em 1. Assim aparece no corpo do boleto SR, mas fica 1 no código de barras.

    Ao implementar a opção com registro, é só mudar a condição.

    Segue em anexo a unit corrigida: ACBrBancoob.rar

  13. Juliana,

    Na unit: ACBrBancoSantander

    Existe um erro na função: Procedure TACBrBancoSantander.LerRetorno400 ( ARetorno: TStringList );

    Trecho:

    rCedente := trim(Copy(ARetorno[0],47,30));

    rAgencia := trim(Copy(ARetorno[1],18,4));

    rConta := trim(Copy(ARetorno[1],22,8))+ Copy(ARetorno[1],384,1);

    rDigitoConta := Copy(ARetorno[1],385,1);

    Alterar para:

    rCedente := trim(Copy(ARetorno[0],47,30));

    rAgencia := trim(Copy(ARetorno[1],18,4));

    rConta := trim(Copy(ARetorno[1],22,8))+ Copy(ARetorno[1],384,1);

    rConta := padR( OnlyNumber(rConta),fpTamanhoConta,'0');

    rDigitoConta := Copy(ARetorno[1],385,1);

    Senão emite erro de conta inválida, mas é só questão de formatação dos zeros a esquerda.

    Anexo: ACBrBancoSantander.rar

  14. Olá Juliana,

    Não sei quem alterou a função que eu fiz LerRetorno240, contudo parou de funcionar alguns pontos.

    Refiz as correções, segue abaixo a função funcionando, testei agora:

    ACBrCaixaEconomica.rar

    
    procedure TACBrCaixaEconomica.LerRetorno240(ARetorno: TStringList);
    
    var
    
      ContLinha: Integer;
    
      Titulo   : TACBrTitulo;
    
      Linha,
    
      rCedente,
    
      rCNPJCPF,
    
      rAgencia, rConta: String;
    
    begin
    
       ContLinha := 0;
    
    
       if (copy(ARetorno.Strings[0],143,1) <> '2') then
    
          raise Exception.Create(ACBrStr(ACBrBanco.ACBrBoleto.NomeArqRetorno +
    
                                 'não é um arquivo de retorno do '+ Nome));
    
    
       rCedente := trim(Copy(ARetorno[0],73,30));
    
       rAgencia := trim(Copy(ARetorno[0],53,5));
    
       rConta   := trim(Copy(ARetorno[0],59,6));
    
    
    
    
       ACBrBanco.ACBrBoleto.DataArquivo   := StringToDateTimeDef(Copy(ARetorno[1],192,2)+'/'+
    
                                                                 Copy(ARetorno[1],194,2)+'/'+
    
                                                                 Copy(ARetorno[1],198,2),0, 'DD/MM/YY' );
    
    
       ACBrBanco.ACBrBoleto.DataCreditoLanc := StringToDateTimeDef(Copy(ARetorno[1],200,2)+'/'+
    
                                                                   Copy(ARetorno[1],202,2)+'/'+
    
                                                                   Copy(ARetorno[1],204,2),0, 'DD/MM/YY' );
    
    {
    
    Tipo de Inscrição da Empresa ou Pessoa Física
    
    Código que identifica o tipo de inscrição da Empresa ou Pessoa Física perante uma Instituição
    
    governamental:
    
    ‘0’ = Não informado
    
    ‘1’ = CPF
    
    ‘2’ = CGC / CNPJ
    
    ‘9’ = Outros
    
    }
    
    
       rCNPJCPF := trim( Copy(ARetorno[0],19,14)) ;
    
    
       case StrToIntDef(Copy(ARetorno[1],18,1),0) of
    
          1 : rCNPJCPF:= trim( Copy(ARetorno[1],19,14));
    
          2 : rCNPJCPF:= trim( Copy(ARetorno[0],19,14));
    
       else
    
          rCNPJCPF:= trim( Copy(ARetorno[0],19,14));
    
       end;
    
    
    
       with ACBrBanco.ACBrBoleto do
    
       begin
    
          Cedente.CNPJCPF       := rCNPJCPF;
    
          Cedente.Agencia       := rAgencia;
    
          Cedente.Conta         := rConta;
    
    
          if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then
    
             raise Exception.Create(ACBrStr('CNPJ\CPF do arquivo inválido: '+ rCNPJCPF + ' <> '+ Cedente.CNPJCPF));
    
    
          //if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia))) then
    
             //raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido '+rAgencia));
    
    
    
          Cedente.Nome          := rCedente;
    
          Cedente.AgenciaDigito := '0';
    
    
          case StrToIntDef(Copy(ARetorno[1],18,1),0) of
    
             1: Cedente.TipoInscricao:= pFisica;
    
             2: Cedente.TipoInscricao:= pJuridica;
    
             else
    
                Cedente.TipoInscricao := pOutras;
    
          end;
    
    
          ACBrBanco.ACBrBoleto.ListadeBoletos.Clear;
    
       end;
    
    
       for ContLinha := 1 to ARetorno.Count - 2 do
    
       begin
    
          Linha := ARetorno[ContLinha] ;
    
    
          if Copy(Linha,14,1)= 'T' then //segmento T - Só cria após passar pelo seguimento T depois U
    
          Titulo := ACBrBanco.ACBrBoleto.CriarTituloNaLista;
    
    
          with Titulo do
    
          begin
    
    
          if Copy(Linha,14,1)= 'T' then //segmento T
    
            begin
    
             SeuNumero                   := copy(Linha,59,11);
    
             NumeroDocumento             := copy(Linha,48,9);
    
             OcorrenciaOriginal.Tipo     := CodOcorrenciaToTipo(StrToIntDef(
    
                                            copy(Linha,16,2),0));
    
             //05 = Liquidação Sem Registro
    
             Vencimento := StringToDateTimeDef( Copy(Linha,74,2)+'/'+
    
                                                Copy(Linha,76,2)+'/'+
    
                                                Copy(Linha,78,2),0, 'DD/MM/YY' );
    
    
             ValorDocumento       := StrToFloatDef(Copy(Linha,82,15),0)/100;
    
             ValorRecebido        := StrToFloatDef(Copy(Linha,82,15),0)/100;
    
             NossoNumero          := copy( Copy(Linha,48,9),Length( Copy(Linha,48,9) )-TamanhoMaximoNossoNum  ,TamanhoMaximoNossoNum);
    
             Carteira             := Copy(Linha,40,2);
    
    
             end //if segmento
    
             else
    
          if Copy(Linha,14,1)= 'U' then //segmento U
    
            begin
    
    
             if StrToIntDef(Copy(Linha,138,6),0) <> 0 then
    
                DataOcorrencia := StringToDateTimeDef( Copy(Linha,138,2)+'/'+
    
                                                    Copy(Linha,140,2)+'/'+
    
                                                    Copy(Linha,142,4),0, 'DD/MM/YYYY' );
    
    
             if StrToIntDef(Copy(Linha,146,6),0) <> 0 then
    
                DataCredito:= StringToDateTimeDef( Copy(Linha,146,2)+'/'+
    
                                                   Copy(Linha,148,2)+'/'+
    
                                                   Copy(Linha,150,4),0, 'DD/MM/YYYY' );
    
    
    
             ValorIOF             := StrToFloatDef(Copy(Linha,63,15),0)/100;
    
             ValorAbatimento      := StrToFloatDef(Copy(Linha,48,15),0)/100;
    
             ValorDesconto        := StrToFloatDef(Copy(Linha,33,15),0)/100;
    
             ValorMoraJuros       := StrToFloatDef(Copy(Linha,18,15),0)/100;
    
             ValorOutrosCreditos  := StrToFloatDef(Copy(Linha,123,15),0)/100;
    
             ValorDespesaCobranca := StrToFloatDef(Copy(Linha,108,15),0)/100;
    
             ValorOutrasDespesas  := StrToFloatDef(Copy(Linha,108,15),0)/100;
    
    
            end;//if Copy(Linha,14,1)= 'U' then //segmento U
    
    
    
          end; //with
    
    
    
       end; //for
    
    
    end;
    
    
    

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...