Exemplo n.º 1
0
 protected function truncateTables($case)
 {
     if (!Module::isInstalled('agilemultipleseller')) {
         return truncateTables($case);
     }
     $controller = Context::getContext()->controller;
     if (!$controller->is_seller) {
         return truncateTables($case);
     }
     switch ((int) $case) {
         case $this->entities[$this->l('Products')]:
             $subquery = 'SELECT id_product FROM ' . _DB_PREFIX_ . 'product_owner WHERE id_owner=' . (int) $controller->context->cookie->id_employee;
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_shop` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'feature_product` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_lang` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'category_product` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_tag` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'specific_price` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'specific_price_priority` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_carrier` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'cart_product` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'compare_product` WHERE id_product IN (' . $subquery . ')');
             if (count(Db::getInstance()->executeS('SHOW TABLES LIKE \'' . _DB_PREFIX_ . 'favorite_product\' '))) {
                 Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'favorite_product` WHERE id_product IN (' . $subquery . ')');
             }
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_attachment` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_country_tax` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_download` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_group_reduction_cache` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_sale` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_supplier` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'scene_products` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'warehouse_product_location` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'customization` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'customization_field` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'supply_order_detail` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'attribute_impact` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_attribute` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_attribute_shop` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_attribute_combination` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_attribute_image` WHERE id_product IN (' . $subquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'pack` WHERE id_product_pack IN (' . $subquery . ') OR  WHERE id_product_item IN (' . $subquery . ')');
             $stockquery = 'SELECT id_stock FROM `' . _DB_PREFIX_ . 'stock` WHERE id_product IN (' . $subquery . ')';
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'stock` WHERE id_product IN (' . $stockquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'stock_available` WHERE id_product IN (' . $stockquery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'stock_mvt` WHERE id_stock IN (' . $stockquery . ')');
             $imagequery = 'SELECT id_image FROM `' . _DB_PREFIX_ . 'image` WHERE id_product IN (' . $subquery . ')';
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'image` WHERE id_iamge IN (' . $imagequery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'image_lang` WHERE id_iamge IN (' . $imagequery . ')');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'image_shop` WHERE id_iamge IN (' . $imagequery . ')');
             if (!file_exists(_PS_PROD_IMG_DIR_)) {
                 mkdir(_PS_PROD_IMG_DIR_);
             }
             break;
     }
     Image::clearTmpDir();
     return true;
 }
Exemplo n.º 2
0
 public function truncateTable($table)
 {
     switch ($table) {
         case 'customer':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customer');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customer_group');
             break;
         case 'address':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'address');
             break;
         case 'country':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'state');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'country');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'country_lang');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'country');
         case 'group':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customer_group');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'group_lang');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'group');
             break;
         case 'combination':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_shop');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_combination');
             break;
         case 'category':
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'category` WHERE id_category != 1');
             Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'category_lang` WHERE id_category != 1');
             Db::getInstance()->execute('ALTER TABLE `' . _DB_PREFIX_ . 'category` AUTO_INCREMENT = 2 ');
             foreach (scandir(_PS_CAT_IMG_DIR_) as $d) {
                 if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                     unlink(_PS_CAT_IMG_DIR_ . $d);
                 }
             }
             Image::clearTmpDir();
             break;
         case 'product':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_shop');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'feature_product');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_lang');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'category_product');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_tag');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image_lang');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_shop');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_combination');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'specific_price');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'specific_price_priority');
             Image::deleteAllImages(_PS_PROD_IMG_DIR_);
             Image::clearTmpDir();
             @mkdir(_PS_PROD_IMG_DIR_);
             break;
         case 'manufacturer':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer_lang');
             foreach (scandir(_PS_MANU_IMG_DIR_) as $d) {
                 if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                     unlink(_PS_MANU_IMG_DIR_ . $d);
                 }
             }
             Image::clearTmpDir();
             break;
         case 'Suppliers':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier_lang');
             foreach (scandir(_PS_SUPP_IMG_DIR_) as $d) {
                 if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                     unlink(_PS_SUPP_IMG_DIR_ . $d);
                 }
             }
             Image::clearTmpDir();
             break;
         case 'attribute':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_lang');
             break;
         case 'attributegroup':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group');
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group_lang');
             break;
         case 'currency':
         case 'customer':
         case 'zone':
         case 'state':
             Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . bqSQL($table) . '`');
             break;
     }
     return true;
 }
