public static function init()
 {
     $controller = new DpdGroupPostcodeController();
     if (Tools::isSubmit(DpdGroupPostcodeController::SETTINGS_SAVE_POSTCODE_ACTION)) {
         $csv_data = $controller->readCSVData();
         if ($csv_data === false) {
             DpdGroup::addFlashError($controller->l('Wrong CSV file'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
         $message = $controller->validatePostcodeData($csv_data);
         if ($message !== true) {
             return $controller->module_instance->outputHTML($controller->module_instance->displayError(implode('<br />', $message)));
         }
         if ($controller->saveCSVData($csv_data)) {
             DpdGroup::addFlashMessage($controller->l('CSV data was successfully saved'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         } else {
             DpdGroup::addFlashError($controller->l('CSV data could not be saved'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
     }
     if (Tools::isSubmit(DpdGroupPostcodeController::SETTINGS_DOWNLOAD_POSTCODE_ACTION)) {
         $controller->generateCSV();
     }
     if (Tools::isSubmit('submitBulkdeletepostcode')) {
         $postcodes_ids = Tools::getValue('postcodeBox');
         if (empty($postcodes_ids)) {
             DpdGroup::addFlashError($controller->l('No postcodes selected'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
         $errors = array();
         foreach ($postcodes_ids as $id_postcode) {
             $postcode = new DpdGroupPostcode((int) $id_postcode);
             if (!$postcode->delete()) {
                 $errors[] = $controller->l('Could not delete postcode, #') . (int) $id_postcode;
             }
         }
         if (empty($errors)) {
             DpdGroup::addFlashMessage($controller->l('Selected postcodes deleted successfully'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         } else {
             DpdGroup::addFlashError(implode('<br />', $errors));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
     }
     if (Tools::isSubmit('delete_postcode')) {
         $postcode = new DpdGroupPostcode((int) Tools::getValue('id_postcode'));
         if ($postcode->delete()) {
             DpdGroup::addFlashMessage($controller->l('Postcode was deleted successfully'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         } else {
             DpdGroup::addFlashError($controller->l('Could not delete postcode'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
     }
     if (Tools::isSubmit(self::SETTINGS_DELETE_POSTCODE_ACTION)) {
         $postcode = new DpdGroupPostcode();
         if ($postcode->deleteAllData()) {
             DpdGroup::addFlashMessage($controller->l('All postcodes deleted successfully'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         } else {
             DpdGroup::addFlashError($controller->l('Could not delete all postcodes'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
     }
     if (Tools::isSubmit(self::SETTINGS_RESTORE_POSTCODE_ACTION)) {
         $postcode = new DpdGroupPostcode();
         if (!$postcode->deleteAllData()) {
             DpdGroup::addFlashError($controller->l('Could not delete all postcodes'));
             Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
         }
         $sql = array();
         $postcodes = Tools::file_get_contents(_DPDGROUP_SQL_DIR_ . 'data.sql');
         $postcodes = str_replace('zitec_dpd_postcodes', _DB_PREFIX_ . _DPDGROUP_POSTCODE_DB_, $postcodes);
         $postcodes = explode(';', $postcodes);
         foreach ($postcodes as $query) {
             if ($query) {
                 $sql[] = $query . ';';
             }
         }
         foreach ($sql as $query) {
             if (Db::getInstance()->execute($query) == false) {
                 DpdGroup::addFlashError($controller->l('Could not restore default postcodes data'));
                 Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
             }
         }
         DpdGroup::addFlashMessage($controller->l('Default postcodes data restored successfully'));
         Tools::redirectAdmin($controller->module_instance->module_url . '&menu=postcode');
     }
     return null;
 }