/** * Cálculo do valor e prazo do frete * * $opcoes * `servico` (int) Código do serviço, ver as defines CORREIOS_*. (Obrigatório) * `cepOrigem` (string) CEP de origem no formato XXXXX-XXX (Obrigatório) * `cepDestino` (string) CEP de destino no formato XXXXX-XXX (Obrigatório) * `peso` (float) Peso do pacote, em quilos (Obrigatório) * `maoPropria` (bool) Usar recurso de mão própria? (Obrigatório) * `valorDeclarado` (float) Valor declarado do pacote. (Obrigatório) * `avisoRecebimento` (bool) Aviso de recebimento?. (Obrigatório) * `formato` (int) Formato da encomenda (Caixa, Rolo ou envelope) veja os campos estáticos. (Obrigatório) * `comprimento` (float) Comprimento da encomenda. (Obrigatório) * `altura` (float) Altura da encomenda, caso formato seja envolope deve ser 0 * `largura` (float) Largura da encomenda (Obrigatório) > 11cm * `diametro` (float) Diametro caso formato seja rolo. * `empresa` (string) O código administrativo cadastrado no ECT. * `senha` (string) A senha da empresa * * @param array $opcoes As opções para passar para API * @return mixed Array com os dados do frete ou integer com erro. Ver defines ERRO_CORREIOS_* para erros. */ public function valorFrete($opcoes = []) { // Validação dos parâmetros if ($this->__erroCorreios($this->__validaOpcoes($opcoes))) { return $this->__validaOpcoes($opcoes); } // Ajustes nos parâmetros $opcoes["maoPropria"] = $opcoes["maoPropria"] ? 'S' : 'N'; $opcoes["avisoRecebimento"] = $opcoes["avisoRecebimento"] ? 'S' : 'N'; $query = ['op' => 'CalcPrecoPrazo', 'nCdEmpresa' => isset($opcoes["empresa"]) ? $opcoes["empresa"] : "", 'sDsSenha' => isset($opcoes["senha"]) ? $opcoes["senha"] : "", 'nCdServico' => $opcoes["servico"], 'sCepOrigem' => $opcoes["cepOrigem"], 'sCepDestino' => $opcoes["cepDestino"], 'nVlPeso' => $opcoes["peso"], 'nCdFormato' => $opcoes["formato"], 'nVlComprimento' => $opcoes["comprimento"], 'nVlAltura' => $opcoes["formato"] === CorreiosTrait::$ENCOMENDA_ENVELOPE ? 0 : $opcoes["altura"], 'nVlLargura' => $opcoes["largura"], 'nVlDiametro' => $opcoes["formato"] === CorreiosTrait::$ENCOMENDA_ROLO ? $opcoes["diametro"] : 0, 'sCdMaoPropria' => $opcoes["maoPropria"], 'nVlValorDeclarado' => $opcoes["valorDeclarado"] ? $opcoes["valorDeclarado"] : 'n', 'sCdAvisoRecebimento' => $opcoes["avisoRecebimento"] ? $opcoes["avisoRecebimento"] : 'n', 'StrRetorno' => 'xml', 'nIndicaCalculo' => 3]; /* * http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=09146920&sDsSenha=123456&sCepOrigem=70002900&sCepDestino=71939360&nVlPeso=1&nCdFormato=1&nVlComprimento=30&nVlAltura=30&nVlLargura=30&sCdMaoPropria=n&nVlValorDeclarado=0&sCdAvisoRecebimento=n&nCdServico=40010&nVlDiametro=0&StrRetorno=xml&nIndicaCalculo=3 */ $retornoCorreios = $this->_requisitaUrl('http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx', 'get', $query); if (is_integer($retornoCorreios)) { return $retornoCorreios; } $xml = Xml::build($retornoCorreios); $infoCorreios = Xml::toArray($xml); if (!isset($infoCorreios['Servicos']['cServico'])) { return CorreiosTrait::$ERRO_CORREIOS_CONTEUDO_INVALIDO; } extract($infoCorreios['Servicos']['cServico']); /** * @var string $ValorMaoPropria * @var string $ValorValorDeclarado * @var string $Valor * @var string $EntregaDomiciliar * @var string $EntregaSabado */ return ['valorMaoPropria' => $ValorMaoPropria, 'valorTarifaValorDeclarado' => $ValorValorDeclarado, 'valorFrete' => $Valor - $ValorValorDeclarado - $ValorMaoPropria, 'valorTotal' => $Valor, 'entregaDomiciliar' => $EntregaDomiciliar === "S" ? true : false, 'entregaSabado' => $EntregaSabado === "S" ? true : false]; }
/** * Latest Posts method. * * @return void */ public function latestPosts() { $rss = file_get_contents('http://cakemanager.org/rss', false); if ($rss) { $xml = Xml::toArray(Xml::build($rss)); $data = $xml['rss']['channel']['item']; } $this->set('posts', isset($data) ? $data : []); }
private static function searchDnb($isbn) { //$scheme = 'oai_dc'; $scheme = 'MARC21-xml'; $options = ['operation=searchRetrieve', 'accessToken=' . Configure::read('DNB.accessToken'), 'recordSchema=' . $scheme, 'query=' . $isbn]; $url = 'http://services.dnb.de/sru/dnb?version=1.1&' . implode($options, '&'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $xml = simplexml_load_string($output, 'SimpleXMLElement', LIBXML_NOCDATA); $xml = Xml::toArray($xml); if (isset($xml['searchRetrieveResponse']['numberOfRecords']) && $xml['searchRetrieveResponse']['numberOfRecords'] > 0) { return $xml; } else { return false; } }
public function result() { $results = Xml::toArray(Xml::build('test.xml')); $this->set('results', $results); }
/** * Helper method to parse xml input data, due to lack of anonymous functions * this lives here. * * @param string $xml XML string. * @return array Xml array data */ public function convertXml($xml) { try { $xml = Xml::build($xml); if (isset($xml->data)) { return Xml::toArray($xml->data); } return Xml::toArray($xml); } catch (XmlException $e) { return []; } }
/** * testToArrayFail method * * @dataProvider invalidToArrayDataProvider * @expectedException \Cake\Utility\Exception\XmlException * @return void */ public function testToArrayFail($value) { Xml::toArray($value); }
/** * CurrencyLib::_loadXml() * * @param string $url * @return array */ protected function _loadXml($url) { $CurrencyXml = Xml::build($url); return Xml::toArray($CurrencyXml); }
public function sources() { $this->viewBuilder()->layout('ajax'); $xml = Xml::toArray(Xml::build(__DIR__ . '/../Resources/feeds.xml')); $this->set('data', $xml); }