Exemplo n.º 3
0
    public static function checkAndFix()
    {
        $db = Db::getInstance();
        $logs = array();
        // Remove doubles in the configuration
        $filtered_configuration = array();
        $result = $db->ExecuteS('SELECT * FROM ' . _DB_PREFIX_ . 'configuration');
        foreach ($result as $row) {
            $key = $row['id_shop_group'] . '-|-' . $row['id_shop'] . '-|-' . $row['name'];
            if (in_array($key, $filtered_configuration)) {
                $query = 'DELETE FROM ' . _DB_PREFIX_ . 'configuration WHERE id_configuration = ' . (int) $row['id_configuration'];
                $db->Execute($query);
                $logs[$query] = 1;
            } else {
                $filtered_configuration[] = $key;
            }
        }
        unset($filtered_configuration);
        // Remove inexisting or monolanguage configuration value from configuration_lang
        $query = 'DELETE FROM `' . _DB_PREFIX_ . 'configuration_lang`
		WHERE `id_configuration` NOT IN (SELECT `id_configuration` FROM `' . _DB_PREFIX_ . 'configuration`)
		OR `id_configuration` IN (SELECT `id_configuration` FROM `' . _DB_PREFIX_ . 'configuration` WHERE name IS NULL OR name = "")';
        if ($db->Execute($query)) {
            if ($affected_rows = $db->Affected_Rows()) {
                $logs[$query] = $affected_rows;
            }
        }
        // Simple Cascade Delete
        $queries = self::getCheckAndFixQueries();
        $queries = self::bulle($queries);
        foreach ($queries as $query_array) {
            // If this is a module and the module is not installed, we continue
            if (isset($query_array[4]) && !Module::isInstalled($query_array[4])) {
                continue;
            }
            $query = 'DELETE FROM `' . _DB_PREFIX_ . $query_array[0] . '` WHERE `' . $query_array[1] . '` NOT IN (SELECT `' . $query_array[3] . '` FROM `' . _DB_PREFIX_ . $query_array[2] . '`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
        }
        // _lang table cleaning
        $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "' . preg_replace('/([%_])/', '\\$1', _DB_PREFIX_) . '%_\\_lang"');
        foreach ($tables as $table) {
            $table_lang = current($table);
            $table = str_replace('_lang', '', $table_lang);
            $id_table = 'id_' . preg_replace('/^' . _DB_PREFIX_ . '/', '', $table);
            $query = 'DELETE FROM `' . bqSQL($table_lang) . '` WHERE `' . bqSQL($id_table) . '` NOT IN (SELECT `' . bqSQL($id_table) . '` FROM `' . bqSQL($table) . '`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
            $query = 'DELETE FROM `' . bqSQL($table_lang) . '` WHERE `id_lang` NOT IN (SELECT `id_lang` FROM `' . _DB_PREFIX_ . 'lang`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
        }
        // _shop table cleaning
        $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "' . preg_replace('/([%_])/', '\\$1', _DB_PREFIX_) . '%_\\_shop"');
        foreach ($tables as $table) {
            $table_shop = current($table);
            $table = str_replace('_shop', '', $table_shop);
            $id_table = 'id_' . preg_replace('/^' . _DB_PREFIX_ . '/', '', $table);
            if (in_array($table_shop, array(_DB_PREFIX_ . 'carrier_tax_rules_group_shop'))) {
                continue;
            }
            $query = 'DELETE FROM `' . bqSQL($table_shop) . '` WHERE `' . bqSQL($id_table) . '` NOT IN (SELECT `' . bqSQL($id_table) . '` FROM `' . bqSQL($table) . '`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
            $query = 'DELETE FROM `' . bqSQL($table_shop) . '` WHERE `id_shop` NOT IN (SELECT `id_shop` FROM `' . _DB_PREFIX_ . 'shop`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
        }
        // stock_available
        $query = 'DELETE FROM `' . _DB_PREFIX_ . 'stock_available` WHERE `id_shop` NOT IN (SELECT `id_shop` FROM `' . _DB_PREFIX_ . 'shop`) AND `id_shop_group` NOT IN (SELECT `id_shop_group` FROM `' . _DB_PREFIX_ . 'shop_group`)';
        if ($db->Execute($query)) {
            if ($affected_rows = $db->Affected_Rows()) {
                $logs[$query] = $affected_rows;
            }
        }
        Category::regenerateEntireNtree();
        // @Todo: Remove attachment files, images...
        Image::clearTmpDir();
        self::clearAllCaches();
        return $logs;
    }
