/**
  * 入力内容のチェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 public function lfCheckError(&$objFormParam)
 {
     $CHECK_DATE = array("CHECK_DATE");
     $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
     $objErr->arrErr = parent::lfCheckError($objFormParam);
     $objErr->doFunc(array('受注', 'search_year', 'search_month', 'search_day'), $CHECK_DATE);
     return $objErr->arrErr;
 }
Beispiel #2
0
switch ($_POST['mode']) {
    // 登録
    case 'regist':
        // 入力値の変換
        $objFormParam->convParam();
        $objPage->arrErr = lfCheckError($arrRet);
        // 入力エラーなしの場合
        if (count($objPage->arrErr) == 0) {
            // カート集計処理
            $objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
            // 一時受注テーブルの読込
            $arrData = sfGetOrderTemp($uniqid);
            // カート集計を元に最終計算
            $arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
            // カードの認証を行う
            $arrVal = $objFormParam->getHashArray();
            $card_no = $arrVal['card_no01'] . $arrVal['card_no02'] . $arrVal['card_no03'] . $arrVal['card_no04'];
            $card_exp = $arrVal['card_month'] . "/" . $arrVal['card_year'];
            // MM/DD
            $result = sfGetAuthonlyResult(CGI_DIR, CGI_FILE, $arrVal['name01'], $arrVal['name02'], $card_no, $card_exp, $arrData['payment_total'], $uniqid, $arrVal['jpo_info']);
            // 応答内容の記録
            $sqlval['credit_result'] = $result['action-code'];
            $sqlval['credit_msg'] = $result['aux-msg'] . $result['MErrMsg'];
            $objQuery = new SC_Query();
            $objQuery->update("dtb_order_temp", $sqlval, "order_temp_id = ?", array($uniqid));
            // 与信処理成功の場合
            if ($result['action-code'] == '000') {
                // 正常に登録されたことを記録しておく
                $objSiteSess->setRegistFlag();
                // 処理完了ページへ
                header("Location: " . URL_SHOP_COMPLETE);
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function lfCheckError(&$objFormParam)
 {
     $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
     $objErr->arrErr = $objFormParam->checkError();
     $objErr->doFunc(array('開始日', '終了日', 'search_startyear', 'search_startmonth', 'search_startday', 'search_endyear', 'search_endmonth', 'search_endday'), array('CHECK_SET_TERM'));
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラーメッセージの配列
  */
 function lfCheckError(&$objFormParam)
 {
     $arrErr = $objFormParam->checkError();
     $arrForm = $objFormParam->getHashArray();
     // 重複メッセージの判定
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $exists = $objQuery->exists('dtb_review', 'product_id = ? AND title = ? ', array($arrForm['product_id'], $arrForm['title']));
     if ($exists) {
         $arrErr['title'] .= '重複したタイトルは登録できません。';
     }
     if (REVIEW_ALLOW_URL == false) {
         $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
         // コメント欄へのURLの入力を禁止
         $objErr->doFunc(array('URL', 'comment', $this->arrReviewDenyURL), array('PROHIBITED_STR_CHECK'));
         $arrErr += $objErr->arrErr;
     }
     return $arrErr;
 }
 /**
  * エラーチェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラーメッセージの配列
  */
 public function lfCheckError(&$objFormParam, &$arrErr)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr =& $arrErr;
     $objErr->doFunc(array('CSSファイル名', 'css_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'FILE_NAME_CHECK_BY_NOUPLOAD'));
     $css_name = $objFormParam->getValue('css_name');
     $old_css_name = $objFormParam->getValue('old_css_name');
     $device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC);
     $is_error = false;
     // 重複チェック
     if (SC_Utils_Ex::isBlank($objErr->arrErr['css_name'])) {
         $arrCSSList = $this->getCSSList($this->getCSSDir($device_type_id));
         foreach ($arrCSSList as $val) {
             if ($val['css_name'] == $css_name) {
                 if (SC_Utils_Ex::isBlank($old_css_name) || $old_css_name != $css_name) {
                     $is_error = true;
                 }
             }
         }
         if ($is_error) {
             $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />';
         }
     }
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行なう.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array 入力チェック結果の配列
  */
 function lfCheckError(&$objFormParam)
 {
     // 入力データを渡す。
     $arrForm = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrForm);
     $objErr->arrErr = $objFormParam->checkError();
     $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', 'email02'), array('EQUAL_CHECK'));
     return $objErr->arrErr;
 }
 /**
  * 編集対象のカテゴリ名を, 入力ボックスへ表示する.
  *
  * @param SC_FormParam $objFormParam
  * @return void
  */
 function doPreEdit(&$objFormParam)
 {
     $category_id = $objFormParam->getValue('category_id');
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     // 編集対象のカテゴリ名をDBより取得する
     $where = 'category_id = ?';
     $arrRes = $objQuery->getRow('*', 'dtb_category', $where, array($category_id));
     $objFormParam->setParam($arrRes);
     $this->arrForm = $objFormParam->getHashArray();
 }
 /**
  * エラーチェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラーメッセージの配列
  */
 public function lfCheckError(&$objFormParam, &$arrErr)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr =& $arrErr;
     $objErr->doFunc(array('division', 'division', STEXT_LEN), array('EXIST_CHECK'));
     return $objErr->arrErr;
 }
 /**
  * エラーチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラーメッセージの配列
  */
 function lfCheckError(&$objFormParam, &$arrErr)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr =& $arrErr;
     $objErr->doFunc(array(t('c_Name_03'), 'page_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
     $objErr->doFunc(array(t('c_URL_01'), 'filename', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
     /*
      * URL チェック
      * ここでチェックするのは, パスのみなので SC_CheckError::URL_CHECK()
      * は使用しない
      */
     $valid_url = true;
     foreach (explode('/', $arrParams['filename']) as $val) {
         if (!preg_match('/^[a-zA-Z0-9:_~\\.\\-]+$/', $val)) {
             $valid_url = false;
         }
         if ($val == '.' || $val == '..') {
             $valid_url = false;
         }
     }
     if (!$valid_url) {
         $objErr->arrErr['filename'] = t('c_* Enter the URL again.<br />_01');
     }
     // 同一URLの存在チェック
     $where = 'page_id <> 0 AND device_type_id = ? AND filename = ?';
     $arrValues = array($arrParams['device_type_id'], USER_DIR . $arrParams['filename']);
     // 変更の場合は自 URL を除外
     if (!SC_Utils_Ex::isBlank($arrParams['page_id'])) {
         $where .= ' AND page_id <> ?';
         $arrValues[] = $arrParams['page_id'];
     }
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $exists = $objQuery->exists('dtb_pagelayout', $where, $arrValues);
     if ($exists) {
         $objErr->arrErr['filename'] = t('c_* Data for the same URL exists. Enter a different URL.<br />_01');
     }
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function lfCheckError(&$objFormParam)
 {
     $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
     $objErr->arrErr = $objFormParam->checkError();
     // 相関チェック
     $objErr->doFunc(array('注文番号1', '注文番号2', 'search_order_id1', 'search_order_id2'), array('GREATER_CHECK'));
     $objErr->doFunc(array('年齢1', '年齢2', 'search_age1', 'search_age2'), array('GREATER_CHECK'));
     $objErr->doFunc(array('購入金額1', '購入金額2', 'search_total1', 'search_total2'), array('GREATER_CHECK'));
     // 受注日
     $objErr->doFunc(array('開始', 'search_sorderyear', 'search_sordermonth', 'search_sorderday'), array('CHECK_DATE'));
     $objErr->doFunc(array('終了', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_DATE'));
     $objErr->doFunc(array('開始', '終了', 'search_sorderyear', 'search_sordermonth', 'search_sorderday', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_SET_TERM'));
     // 更新日
     $objErr->doFunc(array('開始', 'search_supdateyear', 'search_supdatemonth', 'search_supdateday'), array('CHECK_DATE'));
     $objErr->doFunc(array('終了', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_DATE'));
     $objErr->doFunc(array('開始', '終了', 'search_supdateyear', 'search_supdatemonth', 'search_supdateday', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_SET_TERM'));
     // 生年月日
     $objErr->doFunc(array('開始', 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday'), array('CHECK_DATE'));
     $objErr->doFunc(array('終了', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_DATE'));
     $objErr->doFunc(array('開始', '終了', 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_SET_TERM'));
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行なう.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @param integer $subtotal 購入金額の小計
  * @param integer $max_point 会員の保持ポイント
  * @return array 入力チェック結果の配列
  */
 function lfCheckError(&$objFormParam, $subtotal, $max_point)
 {
     $objPurchase = new SC_Helper_Purchase_Ex();
     // 入力データを渡す。
     $arrForm = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrForm);
     $objErr->arrErr = $objFormParam->checkError();
     if (USE_POINT === false) {
         return $objErr->arrErr;
     }
     if ($arrForm['point_check'] == '1') {
         $objErr->doFunc(array(t('c_Use points_01'), 'point_check'), array('EXIST_CHECK'));
         $objErr->doFunc(array(t('c_Points_01'), 'use_point'), array('EXIST_CHECK'));
         if ($max_point == '') {
             $max_point = 0;
         }
         // FIXME mobile 互換のため br は閉じない...
         if ($arrForm['use_point'] > $max_point) {
             $objErr->arrErr['use_point'] = t('c_* The number of points you want to use exceeds the number of points you have.<br />_01');
         }
         if ($arrForm['use_point'] * POINT_VALUE > $subtotal) {
             $objErr->arrErr['use_point'] = t('c_* The number of points you want to use exceeds the amount of your purchase.<br />_01');
         }
         // ポイント差し引き後の決済方法チェック
         $arrPayments = $objPurchase->getPaymentsByPaymentsId($arrForm['payment_id']);
         if ($arrPayments['rule_max'] > $subtotal - $arrForm['use_point'] * POINT_VALUE) {
             $objErr->arrErr['use_point'] = t('c_* Based on the selected payment method, it is possible to use (T_ARG1 - T_ARG2) points.<br />_01', array('T_ARG1' => $subtotal, 'T_ARG2' => $arrPayments['rule_max']));
         }
     }
     return $objErr->arrErr;
 }
 /**
  * エラーチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラーメッセージの配列
  */
 function lfCheckError(&$objFormParam, &$arrErr, &$objLayout)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr =& $arrErr;
     $objErr->doFunc(array("ブロック名", "bloc_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
     $objErr->doFunc(array('ファイル名', 'filename', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK", "FILE_NAME_CHECK_BY_NOUPLOAD"));
     $where = 'filename = ?';
     $arrValues = array($arrParams['filename']);
     // 変更の場合は自ブロックを除外
     if (!SC_Utils_Ex::isBlank($arrParams['bloc_id'])) {
         $where .= ' AND bloc_id <> ?';
         $arrValues[] = $arrParams['bloc_id'];
     }
     $arrBloc = $objLayout->getBlocs($arrParams['device_type_id'], $where, $arrValues);
     if (!SC_Utils_Ex::isBlank($arrBloc)) {
         $objErr->arrErr['filename'] = '※ 同じファイル名のデータが存在しています。別のファイル名を入力してください。<br />';
     }
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラー情報の配
  */
 function lfCheckError(&$objFormParam)
 {
     // 入力値の変換
     $objFormParam->convParam();
     $objFormParam->toLower('order_mail');
     $objFormParam->toLower('order_mail_check');
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr = $objFormParam->checkError();
     // 別のお届け先チェック
     if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == '1') {
         $objErr->doFunc(array('お名前(姓)', 'shipping_name01'), array('EXIST_CHECK'));
         $objErr->doFunc(array('お名前(名)', 'shipping_name02'), array('EXIST_CHECK'));
         $objErr->doFunc(array('お名前(フリガナ・姓)', 'shipping_kana01'), array('EXIST_CHECK'));
         $objErr->doFunc(array('お名前(フリガナ・名)', 'shipping_kana02'), array('EXIST_CHECK'));
         $objErr->doFunc(array('郵便番号1', 'shipping_zip01'), array('EXIST_CHECK'));
         $objErr->doFunc(array('郵便番号2', 'shipping_zip02'), array('EXIST_CHECK'));
         $objErr->doFunc(array('都道府県', 'shipping_pref'), array('EXIST_CHECK'));
         $objErr->doFunc(array('住所1', 'shipping_addr01'), array('EXIST_CHECK'));
         $objErr->doFunc(array('住所2', 'shipping_addr02'), array('EXIST_CHECK'));
         $objErr->doFunc(array('電話番号1', 'shipping_tel01'), array('EXIST_CHECK'));
         $objErr->doFunc(array('電話番号2', 'shipping_tel02'), array('EXIST_CHECK'));
         $objErr->doFunc(array('電話番号3', 'shipping_tel03'), array('EXIST_CHECK'));
     }
     // 複数項目チェック
     $objErr->doFunc(array('TEL', 'order_tel01', 'order_tel02', 'order_tel03'), array('TEL_CHECK'));
     $objErr->doFunc(array('FAX', 'order_fax01', 'order_fax02', 'order_fax03'), array('TEL_CHECK'));
     $objErr->doFunc(array('郵便番号', 'order_zip01', 'order_zip02'), array('ALL_EXIST_CHECK'));
     $objErr->doFunc(array('TEL', 'shipping_tel01', 'shipping_tel02', 'shipping_tel03'), array('TEL_CHECK'));
     $objErr->doFunc(array('郵便番号', 'shipping_zip01', 'shipping_zip02'), array('ALL_EXIST_CHECK'));
     $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY'));
     $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'order_email', 'order_email02'), array('EQUAL_CHECK'));
     return $objErr->arrErr;
 }
 /**
  * CSVアップロードを実行する
  *
  * @param SC_FormParam  $objFormParam
  * @param SC_UploadFile $objUpFile
  * @param SC_Helper_DB  $objDb
  * @return void
  */
 function doUploadCsv(&$objFormParam, &$objUpFile)
 {
     // ファイルアップロードのチェック
     $objUpFile->makeTempFile('csv_file');
     $arrErr = $objUpFile->checkExists();
     if (count($arrErr) > 0) {
         $this->arrErr = $arrErr;
         return;
     }
     // 一時ファイル名の取得
     $filepath = $objUpFile->getTempFilePath('csv_file');
     // CSVファイルの文字コード変換
     $enc_filepath = SC_Utils_Ex::sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_REALDIR);
     // CSVファイルのオープン
     $fp = fopen($enc_filepath, 'r');
     // 失敗した場合はエラー表示
     if (!$fp) {
         SC_Utils_Ex::sfDispError('');
     }
     // 登録先テーブル カラム情報の初期化
     $this->lfInitTableInfo();
     // 登録フォーム カラム情報
     $this->arrFormKeyList = $objFormParam->getKeyList();
     // 登録対象の列数
     $col_max_count = $objFormParam->getCount();
     // 行数
     $line_count = 0;
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $objQuery->begin();
     $errFlag = false;
     while (!feof($fp)) {
         $arrCSV = fgetcsv($fp, CSV_LINE_MAX);
         // 行カウント
         $line_count++;
         // ヘッダ行はスキップ
         if ($line_count == 1) {
             continue;
         }
         // 空行はスキップ
         if (empty($arrCSV)) {
             continue;
         }
         // 列数が異なる場合はエラー
         $col_count = count($arrCSV);
         if ($col_max_count != $col_count) {
             $this->addRowErr($line_count, t('c_* T_ARG1 was detected for the item quantity. The item quantity is T_ARG2._01', array('T_ARG1' => $col_count, 'T_ARG2' => $col_max_count)));
             $errFlag = true;
             break;
         }
         // シーケンス配列を格納する。
         $objFormParam->setParam($arrCSV, true);
         $arrRet = $objFormParam->getHashArray();
         $objFormParam->setParam($arrRet);
         // 入力値の変換
         $objFormParam->convParam();
         // <br>なしでエラー取得する。
         $arrCSVErr = $this->lfCheckError($objFormParam);
         // 入力エラーチェック
         if (count($arrCSVErr) > 0) {
             foreach ($arrCSVErr as $err) {
                 $this->addRowErr($line_count, $err);
             }
             $errFlag = true;
             break;
         }
         $category_id = $this->lfRegistCategory($objQuery, $line_count, $objFormParam);
         $this->addRowResult($line_count, t('c_Category ID: T_ARG1 /Category name: T_ARG2_01', array('T_ARG1' => $category_id, 'T_ARG2' => $objFormParam->getValue('category_name'))));
     }
     // 実行結果画面を表示
     $this->tpl_mainpage = 'products/upload_csv_category_complete.tpl';
     fclose($fp);
     if ($errFlag) {
         $objQuery->rollback();
         return;
     }
     $objQuery->commit();
     // カテゴリ件数を更新
     SC_Helper_DB_EX::sfCountCategory($objQuery);
     return;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function lfCheckError(&$objFormParam)
 {
     $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
     $objErr->arrErr = $objFormParam->checkError();
     // 相関チェック
     $objErr->doFunc(array("注文番号1", "注文番号2", "search_order_id1", "search_order_id2"), array("GREATER_CHECK"));
     $objErr->doFunc(array("年齢1", "年齢2", "search_age1", "search_age2"), array("GREATER_CHECK"));
     $objErr->doFunc(array("購入金額1", "購入金額2", "search_total1", "search_total2"), array("GREATER_CHECK"));
     // 受注日
     $objErr->doFunc(array("開始", "search_sorderyear", "search_sordermonth", "search_sorderday"), array("CHECK_DATE"));
     $objErr->doFunc(array("終了", "search_eorderyear", "search_eordermonth", "search_eorderday"), array("CHECK_DATE"));
     $objErr->doFunc(array("開始", "終了", "search_sorderyear", "search_sordermonth", "search_sorderday", "search_eorderyear", "search_eordermonth", "search_eorderday"), array("CHECK_SET_TERM"));
     // 更新日
     $objErr->doFunc(array("開始", "search_supdateyear", "search_supdatemonth", "search_supdateday"), array("CHECK_DATE"));
     $objErr->doFunc(array("終了", "search_eupdateyear", "search_eupdatemonth", "search_eupdateday"), array("CHECK_DATE"));
     $objErr->doFunc(array("開始", "終了", "search_supdateyear", "search_supdatemonth", "search_supdateday", "search_eupdateyear", "search_eupdatemonth", "search_eupdateday"), array("CHECK_SET_TERM"));
     // 生年月日
     $objErr->doFunc(array("開始", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday"), array("CHECK_DATE"));
     $objErr->doFunc(array("終了", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_DATE"));
     $objErr->doFunc(array("開始", "終了", "search_sbirthyear", "search_sbirthmonth", "search_sbirthday", "search_ebirthyear", "search_ebirthmonth", "search_ebirthday"), array("CHECK_SET_TERM"));
     return $objErr->arrErr;
 }
 /**
  * チェック(編集)
  *
  * @param SC_FormParam $objFormParam
  */
 static function lfCheckParam(SC_FormParam $objFormParam)
 {
     $objCheck = new SC_CheckError_Ex($objFormParam->getHashArray());
     $objCheck->doFunc(array($objFormParam->getParamSetting("os_min_version", "disp_name"), $objFormParam->getParamSetting("os_max_version", "disp_name"), "os_min_version", "os_max_version"), array("GREATER_CHECK"));
     $objCheck->doFunc(array("画面サイズ", "display_width", "display_height"), array("ALL_EXIST_CHECK"));
     $objCheck->doFunc(array($objFormParam->getParamSetting("release_date", "disp_name"), "release_date_year", "release_date_month", "release_date_day"), array("CHECK_DATE"));
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラーメッセージの配列
  */
 public function lfCheckError(&$objFormParam)
 {
     $arrErr = $objFormParam->checkError();
     if (REVIEW_ALLOW_URL == false) {
         $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
         // コメント欄へのURLの入力を禁止
         $objErr->doFunc(array('URL', 'comment', $this->arrReviewDenyURL), array('PROHIBITED_STR_CHECK'));
         $arrErr += $objErr->arrErr;
     }
     return $arrErr;
 }
Beispiel #18
0
 /**
  * 配信内容と配信リストを書き込む
  *
  * @param SC_FormParam $objFormParam
  * @return integer 登録した行の dtb_send_history.send_id の値
  */
 public function lfRegisterData(&$objFormParam)
 {
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     list($linemax, $arrSendCustomer, $objNavi) = SC_Helper_Customer_Ex::sfGetSearchData($objFormParam->getHashArray(), 'All');
     $send_customer_cnt = count($arrSendCustomer);
     $send_id = $objQuery->nextVal('dtb_send_history_send_id');
     $dtb_send_history = array();
     $dtb_send_history['mail_method'] = $objFormParam->getValue('mail_method');
     $dtb_send_history['subject'] = $objFormParam->getValue('subject');
     $dtb_send_history['body'] = $objFormParam->getValue('body');
     $dtb_send_history['start_date'] = 'CURRENT_TIMESTAMP';
     $dtb_send_history['creator_id'] = $_SESSION['member_id'];
     $dtb_send_history['send_count'] = $send_customer_cnt;
     $dtb_send_history['search_data'] = serialize($objFormParam->getSearchArray());
     $dtb_send_history['update_date'] = 'CURRENT_TIMESTAMP';
     $dtb_send_history['create_date'] = 'CURRENT_TIMESTAMP';
     $dtb_send_history['send_id'] = $send_id;
     $objQuery->insert('dtb_send_history', $dtb_send_history);
     // 「配信メールアドレス種別」に携帯メールアドレスが指定されている場合は、携帯メールアドレスに配信
     $emailtype = 'email';
     $searchmailtype = $objFormParam->getValue('search_mail_type');
     if ($searchmailtype == 2 || $searchmailtype == 4) {
         $emailtype = 'email_mobile';
     }
     if (is_array($arrSendCustomer)) {
         foreach ($arrSendCustomer as $line) {
             $dtb_send_customer = array();
             $dtb_send_customer['customer_id'] = $line['customer_id'];
             $dtb_send_customer['send_id'] = $send_id;
             $dtb_send_customer['email'] = $line[$emailtype];
             $dtb_send_customer['name'] = $line['name01'] . ' ' . $line['name02'];
             $objQuery->insert('dtb_send_customer', $dtb_send_customer);
         }
     }
     return $send_id;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラーメッセージの配列
  */
 function lfCheckError(&$objFormParam)
 {
     $objProduct = new SC_Product_Ex();
     $arrErr = $objFormParam->checkError();
     if (!SC_Utils_Ex::isBlank($objErr->arrErr)) {
         return $arrErr;
     }
     $arrValues = $objFormParam->getHashArray();
     // 商品の種類数
     $max = count($arrValues['quantity']);
     $subtotal = 0;
     $totalpoint = 0;
     $totaltax = 0;
     for ($i = 0; $i < $max; $i++) {
         // 小計の計算
         $subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i]) * $arrValues['quantity'][$i];
         // 小計の計算
         $totaltax += SC_Helper_DB_Ex::sfTax($arrValues['price'][$i]) * $arrValues['quantity'][$i];
         // 加算ポイントの計算
         $totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i];
         // 在庫数のチェック
         $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]);
         // 編集前の値と比較するため受注詳細を取得
         $objPurchase = new SC_Helper_Purchase_Ex();
         $arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false));
         if ($arrProduct['stock_unlimited'] != '1' && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) {
             $class_name1 = $arrValues['classcategory_name1'][$i];
             $class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1;
             $class_name2 = $arrValues['classcategory_name2'][$i];
             $class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2;
             $arrErr['quantity'][$i] .= $arrValues['product_name'][$i] . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />';
         }
     }
     // 消費税
     $arrValues['tax'] = $totaltax;
     // 小計
     $arrValues['subtotal'] = $subtotal;
     // 合計
     $arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge'];
     // お支払い合計
     $arrValues['payment_total'] = $arrValues['total'] - $arrValues['use_point'] * POINT_VALUE;
     // 加算ポイント
     $arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']);
     // 最終保持ポイント
     $arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point'];
     if ($arrValues['total'] < 0) {
         $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />';
     }
     if ($arrValues['payment_total'] < 0) {
         $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />';
     }
     if ($arrValues['total_point'] < 0) {
         $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />';
     }
     $objFormParam->setParam($arrValues);
     return $arrErr;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラーメッセージの配列
  */
 public function lfCheckError(&$objFormParam)
 {
     $objProduct = new SC_Product_Ex();
     $arrValues = $objFormParam->getHashArray();
     $arrErr = array();
     $arrErrTemp = $objFormParam->checkError();
     $arrErrDate = array();
     foreach ($arrValues['shipping_date_year'] as $key_index => $year) {
         $month = $arrValues['shipping_date_month'][$key_index];
         $day = $arrValues['shipping_date_day'][$key_index];
         $objError = new SC_CheckError_Ex(array('shipping_date_year' => $year, 'shipping_date_month' => $month, 'shipping_date_day' => $day));
         $objError->doFunc(array('お届け日', 'shipping_date_year', 'shipping_date_month', 'shipping_date_day'), array('CHECK_DATE'));
         $arrErrDate['shipping_date_year'][$key_index] = $objError->arrErr['shipping_date_year'];
     }
     $arrErrTemp = array_merge($arrErrTemp, $arrErrDate);
     // 複数項目チェック
     $year = $arrValues['order_birth_year'];
     $month = $arrValues['order_birth_month'];
     $day = $arrValues['order_birth_day'];
     $objError = new SC_CheckError_Ex(array('order_birth_year' => $year, 'order_birth_month' => $month, 'order_birth_day' => $day));
     $objError->doFunc(array('生年月日', 'order_birth_year', 'order_birth_month', 'order_birth_day'), array('CHECK_BIRTHDAY'));
     $arrErrTemp['order_birth_year'] = $objError->arrErr['order_birth_year'];
     // 商品の種類数
     $max = count($arrValues['quantity']);
     $subtotal = 0;
     $totalpoint = 0;
     $totaltax = 0;
     for ($i = 0; $i < $max; $i++) {
         // 小計の計算
         $subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i];
         // 小計の計算
         $totaltax += SC_Utils_Ex::sfTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i];
         // 加算ポイントの計算
         $totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i];
         // 在庫数のチェック
         $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]);
         // 編集前の値と比較するため受注詳細を取得
         $objPurchase = new SC_Helper_Purchase_Ex();
         $arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false));
         if ($arrProduct['stock_unlimited'] != '1' && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) {
             $class_name1 = $arrValues['classcategory_name1'][$i];
             $class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1;
             $class_name2 = $arrValues['classcategory_name2'][$i];
             $class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2;
             $arrErr['quantity'][$i] .= $arrValues['product_name'][$i] . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />';
         }
     }
     // 消費税
     $arrValues['tax'] = $totaltax;
     // 小計
     $arrValues['subtotal'] = $subtotal;
     // 合計
     $arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge'];
     // お支払い合計
     $arrValues['payment_total'] = $arrValues['total'] - $arrValues['use_point'] * POINT_VALUE;
     // 加算ポイント
     $arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']) + $arrValues['birth_point'];
     // 最終保持ポイント
     $arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point'];
     if ($arrValues['total'] < 0) {
         $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />';
     }
     if ($arrValues['payment_total'] < 0) {
         $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />';
     }
     if ($arrValues['total_point'] < 0) {
         $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />';
     }
     $objFormParam->setParam($arrValues);
     $arrErr = array_merge($arrErr, $arrErrTemp);
     return $arrErr;
 }
 /**
  *
  * POSTされた値からSQLのWHEREとBINDを配列で返す。
  * @return array ('where' => where string, 'bind' => databind array)
  * @param SC_FormParam $objFormParam
  */
 function createWhere(&$objFormParam, &$objDb)
 {
     $arrForm = $objFormParam->getHashArray();
     $where = 'alldtl.del_flg = 0';
     $bind = array();
     foreach ($arrForm as $key => $val) {
         if ($val == '') {
             continue;
         }
         switch ($key) {
             case 'search_name':
                 $where .= ' AND name ILIKE ?';
                 $bind[] = '%' . $val . '%';
                 break;
             case 'search_category_id':
                 list($tmp_where, $tmp_bind) = $objDb->sfGetCatWhere($val);
                 if ($tmp_where != '') {
                     $where .= ' AND alldtl.product_id IN (SELECT product_id FROM dtb_product_categories WHERE ' . $tmp_where . ')';
                     $bind = array_merge((array) $bind, (array) $tmp_bind);
                 }
                 break;
             case 'search_product_code':
                 $where .= ' AND alldtl.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code LIKE ? GROUP BY product_id)';
                 $bind[] = '%' . $val . '%';
                 break;
             default:
                 break;
         }
     }
     return array('where' => $where, 'bind' => $bind);
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function lfCheckError(&$objFormParam)
 {
     $objErr = new SC_CheckError_Ex($objFormParam->getHashArray());
     $objErr->arrErr = $objFormParam->checkError();
     // 相関チェック
     $objErr->doFunc(array(t('c_Order number 1_01'), t('c_Order number 2_01'), 'search_order_id1', 'search_order_id2'), array('GREATER_CHECK'));
     $objErr->doFunc(array(t('c_Age 1_01'), t('c_Age 2_01'), 'search_age1', 'search_age2'), array('GREATER_CHECK'));
     $objErr->doFunc(array(t('c_Purchase amount 1_01'), t('c_Purchase amount 2_01'), 'search_total1', 'search_total2'), array('GREATER_CHECK'));
     // 受注日
     $objErr->doFunc(array(t('c_Start_01'), 'search_sorderyear', 'search_sordermonth', 'search_sorderday'), array('CHECK_DATE'));
     $objErr->doFunc(array(t('c_Complete_01'), 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_DATE'));
     $objErr->doFunc(array(t('c_Start_01'), t('c_Complete_01'), 'search_sorderyear', 'search_sordermonth', 'search_sorderday', 'search_eorderyear', 'search_eordermonth', 'search_eorderday'), array('CHECK_SET_TERM'));
     // 更新日
     $objErr->doFunc(array(t('c_Start_01'), 'search_supdateyear', 'search_supdatemonth', 'search_supdateday'), array('CHECK_DATE'));
     $objErr->doFunc(array(t('c_Complete_01'), 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_DATE'));
     $objErr->doFunc(array(t('c_Start_01'), t('c_Complete_01'), 'search_supdateyear', 'search_supdatemonth', 'search_supdateday', 'search_eupdateyear', 'search_eupdatemonth', 'search_eupdateday'), array('CHECK_SET_TERM'));
     // 生年月日
     $objErr->doFunc(array(t('c_Start_01'), 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday'), array('CHECK_DATE'));
     $objErr->doFunc(array(t('c_Complete_01'), 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_DATE'));
     $objErr->doFunc(array(t('c_Start_01'), t('c_Complete_01'), 'search_sbirthyear', 'search_sbirthmonth', 'search_sbirthday', 'search_ebirthyear', 'search_ebirthmonth', 'search_ebirthday'), array('CHECK_SET_TERM'));
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行なう.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @param integer $subtotal 購入金額の小計
  * @param integer $max_point 会員の保持ポイント
  * @return array 入力チェック結果の配列
  */
 function lfCheckError(&$objFormParam, $subtotal, $max_point)
 {
     $objPurchase = new SC_Helper_Purchase_Ex();
     // 入力データを渡す。
     $arrForm = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrForm);
     $objErr->arrErr = $objFormParam->checkError();
     if (USE_POINT === false) {
         return $objErr->arrErr;
     }
     if ($arrForm['point_check'] == '1') {
         $objErr->doFunc(array('ポイントを使用する', 'point_check'), array('EXIST_CHECK'));
         $objErr->doFunc(array('ポイント', 'use_point'), array('EXIST_CHECK'));
         if ($max_point == '') {
             $max_point = 0;
         }
         // FIXME mobile 互換のため br は閉じない...
         if ($arrForm['use_point'] > $max_point) {
             $objErr->arrErr['use_point'] = '※ ご利用ポイントが所持ポイントを超えています。<br>';
         }
         if ($arrForm['use_point'] * POINT_VALUE > $subtotal) {
             $objErr->arrErr['use_point'] = '※ ご利用ポイントがご購入金額を超えています。<br>';
         }
         // ポイント差し引き後の決済方法チェック
         $arrPayments = $objPurchase->getPaymentsByPaymentsId($arrForm['payment_id']);
         if ($arrPayments['rule_max'] > $subtotal - $arrForm['use_point'] * POINT_VALUE) {
             $objErr->arrErr['use_point'] = '※ 選択した支払方法では、ポイントは' . ($subtotal - $arrPayments['rule_max']) . 'ポイントまでご利用いただけます。<br>';
         }
     }
     return $objErr->arrErr;
 }
 /**
  * 入力内容のチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function lfCheckError(&$objFormParam)
 {
     // 入力データを渡す。
     $arrRet = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrRet);
     $objErr->arrErr = $objFormParam->checkError();
     switch ($this->getMode()) {
         case 'search':
             $objErr->doFunc(array("投稿者", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
             $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));
             $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));
             $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));
             break;
         case 'complete':
             $objErr->doFunc(array("おすすめレベル", "recommend_level"), array("SELECT_CHECK"));
             $objErr->doFunc(array("タイトル", 'title', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
             $objErr->doFunc(array("コメント", 'comment', LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
             break;
     }
     return $objErr->arrErr;
 }
 /**
  * @param SC_Helper_Address_Ex $objAddress
  * @param SC_FormParam $objFormParam
  */
 public function lfRegistData($objAddress, $objFormParam, $customer_id)
 {
     $arrRet = $objFormParam->getHashArray();
     $sqlval = $objFormParam->getDbArray();
     $sqlval['other_deliv_id'] = $arrRet['other_deliv_id'];
     $sqlval['customer_id'] = $customer_id;
     if (!$objAddress->registAddress($sqlval)) {
         SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, '別のお届け先を登録できませんでした。');
         SC_Response_Ex::actionExit();
     }
 }
 /**
  * 商品規格エラーチェック.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラー結果の配列
  */
 function lfCheckProductsClass(&$objFormParam)
 {
     $arrValues = $objFormParam->getHashArray();
     $arrErr = $objFormParam->checkError();
     $total = $objFormParam->getValue('total');
     if (SC_Utils_Ex::isBlank($arrValues['check'])) {
         $arrErr['check_empty'] = '※ 規格が選択されていません。<br />';
     }
     for ($i = 0; $i < $total; $i++) {
         /*
          * チェックボックスの入っている項目のみ, 必須チェックを行う.
          * エラーを配列で返す必要があるため, SC_CheckError を使用しない.
          */
         if (!SC_Utils_Ex::isBlank($arrValues['check'][$i])) {
             /*
              * 販売価格の必須チェック
              */
             if (SC_Utils_Ex::isBlank($arrValues['price02'][$i])) {
                 $arrErr['price02'][$i] = '※ ' . SALE_PRICE_TITLE . 'が入力されていません。<br />';
             }
             /*
              * 在庫数の必須チェック
              */
             if ((SC_Utils_Ex::isBlank($arrValues['stock_unlimited'][$i]) || $arrValues['stock_unlimited'][$i] != 1) && SC_Utils_Ex::isBlank($arrValues['stock'][$i])) {
                 $arrErr['stock'][$i] = '※ 在庫数が入力されていません。<br />';
             }
             /*
              * 商品種別の必須チェック
              */
             if (SC_Utils_Ex::isBlank($arrValues['product_type_id'][$i])) {
                 $arrErr['product_type_id'][$i] = '※ 商品種別は、いずれかを選択してください。<br />';
             }
             /*
              * ダウンロード商品の必須チェック
              */
             if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_DOWNLOAD) {
                 if (SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) {
                     $arrErr['down_filename'][$i] = '※ ダウンロード商品の場合はダウンロードファイル名を入力してください。<br />';
                 }
                 if (SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) {
                     $arrErr['down_realfilename'][$i] = '※ ダウンロード商品の場合はダウンロード商品用ファイルをアップロードしてください。<br />';
                 }
             } else {
                 if ($arrValues['product_type_id'][$i] == PRODUCT_TYPE_NORMAL) {
                     if (!SC_Utils_Ex::isBlank($arrValues['down_filename'][$i])) {
                         $arrErr['down_filename'][$i] = '※ 通常商品の場合はダウンロードファイル名を設定できません。<br />';
                     }
                     if (!SC_Utils_Ex::isBlank($arrValues['down_realfilename'][$i])) {
                         $arrErr['down_realfilename'][$i] = '※ 実商品の場合はダウンロード商品用ファイルをアップロードできません。<br />ファイルを取り消してください。<br />';
                     }
                 }
             }
         }
     }
     return $arrErr;
 }
 /**
  * エラーチェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラーメッセージの配列
  */
 public function lfCheckError(&$objFormParam, &$arrErr, SC_Helper_Bloc_Ex &$objBloc)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr =& $arrErr;
     $objErr->doFunc(array('ブロック名', 'bloc_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
     $objErr->doFunc(array('ファイル名', 'filename', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'FILE_NAME_CHECK_BY_NOUPLOAD'));
     $where = 'filename = ?';
     $arrValues = array($arrParams['filename']);
     // 変更の場合は自ブロックを除外
     if (!SC_Utils_Ex::isBlank($arrParams['bloc_id'])) {
         $where .= ' AND bloc_id <> ?';
         $arrValues[] = $arrParams['bloc_id'];
     }
     $arrBloc = $objBloc->getWhere($where, $arrValues);
     if (!SC_Utils_Ex::isBlank($arrBloc)) {
         $objErr->arrErr['filename'] = '※ 同じファイル名のデータが存在しています。別のファイル名を入力してください。<br />';
     }
     return $objErr->arrErr;
 }
 /**
  * エラーチェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラーメッセージの配列
  */
 function lfCheckError(&$objFormParam, &$arrErr)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrParams);
     $objErr->arrErr =& $arrErr;
     $objErr->doFunc(array(t('c_CSS file name_01'), 'css_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'FILE_NAME_CHECK_BY_NOUPLOAD'));
     $device_type_id = $objFormParam->getValue('device_type_id');
     $css_name = $objFormParam->getValue('css_name');
     $old_css_name = $objFormParam->getValue('old_css_name', $css_name);
     $is_error = false;
     // 重複チェック
     if (!SC_Utils_Ex::isBlank($objErr->arrErr['css_name'])) {
         $arrCSSList = $this->getCSSList($this->getCSSDir());
         foreach ($arrCSSList as $val) {
             if ($val['css_name'] == $css_name) {
                 if (SC_Utils_Ex::isBlank($old_css_name) || $old_css_name != $css_name) {
                     $is_error = true;
                 }
             }
         }
         if ($is_error) {
             $objErr->arrErr['css_name'] = t('c_* Data for the same file name exists. Enter a different file name.<br />_01');
         }
     }
     return $objErr->arrErr;
 }
 /**
  * 会員検索パラメーター エラーチェック(管理画面用)
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @access public
  * @return array エラー配列
  */
 public function sfCheckErrorSearchParam(&$objFormParam)
 {
     // パラメーターの基本チェック
     $arrErr = $objFormParam->checkError();
     // エラーチェック対象のパラメータ取得
     $array = $objFormParam->getHashArray();
     // 拡張エラーチェック初期化
     $objErr = new SC_CheckError_Ex($array);
     // 拡張エラーチェック
     $objErr->doFunc(array('誕生日(開始日)', 'search_b_start_year', 'search_b_start_month', 'search_b_start_day'), array('CHECK_DATE'));
     $objErr->doFunc(array('誕生日(終了日)', 'search_b_end_year', 'search_b_end_month', 'search_b_end_day'), array('CHECK_DATE'));
     $objErr->doFunc(array('誕生日(開始日)', '誕生日(終了日)', 'search_b_start_year', 'search_b_start_month', 'search_b_start_day', 'search_b_end_year', 'search_b_end_month', 'search_b_end_day'), array('CHECK_SET_TERM'));
     $objErr->doFunc(array('登録・更新日(開始日)', 'search_start_year', 'search_start_month', 'search_start_day'), array('CHECK_DATE'));
     $objErr->doFunc(array('登録・更新日(終了日)', 'search_end_year', 'search_end_month', 'search_end_day'), array('CHECK_DATE'));
     $objErr->doFunc(array('登録・更新日(開始日)', '登録・更新日(終了日)', 'search_start_year', 'search_start_month', 'search_start_day', 'search_end_year', 'search_end_month', 'search_end_day'), array('CHECK_SET_TERM'));
     $objErr->doFunc(array('最終購入日(開始)', 'search_buy_start_year', 'search_buy_start_month', 'search_buy_start_day'), array('CHECK_DATE'));
     $objErr->doFunc(array('最終購入日(終了)', 'search_buy_end_year', 'search_buy_end_month', 'search_buy_end_day'), array('CHECK_DATE'));
     // 開始 > 終了 の場合はエラーとする
     $objErr->doFunc(array('最終購入日(開始)', '最終購入日(終了)', 'search_buy_start_year', 'search_buy_start_month', 'search_buy_start_day', 'search_buy_end_year', 'search_buy_end_month', 'search_buy_end_day'), array('CHECK_SET_TERM'));
     if (SC_Utils_Ex::sfIsInt($array['search_buy_total_from']) && SC_Utils_Ex::sfIsInt($array['search_buy_total_to']) && $array['search_buy_total_from'] > $array['search_buy_total_to']) {
         $objErr->arrErr['search_buy_total_from'] .= '※ 購入金額の指定範囲が不正です。';
     }
     if (SC_Utils_Ex::sfIsInt($array['search_buy_times_from']) && SC_Utils_Ex::sfIsInt($array['search_buy_times_to']) && $array['search_buy_times_from'] > $array['search_buy_times_to']) {
         $objErr->arrErr['search_buy_times_from'] .= '※ 購入回数の指定範囲が不正です。';
     }
     if (!SC_Utils_Ex::isBlank($objErr->arrErr)) {
         $arrErr = array_merge($arrErr, $objErr->arrErr);
     }
     return $arrErr;
 }
function getArrayDsn(SC_FormParam $objDBParam)
{
    $arrRet = $objDBParam->getHashArray();
    if (!defined('DB_TYPE')) {
        define('DB_TYPE', $arrRet['db_type']);
    }
    $arrDsn = array('phptype' => $arrRet['db_type'], 'username' => $arrRet['db_user'], 'password' => $arrRet['db_password'], 'database' => $arrRet['db_name'], 'port' => $arrRet['db_port'], 'protocol' => 'tcp');
    // 文字列形式の DSN との互換処理
    if (strlen($arrRet['db_server']) >= 1 && $arrRet['db_server'] !== '+') {
        $arrDsn['hostspec'] = $arrRet['db_server'];
    }
    return $arrDsn;
}