Ignore:
Timestamp:
2011/01/12 18:58:45 (13 years ago)
Author:
kotani
Message:

#880(mobile/sphoneディレクトリを削除)に対応。まずmobileのみ意図通りの動作になるように一部コミット(shopping/お支払方法選択ページ)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r19868 r19894  
    3030 * @package Page 
    3131 * @author LOCKON CO.,LTD. 
    32  * @version $Id:LC_Page_Shopping_Payment.php 15532 2009-10-30 20:04:46Z satou $ 
     32 * @version $Id$ 
    3333 */ 
    3434class LC_Page_Shopping_Payment extends LC_Page { 
     
    7777        $objSiteSess = new SC_SiteSession(); 
    7878        $objCartSess = new SC_CartSession(); 
    79         $objDb = new SC_Helper_DB_Ex(); 
    8079        $objPurchase = new SC_Helper_Purchase_Ex(); 
    8180        $this->objCustomer = new SC_Customer(); 
     
    140139        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
    141140 
     141        // 戻るボタンの処理(モバイル) 
     142        if (Net_UserAgent_Mobile::isMobile() === true) { 
     143            if (!empty($_POST['return'])) { 
     144                switch ($_POST['mode']) { 
     145                case 'confirm': 
     146                    $_POST['mode'] = 'payment'; 
     147                    break; 
     148                default: 
     149                    // 正常な推移であることを記録しておく 
     150                    $objSiteSess->setRegistFlag(); 
     151                    if ($this->cartdown == 2) { 
     152                        // ダウンロード商品のみの場合はカート画面へ戻る 
     153                        $this->objDisplay->redirect($this->getLocation(CART_URL_PATH)); 
     154                    } else { 
     155                        $this->objDisplay->redirect(SHOPPING_URL); 
     156                    } 
     157                    exit; 
     158                } 
     159            } 
     160        } 
     161 
    142162        switch($_POST['mode']) { 
     163        // お届け日時指定(モバイル) 
     164        case 'deliv_date': 
     165            // 入力値の変換 
     166            $this->objFormParam->convParam(); 
     167            $this->arrErr = $this->lfCheckError($this->arrData, $this->arrPayment); 
     168            if (!isset($this->arrErr['payment_id'])) { 
     169                // 支払い方法の入力エラーなし 
     170                $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
     171                $this->tpl_title = "お届け日時指定"; 
     172                break; 
     173            } else { 
     174                // ユーザユニークIDの取得 
     175                $uniqid = $objSiteSess->getUniqId(); 
     176                // 受注一時テーブルからの情報を格納 
     177                $this->lfSetOrderTempData($uniqid); 
     178            } 
     179            break; 
    143180        case 'confirm': 
    144181            // 入力値の変換 
     
    161198                // 受注一時テーブルからの情報を格納 
    162199                $this->lfSetOrderTempData($uniqid); 
     200                if (Net_UserAgent_Mobile::isMobile() === true && !isset($this->arrErr['payment_id'])) { 
     201                    // 支払い方法の入力エラーなし 
     202                    $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
     203                    $this->tpl_title = "お届け日時指定"; 
     204                } 
    163205            } 
    164206            break; 
     
    184226        $this->img_show = $this->lfGetImgShow($this->arrPayment); 
    185227        // FIXME お届け日一覧の取得 
    186         $this->arrDelivDate = $this->lfGetDelivDate(); 
    187  
    188         $this->arrForm = $this->objFormParam->getFormParamList(); 
    189     } 
    190  
    191     /** 
    192      * モバイルページを初期化する. 
    193      * 
    194      * @return void 
    195      */ 
    196     function mobileInit() { 
    197         $this->init(); 
    198     } 
    199  
    200     /** 
    201      * Page のプロセス(モバイル). 
    202      * 
    203      * @return void 
    204      */ 
    205     function mobileProcess() { 
    206         parent::mobileProcess(); 
    207         $this->mobileAction(); 
    208         $this->sendResponse(); 
    209     } 
    210  
    211     /** 
    212      * Page のプロセス(モバイル). 
    213      * 
    214      * @return void 
    215      */ 
    216     function mobileAction() { 
    217         $objSiteSess = new SC_SiteSession(); 
    218         $objCartSess = new SC_CartSession(); 
    219         $this->objCustomer = new SC_Customer(); 
    220         $objDb = new SC_Helper_DB_Ex(); 
    221  
    222         // パラメータ管理クラス 
    223         $this->objFormParam = new SC_FormParam(); 
    224         // パラメータ情報の初期化 
    225         $this->lfInitParam(); 
    226         // POST値の取得 
    227         $this->objFormParam->setParam($_POST); 
    228  
    229         // ユーザユニークIDの取得と購入状態の正当性をチェック 
    230         $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
    231         // ユニークIDを引き継ぐ 
    232         $this->tpl_uniqid = $uniqid; 
    233  
    234         //ダウンロード商品判定 
    235         $this->cartdown = $objDb->chkCartDown($objCartSess); 
    236  
    237         // 会員ログインチェック 
    238         if($this->objCustomer->isLoginSuccess(true)) { 
    239             $this->tpl_login = '1'; 
    240             $this->tpl_user_point = $this->objCustomer->getValue('point'); 
    241         } 
    242  
    243         // 一時受注テーブルの読込 
    244         $arrOrderTemp = $objDb->sfGetOrderTemp($uniqid); 
    245         //不正遷移チェック(正常に受注情報が格納されていない場合は一旦カート画面まで戻す) 
    246         if (!$arrOrderTemp) { 
    247             $this->objDisplay->redirect($this->getLocation(MOBILE_CART_URL_PATH)); 
    248             exit; 
    249         } 
    250  
    251         // 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の数量が0になる) 
    252         $objDb->sfTotalCart($this, $objCartSess); 
    253         if (strlen($this->tpl_message) >= 1) { 
    254             SC_Utils_Ex::sfDispSiteError(SOLD_OUT, '', true); 
    255         } 
    256  
    257         $this->arrData = $objDb->sfTotalConfirm(array(), $this, $objCartSess); 
    258  
    259         if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
    260  
    261         // 戻るボタンの処理 
    262         if (!empty($_POST['return'])) { 
    263             switch ($_POST['mode']) { 
    264             case 'confirm': 
    265                 $_POST['mode'] = 'payment'; 
    266                 break; 
    267             default: 
    268                 // 正常な推移であることを記録しておく 
    269                 $objSiteSess->setRegistFlag(); 
    270                 if ($this->cartdown == 2) { 
    271                     // ダウンロード商品のみの場合はカート画面へ戻る 
    272                     $this->objDisplay->redirect($this->getLocation(MOBILE_CART_URL_PATH)); 
    273                 } else { 
    274                     $this->objDisplay->redirect(MOBILE_SHOPPING_URL); 
    275                 } 
    276                 exit; 
    277             } 
    278         } 
    279  
    280         // ダウンロード商品のみで、モードがお届け日時指定の場合はモードを変更 
    281         if ($this->cartdown == 2 && $_POST['mode'] == 'deliv_date') { 
    282             $_POST['mode'] = 'confirm'; 
    283         } 
    284  
    285         switch($_POST['mode']) { 
    286             // 支払い方法指定 → お届け日時指定 
    287         case 'deliv_date': 
    288             // 入力値の変換 
    289             $this->objFormParam->convParam(); 
    290             $this->arrErr = $this->lfCheckError($this->arrData); 
    291             if (!isset($this->arrErr['payment_id'])) { 
    292                 // 支払い方法の入力エラーなし 
    293                 $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
    294                 $this->tpl_title = "お届け日時指定"; 
    295                 break; 
    296             } else { 
    297                 // ユーザユニークIDの取得 
    298                 $uniqid = $objSiteSess->getUniqId(); 
    299                 // 受注一時テーブルからの情報を格納 
    300                 $this->lfSetOrderTempData($uniqid); 
    301             } 
    302             break; 
    303         case 'confirm': 
    304             // 入力値の変換 
    305             $this->objFormParam->convParam(); 
    306             $this->arrErr = $this->lfCheckError($this->arrData); 
    307             // 入力エラーなし 
    308             if(count($this->arrErr) == 0) { 
    309                 // DBへのデータ登録 
    310                 $this->lfRegistData($uniqid); 
    311                 // 正常に登録されたことを記録しておく 
    312                 $objSiteSess->setRegistFlag(); 
    313                 // 確認ページへ移動 
    314                 $this->objDisplay->redirect($this->getLocation(MOBILE_SHOPPING_CONFIRM_URL_PATH)); 
    315                 exit; 
    316             }else{ 
    317                 // ユーザユニークIDの取得 
    318                 $uniqid = $objSiteSess->getUniqId(); 
    319                 // 受注一時テーブルからの情報を格納 
    320                 $this->lfSetOrderTempData($uniqid); 
    321                 if (!isset($this->arrErr['payment_id'])) { 
    322                     // 支払い方法の入力エラーなし 
    323                     $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
    324                     $this->tpl_title = "お届け日時指定"; 
    325                 } 
    326             } 
    327             break; 
    328             // 前のページに戻る 
    329         case 'return': 
    330             // 非会員の場合 
    331             // 正常な推移であることを記録しておく 
    332             $objSiteSess->setRegistFlag(); 
    333             $this->objDisplay->redirect(MOBILE_SHOPPING_URL); 
    334             exit; 
    335             break; 
    336             // 支払い方法が変更された場合 
    337         case 'payment': 
    338             // ここのbreakは、意味があるので外さないで下さい。 
    339             break; 
    340         default: 
    341             // 受注一時テーブルからの情報を格納 
    342             $this->lfSetOrderTempData($uniqid); 
    343             break; 
    344         } 
    345  
    346         // 購入金額の取得得 
    347         $total_inctax = $objCartSess->getAllProductsTotal(); 
    348         // 支払い方法の取得 
    349         //$this->arrPayment = $this->lfGetPayment($total_inctax); 
    350         // お届け時間の取得 
    351         $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); 
    352         $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); 
    353  
    354         // お届け日一覧の取得 
    355228        $this->arrDelivDate = $this->lfGetDelivDate(); 
    356229 
Note: See TracChangeset for help on using the changeset viewer.