Open RafaVitorSilva opened 4 years ago
Ola @RafaVitorSilva , parece um erro de autoload, tente carregar o autoload do exemploremessa.php https://github.com/QuilhaSoft/OpenCnabPHP/blob/21745e1df8e3e377ae1961a78933ef536ca02316/samples/ExemploRemessa.php#L30 talvez resolva
bom dia, Desculpe a demora @Rctnet e obrigado pela ajuda. eu fiz isso porem me retorna o mesmo erro
PHP Fatal error: Uncaught Error: Class 'CnabPHP\resources\generico\retorno\L040\Generico0' not found in /Volumes/Dados/dev/OrionFast07/app/lib/CnabPHP/resources/B033/retorno/L040/Registro0.php:31
segue o meu codigo
public function GerarCNAB240($contas_receber,$ContaBancaria){
require_once 'app/lib/CnabPHP/autoloader.php';
TTransaction::open('permission');
$SytemUnit = new SystemUnit(TSession::getValue('userunitid'));
$SystemUnitInfo = $SytemUnit->get_system_unit_info();
TTransaction::close();
//todo orion marcar
$tipo_cobranca = 1;
$arquivo = $this->onArquivo($SytemUnit, $SystemUnitInfo, $ContaBancaria);
// $lote = $arquivo->addLote(array('tipo_servico'=> $tipo_cobranca)); // tipo_servico = 1 para cobrança registrada, 2 para sem registro
//
// $lote->inserirDetalhe(array(
// //Registro 3P Dados do Boleto
// 'nosso_numero' => '1800001', // numero sequencial de boleto
// //'nosso_numero_dv' => 1, // pode ser informado ou calculado pelo sistema
// 'parcela' => '01',
// 'modalidade' => '1',
// 'tipo_formulario' => '4',
// 'codigo_carteira' => '1', // codigo da carteira
// 'carteira' => '1', // codigo da carteira
// 'seu_numero' => "DEV180001",// se nao informado usarei o nosso numero
// 'data_vencimento' => '2018-04-30', // informar a data neste formato AAAA-MM-DD
// 'valor' => '5.00', // Valor do boleto como float valido em php
// 'cod_emissao_boleto'=> '2', // tipo de emissao do boleto informar 2 para emissao pelo beneficiario e 1 para emissao pelo banco
// 'especie_titulo' => "DM", // informar dm e sera convertido para codigo em qualquer laytou conferir em especie.php
// 'data_emissao' => '2018-04-05', // informar a data neste formato AAAA-MM-DD
// 'codigo_juros' => '2', // Taxa por mês,
// 'data_juros' => '2018-04-30', // data dos juros, mesma do vencimento
// 'vlr_juros' => '0000000000001.00', // Valor do juros/mora informa 1% e o sistema recalcula a 0,03% por
// // Você pode inserir desconto se houver, ou deixar em branco
// //'codigo_desconto' => '1',
// //'data_desconto' => '2018-04-15', // inserir data para calcular desconto
// //'vlr_desconto' => '0', // Valor do desconto
// //'vlr_IOF' => '0',
// 'protestar' => '1', // 1 = Protestar com (Prazo) dias, 3 = Devolver após (Prazo) dias
// 'prazo_protesto' => '90', // Informar o numero de dias apos o vencimento para iniciar o protesto
// 'identificacao_contrato' => "Contrato 32156",
//
//
// // Registro 3Q [PAGADOR]
// 'tipo_inscricao' => '1', //campo fixo, escreva '1' se for pessoa fisica, 2 se for pessoa juridica
// 'numero_inscricao' => '638.035.884-64',//cpf ou ncpj do pagador
// 'nome_pagador' => "Elias Alves", // O Pagador é o cliente, preste atenção nos campos abaixo
// 'endereco_pagador' => 'Rua Esquerda, 42',
// 'bairro_pagador' => 'Bairro Queluz',
// 'cep_pagador' => '36400-000', // com hífem
// 'cidade_pagador' => 'Conselheiro Lafaiete',
// 'uf_pagador' => 'MG',
//
// // Registro 3R Multas, descontos, etc
// // Você pode inserir desconto se houver, ou deixar em branco, mas quando informar
// // deve preencher os 3 campos: codigo, data e valor
// 'codigo_multa' => '2', // Taxa por mês
// 'data_multa' => '2018-04-30', // data dos juros, mesma do vencimento
// 'vlr_multa' => '0000000000002.00', // Valor do juros de 2% ao mês
//
// // Registro 3S3 Mensagens a serem impressas
// 'mensagem_sc_1' => "Após venc. Mora 0,03%/dia e Multa 2,00%",
// 'mensagem_sc_2' => "Não conceder desconto",
// 'mensagem_sc_3' => "Sujeito a protesto após o vencimento",
// 'mensagem_sc_4' => "VelvetTux Soluções em Sistemas <('')",
//
// ));
//
$remessa = utf8_decode($arquivo->getText()); // observar a header do seu php para não gerar comflitos de codificação de caracteres;
// Grava o arquivo
$base_dir = dir('./files/'.TSession::getValue('userunitid').'/remessas/'.$ContaBancaria->id_conta_bancaria);
file_put_contents($this->verificaPastas($base_dir)->path.$arquivo->getFileName(), $remessa);
verificaPastas()->close();
}
private function onArquivo($SystemUnit,$SystemUnitInfo,$ContaBancaria,$ambiente = 'T',$layout = 'cnab240'){
$cnpj = $SystemUnitInfo->cnpj;
$cnpj = str_replace('.', '', $cnpj);
$cnpj = str_replace('-', '', $cnpj);
$array_agencia = explode('-', $ContaBancaria->agencia);
$array_conta = explode('-', $ContaBancaria->conta_bancaria);
$array_codigo_beneficiario = explode('-', $ContaBancaria->codigo_beneficiario);
$arquivo = new \CnabPHP\Remessa($ContaBancaria->codigo_febraban,$layout,array(
//Informações da emrpesa recebedora
'tipo_inscricao' => '2', // 1 para cpf, 2 cnpj
'numero_inscricao' => $cnpj, // seu cpf ou cnpj completo
'agencia' => $array_agencia[0], // agencia sem o digito verificador
'agencia_dv' => $array_agencia[1], // somente o digito verificador da agencia
'conta' => $array_conta[0], // número da conta
'conta_dv' => $array_conta[1], // digito da conta
'nome_empresa' => $SystemUnit->name, // seu nome de empresa
'numero_sequencial_arquivo' => $ContaBancaria->lote_envio,
'codigo_beneficiario' => $array_codigo_beneficiario[0], // codigo fornecido pelo banco
'codigo_beneficiario_dv'=> $array_codigo_beneficiario[1], // codigo fornecido pelo banco
'situacao_arquivo' =>$ambiente // use T para teste e P para produção
));
return $arquivo;
}
Olá,
Provavelmente você deve ter resolvido o problema, devido ao tempo do envio. Mas tente comparar seu código com engine.php do framework puro, pode ser que tenha um problema nessa parte do código. Lembrando que o engine.php participa do projeto de carregamento da classe, que é justamente o erro (não encontrar a classe)
eu inclui a lib no meu sistema, porem esta apresentando erro quando tento cria arquivo para o sicoob
eu estou utilizando o framework adianti
o log do php apresenta o seguinte erro
`20-Nov-2020 17:55:25 America/Sao_Paulo] PHP Stack trace: [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 1. {main}() /Volumes/Dados/dev/OrionFast07/engine.php:0 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 2. TApplication::run() /Volumes/Dados/dev/OrionFast07/engine.php:68 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 3. Adianti\Core\AdiantiCoreApplication::run() /Volumes/Dados/dev/OrionFast07/engine.php:27 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 4. ContaReceberGeracaoCnab240Form->show() /Volumes/Dados/dev/OrionFast07/lib/adianti/core/AdiantiCoreApplication.php:82 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 5. ContaReceberGeracaoCnab240Form->show() /Volumes/Dados/dev/OrionFast07/lib/adianti/base/AdiantiStandardCollectionTrait.php:428 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 6. ContaReceberGeracaoCnab240Form->run() /Volumes/Dados/dev/OrionFast07/lib/adianti/control/TPage.php:213 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 7. call_user_func:{/Volumes/Dados/dev/OrionFast07/lib/adianti/control/TPage.php:59}() /Volumes/Dados/dev/OrionFast07/lib/adianti/control/TPage.php:59 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 8. ContaReceberGeracaoCnab240Form->onGerarRemessa() /Volumes/Dados/dev/OrionFast07/lib/adianti/control/TPage.php:59 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 9. ContaReceberControl->GerarCNAB240() /Volumes/Dados/dev/OrionFast07/app/control/modulo/conta_receber/ContaReceberGeracaoCnab240Form.php:448 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP 10. ContaReceberControl->onArquivo() /Volumes/Dados/dev/OrionFast07/app/control/controle/conta_receber/ContaReceberControl.php:52 [20-Nov-2020 17:55:25 America/Sao_Paulo] PHP Fatal error: Uncaught Error: Class 'CnabPHP\resources\generico\retorno\L040\Generico0' not found in /Volumes/Dados/dev/OrionFast07/app/lib/CnabPHP/resources/B033/retorno/L040/Registro0.php:31 Stack trace:
0 /Volumes/Dados/dev/OrionFast07/lib/adianti/core/AdiantiApplicationLoader.php(82): require_once()
1 /Volumes/Dados/dev/OrionFast07/lib/adianti/core/AdiantiCoreLoader.php(78): Adianti\Core\AdiantiApplicationLoader::autoload('Registro0')
2 [internal function]: Adianti\Core\AdiantiCoreLoader::autoload('Registro0')
3 /Volumes/Dados/dev/OrionFast07/app/lib/CnabPHP/RemessaAbstract.php(29): spl_autoload_call('CnabPHP\resourc...')
4 /Volumes/Dados/dev/OrionFast07/app/lib/CnabPHP/Remessa.php(31): CnabPHP\RemessaAbstract->__construct('756', 'cnab240', Array)
5 /Volumes/Dados/dev/OrionFast07/app/control/controle/conta_receber/ContaReceberControl.php(138): CnabPHP\Remessa->__construct('756', 'cnab240', Array)
6 /Volumes/Dados/dev/OrionFast07/app/control/controle/conta_receber/ContaReceberControl.php(52): ContaReceberControl in /Volumes/Dados/dev/OrionFast07/app/lib/CnabPHP/resources/B033/retorno/L040/Registro0.php on line 31`
PHP Fatal error: Uncaught Error: Class 'CnabPHP\resources\generico\retorno\L040\Generico0' not found in /Volumes/Dados/dev/OrionFast07/app/lib/CnabPHP/resources/B033/retorno/L040/Registro0.php:31
analisando o erro ele, informa que não localizou a classe, porem como não estou utilizando a parte de retorno, e o erro seria no autoloader do framework pelo oque eu entendi.
preciso de ajuda para resolver esse problema, para implementar
Obrigado.