Ignore:
Timestamp:
2012/11/02 19:27:41 (9 years ago)
Author:
pineray
Message:

#1958 別お届け先関連の処理をページクラスから分離

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/mypage/LC_Page_Mypage_DeliveryAddr.php

    r21867 r22065  
    7272 
    7373        $objCustomer = new SC_Customer_Ex(); 
     74        $objAddress  = new SC_Helper_Address_Ex(); 
    7475        $ParentPage  = MYPAGE_DELIVADDR_URLPATH; 
    7576 
     
    9798        // パラメーター管理クラス,パラメーター情報の初期化 
    9899        $objFormParam   = new SC_FormParam_Ex(); 
    99         SC_Helper_Customer_Ex::sfCustomerOtherDelivParam($objFormParam); 
     100        $objAddress->setFormParam($objFormParam); 
    100101        $objFormParam->setParam($_POST); 
    101102        $this->arrForm  = $objFormParam->getHashArray(); 
     
    104105            // 入力は必ずedit 
    105106            case 'edit': 
    106                 $this->arrErr = SC_Helper_Customer_Ex::sfCustomerOtherDelivErrorCheck($objFormParam); 
     107                $this->arrErr = $objAddress->errorCheck($objFormParam); 
    107108                // 入力エラーなし 
    108109                if (empty($this->arrErr)) { 
     
    116117 
    117118                    if ($objCustomer->isLoginSuccess(true)) { 
    118                         $this->lfRegistData($objFormParam, $objCustomer->getValue('customer_id')); 
     119                        $this->lfRegistData($objAddress, $objFormParam, $objCustomer->getValue('customer_id')); 
    119120                    } else { 
    120121                        $this->lfRegistDataNonMember($objFormParam); 
     
    135136 
    136137                if ($_GET['other_deliv_id'] != '') { 
    137                     $arrOtherDeliv = $this->lfGetOtherDeliv($objCustomer->getValue('customer_id'), $_SESSION['other_deliv_id']); 
     138                    $arrOtherDeliv = $objAddress->getAddress($objCustomer->getValue('customer_id'), $_SESSION['other_deliv_id']); 
    138139 
    139140                    //不正アクセス判定 
    140                     if (!$objCustomer->isLoginSuccess(true) || count($arrOtherDeliv) == 0) { 
     141                    if (!$objCustomer->isLoginSuccess(true) || !$arrOtherDeliv) { 
    141142                        SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    142143                    } 
    143144 
    144145                    //別のお届け先情報取得 
    145                     $this->arrForm = $arrOtherDeliv[0]; 
     146                    $this->arrForm = $arrOtherDeliv; 
    146147                } 
    147148                break; 
     
    165166    } 
    166167 
    167     /** 
    168      * ほかのお届け先を取得する 
    169      * 
    170      * @param mixed $customer_id 
    171      * @param mixed $other_deliv_id 
    172      * @access private 
    173      * @return array() 
    174      */ 
    175     function lfGetOtherDeliv($customer_id, $other_deliv_id) { 
    176         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    177         return $objQuery->select('*', 'dtb_other_deliv', 'customer_id = ? AND other_deliv_id = ?', array($customer_id, $other_deliv_id)); 
    178     } 
    179  
    180168    /* 登録実行 */ 
    181     function lfRegistData($objFormParam, $customer_id) { 
    182         $objQuery   =& SC_Query_Ex::getSingletonInstance(); 
    183  
     169    function lfRegistData($objAddress, $objFormParam, $customer_id) { 
    184170        $arrRet     = $objFormParam->getHashArray(); 
    185171        $sqlval     = $objFormParam->getDbArray(); 
     
    187173        $sqlval['customer_id'] = $customer_id; 
    188174 
    189         // 追加 
    190         if (strlen($arrRet['other_deliv_id'] == 0)) { 
    191             // 別のお届け先登録数の取得 
    192             $deliv_count = $objQuery->count('dtb_other_deliv', 'customer_id = ?', array($customer_id)); 
    193             // 別のお届け先最大登録数に達している場合、エラー 
    194             if ($deliv_count >= DELIV_ADDR_MAX) { 
    195                 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '別のお届け先最大登録数に達しています。'); 
    196             } 
    197  
    198             // 実行 
    199             $sqlval['other_deliv_id'] = $objQuery->nextVal('dtb_other_deliv_other_deliv_id'); 
    200             $objQuery->insert('dtb_other_deliv', $sqlval); 
    201  
    202         // 変更 
    203         } else { 
    204             $deliv_count = $objQuery->count('dtb_other_deliv','customer_id = ? AND other_deliv_id = ?' ,array($customer_id, $arrRet['other_deliv_id'])); 
    205             if ($deliv_count != 1) { 
    206                 SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '一致する別のお届け先がありません。'); 
    207             } 
    208  
    209             // 実行 
    210             $objQuery->update('dtb_other_deliv', $sqlval, 'other_deliv_id = ?', array($arrRet['other_deliv_id'])); 
    211         } 
     175        $objAddress->registAddress($customer_id, $sqlval, $arrRet['other_deliv_id']); 
    212176    } 
    213177 
Note: See TracChangeset for help on using the changeset viewer.