<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$params = (include __DIR__ . '/helper-criar-pre-lista.php');
$phpSigep = new PhpSigep\Services\SoapClient\Real();
$result = $phpSigep->fechaPlpVariosServicos($params);
echo '<pre>';
print_r((array) $result);
echo '</pre>';
<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$params = new \PhpSigep\Model\VerificaDisponibilidadeServico();
$params->setAccessData(new \PhpSigep\Model\AccessDataHomologacao());
$params->setCepOrigem('30170-010');
$params->setCepDestino('04538-132');
$params->setServicos(\PhpSigep\Model\ServicoDePostagem::getAll());
$phpSigep = new PhpSigep\Services\SoapClient\Real();
$result = $phpSigep->verificaDisponibilidadeServico($params);
var_dump((array) $result);
<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$cep = isset($_GET['cep']) ? $_GET['cep'] : '30170-010';
$phpSigep = new PhpSigep\Services\SoapClient\Real();
$result = $phpSigep->consultaCep($cep);
var_dump((array) $result);
$dumpResult = ob_get_clean();
?>
<!doctype html>
<html lang="pt">
    <head>
        <meta charset="UTF-8">
        <title>Exemplo Consulta CEP - PHP Sigep</title>
    </head>
    <body>
        <br/>
        <form action="" method="get">
            <input type="text" pattern="\d{5}-{0,1}\d{3}" maxlength="9" name="cep" value="<?php 
echo htmlspecialchars($cep, ENT_QUOTES);
?>
"/>
            <button type="submit">Consulta CEP</button>
        </form>
        <br/>
        <hr/>
        <?php 
echo $dumpResult;
?>
    </body>
</html>
<?php

/**
 * Este exemplo mostra como usar o WebService do Correios para calcular o dígito verificador de uma etiqueta
 * 
 * Porem, se preferir você pode usar o método {@linnk \PhpSigep\Model\Etiqueta::getDv() } para calcular o dígito
 * verificador, visto que esse método é mais rádido pois faz o cálculo local sem precisar se comunicar com o WebService.
 * 
 */
require_once __DIR__ . '/bootstrap-exemplos.php';
$etiquetaSemDv_1 = new \PhpSigep\Model\Etiqueta();
$etiquetaSemDv_1->setEtiquetaSemDv('SW99266328BR');
$etiquetaSemDv_2 = new \PhpSigep\Model\Etiqueta();
$etiquetaSemDv_2->setEtiquetaSemDv('PD73958096BR');
$params = new \PhpSigep\Model\GeraDigitoVerificadorEtiquetas();
$params->setAccessData(new \PhpSigep\Model\AccessDataHomologacao());
$params->setEtiquetas(array($etiquetaSemDv_1, $etiquetaSemDv_2));
$phpSigep = new PhpSigep\Services\SoapClient\Real();
$result = $phpSigep->geraDigitoVerificadorEtiquetas($params);
/** @var $etiquetasComDv \PhpSigep\Model\Etiqueta[] */
$etiquetasComDv = $result->getResult();
foreach ($etiquetasComDv as $etiqueta) {
    echo '<strong>Etiqueta ' . $etiqueta->getEtiquetaSemDv() . '</strong> -> DV: ' . $etiqueta->getDv() . ' -> ' . ' Etiqueta já com DV: ' . $etiqueta->getEtiquetaComDv() . '<br>';
}
echo '<hr>';
echo 'Resultado completo';
echo '<pre>';
print_r((array) $result);
echo '</pre>';
<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$dimensao = new \PhpSigep\Model\Dimensao();
$dimensao->setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA);
$dimensao->setAltura(15);
// em centímetros
$dimensao->setComprimento(17);
// em centímetros
$dimensao->setLargura(12);
// em centímetros
$params = new \PhpSigep\Model\CalcPrecoPrazo();
$params->setAccessData(new \PhpSigep\Model\AccessDataHomologacao());
$params->setCepOrigem('30170-010');
$params->setCepDestino('04538-132');
$params->setServicosPostagem(\PhpSigep\Model\ServicoDePostagem::getAll());
$params->setAjustarDimensaoMinima(true);
$params->setDimensao($dimensao);
$params->setPeso(0.15);
// 150 gramas
$phpSigep = new PhpSigep\Services\SoapClient\Real();
$result = $phpSigep->calcPrecoPrazo($params);
var_dump((array) $result);
<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$accessDataDeHomologacao = new \PhpSigep\Model\AccessDataHomologacao();
$usuario = trim(isset($_GET['usuario']) ? $_GET['usuario'] : $accessDataDeHomologacao->getUsuario());
$senha = trim(isset($_GET['senha']) ? $_GET['senha'] : $accessDataDeHomologacao->getSenha());
$cnpjEmpresa = $accessDataDeHomologacao->getCnpjEmpresa();
$accessData = new \PhpSigep\Model\AccessData();
$accessData->setUsuario($usuario);
$accessData->setSenha($senha);
$accessData->setCnpjEmpresa($cnpjEmpresa);
$params = new \PhpSigep\Model\SolicitaEtiquetas();
$params->setQtdEtiquetas(1);
$params->setServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_E_SEDEX_STANDARD);
$params->setAccessData($accessData);
$phpSigep = new PhpSigep\Services\SoapClient\Real();
?>
<!doctype html>
<html lang="pt">
    <head>
        <meta charset="UTF-8">
        <title>Exemplo Rastrear Objetos - PHP Sigep</title>
    </head>
    <body>
        <h1>Resposta</h1>
        <hr/>
        <pre><?php 
