├── .github ├── stale.yml └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE.txt ├── README.md ├── composer.json ├── composer.lock ├── exemplos ├── bootstrap-exemplos.php ├── buscaCliente.php ├── calcPrecoPrazo.php ├── clique-retire.php ├── consultaCep.php ├── consultaColeta.php ├── fechaPlpVariosServicos.php ├── geraChancelas.php ├── geraDigitoVerificadorEtiquetas.php ├── helper-criar-pre-lista-a4.php ├── helper-criar-pre-lista.php ├── imprimirAvisoRecebimento.php ├── imprimirEtiquetas.php ├── imprimirEtiquetas2016.php ├── imprimirEtiquetas2018.php ├── imprimirEtiquetasA4.php ├── imprimirPlp.php ├── listar-agencias-clique-retire.php ├── logo-etiqueta-2016.png ├── logo-etiqueta.png ├── pedido-informacao.php ├── rastreamentoDeObjetos.php ├── solicitarEtiquetas.php ├── solicitarPostagemReversa.php └── verificaDisponibilidadeServico.php ├── manual ├── 06-08-2019-ID_CORREIOS │ ├── 1 Cliente - Cadastrar usuario Pessoa Juridica.pdf │ ├── 2 Cliente - Cadastrar senha em componente.pdf │ └── 3 Cliente - Conceder_permissao_a_pessoa_fisica.pdf ├── 06-08-2019-Manual_de_Implementacao_do_Web_Service_Logistica_Reversa.pdf ├── 2016-05-Manual_de _Implementacao_do_Web_Service_LR.pdf ├── 2016-06-17-Guia_Tecnico_Rastreamento_XML_Cliente-Versao_e-commerce_v_1.9.pdf ├── 2017-05-02-Guia_Tecnico_Rastreamento_XML_Cliente-Versao_e-commerce.pdf ├── 2017-10-05-Manual_de_Implementacao_do_Calculo_Remoto_de_Precos_e_Prazos_versao_2.0.pdf ├── 2018-04-24-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf ├── 2018-04-24-Termo de Condicoes de Prestacao de Servicos de Encomendas Nacionais.pdf ├── 2018-06-20-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf ├── 2018-10-24-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf ├── 2020-08-28-Documentação_API_WS_Fale_Conosco_Captação_Registro_Manifestação.pdf ├── Docs Apoio.zip ├── Rastreamento-de-Objetos-SROXML_28fev14.pdf ├── SCPP_manual_implementacao_calculo_remoto_de_precos_e_prazos.pdf ├── v1-Manual de Implementacao do Web Service SIGEPWEB e Logistica Reversa.pdf ├── v2-Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf └── v3-2014-10-08-Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf ├── phpstan-baseline.neon ├── phpstan.neon ├── phpunit.xml ├── src └── PhpSigep │ ├── Bootstrap.php │ ├── BootstrapException.php │ ├── Cache │ ├── Factory.php │ ├── InvalidArgumentException.php │ ├── Options.php │ ├── Storage │ │ └── Adapter │ │ │ ├── AbstractAdapter.php │ │ │ ├── AdapterOptions.php │ │ │ ├── Exception │ │ │ ├── InvalidArgumentException.php │ │ │ └── RuntimeException.php │ │ │ ├── FileSystem.php │ │ │ └── FileSystemOptions.php │ └── StorageInterface.php │ ├── Config.php │ ├── DefaultStdClass.php │ ├── ErrorHandler.php │ ├── Exception.php │ ├── FactoryInterface.php │ ├── InvalidArgument.php │ ├── Loader.php │ ├── Model │ ├── AbstractModel.php │ ├── AccessData.php │ ├── AccessDataHomologacao.php │ ├── AccessDataHomologacaoReversa.php │ ├── BloquearObjetoResposta.php │ ├── BuscaClienteResult.php │ ├── CalcPrecoPrazo.php │ ├── CalcPrecoPrazoResposta.php │ ├── CalcPrecoPrazoRespostaIterator.php │ ├── CancelarObjetoResposta.php │ ├── ColetasSolicitadas.php │ ├── ConsultaCepResposta.php │ ├── ConsultarAgenciaResult.php │ ├── ConsultarColeta.php │ ├── ConsultarColetaRetorno.php │ ├── Destinatario.php │ ├── Destino.php │ ├── DestinoInternacional.php │ ├── DestinoNacional.php │ ├── Dimensao.php │ ├── Diretoria.php │ ├── Etiqueta.php │ ├── Exception.php │ ├── FechaPlpVariosServicosRetorno.php │ ├── GeraDigitoVerificadorEtiquetas.php │ ├── ListarAgenciasCliqueRetireResult.php │ ├── LogisticaReversa.php │ ├── LogisticaReversaColeta.php │ ├── LogisticaReversaDestinatario.php │ ├── LogisticaReversaObjeto.php │ ├── LogisticaReversaPedido.php │ ├── LogisticaReversaPedidoResposta.php │ ├── LogisticaReversaProduto.php │ ├── LogisticaReversaRemetente.php │ ├── ObjCol.php │ ├── ObjetoPostal.php │ ├── PedidoInformacao.php │ ├── PedidoInformacaoResponse.php │ ├── PreListaDePostagem.php │ ├── Proxy.php │ ├── RastrearObjeto.php │ ├── RastrearObjetoEvento.php │ ├── RastrearObjetoResultado.php │ ├── Remetente.php │ ├── ServicoAdicional.php │ ├── ServicoDePostagem.php │ ├── SolicitaEtiquetas.php │ ├── SolicitaXmlPlpResult.php │ ├── SolicitarPostagemReversa.php │ ├── SolicitarPostagemReversaRetorno.php │ ├── VerificaDisponibilidadeServico.php │ ├── VerificaDisponibilidadeServicoResposta.php │ └── VerificarStatusCartaoPostagemResposta.php │ ├── Pdf │ ├── AvisoRecebimento.php │ ├── CartaoDePostagem.php │ ├── CartaoDePostagem2016.php │ ├── CartaoDePostagem2018.php │ ├── Chancela │ │ ├── AbstractChancela.php │ │ ├── Carta.php │ │ ├── Carta2016.php │ │ ├── Pac.php │ │ ├── Pac2016.php │ │ ├── Pac2018.php │ │ ├── Sedex.php │ │ └── Sedex2016.php │ ├── Exception │ │ └── InvalidChancelaEntry.php │ ├── ImprovedFPDF.php │ ├── InvalidArgument.php │ ├── ListaDePostagem.php │ ├── Script │ │ ├── BarCode128.php │ │ ├── CircularText.php │ │ ├── Elipse.php │ │ └── Transform.php │ ├── Semacode.php │ ├── correios-logo.png │ ├── logo-correios.png │ ├── sema.php │ ├── simbolo-sedex-expresso.png │ ├── simbolo-sedex-standard.png │ └── simbolo-sem-especificacao.png │ ├── Services │ ├── Exception.php │ ├── InvalidArgument.php │ ├── Real │ │ ├── BloquearObjeto.php │ │ ├── BuscaCliente.php │ │ ├── CadastrarPI.php │ │ ├── CalcPrecoPrazo.php │ │ ├── CancelarObjeto.php │ │ ├── ConsultaCep.php │ │ ├── ConsultarAgencia.php │ │ ├── ConsultarColeta.php │ │ ├── Exception │ │ │ ├── AgenciaWS │ │ │ │ ├── FailedConvertToArrayException.php │ │ │ │ ├── FailedConvertXmlException.php │ │ │ │ └── FailedResultException.php │ │ │ ├── RastrearObjeto │ │ │ │ ├── RastrearObjetoException.php │ │ │ │ ├── TipoInvalidoException.php │ │ │ │ └── TipoResultadoInvalidoException.php │ │ │ ├── SoapExtensionNotInstalled.php │ │ │ └── SolicitaXmlPlp │ │ │ │ ├── FailedConvertToArrayException.php │ │ │ │ ├── FailedConvertXmlException.php │ │ │ │ └── FailedResultException.php │ │ ├── FecharPreListaDePostagem.php │ │ ├── GeraDigitoVerificadorEtiquetas.php │ │ ├── ListarAgenciasCliqueRetire.php │ │ ├── LogisticaReversaAcompanharPedidoData.php │ │ ├── LogisticaReversaAcompanharPedidoNumero.php │ │ ├── LogisticaReversaCancelarPedido.php │ │ ├── LogisticaReversaCriarPedido.php │ │ ├── PreListaDePostagem │ │ │ └── GerarXmlPreListaDePostagem.php │ │ ├── RastrearObjeto.php │ │ ├── RastrearObjetoLista.php │ │ ├── RealServiceInterface.php │ │ ├── SoapClientFactory.php │ │ ├── SolicitaEtiquetas.php │ │ ├── SolicitaXmlPlp.php │ │ ├── SolicitarPostagemReversa.php │ │ ├── VerificaDisponibilidadeServico.php │ │ └── VerificarStatusCartaoPostagem.php │ ├── Result.php │ ├── ResultRowset.php │ ├── ServiceInterface.php │ └── SoapClient │ │ ├── Exception.php │ │ ├── Real.php │ │ └── Simulador.php │ ├── Sigep.php │ └── Support │ └── xsd │ └── plp_schema.xsd └── tests ├── BootstrapTrait.php ├── Builders └── PreListaDePostagemBuilder.php ├── Fakes └── SoapClientFake.php ├── PhpSigep ├── Pdf │ └── ImprovedFPDFTest.php └── Services │ └── Real │ ├── BuscaClienteTest.php │ ├── FecharPreListaDePostagemTest.php │ ├── PreListaDePostagem │ └── GerarXmlPreListaDePostagemTest.php │ └── SoapClientFactoryTest.php ├── Services ├── DigitoVerificadorTest.php └── SolicitaEtiquetasTest.php ├── Xml └── Util.php └── resources └── xml └── modelo_plp1-utf8.xml /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Configuration for probot-stale - https://github.com/probot/stale 2 | 3 | # Number of days of inactivity before an Issue or Pull Request becomes stale 4 | daysUntilStale: 30 5 | 6 | # Number of days of inactivity before a stale Issue or Pull Request is closed. 7 | # Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. 8 | daysUntilClose: 5 9 | 10 | # Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable 11 | exemptLabels: 12 | - "contributions: claimed" 13 | - "contributions: up for grabs!" 14 | - "good first issue" 15 | - "issue: announcement" 16 | - "issue: bug" 17 | - "issue: proposal" 18 | - "tag: bug fix" 19 | - "tag: needs investigation" 20 | 21 | # Set to true to ignore issues in a project (defaults to false) 22 | #exemptProjects: true 23 | 24 | # Set to true to ignore issues in a milestone (defaults to false) 25 | #exemptMilestones: true 26 | 27 | # Label to use when marking as stale 28 | staleLabel: stale 29 | 30 | # Limit the number of actions per hour, from 1-30. Default is 30 31 | limitPerRun: 30 32 | 33 | issues: 34 | # Comment to post when marking Issues as stale. 35 | markComment: > 36 | This issue has been automatically marked as stale because it has not had any 37 | recent activity. It will be closed in 5 days if no further activity occurs. 38 | # Comment to post when closing a stale Issue. 39 | closeComment: > 40 | This issue has been automatically closed because it has not had any recent 41 | activity. If you have a question or comment, please open a new issue. 42 | pulls: 43 | # Comment to post when marking Pull Request as stale. 44 | markComment: > 45 | This pull request has been automatically marked as stale because it has not 46 | had any recent activity. It will be closed in 5 days if no further activity 47 | occurs. 48 | # Comment to post when closing a stale Pull Request. 49 | closeComment: > 50 | This pull request has been automatically closed because it has not had any 51 | recent activity. If you have a question or comment, please open a new 52 | issue. Thank you for your contribution! -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | branches: 5 | - master 6 | 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | analises_estaticas: 13 | name: Análises Estáticas 14 | runs-on: ubuntu-latest 15 | strategy: 16 | matrix: 17 | php-version: ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2'] 18 | fail-fast: false 19 | 20 | steps: 21 | - name: Setando PHP com soap e mbstring 22 | uses: shivammathur/setup-php@v2 23 | with: 24 | php-version: ${{ matrix.php-version }} 25 | extensions: mbstring, soap 26 | 27 | - name: checkout 28 | uses: actions/checkout@v2 29 | 30 | - name: Instalando dependências PHP 7.2 31 | if: matrix.php-version == '7.2' 32 | run: | 33 | composer require 'phpunit/phpunit:^7.0' -W --dev 34 | composer install --no-progress -o --no-ansi --no-interaction 35 | 36 | - name: Instalando dependências 37 | if: matrix.php-version != '7.2' 38 | run: | 39 | composer require 'phpunit/phpunit:^8.0' -W --dev 40 | composer install --no-progress -o --no-ansi --no-interaction 41 | 42 | - name: PHPStan 43 | run: | 44 | composer stan 45 | 46 | - name: PHPUnit 47 | run: | 48 | composer test 49 | 50 | 51 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | tmp/ 2 | vendor/ 3 | /.idea 4 | /nbproject/private/ 5 | nbproject/ 6 | composer.phar 7 | .buildpath 8 | .project 9 | .settings/ 10 | .phpunit.result.cache 11 | .DS_Store 12 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Rafael Stavarengo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stavarengo/php-sigep", 3 | "type": "library", 4 | "description": "Integração com Web Service do Correios. Gera etiquetas, consulta preços e prazos, imprime etiquetas e PLP, etc.", 5 | "keywords": ["correios", "sigep"], 6 | "minimum-stability": "stable", 7 | "prefer-stable": true, 8 | "config": { 9 | "sort-packages": true 10 | }, 11 | "extra": { 12 | "branch-alias": { 13 | "dev-master": "1.0-dev", 14 | "dev-develop": "1.1-dev" 15 | } 16 | }, 17 | "require": { 18 | "php": ">=7.2", 19 | "ext-soap": "*", 20 | "ext-mbstring": "*", 21 | "stavarengo/php-sigep-fpdf": "dev-master", 22 | "vria/nodiacritic": "^0.1.2" 23 | }, 24 | "require-dev": { 25 | "phpstan/phpstan": "^1.0", 26 | "phpunit/phpunit": "^8.0" 27 | }, 28 | "autoload": { 29 | "psr-0": { 30 | "PhpSigep": "src/" 31 | } 32 | }, 33 | "autoload-dev": { 34 | "psr-4": { 35 | "PhpSigep\\Test\\": "tests/" 36 | } 37 | }, 38 | "scripts": { 39 | "test": "./vendor/bin/phpunit --verbose --colors=always", 40 | "stan": "./vendor/bin/phpstan analyse src tests exemplos" 41 | }, 42 | "license": "MIT", 43 | "authors": [ 44 | { 45 | "name": "Rafael Stavarengo", 46 | "email": "faelsta@gmail.com" 47 | } 48 | ] 49 | } 50 | -------------------------------------------------------------------------------- /exemplos/bootstrap-exemplos.php: -------------------------------------------------------------------------------- 1 | setAccessData($accessDataParaAmbienteDeHomologacao); 33 | $config->setEnv(\PhpSigep\Config::ENV_PRODUCTION); 34 | $config->setCacheOptions( 35 | array( 36 | 'storageOptions' => array( 37 | // Qualquer valor setado neste atributo será mesclado ao atributos das classes 38 | // "\PhpSigep\Cache\Storage\Adapter\AdapterOptions" e "\PhpSigep\Cache\Storage\Adapter\FileSystemOptions". 39 | // Por tanto as chaves devem ser o nome de um dos atributos dessas classes. 40 | 'enabled' => false, 41 | 'ttl' => 10,// "time to live" de 10 segundos 42 | 'cacheDir' => sys_get_temp_dir(), // Opcional. Quando não inforado é usado o valor retornado de "sys_get_temp_dir()" 43 | ), 44 | ) 45 | ); 46 | 47 | \PhpSigep\Bootstrap::start($config); -------------------------------------------------------------------------------- /exemplos/buscaCliente.php: -------------------------------------------------------------------------------- 1 | buscaCliente($accessData); 8 | 9 | if (!$result->hasError()) { 10 | /** @var $buscaClienteResult \PhpSigep\Model\BuscaClienteResult */ 11 | $buscaClienteResult = $result->getResult(); 12 | 13 | // Anula as chancelas antes de imprimir o resultado, porque as chancelas não estão é liguagem humana 14 | $servicos = $buscaClienteResult->getContratos()->cartoesPostagem->servicos; 15 | foreach ($servicos as &$servico) { 16 | $servico->servicoSigep->chancela->chancela = 'Chancelas anulada via código.'; 17 | } 18 | } 19 | 20 | echo '
';
21 | var_dump($result);
22 | echo '
'; 23 | -------------------------------------------------------------------------------- /exemplos/calcPrecoPrazo.php: -------------------------------------------------------------------------------- 1 | setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA); 7 | $dimensao->setAltura(15); // em centímetros 8 | $dimensao->setComprimento(17); // em centímetros 9 | $dimensao->setLargura(12); // em centímetros 10 | 11 | $params = new \PhpSigep\Model\CalcPrecoPrazo(); 12 | $params->setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 13 | $params->setCepOrigem('30170-010'); 14 | $params->setCepDestino('04538-132'); 15 | $params->setServicosPostagem(\PhpSigep\Model\ServicoDePostagem::getAll()); 16 | $params->setAjustarDimensaoMinima(true); 17 | $params->setDimensao($dimensao); 18 | $params->setPeso(0.150);// 150 gramas 19 | 20 | 21 | $phpSigep = new PhpSigep\Services\SoapClient\Real(); 22 | $result = $phpSigep->calcPrecoPrazo($params); 23 | 24 | var_dump((array)$result); -------------------------------------------------------------------------------- /exemplos/clique-retire.php: -------------------------------------------------------------------------------- 1 | setAccessData($accessData); 8 | 9 | \PhpSigep\Bootstrap::start($config); 10 | 11 | $preListaDePostagem = new \PhpSigep\Model\PreListaDePostagem(); 12 | $preListaDePostagem->setAccessData($accessData); 13 | 14 | $dimensao_por_cubagem = 1000 ** (1/3); 15 | $dimensao = new \PhpSigep\Model\Dimensao(); 16 | $dimensao->setAltura($dimensao_por_cubagem); 17 | $dimensao->setLargura($dimensao_por_cubagem); 18 | $dimensao->setComprimento($dimensao_por_cubagem); 19 | $dimensao->setDiametro(0); 20 | $dimensao->setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA); 21 | 22 | // *** DADOS DO REMETENTE *** // 23 | $remetente = new \PhpSigep\Model\Remetente(); 24 | $remetente->setNome('Google São Paulo'); 25 | $remetente->setLogradouro('Av. Brigadeiro Faria Lima'); 26 | $remetente->setNumero('3900'); 27 | $remetente->setComplemento('5º andar'); 28 | $remetente->setBairro('Itaim'); 29 | $remetente->setCep('04538-132'); 30 | $remetente->setUf('SP'); 31 | $remetente->setCidade('São Paulo'); 32 | // *** FIM DOS DADOS DO REMETENTE *** // 33 | 34 | $destinatario = new \PhpSigep\Model\Destinatario(); 35 | $destinatario->setNome('Google Belo Horizonte'); 36 | $destinatario->setLogradouro('Av. Bias Fortes'); 37 | $destinatario->setNumero('382'); 38 | $destinatario->setComplemento('6º andar'); 39 | $destinatario->setIsCliqueRetire(true); 40 | 41 | $destino = new \PhpSigep\Model\DestinoNacional(); 42 | $destino->setAgencia('Agencia BH'); 43 | $destino->setBairro('Lourdes'); 44 | $destino->setCep('30170-010'); 45 | $destino->setCidade('Belo Horizonte'); 46 | $destino->setUf('MG'); 47 | 48 | $servicoAdicional = new \PhpSigep\Model\ServicoAdicional(); 49 | $servicoAdicional->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_REGISTRO); 50 | // Se não tiver valor declarado informar 0 (zero) 51 | $servicoAdicional->setValorDeclarado(250); 52 | 53 | $etiqueta = new \PhpSigep\Model\Etiqueta(); 54 | $etiqueta->setEtiquetaComDv('EC373812299BR'); 55 | 56 | $encomenda = new \PhpSigep\Model\ObjetoPostal(); 57 | $encomenda->setServicosAdicionais(array($servicoAdicional)); 58 | $encomenda->setDestinatario($destinatario); 59 | $encomenda->setDestino($destino); 60 | $encomenda->setDimensao($dimensao); 61 | $encomenda->setEtiqueta($etiqueta); 62 | $encomenda->setPeso(1.2); 63 | $encomenda->setServicoDePostagem(new \PhpSigep\Model\ServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_PAC_CONTRATO_AGENCIA)); 64 | 65 | $preListaDePostagem->setEncomendas(array($encomenda)); 66 | $preListaDePostagem->setRemetente($remetente); 67 | 68 | $phpSigep = new PhpSigep\Services\SoapClient\Real(); 69 | 70 | $idPlp = 0; 71 | try { 72 | $result = $phpSigep->fechaPlpVariosServicos($preListaDePostagem); 73 | if (!$result->hasError()) { 74 | $idPlp = $result->getResult()->getIdPlp(); 75 | } else { 76 | var_dump($result->getErrorMsg()); 77 | } 78 | } catch (\Exception $ex) { 79 | var_dump($ex->getMessage()); 80 | } 81 | 82 | if ($idPlp) { 83 | $pdf = new \PhpSigep\Pdf\CartaoDePostagem2016($preListaDePostagem, $idPlp, false); 84 | header('Content-Type: application/pdf'); 85 | header('Content-Disposition: inline; filename="doc.pdf"'); 86 | header('Cache-Control: private, max-age=0, must-revalidate'); 87 | header('Pragma: public'); 88 | echo $pdf->render(); 89 | } -------------------------------------------------------------------------------- /exemplos/consultaCep.php: -------------------------------------------------------------------------------- 1 | consultaCep($cep); 9 | 10 | var_dump((array)$result); 11 | $dumpResult = ob_get_clean(); 12 | ?> 13 | 14 | 15 | 16 | 17 | Exemplo Consulta CEP - PHP Sigep 18 | 19 | 20 |
21 |
22 | 23 | 24 |
25 |
26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /exemplos/consultaColeta.php: -------------------------------------------------------------------------------- 1 | setAccessData($accessDataParaAmbienteDeHomologacao); 28 | $config->setEnv(\PhpSigep\Config::ENV_DEVELOPMENT); 29 | $config->setCacheOptions( 30 | array( 31 | 'storageOptions' => array( 32 | 'enabled' => false, 33 | 'ttl' => 10, // "time to live" de 10 segundos 34 | 'cacheDir' => sys_get_temp_dir(), // Opcional. Quando não inforado é usado o valor retornado de "sys_get_temp_dir()" 35 | ), 36 | ) 37 | 38 | ); 39 | 40 | \PhpSigep\Bootstrap::start($config); 41 | 42 | 43 | $coleta = new \PhpSigep\Model\ConsultarColeta(array( 44 | 'tipoBusca' => \PhpSigep\Model\ConsultarColeta::TIPO_BUSCA_TODOS, // 45 | 'tipoSolicitacao' => \PhpSigep\Model\ConsultarColeta::TIPO_SOLICITACAO_AUTORIZACAO, 46 | 'accessData' => new \PhpSigep\Model\AccessDataHomologacaoReversa(), 47 | 'numeroPedido' => '108516858' 48 | )); 49 | $phpSigep = new \PhpSigep\Services\SoapClient\Real(); 50 | $result = $phpSigep->consultaColeta($coleta); 51 | 52 | ?> 53 |
54 |   
57 | 
-------------------------------------------------------------------------------- /exemplos/fechaPlpVariosServicos.php: -------------------------------------------------------------------------------- 1 | fechaPlpVariosServicos($params); 8 | 9 | echo '
';
10 | print_r((array)$result);
11 | echo '
'; 12 | -------------------------------------------------------------------------------- /exemplos/geraChancelas.php: -------------------------------------------------------------------------------- 1 | SetFont('Arial', '', 10); 6 | $pdf->AddPage(); 7 | 8 | $accessData = new \PhpSigep\Model\AccessDataHomologacao(); 9 | 10 | $carta = new \PhpSigep\Pdf\Chancela\Carta2016(5, 5, 'Layout 2016', $accessData); 11 | $carta->draw($pdf); 12 | 13 | $carta = new \PhpSigep\Pdf\Chancela\Carta(50, 5, 'Layout Antigo', $accessData); 14 | $carta->draw($pdf); 15 | 16 | $sedex = new \PhpSigep\Pdf\Chancela\Sedex2016(5, 50, 'Layout 2016', 2, $accessData); 17 | $sedex->draw($pdf); 18 | 19 | $sedex = new \PhpSigep\Pdf\Chancela\Sedex(50, 50, 'Layout antigo', 2, $accessData); 20 | $sedex->draw($pdf); 21 | 22 | $pac = new \PhpSigep\Pdf\Chancela\Pac2016(5, 100, 'Layout 2016', $accessData); 23 | $pac->draw($pdf); 24 | 25 | $pac = new \PhpSigep\Pdf\Chancela\Pac(50, 100, 'Layout antigo', $accessData); 26 | $pac->draw($pdf); 27 | 28 | $pdf->Output(); 29 | -------------------------------------------------------------------------------- /exemplos/geraDigitoVerificadorEtiquetas.php: -------------------------------------------------------------------------------- 1 | setEtiquetaSemDv('SW99266328BR'); 14 | 15 | $etiquetaSemDv_2 = new \PhpSigep\Model\Etiqueta(); 16 | $etiquetaSemDv_2->setEtiquetaSemDv('PD73958096BR'); 17 | 18 | 19 | $params = new \PhpSigep\Model\GeraDigitoVerificadorEtiquetas(); 20 | $params->setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 21 | $params->setEtiquetas(array($etiquetaSemDv_1, $etiquetaSemDv_2)); 22 | 23 | $phpSigep = new PhpSigep\Services\SoapClient\Real(); 24 | $result = $phpSigep->geraDigitoVerificadorEtiquetas($params); 25 | 26 | /** @var $etiquetasComDv \PhpSigep\Model\Etiqueta[] */ 27 | $etiquetasComDv = $result->getResult(); 28 | foreach ($etiquetasComDv as $etiqueta) { 29 | echo 'Etiqueta ' . $etiqueta->getEtiquetaSemDv() . ' -> DV: ' . $etiqueta->getDv() . ' -> ' . 30 | ' Etiqueta já com DV: ' . $etiqueta->getEtiquetaComDv() . '
'; 31 | } 32 | 33 | echo '
'; 34 | echo 'Resultado completo'; 35 | echo '
';
36 | print_r((array)$result);
37 | echo '
'; 38 | -------------------------------------------------------------------------------- /exemplos/helper-criar-pre-lista-a4.php: -------------------------------------------------------------------------------- 1 | setAltura(20); 13 | $dimensao->setLargura(20); 14 | $dimensao->setComprimento(20); 15 | $dimensao->setDiametro(0); 16 | $dimensao->setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA); 17 | 18 | $destinatario = new \PhpSigep\Model\Destinatario(); 19 | $destinatario->setNome('Google Belo Horizonte'); 20 | $destinatario->setLogradouro('Av. Bias Fortes'); 21 | $destinatario->setNumero('382'); 22 | $destinatario->setComplemento('6º andar'); 23 | 24 | $destino = new \PhpSigep\Model\DestinoNacional(); 25 | $destino->setBairro('Lourdes'); 26 | $destino->setCep('30170-010'); 27 | $destino->setCidade('Belo Horizonte'); 28 | $destino->setUf('MG'); 29 | $destino->setNumeroNotaFiscal(1234567890); 30 | $destino->setNumeroPedido(1234567890); 31 | 32 | // Estamos criando uma etique falsa, mas em um ambiente real voçê deve usar o método 33 | // {@link \PhpSigep\Services\SoapClient\Real::solicitaEtiquetas() } para gerar o número das etiquetas 34 | $etiqueta = new \PhpSigep\Model\Etiqueta(); 35 | $etiqueta->setEtiquetaSemDv('PD73958096BR'); 36 | 37 | $servicoAdicional = new \PhpSigep\Model\ServicoAdicional(); 38 | $servicoAdicional->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_REGISTRO); 39 | // Se não tiver valor declarado informar 0 (zero) 40 | $servicoAdicional->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_AVISO_DE_RECEBIMENTO); 41 | 42 | $servicoAdicional2 = new \PhpSigep\Model\ServicoAdicional(); 43 | $servicoAdicional2->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_REGISTRO); 44 | $servicoAdicional2->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_VALOR_DECLARADO_PAC); 45 | $servicoAdicional2->setValorDeclarado(100); 46 | 47 | $encomenda = new \PhpSigep\Model\ObjetoPostal(); 48 | $encomenda->setServicosAdicionais(array($servicoAdicional, $servicoAdicional2)); 49 | $encomenda->setDestinatario($destinatario); 50 | $encomenda->setDestino($destino); 51 | $encomenda->setDimensao($dimensao); 52 | $encomenda->setEtiqueta($etiqueta); 53 | $encomenda->setPeso(0.500);// 500 gramas 54 | $encomenda->setObservacao('Lorem ipsum dolor sit amet.'); 55 | $encomenda->setServicoDePostagem(new \PhpSigep\Model\ServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_PAC_41068)); 56 | // *** FIM DOS DADOS DA ENCOMENDA QUE SERÁ DESPACHADA *** // 57 | 58 | // *** DADOS DO REMETENTE *** // 59 | $remetente = new \PhpSigep\Model\Remetente(); 60 | $remetente->setNome('Google São Paulo'); 61 | $remetente->setLogradouro('Av. Brigadeiro Faria Lima'); 62 | $remetente->setNumero('3900'); 63 | $remetente->setComplemento('5º andar'); 64 | $remetente->setBairro('Itaim'); 65 | $remetente->setCep('04538-132'); 66 | $remetente->setUf('SP'); 67 | $remetente->setCidade('São Paulo'); 68 | // *** FIM DOS DADOS DO REMETENTE *** // 69 | 70 | 71 | $plp = new \PhpSigep\Model\PreListaDePostagem(); 72 | $plp->setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 73 | $plp->setEncomendas([$encomenda,$encomenda,$encomenda,$encomenda]); 74 | $plp->setRemetente($remetente); 75 | 76 | return $plp; 77 | -------------------------------------------------------------------------------- /exemplos/helper-criar-pre-lista.php: -------------------------------------------------------------------------------- 1 | setAltura(20); 13 | $dimensao->setLargura(20); 14 | $dimensao->setComprimento(20); 15 | $dimensao->setDiametro(0); 16 | $dimensao->setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA); 17 | 18 | $destinatario = new \PhpSigep\Model\Destinatario(); 19 | $destinatario->setNome('Google Belo Horizonte'); 20 | $destinatario->setLogradouro('Av. Bias Fortes'); 21 | $destinatario->setNumero('382'); 22 | $destinatario->setComplemento('6º andar'); 23 | 24 | $destino = new \PhpSigep\Model\DestinoNacional(); 25 | $destino->setBairro('Lourdes'); 26 | $destino->setCep('30170-010'); 27 | $destino->setCidade('Belo Horizonte'); 28 | $destino->setUf('MG'); 29 | 30 | // Estamos criando uma etique falsa, mas em um ambiente real voçê deve usar o método 31 | // {@link \PhpSigep\Services\SoapClient\Real::solicitaEtiquetas() } para gerar o número das etiquetas 32 | $etiqueta = new \PhpSigep\Model\Etiqueta(); 33 | $etiqueta->setEtiquetaSemDv('PD73958096BR'); 34 | 35 | $servicoAdicional = new \PhpSigep\Model\ServicoAdicional(); 36 | $servicoAdicional->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_REGISTRO); 37 | // Se não tiver valor declarado informar 0 (zero) 38 | $servicoAdicional->setValorDeclarado(0); 39 | 40 | $encomenda = new \PhpSigep\Model\ObjetoPostal(); 41 | $encomenda->setServicosAdicionais(array($servicoAdicional)); 42 | $encomenda->setDestinatario($destinatario); 43 | $encomenda->setDestino($destino); 44 | $encomenda->setDimensao($dimensao); 45 | $encomenda->setEtiqueta($etiqueta); 46 | $encomenda->setPeso(0.500);// 500 gramas 47 | $encomenda->setServicoDePostagem(new \PhpSigep\Model\ServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_SEDEX_41556)); 48 | // *** FIM DOS DADOS DA ENCOMENDA QUE SERÁ DESPACHADA *** // 49 | 50 | // *** DADOS DO REMETENTE *** // 51 | $remetente = new \PhpSigep\Model\Remetente(); 52 | $remetente->setNome('Google São Paulo'); 53 | $remetente->setLogradouro('Av. Brigadeiro Faria Lima'); 54 | $remetente->setNumero('3900'); 55 | $remetente->setComplemento('5º andar'); 56 | $remetente->setBairro('Itaim'); 57 | $remetente->setCep('04538-132'); 58 | $remetente->setUf('SP'); 59 | $remetente->setCidade('São Paulo'); 60 | // *** FIM DOS DADOS DO REMETENTE *** // 61 | 62 | 63 | $plp = new \PhpSigep\Model\PreListaDePostagem(); 64 | $plp->setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 65 | $plp->setEncomendas(array($encomenda)); 66 | $plp->setRemetente($remetente); 67 | 68 | return $plp; 69 | -------------------------------------------------------------------------------- /exemplos/imprimirAvisoRecebimento.php: -------------------------------------------------------------------------------- 1 | render(); 9 | -------------------------------------------------------------------------------- /exemplos/imprimirEtiquetas.php: -------------------------------------------------------------------------------- 1 | render(); 15 | -------------------------------------------------------------------------------- /exemplos/imprimirEtiquetas2016.php: -------------------------------------------------------------------------------- 1 | render(); 15 | -------------------------------------------------------------------------------- /exemplos/imprimirEtiquetas2018.php: -------------------------------------------------------------------------------- 1 | render('F', 'teste.pdf'); 12 | -------------------------------------------------------------------------------- /exemplos/imprimirEtiquetasA4.php: -------------------------------------------------------------------------------- 1 | render('F',$fileName); 16 | 17 | unset($pdf); 18 | $pdf = new \PhpSigep\Pdf\ImprovedFPDF('P', 'mm', 'Letter' ); 19 | $pageCount = $pdf->setSourceFile($fileName); 20 | 21 | $pdf->AddPage(); 22 | $pdf->SetFillColor(0,0,0); 23 | $pdf->SetFont('Arial','B',16); 24 | 25 | for($i=1;$i<=$pageCount;$i++) { 26 | $tplIdx = $pdf->importPage($i, '/MediaBox'); 27 | 28 | $mod = $i % 4; 29 | 30 | switch ($mod) { 31 | case 0: 32 | //A4: 210(x) × 297(y) 33 | //Letter: 216 (x) × 279 (y) 34 | $pdf->useTemplate($tplIdx, 110, 145, 105, 138, true); 35 | 36 | if ($i !== $pageCount) { 37 | $pdf->AddPage(); 38 | $pdf->SetFillColor(0,0,0); 39 | $pdf->SetFont('Arial','B',16); 40 | } 41 | break; 42 | case 1: 43 | $pdf->useTemplate($tplIdx, 10, 10, 105, 138, true); 44 | break; 45 | case 2: 46 | $pdf->useTemplate($tplIdx, 110, 10, 105, 138, true); 47 | break; 48 | case 3: 49 | $pdf->useTemplate($tplIdx, 10, 145, 105, 138, true); 50 | break; 51 | } 52 | 53 | } 54 | 55 | 56 | $pdf->Output('teste.pdf', 'F'); 57 | -------------------------------------------------------------------------------- /exemplos/imprimirPlp.php: -------------------------------------------------------------------------------- 1 | render('I'); 9 | -------------------------------------------------------------------------------- /exemplos/listar-agencias-clique-retire.php: -------------------------------------------------------------------------------- 1 | setIdCorreiosUsuario('USUÀRIO'); // Não consegui um de teste 7 | $accessData->setIdCorreiosSenha('SENHA'); // Não consegui um de teste 8 | 9 | $config = new \PhpSigep\Config(); 10 | $config->setAccessData($accessData); 11 | 12 | \PhpSigep\Bootstrap::start($config); 13 | 14 | $phpSigep = new PhpSigep\Services\SoapClient\Real(); 15 | 16 | $uf = (isset($_GET['uf']) ? $_GET['uf'] : 'RJ'); 17 | $municipio = (isset($_GET['municipio']) ? $_GET['municipio'] : 'Rio de Janeiro'); 18 | $bairro = (isset($_GET['bairro']) ? $_GET['bairro'] : 'Centro'); 19 | $cep = (isset($_GET['cep']) ? $_GET['cep'] : false); 20 | 21 | if ($cep) { 22 | $result = $phpSigep->listarAgenciasCliqueRetireByCep($cep); 23 | } else { 24 | $result = $phpSigep->listarAgenciasCliqueRetire($uf, $municipio, $bairro); 25 | } 26 | 27 | $dumpResult = print_r($result, true); 28 | ?> 29 | 30 | 31 | 32 | 33 | Exemplo Consulta CEP - PHP Sigep 34 | 35 | 36 |
37 |
38 | 39 |
40 | 41 |
42 | 43 |
44 | OU 45 |
46 | 47 |
48 | 49 |
50 |
51 |
52 |
53 |         
54 |     
55 | 


--------------------------------------------------------------------------------
/exemplos/logo-etiqueta-2016.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/exemplos/logo-etiqueta-2016.png


--------------------------------------------------------------------------------
/exemplos/logo-etiqueta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/exemplos/logo-etiqueta.png


--------------------------------------------------------------------------------
/exemplos/pedido-informacao.php:
--------------------------------------------------------------------------------
 1 | setIdCorreiosUsuario('usuario do id correios');
11 | $accessData->setIdCorreiosSenha('senha dos componentes no id correios');
12 | $accessData->setNumeroContrato('numero do seu contrato com os correios');
13 | $accessData->setCartaoPostagem('seu cartao de postagem');
14 | 
15 | // Configurações
16 | $config = new \PhpSigep\Config();
17 | $config->setAccessData($accessData);
18 | $config->setEnv(\PhpSigep\Config::ENV_PRODUCTION);
19 | // $config->setWsdlPI('pedidoInformacaoWS.xml'); // para acesso local, baixar o wsdl
20 | 
21 | // Bootstrap
22 | \PhpSigep\Bootstrap::start($config);
23 | 
24 | // Pedido de Informação
25 | $pedidoInformacao = new \PhpSigep\Model\PedidoInformacao();
26 | $pedidoInformacao->setTelefone('telefone do cliente');
27 | $pedidoInformacao->setCodigoObjeto('código de rastreamento');
28 | $pedidoInformacao->setEmailResposta('e-mail do cliente');
29 | $pedidoInformacao->setNomeDestinatario('nome do cliente');
30 | 
31 | $phpSigep = new \PhpSigep\Services\SoapClient\Real();
32 | $result = $phpSigep->cadastrarPi($pedidoInformacao);
33 | 
34 | $result = $phpSigep->cadastrarPi($pedidoInformacao);
35 | 
36 | // Obtem o objeto retornado
37 | $pedidoInformacaoResponse = $result->getResult();
38 | 
39 | var_dump($pedidoInformacaoResponse);
40 | 
41 | ?>


--------------------------------------------------------------------------------
/exemplos/rastreamentoDeObjetos.php:
--------------------------------------------------------------------------------
 1 | setEtiquetaComDv(trim($etiquetaFromQuery));
13 |         $etiquetas[] = $etiqueta;
14 |     }
15 | }
16 | 
17 | if (count($etiquetas)) {
18 |     $accessDataDeHomologacao = new \PhpSigep\Model\AccessDataHomologacao();
19 |     $accessDataDeHomologacao->setUsuario('ECT');// Usuário e senha para teste passado no manual
20 |     $accessDataDeHomologacao->setSenha('SRO');
21 |     
22 |     $params = new \PhpSigep\Model\RastrearObjeto();
23 |     $params->setAccessData($accessDataDeHomologacao);
24 |     $params->setEtiquetas($etiquetas);
25 |         
26 |     $phpSigep = new PhpSigep\Services\SoapClient\Real();
27 |     $result = $phpSigep->rastrearObjeto($params);
28 |     
29 |     var_dump((array)$result);
30 |     $dumpResult = ob_get_clean();
31 | }
32 | ?>
33 | 
34 | 
35 |     
36 |         
37 |         Exemplo Rastrear Objetos - PHP Sigep
38 |     
39 |     
40 |         
41 |
42 | 43 |
44 | 45 |
46 | 47 |
48 |
49 |
50 |

Resposta

51 | 58 | 59 | -------------------------------------------------------------------------------- /exemplos/solicitarEtiquetas.php: -------------------------------------------------------------------------------- 1 | getUsuario())); 6 | $senha = trim((isset($_GET['senha']) ? $_GET['senha'] : $accessDataDeHomologacao->getSenha())); 7 | $cnpjEmpresa = $accessDataDeHomologacao->getCnpjEmpresa(); 8 | 9 | $accessData = new \PhpSigep\Model\AccessData(); 10 | $accessData->setUsuario($usuario); 11 | $accessData->setSenha($senha); 12 | $accessData->setCnpjEmpresa($cnpjEmpresa); 13 | 14 | $params = new \PhpSigep\Model\SolicitaEtiquetas(); 15 | $params->setQtdEtiquetas(1); 16 | $params->setServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_CARTA_REGISTRADA); 17 | $params->setAccessData($accessData); 18 | 19 | $phpSigep = new PhpSigep\Services\SoapClient\Real(); 20 | 21 | ?> 22 | 23 | 24 | 25 | 26 | Exemplo de Solicitação de Etiquetas - PHP Sigep 27 | 28 | 29 |

