function upgrade_module_1_5($object, $install = false) { // Install overrides try { $object->installOverrides(); } catch (Exception $e) { Tools::displayError(sprintf(Tools::displayError('Unable to install override: %s'), $e->getMessage())); //$this->uninstallOverrides(); remove this line because if module a install an override, then module b install same override, this line will remove override of module a (if you find a bug related to this line please don't forget what i say before) return false; } $classindex = realpath(dirname(__FILE__) . '/../..') . '/cache/class_index.php'; unset($classindex); if (version_compare(_PS_VERSION_, '1.6', '>=')) { PrestashopAutoload::getInstance()->generateIndex(); } else { Autoload::getInstance()->generateIndex(); } if (!Hook::getIdByName('actionBeforeAddOrder')) { $hook = new Hook(); $hook->name = 'actionBeforeAddOrder'; $hook->title = 'Execute actions before order is added to database'; $hook->description = 'Custom hook for Order Add function'; $hook->position = true; $hook->live_edit = false; $hook->add(); } if (!Hook::getIdByName('actionBeforeAddOrderInvoice')) { $hook2 = new Hook(); $hook2->name = 'actionBeforeAddOrderInvoice'; $hook2->title = 'Execute actions before invoice is added to database'; $hook2->description = 'Custom hook for Order setLastInvoiceNumber function'; $hook2->position = true; $hook2->live_edit = false; $hook2->add(); } if (!Hook::getIdByName('actionBeforeAddDeliveryNumber')) { $hook3 = new Hook(); $hook3->name = 'actionBeforeAddDeliveryNumber'; $hook3->title = 'Execute actions before delivery number is added to database'; $hook3->description = 'Custom hook for Order setDeliveryNumber function'; $hook3->position = true; $hook3->live_edit = false; $hook3->add(); } $id_new_hook = Hook::getIdByName('actionBeforeAddOrder'); $id_new_hook2 = Hook::getIdByName('actionBeforeAddOrderInvoice'); $id_new_hook3 = Hook::getIdByName('actionBeforeAddDeliveryNumber'); $id_old_hook = Hook::getIdByName('actionValidateOrder'); $mod_new_hook = Hook::getModulesFromHook($id_new_hook, $object->id); $mod_new_hook2 = Hook::getModulesFromHook($id_new_hook2, $object->id); $mod_new_hook3 = Hook::getModulesFromHook($id_new_hook3, $object->id); $mod_old_hook = Hook::getModulesFromHook($id_old_hook, $object->id); if (empty($mod_new_hook)) { $object->registerHook('actionBeforeAddOrder'); } if (empty($mod_new_hook2)) { $object->registerHook('actionBeforeAddOrderInvoice'); } if (empty($mod_new_hook3)) { $object->registerHook('actionBeforeAddDeliveryNumber'); } if (!empty($mod_old_hook)) { $object->unregisterHook('actionValidateOrder'); } return true; }
public function install() { $hook = new Hook(Hook::getIdByName('actionBeforeAddOrder')); $hook->delete(); unset($hook); $hook2 = new Hook(Hook::getIdByName('actionBeforeAddOrderInvoice')); $hook2->delete(); unset($hook2); $hook3 = new Hook(Hook::getIdByName('actionBeforeAddDeliveryNumber')); $hook3->delete(); unset($hook3); if (!Hook::getIdByName('actionBeforeAddOrder')) { $hook = new Hook(); $hook->name = 'actionBeforeAddOrder'; $hook->title = 'Execute actions before order is added to database'; $hook->description = 'Custom hook for Order Add function'; $hook->position = true; $hook->live_edit = false; if (!$hook->add()) { return $this->_abortInstall('Error while adding hook actionBeforeAddOrder', 0); } unset($hook); } if (!Hook::getIdByName('actionBeforeAddOrderInvoice')) { $hook2 = new Hook(); $hook2->name = 'actionBeforeAddOrderInvoice'; $hook2->title = 'Execute actions before invoice is added to database'; $hook2->description = 'Custom hook for OrderInvoice Add function'; $hook2->position = true; $hook2->live_edit = false; if (!$hook2->add()) { return $this->_abortInstall('Error while adding hook actionBeforeAddOrderInvoice', 1); } unset($hook2); } if (!Hook::getIdByName('actionBeforeAddDeliveryNumber')) { $hook3 = new Hook(); $hook3->name = 'actionBeforeAddDeliveryNumber'; $hook3->title = 'Execute actions before delivery number is added to database'; $hook3->description = 'Custom hook for Order setDeliveryNumber function'; $hook3->position = true; $hook3->live_edit = false; if (!$hook3->add()) { return $this->_abortInstall('Error while adding hook actionBeforeAddDeliveryNumber', 2); } } if (!$this->installDB()) { return $this->_abortInstall('Error while installing module database settings', 3); } if (!parent::install()) { return $this->_abortInstall('Error while installing module class', 4); } if (!$this->installXtraOverrides()) { return $this->_abortInstall('Error while installing OrderPayment definition override', 5); } if (!$this->registerHook('actionBeforeAddOrder')) { return $this->_abortInstall('Error while adding module to hook actionBeforeAddOrder', 6); } if (!$this->registerHook('actionBeforeAddOrderInvoice')) { return $this->_abortInstall('Error while adding module to hook actionBeforeAddOrderInvoice', 7); } if (!$this->registerHook('actionBeforeAddDeliveryNumber')) { return $this->_abortInstall('Error while adding module to hook actionBeforeAddDeliveryNumber', 8); } if (!Configuration::updateValue('ORD_REF_ORDERID', 0)) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_ORDERID', 9); } if (!Configuration::updateValue('ORD_REF_PREFIXNULO', 0)) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULO', 10); } if (!Configuration::updateValue('ORD_REF_PREFIXNULNRO', 9)) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULNRO', 11); } if (!Configuration::updateValue('ORD_REF_PREFIXNULNRC', 9)) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULNRC', 12); } if (!Configuration::updateValue('ORD_REF_PREFIXSIGNO', '')) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXSIGNO', 13); } if (!Configuration::updateValue('ORD_REF_CARTID', 0)) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIX_CARTID', 14); } if (!Configuration::updateValue('ORD_REF_PREFIXNULC', 0)) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXNULC', 15); } if (!Configuration::updateValue('ORD_REF_PREFIXSIGNC', '')) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXSIGNC', 16); } if (!Configuration::updateValue('ORD_REF_PREFIXSIGN', '')) { return $this->_abortInstall('Error while adding configuration setting ORD_REF_PREFIXSIGN', 17); } if (!Configuration::updateValue('INV_REF_ORDERID', 0)) { return $this->_abortInstall('Error while adding configuration setting INV_REF_ORDERID', 18); } if (!Configuration::updateValue('INV_REF_CARTID', 0)) { return $this->_abortInstall('Error while adding configuration setting INV_REF_CARTID', 19); } if (!Configuration::updateValue('INV_REF_PREFIXSIGN', 0)) { return $this->_abortInstall('Error while adding configuration setting INV_REF_PREFIXSIGN', 20); } $classindex = realpath(dirname(__FILE__) . '/../..') . '/cache/class_index.php'; unset($classindex); if (version_compare(_PS_VERSION_, '1.6', '>=')) { PrestashopAutoload::getInstance()->generateIndex(); } else { Autoload::getInstance()->generateIndex(); } return true; }