Ignore:
Timestamp:
2013/05/02 18:11:36 (11 years ago)
Author:
h_yoshimoto
Message:

#2236 2.12.3リリース以降の2.12-devへのコミット差し戻し

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php

    r22570 r22796  
    3232 * @version $Id$ 
    3333 */ 
    34 class LC_Page_Admin_Basis_Kiyaku extends LC_Page_Admin_Ex  
    35 { 
     34class LC_Page_Admin_Basis_Kiyaku extends LC_Page_Admin_Ex { 
    3635 
    3736    // }}} 
     
    4342     * @return void 
    4443     */ 
    45     function init() 
    46     { 
     44    function init() { 
    4745        parent::init(); 
    4846        $this->tpl_mainpage = 'basis/kiyaku.tpl'; 
     
    5856     * @return void 
    5957     */ 
    60     function process() 
    61     { 
     58    function process() { 
    6259        $this->action(); 
    6360        $this->sendResponse(); 
     
    6966     * @return void 
    7067     */ 
    71     function action() 
    72     { 
    73  
    74         $objKiyaku = new SC_Helper_Kiyaku_Ex(); 
     68    function action() { 
     69 
     70        $objDb = new SC_Helper_DB_Ex(); 
    7571 
    7672        $mode = $this->getMode(); 
    7773        $objFormParam = new SC_FormParam_Ex(); 
    7874        $this->lfInitParam($mode, $objFormParam); 
    79         $objFormParam->setParam($_POST); 
     75        $objFormParam->setParam($_REQUEST); 
    8076        $objFormParam->convParam(); 
    81  
    82         $kiyaku_id = $objFormParam->getValue('kiyaku_id'); 
     77        $this->arrErr = $this->lfCheckError($mode, $objFormParam); 
     78        $is_error = (!SC_Utils_Ex::isBlank($this->arrErr)); 
     79 
     80        $this->kiyaku_id = $objFormParam->getValue('kiyaku_id'); 
     81        if ($is_error) { 
     82            trigger_error('', E_USER_ERROR); 
     83            return; 
     84        } 
    8385 
    8486        // 要求判定 
     
    8688            // 編集処理 
    8789            case 'confirm': 
    88                 // エラーチェック 
    89                 $this->arrErr = $this->lfCheckError($objFormParam, $objKiyaku); 
    90                 if (!SC_Utils_Ex::isBlank($this->arrErr['kiyaku_id'])) { 
    91                     trigger_error('', E_USER_ERROR); 
    92                     return; 
    93                 } 
    94  
    95                 if (SC_Utils_Ex::isBlank($this->arrErr)) { 
    96                     // POST値の引き継ぎ 
    97                     $arrParam = $objFormParam->getHashArray(); 
    98                     // 登録実行 
    99                     $res_kiyaku_id = $this->doRegist($kiyaku_id, $arrParam, $objKiyaku); 
    100                     if ($res_kiyaku_id !== FALSE) { 
    101                         // 完了メッセージ 
    102                         $kiyaku_id = $res_kiyaku_id; 
    103                         $this->tpl_onload = "alert('登録が完了しました。');"; 
     90                // POST値の引き継ぎ 
     91                $this->arrForm = $_POST; 
     92 
     93                if (!$is_error) { 
     94                    if ($this->kiyaku_id == '') { 
     95                        $result = $this->lfInsertClass($this->arrForm, $_SESSION['member_id']);    // 新規作成 
     96                    } else { 
     97                        $result = $this->lfUpdateClass($this->arrForm, $this->kiyaku_id);    // 既存編集 
     98                    } 
     99 
     100                    if ($result !== FALSE) { 
     101                        $arrPram = array( 
     102                            'kiyaku_id' => $result, 
     103                            'msg' => 'on', 
     104                        ); 
     105 
     106                        SC_Response_Ex::reload($arrPram, true); 
     107                        SC_Response_Ex::actionExit(); 
    104108                    } 
    105109                } 
    106  
    107                 // 編集中の規約IDを渡す 
    108                 $this->tpl_kiyaku_id = $kiyaku_id; 
    109110                break; 
    110111            // 削除 
    111112            case 'delete': 
    112                 $objKiyaku->delete($kiyaku_id); 
    113                 break; 
    114  
    115             // 編集前処理 
    116             case 'pre_edit': 
    117                 // 編集項目を取得する。 
    118                 $arrKiyakuData = $objKiyaku->get($kiyaku_id); 
    119                 $objFormParam->setParam($arrKiyakuData); 
    120  
    121                 // 編集中の規約IDを渡す 
    122                 $this->tpl_kiyaku_id = $kiyaku_id; 
    123                 break; 
    124  
    125             case 'down': 
    126                 $objKiyaku->rankDown($kiyaku_id); 
     113                $objDb->sfDeleteRankRecord('dtb_kiyaku', 'kiyaku_id', $this->kiyaku_id, '', true); 
    127114 
    128115                // 再表示 
    129116                $this->objDisplay->reload(); 
    130117                break; 
    131  
    132             case 'up': 
    133                 $objKiyaku->rankUp($kiyaku_id); 
     118            case 'down': 
     119                $objDb->sfRankDown('dtb_kiyaku', 'kiyaku_id', $this->kiyaku_id); 
    134120 
    135121                // 再表示 
    136122                $this->objDisplay->reload(); 
    137123                break; 
    138  
     124            case 'up': 
     125                $objDb->sfRankUp('dtb_kiyaku', 'kiyaku_id', $this->kiyaku_id); 
     126 
     127                // 再表示 
     128                $this->objDisplay->reload(); 
     129                break; 
    139130            default: 
     131                if (isset($_GET['msg']) && $_GET['msg'] == 'on') { 
     132                    // 完了メッセージ 
     133                    $this->tpl_onload = "alert('登録が完了しました。');"; 
     134                } 
    140135                break; 
    141136        } 
     
    143138        $this->arrForm = $objFormParam->getFormParamList(); 
    144139 
    145         // 規約一覧を取得 
    146         $this->arrKiyaku = $objKiyaku->getList(); 
    147 } 
     140        if (!$is_error) { 
     141            // 規約一覧を取得 
     142            $this->arrKiyaku = $this->lfGetKiyakuList(); 
     143            // kiyaku_id が指定されている場合には規約データの取得 
     144            if (!SC_Utils_Ex::isBlank($this->kiyaku_id)) { 
     145                // 編集項目を取得する。 
     146                $arrKiyakuData = $this->lfGetKiyakuDataByKiyakuID($this->kiyaku_id); 
     147 
     148                // 入力項目にカテゴリ名を入力する。 
     149                $this->arrForm['kiyaku_title'] = $arrKiyakuData[0]['kiyaku_title']; 
     150                $this->arrForm['kiyaku_text'] = $arrKiyakuData[0]['kiyaku_text']; 
     151                // POSTデータを引き継ぐ 
     152                $this->tpl_kiyaku_id = $this->kiyaku_id; 
     153            } 
     154        } else { 
     155            // 画面にエラー表示しないため, ログ出力 
     156            GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true)); 
     157        } 
     158    } 
    148159 
    149160    /** 
     
    152163     * @return void 
    153164     */ 
    154     function destroy() 
    155     { 
     165    function destroy() { 
    156166        parent::destroy(); 
    157167    } 
    158168 
    159     /** 
    160      * 登録処理を実行. 
    161      *  
    162      * @param integer $kiyaku_id 
    163      * @param array $sqlval 
    164      * @param object $objKiyaku 
    165      * @return multiple 
    166      */ 
    167     function doRegist($kiyaku_id, $sqlval, SC_Helper_Kiyaku_Ex &$objKiyaku) 
    168     { 
    169         $sqlval['kiyaku_id'] = $kiyaku_id; 
    170         $sqlval['creator_id'] = $_SESSION['member_id']; 
    171         return $objKiyaku->save($sqlval); 
    172     } 
    173  
    174     function lfInitParam($mode, &$objFormParam) 
    175     { 
     169    /* DBへの挿入 */ 
     170    function lfInsertClass($arrData, $member_id) { 
     171        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     172        // INSERTする値を作成する。 
     173        $sqlval = array(); 
     174        $sqlval['kiyaku_title'] = $arrData['kiyaku_title']; 
     175        $sqlval['kiyaku_text'] = $arrData['kiyaku_text']; 
     176        $sqlval['creator_id'] = $member_id; 
     177        $sqlval['rank'] = $objQuery->max('rank', 'dtb_kiyaku') + 1; 
     178        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
     179        $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 
     180        // INSERTの実行 
     181        $sqlval['kiyaku_id'] = $objQuery->nextVal('dtb_kiyaku_kiyaku_id'); 
     182        $ret = $objQuery->insert('dtb_kiyaku', $sqlval); 
     183        return ($ret) ? $sqlval['kiyaku_id'] : FALSE; 
     184    } 
     185 
     186    function lfGetKiyakuDataByKiyakuID($kiyaku_id) { 
     187        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     188 
     189        $where = 'kiyaku_id = ?'; 
     190        return $objQuery->select('kiyaku_text, kiyaku_title', 'dtb_kiyaku', $where, array($kiyaku_id)); 
     191    } 
     192 
     193    function lfGetKiyakuList() { 
     194        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     195 
     196        $where = 'del_flg <> 1'; 
     197        $objQuery->setOrder('rank DESC'); 
     198        return $objQuery->select('kiyaku_title, kiyaku_text, kiyaku_id', 'dtb_kiyaku', $where); 
     199    } 
     200 
     201    /* DBへの更新 */ 
     202    function lfUpdateClass($arrData, $kiyaku_id) { 
     203        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     204        // UPDATEする値を作成する。 
     205        $sqlval['kiyaku_title'] = $arrData['kiyaku_title']; 
     206        $sqlval['kiyaku_text'] = $arrData['kiyaku_text']; 
     207        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
     208        $where = 'kiyaku_id = ?'; 
     209        // UPDATEの実行 
     210        $ret = $objQuery->update('dtb_kiyaku', $sqlval, $where, array($kiyaku_id)); 
     211        return ($ret) ? $kiyaku_id : FALSE; 
     212    } 
     213 
     214    function lfInitParam($mode, &$objFormParam) { 
    176215        switch ($mode) { 
    177216            case 'confirm': 
    178             case 'pre_edit': 
    179217                $objFormParam->addParam('規約タイトル', 'kiyaku_title', SMTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
    180218                $objFormParam->addParam('規約内容', 'kiyaku_text', MLTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); 
    181                 $objFormParam->addParam('規約ID', 'kiyaku_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    182                 break; 
    183219            case 'delete': 
     220            case 'pre_edit': 
    184221            case 'down': 
    185222            case 'up': 
     
    194231     * 
    195232     * @param string $mode 
    196      * @param object $objKiyaku 
    197233     * @return array 
    198234     */ 
    199     function lfCheckError($objFormParam, SC_Helper_Kiyaku_Ex &$objKiyaku) 
    200     { 
     235    function lfCheckError($mode, $objFormParam) { 
    201236        $arrErr = $objFormParam->checkError(); 
    202         $arrForm = $objFormParam->getHashArray(); 
    203  
    204         $isTitleExist = $objKiyaku->isTitleExist($arrForm['kiyaku_title'], $arrForm['kiyaku_id']); 
    205         // 編集中のレコード以外に同じ名称が存在する場合 
    206         if ($isTitleExist) { 
    207             $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />'; 
     237        if (!isset($arrErr['name']) && $mode == 'confirm') { 
     238            $post = $objFormParam->getHashArray(); 
     239            $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     240            $arrRet = $objQuery->select('kiyaku_id, kiyaku_title', 'dtb_kiyaku', 'del_flg = 0 AND kiyaku_title = ?', array($post['kiyaku_title'])); 
     241            // 編集中のレコード以外に同じ名称が存在する場合 
     242            if ($arrRet[0]['kiyaku_id'] != $post['kiyaku_id'] && $arrRet[0]['kiyaku_title'] == $post['kiyaku_title']) { 
     243                $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br>'; 
     244            } 
    208245        } 
    209246        return $arrErr; 
Note: See TracChangeset for help on using the changeset viewer.