BoletoNet / boletonet

Boleto.Net is a library developed for use in Brazil, given it has been programmed with Brazilian retail legislation and business rules for bank registered billing integration.
Apache License 2.0
478 stars 382 forks source link

CNAB400 Itaú: Problema com o preenchimento do campo "nome do sacador avalista" #290

Open rodolfoghi opened 7 years ago

rodolfoghi commented 7 years ago

Boa tarde pessoal, tudo bem?

O banco Itaú está reclamando do abaixo. Alguém já passou por este problema?

Registro detalhe posição 352/381 – Nome do sacador avalista, foi preenchido o nome do pagador, preencher somente quando existir a figura do sacador avalista.

Na linha 1186 do arquivo Banco_Itau.cs, no método GerarDetalheRemessaCNAB400 temos o seguinte código:

_detalhe += Utils.FitStringLength(boleto.Sacado.Nome, 30, 30, ' ', 0, true, true, false).ToUpper();

Procurei no manual de cobrança do Itaú mas não encontrei nada sobre como preencher este campo quando não existir avalista.

Posso simplesmente alterar para que estas posições fiquem em branco?

huandertironi commented 7 years ago

Rodolfo,

Também estou com o mesmo problema aqui. Você retirou a anotação? Resolveu o problema?

Abraço.

rodolfoghi commented 7 years ago

Sim, fiz a seguinte alteração e funcionou.

De: //_detalhe += Utils.FitStringLength(boleto.Sacado.Nome, 30, 30, ' ', 0, true, true, false).ToUpper();

Para: _detalhe += new string(' ', 30);

diegomodolo commented 7 years ago

Eu precisei da função de sacador/avalista para os casos onde o cliente utiliza um banco correspondente. Para resolver isso, criei uma propriedade chamada Avalista na classe do boleto. Também alterei o layout do HTML para exibir estes dados. Já homologuei junto à um dos bancos que utiliza este recurso, assim que homologar o restante eu faço o PR e aviso aqui.

edsonfast commented 7 years ago

@diegomodolo Boa tarde, já fez o PR desta situação? pq estou com essa questão do Sacador/Avalista, o banco http://www.unicred.com.br/ utiliza o Bradesco para emissão dos boleto, e pediram que no Beneficiário seja impresso Unicred e no Sacador/Avalista imprima o nome do Emissor (meu cliente), também o campo Pagador com o nome do cliente.

diegomodolo commented 7 years ago

Desculpe a demora em responder. Fiz o PR sim, eu estou usando em um cliente com vários bancos. Para funcionar basta preencher a propriedade Avalista.

eternoscav commented 6 years ago

Bom dia! Primeiramente obrigado por colaborar com o projeto,. Ao incluir essa informação do avalista Nome e Cnpj aparece, mas quando incluo endereço o sistema não está aceitando poderia me ajudar.

diegomodolo commented 6 years ago

Bom dia @eternoscav, estou sem acesso ao projeto no momento. Poderia me dizer se aparece alguma mensagem de erro ou apenas não exibe o endereço?

eternoscav commented 6 years ago

Esse é o erro. "Referência de objeto não definida para uma instância de um objeto." boleto.Avalista = New Cedente() boleto.Avalista.Nome = Cedente_Nome boleto.Avalista.CPFCNPJ = Cedente_CNPJ_CPF

Porém no endereço o erro continua o mesmo. "Referência de objeto não definida para uma instância de um objeto."

Agradeço se puder ajudar.

diegomodolo commented 6 years ago

Desculpe se eu estiver falando besteira, é que estou sem o código e não consigo testar, mas tente da seguinte forma: boleto.Avalista = New Cedente() boleto.Avalista.Endereco = New Endereco()

eternoscav commented 6 years ago

Blz isso resolveu em partes o problema, agora ele não dá erro, mas continua não aparecendo no boleto, aparece apenas o nome e Cnpj.

eternoscav commented 6 years ago

O código ficou assim:

                        b.Avalista = New Cedente()
                        b.Avalista.Nome = Cedente_Nome
                        b.Avalista.CPFCNPJ = Cedente_CNPJ_CPF

                        b.Avalista.Endereco = New Endereco()
                        b.Avalista.Endereco.End = CendenteEndereco.End
                        b.Avalista.Endereco.End = Sacado_Endereco
                        b.Avalista.Endereco.Bairro = Sacado_Bairro
                        b.Avalista.Endereco.Cidade = Sacado_Cidade
                        b.Avalista.Endereco.CEP = Sacado_CEP
                        b.Avalista.Endereco.UF = Sacado_UF

Segue o print do boleto: https://uploaddeimagens.com.br/imagens/imagem2-jpg-f28694b3-092b-4c94-9793-2a09e75cdadd

diegomodolo commented 6 years ago

Opa @eternoscav, eu realmente precisarei depurar o código e verificar o motivo disso estar acontecendo. Se quiser crie um issue e atribua a mim que assim que possível eu verifico.

eternoscav commented 6 years ago

Diego faz assim, vou esperar você depurar e ae vou vendo outras partes do boleto, podemos acompanhar por aqui mesmo, já que o tópico tem haver com a situação, vou aguardar então, quando puder coloque aqui o resultado fazendo um grande favor. Obrigado novamente.

cezarant commented 5 years ago

@rodolfoghi tudo bem? Poderia encerrar a issue por favor? Parece que a discussão foi encerrada.