Changeset 23274


Ignore:
Timestamp:
2013/11/18 12:52:22 (8 years ago)
Author:
m_uehara
Message:

#2461 SC_Helper_Addressの処理の見直し

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13_1/data/class/helper/SC_Helper_Address.php

    r23124 r23274  
    3939    public function registAddress($sqlval) 
    4040    { 
     41        if (self::delivErrorCheck($sqlval)) { 
     42            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, "入力値が不正です。<br />正しい値を入力してください。"); 
     43            SC_Response_Ex::actionExit(); 
     44        } 
     45         
    4146        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    4247        $customer_id = $sqlval['customer_id']; 
    4348        $other_deliv_id = $sqlval['other_deliv_id']; 
    4449 
    45         // 顧客IDのチェック 
    46         if (is_null($customer_id) || !is_numeric($customer_id) || !preg_match("/^\d+$/", $customer_id)) { 
    47             SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '顧客IDを正しく指定して下さい。'); 
    48         } 
    4950        // 追加 
    5051        if (strlen($other_deliv_id == 0)) { 
    51             // 別のお届け先登録数の取得 
    52             $deliv_count = $objQuery->count('dtb_other_deliv', 'customer_id = ?', array($customer_id)); 
    5352            // 別のお届け先最大登録数に達している場合、エラー 
     53            $from   = 'dtb_other_deliv'; 
     54            $where  = 'customer_id = ?'; 
     55            $arrVal = array($customer_id); 
     56            $deliv_count = $objQuery->count($from, $where, $arrVal); 
    5457            if ($deliv_count >= DELIV_ADDR_MAX) { 
    5558                SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '別のお届け先最大登録数に達しています。'); 
     59                SC_Response_Ex::actionExit(); 
    5660            } 
    5761 
    58             // 実行 
     62            // 別のお届け先を追加 
    5963            $sqlval['other_deliv_id'] = $objQuery->nextVal('dtb_other_deliv_other_deliv_id'); 
    60             $objQuery->insert('dtb_other_deliv', $sqlval); 
     64            $objQuery->insert($from, $sqlval); 
    6165 
    6266        // 変更 
    6367        } else { 
    64             $deliv_count = $objQuery->count('dtb_other_deliv','other_deliv_id = ?' ,array($other_deliv_id)); 
     68            $from   = 'dtb_other_deliv'; 
     69            $where  = 'customer_id = ? AND other_deliv_id = ?'; 
     70            $arrVal = array($customer_id, $other_deliv_id); 
     71            $deliv_count = $objQuery->count($from, $where, $arrVal); 
    6572            if ($deliv_count != 1) { 
    6673                SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '一致する別のお届け先がありません。'); 
     74                SC_Response_Ex::actionExit(); 
    6775            } 
    6876 
    69             // 実行 
    70             $objQuery->update('dtb_other_deliv', $sqlval, 'other_deliv_id = ?', array($other_deliv_id)); 
     77            // 別のお届け先を変更 
     78            $objQuery->update($from, $sqlval, $where, $arrVal); 
    7179        } 
    7280    } 
     
    7583     * お届け先を取得 
    7684     * 
    77      * @param  integer $other_deliv_id 
     85     * @param integer $other_deliv_id 
    7886     * @return array() 
    7987     */ 
    8088    public function getAddress($other_deliv_id) 
    8189    { 
     90        $objCustomer = new SC_Customer_Ex(); 
     91        $customer_id = $objCustomer->getValue('customer_id'); 
     92         
     93        if (self::delivErrorCheck(array('customer_id' => $customer_id, 'other_deliv_id' => $other_deliv_id))) { 
     94            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, "入力値が不正です。<br />正しい値を入力してください。"); 
     95            SC_Response_Ex::actionExit(); 
     96        } 
     97         
    8298        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    83         $address = $objQuery->select('*', 'dtb_other_deliv', 'other_deliv_id = ?', array($other_deliv_id)); 
    84  
    85         return $address ? $address[0] : FALSE; 
     99         
     100        $col    = '*'; 
     101        $from   = 'dtb_other_deliv'; 
     102        $where  = 'customer_id = ? AND other_deliv_id = ?'; 
     103        $arrVal = array($customer_id, $other_deliv_id); 
     104        $address = $objQuery->getRow($col, $from, $where, $arrVal); 
     105 
     106        return $address; 
    86107    } 
    87108 
     
    95116    public function getList($customer_id, $startno = '') 
    96117    { 
     118        if (self::delivErrorCheck(array('customer_id' => $customer_id))) { 
     119            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, "入力値が不正です。<br />正しい値を入力してください。"); 
     120            SC_Response_Ex::actionExit(); 
     121        } 
     122         
    97123        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    98124        $objQuery->setOrder('other_deliv_id DESC'); 
     
    102128        } 
    103129 
    104         return $objQuery->select('*', 'dtb_other_deliv', 'customer_id = ?', array($customer_id)); 
     130        $col    = '*'; 
     131        $from   = 'dtb_other_deliv'; 
     132        $where  = 'customer_id = ?'; 
     133        $arrVal = array($customer_id); 
     134        return $objQuery->select($col, $from, $where, $arrVal); 
    105135    } 
    106136 
     
    113143    public function deleteAddress($other_deliv_id) 
    114144    { 
    115         $where      = 'other_deliv_id = ?'; 
     145        $objCustomer = new SC_Customer_Ex(); 
     146        $customer_id = $objCustomer->getValue('customer_id'); 
     147 
     148        if (self::delivErrorCheck(array('customer_id' => $customer_id, 'other_deliv_id' => $other_deliv_id))) { 
     149            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, "入力値が不正です。<br />正しい値を入力してください。"); 
     150            SC_Response_Ex::actionExit(); 
     151        } 
     152         
    116153        $objQuery   =& SC_Query_Ex::getSingletonInstance(); 
    117         $objQuery->delete('dtb_other_deliv', $where, array($other_deliv_id)); 
     154 
     155        $from   = 'dtb_other_deliv'; 
     156        $where  = 'customer_id = ? AND other_deliv_id = ?'; 
     157        $arrVal = array($customer_id, $other_deliv_id); 
     158        $objQuery->delete($from, $where, $arrVal); 
    118159    } 
    119160 
     
    142183        return $objErr->arrErr; 
    143184    } 
     185     
     186    /** 
     187     * お届け先エラーチェック 
     188     *  
     189     * @param array $arrParam 
     190     * @return true / false 
     191     */ 
     192    public function delivErrorCheck($arrParam) 
     193    { 
     194        $error_flg = false; 
     195         
     196        if (is_null($arrParam['customer_id']) || !is_numeric($arrParam['customer_id']) || !preg_match("/^\d+$/", $arrParam['customer_id'])) { 
     197            $error_flg = true; 
     198        } 
     199 
     200        if (strlen($arrParam['other_deliv_id']) > 0 && (!is_numeric($arrParam['other_deliv_id']) || !preg_match("/^\d+$/", $arrParam['other_deliv_id']))) { 
     201            $error_flg = true; 
     202        } 
     203         
     204        return $error_flg; 
     205    } 
    144206} 
Note: See TracChangeset for help on using the changeset viewer.