2023-08-21 17:12 기반강화 및 기수유예 관리자 작업

This commit is contained in:
myname 2023-08-21 17:12:41 +09:00
parent 9d17792222
commit c7131e3d51
21 changed files with 4490 additions and 10 deletions

View File

@ -20,10 +20,17 @@ public interface VEPrcsAplctPrdService {
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception; List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//Page List //Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception; List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//기반강화, 기소유예
List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//R //R
VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception; VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception;
VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception;
} }

View File

@ -96,6 +96,19 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String oprtnFileId; private String oprtnFileId;
private String eduStrtPnttm;
private String eduDdlnPnttm;
private String deadLineDt;
private String eduPartCd;
private String nos;
private String ddlnCd;
private String nosCnt1; //신청인
public String getPrcsOrd() { public String getPrcsOrd() {
return prcsOrd; return prcsOrd;
} }
@ -468,4 +481,46 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setPrcsKind(String prcsKind) { public void setPrcsKind(String prcsKind) {
this.prcsKind = prcsKind; this.prcsKind = prcsKind;
} }
public String getEduStrtPnttm() {
return eduStrtPnttm;
}
public void setEduStrtPnttm(String eduStrtPnttm) {
this.eduStrtPnttm = eduStrtPnttm;
}
public String getEduDdlnPnttm() {
return eduDdlnPnttm;
}
public void setEduDdlnPnttm(String eduDdlnPnttm) {
this.eduDdlnPnttm = eduDdlnPnttm;
}
public String getDeadLineDt() {
return deadLineDt;
}
public void setDeadLineDt(String deadLineDt) {
this.deadLineDt = deadLineDt;
}
public String getEduPartCd() {
return eduPartCd;
}
public void setEduPartCd(String eduPartCd) {
this.eduPartCd = eduPartCd;
}
public String getNos() {
return nos;
}
public void setNos(String nos) {
this.nos = nos;
}
public String getDdlnCd() {
return ddlnCd;
}
public void setDdlnCd(String ddlnCd) {
this.ddlnCd = ddlnCd;
}
public String getNosCnt1() {
return nosCnt1;
}
public void setNosCnt1(String nosCnt1) {
this.nosCnt1 = nosCnt1;
}
} }

View File

