eduardokum / laravel-boleto

Pacote para gerar boletos e remessas
MIT License
606 stars 395 forks source link

Problema homologação remessa bradesco #133

Closed edolfuchs closed 7 years ago

edolfuchs commented 7 years ago

Eu enviei uma remessa para o banco validar e retornaram com alguns erros.

Retorno do banco (problemas em vermelho):

erro boleto

Como foi gerado a remessa:

$boleto = new \Eduardokum\LaravelBoleto\Boleto\Banco\Bradesco([ 'logo' => 'c://...', 'dataVencimento' => new \Carbon\Carbon('2017-03-23'), 'valor' => 0.42, 'multa' => 0.00, // porcento 'juros' => 0, // porcento ao mes 'juros_apos' => 0, // juros e multa após 'diasProtesto' => false, // protestar após, se for necessário 'numero' => '23', 'numeroDocumento' => '23', 'pagador' => $pagador, // Objeto PessoaContract 'beneficiario' => $beneficiario, // Objeto PessoaContract 'agencia' => '6026', // BB, Bradesco, CEF, HSBC, Itáu 'agenciaDv' => '7', 'conta' => '0000097', // BB, Bradesco, CEF, HSBC, Itáu, Santander 'contaDv' => '3', // Bradesco, HSBC, Itáu 'carteira' => '09', // BB, Bradesco, CEF, HSBC, Itáu, Santander 'codigoCliente' => '7818222', // Bradesco, CEF, Santander 'descricaoDemonstrativo' => [], // máximo de 5 'instrucoes' => [], // máximo de 5 'aceite' => 'N', 'especieDoc' => 'DM', ]); $remessaArray = [ 'idremessa' => '1706563', 'agencia' => '6026', 'agenciaDv' => '7', 'conta' => '00000XX', 'contaDv' => '3', 'carteira' => '09', 'codigoCliente' => '7818222', 'beneficiario' => $beneficiario, ];

$remessa = new \Eduardokum\LaravelBoleto\Cnab\Remessa\Cnab400\Banco\Bradesco($remessaArray); $remessa->addBoleto($boleto);

Comentários:

A Linha 02 - Posição 025 à 025 mesmo adicionar um zero a esquerda (ex 06026) na remessa parece desconsiderar esse zero.

A Linha 2- Posição 82 não consegui identificar o problema.

A Linha 2 - Posição 82 e Linha - 2 - Posição 174 à 192, não adicionei nenhum desconto.

Alguem consegue dar um auxilio?

eduardokum commented 7 years ago

Você pode mandar o txt pra eu ver como esta? se você so adicionar 'agencia' => '06026', ja não funciona?

edolfuchs commented 7 years ago

Forçando setar a agencia não deu certo. Mas eu consegui resolver boa parte do problema.

Exemplo:

Carteira: 9 Agencia: 6026 Conta: 97-3

Correto: 00090602600000973 Errado: 0090602600000973

Para resolver alterei o arquivo:

Eduardokum\LaravelBoleto\Cnab\Remessa\Cnab400\Banco\Bradesco remessa-erro-conta

Eduardokum\LaravelBoleto\Boleto\AbstractBoleto boleto-erro-data Nesse método deixei o parâmetro aceitar receber null.

A alteração acima afeta outro arquivo:

Eduardokum\LaravelBoleto\Cnab\Remessa\Cnab400\Banco\Bradesco boleto-erro-remessa

Adicionei um if na linha 203

Essa alteração permite adicionar ou não um desconto: $boleto->setDataDesconto(null) ou $boleto->setDataDesconto(new \Carbon\Carbon());

Não sei se é a melhor forma de resolver isso.

eduardokum commented 7 years ago

Ele seta essa data no contruct se você não passar nada, ta certo que pode sobescrever depois, mais não acho o ideial, talvez, verificar se possui desconto colocar a data se não colocar 0000000, pode ser uma ideia.

Quanto ao código do beneficiário qual foi a alteração? Me parece igual ao do projeto. https://github.com/eduardokum/laravel-boleto/blob/master/src/Cnab/Remessa/Cnab400/Banco/Bradesco.php#L149

edolfuchs commented 7 years ago

Entendi, acho melhor sua sugestão. Quanto ao beneficiário, mandei o print errado segue a alteração:

beneficiario

Basicamente alterei a linha $beneficiario_id = Util::formatCnab('9', $this->getCarteiraNumero(), 4) .

eduardokum commented 7 years ago

so alterar a linha de $this->add(21, 37, Util::formatCnab('X', $beneficiario_id, 17)); para $this->add(21, 37, Util::formatCnab('9', $beneficiario_id, 17));

que ele ja coloca quantos 0 for necessário antes até completar 17

edolfuchs commented 7 years ago

Funcionou.

Voce consegue subir essas alterações no master?

eduardokum commented 7 years ago

Eu mandei no dev, estou esperando so pra terminar de fechar a versão com o novo banco BNB e ja faço o merge.

edolfuchs commented 7 years ago

Valeu.

A parte da remessa é isso. O banco também validou o boleto em pdf e tem alguns ajustes. Vou abrir um novo issue, ok?

eduardokum commented 7 years ago

Blza