Ignore:
Timestamp:
2012/02/14 15:10:54 (14 years ago)
Author:
Seasoft
Message:

#1641 (商品規格における木構造の廃止)

Location:
branches/version-2_12-dev/data/class
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/SC_Product.php

    r21481 r21502  
    259259 
    260260            // 規格1が設定されている 
    261             $this->classCat1_find[$productId] = (!SC_Utils_Ex::isBlank($arrProductClass[0]['classcategory_id1'])); 
     261            $this->classCat1_find[$productId] = $arrProductClass[0]['classcategory_id1'] > 0; // 要変更ただし、他にも改修が必要となる 
    262262            // 規格2が設定されている 
    263             $this->classCat2_find[$productId] = (!SC_Utils_Ex::isBlank($arrProductClass[0]['classcategory_id2'])); 
     263            $this->classCat2_find[$productId] = $arrProductClass[0]['classcategory_id2'] > 0; // 要変更ただし、他にも改修が必要となる 
    264264 
    265265            $this->stock_find[$productId] = false; 
     
    316316 
    317317                // #929(GC8 規格のプルダウン順序表示不具合)対応のため、2次キーは「#」を前置 
    318                 if (SC_Utils_Ex::isBlank($productsClass1)) { 
     318                if (!$this->classCat1_find[$productId]) { 
    319319                    $productsClass1 = '__unselected2'; 
    320320                } 
     
    356356            T1.down_filename, 
    357357            T1.down_realfilename, 
    358             T2.class_combination_id, 
    359             T2.parent_class_combination_id, 
    360             T2.classcategory_id, 
    361             T2.level, 
    362             T3.name AS classcategory_name, 
    363             T3.rank, 
    364             T4.name AS class_name, 
    365             T4.class_id 
     358            T3.name AS classcategory_name1, 
     359            T3.rank AS rank1, 
     360            T4.name AS class_name1, 
     361            T4.class_id AS class_id1, 
     362            T1.classcategory_id1, 
     363            T1.classcategory_id2, 
     364            dtb_classcategory2.name AS classcategory_name2, 
     365            dtb_classcategory2.rank AS rank2, 
     366            dtb_class2.name AS class_name2, 
     367            dtb_class2.class_id AS class_id2 
    366368__EOS__; 
    367369        $table = <<< __EOS__ 
    368370                      dtb_products_class T1 
    369             LEFT JOIN dtb_class_combination T2 
    370                    ON T1.class_combination_id = T2.class_combination_id 
    371371            LEFT JOIN dtb_classcategory T3 
    372                    ON T2.classcategory_id = T3.classcategory_id 
     372                   ON T1.classcategory_id1 = T3.classcategory_id 
    373373            LEFT JOIN dtb_class T4 
    374374                   ON T3.class_id = T4.class_id 
     375            LEFT JOIN dtb_classcategory dtb_classcategory2 
     376                   ON T1.classcategory_id2 = dtb_classcategory2.classcategory_id 
     377            LEFT JOIN dtb_class dtb_class2 
     378                   ON dtb_classcategory2.class_id = dtb_class2.class_id 
    375379__EOS__; 
    376380 
    377381        $objQuery->setOrder('T3.rank DESC'); // XXX 
    378382        $arrRet = $objQuery->select($col, $table, "", $params); 
    379         $levels = array(); 
    380         $parents = array(); 
    381         foreach ($arrRet as $rows) { 
    382             $levels[] = $rows['level']; 
    383             $parents[] = $rows['parent_class_combination_id']; 
    384         } 
    385         $level = max($levels); 
    386         $parentsClass = array(); 
    387         // 階層分の親を取得 
    388         for ($i = 0; $i < $level -1; $i++) { 
    389             $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    390             $objQuery->setWhere('T1.class_combination_id IN (' . implode(', ', array_pad(array(), count($parents), '?')) . ')'); 
    391  
    392             $col = <<< __EOS__ 
    393                 T1.class_combination_id, 
    394                 T1.classcategory_id, 
    395                 T1.parent_class_combination_id, 
    396                 T1.level, 
    397                 T2.name AS classcategory_name, 
    398                 T2.rank, 
    399                 T3.name AS class_name, 
    400                 T3.class_id 
    401 __EOS__; 
    402             $table = <<< __EOS__ 
    403                           dtb_class_combination T1 
    404                 LEFT JOIN dtb_classcategory T2 
    405                        ON T1.classcategory_id = T2.classcategory_id 
    406                 LEFT JOIN dtb_class T3 
    407                        ON T2.class_id = T3.class_id 
    408 __EOS__; 
    409  
    410             $objQuery->setOrder('T2.rank DESC'); // XXX 
    411             $arrParents = $objQuery->select($col, $table, "", $parents); 
    412  
    413             foreach ($arrParents as $rows) { 
    414                 $parents[] = $rows['parent_class_combination_id']; 
    415  
    416                 foreach ($arrRet as $child) { 
    417                     if ($child['parent_class_combination_id'] 
    418                         == $rows['class_combination_id']) { 
    419                         $rows['product_id'] = $child['product_id']; 
    420                     } 
    421                 } 
    422                 $tmpParents[] = $rows; 
    423             } 
    424             $parentsClass = array_merge($parentsClass, $tmpParents); 
    425         } 
    426  
    427         // 末端から枝を作成 
    428         $tmpClass = array_merge($arrRet, $parentsClass); 
    429  
    430         foreach ($tmpClass as $val) { 
    431             $val['class_id' . $val['level']] = $val['class_id']; 
    432             $val['class_name' . $val['level']] = $val['class_name']; 
    433             $val['classcategory_name' . $val['level']] = $val['classcategory_name']; 
    434             $val['classcategory_id' . $val['level']] = $val['classcategory_id']; 
    435             $arrProductsClass[] = $val; 
    436         } 
    437         return $arrProductsClass; 
     383 
     384        return $arrRet; 
    438385    } 
    439386 
     
    449396        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    450397        $objQuery->setWhere('product_class_id = ? AND T1.del_flg = 0'); 
    451         $results = $this->getProductsClassByQuery($objQuery, $productClassId); 
    452         $productsClass = $this->getProductsClassFull($results); 
    453         return $productsClass[0]; 
     398        $arrRes = $this->getProductsClassByQuery($objQuery, $productClassId); 
     399        return $arrRes[0]; 
    454400    } 
    455401 
     
    475421 
    476422    /** 
    477      * 商品IDに紐づいた, 商品規格を階層ごとに取得する. 
    478      * 
    479      * @param array $productId 商品ID 
    480      * @return array 階層ごとの商品規格の配列 
    481      */ 
    482     function getProductsClassLevelByProductId($productId) { 
    483         $results = $this->getProductsClassByProductIds(array($productId)); 
    484         return $this->getProductsClassLevel($results); 
    485     } 
    486  
    487     /** 
    488423     * 商品IDに紐づいた, 商品規格をすべての組み合わせごとに取得する. 
    489424     * 
     
    493428     */ 
    494429    function getProductsClassFullByProductId($productId, $has_deleted = false) { 
    495         $results = $this->getProductsClassByProductIds(array($productId), $has_deleted); 
    496         return $this->getProductsClassFull($results); 
    497     } 
    498  
    499     /** 
    500      * 商品規格の配列から, 商品規格を階層ごとに取得する. 
    501      * 
    502      * @access private 
    503      * @param array $productsClassResults 商品規格の結果の配列 
    504      * @return array 階層ごとの商品規格の配列 
    505      */ 
    506     function getProductsClassLevel($productsClassResults) { 
    507         foreach ($productsClassResults as $row) { 
    508             $productsClassLevel['level' . $row['level']][] = $row; 
    509         } 
    510         return $productsClassLevel; 
    511     } 
    512  
    513     /** 
    514      * 商品規格の配列から, 商品規格のすべての組み合わせを取得する. 
    515      * 
    516      * @access private 
    517      * @param array $productsClassResults 商品規格の結果の配列 
    518      * @ array 階層ごとの商品規格の配列 
    519      */ 
    520     function getProductsClassFull($productsClassResults) { 
    521         $results = $this->getProductsClassLevel($productsClassResults); 
    522         $productsClass = array(); 
    523         if (SC_Utils_Ex::isBlank($results['level1']) 
    524             && SC_Utils_Ex::isBlank($results['level2'])) { 
    525             return $results['level']; 
    526         } 
    527  
    528         foreach ($results['level1'] as $level1) { 
    529             foreach ($results['level2'] as $level2) { 
    530                 if ($level2['parent_class_combination_id'] == $level1['class_combination_id']) { 
    531                     $level1 = array_merge($level1, $level2); 
    532                 } 
    533             } 
    534             $productsClass[] = $level1; 
    535         } 
    536         return $productsClass; 
     430        $arrRet = $this->getProductsClassByProductIds(array($productId), $has_deleted); 
     431        return $arrRet; 
    537432    } 
    538433 
     
    787682             SELECT dtb_products.*, 
    788683                    dtb_products_class.product_class_id, 
    789                     dtb_products_class.class_combination_id, 
    790684                    dtb_products_class.product_type_id, 
    791685                    dtb_products_class.product_code, 
     
    799693                    dtb_products_class.down_filename, 
    800694                    dtb_products_class.down_realfilename, 
    801                     dtb_class_combination.parent_class_combination_id, 
    802                     dtb_class_combination.classcategory_id, 
    803                     dtb_class_combination.level as classlevel, 
    804                     Tpcm.classcategory_id as parent_classcategory_id, 
    805                     Tpcm.level as parent_classlevel, 
     695                    dtb_products_class.classcategory_id1 AS classcategory_id, -- 削除 
     696                    dtb_products_class.classcategory_id1, 
     697                    dtb_products_class.classcategory_id2 AS parent_classcategory_id, -- 削除 
     698                    dtb_products_class.classcategory_id2, 
    806699                    Tcc1.class_id as class_id, 
    807700                    Tcc1.name as classcategory_name, 
     
    811704                 LEFT JOIN dtb_products_class 
    812705                     ON dtb_products.product_id = dtb_products_class.product_id 
    813                  LEFT JOIN dtb_class_combination 
    814                      ON dtb_products_class.class_combination_id = dtb_class_combination.class_combination_id 
    815                  LEFT JOIN dtb_class_combination as Tpcm 
    816                      ON dtb_class_combination.parent_class_combination_id = Tpcm.class_combination_id 
    817706                 LEFT JOIN dtb_classcategory as Tcc1 
    818                      ON dtb_class_combination.classcategory_id = Tcc1.classcategory_id 
     707                     ON dtb_products_class.classcategory_id1 = Tcc1.classcategory_id 
    819708                 LEFT JOIN dtb_classcategory as Tcc2 
    820                      ON Tpcm.classcategory_id = Tcc2.classcategory_id 
     709                     ON dtb_products_class.classcategory_id2 = Tcc2.classcategory_id 
    821710             $where_clause 
    822711        ) as prdcls 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_DB.php

    r21481 r21502  
    14381438 
    14391439        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    1440         $where = 'product_id = ? AND del_flg = 0 AND class_combination_id IS NOT NULL'; 
     1440        $where = 'product_id = ? AND del_flg = 0 AND classcategory_id1 != 0 AND classcategory_id2 != 0'; 
    14411441        $exists = $objQuery->exists('dtb_products_class', $where, array($product_id)); 
    14421442 
  • branches/version-2_12-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php

    r21481 r21502  
    10491049                    $arrProductsClass = $objQuery->select($col, $table, $where, array($arrList['copy_product_id'])); 
    10501050 
    1051                     // 複製元商品の規格組み合わせデータ登録 
    1052                     // 登録した組み合わせIDを取得 
    1053                     $arrRetCombinationId = $this->lfRegistClassCombination($arrProductsClass); 
    1054  
    10551051                    // 規格データ登録 
    10561052                    $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    10571053                    foreach ($arrProductsClass as $arrData) { 
    1058                         $sqlval = array(); 
     1054                        $sqlval = $arrData; 
    10591055                        $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id'); 
    10601056                        $sqlval['product_id'] = $product_id; 
    10611057                        $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
    1062                         $sqlval['class_combination_id'] = $arrRetCombinationId[$arrData['class_combination_id']]; 
    1063                         $sqlval['product_type_id'] = $arrData['product_type_id']; 
    1064                         $sqlval['product_code'] = $arrData['product_code']; 
    1065                         $sqlval['stock'] = $arrData['stock']; 
    1066                         $sqlval['stock_unlimited'] = $arrData['stock_unlimited']; 
    1067                         $sqlval['sale_limit'] = $arrData['sale_limit']; 
    1068                         $sqlval['price01'] = $arrData['price01']; 
    1069                         $sqlval['price02'] = $arrData['price02']; 
    1070                         $sqlval['deliv_fee'] = $arrData['deliv_fee']; 
    1071                         $sqlval['point_rate'] = $arrData['point_rate']; 
    1072                         $sqlval['creator_id'] = $arrData['creator_id']; 
    10731058                        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
    1074                         $sqlval['down_filename'] = $arrData['down_filename']; 
    1075                         $sqlval['down_realfilename'] = $arrData['down_realfilename']; 
    1076                         $sqlval['del_flg'] = $arrData['del_flg']; 
    10771059                        $objQuery->insert($table, $sqlval); 
    10781060                    } 
     
    12671249 
    12681250    /** 
    1269      * 商品規格データを元に、規格組み合わせデータを複製登録する 
    1270      *  
    1271      * @param array $arrProductsClass 商品規格データ配列 
    1272      * @return array 登録した規格組み合わせID配列 
    1273      */ 
    1274     function lfRegistClassCombination($arrProductsClass) { 
    1275         $arrRetCombinationId = array(); 
    1276  
    1277         // 規格組み合わせデータを取得 
    1278         $arrClassCombination = $this->lfGetClassCombination($arrProductsClass); 
    1279  
    1280         // 規格2を持っているかチェック 
    1281         $has_class2 = $this->lfHasClass2($arrClassCombination); 
    1282  
    1283         // 規格組み合わせデータを複製登録 
    1284         if ($has_class2 == true) { 
    1285             // 規格2を持っている場合、規格1の組み合わせデータも取得 
    1286             $arrClassCombinationParent = $this->lfGetClassCombination($arrClassCombination, true); 
    1287  
    1288             // 親組み合わせデータを複製登録 
    1289             $arrRetCombinationId = $this->lfInsertClassCombination($arrClassCombinationParent); 
    1290             // 子組み合わせデータを複製登録 
    1291             $arrRetCombinationId = $this->lfInsertClassCombination($arrClassCombination, $arrRetCombinationId); 
    1292         } else { 
    1293             // 規格1のみの場合、複製登録 
    1294             $arrRetCombinationId = $this->lfInsertClassCombination($arrClassCombination); 
    1295         } 
    1296  
    1297         return $arrRetCombinationId; 
    1298     } 
    1299  
    1300     /** 
    1301      * 規格2を持っている規格組み合わせデータであるか判定する 
    1302      *  
    1303      * @param array $arrClassCombination 規格組み合わせデータ配列 
    1304      * @return boolean true: 規格2を持っている, false: 規格1のみ 
    1305      */ 
    1306     function lfHasClass2($arrClassCombination) { 
    1307         $has_class2 = false; 
    1308  
    1309         foreach ($arrClassCombination as $arrVal) { 
    1310             if ($arrVal['level'] == '2') { 
    1311                 $has_class2 = true; 
    1312                 break; 
    1313             } 
    1314         } 
    1315  
    1316         return $has_class2; 
    1317     } 
    1318  
    1319     /** 
    1320      * 規格組み合わせデータを取得する 
    1321      *  
    1322      * @param array $arrData 組み合わせIDを含むデータ配列 
    1323      * @param boolean $is_parent 親規格IDから抽出するフラグ(省略時: false) 
    1324      * @return array 規格組み合わせデータ配列 
    1325      */ 
    1326     function lfGetClassCombination($arrData, $is_parent = false) { 
    1327         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    1328         $key = 'class_combination_id'; 
    1329         if ($is_parent == true) { 
    1330             $key = 'parent_class_combination_id'; 
    1331         } 
    1332  
    1333         $where = 'class_combination_id IN ('; 
    1334         $arrParam = array(); 
    1335         foreach ($arrData as $arrVal) { 
    1336             if (SC_Utils_Ex::isBlank($arrVal[$key]) == true) { 
    1337                 continue; 
    1338             } 
    1339             $where .= '?,'; 
    1340             $arrParam[] = $arrVal[$key]; 
    1341         } 
    1342         $where = preg_replace('/,$/', ')', $where); 
    1343         $arrClassCombination = $objQuery->select('*', 'dtb_class_combination', $where, $arrParam); 
    1344  
    1345         return $arrClassCombination; 
    1346     } 
    1347  
    1348     /** 
    1349      * 規格組み合わせデータを複製登録する 
    1350      *  
    1351      * @param array $arrClassCombination 複製元の規格組み合わせデータ配列 
    1352      * @param array $arrParentCombinationId 登録する親組み合わせID配列 (省略可) 
    1353      * @return array 登録した規格組み合わせID配列 
    1354      */ 
    1355     function lfInsertClassCombination($arrClassCombination, $arrParentCombinationId = array()) { 
    1356         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    1357         $arrRetCombinationId = array(); 
    1358  
    1359         // 親組み合わせIDの指定がある場合、指定された親組み合わせIDで複製登録 
    1360         if (count($arrParentCombinationId) > 0) { 
    1361             foreach ($arrClassCombination as $key => $arrVal) { 
    1362                 $arrClassCombination[$key]['parent_class_combination_id'] = $arrParentCombinationId[$arrVal['parent_class_combination_id']]; 
    1363             } 
    1364         } 
    1365  
    1366         foreach ($arrClassCombination as $arrVal) { 
    1367             $sqlval = array(); 
    1368             $sqlval['class_combination_id'] = $objQuery->nextVal('dtb_class_combination_class_combination_id'); 
    1369             $sqlval['parent_class_combination_id'] = $arrVal['parent_class_combination_id']; 
    1370             $sqlval['classcategory_id'] = $arrVal['classcategory_id']; 
    1371             $sqlval['level'] = $arrVal['level']; 
    1372             $objQuery->insert('dtb_class_combination', $sqlval); 
    1373  
    1374             $arrRetCombinationId[$arrVal['class_combination_id']] = $sqlval['class_combination_id']; 
    1375         } 
    1376  
    1377         return $arrRetCombinationId; 
    1378     } 
    1379  
    1380     /** 
    13811251     * リネームする際は、自動生成される画像名に一意となるように、Suffixを付ける 
    13821252     *  
  • branches/version-2_12-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php

    r21481 r21502  
    237237        $arrDefault = $this->getProductsClass($product_id); 
    238238 
    239         $objQuery->delete('dtb_products_class', 'product_id = ? AND class_combination_id IS NOT NULL', array($product_id)); 
     239        $objQuery->delete('dtb_products_class', 'product_id = ? AND (classcategory_id1 <> 0 OR classcategory_id2 <> 0)', array($product_id)); 
    240240 
    241241        for ($i = 0; $i < $total; $i++) { 
     
    244244            $price02 = SC_Utils_Ex::isBlank($arrList['price02'][$i]) ? 0 : $arrList['price02'][$i]; 
    245245            // dtb_products_class 登録/更新用 
    246             $registerKeys = array('product_code', 'stock', 
    247                                   'price01', 'product_type_id', 
    248                                   'down_filename', 'down_realfilename'); 
     246            $registerKeys = array( 
     247                'classcategory_id1', 'classcategory_id2', 
     248                'product_code', 'stock', 'price01', 'product_type_id', 
     249                'down_filename', 'down_realfilename', 
     250            ); 
    249251 
    250252            $arrPC = array(); 
     
    264266            $arrPC['del_flg'] = $del_flg; 
    265267 
    266             $class_combination_id = $arrExists[$arrList['product_class_id'][$i]]['class_combination_id']; 
    267             $existsCombi = $objQuery->getRow('*', 'dtb_class_combination', 
    268                                              'class_combination_id = ?', 
    269                                              array($class_combination_id)); 
    270  
    271             $objQuery->delete('dtb_class_combination', 
    272                               'class_combination_id IN (?, ?)', 
    273                               array($existsCombi['class_combination_id'], 
    274                                     $existsCombi['parent_class_combination_id'])); 
    275  
    276             // 規格組み合わせを登録 
    277             $arrComb1['class_combination_id'] = $objQuery->nextVal('dtb_class_combination_class_combination_id'); 
    278             $arrComb1['classcategory_id'] = $arrList['classcategory_id1'][$i]; 
    279             $arrComb1['level'] = 1; 
    280             $objQuery->insert('dtb_class_combination', $arrComb1); 
    281  
    282             // 規格2も登録する場合 
    283             if (!SC_Utils_Ex::isBlank($arrList['classcategory_id2'][$i])) { 
    284                 $arrComb2['class_combination_id'] = $objQuery->nextVal('dtb_class_combination_class_combination_id'); 
    285                 $arrComb2['classcategory_id'] = $arrList['classcategory_id2'][$i]; 
    286                 $arrComb2['parent_class_combination_id'] = $arrComb1['class_combination_id']; 
    287                 $arrComb2['level'] = 2; 
    288                 $objQuery->insert('dtb_class_combination', $arrComb2); 
    289  
    290                 $arrPC['class_combination_id'] = $arrComb2['class_combination_id']; 
    291             } else { 
    292                 $arrPC['class_combination_id'] = $arrComb1['class_combination_id']; 
    293             } 
    294  
    295268            $arrPC['create_date'] = 'CURRENT_TIMESTAMP'; 
    296269            // 更新の場合は, product_class_id を使い回す 
     
    313286        $arrBlank['update_date'] = 'CURRENT_TIMESTAMP'; 
    314287        $objQuery->update('dtb_products_class', $arrBlank, 
    315                           "product_id = ? AND class_combination_id IS NULL", 
     288                          "product_id = ? AND classcategory_id1 = 0 AND classcategory_id2 = 0", 
    316289                          array($product_id)); 
    317290 
     
    479452        $product_id = $objFormParam->getValue('product_id'); 
    480453        $objProduct = new SC_Product_Ex(); 
    481         $existsProductsClass = $objProduct->getProductsClassFullByProductId($product_id, true); 
     454        $existsProductsClass = $objProduct->getProductsClassFullByProductId($product_id); 
    482455 
    483456        // 規格のデフォルト値(すべての組み合わせ)を取得し, フォームに反映 
     
    557530 
    558531        $objQuery->begin(); 
    559         $arrClassCombi = $objQuery->getCol('class_combination_id', 
    560                                            'dtb_products_class', 
    561                                            'product_id = ?', array($product_id)); 
    562  
    563         foreach ($arrClassCombi as $class_combination_id) { 
    564             if (SC_Utils_Ex::isBlank($class_combination_id)) { 
    565                 continue; 
    566             } 
    567             $existsCombi = $objQuery->getRow('*', 'dtb_class_combination', 
    568                                              'class_combination_id = ?', 
    569                                              array($class_combination_id)); 
    570  
    571             $objQuery->delete('dtb_class_combination', 
    572                               'class_combination_id IN (?, ?)', 
    573                               array($existsCombi['class_combination_id'], 
    574                                     $existsCombi['parent_class_combination_id'])); 
    575         } 
    576         $objQuery->update('dtb_products_class', array('del_flg' => 0), 
    577                           "product_id = ? AND class_combination_id IS NULL", 
    578                           array($product_id)); 
    579         $objQuery->delete('dtb_products_class', 
    580                           "product_id = ? AND class_combination_id IS NOT NULL", 
    581                           array($product_id)); 
     532 
     533        // 商品規格なしデータの復元 
     534        $where = 'product_id = ? AND classcategory_id1 = 0 AND classcategory_id2 = 0'; 
     535        $objQuery->update("dtb_products_class", array('del_flg' => 0), $where, array($product_id)); 
     536 
     537        // 商品規格データの削除 
     538        $where = 'product_id = ? AND (classcategory_id1 <> 0 OR classcategory_id2 <> 0)'; 
     539        $objQuery->delete("dtb_products_class", $where, array($product_id)); 
     540 
    582541        $objQuery->commit(); 
    583542 
     
    780739        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    781740        $col = "product_code, price01, price02, stock, stock_unlimited, sale_limit, deliv_fee, point_rate"; 
    782         return $objQuery->getRow($col, 'dtb_products_class', "product_id = ? AND class_combination_id IS NULL", array($product_id)); 
     741        $where = 'product_id = ? AND classcategory_id1 = 0 AND classcategory_id2 = 0'; 
     742        return $objQuery->getRow($col, 'dtb_products_class', $where, array($product_id)); 
    783743    } 
    784744 
  • branches/version-2_12-dev/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php

    r21490 r21502  
    613613    function lfCheckErrorDetail($item, $arrErr) { 
    614614        // 規格IDの存在チェック 
     615        // FIXME 規格分類ID自体のが有効かを主眼においたチェックをすべきと感じる。 
    615616        if (!$this->lfIsDbRecord('dtb_products_class', 'product_class_id', $item)) { 
    616617            $arrErr['product_class_id'] = "※ 指定の商品規格IDは、登録されていません。"; 
     
    628629            } 
    629630        } 
    630         // 規格組合せIDの存在チェック 
    631 //        if (!$this->lfIsDbRecord('dtb_class_combination', 'class_combination_id', $item)) { 
    632 //      SC_Utils::sfIsRecord が del_flg が無いと使えない為、個別処理 
    633         if(array_search('class_combination_id', $this->arrFormKeyList) !== FALSE 
    634                 and $item['class_combination_id'] != "") { 
    635             $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    636             $ret = $objQuery->get('class_combination_id', 'dtb_class_combination', 'class_combination_id = ?', array($item['class_combination_id'])); 
    637             if ($ret == "") { 
    638                 $arrErr['class_combination_id'] = "※ 指定の規格組合せIDは、登録されていません。"; 
    639             } 
    640         } 
    641631        // 表示ステータスの存在チェック 
    642632        if (!$this->lfIsArrayRecord($this->arrDISP, 'status', $item)) { 
Note: See TracChangeset for help on using the changeset viewer.