Open NettoPassaro opened 7 years ago
Pq está fechado se o erro ocorro? O que eu não entendi?
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'codigo_cedente_dv dont be null or false' in
Olá @pleiadess ,
Eu não tinha fechado... ou se fechei, foi sem intenção.
Obrigado, já reabri.
Abraços.
Por fim quebrei a cabeça mais um pouco e resolvi o problema:
A confusão toda é pq o link https://github.com/andersondanilo/CnabPHP/wiki/Criando-um-arquivo-de-remessa mostra um exemplo pro Itau e para CEF precisamos de mais campos.
Usem isso:
`<?php include 'vendor/autoload.php';
$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' => '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 'conta_dac' => '2', // digito da conta 'codigo_cedente' => '123123', 'codigo_cedente_dv' => '4', 'agencia_dv' => '3', 'operacao' => '012', 'numero_sequencial_arquivo' => 1, ));
// 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' => '1234567', 'numero_documento' => '1234567', 'carteira' => '109', 'modalidade_carteira' => '21', 'especie' => Cnab\Especie::CEF_DUPLICATA_DE_PRESTACAO_DE_SERVICOS, // Você pode consultar as especies Cnab\Especie 'aceite' => 'N', // "S" ou "N" 'registrado' => false, 'valor' => 100.39, // 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' => '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_cpf' => '111.111.111-11', 'sacado_logradouro' => 'Logradouro do cliente', 'sacado_bairro' => 'Bairro do cliente', 'sacado_cep' => '11111222', // sem hífem 'sacado_cidade' => 'Cidade do cliente', 'sacado_uf' => 'SP', 'data_vencimento' => new DateTime('2014-06-08'), 'data_cadastro' => new DateTime('2014-06-01'), 'juros_de_um_dia' => 0.10, // Valor do juros de 1 dia' 'data_desconto' => new DateTime('2014-06-01'), 'valor_desconto' => 10.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 ));
// para salvar $arquivo->save('cef.txt'); `
Alem disso a correção do luizjustino tem que ser aplicada:
Editem Arquivo.php e troquem null por 'sigcb' : public function __construct($codigo_banco, $layoutVersao = 'sigcb')
Fiz assim e finalmente consegui gerar o arquivo. Homologar é outra história.
Não tem necessidade de editar o Arquivo.php. Você pode passar esse valor no construtor do arquivo $arquivo = new \Cnab\Remessa\Cnab240\Arquivo($codigoBanco, 'sigcb');
Fizemos assim e já foi homologado
@pleiadess você conseguiu homologar essa remessa?
@danielcembranelli, nós conseguimos homologar
@murilosandiego o banco devolveu para: Segmento P: 222/223 – 30 dias; · Segmento Q: 137 tem que constar nome da cidade; · Segmento Q: 170 não pode ter sacador/avalista;
Teria como você esta enviando para eu olhar?
$codigoBanco = \Cnab\Banco::CEF; $arquivo = new \Cnab\Remessa\Cnab240\Arquivo($codigoBanco, 'sigcb'); $arquivo->configure(array( 'data_geracao' => $hoje, 'data_gravacao' => $hoje, 'nome_fantasia' => $this->franchise->getName())), // seu nome de empresa 'razao_social' => $this->franchise->getName(), // sua razão social 'cnpj' => $this->franchise->getCnpj(), // seu cnpj completo 'banco' => $codigoBanco, //código do banco 'logradouro' => $this->franchise->getAddress()->getStreet())), 'numero' => $this->franchise->getAddress()->getNumber())), 'bairro' => $this->franchise->getAddress()->getDistrict())), 'cidade' => $this->franchise->getAddress()->getCity())), 'uf' => $this->franchise->getAddress()->getState())), 'cep' => $this->franchise->getAddress()->getZipCode(), 'agencia' => $accountBoleto->getAgency(), 'agencia_dv' => $accountBoleto->getAgencyDigits(), 'operacao' => $accountBoleto->getOperacao(), 'conta' => $accountBoleto->getNumber(), // número da conta 'conta_cedente_dv' => $accountBoleto->getDigits(), // digito da conta 'codigo_cedente' => $accountBoleto->getCodBeneficiario(), 'numero_sequencial_arquivo' => $sequencialRemessa));
$arquivo->insertDetalhe(array( 'modalidade_carteira' => '14', //14 (título Registrado emissão Beneficiário) 'aceite' => 'N', 'registrado' => 1, 'codigo_ocorrencia' => 1, // 1 = Entrada de título, futuramente poderemos ter uma constante 'nosso_numero' => $parcel->getNossoNumero(), 'numero_documento' => $parcel->getNossoNumero(), 'especie' => $accountBoleto->getEspecie(), // Você pode consultar as especies Cnab\Especie 'valor' => $parcel->getValue(), // Valor do boleto 'instrucao1' => 0, 'instrucao2' => 0, 'sacado_nome' => $client->getName(), 'sacado_tipo' => $tipo, //campo fixo, escreva 'cpf' (sim as letras cpf) 'sacado_cpf' => $documento, 'sacado_logradouro' => $client->getAddress()->getStreet()), 'sacado_bairro' => $client->getAddress()->getDistrict()), 'sacado_cep' => $client->getAddress()->getZipCode(), // sem hífem 'sacado_cidade' => $client->getAddress()->getCity()), 'sacado_uf' => $client->getAddress()->getState(), 'data_vencimento' => $parcel->getDueDate(), 'data_cadastro' => $parcel->getCreated(), 'juros_de_um_dia' => $this->calculaValorMoraMulta($parcel->getValue()), 'valor_desconto' => $parcel->getValueDiscountUntilDueDay(), // Valor do desconto 'data_desconto' => $parcel->getDueDate(), 'prazo' => 0, // prazo de dias para o cliente pagar após o vencimento 'taxa_de_permanencia' => '0', / 'mensagem' => ' ', 'data_multa' => $this->calculaDataMulta($parcel->getDueDate()), 'valor_multa' => $this->calculaValorMoraMulta($parcel->getValue()), 'baixar_apos_dias' => 120, 'identificacao_distribuicao' => 0 ), $this->codMovRemessa);
Muito obrigado!!!
Ainda não começamos o processo, mas até o final do mês estará homologado. ᐧ
2017-02-07 22:23 GMT-02:00 Daniel Cembranelli notifications@github.com:
@pleiadess https://github.com/pleiadess você conseguiu homologar essa remessa?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/andersondanilo/CnabPHP/issues/64#issuecomment-278189372, or mute the thread https://github.com/notifications/unsubscribe-auth/AC0c-3412UlT_jluKNTDHEySlb3cTEBjks5raQsDgaJpZM4KFSch .
@NettoPassaro eu estou criando a remessa e testando com o validador caixa, e esta acusando erro
como se a linha não tivesse 240 posições.
estou usando a versão "andersondanilo/cnab_php": "1.3.*"
Alguém mais fez esse teste com o validador caixa ?
OBS: Vou marcar aqui pra garantir que o pessoal receba a notificação.
@danielcembranelli @pleiadess
@alvarolordelo, retira o caractere "~" da palavra Amanhã
@murilosandiego coloquei uma função na minha classe pra remover acentos e deu certo, obrigado! Há mais pontos a se modificar ? vocês tem algum grupo pra conversar ? slack ? Eu tenho algumas duvidas e sugestões, e gostaria de saber de vocês se podemos fazer um hangout etc.
@NettoPassaro ainda está com o problema ?
@alvarolordelo, acredito que não há nada para modificar. Até então não temos nenhum grupo, mas é sempre bom trocarmos ideia.
+55 75 99169-0198 whats e phone. grupo do whats ou hangouts ?? o que o pessoal achar bom. tem outro repo bem mais completo sobre Cnab, que gostaria de conversar sobre.
Por mim pode ser whats ou telegram, entre os dois prefiro telegram
@alvarolordelo, está aparecendo uma foto de uma mulher no seu whats. É este número mesmo?
Errei o numero acima, trocar o ddd de 71 pra 75
Funcionou tranquilo aqui com a ajuda desses comentários. Essa semana realizo a homologação e volto aqui pra comentar.(volto mesmo! kkk)
Valeu pessoal! A ajuda de vcs vale ouro! Tudo funcional aqui.
Registro Tipo 1
Campo 07.1 - Nº da Versão do Layout do Lote - Posição 14 até 16 Preencher com "060" Registro tipo P
Campo 18.3P - Identificação da Entrega do Boleto - Posição 62 até 62 Encontrado: 2 Esperado: 0
Campo 27.3P - Código do Juros de Mora - Posição 118 até 118 Encontrado: "1" Esperado: "3"
Campo 28.3P e 293P - Juros - Posição 119 até 141 Preencher com Zeros
Campo 38.3P - Código para Baixa/Devolução - Posição 224 até 224 Encontrado: "0" Esperado: "1"
Campo 39.3P - Número de Dias para Baixa/Devolução - Posição 225 até 227 Preencher com "030"
Registro Q
Campo 17.3 Q, 18.3Q e 19.3Q - Dados do Sacador/ Avalista - Posição 154 até 209
Alguem me ajuda :(
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