<?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>';
$dimensao->setComprimento(20);
$dimensao->setDiametro(0);
$dimensao->setTipo(\PhpSigep\Model\Dimensao::TIPO_PACOTE_CAIXA);
$destinatario = new \PhpSigep\Model\Destinatario();
$destinatario->setNome('Google Belo Horizonte');
$destinatario->setLogradouro('Av. Bias Fortes');
$destinatario->setNumero('382');
$destinatario->setComplemento('6º andar');
$destino = new \PhpSigep\Model\DestinoNacional();
$destino->setBairro('Lourdes');
$destino->setCep('30170-010');
$destino->setCidade('Belo Horizonte');
$destino->setUf('MG');
// Estamos criando uma etique falsa, mas em um ambiente real voçê deve usar o método
// {@link \PhpSigep\Services\SoapClient\Real::solicitaEtiquetas() } para gerar o número das etiquetas
$etiqueta = new \PhpSigep\Model\Etiqueta();
$etiqueta->setEtiquetaSemDv('PD73958096BR');
$servicoAdicional = new \PhpSigep\Model\ServicoAdicional();
$servicoAdicional->setCodigoServicoAdicional(\PhpSigep\Model\ServicoAdicional::SERVICE_REGISTRO);
// Se não tiver valor declarado informar 0 (zero)
$servicoAdicional->setValorDeclarado(0);
$encomenda = new \PhpSigep\Model\ObjetoPostal();
$encomenda->setServicosAdicionais(array($servicoAdicional));
$encomenda->setDestinatario($destinatario);
$encomenda->setDestino($destino);
$encomenda->setDimensao($dimensao);
$encomenda->setEtiqueta($etiqueta);
$encomenda->setPeso(0.5);
// 500 gramas
$encomenda->setServicoDePostagem(new \PhpSigep\Model\ServicoDePostagem(\PhpSigep\Model\ServicoDePostagem::SERVICE_SEDEX_40096));
// ***  FIM DOS DADOS DA ENCOMENDA QUE SERÁ DESPACHADA *** //
<?php

require_once __DIR__ . '/bootstrap-exemplos.php';
$etiquetasFromQueryRaw = trim(isset($_GET['etiquetas']) ? $_GET['etiquetas'] : '');
$etiquetas = array();
if ($etiquetasFromQueryRaw) {
    $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">