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; }
$to_reply = isActiveModule($post_data); break; case 'setModuleConfiguration': $to_reply = setModuleConfiguration($post_data); break; case 'getModuleAndSiteConfiguration': $to_reply = getModuleAndSiteConfiguration($post_data); break; case 'getOrders': $to_reply = getOrders($post_data); break; case 'setProductsReviews': $to_reply = setProductsReviews($post_data); break; case 'truncateTables': $to_reply = truncateTables($post_data); break; case 'getUrlProducts': $to_reply = getUrlProducts($post_data); break; case 'getOrderHistoryOn': $to_reply = getOrderHistoryOn($post_data); break; case 'getCountOrder': $to_reply = getCountOrder($post_data); break; case 'getOrdersCsv': $to_reply = getOrdersCsv($post_data); break; default: break;
$testIterations = 100; $insertIterations = 1000; $madPdo = new madPDOFramework('mysql:dbname=mad;host=localhost', 'root'); $madPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); dropTables($madPdo); $vanillaPdo = new PDO('mysql:dbname=vanilla;host=localhost', 'root'); $vanillaPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); dropTables($vanillaPdo); $tests = glob(dirname(__FILE__) . '/fixtures/*'); echo "Will run insert.sql {$insertIterations} times\n"; echo "Will run select tests {$testIterations} times\n"; foreach ($tests as $test) { $testName = substr($test, strrpos($test, DIRECTORY_SEPARATOR)); $madPdo->cacheReset(); truncateTables($madPdo); truncateTables($vanillaPdo); runSqlFile("{$test}/insert.sql", $madPdo); dropTables($vanillaPdo); $schema = exportSchema($madPdo); $schemaFile = "{$test}/schema.sql"; assertSqlFile($schemaFile, $schema); runSqlFile($schemaFile, $vanillaPdo); $data = exportData($madPdo); $dataFile = "{$test}/data.sql"; assertSqlFile($dataFile, $data); for ($i = 1; $i <= $insertIterations; $i++) { runSqlFile("{$test}/insert.sql", $vanillaPdo); } if ($insertIterations > 1) { for ($i = 1; $i <= $insertIterations - 1; $i++) { runSqlFile("{$test}/insert.sql", $madPdo);