Giter Club home page Giter Club logo

cnabphp's Introduction

CnabPHP

Join the chat at https://gitter.im/andersondanilo/CnabPHP

Build Status Latest Stable Version Latest Unstable Version Code Climate Test Coverage

Projeto para criar arquivos de remessas e processar arquivos de retorno no formato CNAB, utilizado nos bancos geralmente para boleto bancário.

Funcionalidades

  • Leitura e geração de arquivos de retorno e remessa nos formatos CNAB 240 e 400
Banco Versão da Remessa Versão do Retorno
Banco do Brasil 240 (Beta) 240 e 400
Bradesco 240
Caixa 240 240 e 400
Itaú 400 400
Santander 240

Instalação

Composer

Se você já conhece o Composer, adicione a dependência abaixo à diretiva "require" no seu composer.json:

"andersondanilo/cnab_php": "1.3.*"

Como Usar

Lendo um arquivo de Retorno

$cnabFactory = new Cnab\Factory();
$arquivo = $cnabFactory->createRetorno('AQUI VAI O CAMINHO DO ARQUIVO DE RETORNO, EX: RET1010.RET');
$detalhes = $arquivo->listDetalhes();
foreach($detalhes as $detalhe) {
    if($detalhe->getValorRecebido() > 0) {
        $nossoNumero   = $detalhe->getNossoNumero();
        $valorRecebido = $detalhe->getValorRecebido();
        $dataPagamento = $detalhe->getDataOcorrencia();
        $carteira      = $detalhe->getCarteira();
        // você já tem as informações, pode dar baixa no boleto aqui
    }
}

Criando um arquivo de remessa

Consulte na wiki: https://github.com/andersondanilo/CnabPHP/wiki/Criando-um-arquivo-de-remessa

Como Contribuir

