name = 'expeditor'; $this->tab = 'Import/export'; $this->version = '0.4'; parent::__construct (); $this->page = basename(__FILE__, '.php'); $this->displayName = $this->l('Expeditor Inet') . ' ©'; $this->description = $this->l('Manage yours orders between Prestashop and your Expeditor Inet software'); } public function install() { global $cookie; if (!parent::install()) return false; $this->installDB(); if (!$id_tab = $this->installAdmin()) return false; if (!Configuration::get('EXPEDITOR_STATE_EXP')) Configuration::updateValue('EXPEDITOR_STATE_EXP', _PS_OS_PREPARATION_); if (!Configuration::get('EXPEDITOR_STATE_IMP')) Configuration::updateValue('EXPEDITOR_STATE_IMP', _PS_OS_PREPARATION_); if (!Configuration::get('EXPEDITOR_CARRIER')) Configuration::updateValue('EXPEDITOR_CARRIER', 0); if (!Configuration::get('EXPEDITOR_MULTIPLY')) Configuration::updateValue('EXPEDITOR_MULTIPLY', 1000); if (!Configuration::get('EXPEDITOR_CARRIER_CODES')) Configuration::updateValue('EXPEDITOR_CARRIER_CODES', NULL); if (!sizeof($this->_errors)) Tools::redirectAdmin('index.php?tab=AdminModules&configure='.$this->name.'&token='.Tools::getAdminToken('AdminModules'.intval(Tab::getIdFromClassName('AdminModules')).intval($cookie->id_employee))); foreach ($this->_errors as $errors) echo $errors.'
'; return false; } function installDB() { Db::getInstance()->Execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'expeditor` ( `id_expeditor` INT NOT NULL AUTO_INCREMENT, `id_order` INT NOT NULL, `weight` FLOAT NOT NULL DEFAULT 0, `standard_size` BOOLEAN NOT NULL DEFAULT 1, `is_send` BOOLEAN NOT NULL DEFAULT 0, `date_add` DATETIME NOT NULL, `date_upd` DATETIME NOT NULL, PRIMARY KEY (`id_expeditor`), INDEX index_order_expeditor (`id_order`) );'); } function installAdmin() { $tab = new Tab(); $tab->class_name = 'AdminExpeditor'; $tab->id_parent = 3; $tab->name[Configuration::get('PS_LANG_DEFAULT')] = $this->l('Expeditor Inet'); if ($tab->add()) { if (!@copy(dirname(__FILE__).'/AdminExpeditor.php', dirname('index.php').'/tabs/AdminExpeditor.php')) $this->_errors[] = $this->l('Please manually copy ') .dirname(__FILE__).'/AdminExpeditor.php'.' in the \'tabs\' folder located in your admin directory.'; if (!@copy(dirname(__FILE__).'/ExpeditorModule.php', dirname(__FILE__).'/../../classes/ExpeditorModule.php')) $this->_errors[] = $this->l('Please manually copy ') .dirname(__FILE__).'/ExpeditorModule.php'.' in the \'classes\' folder located in your shop directory.'; if (!@copy(dirname(__FILE__).'/logo.gif', dirname(__FILE__).'/../../img/t/adminExpeditor.gif')) $this->_errors[] = $this->l('Please manually copy ') .dirname(__FILE__).'/logo.gif'.' as '.dirname(__FILE__).'/../../img/t/adminExpeditor.gif.'; return $tab->id; } return false; } function uninstall() { Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'tab` WHERE `class_name` = \'AdminExpeditor\''); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'tab_lang` WHERE `id_tab` NOT IN (SELECT `id_tab` FROM `'._DB_PREFIX_.'tab`)'); @unlink(dirname('index.php').'/tabs/AdminExpeditor.php'); @unlink(dirname(__FILE__).'/../../classes/ExpeditorModule.php'); @unlink(dirname(__FILE__).'/../../img/t/'.Tab::getIdFromClassName('AdminExpeditor').'.gif'); return (parent::uninstall(false)); } public function getContent() { $this->_html .= '

' . $this->l('Expeditor Inet') . ' ©

'; $this->_displayDownloadFile(); if (!empty($_POST) AND isset($_POST['id_order_state_exp']) AND isset($_POST['id_order_state_imp'])) { $this->_postValidation(); if (!sizeof($this->_postErrors)) $this->_postProcess(); else foreach ($this->_postErrors AS $err) $this->_html .= '
'.$err.'
'; } $this->_displayForm(); global $cookie; $this->_html .= '

'.$this->l('Direct access to Expeditor tab.').'

'; return $this->_html; } private function _displayForm() { global $cookie; $this->orderStateExp = Configuration::get('EXPEDITOR_STATE_EXP'); $this->orderStateImp = Configuration::get('EXPEDITOR_STATE_IMP'); $this->_html .= '
'; $this->_html .= '
'.$this->l('Settings').''; $this->_html .= ''; $this->_html .= '
'; $this->_html .= ''; $this->_html .= "

" . $this->l('Choose the order state which orders can be export to Expeditor.') . "

"; $this->_html .= '
'; $this->_html .= ''; $this->_html .= '
'; $this->_html .= ''; $this->_html .= "

" . $this->l('Choose the order state when orders are import into Prestashop.') . "

"; $this->_html .= '
'; //Carrier choice $this->_html .= $this->_displayCarrierSelects(); $this->_html .= ''; $this->_html .= '
'; $this->_html .= ''; $this->carrier = Configuration::get('EXPEDITOR_CARRIER'); $carriers = Carrier::getCarriers($cookie->id_lang, false, false, false, null, 5); foreach ($carriers as $carrier) { $this->_html .= ''; //list of Carriers codes $expeditor = new ExpeditorModule(); $product_codes = $expeditor->product_codes; $this->_html .= ''; } $this->_html .= '
'.$this->l('Carrier').' '.$this->l('Carrier_code').'
_html .= ' checked="true" '; $this->_html .= '>'.$carrier['name'].'
'; $this->_html .= "

" . $this->l('Choose the carrier "LaPoste", "ColiPoste" or like this.') . "

"; $this->_html .= '
'; $this->_html .= '
' . $this->l('Liste Orders') . '
 
PrestaStore '.$this->l('This module has been developped by PrestaShop and can only be sold through').' www.prestastore.com.
'.$this->l('Please report all bugs to').' contact@prestastore.com '.$this->l('or using our').' '.$this->l('contact form').'.
'; } private function _displayCarrierSelects() { $class = new ExpeditorModule(); } private function _postValidation() { if (!isset($_POST['id_order_state_imp']) OR empty($_POST['id_order_state_imp']) OR !is_numeric($_POST['id_order_state_imp']) ) $this->_postErrors[] = $this->l('No order state import specified'); if (!isset($_POST['id_order_state_exp']) OR empty($_POST['id_order_state_exp']) OR !is_numeric($_POST['id_order_state_exp']) ) $this->_postErrors[] = $this->l('No order state export specified'); if (!isset($_POST['EXPEDITOR_MULTIPLY']) OR empty($_POST['EXPEDITOR_MULTIPLY']) OR !is_numeric($_POST['EXPEDITOR_MULTIPLY']) ) $this->_postErrors[] = $this->l('Multiplier required (0 is allowed)'); } private function _postProcess() { global $cookie; Configuration::updateValue('EXPEDITOR_MULTIPLY', $_POST['EXPEDITOR_MULTIPLY']); $ids_carrier_conf = Configuration::get('EXPEDITOR_CARRIER'); if (isset($_POST['carrierbox'])) { /* $carrier*/$ids_carrier_conf = implode(",", Tools::getValue('carrierbox')); /*foreach (Tools::getValue('carrierbox') as $id) if (!in_array($id, explode(',', $ids_carrier_conf))) $ids_carrier_conf .= ','.$id;*/ Configuration::updateValue('EXPEDITOR_CARRIER', $ids_carrier_conf ); } else $this->_html .= '
'.$this->l('Invalid carrier').'
'; $carriers = Carrier::getCarriers($cookie->id_lang, false, false, false, null, 5); foreach ($carriers as $carrier) { if (isset($_POST['product_codes_'.$carrier['id_carrier']])) { Configuration::updateValue('EXPEDITOR_CARRIER_CODES_'.$carrier['id_carrier'], $_POST['product_codes_'.$carrier['id_carrier']]); } else $this->_html .= '
'.$this->l('Invalid carrier code').'
'; } Configuration::updateValue('EXPEDITOR_STATE_EXP', Tools::getValue('id_order_state_exp')); Configuration::updateValue('EXPEDITOR_STATE_IMP', Tools::getValue('id_order_state_imp')); $this->_html .= '
ok '.$this->l('Settings updated').'
'; } private function _displayDownloadFile() { $this->_html .= '

'; $this->_html .= 'download ' . $this->l('Download format file for import data') . ''; $this->_html .= '

'; } } ?>