- Timestamp:
- 2013/02/15 21:45:14 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/helper/SC_Helper_Delivery.php
r22553 r22554 55 55 56 56 // お届け時間の取得 57 $col = 'deliv_time'; 58 $where = 'deliv_id = ? ORDER BY time_id'; 59 $table = 'dtb_delivtime'; 60 $arrDeliv['deliv_time'] = $objQuery->select($col, $table, $where, array($deliv_id)); 57 $arrDeliv['deliv_time'] = $this->getDelivTime($deliv_id); 61 58 62 59 // 配送料金の取得 63 $col = 'fee'; 64 $where = 'deliv_id = ? ORDER BY pref'; 65 $table = 'dtb_delivfee'; 66 $arrDeliv['fee'] = $objQuery->select($col, $table, $where, array($deliv_id)); 60 $arrDeliv['fee'] = $this->getDelivFeeList($deliv_id); 67 61 68 62 // 支払方法 69 $col = 'payment_id'; 70 $where = 'deliv_id = ? ORDER BY rank'; 71 $table = 'dtb_payment_options'; 72 $arrRet = $objQuery->select($col, $table, $where, array($deliv_id)); 73 $arrPaymentIds = array(); 74 foreach ($arrRet as $val) { 75 $arrPaymentIds[] = $val['payment_id']; 76 } 77 $arrDeliv['payment_ids'] = $arrPaymentIds; 63 $arrDeliv['payment_ids'] = $this->getPayments($deliv_id); 78 64 79 65 return $arrDeliv; … … 271 257 return SC_Helper_DB_Ex::sfGetIDValueList('dtb_deliv', 'deliv_id', $type); 272 258 } 259 260 /** 261 * 配送業者IDからお届け時間の配列を取得する. 262 * 263 * @param integer $deliv_id 配送業者ID 264 * @return array お届け時間の配列 265 */ 266 public static function getDelivTime($deliv_id) { 267 $objQuery =& SC_Query_Ex::getSingletonInstance(); 268 $objQuery->setOrder('time_id'); 269 $results = $objQuery->select('time_id, deliv_time', 270 'dtb_delivtime', 271 'deliv_id = ?', array($deliv_id)); 272 $arrDelivTime = array(); 273 foreach ($results as $val) { 274 $arrDelivTime[$val['time_id']] = $val['deliv_time']; 275 } 276 return $arrDelivTime; 277 } 278 279 /** 280 * 配送業者ID から, 有効な支払方法IDを取得する. 281 * 282 * @param integer $deliv_id 配送業者ID 283 * @return array 有効な支払方法IDの配列 284 */ 285 public static function getPayments($deliv_id) { 286 $objQuery =& SC_Query_Ex::getSingletonInstance(); 287 $objQuery->setOrder('rank'); 288 return $objQuery->getCol('payment_id', 'dtb_payment_options', 289 'deliv_id = ?', 290 array($deliv_id), MDB2_FETCHMODE_ORDERED); 291 } 292 293 /** 294 * 都道府県から配送料金を取得する. 295 * 296 * @param integer|array $pref_id 都道府県ID 又は都道府県IDの配列 297 * @param integer $deliv_id 配送業者ID 298 * @return string 指定の都道府県, 配送業者の配送料金 299 */ 300 public static function getDelivFee($pref_id, $deliv_id = 0) { 301 $objQuery =& SC_Query_Ex::getSingletonInstance(); 302 if (!is_array($pref_id)) { 303 $pref_id = array($pref_id); 304 } 305 $sql = <<< __EOS__ 306 SELECT T1.fee AS fee 307 FROM dtb_delivfee T1 308 JOIN dtb_deliv T2 309 ON T1.deliv_id = T2.deliv_id 310 WHERE T1.pref = ? 311 AND T1.deliv_id = ? 312 AND T2.del_flg = 0 313 __EOS__; 314 $result = 0; 315 foreach ($pref_id as $pref) { 316 $result += $objQuery->getOne($sql, array($pref, $deliv_id)); 317 } 318 return $result; 319 } 320 321 /** 322 * 配送業者ID から, 配送料金の一覧を取得する. 323 * 324 * @param integer $deliv_id 配送業者ID 325 * @return array 配送料金の配列 326 */ 327 public static function getDelivFeeList($deliv_id) { 328 $objQuery =& SC_Query_Ex::getSingletonInstance(); 329 $objQuery->setOrder('pref'); 330 $col = 'fee'; 331 $where = 'deliv_id = ?'; 332 $table = 'dtb_delivfee'; 333 return $objQuery->getCol($col, $table, $where, array($deliv_id), 334 MDB2_FETCHMODE_ORDERED); 335 } 273 336 }
Note: See TracChangeset
for help on using the changeset viewer.