Giter Site home page Giter Site logo

openboleto / opencnabphp Goto Github PK

View Code? Open in Web Editor NEW
188.0 32.0 116.0 15.15 MB

Biblioteca multibanco para geração e leitura de arquivos Cnab240 e Cna400 de remessa e retorno

License: MIT License

PHP 100.00%
remessa itau bradesco siccob cnab240 cnab400 caixa-economica santander uniprime sicredi

opencnabphp's Issues

Dúvida na leitura do arquivo de retorno

Olá,
estou com uma dúvida, caso alguém possa me esclarecer
onde vejo o que é $codigo_movimento e porque ele é fixo == 6 no código ?


            [data:protected] => Array
                (
                    [tipo_registro] => 1
                    [tipo_inscricao_empresa] => 2
                    [numero_inscricao_empresa] => 12025570000115
                    [agencia] => 3178
                    [agencia_dv] => 0
                    [conta] => 5880
                    [conta_dv] => 7
                    [numero_convenio] => 0
                    [seu_numero] => 
                    [nosso_numero] => 2017261
                    [nosso_numero_dv] => 0
                    [numero_parcela] => 1
                    [grupo_valor] => 0
                    [codigo_baixa] => 0
                    [especie_titulo_lit] => 0
                    [carteira] => 000
                    [conta_caucao] => 0
                    [cod_responsabilidade] => 00000
                    [cod_responsabilidade_dv] => 0
                    [taxa_desconto] => 0
                    [taxa_IOF] => 0
                    [filler41] => 
                    [cod_carteira] => 1
                    [codigo_movimento] => 2
                    [data_ocorrencia] => 2017-12-05
                    [seu_numero2] => 
                    [filler42] => 
                    [data_vencimento] => 2017-12-08
                    [valor] => 2
                    [codigo_banco] => 0
                    [agencia_cobradora] => 0
                    [agencia_cobradora_dv] => 0
                    [especie_titulo] => 99
                    [data_credito] => 1999-11-30
                    [vlr_tarifas] => 0
                    [vlr_outras_despesas] => 0
                    [vlr_juros_desconto] => 0
                    [vlr_iof] => 0
                    [vlr_abatimento] => 0
                    [vlr_desconto] => 0
                    [vlr_pago] => 0
                    [vlr_juros_multa] => 0
                    [vlr_outros] => 0
                    [vlr_abatimento_na] => 0
                    [vlr_lancamento] => 0
                    [indicativo_debito_credito] => 1
                    [indicativo_valor] => 0
                    [vlr_ajuste] => 0
                    [filler45] => 1
                    [numero_inscricao_pagador] => 64220690001430
                    [filler47] => 00000000000000000000000000000000000000
                    [numero_registro] => 3
                )

            [children:protected] => 

Problemas remessa BRADESCO

Ao tentar gerar a remessa Bradesco, recebo diversos erros relacionados à carteira


<br />
<b>Notice</b>:  Undefined variable: body in
<b>C:\xampp\htdocs\SigPHPAPIFinanceiro\src\routes.php</b> on line
<b>191</b>
<br />
<br />
<b>Notice</b>:  Undefined index: carteira_banco in
<b>C:\xampp\htdocs\SigPHPAPIFinanceiro\vendor\rctnet\opencnabphp\src\resources\B237\remessa\cnab400\Registro1.php</b> on line
<b>244</b>
<br />
<br />
<b>Notice</b>:  Undefined index: conta in
<b>C:\xampp\htdocs\SigPHPAPIFinanceiro\vendor\rctnet\opencnabphp\src\resources\B237\remessa\cnab400\Registro1.php</b> on line
<b>246</b>
<br />
<br />
<b>Notice</b>:  Undefined index: conta_dv in
<b>C:\xampp\htdocs\SigPHPAPIFinanceiro\vendor\rctnet\opencnabphp\src\resources\B237\remessa\cnab400\Registro1.php</b> on line
<b>247</b>
<br />
<br />
<b>Notice</b>:  Undefined index: carteira_banco in
<b>C:\xampp\htdocs\SigPHPAPIFinanceiro\vendor\rctnet\opencnabphp\src\resources\B237\remessa\cnab400\Registro1.php</b> on line
<b>258</b>
<br />

Valores de configuração do emissor do boleto somem ao entrar na classe

