/** * <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; }
/** * <br> * [機 能] 初期表示を行う <br> * [解 説] <br> * [備 考] * * @param paramMdl Ntp120ParamModel * @param sessionUserSid セッションユーザSID * @param con コネクション * @throws SQLException SQL実行エラー */ public void setInitData(Ntp120ParamModel paramMdl, int sessionUserSid, Connection con) throws SQLException { paramMdl.setDspMod(GSConstNippou.DSP_MOD_MASTA); /** -----------各マスタの件数と最終更新日を取得----------- */ Ntp120Dao dao = new Ntp120Dao(con); Ntp120DataModel dataMdl = null; // 商品マスタ dataMdl = dao.getShohinData(); if (dataMdl != null) { paramMdl.setNtp120ShohinCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120ShohinDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } // 業種マスタ dataMdl = dao.getGyoushuData(); if (dataMdl != null) { paramMdl.setNtp120GyoushuCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120GyoushuDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } // プロセスマスタ dataMdl = dao.getProcessData(); if (dataMdl != null) { paramMdl.setNtp120ProcessCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120ProcessDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } // 活動分類 dataMdl = dao.getKtBunruiData(); if (dataMdl != null) { paramMdl.setNtp120KtBunruiCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120KtBunruiDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } // 活動方法 dataMdl = dao.getKtHouhouData(); if (dataMdl != null) { paramMdl.setNtp120KtHouhouCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120KtHouhouDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } // コンタクト dataMdl = dao.getContactData(); if (dataMdl != null) { paramMdl.setNtp120ContactCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120ContactDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } // 目標 dataMdl = dao.getTargetData(); if (dataMdl != null) { paramMdl.setNtp120TargetCnt(dataMdl.getCount()); if (dataMdl.getLastEdate() != null) { paramMdl.setNtp120TargetDay(UDateUtil.getSlashYYMD(dataMdl.getLastEdate())); } dataMdl = null; } }