openboleto / OpenCnabPHP

Biblioteca multibanco para geração e leitura de arquivos Cnab240 e Cna400 de remessa e retorno
MIT License
192 stars 117 forks source link

Adiciona suporte para o Registro 5 CNAB400 - Banco Itaú #161

Closed andersonrosilva closed 4 years ago

andersonrosilva commented 4 years ago

Objetivo

Prezados,

Implementei uma alteração no código para que fosse possível adicionar um registro (opcional) segundo a CNAB400 Itaú.

Caso tenham perguntas ou objeções, estou a disposição para conversar.

image

Rctnet commented 4 years ago

Boa tarde, muito obrigado pela contribuição. seria bom se houvesse um gatilho para adicionar o registro5 somente quando uma determinada informação for incluída algo como https://github.com/QuilhaSoft/OpenCnabPHP/blob/0eeb56a3a6f0c52914276d58b0c3b393276ed56c/src/resources/B104/remessa/cnab240_sigcb/Registro3P.php#L290

andersonrosilva commented 4 years ago

Só para deixar bem claro, era isso que tinha em mente?

if (array_key_exists('data_desconto2', $data)) {
            $class = 'CnabPHP\resources\\B' . RemessaAbstract::$banco . '\remessa\\' . RemessaAbstract::$layout . '\Registro1_2D';
            $this->children[] = new $class($data);
        } elseif (isset($data['codigo_movimento']) && $data['codigo_movimento'] == 1) {
            $class = 'CnabPHP\resources\\B' . RemessaAbstract::$banco . '\remessa\\' . RemessaAbstract::$layout . '\Registro1';
            $this->children[] = new $class($data);
        } elseif (isset($data['codigo_movimento']) && $data['codigo_movimento'] == 5) {
            $class = 'CnabPHP\resources\\B' . RemessaAbstract::$banco . '\remessa\\' . RemessaAbstract::$layout . '\Registro5';
            $this->children[] = new $class($data);
        }
Rctnet commented 4 years ago

Ola @andersonrosilva , encontrei um problema, percebi que vc está usando o código de movimento 5 para carregar o registro 5, mas não funciona assim, vc deveria testar por exemplo se o usuário incluiu o e-mail ou o sacador avalista, e montar o caminho da class com o numero 5 fixo, porque o código de movimento 5 é usado para cancelamento de boleto conforme note 6 image

andersonrosilva commented 4 years ago

Olá, entendi.

Obrigado pelos esclarecimentos, vou cancelar esse Pull request.