@ -19,6 +19,8 @@ public interface VEPrcsService {
//L //L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception; List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception; List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
//Page List //Page List

View File

@ -55,6 +55,12 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist;
}
/** /**
* L - Page * L - Page
* @param addrVO * @param addrVO
@ -66,8 +72,17 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist;
}
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
} }
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
}
} }

View File

@ -44,13 +44,25 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
return vEPrcsAplctPrdDAO.selectList(paramVO); return vEPrcsAplctPrdDAO.selectList(paramVO);
} }
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
}
//paging List //paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{ public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO); return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
} }
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
}
//R //R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO); return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
} }
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
}
} }

View File

@ -0,0 +1,393 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctMng.web;
import java.time.LocalDate;
import java.util.List;
import java.util.Properties;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.util.IpUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.sch.service.SchduleManageService;
import kcc.let.uss.ion.cnt.service.EgovCntManageService;
import kcc.let.uss.umt.service.EgovMberManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiVO;
import kcc.ve.oprtn.tngrVisitEdu.eduAplctMng.service.EduAplctMngTngrService;
/**
* 교육신청관리(관리자-청소년찾아가는저작권교육)
* 교육신청관리에 관한 controller 클래스를 정의한다.
* @author 조용준
* @since 2021.12.16
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성
*
* </pre>
*/
@Controller
public class FndthPrcsAplctMngController {
private static final Logger LOGGER = LoggerFactory.getLogger(FndthPrcsAplctMngController.class);
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//기반연수 과정 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//신청과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//교육과정신청
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name = "eduAplctMngTngrService")
private EduAplctMngTngrService eduAplctMngTngrService;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService egovCmmUseService;
//NOTI 서비스
@Resource(name="vEAsgnmNotiService")
private VEAsgnmNotiService vEAsgnmNotiService;
@Resource(name = "schduleManageService")
private SchduleManageService schduleManageService;
@Resource(name = "egovCntManageService")
private EgovCntManageService egovCntManageService;
/** mberManageService */
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
/**
* 기반강화연수 과정 신청 관리 목록 화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngList.do")
public String fndthEduPrcsAplctMngList( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , HttpSession session, ModelMap model ) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//년도
if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){
//vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear()));
}
//
if(StringUtils.isBlank(vEEduAplctVO.getSearchMonth())){
vEEduAplctVO.setSearchMonth(String.valueOf(LocalDate.now().getMonthValue()));
}
if(!"".equals(vEEduAplctVO.getSearchChrgNm())) {
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchChrgNm()));
}
// 요청, 반려건
//vEEduAplctVO.setSearchNotStatusArr(new String[]{"60"});
// 청소년
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
//정렬
if("".equals(vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
vEEduAplctVO.setOrderByQuery("A.SBMT_PNTTM DESC");
}else{
vEEduAplctVO.setOrderByQuery(vEEduAplctVO.getSearchSortCnd() + " " +vEEduAplctVO.getSearchSortOrd());
}
System.out.println("vEEduAplctVO.getOrderByQuery() :: "+ vEEduAplctVO.getOrderByQuery());
//2. pageing step2
vEEduAplctVO = this.setPagingStep2Sub(vEEduAplctVO, paginationInfo);
vEEduAplctVO.setNotiUserId(user.getUniqId());
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
/*
* 리스트 검색에서 교육일자 시작/종료일 입력 없이 검색시
* 기존 searchEndDt where 조건에 1=2로 되어있어서 리스트 검색이 안되던 것을
* 저작위 요청사항으로 1=1로 변경하여 날짜 입력이 안되어도 검색이 되도록 수정함
* 2023-04-28 우영두
*
* */
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchChrgNm()));
//3.pageing step3
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngList";
}
/**
* 기반강화연수 신청 등록 화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctReg.do")
public String fndthEduPrcsAplctReg( @ModelAttribute("modelVO") VEEduAplctVO vEEduAplctVO , ModelMap model ) throws Exception {
vEEduAplctVO.setMode(VeConstants.MODE_CRT);
//온라인차시 리스트
vEEduAplctVO.setUseYn("Y");
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
//사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectList4Fndth(vEPrcsDetailVO);
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctReg";
}
/**
* 기반강화연수 신청서 등록
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctRegAjax.do")
public ModelAndView fndthEduPrcsAplctRegAjax(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request , final MultipartHttpServletRequest multiRequest ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
//MberManageVO mberManageVO = mberManageService.selectMber4AdminReg(vEEduAplctVO.getEmail());
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
boolean flag = eduAplctMngTngrService.fndthEduAplctRegProcess(vEEduAplctVO, request, multiRequest, modelAndView);
if(!flag){
modelAndView.addObject("result", "fail");
return modelAndView;
}
modelAndView.addObject("VO", vEEduAplctVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 기반강화연수 신청 수정
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMdfyAjax.do")
public ModelAndView fndthEduPrcsAplctMdfyAjax( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request , final MultipartHttpServletRequest multiRequest ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
System.out.println("eduAplctMdfyProcessAdmin");
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
boolean flag = eduAplctMngTngrService.fndthEduAplctMdfyProcessAdmin(vEEduAplctVO, request, multiRequest, modelAndView);
if(!flag){
modelAndView.addObject("result", "faii");
return modelAndView;
}
modelAndView.addObject("VO", vEEduAplctVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 기반강화연수 신청관리 상세 화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngDetail.do")
public String eduAplctMngDetail( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request, HttpSession session ) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO);
//사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectTngrPrcsList(vEPrcsDetailVO);
model.addAttribute("list", vEPrcsDetailVOList);
//사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_50);
List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO);
model.addAttribute("chasiList", vEEduChasiVOList);
model.addAttribute("cryptoUtil",egovCryptoUtil);
//강의만족도 평가 여부를 위한 차시 리스트 MIX 조회
VEEduChasiVO vEEduChasiAllVO = new VEEduChasiVO();
vEEduChasiAllVO.setInstrDiv(VeConstants.LCTR_DIV_CD_50); //청소년
vEEduChasiAllVO.setAprvlCd("60"); //교육확정코드
vEEduChasiAllVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduChasiAllVO.setPageIndex(0);
List<VEEduChasiVO> vEEduChasiAllVOList = vEEduMIXService.selectChasiList(vEEduChasiAllVO);
model.addAttribute("chasiAllList", vEEduChasiAllVOList);
//20220223 우영두 추가
//강의내역 NOTI 입력
VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();
String tblUnitOrd = "";
if(StringUtil.isNotEmpty(vEEduAplctVO.getEduChasiOrd())) {
tblUnitOrd = vEEduAplctVO.getEduChasiOrd();
}else {
tblUnitOrd = vEEduAplctVO.getEduAplctOrd();
}
vEAsgnmNotiVO.setTblUniqOrd(tblUnitOrd);
vEAsgnmNotiVO.setFrstRegisterId(user.getUniqId());
vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request));
vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
System.out.println("session.getAttribute(menuNo).toString()-since20230424");
System.out.println(session.toString());
System.out.println(session.getAttribute("menuNo").toString());
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngDetail";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEEduAplctVO p_vEEduAplctVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit());
paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEEduAplctVO setPagingStep2(
VEEduAplctVO p_vEEduAplctVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEEduAplctVO.setSearchSortCnd("prcs_ord");
p_vEEduAplctVO.setSearchSortOrd("desc");
}
return p_vEEduAplctVO;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 - 기존 prcs_ord 정렬부분 제외
private VEEduAplctVO setPagingStep2Sub(
VEEduAplctVO p_vEEduAplctVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
return p_vEEduAplctVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEEduAplctVO> p_vEEduAplctVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
}

View File

@ -0,0 +1,547 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
/**
* 기반강화연수(관리자) 신청기간관리
* 기반강화연수에 관한 controller 클래스를 정의한다.
* @author 조용준
* @since 2023.07.12
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성
*
* </pre>
*/
@Controller
//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn")
public class FndthPrcsAplctPrdMngController {
private static final Logger LOGGER = LoggerFactory.getLogger(FndthPrcsAplctPrdMngController.class);
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//온라인콘텐츠과정 관리
@Resource(name = "vEPrcsOnlnCntntService")
private VEPrcsOnlnCntntService vEPrcsOnlnCntntService;
//과정차시 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//교육과정순번
@Resource(name="prcsGnrService")
private EgovIdGnrService prcsGnrService;
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정온라인콘텐츠순번
@Resource(name="prcsOnlnGnrService")
private EgovIdGnrService prcsOnlnGnrService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//교육과정신청
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//교육과정신청
@Resource(name = "vEPrcsCmpltDetailService")
private VEPrcsCmpltDetailService vEPrcsCmpltDetailService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
/*
// 교육신청 서비스단
@Resource(name = "AdjReqMgrService")
private AdjReqMgrService adjReqMgrService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name="KccadrMgrUdtService")
private KccadrMgrUdtService kccadrMgrUdtService;
// 교육신청 서비스단
@Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil;
*/
/**
* 기반강화연수 과정 신청 기간 관리 목록 화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do")
public String fndthEduPrcsAplctPrdMngList(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
}
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){
String[] splited = vEPrcsDetailVO.getPrcsKind().split(",");
vEPrcsDetailVO.setSearchStatusArr(splited);
}
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
//vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList";
///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do
}
/**
* 기반강화연수과정 신청기간 등록 화면
*/
//@RequestMapping("eduPrcsMngReg.do")
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.do")
public String fndthEduPrcsAplctPrdMngReg(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//과정 정보 가져오기
{
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc");
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
//model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcs", vEPrcsDetailVOList);
}
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg";
}
/**
* 기반강화연수과정 신청기간 등록
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngRegAjax.do")
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsAplctPrdService.insert(vEPrcsDetailVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 기반강화연수과정 기간 상세화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do")
public String fndthEduPrcsMngDetail(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 정보 가져오기
/*
{
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc");
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setPrcsOrd("");
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
//model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcs", vEPrcsDetailVOList);
}
*/
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
//과정 신청자 정보 가져오기
{
//해당 과정을 제출한 사용자 정보를 가져온다.
VEEduAplctVO paramVO = new VEEduAplctVO();
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
paramVO.setSbmtYn("Y");
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
vEPrcsDetailVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEPrcsDetailVOList);
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
}
return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail";
}
/**
* 기반강화연수과정 기간 상세수정화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do")
public String fndthEduPrcsAplctPrdMngMdfy(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 정보 가져오기
{
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc");
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setPrcsOrd("");
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
//model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcs", vEPrcsDetailVOList);
}
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy";
}
/**
* 기반강화연수과정 신청기간 수정
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfyAjax.do")
public ModelAndView fndthEduPrcsAplctPrdMngMdfyAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
//vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsAplctPrdService.update(vEPrcsDetailVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEPrcsDetailVO p_vEPrcsDetailVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit());
paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEPrcsDetailVO setPagingStep2(
VEPrcsDetailVO p_vEPrcsDetailVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
p_vEPrcsDetailVO.setSearchSortOrd("desc");
}
return p_vEPrcsDetailVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
}

View File

@ -186,7 +186,7 @@ public class FndthPrcsInfoMngController {
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
} }
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);

View File

@ -13,8 +13,13 @@ public interface EduAplctMngTngrService {
boolean eduAplctRegProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; boolean eduAplctRegProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception;
//기반강화 교육 등록
boolean fndthEduAplctRegProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception;
boolean eduAplctMdfyProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; boolean eduAplctMdfyProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception;
boolean eduAplctMdfyProcessAdmin(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; boolean eduAplctMdfyProcessAdmin(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception;
boolean fndthEduAplctMdfyProcessAdmin(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception;
} }

View File

@ -187,6 +187,94 @@ public class EduAplctMngTngrServiceImpl implements EduAplctMngTngrService {
return true; return true;
} }
@Override
public boolean fndthEduAplctRegProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "SCHOLSEAL_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
if ("ERROR".equals(s_scholSealAtchFileId)) return false;
//step2.파일 처리====================================
//교육신청 번호 생성 디비 저장하기
String eduAplctOrd = eduAplctGnrService.getNextStringId(); // 고유ID
vEEduAplctVO.setEduAplctOrd(eduAplctOrd);
//vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); //강의 구분 코드 체험교실
vEEduAplctVO.setScholSealAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
//저장전 암호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
MberManageVO mberManageVO = mberManageService.selectMber4AdminReg(vEEduAplctVO.getEmail());
//System.out.println("mberManageVO2.getUniqId()");
//System.out.println(mberManageVO.getUniqId());
//System.out.println(mberManageVO.getUniqId());
if (mberManageVO!=null) {
vEEduAplctVO.setUserId(mberManageVO.getUniqId());
vEEduAplctVO.setFrstRegisterId(mberManageVO.getUniqId()); //esntl_id
}
//저장
vEEduAplctService.insert(vEEduAplctVO);
//차시 저장
String[] s_eduHopeDt = request.getParameterValues("eduHopeDt");
String[] s_strtTm = request.getParameterValues("strtTm");
String[] s_endTm = request.getParameterValues("endTm");
String[] s_lrnTm = request.getParameterValues("lrnTm");
String[] s_divCd = request.getParameterValues("divCd");
String[] s_trgt = request.getParameterValues("trgt");
String[] s_prsnl = request.getParameterValues("prsnl");
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(eduAplctOrd); //교육신청순번
vEEduChasiVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
if (mberManageVO!=null) {
vEEduChasiVO.setFrstRegisterId(mberManageVO.getUniqId()); //esntl_id
}
String bb = null;
for (int i=0;i<s_eduHopeDt.length;i++) {
String eduChasiOrd = eduChasiGnrService.getNextStringId(); // 교육차시 순번
vEEduChasiVO.setEduChasiOrd(eduChasiOrd);
vEEduChasiVO.setEduHopeDt(s_eduHopeDt[i].replaceAll("[^0-9]",""));
vEEduChasiVO.setStrtTm(s_strtTm[i].replaceAll("[^0-9]",""));
vEEduChasiVO.setEndTm(s_endTm[i].replaceAll("[^0-9]",""));
vEEduChasiVO.setLrnTm(s_lrnTm[i]);
vEEduChasiVO.setDivCd(s_divCd[i]);
vEEduChasiVO.setTrgt(s_trgt[i]);
vEEduChasiVO.setPrsnl(s_prsnl[i]);
vVEEduChasiService.insert(vEEduChasiVO);
}
return true;
}
@Override @Override
public boolean eduAplctMdfyProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception { public boolean eduAplctMdfyProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception {
@ -355,4 +443,91 @@ public class EduAplctMngTngrServiceImpl implements EduAplctMngTngrService {
// } // }
return true; return true;
} }
@Override
public boolean fndthEduAplctMdfyProcessAdmin(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
String s_scholSealAtchFileId = "";
s_scholSealAtchFileId = vEEduAplctVO.getScholSealAtchFileId();
//DB에서 실제 첨부파일 존재 여부 확인
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(s_scholSealAtchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
if (result.size()<=0) {
s_scholSealAtchFileId = "";
}
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
if ("".equals(s_scholSealAtchFileId)) {
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "SCHOLSEAL_"
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
}else {
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate(
multiRequest, modelAndView
, "SCHOLSEAL_"
, s_file_exts
, i_limit_size
, i_file_limit
, s_scholSealAtchFileId
); //EXT, MB size and ea
}
if ("ERROR".equals(s_scholSealAtchFileId)) return false;
//step3.파일 처리====================================
//교육신청 번호 생성 디비 저장하기
//vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); //강의 구분 코드 체험교실
vEEduAplctVO.setScholSealAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
//vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setUserId(null);
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
//저장전 암호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
//수정
vEEduAplctService.update(vEEduAplctVO);
//차시 수정-일괄 삭제 저장
//교육확정은 수정 제외
// if(!"60".equals(vEEduAplctVO.getAprvlCd())) {
String[] s_eduHopeDt = request.getParameterValues("eduHopeDt");
String[] s_strtTm = request.getParameterValues("strtTm");
String[] s_endTm = request.getParameterValues("endTm");
String[] s_lrnTm = request.getParameterValues("lrnTm");
String[] s_divCd = request.getParameterValues("divCd");
String[] s_trgt = request.getParameterValues("trgt");
String[] s_prsnl = request.getParameterValues("prsnl");
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduChasiVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
//차시 전체 삭제
vVEEduChasiService.delete(vEEduChasiVO);
for (int i=0;i<s_eduHopeDt.length;i++) {
String eduChasiOrd = eduChasiGnrService.getNextStringId(); // 교육차시 순번
vEEduChasiVO.setEduChasiOrd(eduChasiOrd);
vEEduChasiVO.setEduHopeDt(s_eduHopeDt[i].replaceAll("[^0-9]",""));
vEEduChasiVO.setStrtTm(s_strtTm[i].replaceAll("[^0-9]",""));
vEEduChasiVO.setEndTm(s_endTm[i].replaceAll("[^0-9]",""));
vEEduChasiVO.setLrnTm(s_lrnTm[i]);
vEEduChasiVO.setDivCd(s_divCd[i]);
vEEduChasiVO.setTrgt(s_trgt[i]);
vEEduChasiVO.setPrsnl(s_prsnl[i]);
vVEEduChasiService.insert(vEEduChasiVO);
}
// }
return true;
}
} }

View File

@ -2695,7 +2695,7 @@
<property name="fillChar" value="0" /> <property name="fillChar" value="0" />
</bean> </bean>
<!-- 7.과정신청기간 prcsAplct_ --> <!-- 7.과정신청 prcsAplct_ -->
<bean name="prcsAplctGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy"> <bean name="prcsAplctGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" /> <property name="dataSource" ref="dataSource" />
<property name="strategy" ref="prcsAplctStrategy" /><!-- strategy 값 수정 --> <property name="strategy" ref="prcsAplctStrategy" /><!-- strategy 값 수정 -->
@ -2703,13 +2703,28 @@
<property name="table" value="IDS"/> <property name="table" value="IDS"/>
<property name="tableName" value="PRCS_APLCT_ORD"/><!-- tableName 값 수정 --> <property name="tableName" value="PRCS_APLCT_ORD"/><!-- tableName 값 수정 -->
</bean> </bean>
<!-- 과정신청기간 ID Generation Strategy Config --> <!-- 과정신청 ID Generation Strategy Config -->
<bean name="prcsAplctStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 --> <bean name="prcsAplctStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="prcsAplct_" /><!-- prefix 값 수정 --> <property name="prefix" value="prcsAplct_" /><!-- prefix 값 수정 -->
<property name="cipers" value="10" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) --> <property name="cipers" value="10" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" /> <property name="fillChar" value="0" />
</bean> </bean>
<!-- 7-1.과정신청기간 prcsAplctPrd_ -->
<bean name="prcsAplctPrdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="prcsAplctPrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="PRCS_APLCT_PRD_ORD"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정신청기간 ID Generation Strategy Config -->
<bean name="prcsAplctPrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="prcsAplctPrd_" /><!-- prefix 값 수정 -->
<property name="cipers" value="7" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- 8.과정온라인콘텐츠 prcsOnln_ --> <!-- 8.과정온라인콘텐츠 prcsOnln_ -->
<bean name="prcsOnlnGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy"> <bean name="prcsOnlnGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" /> <property name="dataSource" ref="dataSource" />

View File

@ -123,6 +123,14 @@
<include refid="VEEduMIXDAO.table_name"/> a <include refid="VEEduMIXDAO.table_name"/> a
WHERE WHERE
1=1 1=1
<isNotEmpty property="prcsOrd">
AND a.prcs_ord=#prcsOrd#
</isNotEmpty>
<isNotEmpty property="sbmtYn">
AND a.sbmt_yn=#sbmtYn#
</isNotEmpty>
</select> </select>
<!-- 강사 정보 L page --> <!-- 강사 정보 L page -->

View File

@ -29,6 +29,14 @@
atch_file_id, atch_file_id,
title title
,dead_line_dt
,prcs_ord
,edu_part_cd
,nos
,ddln_cd
,edu_strt_pnttm
,edu_ddln_pnttm
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
@ -50,6 +58,14 @@
a.atch_file_id AS atchFileId, a.atch_file_id AS atchFileId,
a.title AS title a.title AS title
,a.dead_line_dt AS deadLineDt
,a.prcs_ord AS prcsOrd
,a.edu_part_cd AS eduPartCd
,a.nos AS nos
,a.ddln_cd AS ddlnCd
,a.edu_strt_pnttm AS eduStrtPnttm
,a.edu_ddln_pnttm AS eduDdlnPnttm
</sql> </sql>
<!-- 강사 등록 C --> <!-- 강사 등록 C -->
@ -76,6 +92,14 @@
#atchFileId#, #atchFileId#,
#title# #title#
,#deadLineDt#
,#prcsOrd#
,#eduPartCd#
,#nos#
,#ddlnCd#
,#eduStrtPnttm#
,#eduDdlnPnttm#
) )
</insert> </insert>
@ -124,6 +148,28 @@
, atch_file_id = #atchFileId# , atch_file_id = #atchFileId#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="deadLineDt">
, dead_line_dt = #deadLineDt#
</isNotEmpty>
<isNotEmpty property="prcsOrd">
, prcs_ord = #prcsOrd#
</isNotEmpty>
<isNotEmpty property="eduPartCd">
, edu_part_cd = #eduPartCd#
</isNotEmpty>
<isNotEmpty property="nos">
, nos = #nos#
</isNotEmpty>
<isNotEmpty property="ddlnCd">
, ddln_cd = #ddlnCd#
</isNotEmpty>
<isNotEmpty property="eduStrtPnttm">
, edu_strt_pnttm = #eduStrtPnttm#
</isNotEmpty>
<isNotEmpty property="eduDdlnPnttm">
, edu_ddln_pnttm = #eduDdlnPnttm#
</isNotEmpty>
WHERE WHERE
prcs_aplct_prd_ord = #prcsAplctPrdOrd# prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</update> </update>
@ -156,6 +202,31 @@
</select> </select>
<!-- 기반강화등을 위한 신청 가능 과정 L -->
<select id="VEPrcsAplctPrdDAO.selectList4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEPrcsAplctPrdDAO.select_column_name"/>
, (SELECT user_nm FROM comvnusermaster WHERE esntl_id = a.frst_register_id) as frstRegisterNm
, (SELECT orignl_file_nm FROM lettnfiledetail WHERE atch_file_id = a.atch_file_id LIMIT 1) as atchFileNm
, b.prcs_nm as prcsNm
FROM
<include refid="VEPrcsAplctPrdDAO.table_name"/> a
, ve_prcs b
WHERE
1=1
AND a.prcs_ord=b.prcs_ord
<isNotEmpty property="lctrDivCd">
AND a.lctr_div_cd=#lctrDivCd#
</isNotEmpty>
<isNotEmpty property="useYn">
AND a.use_yn=#useYn#
</isNotEmpty>
</select>
<!-- 강사 정보 L page --> <!-- 강사 정보 L page -->
<select id="VEPrcsAplctPrdDAO.selectPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO"> <select id="VEPrcsAplctPrdDAO.selectPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT SELECT
@ -174,6 +245,10 @@
$selectPagingListQuery$ $selectPagingListQuery$
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="lctrDivCd">
AND a.lctr_div_cd=#lctrDivCd#
</isNotEmpty>
<isNotEmpty property="prcsAplctPrdOrd"> <isNotEmpty property="prcsAplctPrdOrd">
AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd# AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd#
</isNotEmpty> </isNotEmpty>
@ -184,6 +259,65 @@
ORDER BY 1=1
<isEmpty property="orderByQuery">
, a.prcs_aplct_prd_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 기반강화, 기소유예 L page -->
<select id="VEPrcsAplctPrdDAO.selectPagingList4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEPrcsAplctPrdDAO.select_column_name"/>
, (SELECT user_nm FROM comvnusermaster WHERE esntl_id = a.frst_register_id) as frstRegisterNm
, (SELECT orignl_file_nm FROM lettnfiledetail WHERE atch_file_id = a.atch_file_id LIMIT 1) as atchFileNm
, b.prcs_nm as prcsNm
, (SELECT COUNT(*)
FROM ve_edu_aplct x
WHERE x.prcs_ord = a.prcs_aplct_prd_ord
AND x.sbmt_yn='Y'
) AS nosCnt1
/*
신청자 정보
*/
FROM
<include refid="VEPrcsAplctPrdDAO.table_name"/> a
, ve_prcs b
WHERE
1=1
AND a.prcs_ord=b.prcs_ord
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="lctrDivCd">
AND a.lctr_div_cd=#lctrDivCd#
</isNotEmpty>
<isNotEmpty property="prcsAplctPrdOrd">
AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd#
</isNotEmpty>
<isNotEmpty property="searchKeyword">
AND b.prcs_nm LIKE '%'|| #searchKeyword# ||'%'
</isNotEmpty>
ORDER BY 1=1 ORDER BY 1=1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
@ -232,4 +366,55 @@
LIMIT 1 LIMIT 1
</select> </select>
<!-- 강사 정보 R -->
<select id="VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT COUNT(1) OVER() AS totCnt ,
a.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
a.lctr_div_cd AS lctrDivCd,
a.strt_pnttm AS strtPnttm,
a.end_pnttm AS endPnttm,
a.use_yn AS useYn,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId,
a.anncm_cn AS anncmCn,
a.popup_cn AS popupCn,
a.atch_file_id AS atchFileId,
a.title AS title ,
(SELECT user_nm
FROM comvnusermaster
WHERE esntl_id = a.frst_register_id
)
AS frstRegisterNm ,
(SELECT orignl_file_nm
FROM lettnfiledetail
WHERE atch_file_id = a.atch_file_id LIMIT 1
)
AS atchFileNm
, b.prcs_nm as prcsNm
,a.dead_line_dt AS deadLineDt
,a.prcs_ord AS prcsOrd
,a.edu_part_cd AS eduPartCd
,a.nos AS nos
,a.ddln_cd AS ddlnCd
,a.edu_strt_pnttm AS eduStrtPnttm
,a.edu_ddln_pnttm AS eduDdlnPnttm
FROM ve_prcs_aplct_prd a
, ve_prcs b
WHERE
1=1
AND a.prcs_ord=b.prcs_ord
<isNotEmpty property="prcsAplctPrdOrd">
AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd#
</isNotEmpty>
ORDER BY a.strt_pnttm DESC
LIMIT 1
</select>
</sqlMap> </sqlMap>