Quando vou passar meus dados para gerar o HEADER do CNAB400 Itaú estou passando os dados do emissor do boleto, porém quando o arquivo é gerado os valores somem e dá vários erros de validação como:
O tipo de incrição deve ser 1 para CPF e 2 para CNPJ, o valor informado foi: [null]

Estou instanciando o objeto remessa assim

$arquivo = new Remessa("341, "cnab400", [ 'nome_empresa' => $nomeEmpresa, 'tipo_inscricao' => 2, // 1 para cpf, 2 cnpj 'agencia' => $agencia, 'agencia_dv' => $agencia_dv, 'codigo_beneficiario' => $codigo_beneficiario, 'codigo_beneficiario_dv' => $codigo_beneficiario_dv, 'numero_sequencial_arquivo' => $numero_sequencial_arquivo, ]);

Já tentei passar esses dados das variáveis manualmente também e nada.
A exception é gerada no arquivo remessa\cnab400\Generico1.php

Ambiente:
php 7.2 - XAMPP Windows 10 64 bits

Ví que na issue #31 também deu um erro bem parecido mais seguindo o que ele fez lá não consegui resolver.

Juros e Multa não aceita 0.00

Olá amigos,
os campos juros e multa no arquivo de remessa, não aceitam ZERO

Erro No Sistema : Campo faltante ou com valor nulo:taxa_multa Boleto Numero:18296

                'taxa_multa'                        => 0.0000,
                'taxa_juros'                        => 0.0001

Homolagação de arquivo remessa CNAB 240

01 - Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 4, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000404].

Homologação de arquivo remessa SANTANDER CNAB 240

Não sei se aqui é o lugar certo p/ pedir ajudar mas se puderem me ajudar eu agradeço. Fiz o envio do arquivo remessa p/ banco p/ homologação e me retornaram às seguintes ocorrências. Estou usando o OpenBoleto p/ geração de boletos.

01 - Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 4, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000404].

02 - Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].

03 - Campo inválido na linha 5. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 5, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000405].

04 - Campo inválido na linha 5. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].

05 - Campo inválido na linha 7. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 6, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000406].

06 - Campo inválido na linha 7. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].

Cnab240 CAIXA - ERRO

Bom, como vi na descrição do projeto, está ainda em teste para o Cnab240 Caixa, fiz o teste e enviei a remessa.
O retorno do banco:

