2023-12-08 17:53 청소년강좌신청 수정

This commit is contained in:
myname 2023-12-08 17:53:55 +09:00
parent 06fbe8fc70
commit 52e90fca52
13 changed files with 921 additions and 30 deletions

View File

@ -42,8 +42,10 @@ public interface VEAStngMixService {
//vea_lctr_psbl_prd_stng - 해당 회차의 신청 가능한 기간일지 체크 //vea_lctr_psbl_prd_stng - 해당 회차의 신청 가능한 기간일지 체크
boolean eduAplctChkDate(VEAStngVO vEAStngVO , HttpServletRequest request) throws Exception; boolean eduAplctChkDate(VEAStngVO vEAStngVO , HttpServletRequest request) throws Exception;
//vea_lctr_psbl_prd_stng - 해당 회차의 신청 가능한 기간일지 체크 //vea_lctr_psbl_prd_stng - 해당 회차의 신청 가능한 기간일지 체크 //전체신청체크
String eduAplctChkDateToStr(VEAStngVO vEAStngVO , HttpServletRequest request) throws Exception; String eduAplctChkDateToStr(VEAStngVO vEAStngVO , HttpServletRequest request) throws Exception;
//건별체크
String eduAplctEAChkDateToStr(String p_rndsOrd, String p_eduHopeDt) throws Exception;
//vea_lctr_rnds_stng - 해당 회차의 신청 가능한 시간인지 체크 //vea_lctr_rnds_stng - 해당 회차의 신청 가능한 시간인지 체크
//vea_area_lctr_stng //vea_area_lctr_stng

View File

@ -202,6 +202,52 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
return v_ret; return v_ret;
} }
@Override
public String eduAplctEAChkDateToStr(
String p_rndsOrd
//, HttpServletRequest request
, String p_eduHopeDt
) throws Exception {
boolean flag = true;
String v_ret = "";
//교육 희망일자별로 가능한 일자인지 확인 한다.
System.out.println("vEAStngVO.toString()1");
System.out.println(p_eduHopeDt);
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setRndsOrd(p_rndsOrd);
//교육희망일
vEAStngVO.setLctrPsblStrtDt(p_eduHopeDt);
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
VEAStngVO dateVO = vEAStngMixDAO.selectEduAplctDateChkList(vEAStngVO);
System.out.println("vEAStngVO.toString()3");
if (dateVO==null) {
//대상 기간이 없다.
flag = false;
v_ret = p_eduHopeDt;
}else {
// 날짜에 부합하는 데이터가 없는 경우 flag 변경 처리
//가능한 기간에 값이 있고, 불가능한 기간에 값이 없음
if (Integer.parseInt(dateVO.getDpStrtDt())>0 && Integer.parseInt(dateVO.getDpDdlnDt())<=0){
;
}else {
flag = false;
v_ret = p_eduHopeDt;
}
}
return v_ret;
}
@Override @Override
public boolean eduAplctChkTime(VEAStngVO vEAStngVO, HttpServletRequest request) throws Exception { public boolean eduAplctChkTime(VEAStngVO vEAStngVO, HttpServletRequest request) throws Exception {

View File

@ -91,6 +91,9 @@ public class ScholInfoVO extends ComDefaultVO implements Serializable {
private String isltn2Yn; //벽지지역여부 private String isltn2Yn; //벽지지역여부
private String isltn3Yn; //접적지역여부 private String isltn3Yn; //접적지역여부
private String ppltnReducAreaYn; //인구감소지역여부 private String ppltnReducAreaYn; //인구감소지역여부
private String rndsOrd;
public String getScholId() { public String getScholId() {
return scholId; return scholId;
} }
@ -450,6 +453,14 @@ public class ScholInfoVO extends ComDefaultVO implements Serializable {
public void setPpltnReducAreaYn(String ppltnReducAreaYn) { public void setPpltnReducAreaYn(String ppltnReducAreaYn) {
this.ppltnReducAreaYn = ppltnReducAreaYn; this.ppltnReducAreaYn = ppltnReducAreaYn;
} }
public String getRndsOrd() {
return rndsOrd;
}
public void setRndsOrd(String rndsOrd) {
this.rndsOrd = rndsOrd;
}
} }

View File

@ -23,13 +23,28 @@ public interface EduAplctTngrService {
boolean eduAplctChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception; boolean eduAplctChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//시간체크 - 전체
String eduAplctChkProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception; String eduAplctChkProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//시간체크 - 개별
String eduAplctEAChkProcessToStr(
String p_rndsOrd
, String p_eduSlctCd
, String p_eduSlctAreaCd
, String p_strtTm
, String p_endTm
) throws Exception;
//동일한 일자에 동일대상에 대한 신청이 있는지 확인 - 전체
boolean eduAplctDuplChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception; boolean eduAplctDuplChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//동일한 일자에 동일대상에 대한 신청이 있는지 확인 - 개별
boolean eduAplctDuplEAChkProcess(String p_eduHopeDt, String p_trgt) throws Exception;
//boolean eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception; //boolean eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception;
String eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception; String eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//해당일에 신청가능한 차시가 남아 있는지 - 전체
String eduAplctChkDayChasiProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception; String eduAplctChkDayChasiProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//해당일에 신청가능한 차시가 남아 있는지 - 개별
String eduAplctChkDayChasiEAProcessToStr(String p_rndsOrd, String p_eduHopeDt) throws Exception;
} }

View File

@ -653,6 +653,62 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return v_ret; return v_ret;
} }
//개별 시간 체크
@Override
public String eduAplctEAChkProcessToStr(
//HttpServletRequest request
//, ModelAndView modelAndView
String p_rndsOrd
, String p_eduSlctCd
, String p_eduSlctAreaCd
, String p_strtTm
, String p_endTm
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//boolean flag = true;
String v_ret = "";
//String eduSlctCd = request.getParameter("eduSlctCd");
//차시 저장
//String s_eduHopeDt = request.getParameter("eduHopeDt");
//String s_strtTm = request.getParameter("strtTm");
//String s_endTm = request.getParameter("endTm");
//String eduSlctAreaCd = request.getParameter("eduSlctAreaCd");
//String prdDivCd = request.getParameter("prdDivCd");
//String rndsOrd = request.getParameter("rndsOrd");
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setRndsOrd(p_rndsOrd);
if ("10".equals(p_eduSlctCd)) { //온라인인 경우
vEAStngVO.setAreaCd("400");
}else { //오프라인인 경우
vEAStngVO.setAreaCd(p_eduSlctAreaCd);
}
vEAStngVO.setLctrPsblStrtTm(p_strtTm);
vEAStngVO.setLctrPsblDdlnTm(p_endTm);
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
List<VEAStngVO> list = vELctrAreaMngDAO.selectList20231024(vEAStngVO);
// 날짜와 시간에 부합하는 데이터가 없는 경우 flag 변경 처리
if(list.size() == 0) {
//flag = false;
v_ret = p_strtTm+"~"+p_endTm;
}
return v_ret;
}
@Override @Override
public boolean eduAplctDuplChkProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, ModelAndView modelAndView) throws Exception { public boolean eduAplctDuplChkProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
@ -688,6 +744,42 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return flag; return flag;
} }
@Override
public boolean eduAplctDuplEAChkProcess(
String p_eduHopeDt
, String p_trgt
//VEEduAplctVO vEEduAplctVO, HttpServletRequest request, ModelAndView modelAndView
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
boolean flag = true;
int cnt = 0;
//String s_eduHopeDt = request.getParameter("eduHopeDt");
//String s_trgt = request.getParameter("trgt");
VEEduAplctVO vo = new VEEduAplctVO();
vo.setUserId(loginVO.getUniqId());
//vo.setEduHopeDt(s_eduHopeDt[i].replaceAll("[^0-9]",""));
vo.setEduHopeDt(p_eduHopeDt);
vo.setTrgt(p_trgt);
vo.setLctrDivCd("10"); //청소년
//해당 사용자가 중복 신청했는지 확인
cnt = vEEduMIXDAO.selectAplctDuplCnt(vo);
// 날짜와 시간에 부합하는 데이터가 없는 경우 flag 변경 처리
if(cnt > 0) {
flag = false;
}
return flag;
}
@Override @Override
public String eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, ModelAndView modelAndView) throws Exception { public String eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, ModelAndView modelAndView) throws Exception {
@ -955,6 +1047,54 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return v_ret; return v_ret;
} }
@Override
public String eduAplctChkDayChasiEAProcessToStr(
//HttpServletRequest request, ModelAndView modelAndView
String p_rndsOrd
, String p_eduHopeDt
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
boolean flag = true;
String v_ret = "";
//차시 저장
//String s_eduHopeDt = request.getParameter("eduHopeDt");
//String rndsOrd = request.getParameter("rndsOrd");
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setRndsOrd(p_rndsOrd); //대상 회차
vEAStngVO.setTrgtDt(p_eduHopeDt); //교육희망일
//해당일의 신청가능한 차시
int i_psblChasi = 0;
try {
i_psblChasi = vELctrAreaMngDAO.selectList20231025(vEAStngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
//해당일의 신청한 차시
int i_aplctChasi = 0;
try {
i_psblChasi = vELctrAreaMngDAO.selectList20231026(vEAStngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
//신청한 차시가 신청가능한 차시보다 크면 신청 불가
if (i_psblChasi<=i_aplctChasi) {
flag = false;
v_ret = p_eduHopeDt;
}
return v_ret;
}
private VEEduAplctVO chkOnChasiWait202310(VEEduAplctVO vEEduAplctVO, HttpServletRequest request) throws Exception { private VEEduAplctVO chkOnChasiWait202310(VEEduAplctVO vEEduAplctVO, HttpServletRequest request) throws Exception {
//1. 지역별강의관리의 해당 지역코드의 총수강시간을 가져옴 //1. 지역별강의관리의 해당 지역코드의 총수강시간을 가져옴

View File

@ -201,11 +201,50 @@ public class EduAplctTngrController {
//현재 신청등록문구 가져오기 //현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO(); model.addAttribute("selectBasicTRInfo", this._loadStng("TR01"));
vEAStngVO.setStngCd("TR01");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
//초등기본교육시간
model.addAttribute("selectBasicTRInfo", vEAStngVO); try {
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR0E");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTR0E", vEAStngVO.getCn());
}catch(Exception ex) {
System.out.println(ex.getMessage());
model.addAttribute("selectBasicTR0E", "70");
}
//초등기본교육시간
try {
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR0M");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTR0M", vEAStngVO.getCn());
}catch(Exception ex) {
System.out.println(ex.getMessage());
model.addAttribute("selectBasicTR0M", "80");
}
//고등기본교육시간
try {
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR0H");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTR0H", vEAStngVO.getCn());
}catch(Exception ex) {
System.out.println(ex.getMessage());
model.addAttribute("selectBasicTR0H", "90");
}
//model.addAttribute("selectBasicTRInfo", vEAStngVO);
return "/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctReg"; return "/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctReg";
@ -279,7 +318,7 @@ public class EduAplctTngrController {
} }
/** /**
* 교육 신청 강의신청기간, 강의가능시간이 유효한지 체크 * 교육 신청 강의신청기간, 강의가능시간이 유효한지 체크 - 전체 내용
*/ */
@RequestMapping("eduAplctChkAjax.do") @RequestMapping("eduAplctChkAjax.do")
public ModelAndView eduAplctChkAjax(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception { public ModelAndView eduAplctChkAjax(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
@ -299,7 +338,7 @@ public class EduAplctTngrController {
if (loginVO == null || ssoLoginVO == null) { if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가 //이전 url 처리(beforeSiteUrl)_이준호_220228추가
modelAndView.addObject("result", "fail4"); modelAndView.addObject("result", "fail5");
return modelAndView; return modelAndView;
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. // return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
} }
@ -359,7 +398,7 @@ public class EduAplctTngrController {
} }
//2-3.해당일 신청가능한 차시가 남았는지(미구현) //2-3.해당일 신청가능한 차시가 남았는지
String s_flag4 = eduAplctTngrService.eduAplctChkDayChasiProcessToStr(request, modelAndView); String s_flag4 = eduAplctTngrService.eduAplctChkDayChasiProcessToStr(request, modelAndView);
if(!"".equals(s_flag4)){ if(!"".equals(s_flag4)){
@ -387,6 +426,173 @@ public class EduAplctTngrController {
return modelAndView; return modelAndView;
} }
/**
* 교육 신청 강의신청기간, 강의가능시간이 유효한지 체크 - 건별 체크
*/
@RequestMapping("eduAplctEAChkAjax.do")
public ModelAndView eduAplctEAChkAjax(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
/*
* //0.로그인 실패-fail4
* //1.교육희망일이 신청 가능한 일자인지 fail3
//2.신청 시간이 해당 지역의 가능한 시간인지 fail
//3.중복시간 체크 - fail2
* */
//로그인 처리====================================
//0.로그인 실패-fail4
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
modelAndView.addObject("result", "fail5");
return modelAndView;
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
/*
* 2.교육신청시 교육희망일 비교하여 가능한 정보를 가져온다.
2-1.신청 가능한 일자인지(구현)
(해당 강의 회차의 교육 가능일자만 신청 가능하도록)
==>vea_lctr_rnds_stng
2-2.신청 가능한 시간인지(구현)
2-3.해당일 신청가능한 차시가 남았는지(미구현)
2-4.동일한 날짜에 신청된 건이 있는지(구현)
* */
try {
//차시 저장
String s_rndsOrd = request.getParameter("rndsOrd"); //회차순번
String s_eduSlctCd = request.getParameter("eduSlctCd"); //,오프 여부
String s_eduSlctAreaCd = request.getParameter("eduSlctAreaCd"); //지역코드
String s_eduHopeDt = request.getParameter("eduHopeDt");
String s_strtTm = request.getParameter("strtTm"); //시작시간
String s_endTm = request.getParameter("endTm"); //종료시간
String s_trgt = request.getParameter("trgt"); //대상
//1.교육희망일이 신청 가능한 일자인지 fail3
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
vEAStngVO.setRndsOrd(s_rndsOrd);
System.out.println(vEAStngVO.toString());
//1.교육희망일 체크 - 교육희망일이 필수값이다.{
{
String s_flag3 = "";
if (!"".equals(s_rndsOrd)
&& !"".equals(s_eduHopeDt)) {
s_flag3 = vEAStngMixService.eduAplctEAChkDateToStr(s_rndsOrd, s_eduHopeDt); //회차값 , 교육희망일
}
if(!"".equals(s_flag3)){
modelAndView.addObject("result", "fail3");
modelAndView.addObject("msg", s_flag3);
return modelAndView;
}
}
//작업 필요함 2023-10-17
//2.신청 시간이 해당 지역의 가능한 시간인지 fail
//신청한 교육 일자 시간이 신청기간에 받을수 있는 지역의 시간, 일자 조건에 맞는지 확인 한다.
//boolean flag = vEAStngMixService.eduAplctChkTime(vEAStngVO, request);
//접수기간에 속한 회차의 년도에서 해당 지역이 신청가능한 시간인지 확인한다.
//2.교육신청시간체크 - //회차, 지역코드값, 시작시간, 종료시간
{
String s_flag = "";
if (!"".equals(s_rndsOrd)
&& !"".equals(s_eduSlctCd)
&& !"".equals(s_eduSlctAreaCd)
&& !"".equals(s_strtTm)
&& !"".equals(s_endTm)
) {
s_flag = eduAplctTngrService.eduAplctEAChkProcessToStr(
s_rndsOrd
, s_eduSlctCd
, s_eduSlctAreaCd
, s_strtTm
, s_endTm
); //회차, 지역코드값, 시작시간, 종료시간
}
if(!"".equals(s_flag)){
modelAndView.addObject("result", "fail");
modelAndView.addObject("msg", s_flag);
return modelAndView;
}
}
//2-3.해당일 신청가능한 차시가 남았는지 확인
//3.교육신청시간체크 - //회차, 지역코드값, 시작시간, 종료시간
{
String s_flag4 = "";
if (!"".equals(s_rndsOrd)
&& !"".equals(s_eduHopeDt)) {
s_flag4 = eduAplctTngrService.eduAplctChkDayChasiEAProcessToStr(s_rndsOrd, s_eduHopeDt); //회차값 , 교육희망일
}
if(!"".equals(s_flag4)){
modelAndView.addObject("result", "fail4");
modelAndView.addObject("msg", s_flag4);
return modelAndView;
}
}
//동일한 신청건이 있는지 확인(신청자아이디, 교육희망일, 교육대상 동일 비교)
//4.동일한 신청건이 있는지 - //교육희망일, 대상자
{
boolean flag2 = true;
if (!"".equals(s_eduHopeDt)
&& !"".equals(s_trgt)) {
flag2 = eduAplctTngrService.eduAplctDuplEAChkProcess(s_eduHopeDt, s_trgt); //교육희망일, 대상자
}
if(!flag2){
modelAndView.addObject("result", "fail2");
return modelAndView;
}
}
modelAndView.addObject("VO", vEEduAplctVO);
modelAndView.addObject("result", "success");
}catch(Exception ex) {
ex.printStackTrace();
}
return modelAndView;
}
/** /**
* // 신청기간에 정상적으로 들어온 것인지 체크하는 로직 * // 신청기간에 정상적으로 들어온 것인지 체크하는 로직
*/ */
@ -1083,4 +1289,15 @@ public class EduAplctTngrController {
return p_paginationInfo; return p_paginationInfo;
} }
private VEAStngVO _loadStng(
String p_stngCd
)throws Exception{
//현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd(p_stngCd);
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
return vEAStngVO;
}
} }

View File

@ -231,18 +231,42 @@ public class AdvAreaLctrMngTngrController {
//로그인 처리==================================== //로그인 처리====================================
//현재 신청등록문구 가져오기 //현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO(); //VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR01"); //vEAStngVO.setStngCd("TR01");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO); //vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTR01Info", this._loadStng("TR01"));
model.addAttribute("selectBasicTR01Info", vEAStngVO);
//청소년강사대시보드 문구 가져오기 //청소년강사대시보드 문구 가져오기
model.addAttribute("selectBasicTR02Info", this._loadStng("TR02"));
/*
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR02"); vEAStngVO.setStngCd("TR02");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO); vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTR02Info", vEAStngVO); model.addAttribute("selectBasicTR02Info", vEAStngVO);
*/
//초등 교육최소시간
model.addAttribute("selectBasicTR0EInfo", this._loadStng("TR0E"));
//vEAStngVO.setStngCd("TR0E");
//vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
//model.addAttribute("selectBasicTR0EInfo", vEAStngVO);
//초등 교육최소시간
model.addAttribute("selectBasicTR0MInfo", this._loadStng("TR0M"));
//vEAStngVO.setStngCd("TR0M");
//vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
//model.addAttribute("selectBasicTR0MInfo", vEAStngVO);
//초등 교육최소시간
model.addAttribute("selectBasicTR0HInfo", this._loadStng("TR0H"));
//vEAStngVO.setStngCd("TR0H");
//vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
//model.addAttribute("selectBasicTR0HInfo", vEAStngVO);
return "oprtn/tngrVisitEdu/advStngMngList"; return "oprtn/tngrVisitEdu/advStngMngList";
} }
@ -1626,4 +1650,15 @@ public class AdvAreaLctrMngTngrController {
return p_paginationInfo; return p_paginationInfo;
} }
private VEAStngVO _loadStng(
String p_stngCd
)throws Exception{
//현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd(p_stngCd);
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
return vEAStngVO;
}
} }

