tpl_mainpage = 'basis/tax.tpl'; $this->tpl_subno = 'tax'; $this->tpl_mainno = 'basis'; $this->tpl_maintitle = '基本情報管理'; $this->tpl_subtitle = '税金管理'; $masterData = new SC_DB_MasterData_Ex(); $this->arrPref = $masterData->getMasterData('mtb_pref'); $this->arrTAXCALCRULE = $masterData->getMasterData('mtb_taxrule'); //適用時刻の項目値設定 $this->objDate = new SC_Date(); //適用時間の年を、「現在年~現在年+2」の範囲に設定 for ($year=date("Y"); $year<=date("Y") + 2;$year++){ $arrYear[$year] = $year; } $this->arrYear = $arrYear; for ($minutes=0; $minutes< 60; $minutes++){ $arrMinutes[$minutes] = $minutes; } $this->arrMinutes = $arrMinutes; } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { $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 (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(); } /** * パラメーター情報の初期化を行う. * * @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, $arrParam, SC_Helper_TaxRule_Ex $objTaxRule) { $apply_date = SC_Utils_Ex::sfGetTimestampistime($arrParam['apply_date_year'], sprintf("%02d",$arrParam['apply_date_month']), sprintf("%02d",$arrParam['apply_date_day']),sprintf("%02d",$arrParam['apply_date_hour']), sprintf("%02d",$arrParam['apply_date_minutes'])); $calc_rule = $arrParam['calc_rule']; $tax_rate = $arrParam['tax_rate']; return $objTaxRule->setTaxRule($calc_rule, $tax_rate, $apply_date, $tax_rule_id); } /** * 入力エラーチェック. * * @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']) || !$objTaxRule->getTaxRuleData($arrForm['tax_rule_id']) ) { // tax_rule_idが指定されていて、且つその値が不正と思われる場合はエラー $arrErr['tax_rule_id'] = '※ 税規約IDが不正です
'; } } if ($arrForm['tax_rule_id'] != '0') { $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'])); // 税規約情報読み込み $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'] = '※ 既に同じ適用日時で登録が存在します。
'; } } return $arrErr; } }