/** * プロパティに保存されているチェックします。 */ public function &getChecker() { $checker = new DataChecker(); // 文字制限 $msg = 'メディアタグは255字までです。'; $checker->addItem(new CheckerItemLength($this->getField('media_url'), 0, 255, $msg)); $msg = '飛び先URLは255字までです。'; $checker->addItem(new CheckerItemLength($this->getField('redirect_url'), 0, 255, $msg)); $msg = '単価(卸値)は10桁までです。'; $checker->addItem(new CheckerItemLength($this->getField('oroshi_price'), 0, 10, $msg)); $msg = '単価は10桁までです。'; $checker->addItem(new CheckerItemLength($this->getField('price'), 0, 10, $msg)); return $checker; }
/** * プロパティに保存されているクライアント情報をチェックします。 */ public function &getChecker() { $checker = new DataChecker(); // media_name $msg = 'メディア名は、3~50字'; $item = new CheckerItemLength($this->getField('media_name'), 3, 50, $msg); // $checker->addItem($item); $msg = 'メディア名は、「,¥/:*?"<>|」を使用出来ません'; $item = new CheckerItemRegex($this->getField('media_name'), '/[,\\\\\\/:*?"<>|]/', false, $msg); $checker->addItem($item); $msg = 'メディア名に使用できない文字が含まれています'; $item = new CheckerItemValidName($this->getField('media_name'), $msg); $checker->addItem($item); // company_name $msg = '企業名は、3~50字'; $item = new CheckerItemLength($this->getField('company_name'), 3, 50, $msg); // $checker->addItem($item); // 文字制限 $msg = '住所は100字までです。'; $checker->addItem(new CheckerItemLength($this->getField('company_address'), 0, 100, $msg)); $msg = '電話番号は20字までです。'; $checker->addItem(new CheckerItemLength($this->getField('company_tel'), 0, 20, $msg)); $msg = 'FAX番号は20字までです。'; $checker->addItem(new CheckerItemLength($this->getField('company_fax'), 0, 20, $msg)); $msg = '担当者名は50字までです。'; $checker->addItem(new CheckerItemLength($this->getField('tanto_name'), 0, 50, $msg)); $msg = '振り仮名は50字までです。'; $checker->addItem(new CheckerItemLength($this->getField('tanto_kana'), 0, 50, $msg)); $msg = 'メールアドレスは100字までです。'; $checker->addItem(new CheckerItemLength($this->getField('tanto_mail'), 0, 100, $msg)); $msg = '金融機関名は50字までです。'; $checker->addItem(new CheckerItemLength($this->getField('bank_name'), 0, 50, $msg)); $msg = '支店名は50字までです。'; $checker->addItem(new CheckerItemLength($this->getField('bank_branch_name'), 0, 50, $msg)); $msg = '口座番号は10桁までです。'; $checker->addItem(new CheckerItemLength($this->getField('kouza_no'), 0, 10, $msg)); $msg = '口座名義人(漢字)は50字までです。'; $checker->addItem(new CheckerItemLength($this->getField('kouza_meigi_name'), 0, 50, $msg)); $msg = '口座名義人(カナ)は50字までです。'; $checker->addItem(new CheckerItemLength($this->getField('kouza_meigi_kana'), 0, 50, $msg)); return $checker; }
/** * 入力された項目のチェックを行います。 */ public function Anken_PriceReserveEdit_checkInputItems(&$anken, &$o, $old = null) { $db =& $this->_core->getDB(); // 案件ID $ankenId = $anken['anken_id']; // キャンペーンコード $code = $anken['campaign_code']; // 単価タイプ取得 $priceTypeCd = $anken['price_type_cd']; // ID別売上・原価設定 $useOptionPrice = $anken['use_option_price']; // エラーメッセージ $errorMessage = array(); //---------------------------------------------- // check //---------------------------------------------- $mediaId = $o->getField('media_id')->getValue(); $reserveDate = $o->getField('reserve_date')->getValue(); $reserveHour = $o->getField('reserve_hour')->getValue(); // 更新の場合は旧メディアIDと変更がある場合のみ重複チェックを行う if (is_null($old) == false) { $oldMediaId = $old->getField('media_id')->getValue(); } // 選択されたメディアが提携されているかチェック if (is_null($old) == true || is_null($old) == false && $mediaId != $oldMediaId) { $countTeikei = $this->Anken_PriceReserveEdit_getTeikeiMedieCount($code, $mediaId); if ($countTeikei == 0) { $errorMessage[] = '選択されているメディアは提携メディア登録されていません。'; } } // 予約日時のチェック if (time() > strtotime($reserveDate . " " . $reserveHour . ":00:00")) { $errorMessage[] = '予約日時が過去の日付です。'; } // 予約済みかどうかチェック $countReserve = $this->Anken_PriceReserveEdit_getPriceReserveCount($ankenId, $mediaId, $reserveDate, $reserveHour); if (is_null($old) == true && $countReserve > 0) { $errorMessage[] = '選択されているメディア、予約日時は既に登録されています。'; } //---------------------------------------------- // 入力確認 //---------------------------------------------- $check =& $o->getChecker(); $check->checkAll(); if ($check->getErrorCount() > 0) { $errorMessage = array_merge($errorMessage, $check->getErrorMessage()); } // 定率案件の場合、小数点をチェック if ($priceTypeCd == "2") { $check =& $o->getCheckerForRateAnken(); $check->checkAll(); if ($check->getErrorCount() > 0) { $errorMessage = array_merge($errorMessage, $check->getErrorMessage()); } } else { if ($useOptionPrice == "1") { // ID別売上・原価設定(カスタム金額)の場合は複数チェックを行う $checker = new DataChecker(); $count = 0; foreach ($o->getFields() as $field) { $key = $field->getName(); if (ereg("^price([0-9]+)\$", $key, $match) == true) { $valueId = $match[1]; $msg = "金額{$count}の売上は10桁までの数字です。"; $item = new CheckerItemLength($o->getField("price{$valueId}"), 1, 10, $msg); $checker->addItem($item); $msg = "金額{$count}の原価は10桁までの数字です。"; $item = new CheckerItemLength($o->getField("oroshi{$valueId}"), 1, 10, $msg); $checker->addItem($item); $count++; } } $checker->checkAll(); if ($checker->getErrorCount() > 0) { $errorMessage = array_merge($errorMessage, $checker->getErrorMessage()); } // オプション値の数が提携メディアの単価数が一致しない場合はエラー $price = new DataSeikaOptionPrice_v3(); $price->getField('anken_id')->setValue($ankenId); $price->getField('media_id')->setValue($mediaId); $price->getField('option_id')->setValue("1"); $sql = $price->getSelectSQL_Bind_ChangedField(); $param =& $price->getChangedFieldValues(); $price =& $db->query($sql, $param); if ($count != count($price)) { $msg = "メディア[{$mediaId}]に登録されている金額項目数が一致しません。提携メディア画面で金額を登録して下さい。"; $errorMessage = array_merge($errorMessage, array($msg)); } } else { // 定額案件 $check =& $o->getCheckerTeigaku(); $check->checkAll(); if ($check->getErrorCount() > 0) { $errorMessage = array_merge($errorMessage, $check->getErrorMessage()); } } } return $errorMessage; }
/** * 休止期間の時間をチェック */ public function &getCheckerForSuspendHouser() { $checker = new DataChecker(); $msg = '休止期間(From)の時間は0~23時で入力して下さい。'; $checker->addItem(new CheckerItemNumeric($this->getField('suspend_from_hour'), 0, 23, $msg)); $msg = '休止期間(To)の時間は0~23時で入力して下さい。'; $checker->addItem(new CheckerItemNumeric($this->getField('suspend_to_hour'), 0, 23, $msg)); return $checker; }