Changeset 20182
- Timestamp:
- 2011/02/17 19:53:51 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/products/LC_Page_Admin_Products_ClassCategory.php
r20116 r20182 67 67 */ 68 68 function action() { 69 $objQuery = new SC_Query(); 70 $objDb = new SC_Helper_DB_Ex(); 69 $objFormParam = new SC_FormParam(); 71 70 72 71 // 認証可否の判定 73 $objSess = new SC_Session(); 74 SC_Utils_Ex::sfIsSuccess($objSess); 75 76 $get_check = false; 77 78 // 規格IDのチェック 79 if(SC_Utils_Ex::sfIsInt($_GET['class_id'])) { 80 // 規格名の取得 81 $this->tpl_class_name = $objQuery->get("name", "dtb_class", "class_id = ?", array($_GET['class_id'])); 82 if($this->tpl_class_name != "") { 83 // 規格IDの引き継ぎ 84 $this->arrHidden['class_id'] = $_GET['class_id']; 85 $get_check = true; 86 } 87 } 88 89 if(!$get_check) { 90 // 規格登録ページに飛ばす。 91 SC_Response_Ex::sendRedirect(ADMIN_CLASS_REGIST_URLPATH); 92 exit; 93 } 94 95 if (isset($_POST['class_id'])) { 96 if (!SC_Utils_Ex::sfIsInt($_POST['class_id'])) { 97 SC_Utils_Ex::sfDispError(""); 98 } 99 } 100 72 SC_Utils_Ex::sfIsSuccess(new SC_Session()); 73 74 $this->lfInitParam($objFormParam); 75 $objFormParam->setParam($_POST); 76 $objFormParam->setParam($_GET); 77 $objFormParam->convParam(); 78 $class_id = $objFormParam->getValue('class_id'); 79 $classcategory_id = $objFormParam->getValue('classcategory_id'); 80 81 switch($this->getMode()) { 82 // 登録ボタン押下 101 83 // 新規作成 or 編集 102 switch($this->getMode()) {103 // 登録ボタン押下104 84 case 'edit': 105 // POST値の引き継ぎ 106 $this->arrForm = $_POST; 107 // 入力文字の変換 108 $_POST = $this->lfConvertParam($_POST); 109 // エラーチェック 110 $this->arrErr = $this->lfErrorCheck(); 111 if(count($this->arrErr) <= 0) { 112 if($_POST['classcategory_id'] == "") { 113 $this->lfInsertClass(); // DBへの書き込み 85 // パラメータ値の取得 86 $this->arrForm = $objFormParam->getHashArray(); 87 // 入力パラメーターチェック 88 $this->arrErr = $this->lfCheckError($objFormParam); 89 if (SC_Utils_Ex::isBlank($this->arrErr)) { 90 //新規規格追加かどうかを判定する 91 $is_insert = $this->lfCheckInsert($classcategory_id); 92 if($is_insert) { 93 //新規追加 94 $this->lfInsertClass($this->arrForm); 114 95 } else { 115 $this->lfUpdateClass(); // DBへの書き込み 96 //更新 97 $this->lfUpdateClass($this->arrForm); 116 98 } 117 99 // 再表示 118 $this->objDisplay->reload($_GET['class_id']); 119 //sfReload("class_id=" . $_GET['class_id']); 120 } else { 121 // POSTデータを引き継ぐ 122 $this->tpl_classcategory_id = $_POST['classcategory_id']; 100 SC_Response::reload(); 123 101 } 124 102 break; … … 126 104 case 'delete': 127 105 // ランク付きレコードの削除 128 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['class_id']); 129 $objDb->sfDeleteRankRecord("dtb_classcategory", "classcategory_id", $_POST['classcategory_id'], $where, true); 106 $this->lfDeleteClassCat($class_id, $classcategory_id); 130 107 break; 131 108 // 編集前処理 132 109 case 'pre_edit': 133 // 編集項目をDBより取得する。 134 $where = "classcategory_id = ?"; 135 $name = $objQuery->get("name", "dtb_classcategory", $where, array($_POST['classcategory_id'])); 110 // 規格名を取得する。 111 $classcategory_name = $this->lfGetClassCatName($classcategory_id); 136 112 // 入力項目にカテゴリ名を入力する。 137 $this->arrForm['name'] = $name; 138 // POSTデータを引き継ぐ 139 $this->tpl_classcategory_id = $_POST['classcategory_id']; 113 $this->arrForm['name'] = $classcategory_name; 140 114 break; 141 115 case 'down': 142 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['class_id']);143 $ objDb->sfRankDown("dtb_classcategory", "classcategory_id", $_POST['classcategory_id'], $where);116 //並び順を下げる 117 $this->lfDownRank($class_id, $classcategory_id); 144 118 break; 145 119 case 'up': 146 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($_POST['class_id']);147 $ objDb->sfRankUp("dtb_classcategory", "classcategory_id", $_POST['classcategory_id'], $where);120 //並び順を上げる 121 $this->lfUpRank($class_id, $classcategory_id); 148 122 break; 149 123 default: 150 124 break; 151 125 } 152 153 // 規格分類の読込 126 //規格分類名の取得 127 $this->tpl_class_name = $this->lfGetClassName($class_id); 128 //規格分類情報の取得 129 $this->arrClassCat = $this->lfGetClassCat($class_id); 130 // POSTデータを引き継ぐ 131 $this->tpl_classcategory_id = $classcategory_id; 132 } 133 134 /** 135 * デストラクタ. 136 * 137 * @return void 138 */ 139 function destroy() { 140 parent::destroy(); 141 } 142 143 /** 144 * パラメータの初期化を行う. 145 * 146 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 147 * @return void 148 */ 149 function lfInitParam(&$objFormParam) { 150 $objFormParam->addParam("規格ID", "class_id", INT_LEN, "n", array("NUM_CHECK")); 151 $objFormParam->addParam("規格分類名", "name", STEXT_LEN, "KVa", array("EXIST_CHECK" ,"SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 152 $objFormParam->addParam("規格分類ID", "classcategory_id", INT_LEN, "n", array("NUM_CHECK")); 153 } 154 155 /** 156 * 有効な規格分類情報の取得 157 * 158 * @param integer $class_id 規格ID 159 * @return array 規格分類情報 160 */ 161 function lfGetClassCat($class_id) { 162 $objQuery =& SC_Query::getSingletonInstance(); 163 154 164 $where = "del_flg <> 1 AND class_id = ?"; 155 165 $objQuery->setOrder("rank DESC"); 156 $this->arrClassCat = $objQuery->select("name, classcategory_id", "dtb_classcategory", $where, array($_GET['class_id'])); 157 } 158 159 /** 160 * デストラクタ. 161 * 162 * @return void 163 */ 164 function destroy() { 165 parent::destroy(); 166 } 167 168 /* DBへの挿入 */ 169 function lfInsertClass() { 170 $objQuery = new SC_Query(); 166 $arrClassCat = $objQuery->select("name, classcategory_id", "dtb_classcategory", $where, array($class_id)); 167 return $arrClassCat; 168 } 169 170 /** 171 * 規格名の取得 172 * 173 * @param integer $class_id 規格ID 174 * @return string 規格名 175 */ 176 function lfGetClassName($class_id) { 177 $objQuery =& SC_Query::getSingletonInstance(); 178 179 $where = "class_id = ?"; 180 $name = $objQuery->get("name", "dtb_class", $where, array($class_id)); 181 return $name; 182 } 183 /** 184 * 規格分類名を取得する 185 * 186 * @param integer $classcategory_id 規格分類ID 187 * @return string 規格分類名 188 */ 189 function lfGetClassCatName($classcategory_id) { 190 $objQuery =& SC_Query::getSingletonInstance(); 191 $where = "classcategory_id = ?"; 192 $name = $objQuery->get("name", "dtb_classcategory", $where, array($classcategory_id)); 193 return $name; 194 } 195 196 /** 197 * 規格分類情報を新規登録 198 * 199 * @param array $arrForm フォームパラメータークラス 200 * @return integer 更新件数 201 */ 202 function lfInsertClass($arrForm) { 203 $objQuery =& SC_Query::getSingletonInstance(); 171 204 $objQuery->begin(); 172 205 // 親規格IDの存在チェック 173 206 $where = "del_flg <> 1 AND class_id = ?"; 174 $ ret = $objQuery->get("class_id", "dtb_class", $where, array($_POST['class_id']));175 if( $ret != "") {207 $class_id = $objQuery->get("class_id", "dtb_class", $where, array($arrForm['class_id'])); 208 if(!SC_Utils_Ex::isBlank($class_id)) { 176 209 // INSERTする値を作成する。 177 $sqlval['name'] = $ _POST['name'];178 $sqlval['class_id'] = $ _POST['class_id'];210 $sqlval['name'] = $arrForm['name']; 211 $sqlval['class_id'] = $arrForm['class_id']; 179 212 $sqlval['creator_id'] = $_SESSION['member_id']; 180 $sqlval['rank'] = $objQuery->max("rank", "dtb_classcategory", $where, array($ _POST['class_id'])) + 1;213 $sqlval['rank'] = $objQuery->max("rank", "dtb_classcategory", $where, array($arrForm['class_id'])) + 1; 181 214 $sqlval['create_date'] = "now()"; 182 215 $sqlval['update_date'] = "now()"; … … 201 234 } 202 235 203 /* 取得文字列の変換 */ 204 function lfConvertParam($array) { 205 // 文字変換 206 $arrConvList['name'] = "KVa"; 207 208 foreach ($arrConvList as $key => $val) { 209 // POSTされてきた値のみ変換する。 210 if(isset($array[$key])) { 211 $array[$key] = mb_convert_kana($array[$key] ,$val); 212 } 213 } 214 return $array; 215 } 216 217 /* 入力エラーチェック */ 218 function lfErrorCheck() { 219 $objErr = new SC_CheckError(); 220 $objErr->doFunc(array("分類名", "name", STEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK")); 221 if(!isset($objErr->arrErr['name'])) { 222 $objQuery = new SC_Query(); 223 $where = "class_id = ? AND name = ?"; 224 $arrRet = $objQuery->select("classcategory_id, name", "dtb_classcategory", $where, array($_GET['class_id'], $_POST['name'])); 225 // 編集中のレコード以外に同じ名称が存在する場合 226 if ($arrRet[0]['classcategory_id'] != $_POST['classcategory_id'] && $arrRet[0]['name'] == $_POST['name']) { 227 $objErr->arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>"; 228 } 229 } 230 return $objErr->arrErr; 236 /** 237 * エラーチェック 238 * 239 * @param array $objFormParam フォームパラメータークラス 240 * @return array エラー配列 241 */ 242 function lfCheckError(&$objFormParam) { 243 $objQuery =& SC_Query::getSingletonInstance(); 244 $arrForm = $objFormParam->getHashArray(); 245 // パラメーターの基本チェック 246 $arrErr = $objFormParam->checkError(); 247 if (!SC_Utils_Ex::isBlank($arrErr)) { 248 return $arrErr; 249 }else{ 250 $arrForm = $objFormParam->getHashArray(); 251 } 252 253 $where = "class_id = ? AND name = ?"; 254 $arrRet = $objQuery->select("classcategory_id, name", "dtb_classcategory", $where, array($arrForm['class_id'], $arrForm['name'])); 255 // 編集中のレコード以外に同じ名称が存在する場合 256 if ($arrRet[0]['classcategory_id'] != $arrForm['classcategory_id'] && $arrRet[0]['name'] == $arrForm['name']) { 257 $arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>"; 258 } 259 return $arrErr; 260 } 261 262 /** 263 * 新規規格分類追加かどうかを判定する. 264 * 265 * @param integer $classcategory_id 規格分類ID 266 * @return boolean 新規商品追加の場合 true 267 */ 268 function lfCheckInsert($classcategory_id) { 269 //classcategory_id のあるなしで新規規格分類化かどうかを判定 270 if (empty($classcategory_id)){ 271 return true; 272 }else{ 273 return false; 274 } 275 } 276 277 /** 278 * 規格分類情報を削除する 279 * 280 * @param integer $class_id 規格ID 281 * @param integer $classcategory_id 規格分類ID 282 * @return void 283 */ 284 function lfDeleteClassCat($class_id, $classcategory_id) { 285 $objDb = new SC_Helper_DB_Ex(); 286 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($class_id); 287 $objDb->sfDeleteRankRecord("dtb_classcategory", "classcategory_id", $classcategory_id, $where, true); 288 } 289 /** 290 * 並び順を上げる 291 * 292 * @param integer $class_id 規格ID 293 * @param integer $classcategory_id 規格分類ID 294 * @return void 295 */ 296 function lfUpRank($class_id, $classcategory_id) { 297 $objDb = new SC_Helper_DB_Ex(); 298 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($class_id); 299 $objDb->sfRankUp("dtb_classcategory", "classcategory_id", $classcategory_id, $where); 300 } 301 /** 302 * 並び順を下げる 303 * 304 * @param integer $class_id 規格ID 305 * @param integer $classcategory_id 規格分類ID 306 * @return void 307 */ 308 function lfDownRank($class_id, $classcategory_id) { 309 $objDb = new SC_Helper_DB_Ex(); 310 $where = "class_id = " . SC_Utils_Ex::sfQuoteSmart($class_id); 311 $objDb->sfRankDown("dtb_classcategory", "classcategory_id", $classcategory_id, $where); 231 312 } 232 313 }
Note: See TracChangeset
for help on using the changeset viewer.