Você pode contribuir com testes (unitários ou manuais), ou adaptando o formato para outro banco através do projeto cnab_yaml (https://github.com/andersondanilo/cnab_yaml) (que é utilizado pelo cnab_php). Leia a wiki

O projeto está usando o Waffle para gerenciar o status da impleentação de novas remessas e retornos:

Stories in Ready

Licença

Este projeto esta sobre a licença MIT

cnabphp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cnabphp's Issues

Código do Cedente na caixa

Oi Anderson,

Antes de qualquer coisa, parabéns pela iniciativa.

Esta linha com o código do cedente está travando a geração de arquivos de remessa CEF, veja (Cnab_Remessa_Cnab400_Arquivo):

    if($this->codigo_banco == Cnab_Banco::CEF)
    {
        $this->header->codigo_cedente = $this->configuracao['codigo_cedente'];
    }
    else
    {
        $this->header->agencia = $this->configuracao['agencia'];
        $this->header->conta = $this->configuracao['conta'];
        $this->header->conta_dv = $this->configuracao['conta_dac'];
    }

Este campo não existe no header do yaml genérico. Qual era a sua intenção aqui?

Abs,
Gabriel

Problemas leitura do arquivo Santander

Anderson, tudo bem?

Estou com problemas na leitura do arquivo do Santander.
Na class Arquivo.php quando ele verifica o $lote->listDetalhes() o mesmovem vazio.
O que pode ser?

Registro 1 Inválido

Bom dia Anderson!

Primeiramente parabéns pela biblioteca, é de grande ajuda!

Cara, tô gerando remessa para o Itaú, e tá me retornando o seguinte aviso:
Aviso: Tamanho do Registro 1 Invalido

Saberia me dizer pq está ocorrendo?

Obrigado!

Observação Itau carteira 112

Obs. de remessa Banco Itaú Carteira 112:
O arquivo de remessa para o banco Itaú carteira 112 é necessário acrescentar no array a opção uso_empresa:

uso_empresa => codigo_interno //é esse código que você usará como retorno pois o nosso número nessa carteira precisa ter valor 0

e também alterar em /vendor/andersondanilo/cnab_php/Remessa/Cnab400/Arquivo/remessa.php

/*$detalhe->uso_empresa = $boleto['nosso_numero'];*/ //alterar para receber o valor uso_empresa
$detalhe->uso_empresa = $boleto['uso_empresa']; 

SANTANDER 240

Senhores, Pretendo contribuir para criar o yaml para geração de remessa Santander com 240 Posições, alguma objeção ou problema que eu devo saber antes de iniciar minha contribuição?

Boa tarde Focos

Você poderia disponibilizar seu modulo de geração de boleto do CEF?

em relação a seu arquivo de geração você adaptou a geração para o layout de 400? porque não entendi os arrays abaixo gerados..

$configHeaderArquivo = array (
"1" => 3,
"2" => 4,
"3" => 1,
"4" => 9,
"5" => 1,
"6" => 14,
"7" => 20,
"8" => 5,
"9" => 1,
"10" => 12,
"11" => 1,
"12" => 1,
"13" => 30,
"14" => 30,
"15" => 10,
"16" => 1,
"17" => 8,
"18" => 6,
"19" => 6,
"20" => 3,
"21" => 5,
"22" => 20,
"23" => 20,
"24" => 29,
);

$configTypeHeaderArquivo = array (
"1" => "num",
"2" => "num",
"3" => "num",
"4" => "str",
"5" => "num",
"6" => "num",
"7" => "str",
"8" => "num",
"9" => "str",
"10" => "num",
"11" => "str",
"12" => "str",
"13" => "str",
"14" => "str",
"15" => "str",
"16" => "num",
"17" => "num",
"18" => "num",
"19" => "num",
"20" => "num",
"21" => "num",
"22" => "str",
"23" => "str",
"24" => "str",
);

Header de Arquivo CEF CNAB240

Caro Anderson, ao realizar criação da remessa para CEF, modelo CNAB 240, o Header do arquivo está dando uma diferença.

Conteúdo enviado:

object(Cnab\Remessa\Cnab240\Arquivo)[255]
public 'headerArquivo' => null
public 'headerLote' => null
public 'detalhes' =>
array (size=0)
empty
public 'trailerLote' => null
public 'trailerArquivo' => null
private '_data_gravacao' => null
private '_data_geracao' => null
public 'banco' =>
array (size=2)
'codigo_do_banco' => int 104
'nome_do_banco' => string 'C ECON FEDERAL' (length=14)
public 'codigo_banco' => string '104' (length=3)
public 'configuracao' =>
array (size=0)
empty
public 'layoutVersao' => string 'sigcb' (length=5)

Array do Header
array (size=18)
'numero_sequencial_arquivo' => int 555
'operacao' => string 'R' (length=1)
'banco' => string '104' (length=3)
'agencia' => string '3366' (length=4)
'agencia_dv' => string '9' (length=1)
'conta' => int 77
'data_geracao' =>
object(DateTime)[5673]
public 'date' => string '2016-03-11 18:09:29.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
'data_gravacao' =>
object(DateTime)[5688]
public 'date' => string '2016-03-11 18:09:29.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
'codigo_cedente' => int 443459
'nome_fantasia' => string ' LOJAS SIMONETTI LTDA' (length=21)
'razao_social' => string ' LOJAS SIMONETTI LTDA' (length=21)
'cnpj' => string '31.743.818/0001-28' (length=18)
'logradouro' => string 'RUA CARLOS CASTRO' (length=17)
'numero' => string '245' (length=3)
'bairro' => string 'CENTRO' (length=6)
'cidade' => string 'PINHEIROS' (length=9)
'uf' => string 'ES' (length=2)
'cep' => int 29980000

A crítica está no Uso Exclusivo Uso Exclusivo CAIXA
Inicio: 33 Fim: 52 Tamanho: 20

Conteúdo Atual:03366000000000778000
Conteúdo Esperado:0000000000000000000

O que devo fazer para chegar ao conteúdo esperado?

Obrigado.

Retorno Bradesco

Boa noite pessoal. Este projeto faz o retorno Bradesco?
Obrigado.

Arquivo de remessa não esta sendo gerado

Ola,

Estou tentando gerar o arquivo de remessa como esta o exemplo na wiki, mas o arquivo não gera.

Obs: Estou tentando gerar para o Banco do Brasil, tem suporte?

Testes não encontram arquivo

Estou tentando rodar os testes, porém não encontram os arquivos no path.
Estou rodando o phpUnit da raiz da minha aplicação.
Instalei utilizando composer.

PHPUnit 4.2.6 by Sebastian Bergmann.

............F.EEEEEE.

Time: 135 ms, Memory: 8.00Mb

There were 6 errors:

  1. Cnab\Tests\Retorno\Cnab240\ArquivoTest::testArquivoSantanderPodeSerLido
    Exception: file dont exists: tests/fixtures/cnab240/retorno_santander.ret

/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Format/Identifier.php:14
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Factory.php:67
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/tests/Cnab/Retorno/Cnab240/ArquivoTest.php:10

  1. Cnab\Tests\Retorno\Cnab240\ArquivoTest::testArquivoBancoDoBrasilPodeSerLido
    Exception: file dont exists: tests/fixtures/cnab240/retorno_bb.ret

/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Format/Identifier.php:14
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Factory.php:67
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/tests/Cnab/Retorno/Cnab240/ArquivoTest.php:30

  1. Cnab\Tests\Retorno\Cnab240\ArquivoTest::testArquivoCaixaSigcbPodeSerLido
    Exception: file dont exists: tests/fixtures/cnab240/retorno_cnab240_caixa.ret

/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Format/Identifier.php:14
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Factory.php:67
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/tests/Cnab/Retorno/Cnab240/ArquivoTest.php:56

  1. Cnab\Tests\Retorno\Cnab400\ArquivoTest::testArquivoBradescoCnab400PodeSerLido
    Exception: file dont exists: tests/fixtures/cnab400/retorno-cb030400-bradesco.ret

/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Format/Identifier.php:14
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Factory.php:67
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/tests/Cnab/Retorno/Cnab400/ArquivoTest.php:10

  1. Cnab\Tests\Retorno\Cnab400\ArquivoTest::testArquivoBancoDoBrasilCnab400PodeSerLido
    Exception: file dont exists: tests/fixtures/cnab400/retorno-cnab400-bb.ret

/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Format/Identifier.php:14
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Factory.php:67
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/tests/Cnab/Retorno/Cnab400/ArquivoTest.php:31

  1. Cnab\Tests\Retorno\Cnab400\ArquivoTest::testArquivoItauCnab400PodeSerLido
    Exception: file dont exists: tests/fixtures/cnab400/retorno-cnab400-itau.ret

/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Format/Identifier.php:14
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/src/Cnab/Factory.php:67
/var/www/seibibliotecas/vendor/andersondanilo/cnab_php/tests/Cnab/Retorno/Cnab400/ArquivoTest.php:53

There was 1 failure:

  1. Cnab\Tests\Remessa\Cnab240\CaixaTest::testArquivoCaixaCnab240SigcbPodeSerCriado
    [ ] Campo 40:53 do headerLote
    Failed asserting that two strings are equal.
    --- Expected
    +++ Actual
    @@ @@
    -' '
    +'00000000000000'

Autoload

Autoload seguindo os padrões

Campos faltando no exemplo de criação de remessa.

Boa Noite!

Estou tentando utilizar seu componente pela primeira vez para gerar um arquivo de remessa padrão CNAB 240 (Cnab\Remessa\Cnab240\Arquivo) para CAIXA.

Entretanto, seguindo o exemplo do readme.md não consegui gerá-lo.

Aparecem algumas mensagens de erro para campos que não existem no exemplo no método insertDetalhe. Tais como: 'aceite', 'registrado' e 'valor_juros_mora'.

Tentei preenchê-los, mas enrosquei no campo 'valor_juros_mora';
Qualquer valor que coloco ali dá como resultado:

'valor_juros_mora' dont be false or null
C:\Web\UTFPR_Londrina\intranet.ld.utfpr.edu.br\vendor\andersondanilo\cnab_php\src\Cnab\Format\Field.php
linha: 39

Alguma sugestão de como proceder ou é alguma falha ainda não tratada?

Gostaria de uma ajuda

Olá!

Também estou criando uma lib para gerar remessas e ler os retornos....

Estou com um problema, talvez vc saiba a solução. Você esta utilizando algum caracter especial para finalizar o arquivo de remessa? Estou tentando validar uma remessa de teste para o Bradesco. E eles estão me pedindo esse carcter de fechamento do arquivo.....

Nosso número Santander com Digito Verificar

O Nosso número do retorno do banco santander está pegando o digito verificar se o nosso número do boleto é 137 na leitura do retorno aparece como 1376. Desde já obrigado.

Remessa Banco Santander

Gostaria de saber o que é necessário mudar e onde para funcionar a remessa do banco Santander, se alguém quiser ajudar tenho a documentação necessária, porem acho q por conta própria vou demorar muito ate conseguir acertar isso sem ajuda.

Significado dos campos Nosso número e Número documento

Boa noite Anderson

Peço uma orientação, estou montando remessa Banco do Brasil CNAB240, vi que tem limitação de número de caracteres mas não encontrei ainda o significado do uso deles.

Teria maiores detalhes do significado deles ? qual campo da remessa que corresponde aos campos do boleto?

$arquivo->insertDetalhe(array(
'nosso_numero' => '12345',
'numero_documento' => '12345678',

Mensagem na remessa

Estou colocando a mensagem no parâmetro e não tá aparecendo na remessa:

'mensagem' => 'ACEITAR VALOR SUPERIOR OU INFERIOR RECEBER ANTES OU DEPOIS DA DATA DE VENCIMENTO - VALOR REFERENTE A OFERTA UNIFICADA (ÁFRICA/EUROPA) P/ O PROJETO ARCA - E-MAIL :[email protected] - FONE : (61) 3242-2955 - CELULAR (61) 9 8121-7197',

Poderiam me ajudar? Aguardo retorno.

Problema com caminho do pacote cnab_yaml

Sugestão deixar o caminho para o pacote cnab_yaml podendo ser personalizado, eu mesmo uso o framework Laravel

YamlLoad.php - Linha 4
define('CNAB_FORMAT_PATH', dirname(FILE).'/../../../vendor/andersondanilo/cnab_yaml');

Não consigo gerar remessa para a caixa

O erro field 'modalidade_carteira' dont exists me aparece ao executar o código abaixo. Tentei resolver removendo a linha 'modalidade_carteira' => 21, no entanto a mensagem persiste. Como devo gerar a remessa da caixa? Gostaria de um exemplo.

$arquivo = new \Cnab\Remessa\Cnab240\Arquivo($codigo_banco);
        $arquivo->configure(array(
            'data_geracao'  => $movement->getCreationTime(),
            'data_gravacao' => $movement->getCreationTime(), 
            'nome_fantasia' => self::COMPANY_FICTICIOUS, // seu nome de empresa
            'razao_social'  => self::COMPANY_NAME,  // sua razão social
            'cnpj'          => self::COMPANY_CNPJ, // seu cnpj completo
            'logradouro'    => self::COMPANY_ADDRESS,
            'numero'        => self::COMPANY_ADDRESS_NUMBER,
            'bairro'        => self::COMPANY_NEIGHBORHOOD, 
            'cidade'        => self::COMPANY_CITY,
            'uf'            => self::COMPANY_UF,
            'cep'           => self::COMPANY_CEP,
            'agencia'       => self::COMPANY_AGENCY,
            'agencia_dv'    => self::COMPANY_AGENCY_DV,
            'codigo_cedente'         => self::COMPANY_ACCOUNT_NUMBER, // número da conta
            'numero_sequencial_arquivo'     => $seq// digito da conta
        ));

        // você pode adicionar vários boletos em uma remessa
        if($divulgado->isBusiness()) {
            $sacadoTipo = 'cnpj';
        } else {
            $sacadoTipo = 'cpf';
        }


        $arquivo->insertDetalhe(array(
            'codigo_ocorrencia' => 1, // 1 = Entrada de título, futuramente poderemos ter uma constante
            'nosso_numero'      => $nosso_numero,
            'modalidade_carteira'          => 21,
            'registrado' => true,
            'numero_documento'  => $code,
            'especie'           => \Cnab\Especie::CEF_DUPLICATA_DE_PRESTACAO_DE_SERVICOS, // Você pode consultar as especies Cnab\Especie
            'valor'             => $movement->getValue(), // Valor do boleto
            'instrucao1'        => 2, // 1 = Protestar com (Prazo) dias, 2 = Devolver após (Prazo) dias, futuramente poderemos ter uma constante
            'instrucao2'        => 0, // preenchido com zeros
            'sacado_nome'       => $divulgado->getName().' '.$divulgado->getLastName(), // O Sacado é o cliente, preste atenção nos campos abaixo
            'sacado_tipo'       => $sacadoTipo, //campo fixo, escreva 'cpf' (sim as letras cpf) se for pessoa fisica, cnpj se for pessoa juridica
            'sacado_'.$sacadoTipo        => $divulgado->getDocument(),
            'sacado_logradouro' => $divulgado->getAddress(),
            'sacado_bairro'     => $divulgado->getNeighborhood(),
            'sacado_cep'        => $divulgado->getZip(), // sem hífem
            'sacado_cidade'     => $divulgado->getCity()->getName(),
            'sacado_uf'         => $divulgado->getProvince()->getAcronym(),
            'data_vencimento'   => $this->getDue($movement),
            'data_cadastro'     => $movement->getCreationTime(),
            'juros_de_um_dia'     => 0, // Valor do juros de 1 dia'
           // 'data_desconto'       => new DateTime('2014-06-01'),
            'valor_desconto'      => 0, // Valor do desconto
            'prazo'               => 10, // prazo de dias para o cliente pagar após o vencimento
            'taxa_de_permanencia' => '0', //00 = Acata Comissão por Dia (recomendável), 51 Acata Condições de Cadastramento na CAIXA
            'mensagem'            => 'Descrição do boleto',
            'data_multa'          => new DateTime('2014-06-09'), // data da multa
            'valor_multa'         => 10.0 // valor da multa
        ));
        $arquivo->save($remessa_path);

Remessa Bradesco

Olá, gostei muito do seu projeto, porém sinto a necessidade de ter a geração do arquivo de remessa para o banco do Bradesco. Alguém tem isso implementado ou possui algum material que possa me ajudar?

Erro no código da espécie para Caixa Econômica Federal

No código atual do branch master está:

// https://github.com/andersondanilo/CnabPHP/blob/master/src/Cnab/Especie.php#L22
const CEF_DUPLICATA_MERCANTIL = '01';

Acredito que essa informação está errada.

Mas no arquivo de layout da Caixa (http://www.caixa.gov.br/Downloads/cobranca-caixa-manuais/Manual_Leiaute_CNAB240_SIGCB.pdf) os valores reais são:

01 CH Cheque
02 DM Duplicata Mercantil
03 DMI Duplicata Mercantil p/ Indicação
04 DS Duplicata de Serviço
05 DSI Duplicata de Serviço p/ Indicação
06 DR Duplicata Rural
07 LC Letra de Câmbio
08 NCC Nota de Crédito Comercial
09 NCE Nota de Crédito a Exportação
10 NCI Nota de Crédito Industrial
11 NCR Nota de Crédito Rural
12 NP Nota Promissória
13 NPR Nota Promissória Rural
14 TM Triplicata Mercantil
15 TS Triplicata de Serviço
16 NS Nota de Seguro
17 RC Recibo
18 FAT Fatura
19 ND Nota de Débito
20 AP Apólice de Seguro
21 ME Mensalidade Escolar
22 PC Parcela de Consórcio
23 NF Nota Fiscal

Remessa Sicoob

Gostaria de saber se é possível gerar o arquivo de remessa para o banco sicoob.

Eu gerei o arquivo conforme o modelo abaixo e gerou o arquivo corretamente:

$arquivo = new Cnab\Remessa\Cnab400\Arquivo($codigo_banco); $arquivo->configure(array( 'data_geracao' => new DateTime(), 'data_gravacao' => new DateTime(), 'nome_fantasia' => 'NOME_FANTASIA', // seu nome de empresa 'razao_social' => 'RAZAO_SOCIAL', // sua razão social 'cnpj' => 'CNPJ', // seu cnpj completo 'banco' => $codigo_banco, //código do banco 'logradouro' => 'meu endereço', 'numero' => '318', 'bairro' => 'Bela Aliança', 'cidade' => 'Rio do Sul', 'uf' => 'SC', 'cep' => '89161310', 'agencia' => 'xxxx', 'conta' => 'xxxxx', // número da conta 'conta_dac' => 'x', // digito da conta ));

Porém ao importar no sistema cedente do Sicoob ele está informando o seguinte erro:

O número do cliente descrito no arquivo não corresponde ao configurado no sistema

Alguém poderia me ajudar nesta questão? Existe algum padrão específico para a Sicoob?

Obrigado

Arquivo de retorno

Fala Anderson,

Estou tentando processar um arquivo de retorno do Itau (400) e ele só me retorna isso:
{
last_error: false,
_codigo_banco: 341
}

Não dá erro em nenhuma linha, estou tentando ver aonde que ele não consegue processar o resto do arquivo. Se souber como corrigir, manda aí por favor.

Obrigado pelo projeto, é bem maneiro!!

Abraços

Erro requisição de pacote composer

Olá.

Tentei instalar este pacote no windows com o composer, todavia ocorreu um erro:

"The requested package andersondanilo/cnab_php 1.0.0 could not be found"

Aqui está a configuração do composer.json

{
"name": "andersondanilo/cnab_php",
"type": "library",
"description": "Projeto para criar arquivos de remessas e processar arquivos de retorno no formato CNAB",
"keywords": ["boleto", "remessa", "retorno"],
"licence": "MIT",
"authors": [
{
"name": "Anderson Danilo",
"email": "[email protected]"
}
],
"require-dev": {
"phpunit/phpunit": "3.7.",
"phpunit/php-code-coverage": "1.2.
",
"codeclimate/php-test-reporter": "dev-master"
},
"require": {
"andersondanilo/cnab_php": "1.3.",
"andersondanilo/cnab_yaml": "~1.2",
"php": ">=5.3.0",
"mustangostang/spyc": "0.5.
"

},
"autoload": {
    "psr-4": {
        "Cnab\\": "src/Cnab"
    }
},
"config": {
    "bin-dir": "bin"
}

}

Código correto de retorno de liquidação

A função isBaixa esta misturando códigos que não significam baixa de titulo, isto é, são apenas baixados no banco por causa do registro mas não significa que foram pagos

Remessa Bradesco

Já existe com andersondanilo/CnabPHP a opção de gerar a remessa Bradesco?
Obrigado.

Remessa Sicoob (Caixa) CNAB240

Ola Anderson, tranquilo? Estou tentando gerar um arquivo remessa CNAB240 com o layout da CEF porém estou tendo problemas na geração do mesmo. Configurei os "campos extras" que são necessários para esse Layout porém após configurar o campo **agencia_mais_cedente_dv _a função de validação lança um InvalidArgumentException. Setei os valores "8"(string) e 8(numerico) manualmente no campo porém o problema persiste. Nos campos que são utilizados para calcular o valor do _agencia_mais_cedente_dv, utilizei os valores que foram utilizados por você no exemplo de calculo do campo.

Obrigado desde já.

Remessa Banco do Brasil

Olá, estou utilizando o projeto para gerar a remessa para a CEF, porém agora preciso gerar para o Banco do Brasil, alguém já implementou? Algum encaminhamento? Obrigado

Remessa para pagamento

Estou desenvolvendo algumas modificações para permitir gerar remessa de pagamento.
Para isso é necessário fazer algumas mudanças no arquivo.php.
Você acha muito ruim transformar essa classe em abstrata e criar duas classes filhas ArquivoCobranca e ArquivoPagamento?
Pois pelo que vi você tem um factory para ela,e para manter compatibilidade esse factory poderia retornar a arquivoCobranca como default.

O que acha?

Gerando arquivo de remessa CEF 240

Estou tentando gerar um arquivo de remessa para o CEF mais ele da o seguinte erro ...

Fatal error: Uncaught Exception: Configuração "codigo_cedente" need to be set in C:\wamp64\www\remessabanco\vendor\andersondanilo\cnab_php\src\Cnab\Remessa\Cnab400\Arquivo.php on line 53

ja alimentei as configurações com este codigo e ele gera varios outros erros

Fatal error: Uncaught InvalidArgumentException: field 'codigo_cedente' dont exists in C:\wamp64\www\remessabanco\vendor\andersondanilo\cnab_php\src\Cnab\Format\Linha.php on line 15

segue config

$arquivo->configure(array(
'data_geracao' => new DateTime(),
'data_gravacao' => new DateTime(),
'nome_fantasia' => 'Nome Fantasia da sua empresa', // seu nome de empresa
'razao_social' => 'Razão social da sua empresa', // sua razão social
'cnpj' => '111', // seu cnpj completo
'banco' => $codigo_banco, //código do banco
'logradouro' => 'Logradouro da Sua empresa',
'numero' => 'Número do endereço',
'bairro' => 'Bairro da sua empresa',
'cidade' => 'Cidade da sua empresa',
'uf' => 'Sigla da cidade, ex SP',
'cep' => 'CEP do endereço da sua cidade',
'agencia' => '1111',
'conta' => '22222', // número da conta
'operacao' => '1', // digito da conta
'codigo_cedente' => '1979200', // digito da conta
'codigo_cedente_dac' => '10', // digito da conta
));

Dúvida sobre a remessa

Bom dia,

O usuário é que deve incluir o arquivo de remessa no software do banco ou o software já envia diretamente para o banco? Se a resposta é "não", existe como fazer isso?

Desde já agradeço

Remessa CNAB 240 SIGCB

Olá pessoal, tudo bem?

não sou muito familiarizado com O.O. ... e gostaria de saber se alguém pode me auxiliar na implementação da criação de Remessa para Caixa 240 ? como proceder para enviar vários boletos ao mesmo tempo ??

Arquivo Remessa 240 CEF

Olá,

Estou tentando gerar um arquivo remessa para a Caixa, usando formato 240, mas quando uso o comando:
$arquivo->save($pasta_destino.$nome_arquivo);

Ele sempre me retorna erro dizendo que o campo "codigo_cedente_dv" é nulo ou falso.

Já preenchi esse campo com um valor numérico válido, e mesmo assim ele continua me retornando o erro.

O que posso estar fazendo errado?

$codigo_banco = Cnab\Banco::CEF; $arquivo = new Cnab\Remessa\Cnab240\Arquivo($codigo_banco); $arquivo->configure(array( 'data_geracao' => new DateTime(), 'data_gravacao' => new DateTime(), 'nome_fantasia' => $empresa['razao'], 'razao_social' => $empresa['razao'], 'operacao' => '', 'numero_sequencial_arquivo' => 1, 'cnpj' => $empresa['cnpj_cpf'], 'banco' => $codigo_banco, 'agencia' => $primeiro['cod_agencia'], 'agencia_dv' => 0, 'conta' => $primeiro['nro_conta'], 'conta_dac' => $primeiro['dv'], 'codigo_cedente'=> $primeiro['cod_cedente'], 'codigo_cedente_dv' => 0,//$primeiro['cod_cedente_dv'], 'logradouro' => $empresa['logradouro']." ".$empresa['endereco'], 'numero' => $empresa['numero'], 'bairro' => $empresa['bairro'], 'cidade' => $empresa['cidade'], 'uf' => $empresa['cod_estado'], 'cep' => soNumero($empresa['cep']) ));

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'codigo_cedente_dv dont be null or false' in /Sites/EasyWeb/vendor/andersondanilo/cnab_php/src/Cnab/Remessa/Cnab240/Arquivo.php:437 Stack trace: #0 /Sites/EasyWeb/vendor/andersondanilo/cnab_php/src/Cnab/Remessa/Cnab240/Arquivo.php(497): Cnab\Remessa\Cnab240\Arquivo->getText() #1 /Sites/EasyWeb/gera_arqremessa.php(746): Cnab\Remessa\Cnab240\Arquivo->save('temp/50712/RM20...') #2 {main} thrown in /Sites/EasyWeb/vendor/andersondanilo/cnab_php/src/Cnab/Remessa/Cnab240/Arquivo.php on line 437

Sispag itau

Boa tarde pessoal.
Alguem ja utilizou este projeto para o sispag do itau ao inves de cobrança?
Quando falo sispag estou falando no sistema de envio de pagamentos. Boletos, transferencias, guias de imposto etc.
Outra duvida que fiquei tambem é se o sispag eh 400 ou 240 pois na net achei apenas manuais 240
Abraco

Instalação

Olá colegas tudo bem !
Estou querendo usar o código para remessa, eu tentei testar no meu wamp e deu erro de página, dai li o documentário do script vi que tem que instalar o composer, mas e no servidor de hospedagem não tem como instalar o composer e no servidor linux funciona também?

não encontrei esse arquivo vendor !

Obrigado !

Problemas ao LER Retorno Caixa

Olá, estou tentanto emitir uma remessa para a Caixa, até ai ela gera normal.
Porem ao receber o retorno vem REMESSA-REJEITADA..
estou fazendo assim

    $codigoBanco = \Cnab\Banco::CEF;
    $cnabFactory = new \Cnab\Factory();
    $arquivo = $cnabFactory->createRemessa($codigoBanco, 'cnab240', 'sigcb');

    $arquivo->configure(array(
        'data_geracao' => Carbon::now(),
        'data_gravacao' => Carbon::now(),
        'nome_fantasia' => 'LEONARDO RODRIGUES MENEGUETE',
        'razao_social' => 'LEONARDO RODRIGUES MENEGUETE',
        'cnpj' => '19396562000124',
        'banco' => $codigoBanco, //código do banco
        'logradouro' => 'Rua José de Alencar',
        'numero' => '1758',
        'bairro' => 'Novo Panorama Cidade',
        'cidade' => 'Sarandi',
        'uf' => 'PR',
        'cep' => '87113150',
        'conta' => '00009571-4',
        'operacao' => '003',
        'agencia' => '0395',
        'agencia_dv' => '0',
        'codigo_cedente' => '628238',
        'numero_sequencial_arquivo' => 1,
    ));

    $all = [];

    if(!empty($data)){
        foreach ($data as $key => $order) {
            // dd($ord(string)er);
         // você pode adicionar vários boletos em uma remessa
            $arquivo->insertDetalhe(array(
                'codigo_ocorrencia' => 1, // 1 = Entrada de título, futuramente poderemos ter uma constante
                'nosso_numero' => $order['order_number'],
                'numero_documento' => $order['order_number'],
                'carteira' => '1',
                'especie' => \Cnab\Especie::CNAB240_OUTROS, // Você pode consultar as especies Cnab\Especie::CEF_OUTROS, futuramente poderemos ter uma tabela na documentação
                'aceite' => 'N', // "S" ou "N"
                'registrado' => true,
                'modalidade_carteira' => '24',
                'valor' => 100.39, // Valor do boleto
                'instrucao1' => '3', // 1 = Protestar com (Prazo) dias, 2 = Devolver após (Prazo) dias, futuramente poderemos ter uma constante
                'instrucao2' => '', // preenchido com zeros
                'sacado_razao_social' => 'Nome do cliente', // O Sacado é o cliente, preste atenção nos campos abaixo
                'sacado_tipo' => 'cpf', //campo fixo, escreva 'cpf' (sim as letras cpf) se for pessoa fisica, cnpj se for pessoa juridica
                'sacado_cnpj' => $order['billing_address']['cpf'],
                'sacado_logradouro' => $order['customer']['shipping_address']['address_1'],
                'sacado_bairro' => $order['customer']['shipping_address']['neighborhood'],
                'sacado_cep' => $order['shipping_address']['postcode'],
                'sacado_cidade' => $order['shipping_address']['city'],
                'sacado_uf' => $order['shipping_address']['state'],
                'data_vencimento' => Carbon::parse($order['updated_at'])->addDays(3),
                'data_cadastro' => Carbon::parse($order['updated_at']),
                'juros_de_um_dia' => 0, // Valor do juros de 1 dia'
                'data_desconto' => null,
                'valor_desconto' => 0, // Valor do desconto
                'prazo' => 3, // prazo de dias para o cliente pagar após o vencimento
                'taxa_de_permanencia' => '0', //00 = Acata Comissão por Dia (recomendável), 51 Acata Condições de Cadastramento na CAIXA
                'mensagem' => 'Descrição do boleto',
                'data_multa' => null, // data da multa
                'valor_multa' => 0, // valor da multa
            ));
        }   
    }
    echo $arquivo->getText();

Estou usando o sistema da caixa desktop COBCAIXA

Erro de Instalação

sabem pq da esse erro na hora de instalar?

Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package andersondanilo/cnab_php No version set (parsed as 1.0.0) is satisfiable by andersondanilo/cnab_php[No version set (parsed as 1.0.0)] but these conflict with your requirements or minimum-stability.

ERRO DE INSTALAÇÃO

Problem 1
- The requested package andersondanilo/cnab_php No version set (parsed as 1.0.0) is satisfiable by andersondanilo/cnab_php[No version set (parsed as 1.0.0)] but these conflict with your requirements or minimum-stability.

já tentei usar composer self-update , composer init
Tentei, todos os tipos não de comandos e não funcionou.

Problema com valor_titulo

Arquivo: andersondanilo/cnab_php/src/Cnab/Format/Field.php:52
'Exception' with message ''valor_titulo' have length '27', but field need length 15'

Cnab\Format\Field->set(70.45999999999999)

Remessa Santander

Opa, tudo bom Anderson? Então, estou tentando fazer um arquivo de remessa para o Santander, mas o gerente do banco me informou alguns problemas. Você tem a remessa pro santander completamente implementada no seu pacote? Só para saber se eu que estou errando aqui ou se existe ainda pendencias nesse projeto para o banco supracitado.

Utilizar composer

Utilizar composer para carregar os repositórios cnab_yaml e spyc

Não tem suporte ao retorno BB

Na página inicial, em Funcionalidades, você fala que tem suporte ao Banco do Brasil Versão Retorno 400, porém no código, classe Cnab\Banco não tem a constante referente ao mesmo (código 001). Ao tentar processar um arquivo de retorno do BB, aparece a seguinte mensagem: "Banco não suportado".

Duvida processamento de Remessa Itaú [teste]

Ola a todos, gostaria de tira uma duvida de alguém que já usa o sistema para envio de remessas para o Itaú, gerei uma remessa com alguns boletos de teste e envie no sistema do Itaú no modo de teste, após o processamento o foi informado que ocorreu um erro descrito abaixo, pelo que atendi algo relacionado a agencia/conta, mas as mesmas estão corretas e já uso para receber boleto (sem registro atualmente), alguém já teve este problema? Fiz testes usando a carteira 109.

Arquivo de COBRANCA - 400 - 02031618.REM Enviado em - 01/03/2016
Agência/Conta: 884X-1589Y
Quantidade de Registro(s): 4
AG/CTA S/ CAD.INTERCAMBIO/NÃO PERTENCE AO GRUPO CO Conteúdo: 884X001589Y
(*) Favor checar arquivo retorno no próximo dia útil para detalhamento do resultado do processamento.

Erro em um if no CnabPHP/src/Cnab/Remessa/Cnab240/Arquivo.php

Olá, fiz um fork do CnabPHP para implementar o suporte ao Sicoob. Deem uma olhada na linha 95 do arquivo "CnabPHP/src/Cnab/Remessa/Cnab240/Arquivo.php", se não estou enganado nessa linha deveria ser uma verificação de valores e não uma atribuição.

Desde já obrigado!

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.