* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 1.4 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ require_once('MondialRelayClass.php'); @set_time_limit(0); function _get($type, $host, $port = '80', $path = '/', $data = '') { $d = ''; $_err = 'lib sockets::'.__FUNCTION__.'(): '; switch($type) { case 'http': $type = ''; case 'ssl': continue; default: die($_err.'bad $type'); } if(!ctype_digit($port)) die($_err.'bad port'); $fp = fsockopen($host, $port, $errno, $errstr, $timeout=60); if(!$fp) die($_err.$errstr.$errno); else { fputs($fp, "POST $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: ".strlen($data)."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data."\r\n\r\n"); while(!feof($fp)) $d .= fgets($fp,4096); fclose($fp); } $ndata = explode(":THISTAG:",$d); return $ndata[1]; } function free_MR_chaine($mystring) { $mystring = strip_tags($mystring); $mystring = htmlentities($mystring, ENT_NOQUOTES, 'utf-8'); $mystring = preg_replace('#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', '\1', $mystring); $mystring = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $mystring); $mystring = preg_replace('#\&[^;]+\;#', '', $mystring); $mystring = str_replace('\'', ' ', $mystring); $mystring = str_replace('"', ' ', $mystring); $OldPattern0 = array("�","�","�","�","�","�","�","�","�","�","\"","�","�", "�","�","�","�","�","�","�","�","�","�","�","�","�", "�","�","�","�","�"); $mystring = str_replace($OldPattern0 , ' ',$mystring); return $mystring; } class AdminMondialRelay extends AdminTab { private $displayInfos = true; public function __construct() { $this->table = 'mr_selected'; $this->className = 'MondialRelayClass'; parent::__construct(); } private function _delete_history() { unset($result); if (isset($_POST['history'])) foreach($_POST['history'] as $field) if (isset($field['selected']) AND $field['selected'] == '1') $query = Db::getInstance()->Execute("DELETE FROM `" . _DB_PREFIX_ ."mr_historique` WHERE id='".(int)($field['id'])."';"); } private function _generateetiquettes() { unset($result); $urla4 = ''; $urla5 = ''; include_once(dirname(__FILE__).'/mondialrelay.php'); $mondialrelay = new MondialRelay(); echo '
' . $mondialrelay->getL('List of orders recognized') . '
'; $mr_Enseigne_WebService = Configuration::get('MR_ENSEIGNE_WEBSERVICE'); $mr_code_marque = Configuration::get('MR_CODE_MARQUE'); $mr_Key_WebService = Configuration::get('MR_KEY_WEBSERVICE'); $mr_Langage = Configuration::get('MR_LANGUAGE'); $mr_Ad1 = Configuration::get('PS_SHOP_NAME'); $mr_Ad2 = ''; $mr_Ad3 = Configuration::get('PS_SHOP_ADDR1'); $mr_Ad4 = Configuration::get('PS_SHOP_ADDR2'); $mr_Ville = Configuration::get('PS_SHOP_CITY'); $mr_CP = Configuration::get('PS_SHOP_CODE'); $mr_Pays = Db::getInstance()->getValue('SELECT c.`iso_code` FROM `'._DB_PREFIX_.'country` c JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country`) WHERE cl.`name` = "'.pSQL(Configuration::get('PS_SHOP_COUNTRY')).'" AND cl.`id_lang` = '.(int)(Configuration::get('PS_LANG_DEFAULT'))); $mr_Tel1 = Configuration::get('PS_SHOP_PHONE'); $mr_Tel2 = ''; $mr_Mail = Configuration::get('PS_SHOP_EMAIL'); $concatener_id_order = ""; $concatener_exp_num = ""; $concatener_error = ""; if (!empty($mr_Ad1) AND !empty($mr_Ad3) AND !empty($mr_Ville) AND !empty($mr_CP) AND !empty($mr_Pays)) { foreach($_POST['order'] as $field) { if (is_numeric($field['weight']) AND $field['weight'] > 0 AND isset($field['selected']) AND $field['selected'] == '1') { $customer = new Customer((int)($field['id_customer'])); $addressliv = new Address((int)($field['id_address_delivery'])); $country = new Country((int)($addressliv->id_country)); $params = 'mr_Enseigne_WebService='.urlencode(free_MR_chaine($mr_Enseigne_WebService)); $params .= '&mr_code_marque='.urlencode(free_MR_chaine($mr_code_marque)); $params .= '&mr_Key_WebService='.urlencode(free_MR_chaine($mr_Key_WebService)); $params .= '&ModeCol='.urlencode(free_MR_chaine($field['mr_ModeCol'])); $params .= '&ModeLiv='.(urlencode(free_MR_chaine($field['mr_ModeLiv'])) == 'LD1' ? 'LDR' : urlencode(free_MR_chaine($field['mr_ModeLiv']))); $params .= '&NDossier='.urlencode(free_MR_chaine($field['id'])); $params .= '&NClient='.urlencode(free_MR_chaine($field['id_customer'])); $params .= '&Expe_Langage='.urlencode(free_MR_chaine($mr_Langage)); $params .= '&Expe_Ad1='.urlencode(free_MR_chaine($mr_Ad1)); $params .= '&Expe_Ad2='.urlencode(free_MR_chaine($mr_Ad2)); $params .= '&Expe_Ad3='.urlencode(free_MR_chaine($mr_Ad3)); $params .= '&Expe_Ad4='.urlencode(free_MR_chaine($mr_Ad4)); $params .= '&Expe_Ville='.urlencode(free_MR_chaine($mr_Ville)); $params .= '&Expe_CP='.urlencode(free_MR_chaine($mr_CP)); $params .= '&Expe_Pays='.urlencode(free_MR_chaine($mr_Pays)); $params .= '&Expe_Tel1='.urlencode(free_MR_chaine($mr_Tel1)); $params .= '&Expe_Tel2='.urlencode(free_MR_chaine($mr_Tel2)); $params .= '&Expe_Mail='.urlencode(free_MR_chaine($mr_Mail)); $params .= '&Dest_Langage='.urlencode(free_MR_chaine($country->iso_code)); $params .= '&Dest_Ad1='.urlencode(strtoupper(substr(free_MR_chaine($addressliv->lastname).' '.free_MR_chaine($addressliv->firstname), 0, 32))); $params .= '&Dest_Ad2='.urlencode(strtoupper(substr(free_MR_chaine($addressliv->address2), 0, 32))); $params .= '&Dest_Ad3='.urlencode(strtoupper(substr(free_MR_chaine($addressliv->address1), 0, 32))); $params .= '&Dest_Ad4='.urlencode(strtoupper(substr(substr(free_MR_chaine($addressliv->address1), 32), 0, 32))); $params .= '&Dest_Ville='.urlencode(strtoupper(substr(free_MR_chaine($addressliv->city), 0, 26))); $params .= '&Dest_CP='.urlencode(strtoupper(substr(free_MR_chaine($addressliv->postcode), 0, 5))); $params .= '&Dest_Pays='.urlencode($country->iso_code); $params .= '&Dest_Tel1='.urlencode(free_MR_chaine($addressliv->phone ? $addressliv->phone : '')); $params .= '&Dest_Tel2='.urlencode(free_MR_chaine($addressliv->phone_mobile ? $addressliv->phone_mobile : '')); $params .= '&Dest_Mail='.urlencode(free_MR_chaine(strtoupper(substr($customer->email, 0, 70)))); while (strlen($field['weight']) < 3) $field['weight'] = '0'.$field['weight']; $params .= '&Poids='.urlencode(free_MR_chaine($field['weight'])); $params .= '&Longueur='; $params .= '&Taille='; $params .= '&NbColis=1'; $params .= '&CRT_Valeur=0'; $params .= '&CRT_Devise=EUR'; $params .= '&Exp_Valeur='; $params .= '&Exp_Devise='; if ($field['MR_Selected_Num'] == 'LD1' OR $field['MR_Selected_Num'] == 'LDS') { $params .= '&LIV_Rel_Pays='; $params .= '&LIV_Rel='; } else { $params .= '&LIV_Rel_Pays='.$field['MR_Selected_Pays']; $params .= '&LIV_Rel='.$field['MR_Selected_Num']; } $params .= '&Assurance='.urlencode(free_MR_chaine($field['mr_ModeAss'])); $params .= '&Instructions='; $params .= '&Texte='; $result = _get('http', htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8'), '80', __PS_BASE_URI__ .'modules/mondialrelay/kit_mondialrelay/CreationEtiquettePointRelais_ajax.php', $params); $result = explode('|', $result); if ($result[0] == 'a') $concatener_error .= 'Order ID = '.$field['id'].'
'.$mondialrelay->getL('Settings updated succesfull').''.$mondialrelay->getL('All orders which have the state').' "'.$order_state->name.'"'; $html .= '. ' . $mondialrelay->getL('Change configuration') . '
'; $orders = MondialRelayClass::getOrders(); if (empty($orders)) { $html.= '