var_dump($phpSigep->solicitaEtiquetas($params));
?>
</pre>
    </body>
<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$accessData = new \PhpSigep\Model\AccessDataHomologacao();
$phpSigep = new PhpSigep\Services\SoapClient\Real();
$result = $phpSigep->buscaCliente($accessData);
if (!$result->hasError()) {
    /** @var $buscaClienteResult \PhpSigep\Model\BuscaClienteResult */
    $buscaClienteResult = $result->getResult();
    // Anula as chancelas antes de imprimir o resultado, porque as chancelas não estão é liguagem humana
    $servicos = $buscaClienteResult->getContratos()->cartoesPostagem->servicos;
    foreach ($servicos as &$servico) {
        $servico->servicoSigep->chancela->chancela = 'Chancelas anulada via código.';
    }
}
echo '<pre>';
var_dump($result);
echo '</pre>';
    $etiquetasFromQuery = explode(',', $etiquetasFromQueryRaw);
    foreach ($etiquetasFromQuery as $etiquetaFromQuery) {
        $etiqueta = new \PhpSigep\Model\Etiqueta();
        $etiqueta->setEtiquetaComDv(trim($etiquetaFromQuery));
        $etiquetas[] = $etiqueta;
    }
}
if (count($etiquetas)) {
    $accessDataDeHomologacao = new \PhpSigep\Model\AccessDataHomologacao();
    $accessDataDeHomologacao->setUsuario('ECT');
    // Usuário e senha para teste passado no manual
    $accessDataDeHomologacao->setSenha('SRO');
    $params = new \PhpSigep\Model\RastrearObjeto();
    $params->setAccessData($accessDataDeHomologacao);
    $params->setEtiquetas($etiquetas);
    $phpSigep = new PhpSigep\Services\SoapClient\Real();
    $result = $phpSigep->rastrearObjeto($params);
    var_dump((array) $result);
    $dumpResult = ob_get_clean();
}
?>
<!doctype html>
<html lang="pt">
    <head>
        <meta charset="UTF-8">
        <title>Exemplo Rastrear Objetos - PHP Sigep</title>
    </head>
    <body>
        <form action="" method="get">
            <br/>
            <label for="etiquetas">Etiquetas - separadas por vírgula</label>