Index: /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php	(revision 20116)
+++ /branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php	(revision 20330)
@@ -77,27 +77,10 @@
         case "edit":
             // POST 文字列の妥当性チェック
-            $this->checkMasterDataName();
-            $this->errorMessage = $this->checkUniqueID();
+            $this->masterDataName = $this->checkMasterDataName($_POST, $this->arrMasterDataName);
+            $this->errorMessage = $this->checkUniqueID($_POST);
 
             if (empty($this->errorMessage)) {
                 // 取得したデータからマスタデータを生成
-                $arrData = array();
-                foreach ($_POST['id'] as $key => $val) {
-
-                    // ID が空のデータは生成しない
-                    if ($val != "") {
-                        $arrData[$val] = $_POST['name'][$key];
-                    }
-                }
-
-                // マスタデータを更新
-                $masterData->objQuery = new SC_Query();
-                $masterData->objQuery->begin();
-                $masterData->deleteMasterData($this->masterDataName, false);
-                // TODO カラム名はメタデータから取得した方が良い
-                $masterData->registMasterData($this->masterDataName,
-                                              array("id", "name", "rank"),
-                                              $arrData, false);
-                $masterData->objQuery->commit();
+                $this->registMasterData($_POST, $masterData, $this->masterDataName);
                 $this->tpl_onload = "window.alert('マスタデータの設定が完了しました。');";
             }
@@ -105,5 +88,5 @@
         case "show":
             // POST 文字列の妥当性チェック
-            $this->checkMasterDataName();
+            $this->masterDataName = $this->checkMasterDataName($_POST, $this->arrMasterDataName);
 
             // DB からマスタデータを取得
@@ -129,14 +112,17 @@
      *
      * @access private
-     * @return void
-     */
-    function checkMasterDataName() {
-
-        if (in_array($_POST['master_data_name'], $this->arrMasterDataName)) {
-            $this->masterDataName = $_POST['master_data_name'];
-            return true;
+     * @param array $_POST値
+     * @param array $arrMasterDataName  マスターデータテーブル名のリスト
+     * @return string $master_data_name 選択しているマスターデータのテーブル名
+     */
+    function checkMasterDataName(&$arrParams, &$arrMasterDataName) {
+
+        if (in_array($arrParams['master_data_name'], $arrMasterDataName)) {
+            $master_data_name = $arrParams['master_data_name'];
+            return $master_data_name;
         } else {
             SC_Utils_Ex::sfDispeError("");
         }
+
     }
 
@@ -172,7 +158,7 @@
      * @return void|string エラーが発生した場合はエラーメッセージを返す.
      */
-    function checkUniqueID() {
-
-        $arrId = $_POST['id'];
+    function checkUniqueID(&$arrParams) {
+
+        $arrId = $arrParams['id'];
         for ($i = 0; $i < count($arrId); $i++) {
 
@@ -188,4 +174,37 @@
         }
     }
+
+
+    /**
+     * マスターデータの登録.
+     *
+     * @access private{
+     * @param array  $arrParams $_POST値
+     * @param object $masterData SC_DB_MasterData_Ex()
+     * @param string $master_data_name 登録対象のマスターデータのテーブル名
+     * @return void
+     */
+    function registMasterData($arrParams, &$masterData, $master_data_name) {
+
+        $arrTmp = array();
+        foreach ($arrParams['id'] as $key => $val) {
+
+            // ID が空のデータは生成しない
+            if ($val != "") {
+                $arrTmp[$val] = $arrParams['name'][$key];
+            }
+        }
+
+        // マスタデータを更新
+        $masterData->objQuery =& SC_Query::getSingletonInstance();
+        $masterData->objQuery->begin();
+        $masterData->deleteMasterData($master_data_name, false);
+        // TODO カラム名はメタデータから取得した方が良い
+        $masterData->registMasterData($master_data_name,
+                                             array("id", "name", "rank"),
+                                             $arrTmp, false);
+        $masterData->objQuery->commit();
+
+    }
 }
 ?>