View File

@ -0,0 +1,699 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<%
/**
* @Class Name : fndthEduPrcsAplctMngDetail.jsp
* @Description : 기반강화연수 신청 상세 보기
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용준
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육신청 상세</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function fncGoDetail(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngDetail.do'/>";
linkForm.submit();
}
function fncGoEdit(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMdfy.do'/>";
linkForm.submit();
}
function fncGoEdit2(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMdfy2.do'/>";
linkForm.submit();
}
function fncSendSubmit(){
if(confirm("확정 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/comm/eduAplctStatusAjax.do",
data: {
"eduAplctOrd" : $("#eduAplctOrd").val() ,
"aprvlCd" : VeConstants.APRVL_CD_20,
},
dataType:'json',
success:function(returnData){
if(returnData.rsCnt > 0){
alert("확정 되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngList.do'/>";
listForm.submit();
}
function fncRejectPopup() {
commonPopWindowopenForm(
"${pageContext.request.contextPath}/kccadr/oprtn/comm/popup/rejectPopup.do"
, "500"
, "350"
, "RejectPopup",$("#linkForm")
);
}
function fncPrintPopup() {
commonPopWindowopenForm(
"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/eduAplctMngDetailPopup.do"
, "1000"
, "700"
, "PrintPopup",$("#linkForm")
);
}
function fncGoRemove(){
if(confirm("삭제하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/comm/eduAplctStatusAjax.do",
data: {
"eduAplctOrd" : $("#eduAplctOrd").val() ,
"useYn" : 'N'
},
dataType:'json',
success:function(returnData){
if(returnData.rsCnt > 0){
alert("삭제되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncStatusChange(thisObj){
var statusVal = $(thisObj).closest("div").find("select:first").val();
if(statusVal == ''){
alert('상태를 선택해주세요.');
return false;
}
if(confirm("상태를 변경 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/comm/eduAplctStatusAjax.do",
data: {
"eduAplctOrd" : $("#eduAplctOrd").val() ,
"aprvlCd" : statusVal,
},
dataType:'json',
success:function(returnData){
if(returnData.rsCnt > 0){
if(statusVal == VeConstants.APRVL_CD_60 ){
// 확정일경우에 확정 목록으로 넘어가기때문에 목록으로 가도록 설정
//fncInstrAsgnm(); //교육 확정시 강사 자동 배정이 필요하면 해당 주석 지울것
fncGoList();
}else{
alert("상태가 변경 되었습니다.");
fncGoDetail();
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncInstrAsgnm(){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/web/ve/comm/instrAsgnmAjax.do",
data: {
"eduAplctOrd" : $("#eduAplctOrd").val() ,
"instrDiv" : "10" ,
},
dataType:'json',
success:function(returnData){
if(returnData.result=="success"){
alert("상태가 변경 되었습니다.");
fncGoList();
}else{
alert("강사 자동 배정 중에 오류가 발생 되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//sms 발송
function fncSndSms(){
var p_smsMsg = $("#smsMsg").val();
if (p_smsMsg==""){
alert("SMS 발송 내용은 필수값입니다.");
return false;
}
fncContent(
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/smsSndAjax.do",
"10",
p_smsMsg,
""
);
}
//이메일 발송
function fncSndEmail(){
var p_smsEmail = $("#smsEmail").val();
if (p_smsEmail==""){
alert("이메일 발송 내용은 필수값입니다.");
return false;
}
fncContent(
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/emailSndAjax.do",
"20",
p_smsEmail,
"C"
);
}
//발송
function fncContent(p_url, p_cd, p_cn, p_flag){
$.ajax({
type: "POST",
// enctype: 'multipart/form-data',
url:p_url,
//data: data,
data:{
"sndCd": p_cd,
"sndCn": p_cn,
"eduAplctOrd": $("#eduAplctOrd").val(),
"clphone": '<c:out value="${info.clphone}" />',
"email": '<c:out value="${info.email}" />',
"sndFlag": p_flag
},
dataType:'json',
/*
async: false,
processData: false,
contentType: false,
cache: false,
*/
success:function(returnData){
if(returnData.result == "success"){
alert("정상적으로 발송되었습니다.");
}else{
alert("발송 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function updateHiddenMemo(){
$("#prvtMemoCn").val($("#hiddenMemo").val());
var data1 = new FormData(document.getElementById("hiddenMemoForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/unqIsuesRegPopupAjax.do",
data:data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' />"/>
<input type="hidden" name="pageUnit" value="<c:out value='${vEEduAplctVO.pageUnit}' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus2" value="<c:out value="${vEEduAplctVO.searchStatus2}" />" />
<input type="hidden" name="searchScholDivCd" value="<c:out value="${vEEduAplctVO.searchScholDivCd}" />" />
<input type="hidden" name="searchEduSlctAreaCd" value="<c:out value="${vEEduAplctVO.searchEduSlctAreaCd}" />" />
<input type="hidden" name="searchScholNm" value="<c:out value="${vEEduAplctVO.searchScholNm}" />" />
<input type="hidden" name="searchStartDt" value="<c:out value="${vEEduAplctVO.searchStartDt}" />" />
<input type="hidden" name="searchEndDt" value="<c:out value="${vEEduAplctVO.searchEndDt}" />" />
<input type="hidden" name="searchSmbtStartDt" value="<c:out value="${vEEduAplctVO.searchSmbtStartDt}" />" />
<input type="hidden" name="searchSmbtEndDt" value="<c:out value="${vEEduAplctVO.searchSmbtEndDt}" />" />
</form:form>
<form id="popForm" name="popForm" method="post">
<input type="hidden" name="callFunc" value="callFunc"/>
<input type="hidden" name="targetId" value=""/>
</form>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" method="post">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="${info.lctrDivCd}" />
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' />"/>
<input type="hidden" name="pageUnit" value="<c:out value='${vEEduAplctVO.pageUnit}' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus2" value="<c:out value="${vEEduAplctVO.searchStatus2}" />" />
<input type="hidden" name="searchScholDivCd" value="<c:out value="${vEEduAplctVO.searchScholDivCd}" />" />
<input type="hidden" name="searchEduSlctAreaCd" value="<c:out value="${vEEduAplctVO.searchEduSlctAreaCd}" />" />
<input type="hidden" name="searchScholNm" value="<c:out value="${vEEduAplctVO.searchScholNm}" />" />
<input type="hidden" name="searchStartDt" value="<c:out value="${vEEduAplctVO.searchStartDt}" />" />
<input type="hidden" name="searchEndDt" value="<c:out value="${vEEduAplctVO.searchEndDt}" />" />
<input type="hidden" name="searchSmbtStartDt" value="<c:out value="${vEEduAplctVO.searchSmbtStartDt}" />" />
<input type="hidden" name="searchSmbtEndDt" value="<c:out value="${vEEduAplctVO.searchSmbtEndDt}" />" />
</form:form>
<form id="hiddenMemoForm" name="hiddenMemoForm" method="post">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="" />
</form>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 신청 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>청소년 찾아가는 저작권교육</p>
</li>
<li><span class="cur_nav">교육신청 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육신청 내용</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>교육구분</p>
</th>
<td>
<ve:code codeId="VE0007" code="${info.eduSlctCd}"/>
</td>
<th scope="row">
<p>학교(기관)명</p>
</th>
<td><c:out value="${info.scholInsttNm}" /></td>
</tr>
<tr>
<th scope="row">
<p>학교구분</p>
</th>
<td>
<ve:code codeId="VE0009" code="${info.scholDivCd}"/>
</td>
<th scope="row">
<p>도시벽지학교여부</p>
</th>
<td>${info.isltnScholYn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">${info.addr} ${info.addrDetail}</td>
</tr>
<tr>
<th scope="row">
<p>담당자</p>
</th>
<td colspan="3"><c:out value="${info.chrgNm}" /></td>
</tr>
<tr>
<th scope="row">
<p>휴대폰</p>
</th>
<td>${info.clphone}</td>
<th scope="row">
<p>전화</p>
</th>
<td>${info.phone}</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td colspan="3">${info.email}</td>
</tr>
<tr>
<th scope="row">
<p>교육장소</p>
</th>
<td colspan="3">
<c:out value="${info.eduPlace}" />
<p style="padding-left:10%;">
<input type="checkbox" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if> disabled="disabled"> 집체교육
</p>
<p style="padding-left:20px;">
<input type="checkbox" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if> disabled="disabled"> 방송실교육
</p>
</td>
</tr>
<tr>
<th scope="row">
<p>교육내용</p>
</th>
<td colspan="3">
<c:forEach var="list" items="${list}" varStatus="status">
<c:if test="${fn:contains(info.eduCn, list.prcsOrd)}">
- ${list.prcsNm} <br/>
</c:if>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">
<p>기자재 유무</p>
</th>
<td colspan="3">
<ve:code codeId="VE0021" joinCode="${info.eqpmnCn}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>신청상태</p>
</th>
<td colspan="3">
<c:choose>
<c:when test="${info.useYn eq 'N' or info.aprvlCd eq '40'}">
<span class="app_status3">신청취소</span>
</c:when>
<c:when test="${info.sbmtYn eq 'N' or empty info.sbmtYn}">
<span class="app_status2">작성중</span>
</c:when>
<c:when test="${info.aprvlCd eq '10'}">
<span class="app_status1">교육신청</span>
</c:when>
<c:when test="${info.aprvlCd eq '230'}">
<span class="app_status1">대기</span>
</c:when>
<c:when test="${info.aprvlCd eq '20'}">
<span class="app_status1">교육승인</span>
</c:when>
<c:when test="${info.aprvlCd eq '30'}">
<span class="app_status1">교육반려</span>
</c:when>
<c:when test="${info.aprvlCd eq '60'}">
<span class="app_status1">교육확정</span>
</c:when>
<c:when test="${info.aprvlCd eq '70'}">
<span class="app_status1">수정요청<c:if test="${info.isWait eq 'Y'}">(대기)</c:if></span>
</c:when>
<c:when test="${info.aprvlCd eq '80'}">
<span class="app_status1">수정완료<c:if test="${info.isWait eq 'Y'}">(대기)</c:if></span>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
<c:if test="${info.aprvlCd eq '70'}">
<tr>
<th scope="row">
<p>수정요청사유</p>
</th>
<td colspan="3"><c:out value='${fn:replace(info.aprvlCn, replaceChar, "<br/>")}' escapeXml="false" /></td>
</tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- list -->
<div class="tb_tit01">
<p>교육차시 정보</p>
</div>
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 5%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 14%">
<col style="width: auto;">
<col style="width: 14%;">
<col style="width: 10%;">
</colgroup>
<thead>
<tr>
<th scope="col">no</th>
<th scope="col">교육희망일</th>
<th scope="col">시간</th>
<th scope="col">구분</th>
<th scope="col">대상</th>
<th scope="col">배정강사</th>
<th scope="col">인원</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${chasiList}" varStatus="status">
<tr>
<td><c:out value="${status.count}" /></td>
<td>
<c:choose>
<c:when test="${not empty list.eduHopeDt}">
<%-- <fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/> --%>
${list.eduHopeDt}
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<td>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/>
<fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~
<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/>
<fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(${list.lrnTm}분)
</td>
<td>
<ve:code codeId="VE0010" code="${list.divCd}"/>
</td>
<td><c:out value="${list.trgt}" /></td>
<td>
<c:out value="${cryptoUtil.decrypt(list.instrNm)}"/>
<c:if test="${list.instrNm eq null}">
-
</c:if>
<c:if test="${list.instrNm ne null}">
<br/>(${fn:split(list.userId,'_')[1]*1})
</c:if>
</td>
<td><c:out value="${list.prsnl}" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<!-- 알림 정보 상세 -->
<div class="tb_tit01">
<p>알림정보</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>SMS 내용</p>
</th>
<td class="tb_alram">
<div>
<textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea>
<button type="button" class="btn_type08" onclick="fncSndSms();return false;">SMS 발송</button>
</div>
<p><span id="byteSms">0</span>/90 byte</p>
</td>
</tr>
<tr>
<th scope="row">
<p>이메일 답변 내용</p>
</th>
<td class="tb_alram">
<div>
<textarea id="smsEmail" onkeyup="countBytes(this ,1000 ,$('#byteEmail')[0])"></textarea>
<button type="button" class="btn_type08" onclick="fncSndEmail();return false;">이메일 발송</button>
</div>
<p><span id="byteEmail">0</span>/1000 byte</p>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list -->
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>비공개 메모</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="hiddenMemo" id="hiddenMemo"><c:out value="${info.prvtMemoCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemo(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //비공개 메모 정보 -->
<!-- //list_상세 -->
<!-- //list -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<select id="saveStatus" name="saveStatus" class="sel_type1">
<option value="">상태선택</option>
<option value="${VeConstants.STATUS_CD_WAIT}">대기</option> <!-- 230 -->
<option value="${VeConstants.STATUS_CD_SBMT}">교육신청</option> <!-- 10 -->
<option value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option> <!-- 70 -->
<option value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option> <!-- 80 -->
<option value="${VeConstants.STATUS_CD_CAN}">교육취소</option> <!-- 40 -->
<option value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option> <!-- 60 -->
</select>
<button type="button" class="btn_type05" onclick="fncStatusChange(this); return false;">상태저장</button>
</div>
<div class="btn_center">
<button type="button" class="btn_type01" onclick="fncPrintPopup(); return false;">신청서 출력</button>
<c:if test="${info.aprvlCd eq '10'}">
<!-- 방식이 변경되어 해당 버튼은 삭제처리 합니다.
<button type="button" class="btn_type05" onclick="fncSendSubmit();">확정</button>
-->
<!-- <button type="button" class="btn_type01" onclick="fncGoEdit();">신청서 수정</button> -->
</c:if>
<c:set var="qustnrRespondIdYn" value="N" />
<c:forEach var="chasiAllList" items="${chasiAllList}" varStatus="status">
<c:if test="${not empty chasiAllList.qustnrRespondId}">
<c:set var="qustnrRespondIdYn" value="Y" />
</c:if>
</c:forEach>
<c:if test="${qustnrRespondIdYn eq 'N'}">
<button type="button" class="btn_type01" onclick="fncGoEdit();">신청서 수정</button>
</c:if>
<!--
<button type="button" class="btn_type05" onclick="fncInstrAsgnm();">자동배정 테스트</button>
-->
</div>
<div class="btn_right">
<c:if test="${info.aprvlCd eq '10'}">
<button type="button" class="btn_type02" onclick="fncRejectPopup();">수정요청</button>
</c:if>
<button type="button" class="btn_type03" onclick="fncGoRemove();" >삭제</button>
<button type="button" class="btn_type03" onclick="fncGoList();">목록</button>
</div>
</div>
</div>
</div>
</div>
<!-- //cont -->
<a href="javascript:fncGoEdit2();">.</a>
</body>
</html>

View File

@ -0,0 +1,464 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
.list_util .btn_type03 {
height: 40px;
padding: 0 18px 0 18px
margin: 0 2px;
font-size: 18px;
text-align: center;
vertical-align: middle;
letter-spacing: -0.8px;
border-radius: 5px;
box-sizing: border-box;
transition: background-color .1s linear;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
});
function press(event) {
if (event.keyCode==13) {
fncGoList();
}
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctReg.do'/>";
listForm.submit();
}
function linkPhonePage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngPhoneList.do'/>";
listForm.submit();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngList.do'/>";
listForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncGoDetail(eduAplctOrd){
var listForm = document.listForm ;
listForm.eduAplctOrd.value = eduAplctOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngDetail.do'/>";
listForm.submit();
}
function excelDownLoad(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctExcelDownLoad.do'/>";
listForm.submit();
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
if($(this).prop('tagName') == 'SELECT'){
if($(this).attr('name').indexOf('Month') != -1){
$(this).val(new Date().getMonth()+1);
}else if($(this).attr('name').indexOf('Year') != -1){
$(this).val(new Date().getFullYear());
}else{
$(this).prop("selectedIndex", 0);
}
}else{
$(this).val('');
}
});
}
//체크박스 전체 선택
function chkAll(thisObj){
$("input[name=chk]").prop("checked" , $(thisObj).is(":checked"));
}
// 신청서 일괄 출력
function fncPrintListPopup() {
if ($("input:checkbox[name='chk']:checked").length <= 0) {
alert("출력할 신청목록을 하나 이상 체크하세요.");
}
else {
commonPopWindowopenForm(
"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/eduAplctMngDetailListPopup.do"
, "1000"
, "700"
, "ListPrintPopup",$("#listForm")
);
}
}
function fncChkStatusUpdate() {
var chkLen = $(listForm).find("input[name=chk]:checked").length;
var statusVal = $("#saveStatus option:selected").val();
if(chkLen == 0){
alert("선택된 항목이 없습니다.");
return;
}
if(statusVal == ''){
alert('상태를 선택해주세요.');
return false;
}
$("#aprvlCd").val(statusVal);
var data1 = new FormData(document.getElementById("listForm"));
if(confirm("상태를 변경 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/comm/eduAplctStatusListAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.rsCnt > 0){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
location.reload();
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
<title>신청관리</title>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" value="" />
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="<c:out value="${vEEduAplctVO.lctrDivCd}" />" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육신청 목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>청소년 찾아가는 저작권 교육</p>
</li>
<li><span class="cur_nav">교육신청목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>구분</p>
</div>
<div class="util_right">
<label for="searchStatus2" class="label">신청상태 선택</label>
<select class="sel_type1" id="searchStatus2" name="searchStatus2">
<option ${vEEduAplctVO.searchStatus2 eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_WAIT ? 'selected' : ''} value="${VeConstants.STATUS_CD_WAIT}">대기</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
</select>
<ve:select codeId="VE0009" name="searchScholDivCd" id="searchScholDivCd" styleClass="sel_type1" selectedValue="${vEEduAplctVO.searchScholDivCd}" defaultValue="" defaultText='전체'/>
<ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" styleClass="sel_type1" selectedValue="${vEEduAplctVO.searchEduSlctAreaCd}" defaultValue="" defaultText='전체'/>
</div>
</div>
<div class="list_top_1">
<div class="util_left">
<p>학교(기관)명</p>
</div>
<div class="util_right">
<input type="text" id="searchScholNm" name="searchScholNm" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.searchScholNm}" onkeyDown="press(event);">
</div>
</div>
<div class="list_top_1">
<div class="util_left">
<p>신청자명</p>
</div>
<div class="util_right">
<input type="text" id="searchChrgNm" name="searchChrgNm" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.searchChrgNm}" onkeyDown="press(event);">
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
<div class="list_top_2">
<div class="util_left">
<p>교육일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchStartDt" name="searchStartDt" value="${vEEduAplctVO.searchStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endDate" name="searchEndDt" value="${vEEduAplctVO.searchEndDt}">
</div>
</div>
</div>
<div class="list_top_3">
<div class="util_left">
<p>신청일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEEduAplctVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEEduAplctVO.searchSmbtEndDt}">
</div>
<div style="padding-left:30px;">
관리자 수정 건만 보기<input type="checkbox" name="searchAdminUpdtYn" id="searchAdminUpdtYn" value="Y" <c:if test="${vEEduAplctVO.searchAdminUpdtYn eq 'Y'}">checked</c:if>>
</div>
</div>
</div>
</div>
<!-- //list_top -->
<!-- list util -->
<div class="list_util">
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<option value='10' <c:if test="${vEEduAplctVO.pageUnit == '10' or vEEduAplctVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEEduAplctVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEEduAplctVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEEduAplctVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<button type="button" class="btn_type03" onclick="fncPrintListPopup(); return false;">신청서 일괄출력</button>
<button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 5%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 10%">
<col style="width: auto;">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 8%">
<col style="width: 10%">
<col style="width: 8%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
<th>번호</th>
<th>교육일자<button class="sort sortBtn" id="sort_eduHopeDt">▲</button></th>
<th>신청일자<button class="sort sortBtn" id="sort_sbmtPnttm">▲</button></th>
<th>지역</th>
<th>학교(기관)명</th>
<th>신청시간</th>
<th>학교구분</th>
<th>담당자</th>
<th>신청상태</th>
<th>확정일자</th>
<th>관리자 수정 여부</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<c:choose>
<c:when test="${list.notiCnt == 0}">
<tr class="new_cont" title="<c:out value='${list.eduAplctOrd}'/>" style="cursor:pointer;">
</c:when>
<c:otherwise>
<tr title="<c:out value='${list.eduAplctOrd}'/>" style="cursor:pointer;">
</c:otherwise>
</c:choose>
<td>
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
</td>
<td>
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}');">
<c:choose>
<c:when test="${not empty list.eduHopeDt}">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:out value="${list.sbmtPnttm}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:if test="${list.eduSlctCd eq '10'}">
(온)
</c:if>
<ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:out value="${list.scholInsttNm}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:out value="${list.lrnTm}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<ve:code codeId="VE0009" code="${list.scholDivCd}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:out value="${list.chrgNm}"/>
</a>
</td>
<td>
<c:choose>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_230}">
<span class="app_status1">대기</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
<span class="app_status1">교육신청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_CFRM}">
<span class="app_status2">교육승인</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_RJT}">
<span class="app_status4">교육반려</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_CAN}">
<span class="app_status4">교육취소</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_CHI_CMPT}">
<span class="app_status4">선정완료</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDT_REQ}">
<span class="app_status3">수정요청<c:if test="${list.isWait eq 'Y'}">(대기)</c:if></span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDT_CMPT}">
<span class="app_status3">수정완료<c:if test="${list.isWait eq 'Y'}">(대기)</c:if></span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDU_SELCT}">
<span class="app_status1">교육확정</span>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${list.aprvlCd eq VeConstants.STATUS_CD_EDU_SELCT}">
<p>${list.aprvlPnttm}</p>
</c:if>
</td>
<td>
<c:choose>
<c:when test="${list.adminUpdtYn eq 'Y'}">
</c:when>
<c:otherwise>
아니오
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="12"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<select id="saveStatus" name="saveStatus" class="sel_type1">
<option value="">상태선택</option>
<option value="${VeConstants.STATUS_CD_WAIT}">대기</option>
<option value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
<%-- <option value="${VeConstants.STATUS_CD_WAIT_N}">대기(삭제)</option> --%>
<%-- <option value="${VeConstants.STATUS_CD_WAIT_Y}">대기(처리)</option> --%>
</select>
<button type="button" class="btn_type05" onclick="fncChkStatusUpdate(); return false;">상태저장</button>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
</div>
</div>
</div>
</form:form>
<a href="#" onclick="javascript:linkPhonePage('1'); return false;">.</a>
</body>
</html>

