public function frete($dados, $options = array())
 {
     $endpoint = 'http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx?WSDL';
     $tipos = array('sedex' => '40010', 'sedex_a_cobrar' => '40045', 'sedex_10' => '40215', 'sedex_hoje' => '40290', 'pac' => '41106', 'pac_contrato' => '41068', 'sedex_contrato' => '40096', 'esedex' => '81019');
     $formatos = array('caixa' => 1, 'rolo' => 2, 'envelope' => 3);
     $dados['tipo'] = $tipos[$dados['tipo']];
     $dados['formato'] = $formatos[$dados['formato']];
     /* dados[tipo]
        40010 SEDEX Varejo
        40045 SEDEX a Cobrar Varejo
        40215 SEDEX 10 Varejo
        40290 SEDEX Hoje Varejo
        41106 PAC Varejo
        */
     /*
     1 – Formato caixa/pacote
     2 – Formato rolo/prisma
     3 - Envelope
     */
     $dados['cep_destino'] = preg_replace("/[^0-9]/", '', $dados['cep_destino']);
     $dados['cep_origem'] = preg_replace("/[^0-9]/", '', $dados['cep_origem']);
     $options = array_merge(array('trace' => true, 'exceptions' => true, 'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP, 'connection_timeout' => 1000), $options);
     $soap = new \SoapClient($endpoint, $options);
     $params = array('nCdEmpresa' => isset($dados['empresa']) ? $dados['empresa'] : '', 'sDsSenha' => isset($dados['senha']) ? $dados['senha'] : '', 'nCdServico' => $dados['tipo'], 'sCepOrigem' => $dados['cep_origem'], 'sCepDestino' => $dados['cep_destino'], 'nVlPeso' => $dados['peso'], 'nCdFormato' => $dados['formato'], 'nVlComprimento' => $dados['comprimento'], 'nVlAltura' => $dados['altura'], 'nVlLargura' => $dados['largura'], 'nVlDiametro' => $dados['diametro'], 'sCdMaoPropria' => isset($dados['mao_propria']) && $dados['mao_propria'] ? 'S' : 'N', 'nVlValorDeclarado' => isset($dados['valor_declarado']) ? $dados['valor_declarado'] : 0, 'sCdAvisoRecebimento' => isset($dados['aviso_recebimento']) && $dados['aviso_recebimento'] ? 'S' : 'N', 'sDtCalculo' => date('d/m/Y'));
     //die(print_r($params,true));
     $CalcPrecoPrazoData = $soap->CalcPrecoPrazoData($params);
     $resultado = $CalcPrecoPrazoData->CalcPrecoPrazoDataResult->Servicos->cServico;
     if (!is_array($resultado)) {
         $resultado = array($resultado);
     }
     $dados = array();
     foreach ($resultado as $consulta) {
         $consulta = (array) $consulta;
         $dados = array('codigo' => $consulta['Codigo'], 'valor' => (double) str_replace(',', '.', $consulta['Valor']), 'prazo' => (int) str_replace(',', '.', $consulta['PrazoEntrega']), 'mao_propria' => (double) str_replace(',', '.', $consulta['ValorMaoPropria']), 'aviso_recebimento' => (double) str_replace(',', '.', $consulta['ValorAvisoRecebimento']), 'valor_declarado' => (double) str_replace(',', '.', $consulta['ValorValorDeclarado']), 'entrega_domiciliar' => $consulta['EntregaDomiciliar'] === 'S' ? true : false, 'entrega_sabado' => $consulta['EntregaSabado'] === 'S' ? true : false, 'erro' => array('codigo' => (double) $consulta['Erro'], 'mensagem' => $consulta['MsgErro']));
     }
     return $dados;
 }