本文整理汇总了PHP中SC_FormParam::checkError方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_FormParam::checkError方法的具体用法?PHP SC_FormParam::checkError怎么用?PHP SC_FormParam::checkError使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_FormParam
的用法示例。
在下文中一共展示了SC_FormParam::checkError方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lfCheckError
/**
* 入力チェックを行う.
*
* @param SC_FormParam $objFormParam
* @return array
*/
public function lfCheckError(SC_FormParam &$objFormParam)
{
// 入力データを渡す。
$arrRet = $objFormParam->getHashArray();
$objErr = new SC_CheckError_Ex($arrRet);
$objErr->arrErr = $objFormParam->checkError(false);
// HTMLタグチェックの実行
foreach ($this->arrTagCheckItem as $item) {
$objErr->doFunc(array($item['disp_name'], $item['col'], $this->arrAllowedTag), array('HTML_TAG_CHECK'));
}
// このフォーム特有の複雑系のエラーチェックを行う
if (count($objErr->arrErr) == 0) {
$objErr->arrErr = $this->lfCheckErrorDetail($arrRet, $objErr->arrErr);
}
return $objErr->arrErr;
}
示例2: lfCheckError
/**
* 入力内容のチェックを行なう.
*
* @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;
}
示例3: lfCheckError
/**
* 入力内容のチェックを行う.
*
* @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;
}
示例4: lfCheckError
/**
* 入力チェックを行う.
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return array エラー情報の配列
*/
public function lfCheckError(&$objFormParam)
{
$objCartSess = new SC_CartSession_Ex();
$objFormParam->convParam();
// 数量未入力は0に置換
$objFormParam->setValue('quantity', $objFormParam->getValue('quantity', 0));
$arrErr = $objFormParam->checkError();
$arrParams = $objFormParam->getSwapArray();
if (empty($arrErr)) {
foreach ($arrParams as $index => $arrParam) {
// 数量0で、お届け先を選択している場合
if ($arrParam['quantity'] == 0 && !SC_Utils_Ex::isBlank($arrParam['shipping'])) {
$arrErr['shipping'][$index] = '※ 数量が0の場合、お届け先を入力できません。<br />';
}
// 数量の入力があり、お届け先を選択していない場合
if ($arrParam['quantity'] > 0 && SC_Utils_Ex::isBlank($arrParam['shipping'])) {
$arrErr['shipping'][$index] = '※ お届け先が入力されていません。<br />';
}
}
}
// 入力エラーが無い場合、カゴの中身との数量の整合を確認
if (empty($arrErr)) {
$arrQuantity = array();
// 入力内容を集計
foreach ($arrParams as $arrParam) {
$product_class_id = $arrParam['product_class_id'];
$arrQuantity[$product_class_id] += $arrParam['quantity'];
}
// カゴの中身と突き合わせ
$cartLists =& $objCartSess->getCartList($objCartSess->getKey());
foreach ($cartLists as $arrCartRow) {
$product_class_id = $arrCartRow['id'];
// 差異がある場合、エラーを記録
if ($arrCartRow['quantity'] != $arrQuantity[$product_class_id]) {
foreach ($arrParams as $index => $arrParam) {
if ($arrParam['product_class_id'] == $product_class_id) {
$arrErr['quantity'][$index] = '※ 数量合計を「' . $arrCartRow['quantity'] . '」にしてください。<br />';
}
}
}
}
}
return $arrErr;
}
示例5: checkError
/**
* エラーチェック
*
* @param SC_FormParam $objFormParam
* @param boolean $add 追加か
* @return void
*/
function checkError(&$objFormParam, $add)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
// 入力項目チェック
$arrErr = $objFormParam->checkError();
if (!empty($arrErr)) {
return $arrErr;
}
$category_id = $objFormParam->getValue('category_id');
$parent_category_id = $objFormParam->getValue('parent_category_id');
$category_name = $objFormParam->getValue('category_name');
// 追加の場合に固有のチェック
if ($add) {
// 登録数上限チェック
$where = 'del_flg = 0';
$count = $objQuery->count('dtb_category', $where);
if ($count >= CATEGORY_MAX) {
$arrErr['category_name'] = t('c_* The maximum number of categories that can be registered has been exceeded.<br/>_01');
return $arrErr;
}
// 階層上限チェック
if ($this->isOverLevel($parent_category_id)) {
$arrErr['category_name'] = t('c_* Registration of the T_ARG1 hierarchy or higher is not possible.<br/>_01', array('T_ARG1' => LEVEL_MAX));
return $arrErr;
}
}
// 重複チェック
$arrWhereVal = array();
$where = 'del_flg = 0 AND parent_category_id = ? AND category_name = ?';
$arrWhereVal[] = $parent_category_id;
$arrWhereVal[] = $category_name;
// 更新の場合、抽出対象から自己を除外する
if (!$add) {
$where .= ' AND category_id <> ?';
$arrWhereVal[] = $category_id;
}
$exists = $objQuery->exists('dtb_category', $where, $arrWhereVal);
if ($exists) {
$arrErr['category_name'] = t('c_* Registration of the same contents already exists.<br/>_01');
return $arrErr;
}
return $arrErr;
}
示例6: lfCheckError
/**
* 入力内容のチェックを行う.
*
* @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;
}
示例7: lfCheckProductsClass
/**
* 商品規格エラーチェック.
*
* @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;
}
示例8: lfCheckError
/**
* 入力内容のチェックを行なう.
*
* @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(t('c_E-mail address_01'), t('c_E-mail address (confirmation)_01'), 'email', 'email02'), array('EQUAL_CHECK'));
return $objErr->arrErr;
}
示例9: lfCheckError
/**
* エラーチェック
*
* @param SC_FormParam $objFormParam フォームパラメータークラス
* @return array エラー配列
*/
public function lfCheckError(&$objFormParam)
{
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrForm = $objFormParam->getHashArray();
// パラメーターの基本チェック
$arrErr = $objFormParam->checkError();
if (!SC_Utils_Ex::isBlank($arrErr)) {
return $arrErr;
} else {
$arrForm = $objFormParam->getHashArray();
}
$where = 'del_flg = 0 AND name = ?';
$arrClass = $objQuery->select('class_id, name', 'dtb_class', $where, array($arrForm['name']));
// 編集中のレコード以外に同じ名称が存在する場合
if ($arrClass[0]['class_id'] != $arrForm['class_id'] && $arrClass[0]['name'] == $arrForm['name']) {
$arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br>';
}
return $arrErr;
}
示例10: lfCheckError
/**
* 入力内容のチェックを行う.
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return void
*/
public 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_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;
default:
break;
}
return $objErr->arrErr;
}
示例11: lfCheckError
/**
* 入力内容のチェックを行う.
*
* 追加の必須チェック, 相関チェックを行うため, 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;
}
示例12: lfCheckError
/**
* 入力内容のチェックを行なう.
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @param integer $subtotal 購入金額の小計
* @param integer $max_point 会員の保持ポイント
* @return array 入力チェック結果の配列
*/
function lfCheckError(&$objFormParam, $subtotal, $max_point)
{
// 入力データを渡す。
$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>";
}
}
return $objErr->arrErr;
}
示例13: lfCheckError
/**
* 入力内容のチェック
* @var SC_FormParam
* @param SC_FormParam $objFormParam
*/
public function lfCheckError(&$objFormParam)
{
// 入力データを渡す。
$arrParams = $objFormParam->getHashArray();
$arrErr = $objFormParam->checkError();
$objError = new SC_CheckError_Ex($arrParams);
$year = $objFormParam->getValue('year');
if (!is_numeric($year)) {
$arrErr['year'] = '発行年は数値で入力してください。';
}
$month = $objFormParam->getValue('month');
if (!is_numeric($month)) {
$arrErr['month'] = '発行月は数値で入力してください。';
} elseif (0 >= $month && 12 < $month) {
$arrErr['month'] = '発行月は1〜12の間で入力してください。';
}
$day = $objFormParam->getValue('day');
if (!is_numeric($day)) {
$arrErr['day'] = '発行日は数値で入力してください。';
} elseif (0 >= $day && 31 < $day) {
$arrErr['day'] = '発行日は1〜31の間で入力してください。';
}
$objError->doFunc(array('発行日', 'year', 'month', 'day'), array('CHECK_DATE'));
$arrErr = array_merge($arrErr, $objError->arrErr);
return $arrErr;
}
示例14: lfCheckError
/**
* 入力エラーチェック.
*
* @param SC_FormParam $objFormParam
* @return array $objErr->arrErr エラー内容
*/
public function lfCheckError(&$objFormParam, SC_Helper_Maker_Ex &$objMaker)
{
$arrErr = $objFormParam->checkError();
$arrForm = $objFormParam->getHashArray();
// maker_id の正当性チェック
if (!empty($arrForm['maker_id'])) {
if (!SC_Utils_Ex::sfIsInt($arrForm['maker_id']) || SC_Utils_Ex::sfIsZeroFilling($arrForm['maker_id']) || !$objMaker->getMaker($arrForm['maker_id'])) {
// maker_idが指定されていて、且つその値が不正と思われる場合はエラー
$arrErr['maker_id'] = '※ メーカーIDが不正です<br />';
}
}
if (!isset($arrErr['name'])) {
$arrMaker = $objMaker->getByName($arrForm['name']);
// 編集中のレコード以外に同じ名称が存在する場合
if (!SC_Utils_Ex::isBlank($arrMaker) && $arrMaker['maker_id'] != $arrForm['maker_id'] && $arrMaker['name'] == $arrForm['name']) {
$arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />';
}
}
return $arrErr;
}
示例15: lfCheckError
/**
* 入力内容のチェックを行う.
*
* @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;
}