Ignore:
Timestamp:
2011/04/05 22:01:47 (11 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_11-dev:20812
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/Smarty/templates/admin/design/bloc.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fdesign%2Fbloc.tpl
data/Smarty/templates/admin/design/main_edit.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fdesign%2Fmain_edit.tpl
data/class/SC_CartSession.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_CartSession.php
data/class/helper/SC_Helper_DB.php 15176@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fhelper%2FSC_Helper_DB.php
data/class/helper/SC_Helper_Purchase.php sc_helper_purchase.p-20101020100530-jyaoa7ch9pdfjqzp-1
data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php 15687@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fdesign%2FLC_Page_Admin_Design_Bloc.php
data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php 15689@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fdesign%2FLC_Page_Admin_Design_CSS.php
data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php 15682@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fdesign%2FLC_Page_Admin_Design_MainEdit.php
data/class/pages/shopping/LC_Page_Shopping_Confirm.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Confirm.php
data/class/pages/shopping/LC_Page_Shopping_Payment.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Payment.php
html/test/upgrade/index.php 16949@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fhtml%2Ftest%2Fupgrade%2Findex.php
html/user_data/__default.php 19777@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_5-dev%2Fhtml%2Fuser_data%2F__default.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110405130136-ix37bq112x3y3n2p
bzr:revno:
3524
bzr:revprop:branch-nick:
branches/version-2_11-dev
bzr:root:
branches/version-2_11-dev
bzr:text-revisions:

data/class/SC_CartSession.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
data/class/pages/shopping/LC_Page_Shopping_Confirm.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
data/class/pages/shopping/LC_Page_Shopping_Payment.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
html/test/upgrade/index.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
html/user_data/__default.php ohkouchi@loop-az.jp-20110405125854-bzpik64hrrew7v02
bzr:timestamp:
2011-04-05 22:01:36.427000046 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-04-05T13:01:36.427000Z
Message:

#1243 (決済モジュールから「戻る」場合の挙動改善)

  • 以下の関数を追加
    • SC_Helper_Purchase::cancelOrder()
    • SC_Helper_Purchase::rollbackOrder()
    • SC_Helper_Purchase::getOrderTempByOrderId()
File:
1 edited

Legend:

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

    r20771 r20813  
    8989 
    9090    /** 
     91     * 受注をキャンセルする. 
     92     * 
     93     * 受注完了後の受注をキャンセルする. 
     94     * この関数は, 主に決済モジュールにて, 受注をキャンセルする場合に使用する. 
     95     * 
     96     * 受注ステータスを引数 $orderStatus で指定したステータスに変更する. 
     97     * (デフォルト ORDER_CANCEL) 
     98     * 引数 $is_delete が true の場合は, 受注データを論理削除する. 
     99     * 商品の在庫数は, 受注前の在庫数に戻される. 
     100     * 
     101     * @param integer $order_id 受注ID 
     102     * @param integer $orderStatus 受注ステータス 
     103     * @param boolean $is_delete 受注データを論理削除する場合 true 
     104     * @return void 
     105     */ 
     106    function cancelOrder($order_id, $orderStatus = ORDER_CANCEL, $is_delete = false) { 
     107        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     108        $in_transaction = $objQuery->inTransaction(); 
     109        if (!$in_transaction) { 
     110            $objQuery->begin(); 
     111        } 
     112 
     113        $arrParams['status'] = $orderStatus; 
     114        if ($is_delete) { 
     115            $arrParams['del_flg'] = 1; 
     116        } 
     117 
     118        $this->registerOrder($order_id, $arrParams); 
     119 
     120        $arrOrderDetail = $this->getOrderDetail($order_id); 
     121        foreach ($arrOrderDetail as $arrDetail) { 
     122            $objQuery->update('dtb_products_class', array(), 
     123                              "product_class_id = ?", array($arrDetail['product_class_id']), 
     124                              array('stock' => 'stock + ?'), array($arrDetail['quantity'])); 
     125        } 
     126        if (!$in_transaction) { 
     127            $objQuery->commit(); 
     128        } 
     129    } 
     130 
     131    /** 
     132     * 受注をキャンセルし, カートをロールバックして, 受注一時IDを返す. 
     133     * 
     134     * 受注完了後の受注をキャンセルし, カートの状態を受注前の状態へ戻す. 
     135     * この関数は, 主に, 決済モジュールに遷移した後, 購入確認画面へ戻る場合に使用する. 
     136     * 
     137     * 受注ステータスを引数 $orderStatus で指定したステータスに変更する. 
     138     * (デフォルト ORDER_CANCEL) 
     139     * 引数 $is_delete が true の場合は, 受注データを論理削除する. 
     140     * 商品の在庫数, カートの内容は受注前の状態に戻される. 
     141     * 
     142     * @param integer $order_id 受注ID 
     143     * @param integer $orderStatus 受注ステータス 
     144     * @param boolean $is_delete 受注データを論理削除する場合 true 
     145     * @return string 受注一時ID 
     146     */ 
     147    function rollbackOrder($order_id, $orderStatus = ORDER_CANCEL, $is_delete = false) { 
     148        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     149        $in_transaction = $objQuery->inTransaction(); 
     150        if (!$in_transaction) { 
     151            $objQuery->begin(); 
     152        } 
     153 
     154        $this->cancelOrder($order_id, $orderStatus, $is_delete); 
     155        $arrOrderTemp = $this->getOrderTempByOrderId($order_id); 
     156        $_SESSION = array_merge($_SESSION, unserialize($arrOrderTemp['session'])); 
     157 
     158        $objSiteSession = new SC_SiteSession_Ex(); 
     159        $objCartSession = new SC_CartSession_Ex(); 
     160        $objCustomer = new SC_Customer_Ex(); 
     161 
     162        // 新たに受注一時情報を保存する 
     163        $objSiteSession->unsetUniqId(); 
     164        $uniqid = $objSiteSession->getUniqId(); 
     165        $arrOrderTemp['del_flg'] = 0; 
     166        $this->saveOrderTemp($uniqid, $arrOrderTemp, &$objCustomer); 
     167        $this->verifyChangeCart($uniqid, $objCartSession); 
     168        $objSiteSession->setRegistFlag(); 
     169 
     170        if (!$in_transaction) { 
     171            $objQuery->commit(); 
     172        } 
     173        return $uniqid; 
     174    } 
     175 
     176    /** 
    91177     * カートに変化が無いか検証する. 
    92178     * 
     
    142228        return $objQuery->getRow("*", "dtb_order_temp", "order_temp_id = ?", 
    143229                                 array($uniqId)); 
     230    } 
     231 
     232    /** 
     233     * 受注IDをキーにして受注一時情報を取得する. 
     234     * 
     235     * @param integer $order_id 受注ID 
     236     * @return array 受注一時情報の配列 
     237     */ 
     238    function getOrderTempByOrderId($order_id) { 
     239        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     240        return $objQuery->getRow("*", "dtb_order_temp", "order_id = ?", 
     241                                 array($order_id)); 
    144242    } 
    145243 
Note: See TracChangeset for help on using the changeset viewer.