public function uninstall()
 {
     // Uninstall
     if (!parent::uninstall() || !Configuration::deleteByName('COURIERSERVICE_OVERCOST') || !Configuration::deleteByName('DELIVERYPOINTS_OVERCOST') || !$this->unregisterHook('updateCarrier') || !$this->unregisterHook('displayBackOfficeHeader') || !DpdCarrierOptions::uninstallDb() || !DpdDeliveryPoints::uninstallDb() || !DpdOrderOptions::uninstallDb() || !DpdDeliveryPrice::uninstallDb()) {
         //          || !$this->removeBulkActionButtons() //Using this only if Overwrite using already other model!
         return false;
     }
     // Delete External Carrier
     $carrier1 = new Carrier((int) Configuration::get('COURIERSERVICE_CARRIER_ID'));
     $carrier2 = new Carrier((int) Configuration::get('DELIVERYPOINTS_CARRIER_ID'));
     // If external carrier is default set other one as default
     if (Configuration::get('PS_CARRIER_DEFAULT') == (int) $carrier1->id || Configuration::get('PS_CARRIER_DEFAULT') == (int) $carrier2->id) {
         $carriers_d = Carrier::getCarriers(Context::getContext()->cookie->id_lang, true, false, false, null, PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE);
         foreach ($carriers_d as $carrier_d) {
             if ($carrier_d['active'] && !$carrier_d['deleted'] && $carrier_d['name'] != $this->_config['name']) {
                 Configuration::updateValue('PS_CARRIER_DEFAULT', $carrier_d['id_carrier']);
             }
         }
     }
     // Then delete Carrier
     $carrier1->deleted = 1;
     $carrier2->deleted = 1;
     if (!$carrier1->update() || !$carrier2->update()) {
         return false;
     }
     $settings = array(self::CONST_PREFIX . 'ENABLED', self::CONST_PREFIX . 'SERVICE_USERNAME', self::CONST_PREFIX . 'SERVICE_USERPASS', self::CONST_PREFIX . 'SERVICE_USERID', self::CONST_PREFIX . 'API_URL', self::CONST_PREFIX . 'BTNSUBMIT', self::CONST_PREFIX . 'TAB', self::CONST_PREFIX . 'USERNAME');
     foreach ($settings as $setting) {
         Configuration::deleteByName($setting);
     }
     $tab = new Tab(Tab::getIdFromClassName('AdminCallcarrier'));
     $tab->delete();
     return true;
 }