Пример #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;
 }
Пример #2
0
     $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;
Пример #3
0
$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);