View File

@ -93,7 +93,7 @@
VALUES( VALUES(
#stngCd#, #stngCd#,
#useYn#, #cn#,
SYSDATE, SYSDATE,
#frstRegisterId#, #frstRegisterId#,

View File

@ -575,7 +575,18 @@
on( on(
aaa.datez=replace(fff.edu_hope_dt,'.','-') aaa.datez=replace(fff.edu_hope_dt,'.','-')
) )
/* Step4.신청가능 기간을 가져오고 rndsOrd로 대상 제한하기*/
LEFT OUTER JOIN vea_lctr_psbl_prd_stng ggg
on(
aaa.datez_str BETWEEN ggg.lctr_psbl_strt_dt AND ggg.lctr_psbl_ddln_dt
AND ggg.lctr_psbl_yn='Y'
<isNotEmpty property="rndsOrd">
AND ggg.rnds_ord=#rndsOrd#
</isNotEmpty>
)
/* Step5.각 년도의 기본 시수를 가져온다. */ /* Step5.각 년도의 기본 시수를 가져온다. */
, vea_lctr_yr_stng ccc , vea_lctr_yr_stng ccc
@ -583,6 +594,8 @@
AND aaa.num_week in(2,3,4,5,6) AND aaa.num_week in(2,3,4,5,6)
AND aaa.datez LIKE ccc.yr||'%' AND aaa.datez LIKE ccc.yr||'%'
AND eee.LCTR_PSBL_PRD_ORD is not null AND eee.LCTR_PSBL_PRD_ORD is not null
AND ggg.LCTR_PSBL_PRD_ORD IS NOT NULL
ORDER BY aaa.datez ORDER BY aaa.datez

View File

@ -140,7 +140,76 @@
</div> </div>
</div> </div>
--> -->
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육최소시간설정</h2>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;height:100px;">
<col style="width: auto;height:100px;">
</colgroup>
<tr>
<th scope="row">
<p>교육최소시간 - 초등</p>
</th>
<td>
<c:choose>
<c:when test="${not empty selectBasicTR0EInfo}">
<input type="text" name="cn0E" id="cn0E" value="<c:out value='${selectBasicTR0EInfo.cn}'/>"/>
</c:when>
<c:otherwise>
<input type="text" name="cn0E" id="cn0E" value="70"/>
</c:otherwise>
</c:choose>분
&nbsp;<button type="button" class="btn_type08" onclick="fncUpdate('#cn0E','TR0E');return false;">수정</button>
기본 70분
</td>
</tr>
<tr>
<th scope="row">
<p>교육최소시간 - 중등</p>
</th>
<td>
<c:choose>
<c:when test="${not empty selectBasicTR0MInfo}">
<input type="text" name="cn0M" id="cn0M" value="<c:out value='${selectBasicTR0MInfo.cn}'/>"/>
</c:when>
<c:otherwise>
<input type="text" name="cn0M" id="cn0M" value="80"/>
</c:otherwise>
</c:choose>분
&nbsp;<button type="button" class="btn_type08" onclick="fncUpdate('#cn0M','TR0M');return false;">수정</button>
기본 80분
</td>
</tr>
<tr>
<th scope="row">
<p>교육최소시간 - 고등</p>
</th>
<td>
<c:choose>
<c:when test="${not empty selectBasicTR0HInfo}">
<input type="text" name="cn0H" id="cn0H" value="<c:out value='${selectBasicTR0HInfo.cn}'/>"/>
</c:when>
<c:otherwise>
<input type="text" name="cn0H" id="cn0H" value="90"/>
</c:otherwise>
</c:choose>분
&nbsp;<button type="button" class="btn_type08" onclick="fncUpdate('#cn0H','TR0H');return false;">수정</button>
기본 90분
</td>
</tr>
</tbody>
</table>
</div>
<!-- cont_tit --> <!-- cont_tit -->
<div class="cont_tit"> <div class="cont_tit">
@ -179,7 +248,7 @@
</div> </div>
<div class="btn_center"> <div class="btn_center">
<button type="button" class="btn_type08" onclick="fncUpdate('#cn01','TR01');return false;">내용 수정</button> <button type="button" class="btn_type08" onclick="fncUpdate('#cn01','TR0');return false;">내용 수정</button>
</div> </div>
<div class="btn_right"> <div class="btn_right">
<button type="button" class="btn_type03" onclick="fncPreviewEmail('TR01');return false;">미리보기</button> <button type="button" class="btn_type03" onclick="fncPreviewEmail('TR01');return false;">미리보기</button>

View File

@ -114,6 +114,7 @@
//todate : info.startStr, //todate : info.startStr,
//todate : s_todate, //todate : s_todate,
//todate : "", //todate : "",
rndsOrd : '${scholInfoVO.rndsOrd }',
searchYearMonth : function(){ searchYearMonth : function(){
return ""; return "";
} }
@ -349,6 +350,7 @@
<div class="cont_tit" style="padding-top: 0px;"> <div class="cont_tit" style="padding-top: 0px;">
<input type="hidden" id="searchCalendarCode" value=""> <input type="hidden" id="searchCalendarCode" value="">
<h2>교육신청가능일자현황</h2> <h2>교육신청가능일자현황</h2>
/${scholInfoVO.rndsOrd }/
<!-- <!--
<ul class="cont_nav"> <ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li> <li class="home"><a href="/"><i></i></a></li>

View File

@ -54,6 +54,174 @@
<script type="text/javaScript"> <script type="text/javaScript">
var psblFlag = "Y";//학생 신청가능기간여부 체크 var psblFlag = "Y";//학생 신청가능기간여부 체크
var v_TR0E = '${selectBasicTR0E}'; //초등 기본 교육시간
var v_TR0M = '${selectBasicTR0M}'; //중등 기본 교육시간
var v_TR0H = '${selectBasicTR0H}'; //고등 기본 교육시간
//교육희망일자가 가능한 일자인지 확인한다.
function _fncEduHopeDt(p_idx){
//console.log(eduHopeDt);
//var eduHopeDt = $(this).find('input[name=eduHopeDt]').val();
//var strtTm = $(this).find('input[name=strtTm]').val();
//var endTm = $(this).find('input[name=endTm]').val();
//var eduSlctAreaCd = $("select[name=eduSlctAreaCd]").val();
//var trgt = $(this).find('input[name=trgt]').val();
var eduSlctCd = $("select[name=eduSlctCd]").val();
var eduSlctAreaCd = $("select[name=eduSlctAreaCd]").val();
var eduHopeDt = $('.duet-date__input:eq('+p_idx+')').val();
var strtTm = "";
var endTm = "";
var eduSlctAreaCd = "";
var trgt = "";
var rndsOrd = $('input[name=rndsOrd]').val();
_fncEduHopeDtStep1(
rndsOrd
, eduSlctCd
, eduSlctAreaCd
, eduHopeDt
, strtTm
, endTm
, trgt
, p_idx
);
}
//교육희망일자가 가능한 일자인지 확인한다.
function _fncEduHopeDtStep1(
p_rndsOrd
, p_eduSlctCd
, p_eduSlctAreaCd
, p_eduHopeDt
, p_strtTm
, p_endTm
, p_trgt
, p_idx
){
console.log('p_eduHopeDt s');
console.log(p_eduHopeDt);
console.log('p_eduHopeDt e');
var duplChk = false;
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctEAChkAjax.do",
data: {
"rndsOrd":p_rndsOrd,
"eduSlctCd" : p_eduSlctCd,
"eduSlctAreaCd" : p_eduSlctAreaCd,
"eduHopeDt" : p_eduHopeDt ,
"strtTm" : p_strtTm,
"endTm" : p_endTm,
"trgt" : p_trgt,
},
dataType:'json',
async: false,
success:function(returnData){
if(returnData.result == "fail5"){
alert("로그인 후 다시 교육신청해 주세요.");
flag = false;
return;
}else if(returnData.result == "fail4"){
//alert("가능한 교육희망일자가 아닙니다.");
alert(returnData.msg+"일에 신청 가능한 차시수를 넘어서 더 이상 신청이 불가능합니다.");
flag = false;
return;
}else if(returnData.result == "fail3"){
//alert("가능한 교육희망일자가 아닙니다.");
$('.duet-date__input:eq('+p_idx+')').val('');
alert(returnData.msg+"일은 교육가능일자가 아닙니다.");
flag = false;
return;
}else if(returnData.result == "fail"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert(returnData.msg+"는 강의가능시간이 아닙니다.");
flag = false;
return;
}
if(!duplChk) {
if(returnData.result == "fail2"){
if(confirm("중복된 신청 건이 있습니다. 진행하시겠습니까?")){
//중복신청건이 있어도 등록(최초 질의 후 재질의 방지)
duplChk = true;
} else {
flag = false;
}
return;
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//교육신청시간이 최소시간 및 가능시간인지 확인한다.
function _chkChasiTime(p_this){
//console.log(eduHopeDt);
var p_lrnTm = $(p_this).val();
//alert(p_lrnTm);
//var eduHopeDt = $(this).find('input[name=eduHopeDt]').val();
//var strtTm = $(this).find('input[name=strtTm]').val();
//var endTm = $(this).find('input[name=endTm]').val();
//var eduSlctAreaCd = $("select[name=eduSlctAreaCd]").val();
//var trgt = $(this).find('input[name=trgt]').val();
var eduSlctCd = $("select[name=eduSlctCd]").val();
var eduSlctAreaCd = $("select[name=eduSlctAreaCd]").val();
var eduHopeDt = $('.duet-date__input:eq('+p_idx+')').val();
var strtTm = "";
var endTm = "";
var eduSlctAreaCd = "";
var trgt = "";
var rndsOrd = $('input[name=rndsOrd]').val();
_fncEduHopeDtStep1(
rndsOrd
, eduSlctCd
, eduSlctAreaCd
, eduHopeDt
, strtTm
, endTm
, trgt
, p_idx
);
}
// 신청하는 차시가 유효한 신청기간인지, 강의가능시간인지 체크하는 로직
// =>강의 가능 시간 여부만 체크로 변경 2022-02-28
// 추가로, 본인이 등록했던 신청건인지 체크(사용자아이디, 학교명, 교육희망일, 교육대상 비교)
//1.교육희망일이 신청 가능한 일자인지
//2.신청 시간이 해당 지역의 가능한 시간인지
//3.중복시간 체크
$( document ).ready(function(){ $( document ).ready(function(){
/* $('.chasu_calendar').pickadate({ /* $('.chasu_calendar').pickadate({
@ -146,6 +314,42 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
$("select[name=divCd] option[value='10']").remove(); $("select[name=divCd] option[value='10']").remove();
$("select[name=divCd] option[value='20']").remove(); $("select[name=divCd] option[value='20']").remove();
$("select[name=divCd] option[value='30']").remove(); $("select[name=divCd] option[value='30']").remove();
/*
$(".duet-date__input").each(function(idx,itm){
//console.log(' each idx ', idx);
//$(itm).attr("name","eduHopeDt"+idx);
//$(itm).attr("id","eduHopeDt"+idx);
$(itm).attr("onBlue","_eduHopeDt(this)");
idx+=1;
}) ;
*/
setTimeout(function(){
$("duet-date-picker .duet-date__input").each(function(idx,itm){
if ($(itm).attr('onblur')=="undefined" || $(itm).attr('onblur')==null){
$(itm).attr('onblur','_fncEduHopeDt('+idx+');');
}
//idx+=1;
});
$("duet-date-picker .duet-date__dialog").each(function(idx,itm){
if ($(itm).attr('onclick')=="undefined" || $(itm).attr('onclick')==null){
$(itm).attr('onclick','_fncEduHopeDt('+idx+');');
}
});
},1000)
}); });
function fncScholList(paramObj) { function fncScholList(paramObj) {
@ -179,7 +383,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
$("#addr").val(schData.newAddr); $("#addr").val(schData.newAddr);
$("#addrDetail").val(schData.newAddrDtl); $("#addrDetail").val(schData.newAddrDtl);
alert(schData.isltnYn); //alert(schData.isltnYn);
$('input[name=scholDivCd][value='+schData.scholDivCd+']').prop('checked', true); $('input[name=scholDivCd][value='+schData.scholDivCd+']').prop('checked', true);
//$('input[name=isltnScholYn][value='+schData.isltnScholYn+']').prop('checked', true); //$('input[name=isltnScholYn][value='+schData.isltnScholYn+']').prop('checked', true);
@ -253,9 +457,12 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
var data = new FormData(document.getElementById("createForm")); var data = new FormData(document.getElementById("createForm"));
if(type == 'S' || type == 'E' ){ if(type == 'S' || type == 'E' ){
// 입력 데이터 유효성 체크 // 입력 데이터 유효성 체크(시간만체크)
if (!timeValidCheck()) return;
// 입력 데이터 유효성 체크(시간이외체크)
if (!validCheck()) return; if (!validCheck()) return;
// 작성한 차시가 신청 가능한 기간/시간인지 체크(관리자 지역별 강의관리 참고) 및 중복신청건 조회 // 작성한 차시가 신청 가능한 기간/시간인지 체크(관리자 지역별 강의관리 참고) 및 중복신청건 조회
//DB로 체크
if(!checkAplctPsbl()) return; if(!checkAplctPsbl()) return;
} }
@ -393,7 +600,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
return false; return false;
} }
var flag = true; var flag = true;
var all_lrnTm = 0; //var all_lrnTm = 0;
$.each(trObj , function(idx, row){ $.each(trObj , function(idx, row){
if($(this).find('input[name=eduHopeDt]').val() == ''){ if($(this).find('input[name=eduHopeDt]').val() == ''){
@ -470,6 +677,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
return flag = false; return flag = false;
} }
/*
var lrnTm = Number($('input[name=lrnTm]:eq('+idx+')').val()); var lrnTm = Number($('input[name=lrnTm]:eq('+idx+')').val());
var scholDivCd = $('#scholDivCd').val(); var scholDivCd = $('#scholDivCd').val();
@ -497,6 +705,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
} }
all_lrnTm = all_lrnTm + lrnTm; all_lrnTm = all_lrnTm + lrnTm;
*/
}); });
@ -507,11 +716,13 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
//alert(VeConstants.CLASS_CD_10); //alert(VeConstants.CLASS_CD_10);
/*
if(all_lrnTm < VeConstants.CLASS_TM_70){ if(all_lrnTm < VeConstants.CLASS_TM_70){
alert('전체 교육시간은 '+VeConstants.CLASS_TM_70+'분 이상이여야합니다.'); alert('전체 교육시간은 '+VeConstants.CLASS_TM_70+'분 이상이여야합니다.');
$('input[name=strtTm]:eq('+idx+')').focus(); $('input[name=strtTm]:eq('+idx+')').focus();
return flag = false; return flag = false;
} }
*/
if(!flag){ if(!flag){
@ -545,7 +756,84 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
return true; return true;
} }
function timeValidCheck(){
var trObj = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr');
if(trObj.length == 0){
alert('교육차시 정보를 등록해주세요.');
return false;
}
var flag = true;
//var all_lrnTm = 0;
$.each(trObj , function(idx, row){
var today = new Date();
var tyyyy = today.getFullYear();
var tmm = today.getMonth()+1;
var tdd = today.getDate();
var todayDate = new Date(tyyyy, tmm-1, tdd)
if($(this).find('input[name=strtTm]').val() == ''){
alert('교육시작 시간을 입력해주세요.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=strtTm]').val().indexOf('선택') != -1){
alert('교육시작 시간을 입력해주세요.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=endTm]').val() == ''){
alert('교육종료 시간을 입력해주세요.');
$('input[name=endTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=endTm]').val().indexOf('선택') != -1){
alert('교육종료 시간을 입력해주세요.');
$('input[name=endTm]:eq('+idx+')').focus();
return flag = false;
}
var lrnTm = Number($('input[name=lrnTm]:eq('+idx+')').val());
var scholDivCd = $('#scholDivCd').val();
// 초등, 특수 , 기타
if(scholDivCd == VeConstants.CLASS_CD_10 || scholDivCd == VeConstants.CLASS_CD_40 || scholDivCd == VeConstants.CLASS_CD_50){
if(lrnTm < v_TR0E*1){
alert('학교구분이 초등/특수/기타와 같다면 최소교육시간 '+v_TR0E+'분 이상이여야합니다.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
// 중등
}else if(scholDivCd == VeConstants.CLASS_CD_20 ){
if(lrnTm < v_TR0M){
alert('학교구분이 중등과 같다면 최소교육시간 '+v_TR0M+'분 이상이여야합니다.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
// 고등
}else if(scholDivCd == VeConstants.CLASS_CD_30){
if(lrnTm < v_TR0H){
alert('학교구분이 고등과 같다면 최소교육시간 '+v_TR0H+'분 이상이여야합니다.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
}
});
return true;
}
// 신청하는 차시가 유효한 신청기간인지, 강의가능시간인지 체크하는 로직 // 신청하는 차시가 유효한 신청기간인지, 강의가능시간인지 체크하는 로직
// =>강의 가능 시간 여부만 체크로 변경 2022-02-28 // =>강의 가능 시간 여부만 체크로 변경 2022-02-28
@ -708,6 +996,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
var list = data.chasiList; var list = data.chasiList;
itemChg(info.eduSlctCd); itemChg(info.eduSlctCd);
$("#rndsOrd").val(info.rndsOrd);
$("#eduSlctCd").val(info.eduSlctCd); $("#eduSlctCd").val(info.eduSlctCd);
$("#mode").val(VeConstants.MODE_UPT); $("#mode").val(VeConstants.MODE_UPT);
$("#eduAplctOrd").val(info.eduAplctOrd); $("#eduAplctOrd").val(info.eduAplctOrd);
@ -770,6 +1059,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
// alert(defaultRow); // alert(defaultRow);
// addEduClassCopy('addClassRow'); // addEduClassCopy('addClassRow');
addEduClassCopyTngr('addClassRow'); addEduClassCopyTngr('addClassRow');
} }
@ -829,6 +1119,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
} }
} }
//교육일정달력보기
function fncCalView() { function fncCalView() {
// if(paramObj == undefined || paramObj == ''){ // if(paramObj == undefined || paramObj == ''){
// paramObj = { // paramObj = {
@ -839,11 +1130,18 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
// formId : "createForm" // formId : "createForm"
// }; // };
// } // }
var rndsOrd = $('input[name=rndsOrd]').val();
paramObj = {
rndsOrd : $('input[name=rndsOrd]').val()
};
commonPopLayeropen( commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/calendarPopList.do" "${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/calendarPopList.do"
, 900 , 900
, 900 , 900
, "" , paramObj
, "Y" , "Y"
, "calendarPop" , "calendarPop"
); );
@ -1132,13 +1430,14 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
</th> </th>
<td> <td>
<label for="eduPlace" class="label">교육장소 입력</label> <label for="eduPlace" class="label">교육장소 입력</label>
<input type="text" value="${info.eduPlace}" name="eduPlace" id="eduPlace" size="25" disabled>
<%-- <input type="checkbox" name="corpsEdu" id="corpsEdu" value="Y" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if>> <label for="corpsEdu">집체교육</label> --%> <%-- <input type="checkbox" name="corpsEdu" id="corpsEdu" value="Y" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if>> <label for="corpsEdu">집체교육</label> --%>
<%-- <input type="checkbox" name="broadroomEdu" id="broadroomEdu" value="Y" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if>> <label for="broadroomEdu">방송실교육</label> --%> <%-- <input type="checkbox" name="broadroomEdu" id="broadroomEdu" value="Y" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if>> <label for="broadroomEdu">방송실교육</label> --%>
<ve:radio codeId="VEA010" id="eduPlaceCd" name="eduPlaceCd" <ve:radio codeId="VEA010" id="eduPlaceCd" name="eduPlaceCd"
selectedValue="${empty info.eduPlaceCd ? '01' : info.eduPlaceCd}" selectedValue="${empty info.eduPlaceCd ? '01' : info.eduPlaceCd}"
onChange="eduPlaceChg();" onChange="eduPlaceChg();"
/> />
<input type="text" value="${info.eduPlace}" name="eduPlace" id="eduPlace" size="25" disabled>
</td> </td>
</tr> </tr>
<!-- <!--
@ -1335,7 +1634,9 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
</div> </div>
<button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button> <button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button>
</div> </div>
</div>(<input type="text" readonly="readonly" value="${list.lrnTm}" class="input_time" name="lrnTm">분) </div>(<input type="text"
value="${list.lrnTm}" class="input_time"
name="lrnTm">분)
</div> </div>
</td> </td>
<!-- 구분을 점심시간 포험여부로 수정 2023.10.11 --> <!-- 구분을 점심시간 포험여부로 수정 2023.10.11 -->
@ -1359,7 +1660,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
<tr> <tr>
<th class="calendar_th"> <th class="calendar_th">
<div class="calendar_wrap"> <div class="calendar_wrap">
<duet-date-picker identifier="date" class="startDate" name="eduHopeDt"></duet-date-picker> <duet-date-picker identifier="date" class="startDate" name="eduHopeDt" onblur="_chkChasiDate(this); return false;"></duet-date-picker>
</div> </div>
</th> </th>
<td> <td>
@ -1481,7 +1782,8 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
</div> </div>
<button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button> <button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button>
</div> </div>
</div>(<input type="text" readonly="readonly" class="input_time" name="lrnTm" title="교육 시간">분) </div>(<input type="text" class="input_time"
name="lrnTm" title="교육 시간">분)
</div> </div>
</td> </td>

View File

@ -425,6 +425,7 @@ function timeInput() {
if(isNotEmpty(scholDivCd)){ if(isNotEmpty(scholDivCd)){
/*
// 초등, 특수 , 기타 // 초등, 특수 , 기타
if(scholDivCd == VeConstants.CLASS_CD_10 || scholDivCd == VeConstants.CLASS_CD_40 || scholDivCd == VeConstants.CLASS_CD_50){ if(scholDivCd == VeConstants.CLASS_CD_10 || scholDivCd == VeConstants.CLASS_CD_40 || scholDivCd == VeConstants.CLASS_CD_50){
if(lrnTm < VeConstants.CLASS_TM_40){ if(lrnTm < VeConstants.CLASS_TM_40){
@ -449,6 +450,7 @@ function timeInput() {
} }
td.find('.input_time').val('0'); td.find('.input_time').val('0');
timeWarp.find('.time').val(''); timeWarp.find('.time').val('');
*/
}else{ }else{
if(lrnTm < VeConstants.ADULT_TM_60){ if(lrnTm < VeConstants.ADULT_TM_60){
alert('성인교육 최소시간 '+VeConstants.ADULT_TM_60+'분 이상이여야합니다.'); alert('성인교육 최소시간 '+VeConstants.ADULT_TM_60+'분 이상이여야합니다.');
@ -768,16 +770,53 @@ function addEduClassCopyTngr(target) {
$("duet-date-picker .duet-date__input").each(function(idx,itm){ $("duet-date-picker .duet-date__input").each(function(idx,itm){
$(itm).attr("name","eduHopeDt"+idx); $(itm).attr("name","eduHopeDt"+idx);
$(itm).attr("id","eduHopeDt"+idx); $(itm).attr("id","eduHopeDt"+idx);
idx+=1; idx+=1;
}); });
$("duet-date-picker .duet-date__input").attr('onkeydown','this.value=dateSetting(this.value);'); $("duet-date-picker .duet-date__input").attr('onkeydown','this.value=dateSetting(this.value);');
},100)
},100);
startDate[i].addEventListener("duetFocus", function (e) { startDate[i].addEventListener("duetFocus", function (e) {
calendarSetting(); calendarSetting();
}); });
} }
calendarinputset(); calendarinputset();
setTimeout(function(){
$("duet-date-picker .duet-date__input").each(function(idx,itm){
//이벤트 추가 2023-12-08
if ($(itm).attr('onblur')=="undefined" || $(itm).attr('onblur')==null){
$(itm).attr('onblur','_fncEduHopeDt('+idx+');');
//alert("inin");
}else{
//alert("outout");
}
idx+=1;
});
//이벤트 추가 2023-12-08
$("duet-date-picker .duet-date__dialog").each(function(idx,itm){
if ($(itm).attr('onclick')=="undefined" || $(itm).attr('onclick')==null){
$(itm).attr('onclick','_fncEduHopeDt('+idx+');');
//alert("inin");
}else{
//alert("outout");
}
idx+=1;
});
},100);
} }
function calendarPrev(itm){ function calendarPrev(itm){