Ejemplo n.º 1
0
  /**
   * <br>
   * [機 能] 指定された項目の未入力チェックを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param errors アクションエラー
   * @param value 項目の値
   * @param element 項目名
   * @param elementName 項目名(日本語)
   * @return チェック結果 true : 正常, false : 異常
   */
  private boolean __checkNoInput(
      ActionErrors errors, String value, String element, String elementName) {
    boolean result = true;
    ActionMessage msg = null;

    if (StringUtil.isNullZeroString(value)) {
      msg = new ActionMessage("error.input.required.text", elementName);
      errors.add(element + "error.input.required.text", msg);
      result = false;
      log__.debug("error:6");
    } else {
      // スペースのみの入力かチェック
      if (ValidateUtil.isSpace(value)) {
        msg = new ActionMessage("error.input.spase.only", elementName);
        errors.add(element + "error.input.spase.only", msg);
        result = false;
      }
    }

    return result;
  }
Ejemplo n.º 2
0
  /**
   * <br>
   * [機 能] 入力チェックを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param con コネクション
   * @param reqMdl リクエスト情報
   * @param sessionUsrSid セッションユーザSID
   * @return errors エラー
   * @throws SQLException SQL実行時例外
   */
  public ActionErrors validateCheck(Connection con, RequestModel reqMdl, int sessionUsrSid)
      throws SQLException {

    ActionErrors errors = new ActionErrors();
    ActionMessage msg = null;
    boolean errorFlg = false;
    GsMessage gsMsg = new GsMessage(reqMdl);
    // 利用目的 未入力チェック
    if (StringUtil.isNullZeroString(rsv210Mokuteki__)) {
      msg = new ActionMessage("error.input.required.text", gsMsg.getMessage("reserve.72"));
      StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki");
      errorFlg = true;
      // 利用目的 桁数チェック
    } else if (rsv210Mokuteki__.length() > GSConstReserve.MAX_LENGTH_MOKUTEKI) {
      msg =
          new ActionMessage(
              "error.input.length.text",
              gsMsg.getMessage("reserve.72"),
              String.valueOf(GSConstReserve.MAX_LENGTH_MOKUTEKI));
      StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki");
      errorFlg = true;
      // 利用目的 スペースのみチェック
    } else if (ValidateUtil.isSpace(rsv210Mokuteki__)) {
      msg = new ActionMessage("error.input.spase.only", gsMsg.getMessage("reserve.72"));
      StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki");
      errorFlg = true;
      // 利用目的 先頭スペースチェック
    } else if (ValidateUtil.isSpaceStart(rsv210Mokuteki__)) {
      msg = new ActionMessage("error.input.spase.start", gsMsg.getMessage("reserve.72"));
      StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki");
      errorFlg = true;
      // 利用目的 タブスペースチェック
    } else if (ValidateUtil.isTab(rsv210Mokuteki__)) {
      msg = new ActionMessage("error.input.tab.text", gsMsg.getMessage("reserve.72"));
      StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki");
      errorFlg = true;
      // 利用目的 JIS第2水準チェック
    } else if (!GSValidateUtil.isGsJapaneaseString(rsv210Mokuteki__)) {
      // 利用不可能な文字を入力した場合
      String nstr = GSValidateUtil.getNotGsJapaneaseString(rsv210Mokuteki__);
      msg = new ActionMessage("error.input.njapan.text", gsMsg.getMessage("reserve.72"), nstr);
      StrutsUtil.addMessage(errors, msg, "rsv210Mokuteki");
      errorFlg = true;
    }

    // 時間大小チェック
    String timeFrom =
        StringUtil.toDecFormat(rsv210SelectedHourFr__, "00")
            + StringUtil.toDecFormat(rsv210SelectedMinuteFr__, "00");

    String timeTo =
        StringUtil.toDecFormat(rsv210SelectedHourTo__, "00")
            + StringUtil.toDecFormat(rsv210SelectedMinuteTo__, "00");

    boolean timeError = Integer.parseInt(timeFrom) >= Integer.parseInt(timeTo);
    if (timeError) {
      msg =
          new ActionMessage(
              "error.input.comp.text",
              gsMsg.getMessage("reserve.159"),
              gsMsg.getMessage("cmn.start.lessthan.end"));
      StrutsUtil.addMessage(errors, msg, "rsvtime");
      errorFlg = true;
    }

    // 内容
    if (!StringUtil.isNullZeroString(rsv210Naiyo__)) {
      // 内容 桁数チェック
      if (rsv210Naiyo__.length() > GSConstReserve.MAX_LENGTH_NAIYO) {
        msg =
            new ActionMessage(
                "error.input.length.textarea",
                gsMsg.getMessage("cmn.content"),
                String.valueOf(GSConstReserve.MAX_LENGTH_NAIYO));
        StrutsUtil.addMessage(errors, msg, "rsv210Naiyo");
        errorFlg = true;
      }
      // 内容 スペース・改行のみチェック
      if (ValidateUtil.isSpaceOrKaigyou(rsv210Naiyo__)) {
        msg = new ActionMessage("error.input.spase.cl.only", gsMsg.getMessage("cmn.content"));
        StrutsUtil.addMessage(errors, msg, "rsv210Naiyo");
        errorFlg = true;
      }
      // 内容 JIS第2水準チェック
      if (!GSValidateUtil.isGsJapaneaseStringTextArea(rsv210Naiyo__)) {
        // 利用不可能な文字を入力した場合
        String nstr = GSValidateUtil.getNotGsJapaneaseStringTextArea(rsv210Naiyo__);
        msg = new ActionMessage("error.input.njapan.text", gsMsg.getMessage("cmn.content"), nstr);
        StrutsUtil.addMessage(errors, msg, "rsv210Naiyo");
        errorFlg = true;
      }
    }

    // 予約チェック
    if (!errorFlg) {
      ArrayList<String> hiddArray = __getIkkatuKey();

      RsvSisDataDao dataDao = new RsvSisDataDao(con);
      HashMap<Integer, Rsv210Model> map = dataDao.getIkkatuTorokuGroupMap(hiddArray);

      for (String key : hiddArray) {

        errorFlg = false;

        // 施設の情報を取得
        String sisetuSid = key.substring(key.indexOf("-") + 1);

        Rsv210Model mapMdl = map.get(new Integer(sisetuSid));
        if (mapMdl == null) {
          continue;
        }

        // 予約可能期限チェック(期限が設定されていればチェックする)
        String kigen = mapMdl.getRsdProp6();
        if (!StringUtil.isNullZeroString(kigen)) {

          // 施設グループ管理者の場合は予約可能期限チェックをパスする
          RsvCommonBiz rsvBiz = new RsvCommonBiz();
          if (!rsvBiz.isGroupAdmin(con, new Integer(sisetuSid), reqMdl.getSmodel().getUsrsid())) {

            UDate now = new UDate();
            UDate udKigen = now.cloneUDate();
            udKigen.addDay(Integer.parseInt(kigen));

            String kigenYmd = udKigen.getDateString();
            String keyYmd = key.substring(0, key.indexOf("-"));

            if (Integer.parseInt(keyYmd) > Integer.parseInt(kigenYmd)) {

              UDate errDay = new UDate();
              errDay.setDate(keyYmd);
              String errDayStr =
                  gsMsg.getMessage("cmn.year", new String[] {errDay.getStrYear()})
                      + errDay.getStrMonth()
                      + gsMsg.getMessage("cmn.month")
                      + errDay.getStrDay()
                      + gsMsg.getMessage("cmn.day")
                      + "("
                      + UDateUtil.getStrWeek(errDay.getWeek(), reqMdl)
                      + ") "
                      + mapMdl.getRsdName();

              String kigenStr =
                  gsMsg.getMessage("cmn.comments")
                      + mapMdl.getRsdProp6()
                      + gsMsg.getMessage("cmn.days.after");

              msg = new ActionMessage("error.kigen.over.sisetu", errDayStr, kigenStr);
              StrutsUtil.addMessage(errors, msg, "sisetu" + key);
              errorFlg = true;
            }
          }
        }

        // 重複のチェック(重複登録 = 不可の場合にチェック)
        String tyohuku = mapMdl.getRsdProp7();
        if (!errorFlg
            && !StringUtil.isNullZeroString(tyohuku)
            && Integer.parseInt(tyohuku) == GSConstReserve.PROP_KBN_HUKA) {

          RsvSisYrkDao yrkDao = new RsvSisYrkDao(con);

          UDate[] chkDate = __getYrkDate(key);
          UDate udYrk = chkDate[0];
          UDate chkFrDate = chkDate[1];
          UDate chkToDate = chkDate[2];

          // 登録予定の時間帯に既に予約がある場合はエラー
          if (!yrkDao.isYrkOk(-1, Integer.parseInt(sisetuSid), chkFrDate, chkToDate)) {

            String errDayStr =
                gsMsg.getMessage("cmn.year", new String[] {udYrk.getStrYear()})
                    + udYrk.getStrMonth()
                    + gsMsg.getMessage("cmn.month")
                    + udYrk.getStrDay()
                    + gsMsg.getMessage("cmn.day")
                    + "("
                    + UDateUtil.getStrWeek(udYrk.getWeek(), reqMdl)
                    + ") "
                    + mapMdl.getRsdName();

            msg = new ActionMessage("error.yrk.exist.reserve", errDayStr);
            StrutsUtil.addMessage(errors, msg, "tyohuku" + key);
          }
        }
      }
    }

    // スケジュール重複チェック
    if (!timeError) {

      RelationBetweenScdAndRsvChkBiz schChkBiz = new RelationBetweenScdAndRsvChkBiz(reqMdl, con);

      if (rsv210SchKbn__ == GSConstReserve.RSV_SCHKBN_GROUP) {
        String grpSid = getRsv210SchGroupSid();
        if (NullDefault.getInt(grpSid, -1) >= 0) {

          // 例外アクセス
          schChkBiz.validateSpCaceGroupForSchedule(
              errors, grpSid, sessionUsrSid, "rsv210SchGroupSid");

          //                    schChkBiz.validateGroupForSchedule(errors, grpSid,
          //                            sessionUsrSid, "rsv210SchGroupSid");
        }
      } else {

        String[] users = getSv_users();
        if (rsv210SchKbn__ == GSConstReserve.RSV_SCHKBN_USER && users != null && users.length > 0) {

          ArrayList<String> hiddArray = __getIkkatuKey();
          List<UDate[]> dateList = new ArrayList<UDate[]>();
          for (String key : hiddArray) {
            UDate[] chkDate = __getYrkDate(key);
            dateList.add(new UDate[] {chkDate[1], chkDate[2]});
          }

          // 例外アクセス
          schChkBiz.validateSpCaceUserForSchedule(errors, users, sessionUsrSid, "sv_users");

          schChkBiz.validateDateForSchedule(
              errors, dateList, users, 0, false, sessionUsrSid, "rsv210Date");
        }
      }
    }

    return errors;
  }