Exemplo n.º 4
0
 private function truncateTables($case)
 {
     switch ((int) $case) {
         case $this->entities[$this->l('Categories')]:
             Db::getInstance()->Execute('DELETE FROM `' . _DB_PREFIX_ . 'category` WHERE id_category != 1');
             Db::getInstance()->Execute('DELETE FROM `' . _DB_PREFIX_ . 'category_lang` WHERE id_category != 1');
             Db::getInstance()->Execute('ALTER TABLE `' . _DB_PREFIX_ . 'category` AUTO_INCREMENT = 2');
             foreach (scandir(_PS_CAT_IMG_DIR_) as $d) {
                 if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                     unlink(_PS_CAT_IMG_DIR_ . $d);
                 }
             }
             break;
         case $this->entities[$this->l('Products')]:
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'feature_product');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_lang');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'category_product');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_tag');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image_lang');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'specific_price');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'specific_price_priority');
             Image::deleteAllImages(_PS_PROD_IMG_DIR_);
             mkdir(_PS_PROD_IMG_DIR_);
             break;
         case $this->entities[$this->l('Customers')]:
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customer');
             break;
         case $this->entities[$this->l('Addresses')]:
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'address');
             break;
         case $this->entities[$this->l('Combinations')]:
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_impact');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute`');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_combination`');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_image`');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group`');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group_lang`');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute`');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_lang`');
             break;
         case $this->entities[$this->l('Manufacturers')]:
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer_lang');
             foreach (scandir(_PS_MANU_IMG_DIR_) as $d) {
                 if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                     unlink(_PS_MANU_IMG_DIR_ . $d);
                 }
             }
             break;
         case $this->entities[$this->l('Suppliers')]:
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier');
             Db::getInstance()->Execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier_lang');
             foreach (scandir(_PS_SUPP_IMG_DIR_) as $d) {
                 if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                     unlink(_PS_SUPP_IMG_DIR_ . $d);
                 }
             }
             break;
     }
     Image::clearTmpDir();
     return true;
 }
