Changeset 22554


Ignore:
Timestamp:
2013/02/15 21:45:14 (11 years ago)
Author:
pineray
Message:

#2136 dtb_deliv の処理を SC_Helper_Delivery クラスに集める.

Location:
branches/version-2_12-dev
Files:
2 deleted
7 edited

Legend:

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

    r22553 r22554  
    636636            && !SC_Utils_Ex::isBlank($deliv_pref) 
    637637            && !SC_Utils_Ex::isBlank($deliv_id)) { 
    638             $results['deliv_fee'] += $this->sfGetDelivFee($deliv_pref, $deliv_id); 
     638            $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id); 
    639639        } 
    640640 
     
    733733        return in_array($product_type_id, $this->getKeys()); 
    734734    } 
    735  
    736     /** 
    737      * 都道府県から配送料金を取得する. 
    738      * 
    739      * @param integer|array $pref_id 都道府県ID 又は都道府県IDの配列 
    740      * @param integer $deliv_id 配送業者ID 
    741      * @return string 指定の都道府県, 配送業者の配送料金 
    742      */ 
    743     function sfGetDelivFee($pref_id, $deliv_id = 0) { 
    744         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    745         if (!is_array($pref_id)) { 
    746             $pref_id = array($pref_id); 
    747         } 
    748         $sql = <<< __EOS__ 
    749             SELECT T1.fee AS fee 
    750             FROM dtb_delivfee T1 
    751                 JOIN dtb_deliv T2 
    752                     ON T1.deliv_id = T2.deliv_id 
    753             WHERE T1.pref = ? 
    754                 AND T1.deliv_id = ? 
    755                 AND T2.del_flg = 0 
    756 __EOS__; 
    757         $result = 0; 
    758         foreach ($pref_id as $pref) { 
    759             $result += $objQuery->getOne($sql, array($pref, $deliv_id)); 
    760         } 
    761         return $result; 
    762     } 
    763  
    764735} 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Delivery.php

    r22553 r22554  
    5555 
    5656        // お届け時間の取得 
    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); 
    6158 
    6259        // 配送料金の取得 
    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); 
    6761 
    6862        // 支払方法 
    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); 
    7864 
    7965        return $arrDeliv; 
     
    271257        return SC_Helper_DB_Ex::sfGetIDValueList('dtb_deliv', 'deliv_id', $type); 
    272258    } 
     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    } 
    273336} 
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Purchase.php

    r22553 r22554  
    532532    function getPaymentsByPrice($total, $deliv_id) { 
    533533 
    534         $arrPaymentIds = $this->getPayments($deliv_id); 
     534        $arrPaymentIds = SC_Helper_Delivery_Ex::getPayments($deliv_id); 
    535535        if (SC_Utils_Ex::isBlank($arrPaymentIds)) { 
    536536            return array(); 
     
    654654 
    655655    /** 
    656      * 配送業者IDからお届け時間の配列を取得する. 
    657      * 
    658      * @param integer $deliv_id 配送業者ID 
    659      * @return array お届け時間の配列 
    660      */ 
    661     function getDelivTime($deliv_id) { 
    662         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    663         $objQuery->setOrder('time_id'); 
    664         $results = $objQuery->select('time_id, deliv_time', 
    665                                      'dtb_delivtime', 
    666                                      'deliv_id = ?', array($deliv_id)); 
    667         $arrDelivTime = array(); 
    668         foreach ($results as $val) { 
    669             $arrDelivTime[$val['time_id']] = $val['deliv_time']; 
    670         } 
    671         return $arrDelivTime; 
    672     } 
    673  
    674     /** 
    675      * 配送業者ID から, 有効な支払方法IDを取得する. 
    676      * 
    677      * @param integer $deliv_id 配送業者ID 
    678      * @return array 有効な支払方法IDの配列 
    679      */ 
    680     function getPayments($deliv_id) { 
    681         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    682         $objQuery->setOrder('rank'); 
    683         return $objQuery->getCol('payment_id', 'dtb_payment_options', 
    684                                  'deliv_id = ?', 
    685                                  array($deliv_id), MDB2_FETCHMODE_ORDERED); 
    686     } 
    687  
    688     /** 
    689656     * 配送情報の登録を行う. 
    690657     * 
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_DeliveryInput.php

    r22553 r22554  
    216216 
    217217        // お届け時間 
    218         $objFormParam->setParamList($arrDeliv['deliv_time'], 'deliv_time'); 
     218        $deliv_times = array(); 
     219        foreach ($arrDeliv['deliv_time'] as $value) { 
     220            $deliv_times[]['deliv_time'] = $value; 
     221        } 
     222        $objFormParam->setParamList($deliv_times, 'deliv_time'); 
    219223        unset($arrDeliv['deliv_time']); 
    220224        // 配送料金 
    221         $objFormParam->setParamList($arrDeliv['fee'], 'fee'); 
     225        $deliv_fee = array(); 
     226        foreach ($arrDeliv['fee'] as $value) { 
     227            $deliv_fee[]['fee'] = $value; 
     228        } 
     229        $objFormParam->setParamList($deliv_fee, 'fee'); 
    222230        unset($arrDeliv['fee']); 
    223231        // 支払方法 
  • branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Disp.php

    r22543 r22554  
    126126        $this->arrForm = $objFormParam->getFormParamList(); 
    127127        $this->arrAllShipping = $objFormParam->getSwapArray(array_merge($this->arrShippingKeys, $this->arrShipmentItemKeys)); 
    128         $this->arrDelivTime = $objPurchase->getDelivTime($objFormParam->getValue('deliv_id')); 
     128        $this->arrDelivTime = SC_Helper_Delivery_Ex::getDelivTime($objFormParam->getValue('deliv_id')); 
    129129        $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData(); 
    130130 
  • branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php

    r22543 r22554  
    301301        $this->arrAllShipping = $objFormParam->getSwapArray(array_merge($this->arrShippingKeys, $this->arrShipmentItemKeys)); 
    302302        $this->top_shipping_id      = array_shift((array_keys($this->arrAllShipping))); 
    303         $this->arrDelivTime   = $objPurchase->getDelivTime($objFormParam->getValue('deliv_id')); 
     303        $this->arrDelivTime   = SC_Helper_Delivery_Ex::getDelivTime($objFormParam->getValue('deliv_id')); 
    304304        $this->tpl_onload .= $this->getAnchorKey($objFormParam); 
    305305        if ($arrValuesBefore['payment_id']) 
     
    770770        $arrAllShipmentItem = $objFormParam->getSwapArray($this->arrShipmentItemKeys); 
    771771 
    772         $arrDelivTime = $objPurchase->getDelivTime($objFormParam->getValue('deliv_id')); 
     772        $arrDelivTime = SC_Helper_Delivery_Ex::getDelivTime($objFormParam->getValue('deliv_id')); 
    773773        //商品単価を複数配送にも適応 
    774774        $arrShippingValues = array(); 
  • branches/version-2_12-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r22553 r22554  
    403403    function getSelectedDeliv(&$objPurchase, &$objCartSess, $deliv_id) { 
    404404        $arrResults = array(); 
    405         $arrResults['arrDelivTime'] = $objPurchase->getDelivTime($deliv_id); 
     405        $arrResults['arrDelivTime'] = SC_Helper_Delivery_Ex::getDelivTime($deliv_id); 
    406406        $total = $objCartSess->getAllProductsTotal($objCartSess->getKey()); 
    407407        $arrResults['arrPayment'] = $objPurchase->getPaymentsByPrice($total, $deliv_id); 
Note: See TracChangeset for help on using the changeset viewer.