andersondanilo / cnabphp Goto Github PK
View Code? Open in Web Editor NEWProjeto para criar arquivos de remessas e processar arquivos de retorno no formato CNAB, utilizado nos bancos geralmente para boleto bancário.
License: MIT License
Projeto para criar arquivos de remessas e processar arquivos de retorno no formato CNAB, utilizado nos bancos geralmente para boleto bancário.
License: MIT License
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)
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'];
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
Boa noite pessoal. Este projeto faz o retorno Bradesco?
Obrigado.
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!
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
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);
Olá,
já foi pensado em implementar a geração de arquivo de remessa para débito em conta?
É viável ajustar os parâmetros da biblioteca, de tal forma que consigamos trabalhar com troca de arquivos em PAGAMENTO RECORRENTE?
Aqui está documentado o padrão do arquivo de troca:
https://drive.google.com/open?id=0Bzf3ygkvA2ijeUEyeTV6dF82Q3c&authuser=0
Resolvi. Vou iniciar a elaboração do YAML, e retorno em pull pro projeto assim que possível.
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 para carregar os repositórios cnab_yaml e spyc
Ao validar o layout do arquivo de remessa ele me retorno essa mensagem.
Registro: detalhe
Linha: 2
Posição 001 - Campo: Identificação do Registro - Conteúdo fixo difere do esperado. (2)
O que deve ser feito?
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
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:
/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
/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
/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
/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
/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
/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:
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
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.
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
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 ??
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?
Olá, alguém já implementou para o banco Banrisul, é um dos bancos mais usados no meu estado e estou precisando para implementar em meu projeto.
Obrigado.
Se alguém se disponibilizar segue link da documentação.
https://www.banrisul.com.br/bob/data/CobrancaEletronicaBanrisul_layout_pdr_Febraban400_vrs09022009.pdf
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".
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"
}
}
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.
Formatar o código utilizando os padrões das PRS.
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.
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?
Ao fazer a homologação do arquivo remessa, a caixa reprovou porque o nome do banco esta escrito errado, atualmente esta C ECON FEDERAL o coreto seria CAIXA ECONOMICA FEDERAL
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');
Já existe com andersondanilo/CnabPHP a opção de gerar a remessa Bradesco?
Obrigado.
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?
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
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',
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?
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
Autoload seguindo os padrões
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?
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!
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
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
));
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
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.....
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.
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 !
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
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",
);
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?
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.
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.
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á.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.