Index: /branches/camp/camp-2_13-tax/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tax.php
===================================================================
--- /branches/camp/camp-2_13-tax/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tax.php	(revision 22624)
+++ /branches/camp/camp-2_13-tax/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tax.php	(revision 22642)
@@ -60,8 +60,8 @@
         $this->arrTAXCALCRULE = $masterData->getMasterData('mtb_taxrule');
 
-        //配信時刻の項目値設定
+        //適用時刻の項目値設定
         $this->objDate = new SC_Date();
-        // 配信時間の年を、「現在年~現在年＋１」の範囲に設定
-        for ($year=date("Y"); $year<=date("Y") + 1;$year++){
+        //適用時間の年を、「現在年~現在年＋2」の範囲に設定
+        for ($year=date("Y"); $year<=date("Y") + 2;$year++){
             $arrYear[$year] = $year;
         }
@@ -94,4 +94,82 @@
     {
 
+        $objTaxRule = new SC_Helper_TaxRule_Ex();
+        $objFormParam = new SC_FormParam_Ex();
+
+        // パラメーター情報の初期化
+        $this->lfInitParam($objFormParam);
+
+        // POST値をセット
+        $objFormParam->setParam($_POST);
+
+        // POST値の入力文字変換
+        $objFormParam->convParam();
+
+        //tax_rule_idを変数にセット
+        $tax_rule_id = $objFormParam->getValue('tax_rule_id');
+
+        // モードによる処理切り替え
+        switch ($this->getMode()) {
+
+            // 編集処理
+            case 'edit':
+                // エラーチェック
+                $this->arrErr = $this->lfCheckError($objFormParam, $objTaxRule);
+                if (!SC_Utils_Ex::isBlank($this->arrErr['tax_rule_id'])) {
+                    trigger_error('', E_USER_ERROR);
+                    return;
+                }
+
+                if (count($this->arrErr) <= 0) {
+                    // POST値の引き継ぎ
+                    $arrParam = $objFormParam->getHashArray();
+                    // 登録実行
+                    $res_tax_rule_id = $this->doRegist($tax_rule_id, $arrParam, $objTaxRule);
+                    if ($res_tax_rule_id !== FALSE) {
+                        // 完了メッセージ
+                        $this->tpl_onload = "alert('登録が完了しました。');";
+                        // リロード
+                        SC_Response_Ex::reload();
+                    }
+                }
+
+                break;
+
+            // 編集前処理
+            case 'pre_edit':
+                $TaxRule = $objTaxRule->getTaxRuleData($tax_rule_id);
+
+                $tmp = explode(" ", $TaxRule['apply_date']);
+                $tmp_ymd = explode("-", $tmp[0]);
+                $TaxRule['apply_date_year'] = $tmp_ymd[0];
+                $TaxRule['apply_date_month'] = $tmp_ymd[1];
+                $TaxRule['apply_date_day'] = $tmp_ymd[2];
+                $tmp_hm = explode(":", $tmp[1]);
+                $TaxRule['apply_date_hour'] = $tmp_hm[0];
+                $TaxRule['apply_date_minutes'] = $tmp_hm[1];
+
+                $objFormParam->setParam($TaxRule);
+
+                // POSTデータを引き継ぐ
+                $this->tpl_tax_rule_id = $tax_rule_id;
+                break;
+
+            // 削除
+            case 'delete':
+                $objTaxRule->deleteTaxRuleData($tax_rule_id);
+
+                // リロード
+                SC_Response_Ex::reload();
+                break;
+
+            default:
+                break;
+        }
+
+        $this->arrForm = $objFormParam->getFormParamList();
+
+        // 税規約情報読み込み
+        $this->arrTaxrule = $objTaxRule->getTaxRuleList();
+
     }
 
@@ -105,3 +183,77 @@
         parent::destroy();
     }