View File

@ -0,0 +1,210 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsAplctPrdMngDetail.jsp
* @Description : 기반강화연수 기간 상세화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do'/>";
detailForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">과정</th>
<td>
<c:out value="${info.prcsNm}"/>
</td>
</tr>
<tr>
<th scope="row">교육부분코드</th>
<td>
<ve:code codeId="VEA001" code="${info.eduPartCd}"/>
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/>
</td>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
<c:out value="${info.eduStrtPnttm}"/>~<c:out value="${info.eduDdlnPnttm}"/>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<c:out value="${info.nos}"/>
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td>
<ve:code codeId="VE0034" code="${info.ddlnCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>공개여부(사용여부)</p>
</th>
<td>
<c:if test="${empty info.useYn or info.useYn eq 'Y'}">예</c:if>
<c:if test="${info.useYn eq 'N'}">아니오</c:if>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncMdfy(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육신청자</p>
</div>
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 5%">
<col style="width: 210px;"><!-- name -->
<col style="width: auto;"><!-- 제출일 -->
<col style="width: 210px;"><!-- 신청상태 -->
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
<th>번호</th>
<th>신청자</th>
<th>제출일시</th>
<!--
<th>신청자<button class="sort sortBtn" id="sort_chrgNm">▲</button></th>
<th>제출일시<button class="sort sortBtn" id="sort_sbmtPnttm">▲</button></th>
-->
<th>신청상태</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
<tr>
<td>
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
</td>
<td>
<c:out value="${status.count}"/>
</td>
<td>
<c:out value="${list.chrgNm}"/>
</td>
<td>
<c:out value="${list.sbmtPnttm}"/>
</td>
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<!-- //list_상세 -->
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,317 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : fndthEduPrcsAplctPrdMngList.jsp
* @Description : 기반강화연수 과정 신청기간관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var listForm = document.listForm ;
listForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do'/>";
listForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.do'/>";
listForm.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
<title>과정신청기간관리목록</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>과정신청기간관리목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>기반강화연수관리</p>
</li>
<li><span class="cur_nav">과정신청기간관리목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>과정 신청기간 관리</p>
</div>
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>이름</p>
</div>
<div class="util_right">
<kc:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${vEPrcsDetailVO.prcsDiv}"
defaultValue=""
defaultText="전체"
/>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="검색어를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEPrcsDetailVO.searchKeyword}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list_top -->
<!-- list util -->
<div class="list_util">
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
<%-- <div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEEduAplctVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
</div> --%>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th>NO</th>
<th>교육구분코드</th>
<th>과정명</th>
<th>신청기간</th>
<th>교육기간</th>
<th>신청자/정원</th>
<th>상태</th>
<th>공개여부</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${status.count}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<kc:code codeId="VEA001" code="${list.eduPartCd}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<kc:code codeId="VE0034" code="${list.ddlnCd}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.useYn}"/>
</td>
<!--
<td>
<button class="btnType02" onclick="fncDelete('<c:out value='${list.prcsOrd}'/>'); return false;" >삭제</button>
</td>
-->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -0,0 +1,272 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsAplctPrdMngMdfy.jsp
* @Description : 기반강화연수 기간 정보 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfyAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">과정</th>
<td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcs}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsOrd}"/>'
<c:if test="${listPrcs.prcsOrd eq info.prcsOrd}"> selected</c:if>
><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th scope="row">교육부분코드</th>
<td>
<ve:select codeId="VEA001" name="eduPartCd" id="eduPartCd" css="class='sel_type1'" selectedValue="${info.eduPartCd}"/>
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${info.strtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${info.endPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="eduStrtPnttm" name="eduStrtPnttm" value="${info.eduStrtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="eduDdlnPnttm" name="eduDdlnPnttm" value="${info.eduDdlnPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<input type="text" name="nos" id="nos" value="${info.nos}" style="width:100px;" maxLength="6">
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td><ve:select codeId="VE0034" name="ddlnCd" id="ddlnCd" css="class='sel_type1'" selectedValue="${info.ddlnCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>공개여부(사용여부)</p>
</th>
<td>
<input type="radio" name="useYn" id="useY" value="Y" ${empty vEEduAplctVO.useYn or vEEduAplctVO.useYn eq 'Y' ? 'checked' : vEEduAplctVO.useYn}>
<label for="useY">예</label>
<input type="radio" name="useYn" id="useN" value="N" ${vEEduAplctVO.useYn eq 'N' ? 'checked' : vEEduAplctVO.useYn}>
<label for="useN">아니오</label>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,262 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsAplctPrdMngReg.jsp
* @Description : 기반강화연수 과정 신청기간 등록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>기반강화연수 과정 신청기간 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>기반강화연수관리</p>
</li>
<li><span class="cur_nav">기반강화연수 과정 신청기간 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>기반강화연수 과정 신청기간 등록</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">과정</th>
<td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcs}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsOrd}"/>'><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th scope="row">교육부분코드</th>
<td>
<ve:select codeId="VEA001" name="eduPartCd" id="eduPartCd" css="class='sel_type1'" />
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEEduAplctVO.strtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.endPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="eduStrtPnttm" name="eduStrtPnttm" value="${vEEduAplctVO.eduStrtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="eduDdlnPnttm" name="eduDdlnPnttm" value="${vEEduAplctVO.eduDdlnPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<input type="text" name="nos" id="nos" value="${vEEduAplctVO.nos}" style="width:100px;" maxLength="6">
</td>
</tr>
<tr>
<th scope="row">
<p>공개여부(사용여부)</p>
</th>
<td>
<input type="radio" name="useYn" id="useY" value="Y" ${empty vEEduAplctVO.useYn or vEEduAplctVO.useYn eq 'Y' ? 'checked' : vEEduAplctVO.useYn}>
<label for="useY">예</label>
<input type="radio" name="useYn" id="useN" value="N" ${vEEduAplctVO.useYn eq 'N' ? 'checked' : vEEduAplctVO.useYn}>
<label for="useN">아니오</label>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,834 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<html lang="ko">
<head>
<title>교육신청 수정</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready(function(){
$('input[name="strtTm"]').attr("autocomplete","off")
$('input[name="endTm"]').attr("autocomplete","off")
});
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngList.do'/>";
listForm.submit();
}
function fncGoDetail(){
var createForm = document.createForm ;
createForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngDetail.do'/>";
createForm.submit();
}
function fncScholList() {
commonPopWindowopenForm(
"${pageContext.request.contextPath}/kccadr/oprtn/comm/popup/scholPopList.do"
, "800"
, "650"
, "ScholListPop",$("#popupForm")
);
}
function fncUserList() {
commonPopWindowopenForm(
"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/eduAplctMngUserListPop.do"
, "800"
, "650"
, "ScholListPop",$("#popupForm")
);
}
function callBackSchPop(schData){
if(emptyObject(schData)){
alert("오류가 발생하였습니다. 관리자에게 문의해주세요 [ERR-SCH-POP]")
return false;
}
$("#scholInsttNm").val(schData.scholNm);
$("#stndrdScholCd").val(schData.stndrdScholCd);
$("#post").val(schData.newZipcd);
$("#addr").val(schData.newAddr);
$("#addrDetail").val(schData.newAddrDtl);
$('input[name=scholDivCd][value='+schData.scholDivCd+']').prop('checked', true);
$('input[name=isltnScholYn][value='+schData.isltnScholYn+']').prop('checked', true);
$("#eduSlctAreaCd").find("option").each(function(index){
if ($(this).text() == schData.locNm) {
$("#eduSlctAreaCd").val($(this).val());
}
});
}
function fncSave(type){
if(type == 'S'){
if (!validCheck()) return;
}
var url = '${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctRegAjax.do';
if(VeConstants.MODE_UPT == $("#mode").val()){
url = '${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMdfyAjax.do';
}
if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){
$("#sbmtYn").val("Y");
$("#aprvlCd").val(VeConstants.APRVL_CD_10);
//핸드폰번호 하이푼 추가
var phoneAll = document.getElementById("clphone1").value + "-"+ document.getElementById("clphone2").value + "-"+ document.getElementById("clphone3").value;
$("#clphone").val(phoneAll);
var tell = document.getElementById("phone1").value + "-"+ document.getElementById("phone2").value + "-"+ document.getElementById("phone3").value;
$("#phone").val(tell);
//이메일 합치기
var emailAll = document.getElementById("email1").value + "@"+ document.getElementById("email2").value ;
$("#email").val(emailAll);
var data = new FormData(document.getElementById("createForm"));
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){
alert("등록 되었습니다.");
$("#eduAplctOrd").val(returnData.VO.eduAplctOrd);
fncGoDetail(); //현재 메인화면 이동
} else if(status == 'fail'){
alert("등록에 실패하였습니다.");
} else{
alert(returnData.msg);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function validCheck(){
/*
if($("#eduSlctCd").val() == ''){
alert('교육선택 구분을 선택해주세요.');
$("#eduSlctCd").focus();
return false;
};
if($("#eduSlctAreaCd").val() == ''){
alert('교육선택 지역을 선택해주세요.');
$("#eduSlctAreaCd").focus();
return false;
};
if($("#scholInsttNm").val() == ''){
alert('학교(기관)명을 선택해주세요.');
$("#scholInsttNm").focus();
return false;
};
if($("#scholDivCd").val() == ''){
alert('학교구분을 선택해주세요.');
$("#scholDivCd").focus();
return false;
};
if($("#isltnScholYn").val() == ''){
alert('도서벽지학교여부를 선택해주세요.');
$("#isltnScholYn").focus();
return false;
};
*/
if($("#chrgNm").val() == ''){
alert('담당자를 입력해주세요.');
$("#chrgNm").focus();
return false;
};
if($("#clphone1").val() == '' || $("#clphone2").val() == '' || $("#clphone3").val() == ''){
alert('휴대폰 번호를 입력해주세요.');
$("#clphone2").focus();
return false;
};
/*
if($("#phone1").val() == '' || $("#phone2").val() == '' || $("#phone3").val() == ''){
alert('전화번호를 입력해주세요.');
$("#phone1").focus();
return false;
};
*/
if($("#email1").val() == '' || $("#email2").val() == ''){
alert('이메일을 입력해주세요.');
$("#email1").focus();
return false;
};
/*
if($("#eduPlace").val() == ''){
alert('교육장소를 입력해주세요.');
$("#eduPlace").focus();
return false;
};
var trObj = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr');
if(trObj.length == 0){
alert('교육차시 정보를 등록해주세요.');
return false;
}
*/
var flag = true;
/*
$.each(trObj , function(idx, row){
if($(this).find('input[name=eduHopeDt]').val() == ''){
alert('교육희망일 입력해주세요.');
$('input[name=eduHopeDt]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=strtTm]').val() == ''){
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('select[name=divCd]').val() == ''){
alert('구분을 선택해주세요.');
$('select[name=divCd]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=trgt]').val() == ''){
alert('대상을 입력해주세요.');
$('input[name=trgt]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=prsnl]').val() == ''){
alert('인원을 입력해주세요.');
$('input[name=prsnl]:eq('+idx+')').focus();
return flag = false;
}
});
*/
if(!flag){
return false;
}
return true;
}
</script>
</head>
<body>
<div class="mask2" onclick="timeLayerUtil()"></div>
<form id="popupForm" name="popupForm" method="post">
<input type="hidden" name="openType" id="openType" value="callBackSchPop" />
<input type="hidden" name="pageIndex" id="pageIndex" value="1" />
<input type="hidden" name="pageUnit" id="pageUnit" value="5" />
<input type="hidden" name="callBackFnc" id="callBackFnc" value="callBackSchPop" />
</form>
<form:form id="listForm" name="listForm" commandName="modelVO" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${modelVO.pageIndex}' default='1' />"/>
<input type="hidden" name="pageUnit" value="<c:out value="${modelVO.pageUnit}" />" />
<input type="hidden" name="searchSortCnd" value="<c:out value="${modelVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${modelVO.searchSortOrd}" />" />
</form:form>
<form:form id="createForm" name="createForm" commandName="modelVO" onsubmit="return false;">
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
<!-- validator 체크를 위한 핸드폰, 이메일 input -->
<input type="hidden" name="clphone" id="clphone" value=""/><!-- 연락처(핸드폰) -->
<input type="hidden" name="phone" id="phone" value=""/><!-- 연락처 -->
<input type="hidden" name="email" id="email" value=""/><!-- 이메일 -->
<input type="hidden" name="limitcount" id="limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
<input type="hidden" name="mode" id="mode" value="${modelVO.mode}" />
<input type="hidden" name="pageIndex" value="<c:out value='${modelVO.pageIndex}' default='1' />"/>
<input type="hidden" name="pageUnit" value="<c:out value='${modelVO.pageUnit}' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${modelVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${modelVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus2" value="<c:out value="${modelVO.searchStatus2}" />" />
<input type="hidden" name="searchScholDivCd" value="<c:out value="${modelVO.searchScholDivCd}" />" />
<input type="hidden" name="searchEduSlctAreaCd" value="<c:out value="${modelVO.searchEduSlctAreaCd}" />" />
<input type="hidden" name="searchScholNm" value="<c:out value="${modelVO.searchScholNm}" />" />
<input type="hidden" name="searchStartDt" value="<c:out value="${modelVO.searchStartDt}" />" />
<input type="hidden" name="searchEndDt" value="<c:out value="${modelVO.searchEndDt}" />" />
<input type="hidden" name="searchSmbtStartDt" value="<c:out value="${modelVO.searchSmbtStartDt}" />" />
<input type="hidden" name="searchSmbtEndDt" value="<c:out value="${modelVO.searchSmbtEndDt}" />" />
<input type="hidden" name="sbmtYn" id="sbmtYn" value="" />
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육신청 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육신청관리</p>
</li>
<li><span class="cur_nav">교육신청 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육신청 내용</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<!-- 등록자ID 우선 운영자 ID로 넣고 추후 요청이 오면 신청자 선택하게끔 변경 -->
<!-- <tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>신청자</p>
</th>
<td>
<input type="text" style="min-width:100px;" readonly id="userNm" title="신청자명">
<input type="hidden" title="신청자 아이디" id="userId" name="userId" value="">
<button type="button" class="btn_type06" onclick="fncUserList();">신청자 검색</button>
</td>
</tr> -->
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>신청과정</p>
</th>
<td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcsAplct}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsAplctPrdOrd}"/>'>
(<c:out value="${listPrcs.eduStrtPnttm}"/>~<c:out value="${listPrcs.eduDdlnPnttm}"/>) <c:out value="${listPrcs.prcsAplctPrdOrd}"/>_<c:out value="${listPrcs.prcsNm}"/>
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>교육선택</p>
</th>
<td>
<label for="eduSlctCd" class="label">교육선택 구분</label>
<kc:select codeId="VE0007" selectedValue="${info.eduSlctCd}" id="eduSlctCd" name="eduSlctCd" styleClass="sel_type1"/>
<label for="eduSlctAreaCd" class="label">지역 구분</label>
<kc:select codeId="VE0008" selectedValue="${info.eduSlctAreaCd}" id="eduSlctAreaCd" name="eduSlctAreaCd" styleClass="sel_type1"/>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>학교(기관)명</p>
</th>
<td>
<input type="text" value="${info.scholInsttNm}" style="min-width:400px;" size="25" readonly id="scholInsttNm" name="scholInsttNm" title="학교(기관)명">
<button type="button" class="btn_type06" onclick="fncScholList();">학교검색</button>
<input type="hidden" size="25" title="학교명코드" id="stndrdScholCd" name="stndrdScholCd" value="${info.stndrdScholCd}">
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>학교구분</p>
</th>
<td>
<kc:radio codeId="VE0009" id="scholDivCd" name="scholDivCd" selectedValue="${empty info.scholDivCd ? '10' : info.scholDivCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>도서벽지학교여부</p>
</th>
<td>
<input type="radio" name="isltnScholYn" id="isltn_schol_N" value="N" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_N">아니오</label>
<input type="radio" name="isltnScholYn" id="isltn_schol_Y" value="Y" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_Y">예</label>
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>주소</p>
</th>
<td>
<input type="text" value="${info.post}" class="adressFst" id="post" name="post" title="우편번호" readonly><br/><%--<button type="button" class="btnType01">주소찾기</button>--%>
<input type="text" value="${info.addr}" class="adressMid" id="addr" name="addr" title="중간주소" readonly><br/>
<input type="text" value="${info.addrDetail}" class="adressLst" id="addrDetail" name="addrDetail" title="상세주소" readonly>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>담당자</p>
</th>
<td>
<input type="text" name="chrgNm" value="${info.chrgNm}" id="chrgNm" size="25">
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>휴대폰</p>
</th>
<td class="input_phone">
<c:set var="clphone" value="${fn:split(info.clphone,'-')}"/>
<kc:select codeId="ADR020" id="clphone1" name="clphone1" selectedValue="${clphone[0]}" defaultValue="010" styleClass="sel_type1"/>
-
<input type="text" value="${clphone[1]}" id="clphone2" onkeyup="onlyNumber(this);" name="clphone2" maxlength="4" title="휴대폰 중간자리">
-
<input type="text" value="${clphone[2]}" id="clphone3" onkeyup="onlyNumber(this);" name="clphone3" maxlength="4" title="휴대폰 마지막자리">
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>전화</p>
</th>
<td class="input_phone">
<c:set var="phone" value="${fn:split(info.phone,'-')}"/>
<input type="text" value="${phone[0]}" name="phone1" id="phone1" onkeyup="onlyNumber(this);" maxlength="3" style="width: 87px;" title="전화번호입력">
-
<input type="text" value="${phone[1]}" name="phone2" id="phone2" onkeyup="onlyNumber(this);" maxlength="4" title="전화번호입력">
-
<input type="text" value="${phone[2]}" name="phone3" id="phone3" onkeyup="onlyNumber(this);" maxlength="4" title="전화번호입력">
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>이메일</p>
</th>
<td class="input_mail">
<c:set var="email" value="${fn:split(info.email,'@')}"/>
<input type="text" value="${email[0]}" onkeyup="onlyAlphabetNumber(this);" name="email1" id="email1" size="20" maxlength="30" title="이메일 주소 입력">
@
<input type="text" value="${email[1]}" name="email2" id="email2" size="20" maxlength="30" title="이메일 직접 입력">
<kc:select codeId="ADR030" id="emailType" name="emailType" styleClass="sel_type1" defaultValue="" defaultText="직접입력" onChange="emailSelect(this);"/>
<span class="table_req_text">
※ 교내에서 확인 가능한 메일 계정 입력 (예) 교육청 도메인<br>
※ 교육일정 및 강사프로필은 교육 전 주에 메일로 발송됩니다.
</span>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>교육장소</p>
</th>
<td>
<input type="text" value="${info.eduPlace}" name="eduPlace" id="eduPlace" size="25">
<p style="padding-left:10%;">
<input type="checkbox" name="corpsEdu" id="corpsEdu" value="Y" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if>>
<label for="corpsEdu">집체교육</label>
</p>
<p style="padding-left:20px;">
<input type="checkbox" name="broadroomEdu" id="broadroomEdu" value="Y" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if>>
<label for="broadroomEdu">방송국교육</label>
</p>
</td>
</tr>
<tr>
<th scope="row">
<p>교육내용</p>
</th>
<td>
<c:forEach var="list" items="${list}" varStatus="status">
<input type="checkbox" id="eduCn${status.count}" name="eduCn" value="${list.prcsOrd}" ${fn:contains(info.eduCn, list.prcsOrd) ? 'checked' : ''}>
<label for="eduCn${status.count}">${list.prcsNm}</label>
<br/>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">
<p>기자재유무</p>
</th>
<td>
<kc:checkbox codeId="VE0021" id="eqpmnCn" name="eqpmnCn" defaultValue="10" selectedJoinValue="${info.eqpmnCn}"/>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>교육차시 정보</p>
<span class="cf_text2">※ 교육추가 버튼을누러 대상별 1줄씩 작성(1줄 = 강사 1인) 바랍니다. (예시 : 3개 학급 신청 시 대상별 3줄 작성) </span>
</div>
<div class="btn_wrap">
<button type="button" class="btn_type01" onclick="addEduClassCopy('addClassRow');">교육추가</button>
</div>
</div>
<div class="tb_type01">
<table class="addClassRow" rowLimit="1">
<colgroup>
<col style="width: 16%;">
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 12%;">
<col style="width: 15%;">
<col style="width: 6%;">
</colgroup>
<thead>
<tr>
<th scope="col">교육희망일</th>
<th scope="col">시간</th>
<th scope="col">구분</th>
<th scope="col">대상</th>
<th scope="col">인원</th>
<th scope="col">삭제</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${fn:length(chasiList) ne 0}">
<c:forEach var="list" items="${chasiList}" varStatus="status">
<tr>
<th>
<div class="calendar_wrap">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/>
<input type="text" value="<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>" name="eduHopeDt" class="calendar" title="시작일 선택" size="8">
</div>
</th>
<td>
<div class="table_time_wrap">
<div class="time_wrap time_select_wrap">
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/>
<input type="text" value="<fmt:formatDate value="${strtTm}" pattern="kk:mm"/>" class="time" name="strtTm">
<div class="time_layer">
<div class="time_top">
<p>시간 선택</p>
</div>
<div class="time_cont">
<div class="hours">
<select name="st_hours" class="hours_select" title="시 선택">
<option value="선택">선택</option>
<option value="01" <c:if test="${fn:substring(list.strtTm,0,2) eq '01'}">selected</c:if>>01</option>
<option value="02" <c:if test="${fn:substring(list.strtTm,0,2) eq '02'}">selected</c:if>>02</option>
<option value="03" <c:if test="${fn:substring(list.strtTm,0,2) eq '03'}">selected</c:if>>03</option>
<option value="04" <c:if test="${fn:substring(list.strtTm,0,2) eq '04'}">selected</c:if>>04</option>
<option value="05" <c:if test="${fn:substring(list.strtTm,0,2) eq '05'}">selected</c:if>>05</option>
<option value="06" <c:if test="${fn:substring(list.strtTm,0,2) eq '06'}">selected</c:if>>06</option>
<option value="07" <c:if test="${fn:substring(list.strtTm,0,2) eq '07'}">selected</c:if>>07</option>
<option value="08" <c:if test="${fn:substring(list.strtTm,0,2) eq '08'}">selected</c:if>>08</option>
<option value="09" <c:if test="${fn:substring(list.strtTm,0,2) eq '09'}">selected</c:if>>09</option>
<option value="10" <c:if test="${fn:substring(list.strtTm,0,2) eq '10'}">selected</c:if>>10</option>
<option value="11" <c:if test="${fn:substring(list.strtTm,0,2) eq '11'}">selected</c:if>>11</option>
<option value="12" <c:if test="${fn:substring(list.strtTm,0,2) eq '12'}">selected</c:if>>12</option>
<option value="13" <c:if test="${fn:substring(list.strtTm,0,2) eq '13'}">selected</c:if>>13</option>
<option value="14" <c:if test="${fn:substring(list.strtTm,0,2) eq '14'}">selected</c:if>>14</option>
<option value="15" <c:if test="${fn:substring(list.strtTm,0,2) eq '15'}">selected</c:if>>15</option>
<option value="16" <c:if test="${fn:substring(list.strtTm,0,2) eq '16'}">selected</c:if>>16</option>
<option value="17" <c:if test="${fn:substring(list.strtTm,0,2) eq '17'}">selected</c:if>>17</option>
<option value="18" <c:if test="${fn:substring(list.strtTm,0,2) eq '18'}">selected</c:if>>18</option>
<option value="19" <c:if test="${fn:substring(list.strtTm,0,2) eq '19'}">selected</c:if>>19</option>
<option value="20" <c:if test="${fn:substring(list.strtTm,0,2) eq '20'}">selected</c:if>>20</option>
<option value="21" <c:if test="${fn:substring(list.strtTm,0,2) eq '21'}">selected</c:if>>21</option>
<option value="22" <c:if test="${fn:substring(list.strtTm,0,2) eq '22'}">selected</c:if>>22</option>
<option value="23" <c:if test="${fn:substring(list.strtTm,0,2) eq '23'}">selected</c:if>>23</option>
<option value="24" <c:if test="${fn:substring(list.strtTm,0,2) eq '24'}">selected</c:if>>24</option>
</select>
</div>
:
<div class="min">
<select name="st_minute" class="min_select" title="분 선택">
<option value="선택">선택</option>
<option value="00" <c:if test="${fn:substring(list.strtTm,2,4) eq '00'}">selected</c:if>>00</option>
<option value="05" <c:if test="${fn:substring(list.strtTm,2,4) eq '05'}">selected</c:if>>05</option>
<option value="10" <c:if test="${fn:substring(list.strtTm,2,4) eq '10'}">selected</c:if>>10</option>
<option value="15" <c:if test="${fn:substring(list.strtTm,2,4) eq '15'}">selected</c:if>>15</option>
<option value="20" <c:if test="${fn:substring(list.strtTm,2,4) eq '20'}">selected</c:if>>20</option>
<option value="25" <c:if test="${fn:substring(list.strtTm,2,4) eq '25'}">selected</c:if>>25</option>
<option value="30" <c:if test="${fn:substring(list.strtTm,2,4) eq '30'}">selected</c:if>>30</option>
<option value="35" <c:if test="${fn:substring(list.strtTm,2,4) eq '35'}">selected</c:if>>35</option>
<option value="40" <c:if test="${fn:substring(list.strtTm,2,4) eq '40'}">selected</c:if>>40</option>
<option value="45" <c:if test="${fn:substring(list.strtTm,2,4) eq '45'}">selected</c:if>>45</option>
<option value="50" <c:if test="${fn:substring(list.strtTm,2,4) eq '50'}">selected</c:if>>50</option>
<option value="55" <c:if test="${fn:substring(list.strtTm,2,4) eq '55'}">selected</c:if>>55</option>
</select>
</div>
</div>
<button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button>
</div>
</div>
<div class="time_wrap time_select_wrap">
<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/>
<input type="text" value="<fmt:formatDate value="${endTm}" pattern="kk:mm"/>" class="time" name="endTm">
<div class="time_layer">
<div class="time_top">
<p>시간 선택</p>
</div>
<div class="time_cont">
<div class="hours">
<select name="en_hours" class="hours_select" title="시 선택">
<option value="선택">선택</option>
<option value="01" <c:if test="${fn:substring(list.endTm,0,2) eq '01'}">selected</c:if>>01</option>
<option value="02" <c:if test="${fn:substring(list.endTm,0,2) eq '02'}">selected</c:if>>02</option>
<option value="03" <c:if test="${fn:substring(list.endTm,0,2) eq '03'}">selected</c:if>>03</option>
<option value="04" <c:if test="${fn:substring(list.endTm,0,2) eq '04'}">selected</c:if>>04</option>
<option value="05" <c:if test="${fn:substring(list.endTm,0,2) eq '05'}">selected</c:if>>05</option>
<option value="06" <c:if test="${fn:substring(list.endTm,0,2) eq '06'}">selected</c:if>>06</option>
<option value="07" <c:if test="${fn:substring(list.endTm,0,2) eq '07'}">selected</c:if>>07</option>
<option value="08" <c:if test="${fn:substring(list.endTm,0,2) eq '08'}">selected</c:if>>08</option>
<option value="09" <c:if test="${fn:substring(list.endTm,0,2) eq '09'}">selected</c:if>>09</option>
<option value="10" <c:if test="${fn:substring(list.endTm,0,2) eq '10'}">selected</c:if>>10</option>
<option value="11" <c:if test="${fn:substring(list.endTm,0,2) eq '11'}">selected</c:if>>11</option>
<option value="12" <c:if test="${fn:substring(list.endTm,0,2) eq '12'}">selected</c:if>>12</option>
<option value="13" <c:if test="${fn:substring(list.endTm,0,2) eq '13'}">selected</c:if>>13</option>
<option value="14" <c:if test="${fn:substring(list.endTm,0,2) eq '14'}">selected</c:if>>14</option>
<option value="15" <c:if test="${fn:substring(list.endTm,0,2) eq '15'}">selected</c:if>>15</option>
<option value="16" <c:if test="${fn:substring(list.endTm,0,2) eq '16'}">selected</c:if>>16</option>
<option value="17" <c:if test="${fn:substring(list.endTm,0,2) eq '17'}">selected</c:if>>17</option>
<option value="18" <c:if test="${fn:substring(list.endTm,0,2) eq '18'}">selected</c:if>>18</option>
<option value="19" <c:if test="${fn:substring(list.endTm,0,2) eq '19'}">selected</c:if>>19</option>
<option value="20" <c:if test="${fn:substring(list.endTm,0,2) eq '20'}">selected</c:if>>20</option>
<option value="21" <c:if test="${fn:substring(list.endTm,0,2) eq '21'}">selected</c:if>>21</option>
<option value="22" <c:if test="${fn:substring(list.endTm,0,2) eq '22'}">selected</c:if>>22</option>
<option value="23" <c:if test="${fn:substring(list.endTm,0,2) eq '23'}">selected</c:if>>23</option>
<option value="24" <c:if test="${fn:substring(list.endTm,0,2) eq '24'}">selected</c:if>>24</option>
</select>
</div>
:
<div class="min">
<select name="en_minute" class="min_select" title="분 선택">
<option value="선택">선택</option>
<option value="00" <c:if test="${fn:substring(list.endTm,2,4) eq '00'}">selected</c:if>>00</option>
<option value="05" <c:if test="${fn:substring(list.endTm,2,4) eq '05'}">selected</c:if>>05</option>
<option value="10" <c:if test="${fn:substring(list.endTm,2,4) eq '10'}">selected</c:if>>10</option>
<option value="15" <c:if test="${fn:substring(list.endTm,2,4) eq '15'}">selected</c:if>>15</option>
<option value="20" <c:if test="${fn:substring(list.endTm,2,4) eq '20'}">selected</c:if>>20</option>
<option value="25" <c:if test="${fn:substring(list.endTm,2,4) eq '25'}">selected</c:if>>25</option>
<option value="30" <c:if test="${fn:substring(list.endTm,2,4) eq '30'}">selected</c:if>>30</option>
<option value="35" <c:if test="${fn:substring(list.endTm,2,4) eq '35'}">selected</c:if>>35</option>
<option value="40" <c:if test="${fn:substring(list.endTm,2,4) eq '40'}">selected</c:if>>40</option>
<option value="45" <c:if test="${fn:substring(list.endTm,2,4) eq '45'}">selected</c:if>>45</option>
<option value="50" <c:if test="${fn:substring(list.endTm,2,4) eq '50'}">selected</c:if>>50</option>
<option value="55" <c:if test="${fn:substring(list.endTm,2,4) eq '55'}">selected</c:if>>55</option>
</select>
</div>
</div>
<button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button>
</div>
</div>(<input type="text" readonly="readonly" value="${list.lrnTm}" class="input_time" name="lrnTm">분)
</div>
</td>
<td>
<kc:select codeId="VE0010" name="divCd" selectedValue="${list.divCd}" styleClass="sel_type1"/>
</td>
<td><input type="text" style="width: 75%;" name="trgt" value="${list.trgt}"></td>
<td><input type="text" style="width: 63%;" name="prsnl" value="${list.prsnl}" maxlength="3" onkeyup="onlyNumber(this);"><p class="input_text">명</p></td>
<td><button type="button" class="table_del" onclick="tableDel(this)"><img src="<c:url value='/visitEdu/adm/publish/image/content/btn_del.png' />"></button></td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<c:forEach var="list" begin="1" end="2" varStatus="status">
<tr>
<th>
<div class="calendar_wrap">
<input type="text" name="eduHopeDt" class="calendar" title="시작일 선택" size="8">
</div>
</th>
<td>
<div class="table_time_wrap">
<div class="time_wrap time_select_wrap">
<input type="text" class="time" name="strtTm">
<div class="time_layer">
<div class="time_top">
<p>시간 선택</p>
</div>
<div class="time_cont">
<div class="hours">
<select name="st_hours" class="hours_select" title="시 선택">
<option value="선택">선택</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
</select>
</div>
:
<div class="min">
<select name="st_minute" class="min_select" title="분 선택">
<option value="선택">선택</option>
<option value="00">00</option>
<option value="05">05</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="45">45</option>
<option value="50">50</option>
<option value="55">55</option>
</select>
</div>
</div>
<button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button>
</div>
</div>
<div class="time_wrap time_select_wrap">
<input type="text" class="time" name="endTm">
<div class="time_layer">
<div class="time_top">
<p>시간 선택</p>
</div>
<div class="time_cont">
<div class="hours">
<select name="en_hours" class="hours_select" title="시 선택">
<option value="선택">선택</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
</select>
</div>
:
<div class="min">
<select name="en_minute" class="min_select" title="분 선택">
<option value="선택">선택</option>
<option value="00">00</option>
<option value="05">05</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="45">45</option>
<option value="50">50</option>
<option value="55">55</option>
</select>
</div>
</div>
<button type="button" class="time_close" onclick="timeLayerUtil()" title="팝업 닫기"><i></i>닫기</button>
</div>
</div>(<input type="text" readonly="readonly" class="input_time" name="lrnTm">분)
</div>
</td>
<td>
<kc:select codeId="VE0010" name="divCd" styleClass="sel_type1"/>
</td>
<td><input type="text" style="width: 75%;" name="trgt"></td>
<td><input type="text" style="width: 63%;" name="prsnl" maxlength="3" onkeyup="onlyNumber(this);"><p class="input_text">명</p></td>
<td><button type="button" class="table_del" onclick="tableDel(this)"><img src="<c:url value='/visitEdu/adm/publish/image/content/btn_del.png' />"></button></td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncSave('S');">저장</button>
<button type="button" class="btn_type03" onclick="fncGoDetail();">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -175,7 +175,10 @@
<p>이름</p> <p>이름</p>
</div> </div>
<div class="util_right"> <div class="util_right">
<kc:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${vEPrcsDetailVO.prcsDiv}"/> <kc:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${vEPrcsDetailVO.prcsDiv}"
defaultValue=""
defaultText="전체"
/>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '01')}">checked="checked"</c:if>> <input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label> <label class="" for="prcsKind01">신규</label>