Ignore:
Timestamp:
2013/03/09 19:20:19 (8 years ago)
Author:
yomoro
Message:

税率管理ページの作成途中

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/camp/camp-2_13-tax/data/class/pages/admin/basis/LC_Page_Admin_Basis_Tax.php

    r22624 r22642  
    6060        $this->arrTAXCALCRULE = $masterData->getMasterData('mtb_taxrule'); 
    6161 
    62         //配信時刻の項目値設定 
     62        //適用時刻の項目値設定 
    6363        $this->objDate = new SC_Date(); 
    64         // 配信時間の年を、「現在年~現在年+1」の範囲に設定 
    65         for ($year=date("Y"); $year<=date("Y") + 1;$year++){ 
     64        //適用時間の年を、「現在年~現在年+2」の範囲に設定 
     65        for ($year=date("Y"); $year<=date("Y") + 2;$year++){ 
    6666            $arrYear[$year] = $year; 
    6767        } 
     
    9494    { 
    9595 
     96        $objTaxRule = new SC_Helper_TaxRule_Ex(); 
     97        $objFormParam = new SC_FormParam_Ex(); 
     98 
     99        // パラメーター情報の初期化 
     100        $this->lfInitParam($objFormParam); 
     101 
     102        // POST値をセット 
     103        $objFormParam->setParam($_POST); 
     104 
     105        // POST値の入力文字変換 
     106        $objFormParam->convParam(); 
     107 
     108        //tax_rule_idを変数にセット 
     109        $tax_rule_id = $objFormParam->getValue('tax_rule_id'); 
     110 
     111        // モードによる処理切り替え 
     112        switch ($this->getMode()) { 
     113 
     114            // 編集処理 
     115            case 'edit': 
     116                // エラーチェック 
     117                $this->arrErr = $this->lfCheckError($objFormParam, $objTaxRule); 
     118                if (!SC_Utils_Ex::isBlank($this->arrErr['tax_rule_id'])) { 
     119                    trigger_error('', E_USER_ERROR); 
     120                    return; 
     121                } 
     122 
     123                if (count($this->arrErr) <= 0) { 
     124                    // POST値の引き継ぎ 
     125                    $arrParam = $objFormParam->getHashArray(); 
     126                    // 登録実行 
     127                    $res_tax_rule_id = $this->doRegist($tax_rule_id, $arrParam, $objTaxRule); 
     128                    if ($res_tax_rule_id !== FALSE) { 
     129                        // 完了メッセージ 
     130                        $this->tpl_onload = "alert('登録が完了しました。');"; 
     131                        // リロード 
     132                        SC_Response_Ex::reload(); 
     133                    } 
     134                } 
     135 
     136                break; 
     137 
     138            // 編集前処理 
     139            case 'pre_edit': 
     140                $TaxRule = $objTaxRule->getTaxRuleData($tax_rule_id); 
     141 
     142                $tmp = explode(" ", $TaxRule['apply_date']); 
     143                $tmp_ymd = explode("-", $tmp[0]); 
     144                $TaxRule['apply_date_year'] = $tmp_ymd[0]; 
     145                $TaxRule['apply_date_month'] = $tmp_ymd[1]; 
     146                $TaxRule['apply_date_day'] = $tmp_ymd[2]; 
     147                $tmp_hm = explode(":", $tmp[1]); 
     148                $TaxRule['apply_date_hour'] = $tmp_hm[0]; 
     149                $TaxRule['apply_date_minutes'] = $tmp_hm[1]; 
     150 
     151                $objFormParam->setParam($TaxRule); 
     152 
     153                // POSTデータを引き継ぐ 
     154                $this->tpl_tax_rule_id = $tax_rule_id; 
     155                break; 
     156 
     157            // 削除 
     158            case 'delete': 
     159                $objTaxRule->deleteTaxRuleData($tax_rule_id); 
     160 
     161                // リロード 
     162                SC_Response_Ex::reload(); 
     163                break; 
     164 
     165            default: 
     166                break; 
     167        } 
     168 
     169        $this->arrForm = $objFormParam->getFormParamList(); 
     170 
     171        // 税規約情報読み込み 
     172        $this->arrTaxrule = $objTaxRule->getTaxRuleList(); 
     173 
    96174    } 
    97175 
     
    105183        parent::destroy(); 
    106184    } 
     185 
     186    /** 
     187     * パラメーター情報の初期化を行う. 
     188     * 
     189     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     190     * @return void 
     191     */ 
     192    function lfInitParam(&$objFormParam) 
     193    { 
     194        $objFormParam->addParam('税規約ID', 'tax_rule_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     195        $objFormParam->addParam('消費税率', 'tax_rate', PERCENTAGE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     196        $objFormParam->addParam('課税規則 ', 'calc_rule', PERCENTAGE_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     197        // 適用日時 
     198        $objFormParam->addParam('適用年', 'apply_date_year', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
     199        $objFormParam->addParam('適用月', 'apply_date_month', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
     200        $objFormParam->addParam('適用日', 'apply_date_day', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
     201        $objFormParam->addParam('適用時', 'apply_date_hour', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
     202        $objFormParam->addParam('適用分', 'apply_date_minutes', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 
     203        $objFormParam->addParam('適用日時', 'apply_date_year', 'apply_date_month', 'apply_date_day', INT_LEN, 'n', array("CHECK_DATE")); 
     204 
     205    } 
     206 
     207    /** 
     208     * 登録処理を実行. 
     209     * 
     210     * @param integer $tax_rule_id 
     211     * @param array $sqlval 
     212     * @param object $objTaxRule 
     213     * @return multiple 
     214     */ 
     215    function doRegist($tax_rule_id, $sqlval, SC_Helper_TaxRule_Ex $objTaxRule) 
     216    { 
     217        $sqlval['tax_rule_id'] = $tax_rule_id; 
     218        $sqlval['member_id'] = $_SESSION['member_id']; 
     219        return $objTaxRule->registerTaxRuleData($sqlval); 
     220    } 
     221 
     222    /** 
     223     * 入力エラーチェック. 
     224     * 
     225     * @return array $objErr->arrErr エラー内容 
     226     */ 
     227    function lfCheckError(&$objFormParam, SC_Helper_TaxRule_Ex &$objTaxRule) 
     228    { 
     229 
     230        $arrErr = $objFormParam->checkError(); 
     231        $arrForm = $objFormParam->getHashArray(); 
     232 
     233        // tax_rule_id の正当性チェック 
     234        if (!empty($arrForm['tax_rule_id'])) { 
     235            if (!SC_Utils_Ex::sfIsInt($arrForm['tax_rule_id']) 
     236                || SC_Utils_Ex::sfIsZeroFilling($arrForm['tax_rule_id']) 
     237                || !$objTaxRule->getTaxRuleData($arrForm['tax_rule_id']) 
     238            ) { 
     239                // tax_rule_idが指定されていて、且つその値が不正と思われる場合はエラー 
     240                $arrErr['tax_rule_id'] = '※ 税規約IDが不正です<br />'; 
     241            } 
     242        } 
     243 
     244        $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'])); 
     245var_dump($apply_date); 
     246        // 税規約情報読み込み 
     247        $arrTaxRuleByTime = $objTaxRule->getTaxRuleByTime($apply_date); 
     248        // 編集中のレコード以外に同じ消費税率、課税規則が存在する場合 
     249            if ( 
     250                !SC_Utils_Ex::isBlank($arrTaxRuleByTime) 
     251                && $arrTaxRuleByTime['tax_rule_id'] != $arrForm['tax_rule_id'] 
     252                && $arrTaxRuleByTime['apply_date'] == $apply_date 
     253            ) { 
     254                $arrErr['apply_date'] = '※ 既に同じ適用日時で登録が存在します。<br />'; 
     255            } 
     256 
     257        return $arrErr; 
     258    } 
    107259} 
Note: See TracChangeset for help on using the changeset viewer.