openboleto / OpenCnabPHP

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

Banco Itau - cnab240 #66

Open edilsonsp opened 6 years ago

edilsonsp commented 6 years ago

Boa noite precisa da ajuda de voces sobre o boleto ITAU carteira 157

Erro: Fatal error: Class 'CnabPHP\resources\341\remessa\cnab240\Registro3Q' not found in /home/storage/9/52/56/ws32/public_html/boleto/src/resources/B341/remessa/cnab240/Registro3P.php on line 262

Fiz os ajustes abaixo:

$arquivo = new Remessa(341,'cnab240',array( 'nome_empresa' =>"Empresa ABC", // seu nome de empresa 'tipo_inscricao' => 1, // 1 para cpf, 2 cnpj 'numero_inscricao' => '123.122.123-56', // seu cpf ou cnpj completo 'agencia' => "3300", // agencia sem o digito verificador 'agencia_dv' => '1', // somente o digito verificador da agencia 'conta' => '3264', // número da conta 'conta_dv' => (string)0, // digito da conta 'codigo_beneficiario' => '10668', // codigo fornecido pelo banco 'codigo_beneficiario_dv' => '2', // codigo fornecido pelo banco 'numero_sequencial_arquivo' => 1, 'situacao_arquivo' =>'P', // use T para teste e P para produ��o 'mensagem_1'=>'Sua mensagem personalizada para todos os boletos do arquivo aqui' // suportado somente para SICOOB cnab400, mudar o numero 1 para 2,3,4,5 para incluir mais mensagens )); $lote = $arquivo->addLote(array('tipo_servico'=> 1)); // tipo_servico = 1 para cobrança registrada, 2 para sem registro

$lote->inserirDetalhe(array( 'codigo_movimento' => 1, //1 = Entrada de título, para outras opções ver nota explicativa C004 manual Cnab_SIGCB na pasta docs 'nosso_numero' => 12345678, // numero sequencial de boleto 'seu_numero' => 43,// se nao informado usarei o nosso numero

/* campos necessarios somente para itau e siccob,  não precisa comentar se for outro layout    */
'carteira_banco'    => 157, // codigo da carteira ex: 109,RG esse vai o nome da carteira no banco
'cod_carteira'      => "I", // I para a maioria ddas carteiras do itau
 /* campos necessarios somente para itau,  não precisa comentar se for outro layout    */

'especie_titulo'    => "DM", // informar dm e sera convertido para codigo em qualquer laytou conferir em especie.php
'valor'             => 100.00, // Valor do boleto como float valido em php
'emissao_boleto'    => 2, // tipo de emissao do boleto informar 2 para emissao pelo beneficiario e 1 para emissao pelo banco
'protestar'         => 3, // 1 = Protestar com (Prazo) dias, 3 = Devolver após (Prazo) dias
'prazo_protesto'    => 5, // Informar o numero de dias apos o vencimento para iniciar o protesto
'nome_pagador'      => "JOSÉ da SILVA ALVES", // O Pagador é o cliente, preste atenção nos campos abaixo
'tipo_inscricao'    => 1, //campo fixo, escreva '1' se for pessoa fisica, 2 se for pessoa juridica
'numero_inscricao'  => '123.122.123-56',//cpf ou ncpj do pagador
'endereco_pagador'  => 'Rua dos developers,123 sl 103',
'bairro_pagador'    => 'Bairro da insonia',
'cep_pagador'       => '12345-123', // com hífem
'cidade_pagador'    => 'Londrina',
'uf_pagador'        => 'PR',
'data_vencimento'   => '2016-04-09', // informar a data neste formato
'data_emissao'      => '2016-04-09', // informar a data neste formato
'vlr_juros'         => 0.15, // Valor do juros de 1 dia'
'data_desconto'     => '2016-04-09', // informar a data neste formato
'vlr_desconto'      => '0', // Valor do desconto
'baixar'            => 1, // codigo para indicar o tipo de baixa '1' (Baixar/ Devolver) ou '2' (Não Baixar / Não Devolver)
'prazo_baixa'       => 90, // prazo de dias para o cliente pagar após o vencimento
'mensagem'          => 'JUROS de R$0,15 ao dia'.PHP_EOL."Não receber apos 30 dias",
'email_pagador'     => 'rogerio@ciatec.net', // data da multa
'data_multa'        => '2016-04-09', // informar a data neste formato, // data da multa
'vlr_multa'         => 30.00, // valor da multa

// campos necessários somente para o sicoob
'cod_instrucao1'     => 1, //instrução para cobrar juros novas regras da base de boletos unificada 
'cod_instrucao2'     => 1, //instrução para cobrar juros novas regras da base de boletos unificada 
'taxa_multa'         => 0.00, // taxa de multa em percentual
'taxa_juros'         => 0.00, // taxa de juros em percentual

));

================================================

Rctnet commented 6 years ago

Note a letra B antes do numero do banco, la na linha do erro esta faltando essa letra, Nos outros layouts isso já foi corrigido, mas como esse é beta e não tinha ninguém interessado, ficou para traz

edilsonsp commented 6 years ago

Opa funcionou!!!! muito obrigado!!!

Gerei o arquivo de teste mas achei outro bug

As duas ultimas linhas começam com 104 ao inves de começar com 341

34100000 1000123122123560000000000000000000003300 000000003264 0EMPRESA ABC BANCO ITAU SA 12604201810452500000104000000 000
34100011R0100030 1000012312212356 03300 000000000000 0EMPRESA ABC 000000012604201800000000
3410001300001P 01033000001066803264 000123456781 0000043 0904201600000000001000000000001N0904201600000000000000000000001500904201600000000000000000000000000000000000000000000012345678 30510900000000000000 3410001300002Q 011000012312212356JOSE DA SILVA ALVES RUA DOS DEVELOPERS,123 SL 103 BAIRRO DA INSON12345123LONDRINA PR0000000000000000 000
3410001300003R 01000000000000000000000000000000000000000000000000009042016000000000003000 0000000000000000 000000000000 0
10400015 000005000000000000000000000000000000000000000000000000000000000000000000000
10499999 000001000007

Rctnet commented 6 years ago

Esse layout não foi testado, nem sei se ele esta de acordo com a documentação

edilsonsp commented 6 years ago

Rogério acabei de baixar a documentação vou dar uma estudada

http://download.itau.com.br/bankline/cobranca_cnab240.pdf

Caso eu consiga evoluir te aviso para atualizar no projeto!

Obrigado pela atenção

Rctnet commented 6 years ago

Muito legal, caso tenha duvidas, é só chamar.

gildonei commented 6 years ago

@edilsonsp De uma olhada nos arquivos que geram o trailler de lote e de arquivo se o código do banco para o respectivo banco está correto.

duard commented 4 years ago

@edilsonsp estas correções para o ITAU 240 funcionar você já subiu ?

duard commented 4 years ago

ao tentar gerar ITAU obtenho o erro

<div><strong>Type:</strong> Error</div>
<div><strong>Message:</strong> Class 'CnabPHP\resources\341\remessa\cnab240\Registro3Q' not found</div>
<div><strong>File:</strong>
    /var/www/fin.sigpharma.xyz/vendor/rctnet/opencnabphp/src/resources/B341/remessa/cnab240/Registro3P.php</div>
<div><strong>Line:</strong> 262</div>
duard commented 4 years ago

Notei que a LETRA B está aqui na linha do erro, porém, o erro mostra sem a letra B $class = 'CnabPHP\resources\\B' . RemessaAbstract::$banco . '\remessa\\' . RemessaAbstract::$layout . '\Registro3P';

duard commented 4 years ago

Se eu coloco $class = 'CnabPHP\resourcesx\\B' . RemessaAbstract::$banco . '\remessa\\' . RemessaAbstract::$layout . '\Registro3P'; a letra B aparece, porém, o caminho é inválido, isto é um bug ?

<div><strong>Type:</strong> Error</div>
<div><strong>Message:</strong> Class 'CnabPHP\resourcesx\B341\remessa\cnab240\Registro3P' not found</div>
Rctnet commented 4 years ago

não sei se você reparou, mas acho que você acrescentou a letra 'x' antes das barras...

duard commented 4 years ago

na verdade eu forcei este X e então o B apareceu, sem o x o B some e da o erro

Rctnet commented 4 years ago

Edite essa linha https://github.com/QuilhaSoft/OpenCnabPHP/blob/fc552a3f689e41ce29f24ffd72817b98bd24ff6f/src/resources/B341/remessa/cnab240/Registro3P.php#L261 deve haver outras iguais a essa para serem editadas nesse arquivo e nos outros do mesmo layout