Erro ao processar arquivo FEBRABAN 240 (registro #2): Tipo de inscrição de empresa não é suportado: 0 (Exception)

Arquivo de remassa SANTANDER

A geração de arquivos de remessa p/ Santander não está reconhecendo o parâmetro "nosso_numero", algum ideia de como resolver isso ?

SICOOB 400 não processa retorno

Estive tentando alguns testes e não processou o RET ( arquivo de retorno ) do Sicoob 756

Fatal error: Uncaught Error: Class 'CnabPHP\resources\756\retorno\L400\Registro1' not found in C:\xampp\htdocs\OpenCnabPHP\src\resources\B756\retorno\L400\Registro0.php:136 Stack trace: #0 C:\xampp\htdocs\OpenCnabPHP\src\resources\B756\retorno\L400\Registro0.php(129): CnabPHP\resources\b756\retorno\L400\Registro0->inserirDetalhe() #1 C:\xampp\htdocs\OpenCnabPHP\src\RetornoAbstract.php(56): CnabPHP\resources\b756\retorno\L400\Registro0->__construct('02RETORNO01COBR...') #2 C:\xampp\htdocs\OpenCnabPHP\src\Retorno.php(32): CnabPHP\RetornoAbstract->__construct('02RETORNO01COBR...') #3 C:\xampp\htdocs\OpenCnabPHP\src\samples\ExemploRetorno.php(31): CnabPHP\Retorno->__construct('02RETORNO01COBR...') #4 {main} thrown in C:\xampp\htdocs\OpenCnabPHP\src\resources\B756\retorno\L400\Registro0.php on line 136

Agência não é permitido ZERO

Meu problema com o dígito que desaparecia na agência no HEADER é algo relacionado ao mesmo ser ZERO. Se for maior que ZERO, funciona, se não ele fica vazio.

Como posso corrigir ? em qual parte ?

        $arquivo = new Remessa(756, "cnab400", array(
            'nome_empresa'                  => $result->header->beneficiario,
            'tipo_inscricao'                => 2,
            'agencia'                       => $result->header->agencia,
            'agencia_dv'                    => $result->header->agencia_dv + 1,
            // 'conta'                         => $result->header->conta,
            // 'conta_dv'                      => $result->header->conta_dv,
            'codigo_beneficiario'           => $result->header->agencia,
            'codigo_beneficiario_dv'        => $result->header->agencia_dv,
            'numero_sequencial_arquivo'     => $result->header->numero_sequencial_arquivo,
            'situacao_arquivo'              => $ambiente
        ));

Cnab Remessa Sicoob

Bom dia amigo.
Estou seguindo seu exemplo e eu gerei o CNAB sem problemas mas ao enviá-lo ao Banco ele está apontando erro de que o registro possui mais de 400 caracteres.
Vou anexar o arquivo para ver se consegue me ajudar.
Também tentei enviar o seu exemplo da pasta samples sem alterar nenhuma variável e o mesmo retornou o mesmo erro.

EnvioCNAB.zip

Remessa SICREDI

Alguma previsão p/ implementação da remessa p/ SICREDI ?

Warnings chatos e indesejados

Minha remessa (BRADESCO CNAB400) até está sendo gerada corretamente, porém, eu não gostaria de tirar as mensagens de warning em modo desenvolvimento ... o que ocorre é que o projeto está gerando muitos warnings :

<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao1 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao2 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: vlr_juros in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao1 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao2 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: vlr_juros in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao1 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao2 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: vlr_juros in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao1 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: cod_instrucao2 in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: vlr_juros in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\apifinanceiro\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />

Bradesco

Olá, bom dia
alguém ai já testou Bradesco ?
Remessa e Retorno ?

O Layout do Bradesco me pareceu ser idêntico ao do SICOOB, procede ?

Obrigado.

Bradesco cnab240

Com a ajuda do @Rctnet consegui gerar o arquivo para ser homologado porém, já de cara, deu erro de arquivo invalido! Busquei na internet e parece que isso se da devido o formato que foi salvo o txt, tem que ser com salvo codificação ANSI.
Antes de enviar novamente para homologar, estou verificando os campos das classes Registro porém bateu umas duvidas:

  • O Registro0 se refere ao Header?
  • O Registro1 se refere ao Trailer?
  • O Registro3P se refere ao Segmento P?

Tem ainda Header_lote e Trailer_lote, quais são suas classes Registro correspondentes?
Eu atualizei o Registro0 considerando que ele seja o Header do arquivo porem notei que o Registro0 do cnab400 tem uma campo chamado "identificacao_registro" e nesse cnab240 que atualizei não consta esse campo no Header do arquivo e sim no Header de lote, esse Header de lote onde atualizo, qual classe Registro se refere a ela?

Problemas indesejados :-o

Olá,
tive que fazer algumas correções para minha remessa funcionar anteriormente, porém, quando atualizo o projeto pelo git, perco todas elas (óbvio), aqui algumas delas que me causam problemas.

Generico1.php

    protected function set_conta($value)
    {
        $this->data['conta'] =  RemessaAbstract::getLote(0)->entryData['conta'];
    }

    protected function set_conta_dv($value)
    {
        $this->data['conta_dv'] = RemessaAbstract::getLote(0)->entryData['conta_dv'];
    }

Outro problema chato é que, se eu não informar desconto e/ou data_desconto, fico recebendo notices/warnings que poluem meu arquivo de remessa :

\r\n<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\cnab\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
\r\n<br />
<b>Notice</b>:  Undefined index: data_desconto in <b>C:\xampp\htdocs\cnab\vendor\rctnet\opencnabphp\src\RegistroRemAbstract.php</b> on line <b>63</b><br />
\r\n<br />

Testes

O projeto é ótimo e extremamente útil, porém não existem testes unitários.

Vamos implementar? ;)

Duvida sobre como expor o projeto

Posso expor este projeto como uma API que fica aguardando uma requisição com os dados e então me retorna uma REMESSA ou processa um RETORNO ?

Qual a maneira mais prática de realizar tal intento ?

Obrigado.

Segmento P fora do padrão

Olá @Rctnet , estou usando o seu código para a geração do arquivo de remessa cnab 240 da caixa sigcb... Realizei todas as configurações e setei os valores e enviei para homologação, me responderam o seguinte sobre a analise:

O DV da agencia esta indo 1 favor informar 0
O segmento P esta fora do padrão, não foi possível validar, favor adequar de acordo com manual anexo.
Os demais campos da remessa estão certos

