Example #1
0
    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);