public static function getPrivateRate($order_data) { try { $servicio = 31; $producto = 2; $serviciosComplementarios = ''; if (isset($order_data['reembolso']) && ($order_data['iso'] == 'ES' || $order_data['iso'] == 'PT' || $order_data['iso'] == 'AD')) { $serviciosComplementarios = '30;P;' . $order_data['reembolso']; } if (isset($order_data['cod_centro']) && ($order_data['iso'] == 'ES' || $order_data['iso'] == 'PT' || $order_data['iso'] == 'AD')) { $servicio = 1; $producto = 48; } $sc_options = array('connection_timeout' => 30); $soap_client = new SoapClient((string) Configuration::get('SEUR_URLWS_SP'), $sc_options); $plano = '<REG> <USUARIO>' . Configuration::get('SEUR_WS_USERNAME') . '</USUARIO> <PASSWORD>' . Configuration::get('SEUR_WS_PASSWORD') . '</PASSWORD> <NOM_POBLA_DEST>' . pSQL($order_data['town']) . '</NOM_POBLA_DEST> <Peso>' . pSQL($order_data['peso']) . '</Peso> <CODIGO_POSTAL_DEST>' . pSQL($order_data['post_code']) . '</CODIGO_POSTAL_DEST> <CodContableRemitente>' . pSQL($order_data['ccc']) . '-' . pSQL($order_data['franchise']) . '</CodContableRemitente> <PesoVolumen>' . pSQL($order_data['peso']) . '</PesoVolumen> <Bultos>' . pSQL($order_data['bultos']) . '</Bultos> <CodServ>' . pSQL($servicio) . '</CodServ> <CodProd>' . pSQL($producto) . '</CodProd> <TipoEnvioAduanero></TipoEnvioAduanero> <ValDeclarado></ValDeclarado> <TpDespAduanaEntrada></TpDespAduanaEntrada> <TpDespAduanaSalida></TpDespAduanaSalida> <dateVigenciaTasacion>20120615</dateVigenciaTasacion> <SERVICIOS_COMPLEMENTARIOS>' . pSQL($serviciosComplementarios) . '</SERVICIOS_COMPLEMENTARIOS> <COD_IDIOMA>' . pSQL($order_data['iso_merchant']) . '</COD_IDIOMA> </REG>'; $data = array('in0' => $plano); $response = $soap_client->tarificacionPrivadaStr($data); if (empty($response->out) || isset($response->error) && !empty($response->error)) { return false; } else { $string_xml = htmlspecialchars_decode($response->out); $xml = simplexml_load_string($string_xml); return $xml; } } catch (PrestaShopException $e) { $e->displayMessage(); } }
<CODIGO_POSTAL_DEST>' . pSQL(Tools::getValue('post_code')) . '</CODIGO_POSTAL_DEST> <CodContableRemitente>' . pSQL(Tools::getValue('ccc')) . '-' . pSQL(Tools::getValue('franchise')) . '</CodContableRemitente> <PesoVolumen>' . pSQL(Tools::getValue('peso')) . '</PesoVolumen> <Bultos>' . pSQL(Tools::getValue('bultos')) . '</Bultos> <CodServ>' . pSQL($servicio) . '</CodServ> <CodProd>' . (int) $producto . '</CodProd> <TipoEnvioAduanero></TipoEnvioAduanero> <ValDeclarado></ValDeclarado> <TpDespAduanaEntrada></TpDespAduanaEntrada> <TpDespAduanaSalida></TpDespAduanaSalida> <dateVigenciaTasacion>20120615</dateVigenciaTasacion> <SERVICIOS_COMPLEMENTARIOS>' . pSQL($serviciosComplementarios) . '</SERVICIOS_COMPLEMENTARIOS> <COD_IDIOMA>' . pSQL(Tools::getValue('iso_merchant')) . '</COD_IDIOMA> </REG>'; $data = array('in0' => $plano); $response = $soap_client->tarificacionPrivadaStr($data); if (empty($response->out) || isset($response->error) && !empty($response->error)) { return false; } else { $delivery = array(); $total = 0; foreach (simplexml_load_string($response->out) as $key => $price) { if ((string) $price->NOM_CONCEPTO_IMP != 'IVA') { $delivery[] = array('concepto' => utf8_decode((string) $price->NOM_CONCEPTO_IMP), 'importe' => (string) $price->VALOR); } else { $iva = array('concepto' => (string) $price->NOM_CONCEPTO_IMP, 'importe' => (string) $price->VALOR); } $total = $total + (double) $price->VALOR; } $delivery[] = $iva; $delivery[] = array('concepto' => 'Total', 'importe' => (string) $total);