BoletoNet / boleto2net

Nova versão do Boleto.Net
Apache License 2.0
162 stars 139 forks source link

Arquivo remessa com diversos boletos #76

Closed oscarpires closed 5 years ago

oscarpires commented 6 years ago

Bom dia pessoal

Por favor estou utilizando o componente para gerar boleto, e assim apos gerar o PDF ja gera o arquivo de texto da remessa, gostaria de saber como proceder para constar mais de uma cobrança na remessa.

Tentei atraves da classe proxy, adicionar novo boleto (proxy.NovoBoleto()) e depois proxy.FecharBoleto(), pensei que internamente o componente identificaria ambos e os posicionaria no arquivo de remessa, porem nao funcionou.

Alguem ja tratou tal problema, por favor? Grato.

rafd75 commented 6 years ago

@oscarpires , bom dia.

Minha lógica aqui, é um pouco diferente da sua...

Uma coisa, é a geração do PDF, a cada grupo de boletos (por ex: 1 venda em 3 parcelas), gero 1 PDF com 3 boletos... outra venda, outro PDF, e assim durante o dia todo.

No final do dia, tenho uma rotina que gera o arquivo Remessa... seleciono os títulos do dia, carrego todos eles no Boleto2Net e então gero o arquivo remessa.

Em resumo: PDF é uma coisa, REMESSA é outra... não tem ligação (aqui) entre os processos.

O que você pode tentar fazer (mas eu acho que a chance de dar problema é GIGANTE), seria gerar vários .REM durante o dia, e no final, juntar em 1 só (se tiver totalizadores no arquivo - normalmente no registro trailler, precisaria atualizar, bla bla bla) - ou ainda, gerar vários arquivos REM, e enviar vários arquivos REM para o banco. Enfim, eu não indicaria nenhuma dessas soluções... acredito que o melhor seria dividir esse processo em duas etapas, como expliquei que faço aqui...

oscarpires commented 6 years ago

Boa tarde @rafd75 Por favor me corrija se estiver enganado no que entendi do processo que sugere. Voce gera os dados do boleto em banco de dados por exemplo, e na hora de gerar a remessa (considerando cada boleto uma cobrança unica e não parcelada), como o faz na prática pra que o Boleto2Net identifique varios boletos e o incluam no arquivo remessa?

Na classe proxy, utilizar NovoBoleto / DefinirBoleto / FecharBoleto para cada boleto, depois ao utilizar o metodo GerarRemessa, ele identificará todos boletos incluidos por essa etapa? Acredito que a variável quantidadeBoletos será incrementada deste modo corretamente.

muito obrigado

rafd75 commented 6 years ago

Exatamente isso ai...

AH... para completar... cada vez que gero um arquivo remessa, eu tenho pego o número do arquivo remessa (sequencial) e gravo no título gerado... assim , se no banco de dados, tem o número do arquivo remessa, indica que o título já foi para o banco.

no dia seguinte, na entrada confirmada, também gravo no título... e se houve rejeição, limpo o campo com o sequencial de remessa, para que ele possa ir novamente... entendeu ai ?

oscarpires commented 6 years ago

otimo, muito obrigado.

ferreira37 commented 6 months ago

@oscarpires , bom dia.

Minha lógica aqui, é um pouco diferente da sua...

Uma coisa, é a geração do PDF, a cada grupo de boletos (por ex: 1 venda em 3 parcelas), gero 1 PDF com 3 boletos... outra venda, outro PDF, e assim durante o dia todo.

No final do dia, tenho uma rotina que gera o arquivo Remessa... seleciono os títulos do dia, carrego todos eles no Boleto2Net e então gero o arquivo remessa.

Em resumo: PDF é uma coisa, REMESSA é outra... não tem ligação (aqui) entre os processos.

O que você pode tentar fazer (mas eu acho que a chance de dar problema é GIGANTE), seria gerar vários .REM durante o dia, e no final, juntar em 1 só (se tiver totalizadores no arquivo - normalmente no registro trailler, precisaria atualizar, bla bla bla) - ou ainda, gerar vários arquivos REM, e enviar vários arquivos REM para o banco. Enfim, eu não indicaria nenhuma dessas soluções... acredito que o melhor seria dividir esse processo em duas etapas, como expliquei que faço aqui...

Boa tarde @rafd75 Você pode me tirar uma dúvida por favor? Já faço uso da dll pra emissão dos boletos, só que eu queria implementar essa forma para gerar a remessa usando a classe proxy, hoje eu faço a emissão dos boletos e já gero a remessa, só que na maioria das vezes tenho que enviar várias remessas do mesmo banco no final do dia e isso é muito trabalhoso. Vi nas conversas que você já utiliza essa classe, e gostaria de implementar aqui na empresa também. Na verdade estou testando aqui, mas sempre recebo algum erro, mesmo os métodos da classe estando todos preenchidos com as informações do banco de dados. Fora os métodos da classe proxy, preciso preencher novamente todas as informações da geração dos boletos? Se puder me responder fico muito grato Obrigado Screenshot_1 Screenshot_2

rafd75 commented 6 months ago

@ferreira37 boa tarde!

Eu uso a proxy sim, para utilizar a biblioteca no Visual FoxPro... mas não tenho esse erro não.

Só por desencargo ... essa sua coleção tem 8 boletos... todos estão com Aceite = A/N ? (pelo print, só da para ver o primeiro boleto)

mas a ideia é exatamente essa... eu emito os boletos e gravo os dados no banco .... e tenho uma rotina que lê todos os boletos ainda não gerados (tem uma flagzinha lá), faço a coleção, e gero o arquivo.

ferreira37 commented 6 months ago

@ferreira37 boa tarde!

Eu uso a proxy sim, para utilizar a biblioteca no Visual FoxPro... mas não tenho esse erro não.

Só por desencargo ... essa sua coleção tem 8 boletos... todos estão com Aceite = A/N ? (pelo print, só da para ver o primeiro boleto)

mas a ideia é exatamente essa... eu emito os boletos e gravo os dados no banco .... e tenho uma rotina que lê todos os boletos ainda não gerados (tem uma flagzinha lá), faço a coleção, e gero o arquivo.

Sim, nessa coleção que mandei o print, todos estão com aceite N, mas já recebi o erro de que o logradouro do sacado não foi preenchido sendo que as informações são dos boletos que foram gerados os pdfs. Por isso fiquei na dúvida.

rafd75 commented 6 months ago

vc vai precisar depurar ai ... coloca um breakpoint e vai para dentro do componente verificando onde é que está o galho.

não creio que seja um bug... mas depurando o problema, vamos descobrir o motivo.

ferreira37 commented 6 months ago

vc vai precisar depurar ai ... coloca um breakpoint e vai para dentro do componente verificando onde é que está o galho.

não creio que seja um bug... mas depurando o problema, vamos descobrir o motivo.

Blza vou ir verificando aqui pra ver se acho o problema. Obrigado por enquanto.