tpl_title = "ご入力内容のご確認"; $masterData = new SC_DB_MasterData(); $this->arrPref = $masterData->getMasterData('mtb_pref'); $this->arrSex = $masterData->getMasterData("mtb_sex"); $this->arrMAILMAGATYPE = $masterData->getMasterData("mtb_mail_magazine_type"); $this->arrReminder = $masterData->getMasterData("mtb_reminder"); $this->arrDeliv = SC_Helper_DB_Ex::sfGetIDValueList("dtb_deliv", "deliv_id", "service_name"); $this->httpCacheControl('nocache'); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { $objCartSess = new SC_CartSession_Ex(); $objSiteSess = new SC_SiteSession(); $objCustomer = new SC_Customer(); $objQuery = new SC_Query(); $objDb = new SC_Helper_DB_Ex(); $objPurchase = new SC_Helper_Purchase_Ex(); $this->is_multiple = $objPurchase->isMultiple(); // 前のページで正しく登録手続きが行われた記録があるか判定 if (!$objSiteSess->isPrePage()) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, $objSiteSess); } // ユーザユニークIDの取得と購入状態の正当性をチェック $this->tpl_uniqid = $objSiteSess->getUniqId(); $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess); $this->cartKey = $objCartSess->getKey(); // カート内商品のチェック $this->tpl_message = $objCartSess->checkProducts($this->cartKey); if (!SC_Utils_Ex::isBlank($this->tpl_message)) { SC_Response_Ex::sendRedirect(CART_URLPATH); exit; } // カートの商品を取得 $this->arrShipping = $objPurchase->getShippingTemp(); $this->arrCartItems = $objCartSess->getCartList($this->cartKey); // 合計金額 $this->tpl_total_inctax[$this->cartKey] = $objCartSess->getAllProductsTotal($this->cartKey); // 税額 $this->tpl_total_tax[$this->cartKey] = $objCartSess->getAllProductsTax($this->cartKey); // ポイント合計 $this->tpl_total_point[$this->cartKey] = $objCartSess->getAllProductsPoint($this->cartKey); // 一時受注テーブルの読込 $arrOrderTemp = $objPurchase->getOrderTemp($this->tpl_uniqid); // カート集計を元に最終計算 $arrCalcResults = $objCartSess->calculate($this->cartKey, $objCustomer, $arrOrderTemp['use_point'], $objPurchase->getShippingPref(), $arrOrderTemp['charge'], $arrOrderTemp['discount']); $this->arrForm = array_merge($arrOrderTemp, $arrCalcResults); // 会員ログインチェック if($objCustomer->isLoginSuccess(true)) { $this->tpl_login = '1'; $this->tpl_user_point = $objCustomer->getValue('point'); } // 決済モジュールを使用するかどうか $this->use_module = $this->useModule($this->arrForm['payment_id']); switch($this->getMode()) { // 前のページに戻る case 'return': // 正常な推移であることを記録しておく $objSiteSess->setRegistFlag(); SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH); exit; break; case 'confirm': /* * 決済モジュールで必要なため, 受注番号を取得 */ $this->arrForm["order_id"] = $objQuery->nextval("dtb_order_order_id"); // 集計結果を受注一時テーブルに反映 $objPurchase->saveOrderTemp($this->tpl_uniqid, $this->arrForm, $objCustomer); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // 決済モジュールを使用する場合 if ($this->use_module) { $_SESSION["payment_id"] = $this->arrForm['payment_id']; $objPurchase->completeOrder(ORDER_PENDING); SC_Response_Ex::sendRedirect(SHOPPING_MODULE_URLPATH); } // 購入完了ページ else { $objPurchase->completeOrder(ORDER_NEW); $objPurchase->sendOrderMail($this->arrForm["order_id"]); SC_Response_Ex::sendRedirect(SHOPPING_COMPLETE_URLPATH); } exit; break; default: break; } } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } /** * 決済モジュールを使用するかどうか. * * dtb_payment.memo03 に値が入っている場合は決済モジュールと見なす. * * @param integer $payment_id 支払い方法ID * @return boolean 決済モジュールを使用する支払い方法の場合 true */ function useModule($payment_id) { $objQuery =& SC_Query::getSingletonInstance(); $memo03 = $objQuery->get('memo03', 'dtb_payment', 'payment_id = ?', array($payment_id)); return !SC_Utils_Ex::isBlank($memo03); } } ?>