Ignore:
Timestamp:
2012/03/12 15:35:03 (12 years ago)
Author:
Seasoft
Message:

#1439 (「お届け先の指定」に戻った際に、選択した状態を引き継いでいない)

  • 実装誤りの修正

#1672 (非会員購入時「お届け先の複数指定」から戻るボタンで遷移すると追加したお届け先が削除される)

  • 実装誤りの修正

#1675 (「お届け先の複数指定」画面での入力内容が復元されない)
#1315 (複数のお届け先関連のキー情報が怪しい)

  • 根本的な解決ではありませんが、とりあえず会員に関しては other_deliv_id を使うようにした。

#1613 (typo修正・ソース整形・ソースコメントの改善)

Location:
branches/version-2_12-dev/data
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/Smarty/templates/default/shopping/payment.tpl

    r21571 r21629  
    278278            <ul> 
    279279                <li> 
    280                 <a href="<!--{$tpl_back_url|h}-->" onmouseover="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_back_on.jpg','back03')" onmouseout="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_back.jpg','back03')"> 
     280                <a href="?mode=return" onmouseover="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_back_on.jpg','back03')" onmouseout="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_back.jpg','back03')"> 
    281281                    <img src="<!--{$TPL_URLPATH}-->img/button/btn_back.jpg" alt="戻る" border="0" name="back03" id="back03" /></a> 
    282282                </li> 
  • branches/version-2_12-dev/data/Smarty/templates/mobile/shopping/payment.tpl

    r21537 r21629  
    109109    </form> 
    110110 
    111     <!--{if $is_single_deliv}--> 
    112         <form action="<!--{$tpl_back_url|h}-->" method="get"> 
    113             <!--{if $is_multiple}--> 
    114                 <input type="hidden" name="from" value="multiple"> 
    115             <!--{/if}--> 
    116     <!--{else}--> 
    117         <form action="<!--{$smarty.const.MOBILE_SHOPPING_PAYMENT_URLPATH}-->" method="post"> 
    118             <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->"> 
    119             <input type="hidden" name="mode" value=""> 
    120             <input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->"> 
    121     <!--{/if}--> 
    122         <center><input type="submit" name="return" value="戻る"></center> 
     111    <form action="?mode=return" method="get"> 
     112        <input type="hidden" name="mode" value="return"> 
     113        <center><input type="submit" value="戻る"></center> 
    123114    </form> 
    124115<!--{/strip}--> 
  • branches/version-2_12-dev/data/Smarty/templates/sphone/shopping/payment.tpl

    r21537 r21629  
    271271            <ul class="btn_btm"> 
    272272                <li><a rel="external" href="javascript:void(document.form1.submit());" class="btn">確認ページへ</a></li> 
    273                 <li><a rel="external" href="<!--{$tpl_back_url|h}-->" class="btn_back">戻る</a></li> 
     273                <li><a rel="external" href="?mode=return" class="btn_back">戻る</a></li> 
    274274            </ul> 
    275275        </div> 
  • branches/version-2_12-dev/data/class/pages/shopping/LC_Page_Shopping.php

    r21596 r21629  
    413413            } 
    414414        } else { 
    415             $objPurchase->unsetOneShippingTemp(); 
     415            $objPurchase->unsetAllShippingTemp(true); 
    416416            if ($arrParams['deliv_check'] == '1') { 
    417                 $objPurchase->saveShippingTemp($arrShipping, 0); 
     417                $objPurchase->saveShippingTemp($arrShipping, 1); 
    418418            } else { 
    419419                $objPurchase->saveShippingTemp($arrShippingOwn, 0); 
  • branches/version-2_12-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php

    r21596 r21629  
    122122                $objPurchase->unsetShippingTemp(); 
    123123 
    124                 $success = $this->registerDeliv($arrForm['deliv_check'], $this->tpl_uniqid, $objPurchase, $objCustomer); 
     124                $shipping_id = $arrForm['deliv_check'] == -1 ? 0 : $arrForm['deliv_check']; 
     125                $success = $this->registerDeliv($shipping_id, $this->tpl_uniqid, $objPurchase, $objCustomer); 
    125126                if (!$success) { 
    126127                    SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true); 
    127128                } 
    128129 
    129                 $objPurchase->setShipmentItemTempForSole($objCartSess); 
     130                $objPurchase->setShipmentItemTempForSole($objCartSess, $shipping_id); 
    130131                $objSiteSess->setRegistFlag(); 
    131132                SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH); 
     
    158159                exit; 
    159160                break; 
     161 
    160162            default: 
     163                // 配送IDの取得 
     164                $shippingData = $objPurchase->getShippingTemp(); 
     165                $arrShippingId = array_keys($shippingData); 
     166                if (isset($arrShippingId[0])) { 
     167                    $this->arrForm['deliv_check']['value'] = $arrShippingId[0] == 0 ? -1 : $arrShippingId[0]; 
     168                } 
    161169                break; 
    162170        } 
     
    210218     * お届け先チェックの値が不正な場合は false を返す. 
    211219     * 
    212      * @param integer $deliv_check お届け先チェック 
     220     * @param integer $other_deliv_id  
    213221     * @param string $uniqid 受注一時テーブルのユニークID 
    214222     * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス 
     
    216224     * @return boolean お届け先チェックの値が妥当な場合 true 
    217225     */ 
    218     function registerDeliv($deliv_check, $uniqid, &$objPurchase, &$objCustomer) { 
     226    function registerDeliv($other_deliv_id, $uniqid, &$objPurchase, &$objCustomer) { 
    219227        GC_Utils_Ex::gfDebugLog('register deliv. deliv_check=' . $deliv_check); 
    220228        $arrValues = array(); 
    221229        // 会員登録住所がチェックされている場合 
    222         if ($deliv_check == '-1') { 
     230        if ($other_deliv_id == 0) { 
    223231            $objPurchase->copyFromCustomer($arrValues, $objCustomer, 'shipping'); 
    224             $objPurchase->saveShippingTemp($arrValues); 
    225             $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); 
    226             return true; 
    227232        } 
    228233        // 別のお届け先がチェックされている場合 
    229         elseif ($deliv_check >= 1) { 
     234        else { 
    230235            $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    231236            $arrOtherDeliv = $objQuery->getRow('*', 'dtb_other_deliv', 
    232237                                               'customer_id = ? AND other_deliv_id = ?', 
    233                                                array($objCustomer->getValue('customer_id'), $deliv_check)); 
    234             if (SC_Utils_Ex::isBlank($arrOtherDeliv)) { 
     238                                               array($objCustomer->getValue('customer_id'), $other_deliv_id)); 
     239            if (empty($arrOtherDeliv)) { 
    235240                return false; 
    236241            } 
    237242 
    238243            $objPurchase->copyFromOrder($arrValues, $arrOtherDeliv, 'shipping', ''); 
    239             $objPurchase->saveShippingTemp($arrValues); 
    240             $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); 
    241             return true; 
    242         } 
    243         // お届け先チェックが不正な場合 
    244         else { 
    245             return false; 
    246         } 
     244        } 
     245        $objPurchase->saveShippingTemp($arrValues, $other_deliv_id); 
     246        $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); 
     247        return true; 
    247248    } 
    248249} 
  • branches/version-2_12-dev/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r21628 r21629  
    108108 
    109109        // 戻り URL の設定 
    110         $this->tpl_back_url = $this->getPreviousURL($objCustomer->isLoginSuccess(true), $cart_key, $this->is_multiple); 
     110        // @deprecated 2.12.0 テンプレート直書きに戻した 
     111        $this->tpl_back_url = '?mode=return'; 
    111112 
    112113        $arrOrderTemp = $objPurchase->getOrderTemp($this->tpl_uniqid); 
     
    207208                $objPlugin->doAction('lc_page_shopping_payment_action_return', array($this)); 
    208209 
    209                 SC_Response_Ex::sendRedirect(SHOPPING_URL); 
     210                $url = null; 
     211                if ($this->is_multiple) { 
     212                    $url = MULTIPLE_URLPATH . '?from=multiple'; 
     213                } elseif ($objCustomer->isLoginSuccess(true)) { 
     214                    if ($product_type_id == PRODUCT_TYPE_DOWNLOAD) { 
     215                        $url = CART_URLPATH; 
     216                    } else { 
     217                        $url = DELIV_URLPATH; 
     218                    } 
     219                } else { 
     220                    $url = SHOPPING_URL . '?from=nonmember'; 
     221                } 
     222 
     223                SC_Response_Ex::sendRedirect($url); 
    210224                exit; 
    211225                break; 
     
    441455 
    442456    /** 
    443      * 前に戻るボタンの URL を取得する. 
    444      * 
    445      * @param boolean $is_login ユーザーがログインしている場合 true 
    446      * @param integer $product_type_id 商品種別ID 
    447      * @param boolean $is_multiple 複数配送の場合 true 
    448      * @return string 前に戻るボタンの URL 
    449      */ 
    450     function getPreviousURL($is_login = false, $product_type_id, $is_multiple) { 
    451         if ($is_multiple) { 
    452             return MULTIPLE_URLPATH . '?from=multiple'; 
    453         } 
    454         if ($is_login) { 
    455             if ($product_type_id == PRODUCT_TYPE_DOWNLOAD) { 
    456                 return CART_URLPATH; 
    457             } else { 
    458                 return DELIV_URLPATH; 
    459             } 
    460         } else { 
    461             return SHOPPING_URL . '?from=nonmember'; 
    462         } 
    463     } 
    464  
    465     /** 
    466457     * モバイル用テンプレートのパスを取得する. 
    467458     * 
Note: See TracChangeset for help on using the changeset viewer.