本文整理汇总了PHP中SC_Helper_DB_Ex::sfTotalCart方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Helper_DB_Ex::sfTotalCart方法的具体用法?PHP SC_Helper_DB_Ex::sfTotalCart怎么用?PHP SC_Helper_DB_Ex::sfTotalCart使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Helper_DB_Ex
的用法示例。
在下文中一共展示了SC_Helper_DB_Ex::sfTotalCart方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: mobileProcess
/**
* Page のプロセス(モバイル).
*
* @return void
*/
function mobileProcess()
{
$objView = new SC_MobileView();
$objSiteSess = new SC_SiteSession();
$objCartSess = new SC_CartSession();
$this->objCustomer = new SC_Customer();
$objDb = new SC_Helper_DB_Ex();
$objSiteInfo = $objView->objSiteInfo;
$arrInfo = $objSiteInfo->data;
// パラメータ管理クラス
$this->objFormParam = new SC_FormParam();
// パラメータ情報の初期化
$this->lfInitParam();
// POST値の取得
$this->objFormParam->setParam($_POST);
// ユーザユニークIDの取得と購入状態の正当性をチェック
$uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess);
// ユニークIDを引き継ぐ
$this->tpl_uniqid = $uniqid;
// 会員ログインチェック
if ($this->objCustomer->isLoginSuccess(true)) {
$this->tpl_login = '1';
$this->tpl_user_point = $this->objCustomer->getValue('point');
}
// 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる)
$objDb->sfTotalCart($this, $objCartSess, $arrInfo);
if (empty($arrData)) {
$arrData = array();
}
$this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo);
// カート内の商品の売り切れチェック
$objCartSess->chkSoldOut($objCartSess->getCartList(), true);
if (!isset($_POST['mode'])) {
$_POST['mode'] = "";
}
// 戻るボタンの処理
if (!empty($_POST['return'])) {
switch ($_POST['mode']) {
case 'confirm':
$_POST['mode'] = 'payment';
break;
default:
// 正常な推移であることを記録しておく
$objSiteSess->setRegistFlag();
$this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
exit;
}
}
switch ($_POST['mode']) {
// 支払い方法指定 → 配達日時指定
case 'deliv_date':
// 入力値の変換
$this->objFormParam->convParam();
$this->arrErr = $this->lfCheckError($this->arrData);
if (!isset($this->arrErr['payment_id'])) {
// 支払い方法の入力エラーなし
$this->tpl_mainpage = 'shopping/deliv_date.tpl';
$this->tpl_title = "配達日時指定";
break;
} else {
// ユーザユニークIDの取得
$uniqid = $objSiteSess->getUniqId();
// 受注一時テーブルからの情報を格納
$this->lfSetOrderTempData($uniqid);
}
break;
case 'confirm':
// 入力値の変換
$this->objFormParam->convParam();
$this->arrErr = $this->lfCheckError($this->arrData);
// 入力エラーなし
if (count($this->arrErr) == 0) {
// DBへのデータ登録
$this->lfRegistData($uniqid);
// 正常に登録されたことを記録しておく
$objSiteSess->setRegistFlag();
// 確認ページへ移動
$this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_CONFIRM), true);
exit;
} else {
// ユーザユニークIDの取得
$uniqid = $objSiteSess->getUniqId();
// 受注一時テーブルからの情報を格納
$this->lfSetOrderTempData($uniqid);
if (!isset($this->arrErr['payment_id'])) {
// 支払い方法の入力エラーなし
$this->tpl_mainpage = 'shopping/deliv_date.tpl';
$this->tpl_title = "配達日時指定";
}
}
break;
// 前のページに戻る
// 前のページに戻る
case 'return':
// 非会員の場合
//.........这里部分代码省略.........
示例2: mobileProcess
/**
* Page のプロセス(モバイル).
*
* @return void
*/
function mobileProcess()
{
// 買い物を続ける場合
if (!isset($_REQUEST['continue'])) {
$_REQUEST['continue'] = "";
}
if ($_REQUEST['continue']) {
$this->sendRedirect($this->getLocation(MOBILE_URL_SITE_TOP), true);
exit;
}
$objView = new SC_MobileView(false);
$objCartSess = new SC_CartSession("", false);
$objSiteSess = new SC_SiteSession();
$objSiteInfo = $objView->objSiteInfo;
$objCustomer = new SC_Customer();
$objDb = new SC_Helper_DB_Ex();
// 基本情報の取得
$arrInfo = $objSiteInfo->data;
// 商品購入中にカート内容が変更された。
if ($objCartSess->getCancelPurchase()) {
$this->tpl_message = "商品購入中にカート内容が変更されましたので、お手数ですが購入手続きをやり直して下さい。";
}
if (!isset($_POST['mode'])) {
$_POST['mode'] = "";
}
switch ($_POST['mode']) {
case 'confirm':
// カート内情報の取得
$arrRet = $objCartSess->getCartList();
$max = count($arrRet);
$cnt = 0;
for ($i = 0; $i < $max; $i++) {
// 商品規格情報の取得
$arrData = $objDb->sfGetProductsClass($arrRet[$i]['id']);
// DBに存在する商品
if ($arrData != "") {
$cnt++;
}
}
// カート商品が1件以上存在する場合
if ($cnt > 0) {
// 正常に登録されたことを記録しておく
$objSiteSess->setRegistFlag();
$pre_uniqid = $objSiteSess->getUniqId();
// 注文一時IDの発行
$objSiteSess->setUniqId();
$uniqid = $objSiteSess->getUniqId();
// エラーリトライなどで既にuniqidが存在する場合は、設定を引き継ぐ
if ($pre_uniqid != "") {
$sqlval['order_temp_id'] = $uniqid;
$where = "order_temp_id = ?";
$objQuery = new SC_Query();
$objQuery->update("dtb_order_temp", $sqlval, $where, array($pre_uniqid));
}
// カートを購入モードに設定
$objCartSess->saveCurrentCart($uniqid);
// 購入ページへ
$this->sendRedirect(MOBILE_URL_SHOP_TOP, true);
exit;
}
break;
default:
break;
}
if (!isset($_GET['mode'])) {
$_GET['mode'] = "";
}
/*
* FIXME sendRedirect() を使った方が良いが無限ループしてしまう...
*/
switch ($_GET['mode']) {
case 'up':
$objCartSess->upQuantity($_GET['cart_no']);
SC_Utils_Ex::sfReload(session_name() . "=" . session_id());
break;
case 'down':
$objCartSess->downQuantity($_GET['cart_no']);
SC_Utils_Ex::sfReload(session_name() . "=" . session_id());
break;
case 'delete':
$objCartSess->delProduct($_GET['cart_no']);
SC_Utils_Ex::sfReload(session_name() . "=" . session_id());
break;
}
// カート集計処理
if (empty($arrData)) {
$arrData = array();
}
$objDb->sfTotalCart($this, $objCartSess, $arrInfo);
$this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo, $objCustomer);
$this->arrInfo = $arrInfo;
// ログイン判定
if ($objCustomer->isLoginSuccess(true)) {
$this->tpl_login = true;
$this->tpl_user_point = $objCustomer->getValue('point');
//.........这里部分代码省略.........
示例3: mobileProcess
/**
* Page のプロセス(モバイル).
*
* @return void
*/
function mobileProcess()
{
$objView = new SC_MobileView();
$objCartSess = new SC_CartSession();
$objSiteInfo = $objView->objSiteInfo;
$objSiteSess = new SC_SiteSession();
$objCustomer = new SC_Customer();
$arrInfo = $objSiteInfo->data;
$objQuery = new SC_Query();
$objDb = new SC_Helper_DB_Ex();
// 前のページで正しく登録手続きが行われた記録があるか判定
SC_Utils_Ex::sfIsPrePage($objSiteSess, true);
// ユーザユニークIDの取得と購入状態の正当性をチェック
$uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess);
$this->tpl_uniqid = $uniqid;
// カート集計処理
$objDb->sfTotalCart($this, $objCartSess, $arrInfo);
// 一時受注テーブルの読込
$arrData = $objDb->sfGetOrderTemp($uniqid);
// カート集計を元に最終計算
$arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo, $objCustomer);
// カート内の商品の売り切れチェック
$objCartSess->chkSoldOut($objCartSess->getCartList());
// 会員ログインチェック
if ($objCustomer->isLoginSuccess(true)) {
$this->tpl_login = '1';
$this->tpl_user_point = $objCustomer->getValue('point');
}
// 決済区分を取得する
$payment_type = "";
if ($objDb->sfColumnExists("dtb_payment", "memo01")) {
// MEMO03に値が入っている場合には、モジュール追加されたものとみなす
$sql = "SELECT memo03 FROM dtb_payment WHERE payment_id = ?";
$arrPayment = $objQuery->getall($sql, array($arrData['payment_id']));
$payment_type = $arrPayment[0]["memo03"];
}
$this->payment_type = $payment_type;
if (!isset($_POST['mode'])) {
$_POST['mode'] = "";
}
switch ($_POST['mode']) {
// 前のページに戻る
case 'return':
// 正常な推移であることを記録しておく
$objSiteSess->setRegistFlag();
$this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_PAYMENT), true);
exit;
break;
case 'confirm':
// この時点で注文番号を確保しておく(クレジット、コンビニ決済で必要なため)
// postgresqlとmysqlとで処理を分ける
if (DB_TYPE == "pgsql") {
$order_id = $objQuery->nextval("dtb_order", "order_id");
} elseif (DB_TYPE == "mysql") {
$order_id = $objQuery->get_auto_increment("dtb_order");
}
$arrData["order_id"] = $order_id;
// セッション情報を保持
$arrData['session'] = serialize($_SESSION);
// 集計結果を受注一時テーブルに反映
$objDb->sfRegistTempOrder($uniqid, $arrData);
// 正常に登録されたことを記録しておく
$objSiteSess->setRegistFlag();
// 決済方法により画面切替
if ($payment_type != "") {
$_SESSION["payment_id"] = $arrData['payment_id'];
$this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_MODULE), true);
} else {
$this->sendRedirect($this->getLocation(MOBILE_URL_SHOP_COMPLETE), true);
}
exit;
break;
default:
break;
}
$this->arrData = $arrData;
$this->arrInfo = $arrInfo;
$objView->assignobj($this);
$objView->display(SITE_FRAME);
}