Ignore:
Timestamp:
2013/05/02 18:11:36 (11 years ago)
Author:
h_yoshimoto
Message:

#2236 2.12.3リリース以降の2.12-devへのコミット差し戻し

File:
1 edited

Legend:

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

    r22568 r22796  
    3232 * @version $Id$ 
    3333 */ 
    34 class SC_Helper_Purchase  
    35 { 
     34class SC_Helper_Purchase { 
    3635 
    3736    var $arrShippingKey = array( 
     
    6160     * @return void 
    6261     */ 
    63     function completeOrder($orderStatus = ORDER_NEW) 
    64     { 
     62    function completeOrder($orderStatus = ORDER_NEW) { 
    6563        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    6664        $objSiteSession = new SC_SiteSession_Ex(); 
     
    117115     * @return void 
    118116     */ 
    119     function cancelOrder($order_id, $orderStatus = ORDER_CANCEL, $is_delete = false) 
    120     { 
     117    function cancelOrder($order_id, $orderStatus = ORDER_CANCEL, $is_delete = false) { 
    121118        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    122119        $in_transaction = $objQuery->inTransaction(); 
     
    160157     * @return string 受注一時ID 
    161158     */ 
    162     function rollbackOrder($order_id, $orderStatus = ORDER_CANCEL, $is_delete = false) 
    163     { 
     159    function rollbackOrder($order_id, $orderStatus = ORDER_CANCEL, $is_delete = false) { 
    164160        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    165161        $in_transaction = $objQuery->inTransaction(); 
     
    203199     * @return void 
    204200     */ 
    205     function verifyChangeCart($uniqId, &$objCartSession) 
    206     { 
     201    function verifyChangeCart($uniqId, &$objCartSession) { 
    207202        $cartKey = $objCartSession->getKey(); 
    208203 
     
    239234     * @return array 受注一時情報の配列 
    240235     */ 
    241     function getOrderTemp($uniqId) 
    242     { 
     236    function getOrderTemp($uniqId) { 
    243237        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    244238        return $objQuery->getRow('*', 'dtb_order_temp', 'order_temp_id = ?', array($uniqId)); 
     
    251245     * @return array 受注一時情報の配列 
    252246     */ 
    253     function getOrderTempByOrderId($order_id) 
    254     { 
     247    function getOrderTempByOrderId($order_id) { 
    255248        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    256249        return $objQuery->getRow('*', 'dtb_order_temp', 'order_id = ?', array($order_id)); 
     
    265258     * @param array $params 登録する受注情報の配列 
    266259     * @param SC_Customer $objCustomer SC_Customer インスタンス 
    267      * @return void 
    268      */ 
    269     function saveOrderTemp($uniqId, $params, &$objCustomer = NULL) 
    270     { 
     260     * @return array void 
     261     */ 
     262    function saveOrderTemp($uniqId, $params, &$objCustomer = NULL) { 
    271263        if (SC_Utils_Ex::isBlank($uniqId)) { 
    272264            return; 
     
    303295     * @param bool $has_shipment_item 配送商品を保有している配送先のみ返す。 
    304296     */ 
    305     function getShippingTemp($has_shipment_item = false) 
    306     { 
     297    function getShippingTemp($has_shipment_item = false) { 
    307298        if ($has_shipment_item) { 
    308299            $arrReturn = array(); 
     
    323314     * @return void 
    324315     */ 
    325     function clearShipmentItemTemp($shipping_id = null) 
    326     { 
     316    function clearShipmentItemTemp($shipping_id = null) { 
    327317        if (is_null($shipping_id)) { 
    328318            foreach ($_SESSION['shipping'] as $key => $value) { 
     
    344334     * @return void 
    345335     */ 
    346     function setShipmentItemTemp($shipping_id, $product_class_id, $quantity) 
    347     { 
     336    function setShipmentItemTemp($shipping_id, $product_class_id, $quantity) { 
    348337        // 配列が長くなるので, リファレンスを使用する 
    349338        $arrItems =& $_SESSION['shipping'][$shipping_id]['shipment_item'][$product_class_id]; 
     
    375364     * 配送先都道府県の配列を返す. 
    376365     */ 
    377     function getShippingPref($is_multiple) 
    378     { 
     366    function getShippingPref($is_multiple) { 
    379367        $results = array(); 
    380368        foreach (SC_Helper_Purchase_Ex::getShippingTemp($is_multiple) as $val) { 
     
    389377     * @return boolean 複数配送指定の購入の場合 true 
    390378     */ 
    391     function isMultiple() 
    392     { 
     379    function isMultiple() { 
    393380        return count(SC_Helper_Purchase_Ex::getShippingTemp(true)) >= 2; 
    394381    } 
     
    402389     * @return void 
    403390     */ 
    404     function saveShippingTemp($arrSrc, $shipping_id = 0) 
    405     { 
     391    function saveShippingTemp($arrSrc, $shipping_id = 0) { 
    406392        // 配送商品は引き継がない 
    407393        unset($arrSrc['shipment_item']); 
     
    421407     * @return void 
    422408     */ 
    423     function unsetShippingTemp() 
    424     { 
     409    function unsetShippingTemp() { 
    425410        SC_Helper_Purchase_Ex::unsetAllShippingTemp(true); 
    426411    } 
     
    432417     * @return void 
    433418     */ 
    434     static function unsetAllShippingTemp($multiple_temp = false) 
    435     { 
     419    static function unsetAllShippingTemp($multiple_temp = false) { 
    436420        unset($_SESSION['shipping']); 
    437421        if ($multiple_temp) { 
     
    446430     * @return void 
    447431     */ 
    448     static function unsetOneShippingTemp($shipping_id) 
    449     { 
     432    static function unsetOneShippingTemp($shipping_id) { 
    450433        unset($_SESSION['shipping'][$shipping_id]); 
    451434    } 
     
    509492     * @return void 
    510493     */ 
    511     function copyFromOrder(&$dest, $src, $prefix = 'shipping', $src_prefix = 'order', $arrKey = null) 
    512     { 
     494    function copyFromOrder(&$dest, $src, $prefix = 'shipping', $src_prefix = 'order', $arrKey = null) { 
    513495        if (is_null($arrKey)) { 
    514496            $arrKey = $this->arrShippingKey; 
     
    533515     * @return void 
    534516     */ 
    535     function extractShipping($arrSrc) 
    536     { 
     517    function extractShipping($arrSrc) { 
    537518        $arrKey = array(); 
    538519        foreach ($this->arrShippingKey as $key) { 
     
    543524 
    544525    /** 
     526     * 購入金額に応じた支払方法を取得する. 
     527     * 
     528     * @param integer $total 購入金額 
     529     * @param integer $deliv_id 配送業者ID 
     530     * @return array 購入金額に応じた支払方法の配列 
     531     */ 
     532    function getPaymentsByPrice($total, $deliv_id) { 
     533 
     534        $arrPaymentIds = $this->getPayments($deliv_id); 
     535        if (SC_Utils_Ex::isBlank($arrPaymentIds)) { 
     536            return array(); 
     537        } 
     538 
     539        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     540 
     541        // 削除されていない支払方法を取得 
     542        $where = 'del_flg = 0 AND payment_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', count($arrPaymentIds)) . ')'; 
     543        $objQuery->setOrder('rank DESC'); 
     544        $payments = $objQuery->select('payment_id, payment_method, rule_max, upper_rule, note, payment_image, charge', 'dtb_payment', $where, $arrPaymentIds); 
     545        $arrPayment = array(); 
     546        foreach ($payments as $data) { 
     547            // 下限と上限が設定されている 
     548            if (strlen($data['rule_max']) != 0 && strlen($data['upper_rule']) != 0) { 
     549                if ($data['rule_max'] <= $total && $data['upper_rule'] >= $total) { 
     550                    $arrPayment[] = $data; 
     551                } 
     552            } 
     553            // 下限のみ設定されている 
     554            elseif (strlen($data['rule_max']) != 0) { 
     555                if ($data['rule_max'] <= $total) { 
     556                    $arrPayment[] = $data; 
     557                } 
     558            } 
     559            // 上限のみ設定されている 
     560            elseif (strlen($data['upper_rule']) != 0) { 
     561                if ($data['upper_rule'] >= $total) { 
     562                    $arrPayment[] = $data; 
     563                } 
     564            } 
     565            // いずれも設定なし 
     566            else { 
     567                $arrPayment[] = $data; 
     568            } 
     569        } 
     570        return $arrPayment; 
     571    } 
     572 
     573    /** 
     574     * 支払方法の詳細を取得する. 
     575     * 
     576     * @param integer $payment_id お支払い方法 
     577     * @return array 支払方法詳細の配列 
     578     */ 
     579    function getPaymentsByPaymentsId($payment_id) { 
     580        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     581        $where = 'payment_id = ? AND del_flg = 0'; 
     582        $arrValues = array($payment_id); 
     583        return $objQuery->getRow('*', 'dtb_payment', $where, $arrValues); 
     584    } 
     585 
     586    /** 
    545587     * お届け日一覧を取得する. 
    546588     */ 
    547     function getDelivDate(&$objCartSess, $productTypeId) 
    548     { 
     589    function getDelivDate(&$objCartSess, $productTypeId) { 
    549590        $cartList = $objCartSess->getCartList($productTypeId); 
    550591        $delivDateIds = array(); 
     
    604645     * お届け可能日のスタート値から, お届け日の配列を取得する. 
    605646     */ 
    606     function getDateArray($start_day, $end_day) 
    607     { 
     647    function getDateArray($start_day, $end_day) { 
    608648        $masterData = new SC_DB_MasterData_Ex(); 
    609649        $arrWDAY = $masterData->getMasterData('mtb_wday'); 
     
    627667 
    628668    /** 
     669     * 配送業者IDからお届け時間の配列を取得する. 
     670     * 
     671     * @param integer $deliv_id 配送業者ID 
     672     * @return array お届け時間の配列 
     673     */ 
     674    function getDelivTime($deliv_id) { 
     675        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     676        $objQuery->setOrder('time_id'); 
     677        $results = $objQuery->select('time_id, deliv_time', 
     678                                     'dtb_delivtime', 
     679                                     'deliv_id = ?', array($deliv_id)); 
     680        $arrDelivTime = array(); 
     681        foreach ($results as $val) { 
     682            $arrDelivTime[$val['time_id']] = $val['deliv_time']; 
     683        } 
     684        return $arrDelivTime; 
     685    } 
     686 
     687    /** 
     688     * 商品種別ID から配送業者を取得する. 
     689     * 
     690     * @param integer $product_type_id 商品種別ID 
     691     * @return array 配送業者の配列 
     692     */ 
     693    function getDeliv($product_type_id) { 
     694        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     695        $objQuery->setOrder('rank DESC'); 
     696        return $objQuery->select('*', 'dtb_deliv', 'product_type_id = ? AND del_flg = 0', 
     697                                 array($product_type_id)); 
     698    } 
     699 
     700    /** 
     701     * 配送業者ID から, 有効な支払方法IDを取得する. 
     702     * 
     703     * @param integer $deliv_id 配送業者ID 
     704     * @return array 有効な支払方法IDの配列 
     705     */ 
     706    function getPayments($deliv_id) { 
     707        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     708        $objQuery->setOrder('rank'); 
     709        return $objQuery->getCol('payment_id', 'dtb_payment_options', 
     710                                 'deliv_id = ?', 
     711                                 array($deliv_id), MDB2_FETCHMODE_ORDERED); 
     712    } 
     713 
     714    /** 
    629715     * 配送情報の登録を行う. 
    630716     * 
     
    638724     * @return void 
    639725     */ 
    640     function registerShipping($order_id, $arrParams, $convert_shipping_date = true) 
    641     { 
     726    function registerShipping($order_id, $arrParams, $convert_shipping_date = true) { 
    642727        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    643728        $table = 'dtb_shipping'; 
     
    677762     * @return void 
    678763     */ 
    679     function registerShipmentItem($order_id, $shipping_id, $arrParams) 
    680     { 
     764    function registerShipmentItem($order_id, $shipping_id, $arrParams) { 
    681765        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    682766        $table = 'dtb_shipment_item'; 
     
    734818     * @param integer 受注ID 
    735819     */ 
    736     function registerOrderComplete($orderParams, &$objCartSession, $cartKey) 
    737     { 
     820    function registerOrderComplete($orderParams, &$objCartSession, $cartKey) { 
    738821        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    739822 
     
    774857            $arrDetail[$i]['price'] = $item['price']; 
    775858            $arrDetail[$i]['quantity'] = $item['quantity']; 
    776             $arrDetail[$i]['tax_rate'] = $orderParams['order_tax_rate']; 
    777             $arrDetail[$i]['tax_rule'] = $orderParams['order_tax_rule']; 
    778859 
    779860            // 在庫の減少処理 
     
    805886     * @return integer 受注ID 
    806887     */ 
    807     function registerOrder($order_id, $arrParams) 
    808     { 
     888    function registerOrder($order_id, $arrParams) { 
    809889        $table = 'dtb_order'; 
    810890        $where = 'order_id = ?'; 
     
    860940     * @return void 
    861941     */ 
    862     function registerOrderDetail($order_id, $arrParams) 
    863     { 
     942    function registerOrderDetail($order_id, $arrParams) { 
    864943        $table = 'dtb_order_detail'; 
    865944        $where = 'order_id = ?'; 
     
    882961     * @return array 受注情報の配列 
    883962     */ 
    884     function getOrder($order_id, $customer_id = null) 
    885     { 
     963    function getOrder($order_id, $customer_id = null) { 
    886964        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    887965        $where = 'order_id = ?'; 
     
    901979     * @return array 受注詳細の配列 
    902980     */ 
    903     function getOrderDetail($order_id, $has_order_status = true) 
    904     { 
     981    function getOrderDetail($order_id, $has_order_status = true) { 
    905982        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    906983        $dbFactory  = SC_DB_DBFactory_Ex::getInstance(); 
     
    916993            T2.quantity, 
    917994            T2.point_rate, 
    918             T2.tax_rate, 
    919             T2.tax_rule, 
    920995__EOS__; 
    921996        if ($has_order_status) { 
     
    9591034     * @return void 
    9601035     */ 
    961     function setDownloadableFlgTo(&$arrOrderDetail) 
    962     { 
     1036    function setDownloadableFlgTo(&$arrOrderDetail) { 
    9631037        foreach ($arrOrderDetail as $key => $value) { 
    9641038            // 販売価格が 0 円 
     
    9831057     * @return array 配送情報の配列 
    9841058     */ 
    985     function getShippings($order_id, $has_items = true) 
    986     { 
     1059    function getShippings($order_id, $has_items = true) { 
    9871060        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    9881061        $arrResults = array(); 
     
    10141087     * @return array 商品規格IDをキーにした配送商品の配列 
    10151088     */ 
    1016     function getShipmentItems($order_id, $shipping_id, $has_detail = true) 
    1017     { 
     1089    function getShipmentItems($order_id, $shipping_id, $has_detail = true) { 
    10181090        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    10191091        $objProduct = new SC_Product_Ex(); 
     
    10471119     * @return void 
    10481120     */ 
    1049     function sendOrderMail($orderId) 
    1050     { 
     1121    function sendOrderMail($orderId) { 
    10511122        $mailHelper = new SC_Helper_Mail_Ex(); 
    10521123        $template_id = 
     
    10671138     * @return void 
    10681139     */ 
    1069     function sfUpdateOrderStatus($orderId, $newStatus = null, $newAddPoint = null, $newUsePoint = null, &$sqlval = array()) 
    1070     { 
     1140    function sfUpdateOrderStatus($orderId, $newStatus = null, $newAddPoint = null, $newUsePoint = null, &$sqlval = array()) { 
    10711141        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    10721142        $arrOrderOld = $objQuery->getRow('status, add_point, use_point, customer_id', 'dtb_order', 'order_id = ?', array($orderId)); 
     
    11761246     * @static 
    11771247     */ 
    1178     function sfUpdateOrderNameCol($order_id, $temp_table = false) 
    1179     { 
     1248    function sfUpdateOrderNameCol($order_id, $temp_table = false) { 
    11801249        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    11811250 
     
    12151284     * @return boolean 使用するか(会員テーブルから減算するか) 
    12161285     */ 
    1217     function isUsePoint($status) 
    1218     { 
     1286    function isUsePoint($status) { 
    12191287        if ($status == null) { 
    12201288            return false; 
     
    12361304     * @return boolean 加算するか 
    12371305     */ 
    1238     function isAddPoint($status) 
    1239     { 
     1306    function isAddPoint($status) { 
    12401307        switch ($status) { 
    12411308            case ORDER_NEW:         // 新規注文 
     
    12731340     * @param integer $cartKey 登録を行うカート情報のキー 
    12741341     */ 
    1275     function cleanupSession($orderId, &$objCartSession, &$objCustomer, $cartKey) 
    1276     { 
     1342    function cleanupSession($orderId, &$objCartSession, &$objCustomer, $cartKey) { 
    12771343        // カートの内容を削除する. 
    12781344        $objCartSession->delAllProducts($cartKey); 
     
    12911357     * @return void 
    12921358     */ 
    1293     function setShipmentItemTempForSole(&$objCartSession, $shipping_id = 0) 
    1294     { 
     1359    function setShipmentItemTempForSole(&$objCartSession, $shipping_id = 0) { 
    12951360        $objCartSess = new SC_CartSession_Ex(); 
    12961361 
     
    13091374     * @return integer 
    13101375     */ 
    1311     public function getNextOrderID() 
    1312     { 
     1376    public function getNextOrderID() { 
    13131377        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    13141378        return $objQuery->nextVal('dtb_order_order_id'); 
Note: See TracChangeset for help on using the changeset viewer.