Changeset 20616 for branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
- Timestamp:
- 2011/03/11 23:27:36 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php
r20602 r20616 998 998 $arrProductsClass = $objQuery->select($col, $table, $where, array($arrList["copy_product_id"])); 999 999 1000 // 複製元商品の規格組み合わせデータ登録 1001 // 登録した組み合わせIDを取得 1002 $arrRetCombinationId = $this->lfRegistClassCombination($arrProductsClass); 1003 1000 1004 // 規格データ登録 1005 $objQuery =& SC_Query_Ex::getSingletonInstance(); 1001 1006 foreach($arrProductsClass as $arrData) { 1002 1007 $sqlval = array(); … … 1004 1009 $sqlval['product_id'] = $product_id; 1005 1010 $sqlval['create_date'] = 'now()'; 1006 $sqlval['class_combination_id'] = $arr Data['class_combination_id'];1011 $sqlval['class_combination_id'] = $arrRetCombinationId[$arrData['class_combination_id']]; 1007 1012 $sqlval['product_type_id'] = $arrData['product_type_id']; 1008 1013 $sqlval['product_code'] = $arrData['product_code']; … … 1015 1020 $sqlval['point_rate'] = $arrData['point_rate']; 1016 1021 $sqlval['creator_id'] = $arrData['creator_id']; 1017 $sqlval['update_date'] = $arrData['update_date'];1022 $sqlval['update_date'] = 'now()'; 1018 1023 $sqlval['down_filename'] = $arrData['down_filename']; 1019 1024 $sqlval['down_realfilename'] = $arrData['down_realfilename']; … … 1109 1114 1110 1115 /** 1111 * 商品規格テーブルを更新1116 * 規格を設定している商品の商品規格テーブルを更新 1112 1117 * (deliv_fee, point_rate, sale_limit) 1113 1118 * … … 1134 1139 * @return void 1135 1140 */ 1136 function lfInsertRecommendProducts( $objQuery, $arrList, $product_id) {1141 function lfInsertRecommendProducts(&$objQuery, $arrList, $product_id) { 1137 1142 // 一旦関連商品をすべて削除する 1138 1143 $objQuery->delete("dtb_recommend_products", "product_id = ?", array($product_id)); … … 1166 1171 * @return boolean エラーフラグ 1167 1172 */ 1168 function lfCopyProductClass($arrList, $objQuery) {1173 function lfCopyProductClass($arrList, &$objQuery) { 1169 1174 // 複製元のdtb_products_classを取得(規格なしのため、1件のみの取得) 1170 1175 $col = "*"; … … 1211 1216 1212 1217 /** 1218 * 商品規格データを元に、規格組み合わせデータを複製登録する 1219 * 1220 * @param array $arrProductsClass 商品規格データ配列 1221 * @return array 登録した規格組み合わせID配列 1222 */ 1223 function lfRegistClassCombination($arrProductsClass) { 1224 $arrRetCombinationId = array(); 1225 1226 // 規格組み合わせデータを取得 1227 $arrClassCombination = $this->lfGetClassCombination($arrProductsClass); 1228 1229 // 規格2を持っているかチェック 1230 $has_class2 = $this->lfHasClass2($arrClassCombination); 1231 1232 // 規格組み合わせデータを複製登録 1233 if($has_class2 == true) { 1234 // 規格2を持っている場合、規格1の組み合わせデータも取得 1235 $arrClassCombinationParent = $this->lfGetClassCombination($arrClassCombination, true); 1236 1237 // 親組み合わせデータを複製登録 1238 $arrRetCombinationId = $this->lfInsertClassCombination($arrClassCombinationParent); 1239 // 子組み合わせデータを複製登録 1240 $arrRetCombinationId = $this->lfInsertClassCombination($arrClassCombination, $arrRetCombinationId); 1241 } else { 1242 // 規格1のみの場合、複製登録 1243 $arrRetCombinationId = $this->lfInsertClassCombination($arrClassCombination); 1244 } 1245 1246 return $arrRetCombinationId; 1247 } 1248 1249 /** 1250 * 規格2を持っている規格組み合わせデータであるか判定する 1251 * 1252 * @param array $arrClassCombination 規格組み合わせデータ配列 1253 * @return boolean true: 規格2を持っている, false: 規格1のみ 1254 */ 1255 function lfHasClass2($arrClassCombination) { 1256 $has_class2 = false; 1257 1258 foreach($arrClassCombination as $arrVal) { 1259 if($arrVal['level'] == '2') { 1260 $has_class2 = true; 1261 break; 1262 } 1263 } 1264 1265 return $has_class2; 1266 } 1267 1268 /** 1269 * 規格組み合わせデータを取得する 1270 * 1271 * @param array $arrData 組み合わせIDを含むデータ配列 1272 * @param boolean $is_parent 親規格IDから抽出するフラグ(省略時: false) 1273 * @return array 規格組み合わせデータ配列 1274 */ 1275 function lfGetClassCombination($arrData, $is_parent = false) { 1276 $objQuery =& SC_Query_Ex::getSingletonInstance(); 1277 $key = 'class_combination_id'; 1278 if($is_parent == true) { 1279 $key = 'parent_class_combination_id'; 1280 } 1281 1282 $where = 'class_combination_id IN ('; 1283 $arrParam = array(); 1284 foreach($arrData as $arrVal) { 1285 if(SC_Utils_Ex::isBlank($arrVal[$key]) == true) { 1286 continue; 1287 } 1288 $where .= '?,'; 1289 $arrParam[] = $arrVal[$key]; 1290 } 1291 $where = preg_replace('/,$/', ')', $where); 1292 $arrClassCombination = $objQuery->select('*', 'dtb_class_combination', $where, $arrParam); 1293 1294 return $arrClassCombination; 1295 } 1296 1297 /** 1298 * 規格組み合わせデータを複製登録する 1299 * 1300 * @param array $arrClassCombination 複製元の規格組み合わせデータ配列 1301 * @param array $arrParentCombinationId 登録する親組み合わせID配列 (省略可) 1302 * @return array 登録した規格組み合わせID配列 1303 */ 1304 function lfInsertClassCombination($arrClassCombination, $arrParentCombinationId = array()) { 1305 $objQuery =& SC_Query_Ex::getSingletonInstance(); 1306 $arrRetCombinationId = array(); 1307 1308 // 親組み合わせIDの指定がある場合、指定された親組み合わせIDで複製登録 1309 if(count($arrParentCombinationId) > 0) { 1310 foreach($arrClassCombination as $key => $arrVal) { 1311 $arrClassCombination[$key]['parent_class_combination_id'] = $arrParentCombinationId[$arrVal['parent_class_combination_id']]; 1312 } 1313 } 1314 1315 foreach($arrClassCombination as $arrVal) { 1316 $sqlval = array(); 1317 $sqlval['class_combination_id'] = $objQuery->nextVal('dtb_class_combination_class_combination_id'); 1318 $sqlval['parent_class_combination_id'] = $arrVal['parent_class_combination_id']; 1319 $sqlval['classcategory_id'] = $arrVal['classcategory_id']; 1320 $sqlval['level'] = $arrVal['level']; 1321 $objQuery->insert('dtb_class_combination', $sqlval); 1322 1323 $arrRetCombinationId[$arrVal['class_combination_id']] = $sqlval['class_combination_id']; 1324 } 1325 1326 return $arrRetCombinationId; 1327 } 1328 1329 /** 1213 1330 * リネームする際は、自動生成される画像名に一意となるように、Suffixを付ける 1214 1331 *
Note: See TracChangeset
for help on using the changeset viewer.