Ignore:
Timestamp:
2007/10/12 10:51:27 (15 years ago)
Author:
nanasess
Message:
  • デグレ修正
  • リファクタリング
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r16043 r16386  
    8888        $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo); 
    8989 
    90         // カー内の商品の売り切れチェック 
     90        // カー内の商品の売り切れチェック 
    9191        $objCartSess->chkSoldOut($objCartSess->getCartList()); 
    9292 
     
    150150        // フレームを選択(キャンペーンページから遷移なら変更) 
    151151        $objCampaignSess->pageView($objView); 
     152    } 
     153 
     154    /** 
     155     * モバイルページを初期化する. 
     156     * 
     157     * @return void 
     158     */ 
     159    function mobileInit() { 
     160        $this->init(); 
     161    } 
     162 
     163    /** 
     164     * Page のプロセス(モバイル). 
     165     * 
     166     * @return void 
     167     */ 
     168    function mobileProcess() { 
     169        $objView = new SC_MobileView(); 
     170        $objSiteSess = new SC_SiteSession(); 
     171        $objCartSess = new SC_CartSession(); 
     172        $this->objCustomer = new SC_Customer(); 
     173        $objDb = new SC_Helper_DB_Ex(); 
     174        $objSiteInfo = $objView->objSiteInfo; 
     175        $arrInfo = $objSiteInfo->data; 
     176 
     177        // パラメータ管理クラス 
     178        $this->objFormParam = new SC_FormParam(); 
     179        // パラメータ情報の初期化 
     180        $this->lfInitParam(); 
     181        // POST値の取得 
     182        $this->objFormParam->setParam($_POST); 
     183 
     184        // ユーザユニークIDの取得と購入状態の正当性をチェック 
     185        $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); 
     186        // ユニークIDを引き継ぐ 
     187        $this->tpl_uniqid = $uniqid; 
     188 
     189        // 会員ログインチェック 
     190        if($this->objCustomer->isLoginSuccess(true)) { 
     191            $this->tpl_login = '1'; 
     192            $this->tpl_user_point = $this->objCustomer->getValue('point'); 
     193        } 
     194 
     195        // 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる) 
     196        $objDb->sfTotalCart($this, $objCartSess, $arrInfo); 
     197        if (empty($arrData)) $arrData = array(); 
     198        $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo); 
     199 
     200        // カー都内の商品の売り切れチェック 
     201        $objCartSess->chkSoldOut($objCartSess->getCartList(), true); 
     202 
     203        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     204 
     205        // 戻るボタンの処理 
     206        if (!empty($_POST['return'])) { 
     207            switch ($_POST['mode']) { 
     208            case 'confirm': 
     209                $_POST['mode'] = 'payment'; 
     210                break; 
     211            default: 
     212                // 正常な推移であることを記録しておく 
     213                $objSiteSess->setRegistFlag(); 
     214                $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
     215                exit; 
     216            } 
     217        } 
     218 
     219        switch($_POST['mode']) { 
     220            // 支払い方法指定 → 配達日時指定 
     221        case 'deliv_date': 
     222            // 入力値の変換 
     223            $this->objFormParam->convParam(); 
     224            $this->arrErr = $this->lfCheckError($this->arrData); 
     225            if (!isset($this->arrErr['payment_id'])) { 
     226                // 支払い方法の入力エラーなし 
     227                $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
     228                $this->tpl_title = "配達日時指定"; 
     229                break; 
     230            } else { 
     231                // ユーザユニークIDの取得 
     232                $uniqid = $objSiteSess->getUniqId(); 
     233                // 受注一時テーブルからの情報を格納 
     234                $this->lfSetOrderTempData($uniqid); 
     235            } 
     236            break; 
     237        case 'confirm': 
     238            // 入力値の変換 
     239            $this->objFormParam->convParam(); 
     240            $this->arrErr = $this->lfCheckError($this->arrData ); 
     241            // 入力エラーなし 
     242            if(count($this->arrErr) == 0) { 
     243                // DBへのデータ登録 
     244                $this->lfRegistData($uniqid); 
     245                // 正常に登録されたことを記録しておく 
     246                $objSiteSess->setRegistFlag(); 
     247                // 確認ページへ移動 
     248                $this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_CONFIRM), true); 
     249                exit; 
     250            }else{ 
     251                // ユーザユニークIDの取得 
     252                $uniqid = $objSiteSess->getUniqId(); 
     253                // 受注一時テーブルからの情報を格納 
     254                $this->lfSetOrderTempData($uniqid); 
     255                if (!isset($this->arrErr['payment_id'])) { 
     256                    // 支払い方法の入力エラーなし 
     257                    $this->tpl_mainpage = 'shopping/deliv_date.tpl'; 
     258                    $this->tpl_title = "配達日時指定"; 
     259                } 
     260            } 
     261            break; 
     262            // 前のページに戻る 
     263        case 'return': 
     264            // 非会員の場合 
     265            // 正常な推移であることを記録しておく 
     266            $objSiteSess->setRegistFlag(); 
     267            $this->sendRedirect(MOBILE_URL_SHOP_TOP, true); 
     268            exit; 
     269            break; 
     270            // 支払い方法が変更された場合 
     271        case 'payment': 
     272            // ここのbreakは、意味があるので外さないで下さい。 
     273            break; 
     274        default: 
     275            // 受注一時テーブルからの情報を格納 
     276            $this->lfSetOrderTempData($uniqid); 
     277            break; 
     278        } 
     279 
     280        // 店舗情報の取得 
     281        $arrInfo = $objSiteInfo->data; 
     282        // 購入金額の取得得 
     283        $total_pretax = $objCartSess->getAllProductsTotal($arrInfo); 
     284        // 支払い方法の取得 
     285        $this->arrPayment = $this->lfGetPayment($total_pretax); 
     286        // 配送時間の取得 
     287        $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); 
     288        $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); 
     289 
     290        // 配送日一覧の取得 
     291        $this->arrDelivDate = $this->lfGetDelivDate(); 
     292 
     293        $this->arrForm = $this->objFormParam->getFormParamList(); 
     294 
     295        $objView->assignobj($this); 
     296        $objView->display(SITE_FRAME); 
    152297    } 
    153298 
     
    208353        $objErr->arrErr = $this->objFormParam->checkError(); 
    209354 
     355        if (!isset($_POST['point_check'])) $_POST['point_check'] = ""; 
     356 
    210357        if($_POST['point_check'] == '1') { 
    211358            $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); 
     
    215362                $max_point = 0; 
    216363            } 
     364            // FIXME mobile 互換のため br は閉じない... 
    217365            if($arrRet['use_point'] > $max_point) { 
    218                 $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br />"; 
     366                $objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br>"; 
    219367            } 
    220368            if(($arrRet['use_point'] * POINT_VALUE) > $arrData['subtotal']) { 
    221                 $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br />"; 
     369                $objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br>"; 
    222370            } 
    223371        } 
Note: See TracChangeset for help on using the changeset viewer.