Será que se eu modificar apenas o DV da agencia para 0 o padrão do segmento P já vai ficar configurado corretamente ? O tipo da carteira que estou utilizando é a RG, não sei se isso vai influenciar.

Obrigado e até mais

Dúvida no campo [ SEU NUMERO ]

Qual propriedade do projeto que eu preencho o caampo SEU NUMERO , que acredito, se refere ao código interno dentro do meu sistema. Minhas contas foram registradas via REMESSA SICOOB perfeitamente, apeans faltou este número.

Muito obrigado a todos os colegas do projeto que ajudaram até aqui, remessa sicoob está ok agora.

imagemeditada

Integrar com Slim

Pessoal, alguém poderia publicar um exemplo de como integrar o projeto com o framework slim ?
Gostaria de expor rotas para gerar REMESSA e PROCESSAR RETORNO.

Não sei como encaixar este projeto no meu mini projeto slim.

Obrigado.

Campos PROTESTAR , PRAZO_PROTESTO na Remessa BRADESCO

Olá, ao gerar minha remessa para o Bradesco, estou preenchendo os campos referentes ao protesto, porém não os encontro no arquivo gerado :

As variáveis tem valor, pois já conferi :

                    'protestar'                         => $protestar, // 1 = Protestar com (Prazo) dias, 3 = Devolver ap�s (Prazo) dias
                    'prazo_protesto'                    => $proteDias, // Informar o numero de dias apos o vencimento para iniciar o protesto

O problema e que após gerado o arquivo de remessa, não encontro os valores nas posições.

10000000000000000000000901956001888081832                     0002020000000181832800000000002N           2  01          31051800000000003330000000001N030418000000000000000000000000000000000000000000000000000000000000000205740310000166FARMACIA PEREIRA E GARCIA LTDA          RUA PADRE ABEL, 163                                 37925000                                                            000002
10000000000000000000000901956001888081833                     0002020000000181833600000000002N           2  01          30051800000000002500000000001N030418000000000000000000000000000000000000000000000000000000000000000205740310000166FARMACIA PEREIRA E GARCIA LTDA          RUA PADRE ABEL, 163                                 37925000                                                            000003
10000000000000000000000901956001888081834                     0002020000000181834400000000002N           2  01          18051800000000002500000000001N030418000000000000000000000000000000000000000000000000000000000000000205740310000166FARMACIA PEREIRA E GARCIA LTDA          RUA PADRE ABEL, 163                                 37925000                                                            000004

Banco Itau - cnab240

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'     => '[email protected]', // 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

));

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

Modelo de remessa do Sicoob

Alguém já gerou remessa para o Sicoob e tem o preenchimento das variaveis para que eu possa rodar um exemplo aqui ? Tipo o exemplo na página inicial, só que do CNAB400 Sicoob.

?php
use \CnabPHP\Remessa;

$arquivo = new Remessa(104,'cnab240_SIGCB',array(
    'nome_empresa' =>"Empresa ABC", // seu nome de empresa
    'tipo_inscricao'  => 2, // 1 para cpf, 2 cnpj 
    'numero_inscricao' => $empresa->empresas_cnpjcpf, // seu cpf ou cnpj completo
    'agencia'       => '1234', // agencia sem o digito verificador 
    'agencia_dv'    => 1, // somente o digito verificador da agencia 
    'conta'         => '12345', // número da conta
    'conta_dv'     => 1, // digito da conta
    'codigo_beneficiario'     => '123456', // codigo fornecido pelo banco
    'numero_sequencial_arquivo'     => 1, // sequencial do arquivo um numero novo para cada arquivo gerado
));
$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çoes ver nota explicativa C004 manual Cnab_SIGCB na pasta docs
    'nosso_numero'      => 50, // 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'    => 109, // codigo da carteira ex: 109,RG esse vai o nome da carteira no banco
    'cod_carteira'      => "01", // I para a maioria ddas carteiras do itau
    /*----------------------------------------------------------------------------------------    */
     
    '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
    '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. 
    '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'     => '[email protected]', // 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
    'taxa_multa'         => 30.00, // taxa de multa em percentual
    'taxa_juros'         => 30.00, // taxa de juros em percentual
));        
echo $arquivo->getText();

Implementar registros S do santander

Atualizei e gerou esse erro, poderia me ajudar