Resposta

30 |
31 |
solicitaEtiquetas($params)); ?>
32 | 33 | -------------------------------------------------------------------------------- /exemplos/solicitarPostagemReversa.php: -------------------------------------------------------------------------------- 1 | setAccessData($accessDataParaAmbienteDeHomologacao); 28 | $config->setEnv(\PhpSigep\Config::ENV_DEVELOPMENT); 29 | $config->setCacheOptions( 30 | array( 31 | 'storageOptions' => array( 32 | 'enabled' => false, 33 | 'ttl' => 10,// "time to live" de 10 segundos 34 | 'cacheDir' => sys_get_temp_dir(), // Opcional. Quando não inforado é usado o valor retornado de "sys_get_temp_dir()" 35 | ), 36 | ) 37 | 38 | ); 39 | 40 | \PhpSigep\Bootstrap::start($config); 41 | 42 | //EXEMPLO CAPTURADO DO send4store/php-sigep 43 | 44 | $destinatario = new \PhpSigep\Model\Destinatario(); 45 | $destinatario->setNome('Usuário Destinatário'); 46 | $destinatario->setLogradouro('Avenida Morumbi'); 47 | $destinatario->setNumero('2500'); 48 | $destinatario->setComplemento('911'); 49 | $destinatario->setReferencia('referencia de teste'); 50 | $destinatario->setCidade('São Paulo'); 51 | $destinatario->setUf('SP'); 52 | $destinatario->setCep('05606200'); 53 | $destinatario->setBairro('Morumbi'); 54 | 55 | $destinatario->setEmail('teste@teste.com'); 56 | 57 | $remetente = new \PhpSigep\Model\Remetente(); 58 | $remetente->setNome('Usuário Remetente'); 59 | $remetente->setLogradouro('Avenida Vicente Machado'); 60 | $remetente->setNumero('15'); 61 | $remetente->setComplemento('911'); 62 | $remetente->setCidade('Curitiba'); 63 | $remetente->setBairro('Centro'); 64 | $remetente->setUf('PR'); 65 | $remetente->setCep('80420010'); 66 | 67 | $remetente->setEmail('teste@teste.com'); 68 | $remetente->setIdentificacao('09941751919'); 69 | //$produto = new \PhpSigep\Model\Produto(); 70 | //$produto->setCodigo(116600403); 71 | //$produto->setTipo(0); 72 | //$produto->setQtd(1); 73 | $objCol = new \PhpSigep\Model\ObjCol; 74 | 75 | $objCol->setId(date('hms')); 76 | $objCol->setNum(''); 77 | $objCol->setEntrega(''); 78 | $objCol->setItem(1); 79 | $objCol->setDesc(''); 80 | 81 | $coletasSolicitadas = new \PhpSigep\Model\ColetasSolicitadas(); 82 | $coletasSolicitadas->setTipo('A'); 83 | $coletasSolicitadas->setNumero(''); 84 | $coletasSolicitadas->setValor_declarado(null); 85 | $coletasSolicitadas->setServico_adicional(''); 86 | $coletasSolicitadas->setAr(1); 87 | $coletasSolicitadas->setAg(10); 88 | $coletasSolicitadas->setRemetente($remetente); 89 | $coletasSolicitadas->setObj_col($objCol); 90 | 91 | $postagem = new \PhpSigep\Model\SolicitarPostagemReversa(); 92 | $postagem->setAccessData($accessDataParaAmbienteDeHomologacao); 93 | $postagem->setDestinatario($destinatario); 94 | $postagem->setColetas_solicitadas($coletasSolicitadas); 95 | $postagem->setContrato('9992157880'); 96 | $postagem->setCodigo_servico('04677'); 97 | 98 | $phpSigep = new \PhpSigep\Services\SoapClient\Real(); 99 | $result = $phpSigep->solicitarPostagemReversa($postagem); 100 | echo "
";
101 | print_r($result);
102 | echo "
"; 103 | -------------------------------------------------------------------------------- /exemplos/verificaDisponibilidadeServico.php: -------------------------------------------------------------------------------- 1 | setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 7 | $params->setCepOrigem('30170-010'); 8 | $params->setCepDestino('04538-132'); 9 | $params->setServicos(\PhpSigep\Model\ServicoDePostagem::getAll()); 10 | 11 | $phpSigep = new PhpSigep\Services\SoapClient\Real(); 12 | $result = $phpSigep->verificaDisponibilidadeServico($params); 13 | 14 | var_dump((array)$result); -------------------------------------------------------------------------------- /manual/06-08-2019-ID_CORREIOS/1 Cliente - Cadastrar usuario Pessoa Juridica.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/06-08-2019-ID_CORREIOS/1 Cliente - Cadastrar usuario Pessoa Juridica.pdf -------------------------------------------------------------------------------- /manual/06-08-2019-ID_CORREIOS/2 Cliente - Cadastrar senha em componente.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/06-08-2019-ID_CORREIOS/2 Cliente - Cadastrar senha em componente.pdf -------------------------------------------------------------------------------- /manual/06-08-2019-ID_CORREIOS/3 Cliente - Conceder_permissao_a_pessoa_fisica.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/06-08-2019-ID_CORREIOS/3 Cliente - Conceder_permissao_a_pessoa_fisica.pdf -------------------------------------------------------------------------------- /manual/06-08-2019-Manual_de_Implementacao_do_Web_Service_Logistica_Reversa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/06-08-2019-Manual_de_Implementacao_do_Web_Service_Logistica_Reversa.pdf -------------------------------------------------------------------------------- /manual/2016-05-Manual_de _Implementacao_do_Web_Service_LR.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2016-05-Manual_de _Implementacao_do_Web_Service_LR.pdf -------------------------------------------------------------------------------- /manual/2016-06-17-Guia_Tecnico_Rastreamento_XML_Cliente-Versao_e-commerce_v_1.9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2016-06-17-Guia_Tecnico_Rastreamento_XML_Cliente-Versao_e-commerce_v_1.9.pdf -------------------------------------------------------------------------------- /manual/2017-05-02-Guia_Tecnico_Rastreamento_XML_Cliente-Versao_e-commerce.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2017-05-02-Guia_Tecnico_Rastreamento_XML_Cliente-Versao_e-commerce.pdf -------------------------------------------------------------------------------- /manual/2017-10-05-Manual_de_Implementacao_do_Calculo_Remoto_de_Precos_e_Prazos_versao_2.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2017-10-05-Manual_de_Implementacao_do_Calculo_Remoto_de_Precos_e_Prazos_versao_2.0.pdf -------------------------------------------------------------------------------- /manual/2018-04-24-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2018-04-24-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf -------------------------------------------------------------------------------- /manual/2018-04-24-Termo de Condicoes de Prestacao de Servicos de Encomendas Nacionais.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2018-04-24-Termo de Condicoes de Prestacao de Servicos de Encomendas Nacionais.pdf -------------------------------------------------------------------------------- /manual/2018-06-20-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2018-06-20-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf -------------------------------------------------------------------------------- /manual/2018-10-24-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2018-10-24-Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf -------------------------------------------------------------------------------- /manual/2020-08-28-Documentação_API_WS_Fale_Conosco_Captação_Registro_Manifestação.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/2020-08-28-Documentação_API_WS_Fale_Conosco_Captação_Registro_Manifestação.pdf -------------------------------------------------------------------------------- /manual/Docs Apoio.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/Docs Apoio.zip -------------------------------------------------------------------------------- /manual/Rastreamento-de-Objetos-SROXML_28fev14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/Rastreamento-de-Objetos-SROXML_28fev14.pdf -------------------------------------------------------------------------------- /manual/SCPP_manual_implementacao_calculo_remoto_de_precos_e_prazos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/SCPP_manual_implementacao_calculo_remoto_de_precos_e_prazos.pdf -------------------------------------------------------------------------------- /manual/v1-Manual de Implementacao do Web Service SIGEPWEB e Logistica Reversa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/v1-Manual de Implementacao do Web Service SIGEPWEB e Logistica Reversa.pdf -------------------------------------------------------------------------------- /manual/v2-Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/v2-Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf -------------------------------------------------------------------------------- /manual/v3-2014-10-08-Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/manual/v3-2014-10-08-Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf -------------------------------------------------------------------------------- /phpstan-baseline.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | ignoreErrors: 3 | - 4 | message: "#^Undefined variable\\: \\$ss$#" 5 | count: 1 6 | path: src/PhpSigep/Pdf/Semacode.php 7 | 8 | - 9 | message: "#^Instantiated class PhpSigep\\\\Services\\\\Real\\\\FailedConvertToArrayExceptio not found\\.$#" 10 | count: 1 11 | path: src/PhpSigep/Services/Real/CadastrarPI.php 12 | 13 | - 14 | message: "#^Call to an undefined method PhpSigep\\\\Services\\\\Real\\\\CalcPrecoPrazo\\:\\:calcPrecoPrazo\\(\\)\\.$#" 15 | count: 1 16 | path: src/PhpSigep/Services/Real/CalcPrecoPrazo.php 17 | 18 | - 19 | message: "#^Method PhpSigep\\\\Services\\\\SoapClient\\\\Simulador\\:\\:bloquearObjeto\\(\\) should return PhpSigep\\\\Services\\\\Result\\\\> but return statement is missing\\.$#" 20 | count: 1 21 | path: src/PhpSigep/Services/SoapClient/Simulador.php 22 | 23 | - 24 | message: "#^Method PhpSigep\\\\Services\\\\SoapClient\\\\Simulador\\:\\:cancelarObjeto\\(\\) should return PhpSigep\\\\Services\\\\Result\\\\> but return statement is missing\\.$#" 25 | count: 1 26 | path: src/PhpSigep/Services/SoapClient/Simulador.php 27 | 28 | - 29 | message: "#^Method PhpSigep\\\\Services\\\\SoapClient\\\\Simulador\\:\\:consultaCep\\(\\) should return PhpSigep\\\\Services\\\\Result\\ but return statement is missing\\.$#" 30 | count: 1 31 | path: src/PhpSigep/Services/SoapClient/Simulador.php 32 | 33 | - 34 | message: "#^Method PhpSigep\\\\Services\\\\SoapClient\\\\Simulador\\:\\:rastrearObjeto\\(\\) should return PhpSigep\\\\Services\\\\Result\\\\> but return statement is missing\\.$#" 35 | count: 1 36 | path: src/PhpSigep/Services/SoapClient/Simulador.php 37 | 38 | - 39 | message: "#^Method PhpSigep\\\\Services\\\\SoapClient\\\\Simulador\\:\\:verificarStatusCartaoPostagem\\(\\) should return PhpSigep\\\\Services\\\\Result\\\\> but return statement is missing\\.$#" 40 | count: 1 41 | path: src/PhpSigep/Services/SoapClient/Simulador.php 42 | 43 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | level: 0 3 | paths: 4 | - src 5 | - tests 6 | - exemplos 7 | includes: 8 | - phpstan-baseline.neon -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 14 | ./tests 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/PhpSigep/Bootstrap.php: -------------------------------------------------------------------------------- 1 | getCacheOptions(); 28 | 29 | $storage = new FileSystem($options->getStorageOptions()); 30 | 31 | return $storage; 32 | } 33 | 34 | /** 35 | * @param Options $options 36 | * @return \PhpSigep\Cache\Storage\Adapter\AdapterOptions 37 | */ 38 | public function getStorageOptions(Options $options) 39 | { 40 | $storageOptions = $options->getStorageOptions(); 41 | 42 | if (!($storageOptions instanceof AdapterOptions)) { 43 | $storageOptions = new AdapterOptions((array)$storageOptions); 44 | } 45 | 46 | return $storageOptions; 47 | } 48 | } -------------------------------------------------------------------------------- /src/PhpSigep/Cache/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | storageAdapter = $storageAdapter; 31 | } 32 | 33 | /** 34 | * @return \PhpSigep\Cache\StorageInterface 35 | */ 36 | public function getStorageAdapter() 37 | { 38 | return $this->storageAdapter; 39 | } 40 | 41 | /** 42 | * @param array|\Traversable|AdapterOptions $storageOptions 43 | * @return $this 44 | */ 45 | public function setStorageOptions($storageOptions) 46 | { 47 | $this->storageOptions = $storageOptions; 48 | 49 | return $this; 50 | } 51 | 52 | /** 53 | * @return \PhpSigep\Cache\Storage\Adapter\AdapterOptions 54 | */ 55 | public function getStorageOptions() 56 | { 57 | return $this->storageOptions; 58 | } 59 | } -------------------------------------------------------------------------------- /src/PhpSigep/Cache/Storage/Adapter/Exception/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | setFromArray($initialValues); 15 | } 16 | 17 | /** 18 | * @param string $attributeName 19 | * @param $value 20 | * @throws InvalidArgument 21 | */ 22 | public function set($attributeName, $value) 23 | { 24 | $method = 'set' . ucfirst($attributeName); 25 | if (is_callable(array($this, $method))) { 26 | $this->$method($value); 27 | 28 | return; 29 | } 30 | 31 | if ($this->_failIfAtributeNotExiste) { 32 | throw new InvalidArgument('Não existe um método para definir o valor do atributo "' 33 | . get_class($this) . '::' . $attributeName . '"'); 34 | } 35 | 36 | $this->$attributeName = $value; 37 | } 38 | 39 | /** 40 | * @param $attributeName 41 | * @throws InvalidArgument 42 | * @return mixed 43 | */ 44 | public function get($attributeName) 45 | { 46 | $method = 'get' . ucfirst($attributeName); 47 | if (is_callable(array($this, $method))) { 48 | return $this->$method(); 49 | } 50 | $method = 'is' . ucfirst($attributeName); 51 | if (is_callable(array($this, $method))) { 52 | return $this->$method(); 53 | } 54 | 55 | if ($this->_failIfAtributeNotExiste) { 56 | throw new InvalidArgument('Não existe um método para retornar o valor do atributo: "' 57 | . $attributeName . '"'); 58 | } 59 | 60 | return null; 61 | } 62 | 63 | /** 64 | * @return array 65 | */ 66 | public function toArray() 67 | { 68 | return $this->_toArray($this); 69 | } 70 | 71 | /** 72 | * @param $value 73 | * @return array 74 | */ 75 | private function _toArray($value) 76 | { 77 | $result = array(); 78 | $vars = get_object_vars($value); 79 | foreach ($vars as $var => $val) { 80 | try { 81 | if (is_object($value) && $value instanceof DefaultStdClass) { 82 | $val = $value->get($var); 83 | } 84 | } catch (InvalidArgument $e) { 85 | // Ignora essa propiedade se ela não tiver um método get definido. 86 | continue; 87 | } 88 | 89 | if (is_object($val)) { 90 | $val = $value->_toArray($val); 91 | } else { 92 | if (is_array($val)) { 93 | $novoVal = array(); 94 | foreach ($val as $k => $v) { 95 | $novoVal[$k] = $value->_toArray($v); 96 | } 97 | $val = $novoVal; 98 | } 99 | } 100 | $result[$var] = $val; 101 | } 102 | 103 | return $result; 104 | } 105 | 106 | /** 107 | * @param array $values 108 | */ 109 | public function setFromArray(array $values) 110 | { 111 | foreach ($values as $attr => $value) { 112 | $this->set($attr, $value); 113 | } 114 | } 115 | 116 | } -------------------------------------------------------------------------------- /src/PhpSigep/ErrorHandler.php: -------------------------------------------------------------------------------- 1 | _loadVendorFile($filePath); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/AbstractModel.php: -------------------------------------------------------------------------------- 1 | 'sigep', 17 | 'senha' => 'n5f9t8', 18 | 'codAdministrativo' => '17000190', 19 | 'numeroContrato' => '9992157880', 20 | 'cartaoPostagem' => '0067599079', 21 | 'cnpjEmpresa' => '34028316000103', // Obtido no método 'buscaCliente'. 22 | 'anoContrato' => null, // Não consta no manual. 23 | 'diretoria' => new Diretoria(Diretoria::DIRETORIA_DR_BRASILIA), // Obtido no método 'buscaCliente'. 24 | ) 25 | ); 26 | try {\PhpSigep\Bootstrap::getConfig()->setEnv(\PhpSigep\Config::ENV_DEVELOPMENT);} catch (\Exception $e) {} 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/AccessDataHomologacaoReversa.php: -------------------------------------------------------------------------------- 1 | 6 | * @co_author: https://github.com/send4store 7 | */ 8 | class AccessDataHomologacaoReversa extends AccessData 9 | { 10 | 11 | /** 12 | * Atalho para criar uma {@link AccessData} com os dados do ambiente de homologação. 13 | */ 14 | public function __construct() 15 | { 16 | parent::__construct( 17 | array( 18 | 'idCorreiosUsuario' => 'empresacws', 19 | 'idCorreiosSenha' => '123456', 20 | 'usuario' => 'empresacws', 21 | 'senha' => '123456', 22 | 'codAdministrativo' => '17000190', 23 | 'numeroContrato' => '9992157880', 24 | 'cartaoPostagem' => '0067599079', 25 | 'cnpjEmpresa' => '34028316000103', // Obtido no método 'buscaCliente'. 26 | 'anoContrato' => null, // Não consta no manual. 27 | 'diretoria' => new Diretoria(Diretoria::DIRETORIA_DR_BRASILIA), // Obtido no método 'buscaCliente'. 28 | ) 29 | ); 30 | try { 31 | \PhpSigep\Bootstrap::getConfig()->setEnv(\PhpSigep\Config::ENV_DEVELOPMENT); 32 | } catch (\Exception $e) { 33 | 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/BloquearObjetoResposta.php: -------------------------------------------------------------------------------- 1 | return = $return; 22 | 23 | return $this; 24 | } 25 | 26 | /** 27 | * @return string 28 | */ 29 | public function getReturn() 30 | { 31 | return $this->return; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/BuscaClienteResult.php: -------------------------------------------------------------------------------- 1 | _failIfAtributeNotExiste = false; 26 | parent::__construct($initialValues); 27 | } 28 | 29 | /** 30 | * @param string $cnpj 31 | * @return $this; 32 | */ 33 | public function setCnpj($cnpj) 34 | { 35 | $this->cnpj = $cnpj; 36 | 37 | return $this; 38 | } 39 | 40 | /** 41 | * @return string 42 | */ 43 | public function getCnpj() 44 | { 45 | return $this->cnpj; 46 | } 47 | 48 | /** 49 | * @param \stdClass $contratos 50 | * @return $this; 51 | */ 52 | public function setContratos(\stdClass $contratos) 53 | { 54 | $this->contratos = $contratos; 55 | 56 | return $this; 57 | } 58 | 59 | /** 60 | * @return \stdClass 61 | */ 62 | public function getContratos() 63 | { 64 | return $this->contratos; 65 | } 66 | 67 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/CalcPrecoPrazoRespostaIterator.php: -------------------------------------------------------------------------------- 1 | todosTemErro === null) { 24 | $this->todosTemErro = $this->count() > 0; 25 | /** @var $item \PhpSigep\Model\CalcPrecoPrazoResposta */ 26 | foreach ($this as $item) { 27 | if (!$item->hasError()) { 28 | $this->todosTemErro = false; 29 | break; 30 | } 31 | } 32 | } 33 | 34 | return $this->todosTemErro; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/CancelarObjetoResposta.php: -------------------------------------------------------------------------------- 1 | return = $return; 22 | 23 | return $this; 24 | } 25 | 26 | /** 27 | * @return string 28 | */ 29 | public function getReturn() 30 | { 31 | return $this->return; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/ConsultaCepResposta.php: -------------------------------------------------------------------------------- 1 | bairro = $bairro; 52 | 53 | return $this; 54 | } 55 | 56 | /** 57 | * @return string 58 | */ 59 | public function getBairro() 60 | { 61 | return $this->bairro; 62 | } 63 | 64 | /** 65 | * @param string $cep 66 | * @return $this; 67 | */ 68 | public function setCep($cep) 69 | { 70 | $this->cep = $cep; 71 | 72 | return $this; 73 | } 74 | 75 | /** 76 | * @return string 77 | */ 78 | public function getCep() 79 | { 80 | return $this->cep; 81 | } 82 | 83 | /** 84 | * @param string $cidade 85 | * @return $this; 86 | */ 87 | public function setCidade($cidade) 88 | { 89 | $this->cidade = $cidade; 90 | 91 | return $this; 92 | } 93 | 94 | /** 95 | * @return string 96 | */ 97 | public function getCidade() 98 | { 99 | return $this->cidade; 100 | } 101 | 102 | /** 103 | * @param string $complemento1 104 | * @return $this; 105 | */ 106 | public function setComplemento1($complemento1) 107 | { 108 | $this->complemento1 = $complemento1; 109 | 110 | return $this; 111 | } 112 | 113 | /** 114 | * @return string 115 | */ 116 | public function getComplemento1() 117 | { 118 | return $this->complemento1; 119 | } 120 | 121 | /** 122 | * @param string $complemento2 123 | * @return $this; 124 | */ 125 | public function setComplemento2($complemento2) 126 | { 127 | $this->complemento2 = $complemento2; 128 | 129 | return $this; 130 | } 131 | 132 | /** 133 | * @return string 134 | */ 135 | public function getComplemento2() 136 | { 137 | return $this->complemento2; 138 | } 139 | 140 | /** 141 | * @param string $endereco 142 | * @return $this; 143 | */ 144 | public function setEndereco($endereco) 145 | { 146 | $this->endereco = $endereco; 147 | 148 | return $this; 149 | } 150 | 151 | /** 152 | * @return string 153 | */ 154 | public function getEndereco() 155 | { 156 | return $this->endereco; 157 | } 158 | 159 | /** 160 | * @param int $id 161 | * @return $this; 162 | */ 163 | public function setId($id) 164 | { 165 | $this->id = $id; 166 | 167 | return $this; 168 | } 169 | 170 | /** 171 | * @return int 172 | */ 173 | public function getId() 174 | { 175 | return $this->id; 176 | } 177 | 178 | /** 179 | * @param string $uf 180 | * @return $this; 181 | */ 182 | public function setUf($uf) 183 | { 184 | $this->uf = $uf; 185 | 186 | return $this; 187 | } 188 | 189 | /** 190 | * @return string 191 | */ 192 | public function getUf() 193 | { 194 | return $this->uf; 195 | } 196 | 197 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/ConsultarAgenciaResult.php: -------------------------------------------------------------------------------- 1 | resultArray = $initialValues; 43 | 44 | $this->_failIfAtributeNotExiste = false; 45 | parent::__construct($initialValues); 46 | } 47 | 48 | /** 49 | * @return array 50 | */ 51 | public function getCodigoRetorno() 52 | { 53 | return $this->codigoRetorno; 54 | } 55 | 56 | /** 57 | * @return array 58 | */ 59 | public function getDescricaoRetorno() 60 | { 61 | return $this->descricaoRetorno; 62 | } 63 | 64 | /** 65 | * @return array 66 | */ 67 | public function getVersao() 68 | { 69 | return $this->versao; 70 | } 71 | 72 | /** 73 | * @return array 74 | */ 75 | public function getDataHoraRetorno() 76 | { 77 | return $this->dataHoraRetorno; 78 | } 79 | 80 | /** 81 | * @return array 82 | */ 83 | public function getAgencia() 84 | { 85 | return $this->agencia; 86 | } 87 | 88 | /** 89 | * @return array 90 | */ 91 | public function getResultArray() 92 | { 93 | return $this->resultArray; 94 | } 95 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/ConsultarColeta.php: -------------------------------------------------------------------------------- 1 | accessData = $accessData; 31 | } 32 | 33 | /** 34 | * @return \PhpSigep\Model\AccessData 35 | */ 36 | public function getAccessData() 37 | { 38 | return $this->accessData; 39 | } 40 | 41 | /** 42 | * @param String $tipoSolicitacao 43 | * @return $this; 44 | */ 45 | public function setTipoSolicitacao($tipoSolicitacao) 46 | { 47 | $this->tipoSolicitacao = $tipoSolicitacao; 48 | 49 | return $this; 50 | } 51 | 52 | /** 53 | * @return mixed 54 | */ 55 | public function getTipoSolicitacao() 56 | { 57 | return $this->tipoSolicitacao; 58 | } 59 | 60 | 61 | /** 62 | * @param String $tipoBusca 63 | * @return $this; 64 | */ 65 | public function setTipoBusca($tipoBusca) 66 | { 67 | $this->tipoBusca = $tipoBusca; 68 | 69 | return $this; 70 | } 71 | 72 | /** 73 | * @return mixed 74 | */ 75 | public function getTipoBusca() 76 | { 77 | return $this->tipoBusca; 78 | } 79 | 80 | /** 81 | * @param String $numeroPedido 82 | * @return $this; 83 | */ 84 | public function setNumeroPedido($numeroPedido) 85 | { 86 | $this->numeroPedido = $numeroPedido; 87 | 88 | return $this; 89 | } 90 | 91 | /** 92 | * @return mixed 93 | */ 94 | public function getNumeroPedido() 95 | { 96 | return $this->numeroPedido; 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/ConsultarColetaRetorno.php: -------------------------------------------------------------------------------- 1 | tipo = $tipo; 18 | return $this; 19 | } 20 | public function getTipo() 21 | { 22 | return $this->tipo; 23 | } 24 | public function setHistorico($historico) 25 | { 26 | $this->historico = $historico; 27 | return $this; 28 | } 29 | public function getHistorico() 30 | { 31 | return $this->historico; 32 | } 33 | public function setObjeto($objeto) 34 | { 35 | $this->objeto = $objeto; 36 | return $this; 37 | } 38 | public function getObjeto() 39 | { 40 | return $this->objeto; 41 | } 42 | public function setNumeroPedido($numeroPedido) 43 | { 44 | $this->numeroPedido = $numeroPedido; 45 | return $this; 46 | } 47 | public function getNumeroPedido() 48 | { 49 | return $this->numeroPedido; 50 | } 51 | public function setControleCliente($controleCliente) 52 | { 53 | $this->controleCliente = $controleCliente; 54 | return $this; 55 | } 56 | public function getControleCliente() 57 | { 58 | return $this->controleCliente; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/Destino.php: -------------------------------------------------------------------------------- 1 | altura = (float)$altura; 46 | } 47 | 48 | /** 49 | * @return float 50 | * Em centímetros 51 | */ 52 | public function getAltura() 53 | { 54 | return $this->altura; 55 | } 56 | 57 | /** 58 | * @param float $comprimento 59 | * Em centímetros 60 | */ 61 | public function setComprimento($comprimento) 62 | { 63 | $this->comprimento = (float)$comprimento; 64 | } 65 | 66 | /** 67 | * @return float 68 | * Em centímetros 69 | */ 70 | public function getComprimento() 71 | { 72 | return $this->comprimento; 73 | } 74 | 75 | /** 76 | * @param float $diametro 77 | * Em centímetros 78 | */ 79 | public function setDiametro($diametro) 80 | { 81 | $this->diametro = (float)$diametro; 82 | } 83 | 84 | /** 85 | * @return float 86 | * Em centímetros 87 | */ 88 | public function getDiametro() 89 | { 90 | return $this->diametro; 91 | } 92 | 93 | /** 94 | * @param float $largura 95 | * Em centímetros 96 | */ 97 | public function setLargura($largura) 98 | { 99 | $this->largura = (float)$largura; 100 | } 101 | 102 | /** 103 | * @return float 104 | * Em centímetros 105 | */ 106 | public function getLargura() 107 | { 108 | return $this->largura; 109 | } 110 | 111 | /** 112 | * @param int $tipo 113 | */ 114 | public function setTipo($tipo) 115 | { 116 | $this->tipo = $tipo; 117 | } 118 | 119 | /** 120 | * @return int 121 | */ 122 | public function getTipo() 123 | { 124 | return $this->tipo; 125 | } 126 | 127 | } 128 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/Etiqueta.php: -------------------------------------------------------------------------------- 1 | dv === null) { 29 | $numero = substr($this->getEtiquetaSemDv(), 2, 8); 30 | $fatoresDePonderacao = array(8, 6, 4, 2, 3, 5, 9, 7); 31 | $soma = 0; 32 | for ($i = 0; $i < 8; $i++) { 33 | $soma += ($numero[$i] * $fatoresDePonderacao[$i]); 34 | } 35 | 36 | $modulo = $soma % 11; 37 | if ($modulo == 0) { 38 | $this->dv = 5; 39 | } else { 40 | if ($modulo == 1) { 41 | $this->dv = 0; 42 | } else { 43 | $this->dv = 11 - $modulo; 44 | } 45 | } 46 | } 47 | 48 | return $this->dv; 49 | } 50 | 51 | /** 52 | * @param int $dv 53 | */ 54 | public function setDv($dv) 55 | { 56 | $this->dv = $dv; 57 | } 58 | 59 | /** 60 | * @return string 61 | */ 62 | public function getEtiquetaSemDv() 63 | { 64 | if (!$this->etiquetaSemDv) { 65 | $comDv = $this->getEtiquetaComDv(); 66 | $this->etiquetaSemDv = substr($comDv, 0, 10) . substr($comDv, 11); 67 | } 68 | 69 | return $this->etiquetaSemDv; 70 | } 71 | 72 | /** 73 | * @param string $etiquetaSemDv 74 | */ 75 | public function setEtiquetaSemDv($etiquetaSemDv) 76 | { 77 | $etiquetaSemDv = str_replace(' ', '', $etiquetaSemDv); 78 | $this->etiquetaSemDv = $etiquetaSemDv; 79 | } 80 | 81 | /** 82 | * @return string 83 | */ 84 | public function getEtiquetaComDv() 85 | { 86 | if (!$this->etiquetaComDv) { 87 | $semDv = $this->getEtiquetaSemDv(); 88 | $this->etiquetaComDv = substr($semDv, 0, 10) . $this->getDv() . substr($semDv, 10); 89 | } 90 | 91 | return $this->etiquetaComDv; 92 | } 93 | 94 | /** 95 | * @param string $etiquetaComDv 96 | */ 97 | public function setEtiquetaComDv($etiquetaComDv) 98 | { 99 | $this->etiquetaComDv = $etiquetaComDv; 100 | } 101 | 102 | /** 103 | * @return string 104 | */ 105 | public function getNumeroSemDv() 106 | { 107 | return substr($this->getEtiquetaSemDv(), 2, 8); 108 | } 109 | 110 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/Exception.php: -------------------------------------------------------------------------------- 1 | idPlp = $idPlp; 24 | 25 | return $this; 26 | } 27 | 28 | /** 29 | * @return int 30 | */ 31 | public function getIdPlp() 32 | { 33 | return (int)$this->idPlp; 34 | } 35 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/GeraDigitoVerificadorEtiquetas.php: -------------------------------------------------------------------------------- 1 | accessData = $accessData; 29 | } 30 | 31 | /** 32 | * @return \PhpSigep\Model\AccessData 33 | */ 34 | public function getAccessData() 35 | { 36 | return $this->accessData; 37 | } 38 | 39 | /** 40 | * @param Etiqueta $etiqueta 41 | */ 42 | public function addEtiqueta($etiqueta) 43 | { 44 | $this->etiquetas[] = $etiqueta; 45 | } 46 | 47 | /** 48 | * @param Etiqueta[] $etiquetas 49 | */ 50 | public function setEtiquetas(array $etiquetas) 51 | { 52 | $this->etiquetas = $etiquetas; 53 | } 54 | 55 | /** 56 | * @return Etiqueta[] 57 | */ 58 | public function getEtiquetas() 59 | { 60 | return (array)$this->etiquetas; 61 | } 62 | 63 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/ListarAgenciasCliqueRetireResult.php: -------------------------------------------------------------------------------- 1 | resultArray = $initialValues; 43 | 44 | $this->_failIfAtributeNotExiste = false; 45 | parent::__construct($initialValues); 46 | } 47 | 48 | /** 49 | * @return array 50 | */ 51 | public function getCodigoRetorno() 52 | { 53 | return $this->codigoRetorno; 54 | } 55 | 56 | /** 57 | * @return array 58 | */ 59 | public function getDescricaoRetorno() 60 | { 61 | return $this->descricaoRetorno; 62 | } 63 | 64 | /** 65 | * @return array 66 | */ 67 | public function getVersao() 68 | { 69 | return $this->versao; 70 | } 71 | 72 | /** 73 | * @return array 74 | */ 75 | public function getDataHoraRetorno() 76 | { 77 | return $this->dataHoraRetorno; 78 | } 79 | 80 | /** 81 | * @return array 82 | */ 83 | public function getListaAgencias() 84 | { 85 | return $this->listaAgencias; 86 | } 87 | 88 | /** 89 | * @return array 90 | */ 91 | public function getResultArray() 92 | { 93 | return $this->resultArray; 94 | } 95 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/LogisticaReversaPedidoResposta.php: -------------------------------------------------------------------------------- 1 | return = $return; 27 | 28 | if (isset($return->resultado_solicitacao) && is_object($return->resultado_solicitacao)){ 29 | if (sizeof((array)$return->resultado_solicitacao)>0){ 30 | $this->coletas_solicitadas = $return->resultado_solicitacao; 31 | } 32 | 33 | if (sizeof((array)$return->coleta)>0){ 34 | $this->coletas_solicitadas = $return->coleta; 35 | } 36 | } 37 | 38 | return $this; 39 | } 40 | 41 | /** 42 | * @return string 43 | */ 44 | public function getReturn() 45 | { 46 | return $this->return; 47 | } 48 | 49 | /** 50 | * @return string 51 | */ 52 | public function getColeta() 53 | { 54 | return $this->coletas_solicitadas; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/LogisticaReversaProduto.php: -------------------------------------------------------------------------------- 1 | msg_erro = $msgErro; 75 | } 76 | 77 | /** 78 | * @return string 79 | */ 80 | public function getErrorMsg() 81 | { 82 | return $this->msg_erro; 83 | } 84 | 85 | 86 | /** 87 | * @param string cod_erro 88 | */ 89 | public function setErrorCode($codErro) 90 | { 91 | $this->cod_erro = $codErro; 92 | } 93 | /** 94 | * @return string 95 | */ 96 | public function getCodErro() 97 | { 98 | return $this->cod_erro; 99 | } 100 | 101 | 102 | /** 103 | * @param array 104 | */ 105 | /* 106 | public function setProduto() 107 | 108 | { 109 | $this->produto = array( 110 | "codigo" => $this->codigo, 111 | "tipo" => $this->tipo, 112 | "qtd" => $this->qtd 113 | ); 114 | } 115 | */ 116 | /** 117 | * @param string 118 | */ 119 | public function setCodigo($Codigo) 120 | { 121 | $this->codigo = $Codigo; 122 | } 123 | 124 | /** 125 | * @param string 126 | */ 127 | public function setTipo($Tipo) 128 | { 129 | $this->tipo = $Tipo; 130 | } 131 | 132 | /** 133 | * @param string 134 | */ 135 | public function setQtd($Qtd) 136 | { 137 | $this->qtd = $Qtd; 138 | } 139 | 140 | /** 141 | * @param array 142 | */ 143 | public function getDados() 144 | { 145 | $this->produto = array( 146 | "codigo" => $this->codigo, 147 | "tipo" => $this->tipo, 148 | "qtd" => $this->qtd, 149 | ); 150 | return $this->produto; 151 | } 152 | 153 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/ObjCol.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | class ObjCol extends AbstractModel 8 | { 9 | /* 10 | * Obrigatorio 11 | */ 12 | 13 | protected $item; 14 | /* 15 | * Nao Obrigatorio 16 | */ 17 | protected $desc; 18 | /* 19 | * Nao Obrigatorio 20 | */ 21 | protected $entrega; 22 | /* 23 | * Nao Obrigatorio 24 | */ 25 | protected $num; 26 | /* 27 | * Nao Obrigatorio 28 | */ 29 | protected $id; 30 | 31 | public function getItem() 32 | { 33 | return $this->item; 34 | } 35 | 36 | public function getDesc() 37 | { 38 | return $this->desc; 39 | } 40 | 41 | public function getEntrega() 42 | { 43 | return $this->entrega; 44 | } 45 | 46 | public function getNum() 47 | { 48 | return $this->num; 49 | } 50 | 51 | public function getId() 52 | { 53 | return $this->id; 54 | } 55 | 56 | public function setItem($item) 57 | { 58 | $this->item = $item; 59 | return $this; 60 | } 61 | 62 | public function setDesc($desc) 63 | { 64 | $this->desc = $desc; 65 | return $this; 66 | } 67 | 68 | public function setEntrega($entrega) 69 | { 70 | $this->entrega = $entrega; 71 | return $this; 72 | } 73 | 74 | public function setNum($num) 75 | { 76 | $this->num = $num; 77 | return $this; 78 | } 79 | 80 | public function setId($id) 81 | { 82 | $this->id = $id; 83 | return $this; 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/PreListaDePostagem.php: -------------------------------------------------------------------------------- 1 | accessData = $accessData; 41 | } 42 | 43 | /** 44 | * @return \PhpSigep\Model\AccessData 45 | */ 46 | public function getAccessData() 47 | { 48 | return ($this->accessData ? $this->accessData : Bootstrap::getConfig()->getAccessData()); 49 | } 50 | 51 | /** 52 | * @param \PhpSigep\Model\ObjetoPostal[] $encomendas 53 | */ 54 | public function setEncomendas($encomendas) 55 | { 56 | $this->encomendas = $encomendas; 57 | } 58 | 59 | /** 60 | * @return \PhpSigep\Model\ObjetoPostal[] 61 | */ 62 | public function getEncomendas() 63 | { 64 | return $this->encomendas; 65 | } 66 | 67 | /** 68 | * @param \PhpSigep\Model\Remetente $remetente 69 | */ 70 | public function setRemetente($remetente) 71 | { 72 | $this->remetente = $remetente; 73 | } 74 | 75 | /** 76 | * @return \PhpSigep\Model\Remetente 77 | */ 78 | public function getRemetente() 79 | { 80 | return $this->remetente; 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/Proxy.php: -------------------------------------------------------------------------------- 1 | host; 35 | } 36 | 37 | /** 38 | * @param string $host 39 | */ 40 | public function setHost($host) 41 | { 42 | $this->host = $host; 43 | } 44 | 45 | /** 46 | * @return int 47 | */ 48 | public function getPort() 49 | { 50 | return $this->port; 51 | } 52 | 53 | /** 54 | * @param int $port 55 | */ 56 | public function setPort($port) 57 | { 58 | $this->port = $port; 59 | } 60 | 61 | /** 62 | * @return string 63 | */ 64 | public function getLogin() 65 | { 66 | return $this->login; 67 | } 68 | 69 | /** 70 | * @param string $login 71 | */ 72 | public function setLogin($login) 73 | { 74 | $this->login = $login; 75 | } 76 | 77 | /** 78 | * @return string 79 | */ 80 | public function getPassword() 81 | { 82 | 83 | return $this->password; 84 | } 85 | 86 | /** 87 | * @param string $password 88 | */ 89 | public function setPassword($password) 90 | { 91 | $this->password = $password; 92 | } 93 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/RastrearObjetoResultado.php: -------------------------------------------------------------------------------- 1 | etiqueta = $etiqueta; 26 | 27 | return $this; 28 | } 29 | 30 | /** 31 | * @return \PhpSigep\Model\Etiqueta 32 | */ 33 | public function getEtiqueta() 34 | { 35 | return $this->etiqueta; 36 | } 37 | 38 | /** 39 | * @param \PhpSigep\Model\RastrearObjetoEvento[] $eventos 40 | * @return $this; 41 | */ 42 | public function setEventos(array $eventos) 43 | { 44 | $this->eventos = $eventos; 45 | 46 | return $this; 47 | } 48 | 49 | /** 50 | * @param \PhpSigep\Model\RastrearObjetoEvento[] $eventos 51 | * @return $this; 52 | */ 53 | public function addEvento(RastrearObjetoEvento $evento) 54 | { 55 | if (!is_array($this->eventos)) { 56 | $this->eventos = array(); 57 | } 58 | 59 | $this->eventos[] = $evento; 60 | 61 | return $this; 62 | } 63 | 64 | /** 65 | * @return \PhpSigep\Model\RastrearObjetoEvento[] 66 | */ 67 | public function getEventos() 68 | { 69 | return $this->eventos; 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/ServicoAdicional.php: -------------------------------------------------------------------------------- 1 | getCodigoServicoAdicional(); 36 | } 37 | 38 | /** 39 | * @param int $codigoServicoAdicional 40 | */ 41 | public function setCodigoServicoAdicional($codigoServicoAdicional) 42 | { 43 | $this->codigoServicoAdicional = $codigoServicoAdicional; 44 | } 45 | 46 | /** 47 | * @return int 48 | */ 49 | public function getCodigoServicoAdicional() 50 | { 51 | return $this->codigoServicoAdicional; 52 | } 53 | 54 | /** 55 | * @param float $valorDeclarado 56 | */ 57 | public function setValorDeclarado($valorDeclarado) 58 | { 59 | $this->valorDeclarado = $valorDeclarado; 60 | } 61 | 62 | /** 63 | * @return float 64 | */ 65 | public function getValorDeclarado() 66 | { 67 | return (float)$this->valorDeclarado; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/SolicitaEtiquetas.php: -------------------------------------------------------------------------------- 1 | accessData ? $this->accessData : Bootstrap::getConfig()->getAccessData()); 40 | } 41 | 42 | /** 43 | * @param AccessData $accessData 44 | * Opcional. 45 | * Quando null será usado o valor retornado pelo método {@link \PhpSigep\Bootstrap::getConfig() } 46 | */ 47 | public function setAccessData(AccessData $accessData) 48 | { 49 | $this->accessData = $accessData; 50 | } 51 | 52 | /** 53 | * @return int 54 | */ 55 | public function getQtdEtiquetas() 56 | { 57 | return $this->qtdEtiquetas; 58 | } 59 | 60 | /** 61 | * @param int $qtdEtiquetas 62 | */ 63 | public function setQtdEtiquetas($qtdEtiquetas) 64 | { 65 | $this->qtdEtiquetas = $qtdEtiquetas; 66 | } 67 | 68 | /** 69 | * @return ServicoDePostagem 70 | */ 71 | public function getServicoDePostagem() 72 | { 73 | return $this->servicoDePostagem; 74 | } 75 | 76 | /** 77 | * Atribui para modoMultiplasRequisicoes true 78 | */ 79 | public function setModoMultiplasRequisicoes(){ 80 | $this->modoMultiplasRequisicoes = true; 81 | } 82 | 83 | /** 84 | * Atribui para modoMultiplasRequisicoes false 85 | */ 86 | public function setModoUmaRequisicao(){ 87 | $this->modoMultiplasRequisicoes = false; 88 | } 89 | 90 | /** 91 | * 92 | * @return boolean 93 | */ 94 | public function isModoMultiplasRequisicoes(){ 95 | return $this->modoMultiplasRequisicoes; 96 | } 97 | 98 | /** 99 | * @param int|ServicoDePostagem $servicoDePostagem 100 | * @throws \PhpSigep\InvalidArgument 101 | */ 102 | public function setServicoDePostagem($servicoDePostagem) 103 | { 104 | if (is_string($servicoDePostagem)) { 105 | $servicoDePostagem = new \PhpSigep\Model\ServicoDePostagem($servicoDePostagem); 106 | } 107 | 108 | if (!($servicoDePostagem instanceof ServicoDePostagem)) { 109 | throw new InvalidArgument('Serviço de postagem deve ser uma string ou uma instância de ' . 110 | '\PhpSigep\Model\ServicoDePostagem.'); 111 | } 112 | 113 | $this->servicoDePostagem = $servicoDePostagem; 114 | } 115 | 116 | } 117 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/SolicitaXmlPlpResult.php: -------------------------------------------------------------------------------- 1 | resultArray = $initialValues; 48 | 49 | $this->_failIfAtributeNotExiste = false; 50 | parent::__construct($initialValues); 51 | } 52 | 53 | /** 54 | * @return array 55 | */ 56 | public function getTipoArquivo() 57 | { 58 | return $this->tipo_arquivo; 59 | } 60 | 61 | /** 62 | * @return array 63 | */ 64 | public function getVersaoArquivo() 65 | { 66 | return $this->versao_arquivo; 67 | } 68 | 69 | /** 70 | * @return array 71 | */ 72 | public function getPlp() 73 | { 74 | return $this->plp; 75 | } 76 | 77 | /** 78 | * @return array 79 | */ 80 | public function getRemetente() 81 | { 82 | return $this->remetente; 83 | } 84 | 85 | /** 86 | * @return array 87 | */ 88 | public function getFormaPagamento() 89 | { 90 | return $this->forma_pagamento; 91 | } 92 | 93 | /** 94 | * @return array 95 | */ 96 | public function getObjetoPostal() 97 | { 98 | return $this->objeto_postal; 99 | } 100 | 101 | /** 102 | * @return array 103 | */ 104 | public function getResultArray() 105 | { 106 | return $this->resultArray; 107 | } 108 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/SolicitarPostagemReversa.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | class SolicitarPostagemReversa extends AbstractModel 9 | { 10 | 11 | /** 12 | * @var \PhpSigep\Model\AccessData 13 | */ 14 | protected $AccessData; 15 | 16 | /** 17 | * @var \PhpSigep\Model\Destinatario 18 | */ 19 | protected $destinatario; 20 | 21 | /** 22 | * @var \PhpSigep\Model\ColetasSolicitadas 23 | */ 24 | protected $coletas_solicitadas; 25 | protected $contrato; 26 | protected $codigo_servico; 27 | 28 | /** 29 | * Get AccessData. 30 | * 31 | * @return \PhpSigep\Model\AccessData 32 | */ 33 | public function getAccessData() 34 | { 35 | return $this->AccessData; 36 | } 37 | 38 | /** 39 | * Get destinatario. 40 | * 41 | * @return \PhpSigep\Model\Destinatario 42 | */ 43 | public function getDestinatario() 44 | { 45 | return $this->destinatario; 46 | } 47 | 48 | /** 49 | * Get coletas_solicitadas. 50 | * 51 | * @return \PhpSigep\Model\coletas_solicitadas 52 | */ 53 | public function getColetas_solicitadas() 54 | { 55 | return $this->coletas_solicitadas; 56 | } 57 | 58 | /** 59 | * Set AccessData. 60 | * 61 | * @param \PhpSigep\Model\AccessData $AccessData 62 | * 63 | * @return SolicitarPostagemRervsa 64 | */ 65 | public function setAccessData(\PhpSigep\Model\AccessData $AccessData) 66 | { 67 | $this->AccessData = $AccessData; 68 | return $this; 69 | } 70 | 71 | /** 72 | * Set destinatario. 73 | * 74 | * @param \PhpSigep\Model\Destinatario $destinatario 75 | * 76 | * @return SolicitarPostagemRervsa 77 | */ 78 | public function setDestinatario(\PhpSigep\Model\Destinatario $destinatario) 79 | { 80 | $this->destinatario = $destinatario; 81 | return $this; 82 | } 83 | 84 | /** 85 | * Set coletas_solicitadas. 86 | * 87 | * @param \PhpSigep\Model\ColetasSolicitadas $coletas_solicitadas 88 | * 89 | * @return SolicitarPostagemRervsa 90 | */ 91 | public function setColetas_solicitadas(\PhpSigep\Model\ColetasSolicitadas $coletas_solicitadas) 92 | { 93 | $this->coletas_solicitadas = $coletas_solicitadas; 94 | return $this; 95 | } 96 | 97 | public function getContrato() 98 | { 99 | return $this->contrato; 100 | } 101 | 102 | public function setContrato($contrato) 103 | { 104 | $this->contrato = $contrato; 105 | return $this; 106 | } 107 | 108 | public function getCodigo_servico() 109 | { 110 | return $this->codigo_servico; 111 | } 112 | 113 | public function setCodigo_servico($codigo_servico) 114 | { 115 | $this->codigo_servico = $codigo_servico; 116 | return $this; 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/SolicitarPostagemReversaRetorno.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | class SolicitarPostagemReversaRetorno extends AbstractModel 8 | { 9 | 10 | protected $tipo; 11 | protected $numero_coleta; 12 | protected $numero_etiqueta; 13 | protected $id_obj; 14 | protected $status_objeto; 15 | protected $prazo; 16 | protected $data_solicitacao; 17 | protected $hora_solicitacao; 18 | protected $codigo_erro; 19 | protected $qtd_objeto; 20 | protected $descricao_erro; 21 | 22 | public function setTipo($tipo) 23 | { 24 | $this->tipo = $tipo; 25 | return $this; 26 | } 27 | 28 | public function setNumero_coleta($numero_coleta) 29 | { 30 | $this->numero_coleta = $numero_coleta; 31 | return $this; 32 | } 33 | 34 | public function setId_obj($id_obj) 35 | { 36 | $this->id_obj = $id_obj; 37 | return $this; 38 | } 39 | 40 | public function setStatus_objeto($status_objeto) 41 | { 42 | $this->status_objeto = $status_objeto; 43 | return $this; 44 | } 45 | 46 | public function setPrazo($prazo) 47 | { 48 | $this->prazo = $prazo; 49 | return $this; 50 | } 51 | 52 | public function setData_solicitacao($data_solicitacao) 53 | { 54 | $this->data_solicitacao = $data_solicitacao; 55 | return $this; 56 | } 57 | 58 | public function getNumero_etiqueta() 59 | { 60 | return $this->numero_etiqueta; 61 | } 62 | 63 | public function getHora_solicitacao() 64 | { 65 | return $this->hora_solicitacao; 66 | } 67 | 68 | public function getCodigo_erro() 69 | { 70 | return $this->codigo_erro; 71 | } 72 | 73 | public function getDescricao_erro() 74 | { 75 | return $this->descricao_erro; 76 | } 77 | 78 | public function setNumero_etiqueta($numero_etiqueta) 79 | { 80 | $this->numero_etiqueta = $numero_etiqueta; 81 | return $this; 82 | } 83 | 84 | public function setHora_solicitacao($hora_solicitacao) 85 | { 86 | $this->hora_solicitacao = $hora_solicitacao; 87 | return $this; 88 | } 89 | 90 | public function setCodigo_erro($codigo_erro) 91 | { 92 | $this->codigo_erro = $codigo_erro; 93 | return $this; 94 | } 95 | 96 | public function setDescricao_erro($descricao_erro) 97 | { 98 | $this->descricao_erro = $descricao_erro; 99 | return $this; 100 | } 101 | 102 | public function getTipo() 103 | { 104 | return $this->tipo; 105 | } 106 | 107 | public function getNumero_coleta() 108 | { 109 | return $this->numero_coleta; 110 | } 111 | 112 | public function getId_obj() 113 | { 114 | return $this->id_obj; 115 | } 116 | 117 | public function getStatus_objeto() 118 | { 119 | return $this->status_objeto; 120 | } 121 | 122 | public function getPrazo() 123 | { 124 | return $this->prazo; 125 | } 126 | 127 | public function getData_solicitacao() 128 | { 129 | return $this->data_solicitacao; 130 | } 131 | 132 | public function getQtd_objeto() 133 | { 134 | return $this->qtd_objeto; 135 | } 136 | 137 | public function setQtd_objeto($qtd_objeto) 138 | { 139 | $this->qtd_objeto = $qtd_objeto; 140 | return $this; 141 | } 142 | } 143 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/VerificaDisponibilidadeServico.php: -------------------------------------------------------------------------------- 1 | accessData ? $this->accessData : Bootstrap::getConfig()->getAccessData()); 37 | } 38 | 39 | /** 40 | * @param \PhpSigep\Model\AccessData $accessData 41 | * Opcional. 42 | * Quando null será usado o valor retornado pelo método {@link \PhpSigep\Bootstrap::getConfig() } 43 | */ 44 | public function setAccessData(AccessData $accessData) 45 | { 46 | $this->accessData = $accessData; 47 | } 48 | 49 | /** 50 | * @return string 51 | */ 52 | public function getCepDestino() 53 | { 54 | return $this->cepDestino; 55 | } 56 | 57 | /** 58 | * @param string $cepDestino 59 | */ 60 | public function setCepDestino($cepDestino) 61 | { 62 | $this->cepDestino = preg_replace('/[^\d]/', '', $cepDestino); 63 | } 64 | 65 | /** 66 | * @return string 67 | */ 68 | public function getCepOrigem() 69 | { 70 | return $this->cepOrigem; 71 | } 72 | 73 | /** 74 | * @param string $cepOrigem 75 | */ 76 | public function setCepOrigem($cepOrigem) 77 | { 78 | $this->cepOrigem = preg_replace('/[^\d]/', '', $cepOrigem); 79 | } 80 | 81 | /** 82 | * @return ServicoDePostagem[] 83 | */ 84 | public function getServicos() 85 | { 86 | return $this->servicos; 87 | } 88 | 89 | /** 90 | * @param \PhpSigep\Model\ServicoDePostagem|\PhpSigep\Model\ServicoDePostagem[] $servicos 91 | * @throws \PhpSigep\InvalidArgument 92 | */ 93 | public function setServicos($servicos) 94 | { 95 | $piece = $servicos; 96 | if (is_array($servicos)) { 97 | $piece = null; 98 | if (count($servicos)) { 99 | $piece = reset($servicos); 100 | } 101 | } else { 102 | $servicos = array($servicos); 103 | } 104 | if ($piece && !($piece instanceof ServicoDePostagem)) { 105 | throw new InvalidArgument('Este parâmetro precisa ser uma instância de ' . 106 | '"PhpSigep\Model\ServicoDePostagem" ou um array de "PhpSigep\Model\ServicoDePostagem"'); 107 | } 108 | 109 | $this->servicos = $servicos; 110 | } 111 | 112 | /** 113 | * @param ServicoDePostagem $servico 114 | * @return $this 115 | */ 116 | public function addServico(ServicoDePostagem $servico) 117 | { 118 | $this->servicos[] = $servico; 119 | return $this; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /src/PhpSigep/Model/VerificaDisponibilidadeServicoResposta.php: -------------------------------------------------------------------------------- 1 | disponivel = $disponivel; 22 | 23 | return $this; 24 | } 25 | 26 | /** 27 | * @return boolean 28 | */ 29 | public function getDisponivel() 30 | { 31 | return $this->disponivel; 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /src/PhpSigep/Model/VerificarStatusCartaoPostagemResposta.php: -------------------------------------------------------------------------------- 1 | return = $return; 22 | 23 | return $this; 24 | } 25 | 26 | /** 27 | * @return string 28 | */ 29 | public function getReturn() 30 | { 31 | return $this->return; 32 | } 33 | } -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/AbstractChancela.php: -------------------------------------------------------------------------------- 1 | setLeftPos($x); 32 | $this->setTopPos($y); 33 | $this->setNomeRemetente($nomeRemetente); 34 | $this->setAccessData($accessData); 35 | } 36 | 37 | public function setLeftPos($x) 38 | { 39 | if (is_numeric($x) === false) { 40 | throw new \InvalidArgumentException('Parâmetro $x precisa ser do tipo numérico'); 41 | } 42 | $this->x = $x; 43 | } 44 | 45 | public function setTopPos($y) 46 | { 47 | if (is_numeric($y) === false) { 48 | throw new \InvalidArgumentException('Parâmetro $x precisa ser do tipo numérico'); 49 | } 50 | $this->y = $y; 51 | } 52 | 53 | public function setNomeRemetente($nomeRemetente) 54 | { 55 | if (is_string($nomeRemetente) === false) { 56 | throw new \InvalidArgumentException('Parâmetro $nomeRemetente precisa ser do tipo string'); 57 | } 58 | $this->nomeRemetente = $nomeRemetente; 59 | } 60 | 61 | public function setAccessData(\PhpSigep\Model\AccessData $accessData) 62 | { 63 | $this->accessData = $accessData; 64 | } 65 | 66 | public abstract function draw(\PhpSigep\Pdf\ImprovedFPDF $pdf); 67 | } -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/Carta.php: -------------------------------------------------------------------------------- 1 | saveState(); 16 | 17 | // quantos mm cabem dentro de um pt do pdf 18 | $un = 72 / 25.4; 19 | 20 | // Desenha o elipse 21 | $k = $pdf->k; 22 | $wRect = $un * 30 / $k; 23 | $h = $un * 28 / $k; 24 | $lineWidth = 2 / $k; 25 | $pdf->SetLineWidth($lineWidth); 26 | $x = $this->x; 27 | $y = $this->y; 28 | $rx = $wRect / 2; 29 | $ry = $h / 2; 30 | $elipse = new Elipse(); 31 | $pdf->SetDrawColor(0, 0, 0); 32 | $elipse->ellipse($pdf, $x, $y, $rx, $ry); 33 | 34 | // Escreve o texto 35 | $pdf->SetFont('Arial', 'BI'); 36 | $pdf->SetXY($x, $y + 10 / $k); 37 | $fontSize = 15; 38 | $texto = 'Carta'; 39 | $pdf->SetFontSize($fontSize); 40 | $pdf->Cell($wRect, 23 / $k, $texto, 0, 2, 'C'); 41 | 42 | //Faz os dois riscos brancos da parte inferior - lado esquerdo 43 | $pdf->SetDrawColor(255, 255, 255); 44 | $pdf->SetLineWidth(3 / $k); 45 | $x1 = $x + 11 / $k; 46 | $x2 = $x1 - 1 / $k; 47 | $y1 = $y + $h - 15.5 / $k; 48 | $y2 = $y1 + (1 / $k); 49 | $pdf->Line($x1, $y1, $x2, $y2); 50 | $space = 3.5 / $k; 51 | $x1 += $space; 52 | $x2 = $x1 - 1 / $k; 53 | $y1 += $space; 54 | $y2 = $y1 + (1 / $k); 55 | $pdf->Line($x1, $y1, $x2, $y2); 56 | $x1 = $x + 19.3 / $k; 57 | $x2 = $x1 - .85 / $k; 58 | $y1 = $y + 57.26 / $k; 59 | $y2 = $y1 + .85 / $k; 60 | $pdf->Line($x1, $y1, $x2, $y2); 61 | 62 | //Faz os dois riscos brancos da parte inferior - lado direito 63 | $pdf->SetDrawColor(255, 255, 255); 64 | $pdf->SetLineWidth(3 / $k); 65 | $x1 = $x + $wRect - 7.5 / $k; 66 | $x2 = $x1 + 1 / $k; 67 | $y1 = $y + $h - 17.5 / $k; 68 | $y2 = $y1 + (1 / $k); 69 | $pdf->Line($x1, $y1, $x2, $y2); 70 | $space = 3.5 / $k; 71 | $x1 += $space - 7.6 / $k; 72 | $x2 = $x1 + 1 / $k; 73 | $y1 += $space - .4 / $k; 74 | $y2 = $y1 + (1 / $k); 75 | $pdf->Line($x1, $y1, $x2, $y2); 76 | $x1 = $x1 - 4 / $k; 77 | $x2 = $x1 + .85 / $k; 78 | $y1 = $y + 58.26 / $k; 79 | $y2 = $y1 + .85 / $k; 80 | $pdf->Line($x1, $y1, $x2, $y2); 81 | 82 | // Número contrato e DR 83 | $pdf->SetFont('', '', 6); 84 | $texto = $this->accessData->getNumeroContrato() . '/' . $this->accessData->getAnoContrato( 85 | ) . '-DR/' . $this->accessData->getDiretoria()->getSigla(); 86 | $pdf->Cell($wRect, 6 / $k, $texto, 0, 2, 'C'); 87 | 88 | // Nome do remetente 89 | $pdf->SetFont('', 'B', 9); 90 | $pdf->MultiCell($wRect, 9 / $k, $pdf->_($this->nomeRemetente), 0, 'C'); 91 | 92 | // Escreve CORREIOS na parte inferior 93 | $text = 'CORREIOS'; 94 | $pdf->SetDrawColor(255, 255, 255); 95 | $pdf->SetLineWidth(15 / $k); 96 | $x1 = $x + 24.5 / $k; 97 | $x2 = $x1 + $pdf->GetStringWidth($text) - 9.5 / $k; 98 | $y1 = $y + $h - 6 / $k; 99 | $pdf->Line($x1, $y1, $x2, $y1); 100 | $pdf->SetFontSize(9); 101 | $circularText = new CircularText(); 102 | $circularText->CircularText($pdf, $x + $wRect / 2 + .5, ($y / $k) - 50, 80, $text, 'bottom', 110); 103 | 104 | $pdf->restoreLastState(); 105 | } 106 | 107 | } 108 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/Carta2016.php: -------------------------------------------------------------------------------- 1 | saveState(); 15 | 16 | // quantos mm cabem dentro de um pt do pdf 17 | $un = 72 / 25.4; 18 | 19 | // Desenha o elipse 20 | $k = $pdf->k; 21 | $wRect = $un * 30 / $k; 22 | $h = $un * 28 / $k; 23 | $lineWidth = 2 / $k; 24 | $pdf->SetLineWidth($lineWidth); 25 | $x = $this->x; 26 | $y = $this->y; 27 | $rx = $wRect / 2; 28 | $ry = $h / 2; 29 | $elipse = new Elipse(); 30 | $pdf->SetDrawColor(0, 0, 0); 31 | $elipse->ellipse($pdf, $x, $y, $rx, $ry); 32 | 33 | // Escreve o texto 34 | $pdf->SetFont('Arial', 'BI'); 35 | $pdf->SetXY($x, $y + 10 / $k); 36 | $fontSize = 15; 37 | $texto = 'Carta'; 38 | $pdf->SetFontSize($fontSize); 39 | $pdf->Cell($wRect, 23 / $k, $texto, 0, 2, 'C'); 40 | 41 | // Número contrato e DR 42 | $pdf->SetFont('', '', 7); 43 | $texto = $this->accessData->getNumeroContrato() . '/' . $this->accessData->getAnoContrato( 44 | ) . '-DR/' . $this->accessData->getDiretoria()->getSigla(); 45 | $pdf->Cell($wRect, 6 / $k, $texto, 0, 2, 'C'); 46 | 47 | // Nome do remetente 48 | $pdf->SetFont('', 'B', 9); 49 | $pdf->MultiCell($wRect, 9 / $k, $pdf->_($this->nomeRemetente), 0, 'C'); 50 | 51 | // Insere a logo do correios na parte inferior 52 | $pdf->SetDrawColor(255, 255, 255); 53 | $pdf->SetLineWidth(15 / $k); 54 | $x1 = $x + 24.5 / $k; 55 | $x2 = $x1 + $pdf->GetStringWidth('CORREIOS') - 9.5 / $k; 56 | $y1 = $y + $h - 6 / $k; 57 | $pdf->Image(realpath(dirname(__FILE__)) . '/../correios-logo.png', $x1 - 2 , $y1 - 5); 58 | 59 | $pdf->restoreLastState(); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/Pac.php: -------------------------------------------------------------------------------- 1 | saveState(); 13 | 14 | // quantos mm cabem dentro de um pt do pdf 15 | $un = 72 / 25.4; 16 | 17 | // Desenha o retangulo 18 | $pdf->SetFillColor(0, 0, 0); 19 | $pdf->SetDrawColor(0, 0, 0); 20 | $k = $pdf->k; 21 | $wRect = $un * 31.5 / $k; 22 | $h = $un * 22.5 / $k; 23 | $lineWidth = 2 / $k; 24 | $pdf->SetLineWidth($lineWidth); 25 | $x = $this->x; 26 | $y = $this->y; 27 | $pdf->Rect($x, $y, $wRect, $h); 28 | 29 | // Escreve o texto PAC 30 | $pdf->SetFont('Arial', 'B', 27); 31 | $pdf->SetXY($x, $y + 4.5 / $k); 32 | $pdf->Cell($wRect, 27 / $k, 'PAC', 0, 2, 'C'); 33 | 34 | // Número contrato e DR 35 | $pdf->SetFont('', '', 6); 36 | $texto = $this->accessData->getNumeroContrato() . '/' . $this->accessData->getAnoContrato( 37 | ) . '-DR/' . $this->accessData->getDiretoria()->getSigla(); 38 | $pdf->Cell($wRect, 6 / $k, $texto, 0, 2, 'C'); 39 | 40 | // Nome do remetente 41 | $pdf->SetFont('', 'B', 9); 42 | $pdf->MultiCell($wRect, 9 / $k, $pdf->_($this->nomeRemetente), 0, 'C'); 43 | 44 | // Escreve o texto CORREIOS 45 | $pdf->SetDrawColor(255, 255, 255); 46 | $pdf->SetLineWidth(2 / $k); 47 | 48 | $x1 = $x + (3.15 * $un / $k); 49 | $x2 = $x1 + (0.54 / $k); 50 | $y1 = $y + $h + (.45 / $k); 51 | $y2 = $y1 - (0.9 / $k); 52 | $space = 3.6 / $k; 53 | $pdf->Line($x1, $y1, $x2, $y2); 54 | $x1 += $space; 55 | $x2 += $space; 56 | $pdf->Line($x1, $y1, $x2, $y2); 57 | $x1 += $space; 58 | $x2 += $space; 59 | $pdf->Line($x1, $y1, $x2, $y2); 60 | 61 | $texto = 'CORREIOS'; 62 | $x1 += $space; 63 | $pdf->SetFontSize(9); 64 | $stringWidth = $pdf->GetStringWidth($texto); 65 | $x2 += $space + $stringWidth; 66 | $pdf->SetLineWidth(2.5 / $k); 67 | $pdf->Line($x1, $y + $h, $x2, $y + $h); 68 | $pdf->Text($x1, $y1 + .9, $texto); 69 | 70 | $x1 += $space + $pdf->GetStringWidth($texto); 71 | $x2 += $space; 72 | $pdf->Line($x1, $y1, $x2, $y2); 73 | $x1 += $space; 74 | $x2 += $space; 75 | $pdf->Line($x1, $y1, $x2, $y2); 76 | $x1 += $space; 77 | $x2 += $space; 78 | $pdf->Line($x1, $y1, $x2, $y2); 79 | 80 | $pdf->restoreLastState(); 81 | } 82 | } -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/Pac2016.php: -------------------------------------------------------------------------------- 1 | saveState(); 9 | 10 | // quantos mm cabem dentro de um pt do pdf 11 | $un = 72 / 25.4; 12 | 13 | // Desenha o retangulo 14 | $pdf->SetFillColor(0, 0, 0); 15 | $pdf->SetDrawColor(0, 0, 0); 16 | $k = $pdf->k; 17 | $wRect = $un * 31.5 / $k; 18 | $h = $un * 22.5 / $k; 19 | $lineWidth = 2 / $k; 20 | $pdf->SetLineWidth($lineWidth); 21 | $x = $this->x; 22 | $y = $this->y; 23 | $pdf->RoundedRect($x, $y, $wRect, $h, 5); 24 | 25 | // Escreve o texto PAC 26 | $pdf->SetFont('Arial', 'B', 27); 27 | $pdf->SetXY($x, $y + 4.5 / $k); 28 | $pdf->Cell($wRect, 27 / $k, 'PAC', 0, 2, 'C'); 29 | 30 | // Número contrato e DR 31 | $pdf->SetFont('', '', 7); 32 | $texto = $this->accessData->getNumeroContrato() . '/' . $this->accessData->getAnoContrato() 33 | . '-DR/' . $this->accessData->getDiretoria()->getSigla(); 34 | $pdf->Cell($wRect, 6 / $k, $texto, 0, 2, 'C'); 35 | 36 | // Nome do remetente 37 | $pdf->SetFont('', 'B', 9); 38 | $pdf->MultiCell($wRect, 8 / $k, $pdf->_($this->nomeRemetente), 0, 'C'); 39 | 40 | // Insere a logo do correios na parte inferior 41 | $pdf->SetDrawColor(255, 255, 255); 42 | $pdf->SetLineWidth(2 / $k); 43 | 44 | $x1 = $x + (3.15 * $un / $k); 45 | $x2 = $x1 + (0.54 / $k); 46 | $y1 = $y + $h + (.45 / $k); 47 | $y2 = $y1 - (0.9 / $k); 48 | $space = 3.6 / $k; 49 | $x1 += $space; 50 | $x2 += $space; 51 | $x1 += $space; 52 | $x2 += $space; 53 | 54 | $x1 += $space; 55 | $pdf->SetFontSize(9); 56 | $stringWidth = $pdf->GetStringWidth('CORREIOS'); 57 | $x2 += $space + $stringWidth; 58 | $pdf->SetLineWidth(2.5 / $k); 59 | $pdf->Line($x1, $y + $h, $x2, $y + $h); 60 | 61 | $pdf->Image(realpath(dirname(__FILE__)) . '/../correios-logo.png', $x1 , $y1 - 3); 62 | 63 | $pdf->restoreLastState(); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/Pac2018.php: -------------------------------------------------------------------------------- 1 | saveState(); 9 | 10 | // Desenha o retangulo 11 | $pdf->SetFillColor(0, 0, 0); 12 | $pdf->SetDrawColor(0, 0, 0); 13 | 14 | $x = $this->x; 15 | $y = $this->y; 16 | //$pdf->RoundedRect($x, $y, $wRect, $h, 5); 17 | $pdf->Circle($x, $y, 10, 'F'); 18 | 19 | $pdf->restoreLastState(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Chancela/Sedex2016.php: -------------------------------------------------------------------------------- 1 | setServicoDePostagem($tipoServico); 33 | } 34 | 35 | public function setServicoDePostagem($servicoPostagem) 36 | { 37 | $rClass = new \ReflectionClass(__CLASS__); 38 | $servicos = $rClass->getConstants(); 39 | 40 | if (in_array($servicoPostagem, $servicos) === false) { 41 | throw new \InvalidArgumentException('O serviço de postagem deve ser uma das constantes da classe'); 42 | } 43 | $this->tipoServico = $servicoPostagem; 44 | } 45 | 46 | public function draw(\PhpSigep\Pdf\ImprovedFPDF $pdf) 47 | { 48 | $pdf->saveState(); 49 | 50 | // quantos mm cabem dentro de um pt do pdf 51 | $un = 72 / 25.4; 52 | 53 | // Desenha o elipse 54 | $k = $pdf->k; 55 | $wRect = $un * 32 / $k; 56 | $h = $un * 20 / $k; 57 | $lineWidth = 2 / $k; 58 | $pdf->SetLineWidth($lineWidth); 59 | $x = $this->x; 60 | $y = $this->y; 61 | $rx = $wRect / 2; 62 | $ry = $h / 2; 63 | $elipse = new Elipse(); 64 | $pdf->SetDrawColor(0, 0, 0); 65 | $elipse->ellipse($pdf, $x, $y, $rx, $ry); 66 | 67 | // Escreve o texto Sedex 68 | $pdf->SetFont('Arial', 'BI'); 69 | $pdf->SetXY($x, $y + 5 / $k); 70 | $fontSize = 12; 71 | if ($this->tipoServico == self::SERVICE_E_SEDEX) { 72 | $texto = 'e-SEDEX'; 73 | } else if ($this->tipoServico == self::SERVICE_SEDEX) { 74 | $texto = 'SEDEX'; 75 | } else if ($this->tipoServico == self::SERVICE_SEDEX_10) { 76 | $fontSize = 11; 77 | $texto = 'SEDEX 10'; 78 | } else if ($this->tipoServico == self::SERVICE_SEDEX_12) { 79 | $fontSize = 11; 80 | $texto = 'SEDEX 12'; 81 | } else { 82 | if ($this->tipoServico == self::SERVICE_SEDEX_HOJE) { 83 | $fontSize = 11; 84 | $texto = 'SEDEX Hoje'; 85 | } 86 | } 87 | 88 | $pdf->SetFontSize($fontSize); 89 | $pdf->Cell($wRect, 18 / $k, $texto, 0, 2, 'C'); 90 | 91 | // Número contrato e DR 92 | $pdf->SetFont('', '', 7); 93 | $texto = $this->accessData->getNumeroContrato() . '/' . $this->accessData->getAnoContrato() 94 | . '-DR/' . $this->accessData->getDiretoria()->getSigla(); 95 | $pdf->Cell($wRect, 6 / $k, $texto, 0, 2, 'C'); 96 | 97 | // Nome do remetente 98 | $pdf->SetFont('', 'B', 9); 99 | $pdf->MultiCell($wRect, 10 / $k, $pdf->_($this->nomeRemetente), 0, 'C'); 100 | 101 | // Insere a logo do correios na parte inferior 102 | $pdf->SetDrawColor(255, 255, 255); 103 | $pdf->SetLineWidth(10 / $k); 104 | $x1 = $x - 4 / $k; 105 | $x2 = $x1 + $pdf->GetStringWidth('CORREIOS') + 40 / $k; 106 | $y1 = $y + $h - 3 / $k; 107 | $pdf->Line($x1, $y1, $x2, $y1); 108 | 109 | $pdf->Image(realpath(dirname(__FILE__)) . '/../correios-logo.png', $x1 + 9 , $y1 - 3); 110 | 111 | $pdf->restoreLastState(); 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Exception/InvalidChancelaEntry.php: -------------------------------------------------------------------------------- 1 | Error('Please use values unequal to zero for kerning'); 14 | } 15 | if ($fontwidth == 0) $pdf->Error('Please use values unequal to zero for font width'); 16 | //get width of every letter 17 | $t = 0; 18 | $iMax = strlen($text); 19 | for ($i = 0; $i < $iMax; $i++) { 20 | $w[$i] = $pdf->GetStringWidth($text[$i]); 21 | $w[$i] *= $kerning * $fontwidth; 22 | //total width of string 23 | $t += $w[$i]; 24 | } 25 | //circumference 26 | $u = ($r * 2) * M_PI; 27 | //total width of string in degrees 28 | $d = ($t / $u) * 360; 29 | $transf->StartTransform($pdf); 30 | // rotate matrix for the first letter to center the text 31 | // (half of total degrees) 32 | if ($align == 'top') { 33 | $transf->Rotate($pdf, $d / 2, $x, $y); 34 | } else { 35 | $transf->Rotate($pdf, -$d / 2, $x, $y); 36 | } 37 | $iMax = strlen($text); 38 | //run through the string 39 | for ($i = 0; $i < $iMax; $i++) { 40 | if ($align == 'top') { 41 | //rotate matrix half of the width of current letter + half of the width of preceding letter 42 | if ($i == 0) { 43 | $transf->Rotate($pdf, -(($w[$i] / 2) / $u) * 360, $x, $y); 44 | } else { 45 | $transf->Rotate($pdf, -(($w[$i] / 2 + $w[$i - 1] / 2) / $u) * 360, $x, $y); 46 | } 47 | if ($fontwidth != 1) { 48 | $transf->StartTransform($pdf); 49 | $transf->ScaleX($pdf, $fontwidth * 100, $x, $y); 50 | } 51 | $pdf->SetXY($x - $w[$i] / 2, $y - $r); 52 | } else { 53 | //rotate matrix half of the width of current letter + half of the width of preceding letter 54 | if ($i == 0) { 55 | $transf->Rotate($pdf, (($w[$i] / 2) / $u) * 360, $x, $y); 56 | } else { 57 | $transf->Rotate($pdf, (($w[$i] / 2 + $w[$i - 1] / 2) / $u) * 360, $x, $y); 58 | } 59 | if ($fontwidth != 1) { 60 | $transf->StartTransform($pdf); 61 | $transf->ScaleX($pdf, $fontwidth * 100, $x, $y); 62 | } 63 | $pdf->SetXY($x - $w[$i] / 2, $y + $r - ($pdf->FontSize)); 64 | } 65 | $pdf->Cell($w[$i], $pdf->FontSize, $text[$i], 0, 0, 'C'); 66 | if ($fontwidth != 1) { 67 | $transf->StopTransform($pdf); 68 | } 69 | } 70 | $transf->StopTransform($pdf); 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/Script/Elipse.php: -------------------------------------------------------------------------------- 1 | k; 23 | $h = $pdf->h; 24 | $pdf->_out( 25 | sprintf( 26 | '%.2f %.2f m %.2f %.2f %.2f %.2f %.2f %.2f c', 27 | ($x + $rx) * $k, 28 | ($h - $y) * $k, 29 | ($x + $rx) * $k, 30 | ($h - ($y - $ly)) * $k, 31 | ($x + $lx) * $k, 32 | ($h - ($y - $ry)) * $k, 33 | $x * $k, 34 | ($h - ($y - $ry)) * $k 35 | ) 36 | ); 37 | $pdf->_out( 38 | sprintf( 39 | '%.2f %.2f %.2f %.2f %.2f %.2f c', 40 | ($x - $lx) * $k, 41 | ($h - ($y - $ry)) * $k, 42 | ($x - $rx) * $k, 43 | ($h - ($y - $ly)) * $k, 44 | ($x - $rx) * $k, 45 | ($h - $y) * $k 46 | ) 47 | ); 48 | $pdf->_out( 49 | sprintf( 50 | '%.2f %.2f %.2f %.2f %.2f %.2f c', 51 | ($x - $rx) * $k, 52 | ($h - ($y + $ly)) * $k, 53 | ($x - $lx) * $k, 54 | ($h - ($y + $ry)) * $k, 55 | $x * $k, 56 | ($h - ($y + $ry)) * $k 57 | ) 58 | ); 59 | $pdf->_out( 60 | sprintf( 61 | '%.2f %.2f %.2f %.2f %.2f %.2f c %s', 62 | ($x + $lx) * $k, 63 | ($h - ($y + $ry)) * $k, 64 | ($x + $rx) * $k, 65 | ($h - ($y + $ly)) * $k, 66 | ($x + $rx) * $k, 67 | ($h - $y) * $k, 68 | $op 69 | ) 70 | ); 71 | } 72 | 73 | } -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/correios-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/src/PhpSigep/Pdf/correios-logo.png -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/logo-correios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/src/PhpSigep/Pdf/logo-correios.png -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/sema.php: -------------------------------------------------------------------------------- 1 | ?@[\\_\]\[{\|}~\r*]+ /','', $text); 24 | // encode 25 | $semacode = new Semacode(); 26 | if($type == 'png'){ 27 | $semacode->sendPNG($text); 28 | }elseif($type == 'svg'){ 29 | header('Content-Type: image/svg'); 30 | echo $semacode->asSVG($text); 31 | }else{ 32 | echo ''; 33 | echo $semacode->asHTMLTable($text); 34 | echo ''; 35 | } 36 | ?> 37 | -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/simbolo-sedex-expresso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/src/PhpSigep/Pdf/simbolo-sedex-expresso.png -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/simbolo-sedex-standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/src/PhpSigep/Pdf/simbolo-sedex-standard.png -------------------------------------------------------------------------------- /src/PhpSigep/Pdf/simbolo-sem-especificacao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stavarengo/php-sigep/9d721764874f9bb80ab066214af5ce26403c5c22/src/PhpSigep/Pdf/simbolo-sem-especificacao.png -------------------------------------------------------------------------------- /src/PhpSigep/Services/Exception.php: -------------------------------------------------------------------------------- 1 | $numeroEtiqueta, 17 | 'idPlp' => $idPlp, 18 | 'tipoBloqueio' => 'FRAUDE_BLOQUEIO', 19 | 'acao' => 'DEVOLVIDO_AO_REMETENTE', 20 | 'usuario' => $usuario, 21 | 'senha' => $senha 22 | ); 23 | 24 | $r = SoapClientFactory::getSoapClient()->bloquearObjeto($soapArgs); 25 | 26 | $errorCode = null; 27 | $errorMsg = null; 28 | $result = new Result(); 29 | if (!$r) { 30 | $errorCode = 0; 31 | } else if ($r instanceof \SoapFault) { 32 | $errorCode = $r->getCode(); 33 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 34 | $result->setSoapFault($r); 35 | } else if ($r instanceof \stdClass && property_exists($r, 'return')) { 36 | $status = new BloquearObjetoResposta(); 37 | $status->setReturn($r->return); 38 | $result->setResult($status); 39 | } else { 40 | $errorCode = 0; 41 | $errorMsg = "A resposta do Correios não está no formato esperado."; 42 | } 43 | 44 | $result->setErrorCode($errorCode); 45 | $result->setErrorMsg($errorMsg); 46 | 47 | return $result; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/BuscaCliente.php: -------------------------------------------------------------------------------- 1 | $params->getNumeroContrato(), 31 | 'idCartaoPostagem' => $params->getCartaoPostagem(), 32 | 'usuario' => $params->getUsuario(), 33 | 'senha' => $params->getSenha(), 34 | ); 35 | 36 | $result = new Result(); 37 | 38 | try { 39 | if (!$params->getUsuario() || !$params->getSenha() || !$params->getNumeroContrato() 40 | || !$params->getCartaoPostagem() 41 | ) { 42 | throw new Exception('Para usar este serviço você precisa setar o nome de usuário, a senha, o numero ' . 43 | 'do contrato e o número do cartão de postagem.'); 44 | } 45 | 46 | $r = SoapClientFactory::getSoapClient()->buscaCliente($soapArgs); 47 | if (!$r || !is_object($r) || !isset($r->return) || ($r instanceof \SoapFault)) { 48 | if ($r instanceof \SoapFault) { 49 | throw $r; 50 | } 51 | throw new \Exception('Erro ao consultar os dados do cliente. Retorno: "' . $r . '"'); 52 | } 53 | 54 | $result->setResult(new BuscaClienteResult((array)$r->return)); 55 | } catch (\SoapFault $soapFault) { 56 | $result->setIsSoapFault(true); 57 | $result->setErrorCode($soapFault->getCode()); 58 | $result->setErrorMsg(SoapClientFactory::convertEncoding($soapFault->getMessage())); 59 | } catch (\Exception $e) { 60 | $result->setErrorCode($e->getCode()); 61 | $result->setErrorMsg($e->getMessage()); 62 | } 63 | 64 | return $result; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/CancelarObjeto.php: -------------------------------------------------------------------------------- 1 | $numeroEtiqueta, 17 | 'idPlp' => $idPlp, 18 | 'usuario' => $usuario, 19 | 'senha' => $senha 20 | ); 21 | 22 | $r = SoapClientFactory::getSoapClient()->cancelarObjeto($soapArgs); 23 | 24 | $errorCode = null; 25 | $errorMsg = null; 26 | $result = new Result(); 27 | if (!$r) { 28 | $errorCode = 0; 29 | } else if ($r instanceof \SoapFault) { 30 | $errorCode = $r->getCode(); 31 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 32 | $result->setSoapFault($r); 33 | } else if ($r instanceof \stdClass && property_exists($r, 'return')) { 34 | $status = new CancelarObjetoResposta(); 35 | $status->setReturn($r->return); 36 | $result->setResult($status); 37 | } else { 38 | $errorCode = 0; 39 | $errorMsg = "A resposta do Correios não está no formato esperado."; 40 | } 41 | 42 | $result->setErrorCode($errorCode); 43 | $result->setErrorMsg($errorMsg); 44 | 45 | return $result; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/ConsultaCep.php: -------------------------------------------------------------------------------- 1 | $cep, 19 | ); 20 | 21 | $r = SoapClientFactory::getSoapClient()->consultaCep($soapArgs); 22 | 23 | $errorCode = null; 24 | $errorMsg = null; 25 | $result = new Result(); 26 | if (!$r) { 27 | $errorCode = 0; 28 | } else if ($r instanceof \SoapFault) { 29 | $errorCode = $r->getCode(); 30 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 31 | $result->setSoapFault($r); 32 | } else if ($r instanceof \stdClass) { 33 | if (property_exists($r, 'return') && $r->return instanceof \stdClass) { 34 | $consultaCepResposta = new ConsultaCepResposta(); 35 | $consultaCepResposta->setBairro(SoapClientFactory::convertEncoding($r->return->bairro)); 36 | $consultaCepResposta->setCep($r->return->cep); 37 | $consultaCepResposta->setCidade(SoapClientFactory::convertEncoding($r->return->cidade)); 38 | if (isset($r->return->complemento1)) { 39 | $consultaCepResposta->setComplemento1(SoapClientFactory::convertEncoding($r->return->complemento)); 40 | } 41 | if (isset($r->return->complemento2)) { 42 | $consultaCepResposta->setComplemento2(SoapClientFactory::convertEncoding($r->return->complemento2)); 43 | } 44 | if (isset($r->return->end)) { 45 | $consultaCepResposta->setEndereco(SoapClientFactory::convertEncoding($r->return->end)); 46 | } 47 | if (isset($r->return->id)) { 48 | $consultaCepResposta->setId($r->return->id); 49 | } 50 | $consultaCepResposta->setUf($r->return->uf); 51 | 52 | 53 | $result->setResult($consultaCepResposta); 54 | } else { 55 | $errorCode = 0; 56 | $errorMsg = "Resposta em branco. Confirme se o CEP '$cep' realmente existe."; 57 | } 58 | } else { 59 | $errorCode = 0; 60 | $errorMsg = "A resposta do Correios não está no formato esperado."; 61 | } 62 | 63 | $result->setErrorCode($errorCode); 64 | $result->setErrorMsg($errorMsg); 65 | 66 | return $result; 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/ConsultarAgencia.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | public function execute($codigo) 25 | { 26 | $soapArgs = array( 27 | 'codigo' => $codigo 28 | ); 29 | 30 | $result = new Result(); 31 | 32 | try { 33 | $r = SoapClientFactory::getSoapAgenciaWS()->consultarAgencia($soapArgs); 34 | if (!$r || !is_object($r) || !isset($r->resultadoAgenciaDetalhe) || ($r instanceof \SoapFault)) { 35 | if ($r instanceof \SoapFault) { 36 | throw $r; 37 | } 38 | 39 | throw new FailedResultException('Erro ao Consultar Agencia. Retorno: "' . $r . '"'); 40 | } 41 | 42 | if ($r instanceof \stdClass) { 43 | $objectToarray = json_decode(json_encode($r), true); 44 | 45 | if ($objectToarray) { 46 | $result->setResult(new ConsultarAgenciaResult($objectToarray['resultadoAgenciaDetalhe'])); 47 | } else { 48 | throw new FailedConvertToArrayException('Erro ao converter Object para Array da Busca. Retorno: "' . print_r(json_last_error_msg(), true) . '"'); 49 | } 50 | } 51 | } catch (\Exception $e) { 52 | if ($e instanceof \SoapFault) { 53 | $result->setIsSoapFault(true); 54 | $result->setErrorCode($e->getCode()); 55 | $result->setErrorMsg("Resposta do Correios: " . SoapClientFactory::convertEncoding($e->getMessage())); 56 | } else { 57 | $result->setErrorCode($e->getCode()); 58 | $result->setErrorMsg($e->getMessage()); 59 | } 60 | } 61 | 62 | return $result; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/ConsultarColeta.php: -------------------------------------------------------------------------------- 1 | 12 | */ 13 | class ConsultarColeta implements RealServiceInterface 14 | { 15 | 16 | /** 17 | * @param \PhpSigep\Model\AbstractModel|\PhpSigep\Model\ConsultarColeta $params 18 | * 19 | * @throws \PhpSigep\Services\Exception 20 | * @throws \PhpSigep\InvalidArgument 21 | * @return Result 22 | */ 23 | public function execute(AbstractModel $params) 24 | { 25 | if (!$params instanceof \PhpSigep\Model\ConsultarColeta) { 26 | throw new InvalidArgument(); 27 | } 28 | 29 | $result = new Result(); 30 | try { 31 | if ( 32 | !$params->getAccessData() || !$params->getAccessData()->getUsuario() || !$params->getAccessData()->getSenha() 33 | ) { 34 | throw new Exception('Para usar este serviço você precisa setar o nome de usuário e senha.'); 35 | } 36 | $soapArgs = [ 37 | 'codAdministrativo' => $params->getAccessData()->getCodAdministrativo(), 38 | 'tipoBusca' => $params->getTipoBusca(), 39 | 'tipoSolicitacao' => $params->getTipoSolicitacao(), 40 | 'numeroPedido' => $params->getNumeroPedido() 41 | ]; 42 | $r = SoapClientFactory::getSoapReversa()->acompanharPedido($soapArgs); 43 | if (!$r || !is_object($r) || !isset($r->return) || ($r instanceof \SoapFault)) { 44 | if ($r instanceof \SoapFault) { 45 | throw $r; 46 | } 47 | 48 | if ($r->acompanharPedido) { 49 | 50 | if (!empty($r->acompanharPedido->msg_erro)) { 51 | throw new \Exception($r->acompanharPedido->msg_erro, (int) $r->acompanharPedido->cod_erro); 52 | } 53 | $resultado = new \PhpSigep\Model\ConsultarColetaRetorno(); 54 | $resultado->setTipo($r->acompanharPedido->tipo_solicitacao); 55 | $resultado->setNumeroPedido($r->acompanharPedido->coleta->numero_pedido); 56 | $resultado->setControleCliente($r->acompanharPedido->coleta->controle_cliente); 57 | $resultado->setObjeto($r->acompanharPedido->coleta->objeto); 58 | $resultado->setHistorico($r->acompanharPedido->coleta->historico); 59 | 60 | $result->setResult($resultado); 61 | return $result; 62 | } 63 | throw new \Exception('Falha na leitura do XML (' . var_export($r) . ')', 400); 64 | } 65 | } catch (\Exception $e) { 66 | if ($e instanceof \SoapFault) { 67 | $result->setIsSoapFault(true); 68 | } 69 | $result->setErrorCode($e->getCode()); 70 | $result->setErrorMsg($e->getMessage()); 71 | } 72 | return $result; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/Exception/AgenciaWS/FailedConvertToArrayException.php: -------------------------------------------------------------------------------- 1 | gerarXml = new GerarXmlPreListaDePostagem(); 23 | } 24 | 25 | /** 26 | * @param PreListaDePostagem $params 27 | * 28 | * @return \PhpSigep\Services\Result<\PhpSigep\Model\FechaPlpVariosServicosRetorno> 29 | */ 30 | public function execute(\PhpSigep\Model\PreListaDePostagem $params) 31 | { 32 | $listaEtiquetas = array(); 33 | foreach ($params->getEncomendas() as $objetoPostal) { 34 | $listaEtiquetas[] = $objetoPostal->getEtiqueta()->getEtiquetaSemDv(); 35 | } 36 | 37 | $soapArgs = array( 38 | 'xml' => $this->gerarXml->gerar($params), 39 | 'idPlpCliente' => '', 40 | 'cartaoPostagem' => $params->getAccessData()->getCartaoPostagem(), 41 | 'listaEtiquetas' => $listaEtiquetas, 42 | 'usuario' => $params->getAccessData()->getUsuario(), 43 | 'senha' => $params->getAccessData()->getSenha(), 44 | ); 45 | 46 | $result = new Result(); 47 | try { 48 | $r = SoapClientFactory::getSoapClient()->fechaPlpVariosServicos($soapArgs); 49 | if (class_exists('\StaLib_Logger',false)) { 50 | \StaLib_Logger::log('Retorno SIGEP fecha PLP: ' . print_r($r, true)); 51 | } 52 | if ($r instanceof \SoapFault) { 53 | throw $r; 54 | } 55 | if ($r && $r->return) { 56 | $result->setResult(new FechaPlpVariosServicosRetorno(array('idPlp' => $r->return))); 57 | } else { 58 | $result->setErrorCode(0); 59 | $result->setErrorMsg('A resposta do Correios não está no formato esperado. Resposta recebida: "' . 60 | $r . '"'); 61 | } 62 | } catch (\Exception $e) { 63 | if ($e instanceof \SoapFault) { 64 | $result->setIsSoapFault(true); 65 | $result->setErrorCode($e->getCode()); 66 | $result->setErrorMsg(SoapClientFactory::convertEncoding($e->getMessage())); 67 | } else { 68 | $result->setErrorCode($e->getCode()); 69 | $result->setErrorMsg($e->getMessage()); 70 | } 71 | } 72 | 73 | return $result; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/GeraDigitoVerificadorEtiquetas.php: -------------------------------------------------------------------------------- 1 | array(), 22 | 'usuario' => $params->getAccessData()->getUsuario(), 23 | 'senha' => $params->getAccessData()->getSenha(), 24 | ); 25 | 26 | // É necessário garantir que o array estará indexado por order natural começando do zero para setarmos os 27 | // DV retornados pelo webservice. 28 | $etiquetas = array_values($params->getEtiquetas()); 29 | 30 | /** @var $etiqueta Etiqueta */ 31 | foreach ($etiquetas as $etiqueta) { 32 | $soapArgs['etiquetas'][] = $etiqueta->getEtiquetaSemDv(); 33 | } 34 | 35 | $result = new Result(); 36 | try { 37 | $soapReturn = SoapClientFactory::getSoapClient()->geraDigitoVerificadorEtiquetas($soapArgs); 38 | if ($soapReturn && is_object($soapReturn) && isset($soapReturn->return)) { 39 | if (!is_array($soapReturn->return)) { 40 | $soapReturn->return = (array)$soapReturn->return; 41 | } 42 | 43 | foreach ($soapReturn->return as $k => $dv) { 44 | $etiquetas[$k]->setDv((int)$dv); 45 | } 46 | $result->setResult($etiquetas); 47 | } else { 48 | $result->setErrorCode(0); 49 | $result->setErrorMsg('A resposta do Correios não está no formato esperado. Resposta recebida: "' . 50 | $soapReturn . '"'); 51 | } 52 | } catch (\Exception $e) { 53 | if ($e instanceof \SoapFault) { 54 | $result->setIsSoapFault(true); 55 | $result->setErrorCode($e->getCode()); 56 | $result->setErrorMsg(SoapClientFactory::convertEncoding($e->getMessage())); 57 | } else { 58 | $result->setErrorCode($e->getCode()); 59 | $result->setErrorMsg($e->getMessage()); 60 | } 61 | } 62 | 63 | return $result; 64 | } 65 | } -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/ListarAgenciasCliqueRetire.php: -------------------------------------------------------------------------------- 1 | 25 | */ 26 | public function execute($zone, $city, $address_2) 27 | { 28 | $soapArgs = array( 29 | 'uf' => $zone, 30 | 'municipio' => $city, 31 | 'bairro' => $address_2 32 | ); 33 | 34 | $result = new Result(); 35 | 36 | try { 37 | $r = SoapClientFactory::getSoapAgenciaWS()->listarAgenciasCliqueERetirePorLocalidade($soapArgs); 38 | if (!$r || !is_object($r) || !isset($r->resultadoListaAgencia) || ($r instanceof \SoapFault)) { 39 | if ($r instanceof \SoapFault) { 40 | throw $r; 41 | } 42 | 43 | throw new FailedResultException('Erro ao listar agencias Clique e Retire. Retorno: "' . $r . '"'); 44 | } 45 | 46 | if ($r instanceof \stdClass) { 47 | $objectToarray = json_decode(json_encode($r), true); 48 | 49 | if ($objectToarray) { 50 | $result->setResult(new ListarAgenciasCliqueRetireResult($objectToarray['resultadoListaAgencia'])); 51 | } else { 52 | throw new FailedConvertToArrayException('Erro ao converter Object para Array da Busca. Retorno: "' . print_r(json_last_error_msg(), true) . '"'); 53 | } 54 | } 55 | } catch (\Exception $e) { 56 | if ($e instanceof \SoapFault) { 57 | $result->setIsSoapFault(true); 58 | $result->setErrorCode($e->getCode()); 59 | $result->setErrorMsg("Resposta do Correios: " . SoapClientFactory::convertEncoding($e->getMessage())); 60 | } else { 61 | $result->setErrorCode($e->getCode()); 62 | $result->setErrorMsg($e->getMessage()); 63 | } 64 | } 65 | 66 | return $result; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/LogisticaReversaAcompanharPedidoData.php: -------------------------------------------------------------------------------- 1 | $accessData->getCodAdministrativo(), 17 | 'tipoSolicitacao' => $tipoSolicitacao, 18 | 'data' => $data, 19 | ); 20 | 21 | $r = SoapClientFactory::getSoapLogisticaReversa()->acompanharPedidoPorData($soapArgs); 22 | 23 | $errorCode = null; 24 | $errorMsg = null; 25 | $result = new Result(); 26 | if (!$r) { 27 | $errorCode = 0; 28 | } else if ($r instanceof \SoapFault) { 29 | $errorCode = $r->getCode(); 30 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 31 | $result->setSoapFault($r); 32 | } else if ($r instanceof \stdClass && property_exists($r, 'acompanharPedidoPorData')) { 33 | 34 | $status = new LogisticaReversaPedidoResposta(); 35 | $status->setReturn($r->acompanharPedidoPorData); 36 | $result->setResult($status); 37 | } else { 38 | $errorCode = 0; 39 | $errorMsg = "A resposta do Correios não está no formato esperado."; 40 | } 41 | 42 | $result->setErrorCode($errorCode); 43 | $result->setErrorMsg($errorMsg); 44 | 45 | return $result; 46 | } 47 | 48 | } -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/LogisticaReversaAcompanharPedidoNumero.php: -------------------------------------------------------------------------------- 1 | $accessData->getUsuario(), 17 | 'senha' => $accessData->getSenha(), 18 | ); 19 | $soapArgs = array( 20 | 'codAdministrativo' => $accessData->getCodAdministrativo(), 21 | 'tipoBusca' => $tipoBusca, 22 | 'tipoSolicitacao' => $tipoSolicitacao, 23 | 'numeroPedido' => $numPedido, 24 | ); 25 | 26 | $r = SoapClientFactory::getSoapLogisticaReversa()->acompanharPedido($soapArgs, $authArgs); 27 | 28 | $errorCode = null; 29 | $errorMsg = null; 30 | $result = new Result(); 31 | if (!$r) { 32 | $errorCode = 0; 33 | } else if ($r instanceof \SoapFault) { 34 | $errorCode = $r->getCode(); 35 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 36 | $result->setSoapFault($r); 37 | } else if ($r instanceof \stdClass && property_exists($r, 'acompanharPedido')) { 38 | 39 | $status = new LogisticaReversaPedidoResposta(); 40 | $status->setReturn($r->acompanharPedido); 41 | $result->setResult($status); 42 | } else { 43 | $errorCode = 0; 44 | $errorMsg = "A resposta do Correios não está no formato esperado."; 45 | } 46 | 47 | $result->setErrorCode($errorCode); 48 | $result->setErrorMsg($errorMsg); 49 | 50 | return $result; 51 | } 52 | 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/LogisticaReversaCancelarPedido.php: -------------------------------------------------------------------------------- 1 | $params["accessData"]->getUsuario(), 17 | 'senha' => $params["accessData"]->getSenha(), 18 | ); 19 | $soapArgs = array( 20 | 'codAdministrativo' => $params["accessData"]->getCodAdministrativo(), 21 | 'tipo' => $params["dados"]["tipoSolicitacao"], 22 | 'numeroPedido' => $params["dados"]["numeroPedido"], 23 | ); 24 | 25 | $r = SoapClientFactory::getSoapLogisticaReversa()->cancelarPedido($soapArgs, $authArgs); 26 | 27 | $errorCode = null; 28 | $errorMsg = null; 29 | $result = new Result(); 30 | if (!$r) { 31 | $errorCode = 0; 32 | } else if ($r instanceof \SoapFault) { 33 | $errorCode = $r->getCode(); 34 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 35 | $result->setSoapFault($r); 36 | } else if ($r instanceof \stdClass && property_exists($r, 'cancelarPedido')) { 37 | print_r($r); 38 | $status = new LogisticaReversaPedidoResposta(); 39 | $status->setReturn($r->cancelarPedido); 40 | $result->setResult($status); 41 | } else { 42 | $errorCode = 0; 43 | $errorMsg = "A resposta do Correios não está no formato esperado."; 44 | } 45 | 46 | $result->setErrorCode($errorCode); 47 | $result->setErrorMsg($errorMsg); 48 | 49 | return $result; 50 | } 51 | } -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/LogisticaReversaCriarPedido.php: -------------------------------------------------------------------------------- 1 | return) && !($request instanceof \SoapFault)) { 23 | return true; 24 | } else { 25 | if ($request instanceof \SoapFault) { 26 | throw $request; 27 | } 28 | throw new \Exception('Não foi possível criar o pedido. Retorno: "' . $request . '"'); 29 | } 30 | } 31 | 32 | 33 | /** 34 | * @param \PhpSigep\Model\AbstractModel|\PhpSigep\Model\LogisticaReversaCriarPedido $params 35 | * 36 | * @throws \PhpSigep\Services\Exception 37 | * @throws \PhpSigep\Services\InvalidArgument 38 | * @return Result 39 | */ 40 | public function execute(AbstractModel $params) 41 | { 42 | if (!$params instanceof LogisticaReversaPedido) { 43 | throw new InvalidArgument(); 44 | } 45 | 46 | $result = new Result(); 47 | 48 | try { 49 | if (!$params->getAccessData() || !$params->getAccessData()->getUsuario() 50 | || !$params->getAccessData()->getSenha() 51 | ) { 52 | throw new Exception('Para usar este serviço você precisa setar o nome de usuário e senha.'); 53 | } 54 | 55 | $authArgs = array( 56 | 'usuario' => $params->getAccessData()->getUsuario(), 57 | 'senha' => $params->getAccessData()->getSenha(), 58 | ); 59 | $parametros = $params->getDados(); 60 | 61 | $r = SoapClientFactory::getSoapLogisticaReversa()->solicitarPostagemReversa($parametros, $authArgs); 62 | 63 | if (!$r) { 64 | $errorCode = 0; 65 | } else if ($r instanceof \SoapFault) { 66 | $errorCode = $r->getCode(); 67 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 68 | $result->setSoapFault($r); 69 | } else if ($r instanceof \stdClass && property_exists($r, 'solicitarPostagemReversa')) { 70 | $status = new LogisticaReversaPedidoResposta(); 71 | $status->setReturn($r->solicitarPostagemReversa); 72 | $result->setResult($status); 73 | } else { 74 | $errorCode = 0; 75 | $errorMsg = "A resposta do Correios não está no formato esperado."; 76 | } 77 | } catch (\Exception $e) { 78 | } 79 | 80 | return $result; 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/RealServiceInterface.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | public function execute($idPlpMaster) 25 | { 26 | $soapArgs = array( 27 | 'idPlpMaster' => $idPlpMaster, 28 | 'usuario' => Bootstrap::getConfig()->getAccessData()->getUsuario(), 29 | 'senha' => Bootstrap::getConfig()->getAccessData()->getSenha() 30 | ); 31 | 32 | $result = new Result(); 33 | 34 | try { 35 | $r = SoapClientFactory::getSoapClient()->solicitaXmlPlp($soapArgs); 36 | if (!$r || !is_object($r) || !isset($r->return) || ($r instanceof \SoapFault)) { 37 | if ($r instanceof \SoapFault) { 38 | throw $r; 39 | } 40 | 41 | throw new FailedResultException('Erro ao consultar XML da PLP. Retorno: "' . $r . '"'); 42 | } 43 | 44 | if (is_string($r->return)) { 45 | libxml_use_internal_errors(true); 46 | $xmlString = iconv('utf-8', 'ISO-8859-1//IGNORE', $r->return); 47 | $xml = simplexml_load_string($xmlString, \SimpleXMLElement::class, LIBXML_NOCDATA); 48 | if ($xml instanceof \SimpleXMLElement) { 49 | $objectToarray = json_decode(json_encode($xml), true); 50 | 51 | if ($objectToarray) { 52 | $result->setResult(new SolicitaXmlPlpResult($objectToarray)); 53 | } else { 54 | throw new FailedConvertToArrayException('Erro ao converter Object para Array da PLP. Retorno: "' . print_r(json_last_error_msg(), true) . '"'); 55 | } 56 | } else { 57 | throw new FailedConvertXmlException('Erro ao converter XML da PLP. Retorno: "' . print_r(libxml_get_errors(), true) . '"'); 58 | } 59 | } else { 60 | throw new FailedResultException('Erro no resultado do XML da PLP. Retorno: "' . print_r($r->return, true) . '"'); 61 | } 62 | } catch (\Exception $e) { 63 | if ($e instanceof \SoapFault) { 64 | $result->setIsSoapFault(true); 65 | $result->setErrorCode($e->getCode()); 66 | $result->setErrorMsg("Resposta do Correios: " . SoapClientFactory::convertEncoding($e->getMessage())); 67 | } else { 68 | $result->setErrorCode($e->getCode()); 69 | $result->setErrorMsg($e->getMessage()); 70 | } 71 | } 72 | 73 | return $result; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/VerificaDisponibilidadeServico.php: -------------------------------------------------------------------------------- 1 | 17 | */ 18 | public function execute(\PhpSigep\Model\VerificaDisponibilidadeServico $params) 19 | { 20 | $servicosDePostagem = $params->getServicos(); 21 | 22 | $codigoDosServicos = array_map(array($this, 'arrayMapCallback'), $servicosDePostagem); 23 | 24 | $soapArgs = array( 25 | 'codAdministrativo' => $params->getAccessData()->getCodAdministrativo(), 26 | 'numeroServico' => implode(',', $codigoDosServicos), 27 | 'cepOrigem' => $params->getCepOrigem(), 28 | 'cepDestino' => $params->getCepDestino(), 29 | 'usuario' => $params->getAccessData()->getUsuario(), 30 | 'senha' => $params->getAccessData()->getSenha(), 31 | ); 32 | 33 | $cacheKey = md5(serialize($soapArgs)); 34 | $cache = Bootstrap::getConfig()->getCacheInstance(); 35 | if ($cachedResult = $cache->getItem($cacheKey)) { 36 | return unserialize($cachedResult); 37 | } 38 | 39 | $r = SoapClientFactory::getSoapClient()->verificaDisponibilidadeServico($soapArgs); 40 | 41 | $errorCode = null; 42 | $errorMsg = null; 43 | $result = new Result(); 44 | if (!$r) { 45 | $errorCode = 0; 46 | } else if ($r instanceof \SoapFault) { 47 | $errorCode = $r->getCode(); 48 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 49 | $result->setSoapFault($r); 50 | } else if ($r instanceof \stdClass && property_exists($r, 'return')) { 51 | $result->setResult(new VerificaDisponibilidadeServicoResposta(array('disponivel' => (bool)$r->return))); 52 | $cache->setItem($cacheKey, serialize($result)); 53 | } else { 54 | $errorCode = 0; 55 | $errorMsg = "A resposta do Correios não está no formato esperado."; 56 | } 57 | 58 | $result->setErrorCode($errorCode); 59 | $result->setErrorMsg($errorMsg); 60 | 61 | return $result; 62 | } 63 | 64 | private function arrayMapCallback(ServicoDePostagem $servicoDePostagem) { 65 | return $servicoDePostagem->getCodigo(); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/Real/VerificarStatusCartaoPostagem.php: -------------------------------------------------------------------------------- 1 | $numeroCartaoPostagem, 17 | 'usuario' => $usuario, 18 | 'senha' => $senha 19 | ); 20 | 21 | $r = SoapClientFactory::getSoapClient()->getStatusCartaoPostagem($soapArgs); 22 | 23 | $errorCode = null; 24 | $errorMsg = null; 25 | $result = new Result(); 26 | if (!$r) { 27 | $errorCode = 0; 28 | } else if ($r instanceof \SoapFault) { 29 | $errorCode = $r->getCode(); 30 | $errorMsg = SoapClientFactory::convertEncoding($r->getMessage()); 31 | $result->setSoapFault($r); 32 | } else if ($r instanceof \stdClass && property_exists($r, 'return')) { 33 | $status = new VerificarStatusCartaoPostagemResposta(); 34 | $status->setReturn($r->return); 35 | $result->setResult($status); 36 | } else { 37 | $errorCode = 0; 38 | $errorMsg = "A resposta do Correios não está no formato esperado."; 39 | } 40 | 41 | $result->setErrorCode($errorCode); 42 | $result->setErrorMsg($errorMsg); 43 | 44 | return $result; 45 | } 46 | } -------------------------------------------------------------------------------- /src/PhpSigep/Services/ResultRowset.php: -------------------------------------------------------------------------------- 1 | 14 | */ 15 | public function verificaDisponibilidadeServico(\PhpSigep\Model\VerificaDisponibilidadeServico $params); 16 | 17 | /** 18 | * @param $cep 19 | * 20 | * @return Result<\PhpSigep\Model\ConsultaCepResposta> 21 | */ 22 | public function consultaCep($cep); 23 | 24 | /** 25 | * @param \PhpSigep\Model\SolicitaEtiquetas $params 26 | * 27 | * @return \PhpSigep\Model\Etiqueta[] 28 | */ 29 | public function solicitaEtiquetas(\PhpSigep\Model\SolicitaEtiquetas $params); 30 | 31 | /** 32 | * Pede para o WebService do Correios calcular o dígito verificador de uma etiqueta. 33 | * 34 | * Se preferir você pode usar o método {@linnk \PhpSigep\Model\Etiqueta::getDv() } para calcular o dígito 35 | * verificador, visto que esse método é mais rádido pois faz o cálculo local sem precisar se comunicar com o 36 | * WebService. 37 | * 38 | * @param \PhpSigep\Model\GeraDigitoVerificadorEtiquetas $params 39 | * 40 | * @return string[] 41 | */ 42 | public function geraDigitoVerificadorEtiquetas(\PhpSigep\Model\GeraDigitoVerificadorEtiquetas $params); 43 | 44 | /** 45 | * @param \PhpSigep\Model\PreListaDePostagem $params 46 | * @param \XMLWriter $xmlDaPreLista 47 | * @return mixed 48 | */ 49 | public function fechaPlpVariosServicos(\PhpSigep\Model\PreListaDePostagem $params); 50 | 51 | /** 52 | * @param \PhpSigep\Model\CalcPrecoPrazo $params 53 | * @return \PhpSigep\Model\CalcPrecoPrazoRespostaIterator 54 | */ 55 | public function calcPrecoPrazo(\PhpSigep\Model\CalcPrecoPrazo $params); 56 | 57 | /** 58 | * @todo documentar o retorno 59 | * 60 | * @param \PhpSigep\Model\AccessData $params 61 | * @return mixed 62 | */ 63 | public function buscaCliente(\PhpSigep\Model\AccessData $params); 64 | 65 | /** 66 | * 67 | * @param \PhpSigep\Model\RastrearObjeto $params 68 | * @return \PhpSigep\Services\Result<\PhpSigep\Model\RastrearObjetoResultado[]> 69 | */ 70 | public function rastrearObjeto(\PhpSigep\Model\RastrearObjeto $params); 71 | 72 | /** 73 | * @param $numeroCartaoPostagem 74 | * @param $usuario 75 | * @param $senha 76 | * @return \PhpSigep\Services\Result<\PhpSigep\Model\verificarStatusCartaoPostagemResposta[]> 77 | */ 78 | public function verificarStatusCartaoPostagem($numeroCartaoPostagem, $usuario, $senha); 79 | 80 | 81 | /** 82 | * @param $numeroEtiqueta 83 | * @param $idPlp 84 | * @param $usuario 85 | * @param $senha 86 | * @return \PhpSigep\Services\Result<\PhpSigep\Model\BloquearObjetoResposta[]> 87 | */ 88 | public function bloquearObjeto($numeroEtiqueta, $idPlp, $usuario, $senha); 89 | 90 | 91 | /** 92 | * @param $numeroEtiqueta 93 | * @param $idPlp 94 | * @param $usuario 95 | * @param $senha 96 | * @return \PhpSigep\Services\Result<\PhpSigep\Model\CancelarObjetoResposta[]> 97 | */ 98 | public function cancelarObjeto($numeroEtiqueta, $idPlp, $usuario, $senha); 99 | 100 | } 101 | -------------------------------------------------------------------------------- /src/PhpSigep/Services/SoapClient/Exception.php: -------------------------------------------------------------------------------- 1 | setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 13 | $config->setEnv(\PhpSigep\Config::ENV_DEVELOPMENT); 14 | $config->setXmlEncode(Config::XML_ENCODE_UTF); 15 | $config->setCacheOptions(array( 16 | 'storageOptions' => array( 17 | 'enabled' => false, 18 | 'ttl' => 10, 19 | 'cacheDir' => sys_get_temp_dir() 20 | ) 21 | )); 22 | 23 | \PhpSigep\Bootstrap::start($config); 24 | } 25 | } -------------------------------------------------------------------------------- /tests/Builders/PreListaDePostagemBuilder.php: -------------------------------------------------------------------------------- 1 | setAltura(20); 14 | $dimensao->setLargura(20); 15 | $dimensao->setComprimento(20); 16 | $dimensao->setDiametro(0); 17 | $dimensao->setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA); 18 | 19 | $destinatario = new \PhpSigep\Model\Destinatario(); 20 | $destinatario->setNome('Google Belo Horizonte'); 21 | $destinatario->setLogradouro('Av. Bias Fortes'); 22 | $destinatario->setNumero('382'); 23 | $destinatario->setComplemento('6º andar'); 24 | 25 | $destino = new \PhpSigep\Model\DestinoNacional(); 26 | $destino->setBairro('Lourdes'); 27 | $destino->setCep('30170-010'); 28 | $destino->setCidade('Belo Horizonte'); 29 | $destino->setUf('MG'); 30 | 31 | // Estamos criando uma etique falsa, mas em um ambiente real voçê deve usar o método 32 | // {@link \PhpSigep\Services\SoapClient\Real::solicitaEtiquetas() } para gerar o número das etiquetas 33 | $etiqueta = new \PhpSigep\Model\Etiqueta(); 34 | $etiqueta->setEtiquetaSemDv('PD73958096BR'); 35 | 36 | $servicoAdicional = new \PhpSigep\Model\ServicoAdicional(); 37 | $servicoAdicional->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_REGISTRO); 38 | // Se não tiver valor declarado informar 0 (zero) 39 | $servicoAdicional->setValorDeclarado(0); 40 | 41 | $encomenda = new \PhpSigep\Model\ObjetoPostal(); 42 | $encomenda->setServicosAdicionais([$servicoAdicional]); 43 | $encomenda->setDestinatario($destinatario); 44 | $encomenda->setDestino($destino); 45 | $encomenda->setDimensao($dimensao); 46 | $encomenda->setEtiqueta($etiqueta); 47 | $encomenda->setPeso(0.500);// 500 gramas 48 | $encomenda->setServicoDePostagem(new \PhpSigep\Model\ServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_SEDEX_41556)); 49 | // *** FIM DOS DADOS DA ENCOMENDA QUE SERÁ DESPACHADA *** // 50 | 51 | // *** DADOS DO REMETENTE *** // 52 | $remetente = new \PhpSigep\Model\Remetente(); 53 | $remetente->setNome('Google São Paulo'); 54 | $remetente->setLogradouro('Av. Brigadeiro Faria Lima'); 55 | $remetente->setNumero('3900'); 56 | $remetente->setComplemento('5º andar'); 57 | $remetente->setBairro('Itaim'); 58 | $remetente->setCep('04538-132'); 59 | $remetente->setUf('SP'); 60 | $remetente->setCidade('São Paulo'); 61 | // *** FIM DOS DADOS DO REMETENTE *** // 62 | 63 | 64 | $plp = new \PhpSigep\Model\PreListaDePostagem(); 65 | $plp->setAccessData(new \PhpSigep\Model\AccessDataHomologacao()); 66 | $plp->setEncomendas([$encomenda]); 67 | $plp->setRemetente($remetente); 68 | 69 | return $plp; 70 | } 71 | } -------------------------------------------------------------------------------- /tests/PhpSigep/Pdf/ImprovedFPDFTest.php: -------------------------------------------------------------------------------- 1 | assertSame("", $improvedFPDF->_(null)); 14 | $this->assertSame("Lorem ipsum dolor sit amet", $improvedFPDF->_("Lorem ipsum dolor sit amet")); 15 | $this->assertSame(utf8_decode("áéíóúç"), $improvedFPDF->_("áéíóúç")); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/PhpSigep/Services/Real/BuscaClienteTest.php: -------------------------------------------------------------------------------- 1 | setUpSIGEP(); 18 | } 19 | 20 | public function testExecute(): void 21 | { 22 | SoapClientFactory::setSoapClient(new SoapClientFake()); 23 | $busca = new BuscaCliente(); 24 | $result = $busca->execute(new AccessDataHomologacao()); 25 | $this->assertFalse($result->getIsSoapFault()); 26 | $this->assertInstanceOf(\PhpSigep\Model\BuscaClienteResult::class, $result->getResult()); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/PhpSigep/Services/Real/FecharPreListaDePostagemTest.php: -------------------------------------------------------------------------------- 1 | setUpSIGEP(); 19 | } 20 | 21 | public function test_execute(): void 22 | { 23 | $client = new SoapClientFake(); 24 | $std = new \stdClass(); 25 | $std->return = '123456'; 26 | $client->setRetornoFechaPlpVariosServicos($std); 27 | SoapClientFactory::setSoapClient($client); 28 | 29 | $fechar = new FecharPreListaDePostagem(); 30 | $plp = PreListaDePostagemBuilder::buildDadosObrigatorios(); 31 | $retorno = $fechar->execute($plp); 32 | 33 | /** @var \PhpSigep\Model\FechaPlpVariosServicosRetorno $result */ 34 | $result = $retorno->getResult(); 35 | $this->assertEquals('123456', $result->getIdPlp()); 36 | $args = $client->getSoapArgs(); 37 | $this->assertEquals(['xml', 'idPlpCliente', 'cartaoPostagem', 'listaEtiquetas', 'usuario', 'senha'], array_keys($args)); 38 | $this->assertIsString($args['xml']); 39 | $this->assertEquals('', $args['idPlpCliente']); 40 | $this->assertEquals($plp->getAccessData()->getCartaoPostagem(), $args['cartaoPostagem']); 41 | $this->assertEquals(['PD73958096BR'], $args['listaEtiquetas']); 42 | $this->assertEquals($plp->getAccessData()->getUsuario(), $args['usuario']); 43 | $this->assertEquals($plp->getAccessData()->getSenha(), $args['senha']); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /tests/PhpSigep/Services/Real/PreListaDePostagem/GerarXmlPreListaDePostagemTest.php: -------------------------------------------------------------------------------- 1 | setUpSIGEP(); 18 | } 19 | 20 | public function test_gerar_daos_obrigatorios(): void 21 | { 22 | $plp = PreListaDePostagemBuilder::buildDadosObrigatorios(); 23 | $gerarXml = new GerarXmlPreListaDePostagem(); 24 | $xml = Util::normalizeXmlForTest($gerarXml->gerar($plp)); 25 | $xmlEsperado = Util::normalizeXmlForTest(file_get_contents(dirname(__DIR__, 4) . '/resources/xml/modelo_plp1-utf8.xml')); 26 | $this->assertEquals($xmlEsperado, $xml); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/PhpSigep/Services/Real/SoapClientFactoryTest.php: -------------------------------------------------------------------------------- 1 | setUpSIGEP(); 16 | } 17 | 18 | public function test_get_soap_client(): void 19 | { 20 | $this->assertInstanceOf(\SoapClient::class, SoapClientFactory::getSoapClient()); 21 | } 22 | 23 | public function test_get_soap_client_test(): void 24 | { 25 | SoapClientFactory::setSoapClient(new SoapClientFake()); 26 | $this->assertInstanceOf(SoapClientFake::class, SoapClientFactory::getSoapClient()); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/Services/DigitoVerificadorTest.php: -------------------------------------------------------------------------------- 1 | setUpSIGEP(); 16 | } 17 | 18 | public function testCodigoVerificador(): void 19 | { 20 | $etiqueta1 = new \PhpSigep\Model\Etiqueta(); 21 | $etiqueta1->setEtiquetaSemDv('PN77768520BR'); 22 | $this->assertEquals('PN777685204BR', $etiqueta1->getEtiquetaComDv()); 23 | 24 | $etiqueta2 = new \PhpSigep\Model\Etiqueta(); 25 | $etiqueta2->setEtiquetaSemDv('PN77768521BR'); 26 | $this->assertEquals('PN777685218BR', $etiqueta2->getEtiquetaComDv()); 27 | 28 | $etiqueta3 = new \PhpSigep\Model\Etiqueta(); 29 | $etiqueta3->setEtiquetaSemDv('PN77768524BR'); 30 | $this->assertEquals('PN777685249BR', $etiqueta3->getEtiquetaComDv()); 31 | 32 | $etiqueta4 = new \PhpSigep\Model\Etiqueta(); 33 | $etiqueta4->setEtiquetaSemDv('PN77768525BR'); 34 | $this->assertEquals('PN777685252BR', $etiqueta4->getEtiquetaComDv()); 35 | 36 | $etiqueta5 = new \PhpSigep\Model\Etiqueta(); 37 | $etiqueta5->setEtiquetaSemDv('PN77768526BR'); 38 | $this->assertEquals('PN777685266BR', $etiqueta5->getEtiquetaComDv()); 39 | 40 | $etiqueta6 = new \PhpSigep\Model\Etiqueta(); 41 | $etiqueta6->setEtiquetaSemDv('PO02325102BR'); 42 | $this->assertEquals('PO023251024BR', $etiqueta6->getEtiquetaComDv()); 43 | 44 | $etiqueta7 = new \PhpSigep\Model\Etiqueta(); 45 | $etiqueta7->setEtiquetaSemDv('PO02603026BR'); 46 | $this->assertEquals('PO026030265BR', $etiqueta7->getEtiquetaComDv()); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /tests/Xml/Util.php: -------------------------------------------------------------------------------- 1 | preserveWhiteSpace = false; 11 | $dom->formatOutput = true; 12 | $dom->loadXML($xml); 13 | return $dom->saveXML(); 14 | } 15 | } -------------------------------------------------------------------------------- /tests/resources/xml/modelo_plp1-utf8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Postagem 4 | 2.3 5 | 6 | 7 | 8 | 9 | 10 | 0067599079 11 | 12 | 13 | 9992157880 14 | 10 15 | 17000190 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | SP 24 | 25 | 26 | 27 | 28 | 29 | S 30 | 31 | 32 | 33 | PD739580968BR 34 | 35 | 41556 36 | 0 37 | 500 38 | 39 | 40 | 0 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | MG 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 0 64 | 65 | 66 | 025 67 | 68 | 69 | 002 70 | 20 71 | 20 72 | 20 73 | 0 74 | 75 | 76 | 0 77 | 78 | 79 | 80 | --------------------------------------------------------------------------------