Ir para conteúdo
  • Cadastre-se

Henrique Paraiba

Membros
  • Total de ítens

    40
  • Registro em

  • Última visita

Tudo que Henrique Paraiba postou

  1. Caramba, me senti no tribunal heheheehheehhe Entendido. Irei utilizar o BoletoFR.fr3. Agradecido e compreendido.
  2. Observando os Fontes do ACBR para o BicBanco verifiquei que os campos: Radical = Modalidade; Matricula = CodigoCedente; Até aí tudo bem, mas o problema é que há situações em que é necessário informar o Código CIP, conforme Layout anexo, e o ACBR não tem esse campo para Montar no Boleto. Isso é uma situação para vinculos ao Bradesco, mas existem clientes que utilizam o CIP. Pensei em colocar no cedente esse novo campo CIP, mas para isso vou ter que replicar outros 3 arquivos .fr3 do fast report só por conta deste campo. Gostaria de saber se é isso mesmo a melhor solução, pois se for eu implemento e mando os fontes aqui. bradesco Layout.pdf
  3. Juliomar o arquivo está correto, o estranho é que a informação que ele apresenta é outra. Verifiquei a informação que ele pega e está correta, mas imprime ele mostra outra. Este é o problema.
  4. E a correção da informação que citei foi feita?
  5. Desculpe a demora para responder, esse arquivo está na pasta do ACBR em: - Exemplos\ACBrBoleto\Delphi\Report
  6. Arquivo "Boleto_beneficiario.fr3". O ACBR está preenchendo errado o campo CNPJ/CPF do Sacado, no lugar está sendo informado Agencia e Codigo do Beneficiario. O arquivo FR3 está correto com a Tag do Sacado.CNPJCPF, mas ao imprimir o preenchimento do Objeto FR3 está mostrando Agencia e Codigo do Cedente. Att.
  7. Boa tarde Juliana, segue em anexo algumas units que alterei para pegar as informações que precisava: ACBrBancoItau.pas ACBrBancoBancoob.pas ACBrBancoBrasil.pas
  8. Segue a Unit alterada: ACBrBoleto.pas
  9. Boa tarde Dener, o LeCedenteRetorno funciona em algumas situações, algumas classes puxam as informações, principalmente quando é Registrado, mas quando não, a maior não vem.
  10. Eu tive que alterar as classes que não traziam as informações da Agencia, Conta, Carteira e Codigo do Cedente. O motivo sinceramente não entendi de não coloca-las no Retorno já que as informações estão lá e é só passar para os Objetos do ACBR. Sei que alguns, poucos, Bancos não colocam todas essas informações no Retorno. Mas eu alterei as classes e vi que a grande maioria disponibiliza essas informações. No meu caso há situações de clientes utilizam o mesmo banco com contas diferentes para gerar Seus boletos, remessas e ler os retornos e essas informações são cruciais para diferenciar de que agencia e conta elas vieram. Fica aqui a minha Sugestão.
  11. Vi que o ACBR lê apenas arquivos diretamente do HD, acho que poderia colocar uma forma generica e ler direto de uma stream. No meu caso eu gravei os arquivos no Banco de dados e quando for para realizar a leitura eu ter que gravar no HD para o ACBR Ler o Retorno não é interessante. Já que o TStringList tem o LoadFromStream ficaria generico tanto para Leitura via Banco de Dados como arquivo em Diretório em HD. Abaixo segue minha sugestão para Leitura de Retorno com Stream: * Passando a stream Válida ele monta de acordo com a stream, passando a stream = nil ele monta de acordo com os parametros de diretorio e arquivo do acbr. procedure TACBrBoleto.LerRetorno(stream : TMemoryStream) ; var SlRetorno: TStringList; NomeArq : String; begin SlRetorno:= TStringList.Create; try Self.ListadeBoletos.Clear; if not Assigned(stream) then begin if NomeArqRetorno = '' then raise Exception.Create(ACBrStr('NomeArqRetorno deve ser informado.')); NomeArq := IncludeTrailingPathDelimiter(fDirArqRetorno) + NomeArqRetorno; if not FilesExists( NomeArq ) then raise Exception.Create(ACBrStr('Arquivo não encontrado:'+sLineBreak+NomeArq)); SlRetorno.LoadFromFile( NomeArq ); end else begin SlRetorno.LoadFromStream(stream); end; if SlRetorno.Count < 1 then raise exception.Create(ACBrStr('O Arquivo de Retorno:'+sLineBreak+ NomeArq + sLineBreak+ 'está vazio.'+sLineBreak+ ' Não há dados para processar')); case Length(SlRetorno.Strings[0]) of 240 : begin if Copy(SlRetorno.Strings[0],143,1) <> '2' then Raise Exception.Create( ACBrStr( NomeArq + sLineBreak + 'Não é um arquivo de Retorno de cobrança com layout CNAB240') ); LayoutRemessa := c240 ; end; 400 : begin if (Copy(SlRetorno.Strings[0],1,9) <> '02RETORNO') then Raise Exception.Create( ACBrStr( NomeArq + sLineBreak + 'Não é um arquivo de Retorno de cobrança com layout CNAB400')); LayoutRemessa := c400 ; end; else raise Exception.Create( ACBrStr( NomeArq + sLineBreak+ 'Não é um arquivo de Retorno de cobrança CNAB240 ou CNAB400')); end; if LayoutRemessa = c240 then Banco.LerRetorno240(SlRetorno) else Banco.LerRetorno400(SlRetorno); finally SlRetorno.Free; end; end;
  12. Pequena Correção ao Criar o Registro K356 (RegistroK356New): Na linha 216 da unit (ACBrECFBloco_K_Class) Alterar: UK355Count := FRegistroK001.RegistroK030.Items[UK030Count].RegistroK155.Count -1; Para: UK355Count := FRegistroK001.RegistroK030.Items[UK030Count].RegistroK355.Count -1;
×
×
  • 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...