Exemplo n.º 5
0
    protected function truncateTables($case)
    {
        switch ((int) $case) {
            case $this->entities[$this->l('Categories')]:
                Db::getInstance()->execute('
					DELETE FROM `' . _DB_PREFIX_ . 'category`
					WHERE id_category NOT IN (' . (int) Configuration::get('PS_HOME_CATEGORY') . ', ' . (int) Configuration::get('PS_ROOT_CATEGORY') . ')');
                Db::getInstance()->execute('
					DELETE FROM `' . _DB_PREFIX_ . 'category_lang`
					WHERE id_category NOT IN (' . (int) Configuration::get('PS_HOME_CATEGORY') . ', ' . (int) Configuration::get('PS_ROOT_CATEGORY') . ')');
                Db::getInstance()->execute('
					DELETE FROM `' . _DB_PREFIX_ . 'category_shop`
					WHERE `id_category` NOT IN (' . (int) Configuration::get('PS_HOME_CATEGORY') . ', ' . (int) Configuration::get('PS_ROOT_CATEGORY') . ')');
                Db::getInstance()->execute('ALTER TABLE `' . _DB_PREFIX_ . 'category` AUTO_INCREMENT = 3');
                foreach (scandir(_PS_CAT_IMG_DIR_) as $d) {
                    if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                        unlink(_PS_CAT_IMG_DIR_ . $d);
                    }
                }
                break;
            case $this->entities[$this->l('Products')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_shop`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'feature_product`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_lang`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'category_product`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_tag`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image_lang`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'image_shop`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'specific_price`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'specific_price_priority`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_carrier`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'cart_product`');
                if (count(Db::getInstance()->executeS('SHOW TABLES LIKE \'' . _DB_PREFIX_ . 'favorite_product\' '))) {
                    //check if table exist
                    Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'favorite_product`');
                }
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attachment`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_country_tax`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_download`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_group_reduction_cache`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_sale`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_supplier`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'warehouse_product_location`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'stock`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'stock_available`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'stock_mvt`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customization`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customization_field`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supply_order_detail`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_impact`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_shop`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_combination`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_image`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'pack`');
                Image::deleteAllImages(_PS_PROD_IMG_DIR_);
                if (!file_exists(_PS_PROD_IMG_DIR_)) {
                    mkdir(_PS_PROD_IMG_DIR_);
                }
                break;
            case $this->entities[$this->l('Combinations')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_impact`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_lang`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group_lang`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_group_shop`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'attribute_shop`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_shop`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_combination`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'product_attribute_image`');
                Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'stock_available` WHERE id_product_attribute != 0');
                break;
            case $this->entities[$this->l('Customers')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'customer`');
                break;
            case $this->entities[$this->l('Addresses')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'address`');
                break;
            case $this->entities[$this->l('Brands')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer_lang`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'manufacturer_shop`');
                foreach (scandir(_PS_MANU_IMG_DIR_) as $d) {
                    if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                        unlink(_PS_MANU_IMG_DIR_ . $d);
                    }
                }
                break;
            case $this->entities[$this->l('Suppliers')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier_lang`');
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'supplier_shop`');
                foreach (scandir(_PS_SUPP_IMG_DIR_) as $d) {
                    if (preg_match('/^[0-9]+(\\-(.*))?\\.jpg$/', $d)) {
                        unlink(_PS_SUPP_IMG_DIR_ . $d);
                    }
                }
                break;
            case $this->entities[$this->l('Alias')]:
                Db::getInstance()->execute('TRUNCATE TABLE `' . _DB_PREFIX_ . 'alias`');
                break;
        }
        Image::clearTmpDir();
        return true;
    }
Exemplo n.º 6
0
    public static function checkAndFix()
    {
        $db = Db::getInstance();
        $logs = array();
        // Remove doubles in the configuration
        $filtered_configuration = array();
        $result = $db->ExecuteS('SELECT * FROM ' . _DB_PREFIX_ . 'configuration');
        foreach ($result as $row) {
            $key = $row['id_shop_group'] . '-|-' . $row['id_shop'] . '-|-' . $row['name'];
            if (in_array($key, $filtered_configuration)) {
                $query = 'DELETE FROM ' . _DB_PREFIX_ . 'configuration WHERE id_configuration = ' . (int) $row['id_configuration'];
                $db->Execute($query);
                $logs[$query] = 1;
            } else {
                $filtered_configuration[] = $key;
            }
        }
        unset($filtered_configuration);
        // Remove inexisting or monolanguage configuration value from configuration_lang
        $query = 'DELETE FROM `' . _DB_PREFIX_ . 'configuration_lang`
		WHERE `id_configuration` NOT IN (SELECT `id_configuration` FROM `' . _DB_PREFIX_ . 'configuration`)
		OR `id_configuration` IN (SELECT `id_configuration` FROM `' . _DB_PREFIX_ . 'configuration` WHERE name IS NULL OR name = "")';
        if ($db->Execute($query)) {
            if ($affected_rows = $db->Affected_Rows()) {
                $logs[$query] = $affected_rows;
            }
        }
        // Simple Cascade Delete
        $queries = array(array('access', 'id_profile', 'profile', 'id_profile'), array('access', 'id_tab', 'tab', 'id_tab'), array('accessory', 'id_product_1', 'product', 'id_product'), array('accessory', 'id_product_2', 'product', 'id_product'), array('address_format', 'id_country', 'country', 'id_country'), array('attribute', 'id_attribute_group', 'attribute_group', 'id_attribute_group'), array('carrier_group', 'id_carrier', 'carrier', 'id_carrier'), array('carrier_group', 'id_group', 'group', 'id_group'), array('carrier_zone', 'id_carrier', 'carrier', 'id_carrier'), array('carrier_zone', 'id_zone', 'zone', 'id_zone'), array('cart_cart_rule', 'id_cart', 'cart', 'id_cart'), array('cart_product', 'id_cart', 'cart', 'id_cart'), array('cart_rule_carrier', 'id_cart_rule', 'cart_rule', 'id_cart_rule'), array('cart_rule_carrier', 'id_carrier', 'carrier', 'id_carrier'), array('cart_rule_combination', 'id_cart_rule_1', 'cart_rule', 'id_cart_rule'), array('cart_rule_combination', 'id_cart_rule_2', 'cart_rule', 'id_cart_rule'), array('cart_rule_country', 'id_cart_rule', 'cart_rule', 'id_cart_rule'), array('cart_rule_country', 'id_country', 'country', 'id_country'), array('cart_rule_group', 'id_cart_rule', 'cart_rule', 'id_cart_rule'), array('cart_rule_group', 'id_group', 'group', 'id_group'), array('cart_rule_product_rule_group', 'id_cart_rule', 'cart_rule', 'id_cart_rule'), array('cart_rule_product_rule', 'id_product_rule_group', 'cart_rule_product_rule_group', 'id_product_rule_group'), array('cart_rule_product_rule_value', 'id_product_rule', 'cart_rule_product_rule', 'id_product_rule'), array('category_group', 'id_category', 'category', 'id_category'), array('category_group', 'id_group', 'group', 'id_group'), array('category_product', 'id_category', 'category', 'id_category'), array('category_product', 'id_product', 'product', 'id_product'), array('cms', 'id_cms_category', 'cms_category', 'id_cms_category'), array('cms_block', 'id_cms_category', 'cms_category', 'id_cms_category', 'blockcms'), array('cms_block_page', 'id_cms', 'cms', 'id_cms', 'blockcms'), array('cms_block_page', 'id_cms_block', 'cms_block', 'id_cms_block', 'blockcms'), array('compare', 'id_customer', 'customer', 'id_customer'), array('compare_product', 'id_compare', 'compare', 'id_compare'), array('compare_product', 'id_product', 'product', 'id_product'), array('connections', 'id_shop_group', 'shop_group', 'id_shop_group'), array('connections', 'id_shop', 'shop', 'id_shop'), array('connections_page', 'id_connections', 'connections', 'id_connections'), array('connections_page', 'id_page', 'page', 'id_page'), array('connections_source', 'id_connections', 'connections', 'id_connections'), array('customer', 'id_shop_group', 'shop_group', 'id_shop_group'), array('customer', 'id_shop', 'shop', 'id_shop'), array('customer_group', 'id_group', 'group', 'id_group'), array('customer_group', 'id_customer', 'customer', 'id_customer'), array('customer_message', 'id_customer_thread', 'customer_thread', 'id_customer_thread'), array('customer_thread', 'id_shop', 'shop', 'id_shop'), array('customization', 'id_cart', 'cart', 'id_cart'), array('customization_field', 'id_product', 'product', 'id_product'), array('customized_data', 'id_customization', 'customization', 'id_customization'), array('delivery', 'id_shop', 'shop', 'id_shop'), array('delivery', 'id_shop_group', 'shop_group', 'id_shop_group'), array('delivery', 'id_carrier', 'carrier', 'id_carrier'), array('delivery', 'id_zone', 'zone', 'id_zone'), array('editorial', 'id_shop', 'shop', 'id_shop', 'editorial'), array('favorite_product', 'id_product', 'product', 'id_product', 'favoriteproducts'), array('favorite_product', 'id_customer', 'customer', 'id_customer', 'favoriteproducts'), array('favorite_product', 'id_shop', 'shop', 'id_shop', 'favoriteproducts'), array('feature_product', 'id_feature', 'feature', 'id_feature'), array('feature_product', 'id_product', 'product', 'id_product'), array('feature_value', 'id_feature', 'feature', 'id_feature'), array('group_reduction', 'id_group', 'group', 'id_group'), array('group_reduction', 'id_category', 'category', 'id_category'), array('homeslider', 'id_shop', 'shop', 'id_shop', 'homeslider'), array('homeslider', 'id_homeslider_slides', 'homeslider_slides', 'id_homeslider_slides', 'homeslider'), array('hook_module', 'id_hook', 'hook', 'id_hook'), array('hook_module', 'id_module', 'module', 'id_module'), array('hook_module_exceptions', 'id_hook', 'hook', 'id_hook'), array('hook_module_exceptions', 'id_module', 'module', 'id_module'), array('hook_module_exceptions', 'id_shop', 'shop', 'id_shop'), array('image', 'id_product', 'product', 'id_product'), array('message', 'id_cart', 'cart', 'id_cart'), array('message_readed', 'id_message', 'message', 'id_message'), array('message_readed', 'id_employee', 'employee', 'id_employee'), array('module_access', 'id_profile', 'profile', 'id_profile'), array('module_access', 'id_module', 'module', 'id_module'), array('module_country', 'id_module', 'module', 'id_module'), array('module_country', 'id_country', 'country', 'id_country'), array('module_country', 'id_shop', 'shop', 'id_shop'), array('module_currency', 'id_module', 'module', 'id_module'), array('module_currency', 'id_currency', 'currency', 'id_currency'), array('module_currency', 'id_shop', 'shop', 'id_shop'), array('module_group', 'id_module', 'module', 'id_module'), array('module_group', 'id_group', 'group', 'id_group'), array('module_group', 'id_shop', 'shop', 'id_shop'), array('module_preference', 'id_employee', 'employee', 'id_employee'), array('orders', 'id_shop', 'shop', 'id_shop'), array('orders', 'id_shop_group', 'group_shop', 'id_shop_group'), array('order_carrier', 'id_order', 'orders', 'id_order'), array('order_cart_rule', 'id_order', 'orders', 'id_order'), array('order_detail', 'id_order', 'orders', 'id_order'), array('order_detail_tax', 'id_order_detail', 'order_detail', 'id_order_detail'), array('order_history', 'id_order', 'orders', 'id_order'), array('order_invoice', 'id_order', 'orders', 'id_order'), array('order_invoice_payment', 'id_order', 'orders', 'id_order'), array('order_invoice_tax', 'id_order_invoice', 'order_invoice', 'id_order_invoice'), array('order_return', 'id_order', 'orders', 'id_order'), array('order_return_detail', 'id_order_return', 'order_return', 'id_order_return'), array('order_slip', 'id_order', 'orders', 'id_order'), array('order_slip_detail', 'id_order_slip', 'order_slip', 'id_order_slip'), array('pack', 'id_product_pack', 'product', 'id_product'), array('pack', 'id_product_item', 'product', 'id_product'), array('page', 'id_page_type', 'page_type', 'id_page_type'), array('page_viewed', 'id_shop', 'shop', 'id_shop'), array('page_viewed', 'id_shop_group', 'shop_group', 'id_shop_group'), array('page_viewed', 'id_date_range', 'date_range', 'id_date_range'), array('product_attachment', 'id_attachment', 'attachment', 'id_attachment'), array('product_attachment', 'id_product', 'product', 'id_product'), array('product_attribute', 'id_product', 'product', 'id_product'), array('product_attribute_combination', 'id_product_attribute', 'product_attribute', 'id_product_attribute'), array('product_attribute_combination', 'id_attribute', 'attribute', 'id_attribute'), array('product_attribute_image', 'id_image', 'image', 'id_image'), array('product_attribute_image', 'id_product_attribute', 'product_attribute', 'id_product_attribute'), array('product_carrier', 'id_product', 'product', 'id_product'), array('product_carrier', 'id_shop', 'shop', 'id_shop'), array('product_carrier', 'id_carrier_reference', 'carrier', 'id_reference'), array('product_country_tax', 'id_product', 'product', 'id_product'), array('product_country_tax', 'id_country', 'country', 'id_country'), array('product_country_tax', 'id_tax', 'tax', 'id_tax'), array('product_download', 'id_product', 'product', 'id_product'), array('product_group_reduction_cache', 'id_product', 'product', 'id_product'), array('product_group_reduction_cache', 'id_group', 'group', 'id_group'), array('product_sale', 'id_product', 'product', 'id_product'), array('product_supplier', 'id_product', 'product', 'id_product'), array('product_supplier', 'id_supplier', 'supplier', 'id_supplier'), array('product_tag', 'id_product', 'product', 'id_product'), array('product_tag', 'id_tag', 'tag', 'id_tag'), array('range_price', 'id_carrier', 'carrier', 'id_carrier'), array('range_weight', 'id_carrier', 'carrier', 'id_carrier'), array('referrer_cache', 'id_referrer', 'referrer', 'id_referrer'), array('referrer_cache', 'id_connections_source', 'connections_source', 'id_connections_source'), array('scene_category', 'id_scene', 'scene', 'id_scene'), array('scene_category', 'id_category', 'category', 'id_category'), array('scene_products', 'id_scene', 'scene', 'id_scene'), array('scene_products', 'id_product', 'product', 'id_product'), array('search_index', 'id_product', 'product', 'id_product'), array('search_word', 'id_lang', 'lang', 'id_lang'), array('search_word', 'id_shop', 'shop', 'id_shop'), array('shop_url', 'id_shop', 'shop', 'id_shop'), array('specific_price_priority', 'id_product', 'product', 'id_product'), array('stock', 'id_warehouse', 'warehouse', 'id_warehouse'), array('stock', 'id_product', 'product', 'id_product'), array('stock_available', 'id_product', 'product', 'id_product'), array('stock_mvt', 'id_stock', 'stock', 'id_stock'), array('tab_module_preference', 'id_employee', 'employee', 'id_employee'), array('tab_module_preference', 'id_tab', 'tab', 'id_tab'), array('tax_rule', 'id_country', 'country', 'id_country'), array('theme_specific', 'id_theme', 'theme', 'id_theme'), array('theme_specific', 'id_shop', 'shop', 'id_shop'), array('warehouse_carrier', 'id_warehouse', 'warehouse', 'id_warehouse'), array('warehouse_carrier', 'id_carrier', 'carrier', 'id_carrier'), array('warehouse_product_location', 'id_product', 'product', 'id_product'), array('warehouse_product_location', 'id_warehouse', 'warehouse', 'id_warehouse'));
        $queries = self::bulle($queries);
        foreach ($queries as $query_array) {
            // If this is a module and the module is not installed, we continue
            if (isset($query_array[4]) && !Module::isInstalled($query_array[4])) {
                continue;
            }
            $query = 'DELETE FROM `' . _DB_PREFIX_ . $query_array[0] . '` WHERE `' . $query_array[1] . '` NOT IN (SELECT `' . $query_array[3] . '` FROM `' . _DB_PREFIX_ . $query_array[2] . '`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
        }
        // _lang table cleaning
        $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "' . preg_replace('/([%_])/', '\\$1', _DB_PREFIX_) . '%_\\_lang"');
        foreach ($tables as $table) {
            $table_lang = current($table);
            $table = str_replace('_lang', '', $table_lang);
            $id_table = 'id_' . preg_replace('/^' . _DB_PREFIX_ . '/', '', $table);
            $query = 'DELETE FROM `' . bqSQL($table_lang) . '` WHERE `' . bqSQL($id_table) . '` NOT IN (SELECT `' . bqSQL($id_table) . '` FROM `' . bqSQL($table) . '`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
            $query = 'DELETE FROM `' . bqSQL($table_lang) . '` WHERE `id_lang` NOT IN (SELECT `id_lang` FROM `' . _DB_PREFIX_ . 'lang`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
        }
        // _shop table cleaning
        $tables = Db::getInstance()->executeS('SHOW TABLES LIKE "' . preg_replace('/([%_])/', '\\$1', _DB_PREFIX_) . '%_\\_shop"');
        foreach ($tables as $table) {
            $table_shop = current($table);
            $table = str_replace('_shop', '', $table_shop);
            $id_table = 'id_' . preg_replace('/^' . _DB_PREFIX_ . '/', '', $table);
            if (in_array($table_shop, array(_DB_PREFIX_ . 'carrier_tax_rules_group_shop'))) {
                continue;
            }
            $query = 'DELETE FROM `' . bqSQL($table_shop) . '` WHERE `' . bqSQL($id_table) . '` NOT IN (SELECT `' . bqSQL($id_table) . '` FROM `' . bqSQL($table) . '`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
            $query = 'DELETE FROM `' . bqSQL($table_shop) . '` WHERE `id_shop` NOT IN (SELECT `id_shop` FROM `' . _DB_PREFIX_ . 'shop`)';
            if ($db->Execute($query)) {
                if ($affected_rows = $db->Affected_Rows()) {
                    $logs[$query] = $affected_rows;
                }
            }
        }
        // stock_available
        $query = 'DELETE FROM `' . _DB_PREFIX_ . 'stock_available` WHERE `id_shop` NOT IN (SELECT `id_shop` FROM `' . _DB_PREFIX_ . 'shop`) AND `id_shop_group` NOT IN (SELECT `id_shop_group` FROM `' . _DB_PREFIX_ . 'shop_group`)';
        if ($db->Execute($query)) {
            if ($affected_rows = $db->Affected_Rows()) {
                $logs[$query] = $affected_rows;
            }
        }
        Category::regenerateEntireNtree();
        // @Todo: Remove attachment files, images...
        Image::clearTmpDir();
        self::clearAllCaches();
        return $logs;
    }
Exemplo n.º 7
0
 private function truncateTables($case)
 {
     switch ((int) $case) {
         case $this->entities[$this->l('Categories')]:
             $categories = Db::getInstance()->ExecuteS('SELECT `id_category` FROM `' . _DB_PREFIX_ . 'category` WHERE id_category != 1');
             foreach ($categories as $category) {
                 $c = new Category((int) $category['id_category']);
                 $c->delete();
             }
             break;
         case $this->entities[$this->l('Products')]:
             $products = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `' . _DB_PREFIX_ . 'product`');
             foreach ($products as $product) {
                 $p = new Product((int) $product['id_product']);
                 $p->delete(true);
             }
             break;
         case $this->entities[$this->l('Customers')]:
             $customers = Db::getInstance()->ExecuteS('SELECT `id_customer` FROM `' . _DB_PREFIX_ . 'customer`');
             foreach ($customers as $customer) {
                 $c = new Customer((int) $customer['id_customer']);
                 $c->delete();
             }
             break;
         case $this->entities[$this->l('Addresses')]:
             $addresses = Db::getInstance()->ExecuteS('SELECT `id_address` FROM `' . _DB_PREFIX_ . 'address`');
             foreach ($addresses as $address) {
                 $a = new Address((int) $address['id_address']);
                 $a->delete();
             }
             break;
         case $this->entities[$this->l('Combinations')]:
             $products = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `' . _DB_PREFIX_ . 'product`');
             foreach ($products as $product) {
                 $p = new Product((int) $product['id_product']);
                 $p->deleteProductAttributes();
             }
             break;
         case $this->entities[$this->l('Manufacturers')]:
             $manufacturers = Db::getInstance()->ExecuteS('SELECT `id_manufacturer` FROM `' . _DB_PREFIX_ . 'manufacturer`');
             foreach ($manufacturers as $manufacturer) {
                 $m = new Manufacturer((int) $manufacturer['id_manufacturer']);
                 $m->delete();
             }
             break;
         case $this->entities[$this->l('Suppliers')]:
             $suppliers = Db::getInstance()->ExecuteS('SELECT `id_supplier` FROM `' . _DB_PREFIX_ . 'supplier`');
             foreach ($suppliers as $supplier) {
                 $m = new Supplier((int) $supplier['id_supplier']);
                 $m->delete();
             }
             break;
     }
     Image::clearTmpDir();
     return true;
 }