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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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     *  
Note: See TracChangeset for help on using the changeset viewer.