Changeset 21502 for branches/version-2_12-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
- Timestamp:
- 2012/02/14 15:10:54 (12 years ago)
- 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 1049 1049 $arrProductsClass = $objQuery->select($col, $table, $where, array($arrList['copy_product_id'])); 1050 1050 1051 // 複製元商品の規格組み合わせデータ登録1052 // 登録した組み合わせIDを取得1053 $arrRetCombinationId = $this->lfRegistClassCombination($arrProductsClass);1054 1055 1051 // 規格データ登録 1056 1052 $objQuery =& SC_Query_Ex::getSingletonInstance(); 1057 1053 foreach ($arrProductsClass as $arrData) { 1058 $sqlval = array();1054 $sqlval = $arrData; 1059 1055 $sqlval['product_class_id'] = $objQuery->nextVal('dtb_products_class_product_class_id'); 1060 1056 $sqlval['product_id'] = $product_id; 1061 1057 $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'];1073 1058 $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'];1077 1059 $objQuery->insert($table, $sqlval); 1078 1060 } … … 1267 1249 1268 1250 /** 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 /**1381 1251 * リネームする際は、自動生成される画像名に一意となるように、Suffixを付ける 1382 1252 *
Note: See TracChangeset
for help on using the changeset viewer.