eduardokum / laravel-boleto

Pacote para gerar boletos e remessas
MIT License
596 stars 382 forks source link

Boleto Bradesco - Retornos possuem registro do Tipo 4 que não podem ser processados pela biblioteca. #730

Open abcRede opened 8 months ago

abcRede commented 8 months ago

Descreva o bug Para alguns convênios, o Bradesco está retornando o CNAB400 contendo registros de detalhe do tipo "4", que é a linha do PIX embutida no boleto.

Para reproduzir Passos para reproduzir o comportamento: Obtenha qualquer arquivo que retorna o detalhe do tipo 4 no CNAB400 e tente processar na biblioteca.

Comportamento esperado A linha do detalhe do tipo 4 deveria ser ignorada.

Desktop (por favor, complete as seguintes informações):

Contexto adicional Como workaround, é possível extender a classe e ignorar o registro, mas o ideal seria tratar na biblioteca. Podemos implementar esta solução caso a decisão seja a de ignorar o tipo do registro por completo.

<?php

use Eduardokum\LaravelBoleto\Cnab\Retorno\Cnab400\Banco\Bradesco;
use Eduardokum\LaravelBoleto\Contracts\Cnab\RetornoCnab400;

class CnabBradescoRetorno400 extends Bradesco implements RetornoCnab400
{
  protected function processarDetalhe(array $detalhe)
  {
    if (isset($detalhe[0]) && $detalhe[0] != 4) {
      return parent::processarDetalhe($detalhe);
    }

    return false;
  }
}

Aqui está um exemplo de como o arquivo retorna. Censurei os dados para a proteção da empresa e em vigência da LGPD.

Screenshot_20231220_090057