コード例 #1
0
 /**
  * 配送業者IDから, 支払い方法, お届け時間の配列を取得する.
  *
  * 結果の連想配列の添字の値は以下の通り
  * - 'arrDelivTime' - お届け時間の配列
  * - 'arrPayment' - 支払い方法の配列
  * - 'img_show' - 支払い方法の画像の有無
  *
  * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス
  * @param SC_CartSession $objCartSess SC_CartSession インスタンス
  * @param integer $deliv_id 配送業者ID
  * @return array 支払い方法, お届け時間を格納した配列
  */
 function getSelectedDeliv(&$objPurchase, &$objCartSess, $deliv_id)
 {
     $arrResults = array();
     $arrResults['arrDelivTime'] = $objPurchase->getDelivTime($deliv_id);
     $total = $objCartSess->getAllProductsTotal($objCartSess->getKey(), $deliv_id);
     $arrResults['arrPayment'] = $objPurchase->getPaymentsByPrice($total, $deliv_id);
     $arrResults['img_show'] = $this->hasPaymentImage($arrResults['arrPayment']);
     return $arrResults;
 }
コード例 #2
0
 /**
  * カートに変化が無いか検証する.
  *
  * ユニークIDとセッションのユニークIDを比較し, 異なる場合は
  * エラー画面を表示する.
  *
  * カートが空の場合, 購入ボタン押下後にカートが変更された場合は
  * カート画面へ遷移する.
  *
  * @param  string         $uniqId         ユニークID
  * @param  SC_CartSession $objCartSession
  * @return void
  */
 public function verifyChangeCart($uniqId, &$objCartSession)
 {
     $cartKey = $objCartSession->getKey();
     // カート内が空でないか
     if (SC_Utils_Ex::isBlank($cartKey)) {
         SC_Response_Ex::sendRedirect(CART_URL);
         exit;
     }
     // 初回のみカートの内容を保存
     $objCartSession->saveCurrentCart($uniqId, $cartKey);
     /*
      * POSTのユニークIDとセッションのユニークIDを比較
      *(ユニークIDがPOSTされていない場合はスルー)
      */
     if (!SC_SiteSession_Ex::checkUniqId()) {
         SC_Utils_Ex::sfDispSiteError(CANCEL_PURCHASE);
         exit;
     }
     // 購入ボタンを押してから変化がないか
     $quantity = $objCartSession->getTotalQuantity($cartKey);
     if ($objCartSession->checkChangeCart($cartKey) || !($quantity > 0)) {
         SC_Response_Ex::sendRedirect(CART_URL);
         exit;
     }
 }
コード例 #3
0
 /**
  * 配送業者IDから, 支払い方法, お届け時間の配列を取得する.
  *
  * 結果の連想配列の添字の値は以下の通り
  * - 'arrDelivTime' - お届け時間の配列
  * - 'arrPayment' - 支払い方法の配列
  * - 'img_show' - 支払い方法の画像の有無
  *
  * @param  SC_CartSession $objCartSess SC_CartSession インスタンス
  * @param  integer        $deliv_id    配送業者ID
  * @return array          支払い方法, お届け時間を格納した配列
  */
 public function getSelectedDeliv(&$objCartSess, $deliv_id)
 {
     $arrResults = array();
     if (strval($deliv_id) === strval(intval($deliv_id))) {
         $arrResults['arrDelivTime'] = SC_Helper_Delivery_Ex::getDelivTime($deliv_id);
         $total = $objCartSess->getAllProductsTotal($objCartSess->getKey());
         $payments_deliv = SC_Helper_Delivery_Ex::getPayments($deliv_id);
         $objPayment = new SC_Helper_Payment_Ex();
         $payments_total = $objPayment->getByPrice($total);
         $arrPayment = array();
         foreach ($payments_total as $payment) {
             if (in_array($payment['payment_id'], $payments_deliv)) {
                 $arrPayment[] = $payment;
             }
         }
         $arrResults['arrPayment'] = $arrPayment;
         $arrResults['img_show'] = $this->hasPaymentImage($arrResults['arrPayment']);
     }
     return $arrResults;
 }
 /**
  * カートの商品を数量ごとに分割し, フォームに設定する.
  *
  * @param  SC_FormParam   $objFormParam SC_FormParam インスタンス
  * @param  SC_CartSession $objCartSess  SC_CartSession インスタンス
  * @return void
  */
 public function setParamToSplitItems(&$objFormParam, &$objCartSess)
 {
     $cartLists =& $objCartSess->getCartList($objCartSess->getKey());
     $arrItems = array();
     $index = 0;
     foreach (array_keys($cartLists) as $key) {
         $arrProductsClass = $cartLists[$key]['productsClass'];
         $quantity = (int) $cartLists[$key]['quantity'];
         for ($i = 0; $i < $quantity; $i++) {
             foreach ($arrProductsClass as $key2 => $val) {
                 $arrItems[$key2][$index] = $val;
             }
             $arrItems['quantity'][$index] = 1;
             $arrItems['price'][$index] = $cartLists[$key]['price'];
             $arrItems['price_inctax'][$index] = $cartLists[$key]['price_inctax'];
             $index++;
         }
     }
     $objFormParam->setParam($arrItems);
     $objFormParam->setValue('line_of_num', $index);
 }
コード例 #5
0
 /**
  * 配送業者IDから, 支払い方法, お届け時間の配列を取得する.
  *
  * 結果の連想配列の添字の値は以下の通り
  * - 'arrDelivTime' - お届け時間の配列
  * - 'arrPayment' - 支払い方法の配列
  * - 'img_show' - 支払い方法の画像の有無
  *
  * @param  SC_CartSession $objCartSess SC_CartSession インスタンス
  * @param  integer        $deliv_id    配送業者ID
  * @return array          支払い方法, お届け時間を格納した配列
  */
 public function getSelectablePayment(&$objCartSess, $deliv_id, $is_list = false)
 {
     $arrPayment = array();
     if (strval($deliv_id) === strval(intval($deliv_id))) {
         $total = $objCartSess->getAllProductsTotal($objCartSess->getKey());
         $payments_deliv = DeliveryHelper::getPayments($deliv_id);
         $objPayment = new PaymentHelper();
         $payments_total = $objPayment->getByPrice($total);
         foreach ($payments_total as $payment) {
             if (in_array($payment['payment_id'], $payments_deliv)) {
                 if ($is_list) {
                     $arrPayment[$payment['payment_id']] = $payment['payment_method'];
                 } else {
                     $arrPayment[] = $payment;
                 }
             }
         }
     }
     return $arrPayment;
 }