Fatal error: Uncaught Error: Class 'CnabPHP\resources\033\remessa\cnab240\Registro3Q' not found in Q:\W_SERVER\EASY\eds-www\Projects\Opera\App\Libraries\vendor\quilhasoft\opencnabphp\src\resources\B033\remessa\cnab240\Registro3P.php:357 Stack trace: #0 Q:\W_SERVER\EASY\eds-www\Projects\Opera\App\Libraries\vendor\quilhasoft\opencnabphp\src\resources\B033\remessa\cnab240\Registro3P.php(351): CnabPHP\resources\B033\remessa\cnab240\Registro3P->inserirDetalhe(Array) #1 Q:\W_SERVER\EASY\eds-www\Projects\Opera\App\Libraries\vendor\quilhasoft\opencnabphp\src\resources\generico\remessa\cnab240\Generico1.php(128): CnabPHP\resources\B033\remessa\cnab240\Registro3P->__construct(Array) #2 Q:\W_SERVER\EASY\eds-www\Projects\Opera\App\Models\Reports\AdminRemessa.php(215): CnabPHP\resources\generico\remessa\cnab240\Generico1->inserirDetalhe(Array) #3 Q:\W_SERVER\EASY\eds-www\Projects\Opera\App\Models\Reports\AdminRemessa.php(62): AdminRemessa->setRemessaSantander() #4 Q:\W_SERVER\EASY\eds-www\Projects\Opera\Admin\Remessas.php(84): AdminRe in Q:\W_SERVER\EASY\eds-www\Projects\Opera\App\Libraries\vendor\quilhasoft\opencnabphp\src\resources\B033\remessa\cnab240\Registro3P.php on line 357

Digito da Agencia desaparece CNAB400

Quando vou passar meus dados para gerar o HEADER do CNAB400 estou passando o digito da agência, porém quando o arquivo é gerado, o digito dela some

   $arquivo = new Remessa("756", "cnab400",array(
     'nome_empresa'              =>  $cabeca->beneficiario,
     'tipo_inscricao'            =>  2, // 1 para cpf, 2 cnpj
     'agencia'                   =>  $result->header->agencia,
     'agencia_dv'                =>  $result->header->agencia_dv,
     'codigo_beneficiario'       =>  $result->header->codigo_beneficiario,
     'codigo_beneficiario_dv'    =>  $result->header->codigo_beneficiario_dv,
     'numero_sequencial_arquivo' =>  $result->header->numero_sequencial_arquivo,
     'situacao_arquivo'          =>  $ambiente // use T para teste e P para produção
   ));

Arquivo de REMESSA não aceito no SICOOB

Após processar meu arquivo de REMESSA, o banco me retorna. Comparei ele com um meu gerado em outra ferramente e aparentemente não tem diferenças. Existe alguma ferramenta para validar o arquivo de remessa antes de enviar ?

capturar

Travis CI

É preciso configurar o Travis-CI para rodar automaticamente os testes do projeto.

Já temos o .travis.yml no projeto, basta configurar a conta.

Gerar arquivo de remessa/retorno do itaú

olá!
estou usando a lib para criar e ler os arquivos de remessa/retorno para o banco itau (cod: 341)
no entanto estou tendo dificuldades com a documentação do projeto. uma dica seria adicionar uma sample de geração de remessa/retorno do itau em src/samples para facilitar visto que muitos utilizam esse banco.
na home do projeto o readme.md traz um pequeno tutorial de como gerar os arquivos. entretanto na configuração de lote tem umas chaves de array duplicadas que eu não entendi. ex:

