Changeset 18860


Ignore:
Timestamp:
2010/10/20 19:13:15 (10 years ago)
Author:
nanasess
bzr:base-revision:
ohkouchi@loop-az.jp-20101019060210-f9ll2iywezf74j7f
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/SC_Product.php 18277@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2FSC_Product.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/shopping/LC_Page_Shopping_Complete.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Complete.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
data/class_extends/helper_extends/SC_Helper_Purchase_Ex.php sc_helper_purchase_e-20101020100531-2rjt2ynuw2t3vx6n-1
data/require_classes.php 18500@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fversion-2_4-dev%2Fdata%2Frequire_classes.php
bzr:mapping-version:
v4
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20101020101311-splvyjvs8i4nlqbp
bzr:revno:
2340
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:timestamp:
2010-10-20 19:13:11.368999958 +0900
bzr:user-agent:
bzr2.2.0+bzr-svn1.0.3
svn:original-date:
2010-10-20T10:13:11.369000Z
Message:

ページ間の遷移方法の改善(#783)

  • PC版のみ実装
  • 購入関連の処理を SC_Helper_Purchase へ移動
Location:
branches/version-2_5-dev/data
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/SC_Product.php

    r18852 r18860  
    442442        } 
    443443        return $limit; 
     444    } 
     445 
     446    /** 
     447     * 在庫を減少させる. 
     448     * 
     449     * 指定の在庫数まで, 在庫を減少させる. 
     450     * 減少させた結果, 在庫数が 0 未満になった場合, 引数 $quantity が 0 の場合は, 
     451     * 在庫の減少を中止し, false を返す. 
     452     * 在庫の減少に成功した場合は true を返す. 
     453     * 
     454     * @param integer $productClassId 商品規格ID 
     455     * @param integer $quantity 減少させる在庫数 
     456     * @return boolean 在庫の減少に成功した場合 true; 失敗した場合 false 
     457     */ 
     458    function reduceStock($productClassId, $quantity) { 
     459 
     460        $productsClass = $this->getDetailAndProductsClass($productClassId); 
     461        if (($productsClass['stock_unlimited'] != '1' 
     462             && $productsClass['stock'] < $quantity) 
     463            || $quantity == 0) { 
     464            return false; 
     465        } 
     466 
     467        $objQuery =& SC_Query::getSingletonInstance(); 
     468        $objQuery->update('dtb_products_class', array(), 
     469                          "product_class_id = ?", array($productClassId), 
     470                          array('stock' => 'stock - ?'), array($quantity)); 
     471        // TODO エラーハンドリング 
     472        return true; 
    444473    } 
    445474 
  • branches/version-2_5-dev/data/class/helper/SC_Helper_DB.php

    r18859 r18860  
    10921092     * @param integer $order_temp_id 受注一時ID 
    10931093     * @return array 受注一時情報の配列 
     1094     * @deprecated SC_Helper_Purchase::getOrderTemp() を使用して下さい 
    10941095     */ 
    10951096    function sfGetOrderTemp($order_temp_id) { 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Complete.php

    r18858 r18860  
    6262 
    6363        $objView = new SC_SiteView(); 
    64         $this->objSiteSess = new SC_SiteSession(); 
    65         $this->objCartSess = new SC_CartSession(); 
    66         $this->objCampaignSess = new SC_CampaignSession(); 
    6764        $objSiteInfo = $objView->objSiteInfo; 
    6865        $this->arrInfo = $objSiteInfo->data; 
    69         $this->objCustomer = new SC_Customer(); 
    70         $mailHelper = new SC_Helper_Mail_Ex(); 
    71  
    72         // 前のページで正しく登録手続きが行われたか判定 
    73         SC_Utils_Ex::sfIsPrePage($this->objSiteSess); 
    74         // ユーザユニークIDの取得と購入状態の正当性をチェック 
    75         $uniqid = SC_Utils_Ex::sfCheckNormalAccess($this->objSiteSess, $this->objCartSess); 
    76         if ($uniqid != "") { 
    77  
    78             // 完了処理 
    79             $objQuery = new SC_Query(); 
    80             $objQuery->begin(); 
    81             $order_id = $this->lfDoComplete($objQuery, $uniqid); 
    82             $objQuery->commit(); 
    83  
    84             // セッションに保管されている情報を更新する 
    85             $this->objCustomer->updateSession(); 
    86  
    87             // 完了メール送信 
    88             if($order_id != "") { 
    89                 $mailHelper->sfSendOrderMail($order_id, '1'); 
    90             } 
    91  
    92             // その他情報の取得 
    93             $arrResults = $objQuery->getAll("SELECT memo02, memo05 FROM dtb_order WHERE order_id = ? ", array($order_id)); 
    94  
    95             if (count($arrResults) > 0) { 
    96                 if (isset($arrResults[0]["memo02"]) || isset($arrResults[0]["memo05"])) { 
    97                     // 完了画面で表示する決済内容 
    98                     $arrOther = unserialize($arrResults[0]["memo02"]); 
    99                     // 完了画面から送信する決済内容 
    100                     $arrModuleParam = unserialize($arrResults[0]["memo05"]); 
    101  
    102                     // データを編集 
    103                     foreach($arrOther as $key => $val){ 
    104                         // URLの場合にはリンクつきで表示させる 
    105                         if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $val["value"])) { 
    106                             $arrOther[$key]["value"] = "<a href='". $val["value"] . "' target=\"_blank\">" . $val["value"] ."</a>"; 
    107                         } 
    108                     } 
    109  
    110                     $this->arrOther = $arrOther; 
    111                     $this->arrModuleParam = $arrModuleParam; 
    112                 } 
    113             } 
    114  
    115             // アフィリエイト用コンバージョンタグの設定 
    116             $this->tpl_conv_page = AFF_SHOPPING_COMPLETE; 
    117             $this->tpl_aff_option = "order_id=$order_id"; 
    118             //合計価格の取得 
    119             $total = $objQuery->get("dtb_order", "total", "order_id = ? ", array($order_id)); 
    120             if($total != "") { 
    121                 $this->tpl_aff_option.= "|total=$total"; 
    122             } 
    123  
    124             // TradeSafe連携用 
    125             if (function_exists('sfTSRequest')) { 
    126                 sfTSRequest($order_id); 
    127             } 
    128         } 
    129  
    130         // キャンペーンからの遷移かチェック 
    131         $this->is_campaign = $this->objCampaignSess->getIsCampaign(); 
    132         $this->campaign_dir = $this->objCampaignSess->getCampaignDir(); 
    13366 
    13467        $objView->assignobj($this); 
    135         // フレームを選択(キャンペーンページから遷移なら変更) 
    136         $this->objCampaignSess->pageView($objView); 
    137  
    138         // セッション開放 
    139         $this->objCampaignSess->delCampaign(); 
     68        $objView->display(SITE_FRAME); 
    14069    } 
    14170 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Confirm.php

    r18859 r18860  
    8383        $this->cartdown = $objDb->chkCartDown($objCartSess); 
    8484 
    85         // カート集計処理 
     85 
    8686        $this->cartKey = $_SESSION['cartKey']; 
    87         $cartItems = $objCartSess->getCartList($this->cartKey); 
    88         $i = 0; 
    89         // TODO リファクタリング 
    90         foreach (array_keys($cartItems) as $itemKey) { 
    91             $cartItem =& $cartItems[$itemKey]; 
    92             if (!SC_Utils_Ex::isBlank($cartItem)) { 
    93                 $this->cartItems[$i] =& $cartItem; 
    94                 $i++; 
    95             } 
    96         } 
     87 
     88        // カート内商品のチェック 
    9789        $this->tpl_message = $objCartSess->checkProducts($this->cartKey); 
     90        if (strlen($this->tpl_message) >= 1) { 
     91            SC_Utils_Ex::sfDispSiteError(SOLD_OUT, '', true); 
     92        } 
     93 
     94        // カートの商品を取得 
     95        $this->cartItems = $objCartSess->getCartList($this->cartKey); 
     96        // 合計金額 
    9897        $this->tpl_total_pretax[$this->cartKey] = $objCartSess->getAllProductsTotal($this->cartKey); 
     98        // 税額 
    9999        $this->tpl_total_tax[$this->cartKey] = $objCartSess->getAllProductsTax($this->cartKey); 
    100100        // ポイント合計 
    101101        $this->tpl_total_point[$this->cartKey] = $objCartSess->getAllProductsPoint($this->cartKey); 
    102  
    103         if (strlen($this->tpl_message) >= 1) { 
    104             SC_Utils_Ex::sfDispSiteError(SOLD_OUT, '', true); 
    105         } 
    106102 
    107103        // TODO リファクタリング 
     
    159155                $this->sendRedirect($this->getLocation(URL_SHOP_MODULE)); 
    160156            }else{ 
     157                // 受注を完了し, 購入完了ページへ 
     158                $objPurchase = new SC_Helper_Purchase_Ex(); 
     159                $objPurchase->completeOrder(); 
    161160                $this->sendRedirect($this->getLocation(URL_SHOP_COMPLETE)); 
    162161            } 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r18859 r18860  
    114114        // カート内商品の集計処理を行う 
    115115        $this->cartKey = $_SESSION['cartKey']; 
    116         $cartItems = $objCartSess->getCartList($this->cartKey); 
    117         $i = 0; 
    118         // TODO リファクタリング 
    119         foreach (array_keys($cartItems) as $itemKey) { 
    120             $cartItem =& $cartItems[$itemKey]; 
    121             if (!SC_Utils_Ex::isBlank($cartItem)) { 
    122                 $this->cartItems[$i] =& $cartItem; 
    123                 $i++; 
    124             } 
    125         } 
     116        $this->cartItems = $objCartSess->getCartList($this->cartKey); 
    126117        $this->tpl_message = $objCartSess->checkProducts($this->cartKey); 
    127118 
     
    174165        } 
    175166 
    176         // 購入金額の取得 
    177         $total_pretax = $objCartSess->getAllProductsTotal(); 
     167        // 購入金額の取得 
     168        $total_pretax = $objCartSess->getAllProductsTotal($this->cartKey); 
    178169        // 支払い方法の取得 
    179170        $this->arrPayment = $this->lfGetPayment($total_pretax); 
  • branches/version-2_5-dev/data/require_classes.php

    r18820 r18860  
    5252require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_Mail_Ex.php"); 
    5353require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_Mobile_Ex.php"); 
     54require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_Purchase_Ex.php"); 
    5455?> 
Note: See TracChangeset for help on using the changeset viewer.