Closed Lukaum closed 2 years ago
O erro se encontra no construtor da classe ServicoDePostagem. Conforme testes, o mesmo recebe no último elemento do $serviceCode um 0 do tipo inteiro, ao passar pelo sprintf é formatado os 0 restantes e da o parse pra string:
...\vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:int 0
...vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:string '00000' (length=5)
Agora a questão é de onde está vindo esse 0. Utilizei ambos os testes abaixo e mesmo assim obtive o mesmo resultado (com o erro):
//Convencional conforme exemplo
$params->setServicosPostagem(\PhpSigep\Model\ServicoDePostagem::getAll());
//Outra forma
foreach (\PhpSigep\Model\ServicoDePostagem::getAll() as $key => $s) {
$codigo = $s->getCodigo();
$this->servicos[$codigo] = $codigo;
}
$params->setServicosPostagem($this->servicos);
//Essa também
$params->setServicosPostagem(\PhpSigep\Model\ServicoDePostagem::getFromArray($this->servicos));
Saliento que os demais serviços (pelo que contei os 48) aparentemente estão sendo retornados conforme o esperado:
//Últimos retornados antes do erro
...\vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:string '04227' (length=5)
...\vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:string '04235' (length=5)
...\vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:string '04235' (length=5)
...\vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:string '04391' (length=5)
...\vendor\stavarengo\php-sigep\src\PhpSigep\Model\ServicoDePostagem.php:179:string '04391' (length=5)
This issue has been automatically marked as stale because it has not had any recent activity. It will be closed in 5 days if no further activity occurs.
This issue has been automatically closed because it has not had any recent activity. If you have a question or comment, please open a new issue.
Utilizando da forma com que consta nos exemplos, estou obtendo um erro referente a inexistência do código do serviço.
$params->setServicosPostagem(PhpSigep\Model\ServicoDePostagem::getAll());
Seria possível consultar todos os serviços disponíveis, conforme o getAll()? Ou há a necessidade de se passar somente um serviço? Pergunto, pois nas issues fechadas não há essa informação, ficando vaga a solução para o problema.
Meu código:
Erro: Fatal error: Uncaught PhpSigep\Model\Exception: There is no service with the code "0"...