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

Boleto Itaú, segundo desconto. #116

Closed rodrigosarri closed 5 years ago

rodrigosarri commented 5 years ago

No boleto Itaú é possível configurar um segundo e terceiro desconto segundo a documentação do (PDF) do Itaú, porém, não encontrei essa informação nos códigos e como devo configurar. Isso foi desenvolvido?

https://download.itau.com.br/bankline/layout_cobranca_400bytes_cnab_itau_mensagem.pdf

-> (16)SACADOR/AVALISTA (página 19 e 20).

Normalmente deve ser preenchido com o nome do sacador/avalista. Alternativamente este campo poderá ter dois outros usos:

a) 2º e 3º descontos: para se operar com mais de um desconto (depende de cadastramento prévio do indicador 19.0 pelo Banco Itaú, conforme Item 5), deve-se respeitar a seguinte disposição:

Posição 352 a 353 : Brancos Posição 354 a 359 : Data do 2º desconto (DDMMAA) Posição 360 a 372 : Valor do 2º desconto Posição 373 a 378 : Data do 3º desconto (DDMMAA) Posição 379 a 391 : Valor do 3º desconto Posição 392 a 394 : Brancos

b) Mensagens ao sacado: se utilizados as instruções 93 ou 94 (Nota 11), transcrever a mensagem desejada.

Como eu preciso especificamente desse segundo desconto, gostaria saber se poderá ser feito (posso ajudar se for o caso, com desenvolvimento e inclusive com testes) esse desenvolvimento com o banco Itaú.

Obrigado.

Rctnet commented 5 years ago

Ola, @rodrigosarri, estou preparando uma update para você testar...

Rctnet commented 5 years ago

Boa tarde @rodrigosarri , como foram necessárias varias alterações criei uma versão para testes dessa funcionalidade, está disponível em https://github.com/QuilhaSoft/OpenCnabPHP/tree/testes qualquer dúvida é só postar aqui e em caso de sucesso também quero saber para um eventual merge para a verão master

rodrigosarri commented 5 years ago

Boa tarde @Rctnet, primeiramente muito obrigado. Vou testar amanhã e já te informo os retornos. Obrigado novamente.

rodrigosarri commented 5 years ago

Boa tarde, @Rctnet, fiz alguns testes com o cliente e ainda não foi reconhecido o segundo desconto, eu fiz o preenchimento da seguinte forma dentro de inserirDetalhe:

                    'data_segundo_desconto'  => '2019-06-07',
                    'vlr_segundo_desconto'   => '11.00',
                    'data_terceiro_desconto' => '',
                    'vlr_terceiro_desconto'  => '0',

Tem algo que esqueci?

Obrigado pela ajuda.

Rctnet commented 5 years ago

Bom dia, está certo, fiz até um teste de geração aqui e está ok, pode ser que você não tenha baixado a versão correta, tem que ser desse link https://github.com/QuilhaSoft/OpenCnabPHP/tree/testes

rodrigosarri commented 5 years ago

Certo, vou realizar mais alguns testes com o cliente hoje e aviso sobre os retornos, obrigado novamente.

rodrigosarri commented 5 years ago

@Rctnet

Teste realizado ontem, retorno do banco Itaú, aparentemente, ele só está sendo mesmo a primeira instrução de desconto.

retorno

Se puder dar uma conferida, não sei o quanto isso pode ajudar, mas obrigado.

Rctnet commented 5 years ago

Bom dia, me manda o arquivo de remessa que você gerou, ainda tem um detalhe, deve ter alguma configuração no sistema do banco para que ele receba os dados do segundo desconto no lugar do nome do sacador avalista

rodrigosarri commented 5 years ago

Anexo. 123456.txt

Rctnet commented 5 years ago

Seu arquivo não contem os dados dos descontos e valores, verifique se sua copia tem esse conteudo https://github.com/QuilhaSoft/OpenCnabPHP/blob/825a9e79b4209ae2abd704ddda84ed4bec2023aa/src/resources/B341/remessa/cnab400/Registro0.php#L120

rodrigosarri commented 5 years ago

Copie e colei o arquivo e gerei uma nova remessa com os mesmos dados.

123456.txt

Rctnet commented 5 years ago

se seu arquivo local não era igual a esse toda a copia está comprometida, são varios arquivos modifcados faça o download da branch testes completa

rodrigosarri commented 5 years ago

Fiz o download de toda a branch e gerei novamente um novo arquivo.

2348176.txt

Rctnet commented 5 years ago

Veja como fica o arquivo com os dados , aqui no meu gera desse jeito veja as posições 352 em diante na segunda linha, o seu deveria ter esse conteudo 54321.txt

rodrigosarri commented 5 years ago

Exclui todos os arquivos, baixei novamente, aparentemente acho que esqueci de além de dar checkout na branch, tinha um pull também.

Consegue conferir se o arquivo foi gerado corretamente agora, por favor?

2348176.txt

Rctnet commented 5 years ago

A arquivo está do mesmo jeito

rodrigosarri commented 5 years ago

Mais um teste realizado, alterei a forma de usar o arquivo. Verifique se dessa forma ficou correto, por favor. Obrigado.

28271916.txt

Rctnet commented 5 years ago

Deu certo sim , o arquivo está correto.

rodrigosarri commented 5 years ago

Ótimo, um último detalhe:

No arquivo: RemessaAbstract.php

Linha 35: $class = '\CnabPHP\resources\\B' . self::$banco . '\remessa\\' . self::$layout . '\Registro0';

O layout é chamado como: Cnab400 (por exemplo, com o "C" em maiúsculo) e a pasta está com o "c" em minúsculo, servidores Linux diferenciam maiúsculos e minúsculos e não consegue encontrar a classe.

Eu corrigi alterando a pasta para com o "C" em maiúsculo. Muito obrigado por toda ajuda.

OBS: Vou validar com o cliente hoje, me dando ok, fecho a issue.

Rctnet commented 5 years ago

ok obrigado por avisar, na verdade tinha me esquecido desse detalhe mas o correto é minusculo mesmo, as outras pastas dos outros bancos estão todas minusculas

rodrigosarri commented 5 years ago

Retorno do teste com o cliente (leva sempre 1 dia para validar).

Ainda não retornou o segundo desconto, pode verificar o que mais faltou por favor.

Obrigado. 290519.txt

retorno

Rctnet commented 5 years ago

Está correto, de acordo com as regras, o pessoal do suporte do itaú é bem bacana para isso você pode entrar em contato com eles, ele olham o seu arquivo na hora e acham o erro e te explicam, já fiz isso e foi bem útil.

rodrigosarri commented 5 years ago

Após dias de teste com o suporte do Itaú, o erro encontrado era que o banco não havia cadastrado o segundo desconto, após o cadastramento, passou a funcionar corretamente. Obrigado.