Changeset 19872


Ignore:
Timestamp:
2011/01/11 22:31:49 (10 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:19871
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/helper/SC_Helper_Purchase.php sc_helper_purchase.p-20101020100530-jyaoa7ch9pdfjqzp-1
data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php 16093@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fmypage%2FLC_Page_Mypage_DeliveryAddr.php
data/class/pages/shopping/LC_Page_Shopping.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping.php
data/class/pages/shopping/LC_Page_Shopping_Multiple.php lc_page_shopping_mul-20110109122547-u3fq5xmi1b4jn5n4-2
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110111133017-qkwxf5r153zqh0i9
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110111133146-xxt8xxsbcdj7rkzt
bzr:revno:
2601
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/class/helper/SC_Helper_Purchase.php ohkouchi@loop-az.jp-20110111133017-qkwxf5r153zqh0i9
data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php ohkouchi@loop-az.jp-20110111133017-qkwxf5r153zqh0i9
data/class/pages/shopping/LC_Page_Shopping.php ohkouchi@loop-az.jp-20110111133017-qkwxf5r153zqh0i9
data/class/pages/shopping/LC_Page_Shopping_Multiple.php ohkouchi@loop-az.jp-20110111133017-qkwxf5r153zqh0i9
bzr:timestamp:
2011-01-11 22:31:46.545000076 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-01-11T13:31:46.545000Z
Message:

#843(複数配送先の指定)

  • 非会員購入に対応
Location:
branches/version-2_5-dev/data/class
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php

    r19868 r19872  
    218218     */ 
    219219    function saveShippingTemp(&$src, $otherDelivId = 0) { 
    220         $_SESSION['shipping'][$otherDelivId] = array_merge($_SESSION['shipping'][$otherDelivId], $src); 
     220        if (empty($_SESSION['shipping'][$otherDelivId])) { 
     221            $_SESSION['shipping'][$otherDelivId] = $src; 
     222        } else { 
     223            $_SESSION['shipping'][$otherDelivId] = array_merge($_SESSION['shipping'][$otherDelivId], $src); 
     224        } 
    221225    } 
    222226 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php

    r19862 r19872  
    8080        $this->ParentPage = $ParentPage; 
    8181         
    82         // ログイン判定 及び 退会判定 
    83         if (!$objCustomer->isLoginSuccess()){ 
     82        /* 
     83         * ログイン判定 及び 退会判定 
     84         * 未ログインでも, 複数配送設定ページからのアクセスの場合は表示する 
     85         */ 
     86        if (!$objCustomer->isLoginSuccess() && $ParentPage != MULTIPLE_URL_PATH){ 
    8487            $this->tpl_onload = "fnUpdateParent('". $this->getLocation($_POST['ParentPage']) ."'); window.close();"; 
    8588        } 
    86           
    87         //退会判定に統合  
    88         ////ログイン判定 
    89         // if (!$objCustomer->isLoginSuccess()){ 
    90         //     SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    91         //} 
    9289 
    9390        if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
     
    147144                    } 
    148145                     
    149                     $this->lfRegistData($_POST, $arrRegistColumn, $objCustomer); 
     146                    if ($objCustomer->isLoginSuccess()) { 
     147                        $this->lfRegistData($_POST, $arrRegistColumn, $objCustomer); 
     148                    } else { 
     149                        $this->lfRegistDataNonMember($_POST, $arrRegistColumn); 
     150                    } 
    150151                } 
    151152                break; 
     
    221222    } 
    222223 
     224    function lfRegistDataNonMember($array, $arrRegistColumn) { 
     225        foreach ($arrRegistColumn as $data) { 
     226            $arrRegist['shipping_' . $data["column"] ] = $array[ $data["column"] ]; 
     227        } 
     228        if (count($shipping) >= DELIV_ADDR_MAX) { 
     229            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, "", false, '別のお届け先最大登録数に達しています。'); 
     230        } else { 
     231            $_SESSION['shipping'][] = $arrRegist; 
     232        } 
     233    } 
     234 
    223235    //---- 取得文字列の変換 
    224236    function lfConvertParam($array, $arrRegistColumn) { 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php

    r19866 r19872  
    166166                $objSiteSess->setRegistFlag(); 
    167167 
    168                 SC_Response_Ex::sendRedirect("multiple.php"); 
     168                SC_Response_Ex::sendRedirect(MULTIPLE_URL_PATH); 
    169169                exit; 
    170170            } 
     
    181181            // ※breakなし 
    182182        default: 
     183            $objPurchase->unsetShippingTemp(); 
    183184            if(isset($_GET['from']) && $_GET['from'] == 'nonmember') { 
    184185                $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
     
    334335            $objPurchase->copyFromOrder($sqlval, $params); 
    335336        } 
    336         $objPurchase->saveShippingTemp($sqlval); 
     337 
     338        /* 
     339         * order_* と shipping_* をそれぞれ $_SESSION['shipping'][$shipping_id] 
     340         * に, shipping_* というキーで保存 
     341         */ 
     342        $order_val = array(); 
     343        $shipping_val = array(); 
     344        foreach ($sqlval as $key => $val) { 
     345            if (preg_match('/^order_/', $key)) { 
     346                $order_val['shipping_' . str_replace('order_', '', $key)] = $val; 
     347            } elseif (preg_match('/^shipping_/', $key)) { 
     348                $shipping_val[$key] = $val; 
     349            } 
     350        } 
     351        $objPurchase->saveShippingTemp($order_val, 0); 
     352        if ($params['deliv_check'] == '1') { 
     353            $objPurchase->saveShippingTemp($shipping_val, 1); 
     354        } 
    337355        $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
    338356    } 
     
    375393        $objErr->doFunc(array("メールアドレス", "メールアドレス(確認)", "order_email", "order_email02"), array("EQUAL_CHECK")); 
    376394 
    377         //既存メールアドレスでの登録不可(購入時強制会員登録が有効の場合のみ) 
    378         if (PURCHASE_CUSTOMER_REGIST == '1' && strlen($arrRet["order_email"]) > 0) { 
    379             $array['email'] = strtolower($arrRet['order_email']); 
    380             $objQuery = new SC_Query(); 
    381             $arrEmailCheck = $objQuery->select("email, update_date, del_flg", "dtb_customer","email = ? OR email_mobile = ? ORDER BY del_flg", array($array["email"], $array["email"])); 
    382  
    383             if(!empty($arrEmailCheck)) { 
    384                 if($arrEmailCheck[0]['del_flg'] != '1') { 
    385                     // 会員である場合 
    386                     $objErr->arrErr["order_email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 
    387                 } else { 
    388                     // 退会した会員である場合 
    389                     $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrEmailCheck[0]['update_date']); 
    390                     $now_time = time(); 
    391                     $pass_time = $now_time - $leave_time; 
    392                     // 退会から何時間-経過しているか判定する。 
    393                     $limit_time = ENTRY_LIMIT_HOUR * 3600; 
    394                     if($pass_time < $limit_time) { 
    395                         $objErr->arrErr["order_email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 
    396                     } 
    397                 } 
    398             } 
    399         } 
    400  
    401395        return $objErr->arrErr; 
    402     } 
    403  
    404     /** 
    405      * 受注一時テーブルに登録する顧客(お客様情報)をお届け先へコピーする 
    406      * 
    407      * @param array $sqlval 
    408      * @return void 
    409      */ 
    410     function lfCopyDeliv(&$sqlval) { 
    411         $sqlval['deliv_name01'] = $sqlval['order_name01']; 
    412         $sqlval['deliv_name02'] = $sqlval['order_name02']; 
    413         $sqlval['deliv_kana01'] = $sqlval['order_kana01']; 
    414         $sqlval['deliv_kana02'] = $sqlval['order_kana02']; 
    415         $sqlval['deliv_pref']   = $sqlval['order_pref']; 
    416         $sqlval['deliv_zip01']  = $sqlval['order_zip01']; 
    417         $sqlval['deliv_zip02']  = $sqlval['order_zip02']; 
    418         $sqlval['deliv_addr01'] = $sqlval['order_addr01']; 
    419         $sqlval['deliv_addr02'] = $sqlval['order_addr02']; 
    420         $sqlval['deliv_tel01']  = $sqlval['order_tel01']; 
    421         $sqlval['deliv_tel02']  = $sqlval['order_tel02']; 
    422         $sqlval['deliv_tel03']  = $sqlval['order_tel03']; 
    423396    } 
    424397} 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Multiple.php

    r19868 r19872  
    7373        $this->objFormParam = new SC_FormParam(); 
    7474 
    75         $this->addrs = $this->getDelivAddrs($objCustomer); 
     75        $uniqid = $objSiteSess->getUniqId(); 
     76 
     77        $this->addrs = $this->getDelivAddrs($objCustomer, $objPurchase, $uniqid); 
    7678        $this->items = $this->splitItems($objCartSess); 
    7779 
     
    7981        $this->objFormParam->setParam($_POST); 
    8082 
    81         $uniqid = $objSiteSess->getUniqId(); 
    8283        $objPurchase->verifyChangeCart($uniqid, $objCartSess); 
    8384 
     
    106107                    while ($params['cart_no' . $i] != null) { 
    107108                        $other_deliv_id = $params['shipping' . $i]; 
    108                         if ($other_deliv_id != 0) { 
    109                             $otherDeliv = $objQuery->select("*", "dtb_other_deliv", 
    110                                                             "other_deliv_id = ?", 
    111                                                             array($other_deliv_id)); 
    112                             foreach ($otherDeliv[0] as $key => $val) { 
    113                                 $sqlval[$other_deliv_id]['shipping_' . $key] = $val; 
     109                        if ($objCustomer->isLoginSuccess()) { 
     110                            if ($other_deliv_id != 0) { 
     111                                $otherDeliv = $objQuery->select("*", "dtb_other_deliv", 
     112                                                                "other_deliv_id = ?", 
     113                                                                array($other_deliv_id)); 
     114                                foreach ($otherDeliv[0] as $key => $val) { 
     115                                    $sqlval[$other_deliv_id]['shipping_' . $key] = $val; 
     116                                } 
     117                            } else { 
     118                                $objPurchase->copyFromCustomer($sqlval[0], $objCustomer, 
     119                                                               "shipping"); 
    114120                            } 
    115121                        } else { 
    116                             $objPurchase->copyFromCustomer($sqlval[0], $objCustomer, 
    117                                                            "shipping"); 
    118122                        } 
    119123                        $sqlval[$other_deliv_id]['deliv_id'] = $objPurchase->getDeliv($this->cartKey); 
     
    182186     * 非会員の場合は, 「お届け先の指定」画面で入力した住所を取得する. 
    183187     */ 
    184     function getDelivAddrs(&$objCustomer) { 
     188    function getDelivAddrs(&$objCustomer, &$objPurchase, $uniqid) { 
    185189        if ($objCustomer->isLoginSuccess()) { 
    186190            $addrs = $objCustomer->getCustomerAddress($_SESSION['customer']['customer_id']); 
     191            $results = array(); 
     192            foreach ($addrs as $key => $val) { 
     193                $other_deliv_id = SC_Utils_Ex::isBlank($val['other_deliv_id']) ? 0 : $val['other_deliv_id']; 
     194                $results[$other_deliv_id] = $val['name01'] . $val['name02'] 
     195                    . " " . $this->arrPref[$val['pref']] . $val['addr01'] . $val['addr02']; 
     196            } 
    187197        } else { 
    188             // TODO 
    189             $addrs = array(); 
    190         } 
    191         $results = array(); 
    192         foreach ($addrs as $key => $val) { 
    193             $other_deliv_id = SC_Utils_Ex::isBlank($val['other_deliv_id']) ? 0 : $val['other_deliv_id']; 
    194             $results[$other_deliv_id] = $val['name01'] . $val['name02'] 
    195                 . " " . $this->arrPref[$val['pref']] . $val['addr01'] . $val['addr02']; 
     198            $shipping = $objPurchase->getShippingTemp(); 
     199            foreach ($shipping as $shipping_id => $val) { 
     200                $results[$shipping_id] = $val['shipping_name01'] . $val['shipping_name02'] 
     201                    . " " . $this->arrPref[$val['shipping_pref']] 
     202                    . $val['shipping_addr01'] . $val['shipping_addr02']; 
     203            } 
    196204        } 
    197205        return $results; 
Note: See TracChangeset for help on using the changeset viewer.