+
+    /**
+     * パラメーター情報の初期化を行う.
+     *
+     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+     * @return void
+     */
+    function lfInitParam(&$objFormParam)
+    {
+        $objFormParam->addParam('税規約ID', 'tax_rule_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+        $objFormParam->addParam('消費税率', 'tax_rate', PERCENTAGE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
+        $objFormParam->addParam('課税規則 ', 'calc_rule', PERCENTAGE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
+        // 適用日時
+        $objFormParam->addParam('適用年', 'apply_date_year', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
+        $objFormParam->addParam('適用月', 'apply_date_month', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
+        $objFormParam->addParam('適用日', 'apply_date_day', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
+        $objFormParam->addParam('適用時', 'apply_date_hour', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
+        $objFormParam->addParam('適用分', 'apply_date_minutes', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'));
+        $objFormParam->addParam('適用日時', 'apply_date_year', 'apply_date_month', 'apply_date_day', INT_LEN, 'n', array("CHECK_DATE"));
+
+    }
+
+    /**
+     * 登録処理を実行.
+     *
+     * @param integer $tax_rule_id
+     * @param array $sqlval
+     * @param object $objTaxRule
+     * @return multiple
+     */
+    function doRegist($tax_rule_id, $sqlval, SC_Helper_TaxRule_Ex $objTaxRule)
+    {
+        $sqlval['tax_rule_id'] = $tax_rule_id;
+        $sqlval['member_id'] = $_SESSION['member_id'];
+        return $objTaxRule->registerTaxRuleData($sqlval);
+    }
+
+    /**
+     * 入力エラーチェック.
+     *
+     * @return array $objErr->arrErr エラー内容
+     */
+    function lfCheckError(&$objFormParam, SC_Helper_TaxRule_Ex &$objTaxRule)
+    {
+
+        $arrErr = $objFormParam->checkError();
+        $arrForm = $objFormParam->getHashArray();
+
+        // tax_rule_id の正当性チェック
+        if (!empty($arrForm['tax_rule_id'])) {
+            if (!SC_Utils_Ex::sfIsInt($arrForm['tax_rule_id'])
+                || SC_Utils_Ex::sfIsZeroFilling($arrForm['tax_rule_id'])
+                || !$objTaxRule->getTaxRuleData($arrForm['tax_rule_id'])
+            ) {
+                // tax_rule_idが指定されていて、且つその値が不正と思われる場合はエラー
+                $arrErr['tax_rule_id'] = '※ 税規約IDが不正です<br />';
+            }
+        }
+
+        $apply_date = SC_Utils_Ex::sfGetTimestampistime($arrForm['apply_date_year'], sprintf("%02d",$arrForm['apply_date_month']), sprintf("%02d",$arrForm['apply_date_day']),sprintf("%02d",$arrForm['apply_date_hour']), sprintf("%02d",$arrForm['apply_date_minutes']));
+var_dump($apply_date);
+        // 税規約情報読み込み
+        $arrTaxRuleByTime = $objTaxRule->getTaxRuleByTime($apply_date);
+        // 編集中のレコード以外に同じ消費税率、課税規則が存在する場合
+            if (
+                !SC_Utils_Ex::isBlank($arrTaxRuleByTime)
+                && $arrTaxRuleByTime['tax_rule_id'] != $arrForm['tax_rule_id']
+                && $arrTaxRuleByTime['apply_date'] == $apply_date
+            ) {
+                $arrErr['apply_date'] = '※ 既に同じ適用日時で登録が存在します。<br />';
+            }
+
+        return $arrErr;
+    }
 }
Index: /branches/camp/camp-2_13-tax/data/Smarty/templates/admin/basis/tax.tpl
===================================================================
--- /branches/camp/camp-2_13-tax/data/Smarty/templates/admin/basis/tax.tpl	(revision 22624)
+++ /branches/camp/camp-2_13-tax/data/Smarty/templates/admin/basis/tax.tpl	(revision 22642)
@@ -5,5 +5,6 @@
 <form name="form1" id="form1" method="post" action="?">
 <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
-<input type="hidden" name="mode" value="confirm" />
+<input type="hidden" name="mode" value="edit" />
+<input type="hidden" name="tax_rule_id" value="<!--{$tpl_tax_rule_id}-->" />
 <!--{* ▼登録テーブルここから *}-->
 <div id="basis" class="contents-main">
@@ -11,4 +12,61 @@
 <h2>税金管理</h2>
 
+    <table id="basis-tax-func">
+        <tr>
+            <th>消費税率<span class="attention"> *</span></th>
+            <td>
+                <span class="attention"><!--{$arrErr.tax_rate}--></span>
+                <input type="text" name="tax_rate" value="<!--{$arrForm.tax_rate.value|h}-->" maxlength="<!--{$smarty.const.PERCENTAGE_LEN}-->" size="6" class="box6" style="<!--{if $arrErr.tax_rate != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->" /> ％
+            </td>
+        </tr>
+        <tr>
+            <th>課税規則<span class="attention"> *</span></th>
+            <td>
+                <span class="attention"><!--{$arrErr.calc_rule}--></span>
+                <!--{html_radios name="calc_rule" options=$arrTAXCALCRULE selected=$arrForm.calc_rule.value}-->
+            </td>
+        </tr>
+        <tr>
+            <th>適用日時<span class="attention"> *</span></th>
+            <td><span class="attention"><!--{$arrErr.apply_date}--></span>
+                <!--{assign var=key value="apply_date_year"}-->
+                <span class="attention"><!--{$arrErr[$key]}--></span>
+                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
+                <option value="" selected="selected">------</option>
+                <!--{html_options options=$arrYear selected=$arrForm[$key].value|h}-->
+                </select>年
+                <!--{assign var=key value="apply_date_month"}-->
+                <span class="attention"><!--{$arrErr[$key]}--></span>
+                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
+                <option value="" selected="selected">----</option>
+                <!--{html_options options=$objDate->getMonth() selected=$arrForm[$key].value|h}-->
+                </select>月
+                <!--{assign var=key value="apply_date_day"}-->
+                <span class="attention"><!--{$arrErr[$key]}--></span>
+                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
+                <option value="" selected="selected">----</option>
+                <!--{html_options options=$objDate->getDay() selected=$arrForm[$key].value|h}-->
+                </select>日
+                <!--{assign var=key value="apply_date_hour"}-->
+                <span class="attention"><!--{$arrErr[$key]}--></span>
+                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
+                <option value="" selected="selected">----</option>
+                <!--{html_options options=$objDate->getHour() selected=$arrForm[$key].value|h}-->
+                </select>時
+                <!--{assign var=key value="apply_date_minutes"}-->
+                <span class="attention"><!--{$arrErr[$key]}--></span>
+                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
+                <option value="" selected="selected">----</option>
+                <!--{html_options options=$arrMinutes selected=$arrForm[$key].value|h}-->
+                </select>分
+            </td>
+        </tr>
+    </table>
+
+    <div class="btn-area">
+        <ul>
+            <li><a class="btn-action" href="javascript:;" onclick="fnFormModeSubmit('form1', 'edit', '', ''); return false;"><span class="btn-next">この内容で登録する</span></a></li>
+        </ul>
+    </div>
     <!--{if count($arrTaxrule) > 0}-->
     <table class="list">
@@ -27,83 +85,30 @@
             <th class="delete">削除</th>
         </tr>
-        <!--{section name=cnt loop=$arrTaxrule}-->
+            <!--{section name=cnt loop=$arrTaxrule}-->
         <tr style="background:<!--{if $tpl_tax_rule_id != $arrTaxrule[cnt].tax_rule_id}-->#ffffff<!--{else}--><!--{$smarty.const.SELECT_RGB}--><!--{/if}-->;">
             <!--{assign var=tax_rule_id value=$arrTaxrule[cnt].tax_rule_id}-->
             <td><!--{$tax_rule_id|h}--></td>
-            <td><!--{$arrTaxrule[cnt].name|h}--></td>
+            <td><!--{$arrTaxrule[cnt].tax_rate|h}--></td>
+            <td><!--{assign var=calc_rule value=$arrTaxrule[cnt].calc_rule}-->
+                <!--{$arrTAXCALCRULE[$calc_rule]}--></td>
+            <td><!--{$arrTaxrule[cnt].apply_date|h}--></td>
             <td class="center">
             <!--{if $tpl_tax_rule_id != $arrTaxrule[cnt].tax_rule_id}-->
                 <a href="?" onclick="fnModeSubmit('pre_edit', 'tax_rule_id', <!--{$arrTaxrule[cnt].tax_rule_id}-->); return false;">編集</a>
-            <!--{else}-->
-            編集中
-            <!--{/if}-->
+                <!--{else}-->
+                編集中
+                    <!--{/if}-->
             </td>
             <td class="center">
             <!--{if $arrTaxrule[cnt].tax_rule_id == 0}-->
                 -
-            <!--{else}-->
+                <!--{else}-->
                 <a href="?" onclick="fnModeSubmit('delete', 'tax_rule_id', <!--{$arrTaxrule[cnt].tax_rule_id}-->); return false;">削除</a>
-            <!--{/if}-->
+                    <!--{/if}-->
             </td>
         </tr>
-        <!--{/section}-->
+            <!--{/section}-->
     </table>
     <!--{/if}-->
-    <table id="basis-tax-func">
-        <tr>
-            <th>消費税率<span class="attention"> *</span></th>
-            <td>
-                <span class="attention"><!--{$arrErr.tax_rate}--></span>
-                <input type="text" name="tax_rate" value="<!--{$arrForm.tax_rate|h}-->" maxlength="<!--{$smarty.const.PERCENTAGE_LEN}-->" size="6" class="box6" style="<!--{if $arrErr.tax_rate != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->" /> ％
-            </td>
-        </tr>
-        <tr>
-            <th>課税規則<span class="attention"> *</span></th>
-            <td>
-                <span class="attention"><!--{$arrErr.tax_rule}--></span>
-                <!--{html_radios name="calc_rule" options=$arrTAXCALCRULE selected=$arrForm.calc_rule}-->
-            </td>
-        </tr>
-        <tr>
-            <th>適用日時<span class="attention"> *</span></th>
-            <td><!--{assign var=key value="apply_date_year"}-->
-                <span class="attention"><!--{$arrErr[$key]}--></span>
-                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
-                <option value="" selected="selected">------</option>
-                <!--{html_options options=$arrYear selected=$arrForm[$key]|h}-->
-                </select>年
-                <!--{assign var=key value="apply_date_month"}-->
-                <span class="attention"><!--{$arrErr[$key]}--></span>
-                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
-                <option value="" selected="selected">----</option>
-                <!--{html_options options=$objDate->getMonth() selected=$arrForm[$key]|h}-->
-                </select>月
-                <!--{assign var=key value="apply_date_day"}-->
-                <span class="attention"><!--{$arrErr[$key]}--></span>
-                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
-                <option value="" selected="selected">----</option>
-                <!--{html_options options=$objDate->getDay() selected=$arrForm[$key]|h}-->
-                </select>日
-                <!--{assign var=key value="apply_date_hour"}-->
-                <span class="attention"><!--{$arrErr[$key]}--></span>
-                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
-                <option value="" selected="selected">----</option>
-                <!--{html_options options=$objDate->getHour() selected=$arrForm[$key]|h}-->
-                </select>時
-                <!--{assign var=key value="apply_date_minutes"}-->
-                <span class="attention"><!--{$arrErr[$key]}--></span>
-                <select name="<!--{$key}-->" <!--{if $arrErr[$key] != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> >
-                <option value="" selected="selected">----</option>
-                <!--{html_options options=$arrMinutes selected=$arrForm[$key]|h}-->
-                </select>分
-            </td>
-        </tr>
-    </table>
-
-    <div class="btn-area">
-        <ul>
-            <li><a class="btn-action" href="javascript:;" onclick="fnFormModeSubmit('form1', 'confirm', '', ''); return false;"><span class="btn-next">この内容で登録する</span></a></li>
-        </ul>
-    </div>
 </div>
 