`'codigo_ocorrencia' => 1, // 1 = Entrada de título, para outras opções ver nota explicativa C004 manual Cnab_SIGCB na pasta docs
'nosso_numero' => 50, // numero sequencial de boleto
'seu_numero' => 43, // se nao informado usarei o nosso numero
'codigo_movimento' => 1, // 1 = Entrada de título, para outras opçoes ver nota explicativa C004 manual Cnab_SIGCB na pasta docs
'nosso_numero' => 1, // numero sequencial de boleto
'seu_numero' => 1, // se nao informado usarei o nosso numero

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

no exemplo acima temos duas chaves nosso/seu numero. não entendi muito bem...

Erro de variavel indefinida

Boa tarde Rogério Muniz, o sistema esta lançando uma mensagem de variável indefinida na classe BoletoAbstrac.php verifiquei que é controle de quebra de linha fiz esta correção acima da linha 1240

$counter = isset($counter) ? $counter : 1; //linha adicionada
$bageBreak = (is_int($counter/3))?"page-break-after:always;":""; // adiciona suporte a css page-break

sou novo github como faço para baixar seu projeto na minha conta e depois fazer este commit para você, qual q linha de comando que devo utilizar....

e depois como faço para sempre ter a última versão a mais atualizada do projeto...

outra coisa o arquivo samples/pdf.php esta dando pau dizendo que a classe do pdf não pode ser encontrada não deveria ter um mapeamento no arquivo composer.json?

CÓDIGO DE INSTRUÇÃO INVÁLIDO

Olá,
antes de utilizar este projeto, eu enviava um arquivo e ele ia com esta posição de CÓDIGO DE INSTRUÇÃO => 00 e funcionava. Agora, utilizando o projeto, está dando este erro.

codigo de instrucao invalido

Campos problemáticos

Sempre que pego a última versão do sistema, tenho que alterar alguns campos, como por exemplo o campo CONTA, passando $VALUE para ele, pois, caso contrário, recebo o erro :

Notice: Undefined index: conta in
C:\xampp\htdocs\SigPHPAPIFinanceiro\vendor\rctnet\opencnabphp\src\resources\generico\remessa\cnab400\Generico1.php on line
63

Isto é problemático, pois, se eu corrigir LOCALMENTE, quando precisar atualizar o projeto, preciso corrigir novamente.

$value tem valor
RemessaAbstract::getLote(0)->entryData['conta']; está nulo

    protected function set_conta($value)
    {
        echo "VAlor de Conta " . $value;
        $this->data['conta'] = RemessaAbstract::getLote(0)->entryData['conta'];
    }

Ajuda Retorno Santander

Notice: Undefined index: valor in ...\vendor\quilhasoft\opencnabphp\src\RegistroRetAbstract.php on line 119

Notice: Undefined index: vlr_desconto in ...\vendor\quilhasoft\opencnabphp\src\RegistroRetAbstract.php on line 119

Alguém sabe me dizer o pq disso, dizendo que não vou definida

Usei o arquivo ExemploRetornoSantander.php

Ajuda para instalar este projeto

Olá,

este projeto funciona como o CNABPHP do Anderson?
Estou querendo gerar arquivo de remessa para a Caixa, e gostaria de ajuda para instalar.
Poderia explicar passo a passo?

Obrigado!

Mover docs para outro repositório

Seria interessante mover o diretório docs para um novo repositório,como OpenCnabPHP-Docs, para diminuir o tamanho do repositório. Visto que não necessiamente, precisamos desse diretório para rodar projeto.

TODO

Aqui colocaremos coisas que precisamos fazer para o projeto.

DUVIDA

Ola estou começando a desenvolver agora, e queria tira uma duvida por que nunca fiz um projeto assim, para eu gera o boleto precisa de outra classe que gere ou ele mesmo ja vai gera com o as imagens...

numero_inscricao sendo gerado ZERADO

Aparentemente o NUMERO_INSCRICAO está sendo gerado somente com zeros

102000000000000003178000005880700000043 0000000005070100 109000000 000000 20101 09041600000000100007560000 010090416000030000030000020904160000000000000900000000000000000000000000112312212356 JOSE DA SILVA ALVES RUA DOS DEVELOPERS,123 SL 103 BAIRRO DA INSON12345123LONDRINA PR 05 000002

Bairro => bairro_pagador NULL (Bradesco CNAB400)

Olá,
quando envio a propriedade BAIRRO PAGADOR, a mesma está indo null no arquivo gerado, sendo que há valor. ( remessa bradesco )


                    'endereco_pagador'                  => $conta->endereco_pagador,
                    'cep_pagador'                       => $conta->cep_pagador,
                    'cidade_pagador'                    => $conta->cidade_pagador,
                    'bairro_pagador'                    => $conta->bairro_pagador,
                    'uf_pagador'                        => $conta->uf_pagador,

mesmo forçando, está sendo gerado null

                    'endereco_pagador'                  => $conta->endereco_pagador,
                    'cep_pagador'                       => $conta->cep_pagador,
                    'cidade_pagador'                    => $conta->cidade_pagador,
                    'bairro_pagador'                    => 'testando bairro', // $conta->bairro_pagador,
                    'uf_pagador'                        => $conta->uf_pagador,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.