Merge branch 'advc' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/offedu into advc
This commit is contained in:
commit
7f17f14254
6
pom.xml
6
pom.xml
@ -69,6 +69,12 @@
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/com.thetransactioncompany/cors-filter -->
|
||||
<dependency>
|
||||
<groupId>com.thetransactioncompany</groupId>
|
||||
<artifactId>cors-filter</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>egovframework.rte</groupId>
|
||||
<artifactId>egovframework.rte.fdl.security</artifactId>
|
||||
|
||||
@ -367,6 +367,32 @@ public class FmsFileController {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/* 첨부파일 삭제 사용자 url*/
|
||||
@RequestMapping(value = "/web/fms/fmsfileDeleteAjax.do")
|
||||
public ModelAndView webFmsfileDeleteAjax(@RequestParam Map<?, ?> commandMap,
|
||||
FmsFileVO fmsFileVO,
|
||||
@ModelAttribute("fileVO") FileVO fileVO
|
||||
) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
/*Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
||||
if (!isAuthenticated) {
|
||||
modelAndView.addObject("result", "auth_fail"); //권한없음 팝업창 닫고, 오프너 창 리로드
|
||||
return modelAndView;
|
||||
}*/
|
||||
|
||||
try {
|
||||
fileMngService.deleteFmsFileInf(fileVO);
|
||||
modelAndView.addObject("result", "success");
|
||||
}catch (Exception e) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
System.out.println("Exception Occured!!!");
|
||||
return modelAndView;
|
||||
}
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/uss/ion/fms/fmsfileMultipleDeleteAjax.do", method = RequestMethod.POST)
|
||||
public ModelAndView fmsfileMultipleDeleteAjax(@RequestBody FileVO fileVo) throws Exception {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
|
||||
@ -16,7 +16,6 @@ import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
||||
@ -45,8 +44,9 @@ import kcc.let.utl.sim.service.EgovClntInfo;
|
||||
* @version 1.0
|
||||
* @see
|
||||
*/
|
||||
@CrossOrigin(origins = "*")
|
||||
|
||||
@Controller
|
||||
@CrossOrigin(origins = "*", methods = RequestMethod.POST)
|
||||
public class APILoginContoller {
|
||||
|
||||
/** userManageService */
|
||||
@ -67,13 +67,15 @@ public class APILoginContoller {
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/web/chkloginKeyForOffedu.do")
|
||||
public String loginKeyChkForOffedu(Map<String, String> paramRequest, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response,HttpSession session) throws Exception {
|
||||
public String loginKeyChkForOffedu(@RequestBody Map<String, String> paramRequest, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response,HttpSession session) throws Exception {
|
||||
String userId = paramRequest.get("user_id");
|
||||
String key = paramRequest.get("key");
|
||||
//String returnUrl = paramRequest.get("returnUrl"); //e-배움터 문의결과 returnUrl 컨트롤은 불가능하다고 함
|
||||
String returnUrl = "";
|
||||
|
||||
System.out.println("@@@@@@@e배움터 로그인 페이지에서 오는 메소드 or e배움터 로그인 상태에서 오는 메소드@@@@@@@@");
|
||||
System.out.println("@@@key:"+key);
|
||||
System.out.println("@@@userId:"+userId);
|
||||
//테스트를 위한 값 선언
|
||||
/*userId = "std02@forwiz.com";
|
||||
key = "std02@forwiz.comxpnBtqsev3nh9mryXRdL9QRSR72XuNc08ese5iXHb0Waq1dMnSdkHHqKCgoSFeyH.amV1c19kb21haW4vTE1T";
|
||||
|
||||
@ -127,5 +127,7 @@ public interface EgovUserManageService {
|
||||
|
||||
public UserManageVO selectOffeduUser(UserManageVO userManageVO) throws Exception;
|
||||
|
||||
public List<UserManageVO> selectOffeduUserList(UserManageVO userManageVO) throws Exception;
|
||||
|
||||
public void insertOffeduUser(UserManageVO userManageVO) throws Exception;
|
||||
}
|
||||
@ -176,6 +176,8 @@ public class UserManageVO extends UserDefaultVO{
|
||||
|
||||
private String mberId; //회원 Id
|
||||
|
||||
private int totCnt = 0; //회원 Id
|
||||
|
||||
public String getAuthorCode() {
|
||||
return authorCode;
|
||||
}
|
||||
@ -707,6 +709,12 @@ public class UserManageVO extends UserDefaultVO{
|
||||
public void setMberId(String mberId) {
|
||||
this.mberId = mberId;
|
||||
}
|
||||
public int getTotCnt() {
|
||||
return totCnt;
|
||||
}
|
||||
public void setTotCnt(int totCnt) {
|
||||
this.totCnt = totCnt;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -312,6 +312,11 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
return userManageVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserManageVO> selectOffeduUserList(UserManageVO userManageVO) throws Exception{
|
||||
return userManageDAO.selectOffeduUserList(userManageVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
public void insertOffeduUser(UserManageVO userManageVO) throws Exception {
|
||||
|
||||
@ -189,6 +189,9 @@ public class UserManageDAO extends EgovAbstractDAO{
|
||||
return (UserManageVO)select("userManageDAO.selectOffeduUser", userManageVO);
|
||||
}
|
||||
|
||||
public List<UserManageVO> selectOffeduUserList(UserManageVO userManageVO) throws Exception{
|
||||
return (List<UserManageVO>)list("userManageDAO.selectOffeduUserList", userManageVO);
|
||||
}
|
||||
public void insertOffeudUser(UserManageVO userManageVO){
|
||||
insert("userManageDAO.insertOffeduUser", userManageVO);
|
||||
}
|
||||
|
||||
@ -547,4 +547,14 @@ public class EgovCryptoUtil {
|
||||
}
|
||||
return decrypt;
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> decryptVeEduAplctList(List<VEEduAplctVO> vEPrcsDetailVOList) {
|
||||
|
||||
for(VEEduAplctVO vo : vEPrcsDetailVOList) {
|
||||
vo.setUserNm(this.decrypt(vo.getUserNm()));
|
||||
}
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
return vEPrcsDetailVOList;
|
||||
}
|
||||
}
|
||||
@ -95,6 +95,26 @@ public class CommonWebController {
|
||||
return "/web/ve/comm/searchBeforeContentPopup";
|
||||
}
|
||||
|
||||
@RequestMapping("/popup/eduInquiryPopup.do")
|
||||
public String eduInquiryPopup(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{
|
||||
//로그인 정보 가져오기
|
||||
/*LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
|
||||
|
||||
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||
|
||||
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
model.addAttribute("list", vEEduAplctVOList);*/
|
||||
|
||||
return "/web/ve/comm/eduInquiryPopup";
|
||||
}
|
||||
|
||||
@RequestMapping("/popup/selectPrcsDetailList.do")
|
||||
public String selectPrcsDetailList(@ModelAttribute("vEEduAplctVO") VEPrcsCntntVO vePrcsCntntVO, ModelMap model, HttpServletRequest request) throws Exception{
|
||||
//로그인 정보 가져오기
|
||||
|
||||
@ -175,6 +175,7 @@ public class ExprnClsrmAplctController {
|
||||
|
||||
//신청서 양식다운로드 정보 가져오기(신청일자 기준 가장 최신 데이터, 1개 로우)
|
||||
VEPrcsDetailVO detailVO = new VEPrcsDetailVO();
|
||||
detailVO.setLctrDivCd("30"); //저작권 체험교실 구분 값
|
||||
detailVO = vEPrcsAplctPrdService.selectDetailNewOne(detailVO);
|
||||
model.addAttribute("detailVO", detailVO);
|
||||
|
||||
@ -184,35 +185,48 @@ public class ExprnClsrmAplctController {
|
||||
@RequestMapping("popup/cautionGuide.do")
|
||||
public String cautionGuide( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
|
||||
|
||||
// 청소년
|
||||
// 저작권 체험교실
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30);
|
||||
|
||||
//신청서 양식다운로드 정보 가져오기(신청일자 기준 가장 최신 데이터, 1개 로우)
|
||||
VEPrcsDetailVO detailVO = new VEPrcsDetailVO();
|
||||
detailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30); //저작권 체험교실 구분 값
|
||||
detailVO = vEPrcsAplctPrdService.selectDetailNewOne(detailVO);
|
||||
|
||||
//신청 기간 체크
|
||||
ModelAndView modelAndView = new ModelAndView(); //eduAplctChkProcess 공통으로 사용하기 위한 선언
|
||||
boolean flag = exprnClsrmAplctService.eduAplctChkProcess(detailVO, request, modelAndView);
|
||||
detailVO.setCheckYn(flag ? "Y" : "N");
|
||||
|
||||
//날짜 표시형식 변환
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmm");
|
||||
|
||||
SimpleDateFormat simpleStrFormat = new SimpleDateFormat("yyyy년 MM월 dd일");
|
||||
SimpleDateFormat simpleStrFormatEnd = new SimpleDateFormat("MM월 dd일");
|
||||
|
||||
//시작일자 날짜 형식 변환
|
||||
Date stDate = simpleDateFormat.parse(detailVO.getFrstRegistPnttm());
|
||||
Date stDate = simpleDateFormat.parse(detailVO.getStrtPnttm());
|
||||
String stDay = simpleStrFormat.format(stDate);
|
||||
|
||||
//종료일자 날짜 형식 변환
|
||||
Date edDate = simpleDateFormat.parse(detailVO.getLastUpdtPnttm());
|
||||
Date edDate = simpleDateFormat.parse(detailVO.getEndPnttm());
|
||||
String edDay = simpleStrFormatEnd.format(edDate);
|
||||
|
||||
//요일 텍스트 받아오기
|
||||
String strWeekStart = DateUtil.getWeekText(stDate);
|
||||
String strWeekEnd = DateUtil.getWeekText(edDate);
|
||||
|
||||
detailVO.setFrstRegistPnttm(stDay + "(" + strWeekStart + ")");
|
||||
detailVO.setLastUpdtPnttm(edDay + "(" + strWeekEnd + ")");
|
||||
detailVO.setStrtPnttm(stDay + "(" + strWeekStart + ")");
|
||||
detailVO.setEndPnttm(edDay + "(" + strWeekEnd + ")");
|
||||
|
||||
model.addAttribute("detailVO", detailVO);
|
||||
|
||||
//현재년도
|
||||
Date year = new Date();
|
||||
SimpleDateFormat nowYearFormat = new SimpleDateFormat("yyyy");
|
||||
String nowYear = nowYearFormat.format(year);
|
||||
model.addAttribute("nowYear", nowYear);
|
||||
|
||||
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/popup/cautionGuide";
|
||||
}
|
||||
|
||||
|
||||
@ -433,7 +433,7 @@ public class ExprnClsrmEndController {
|
||||
model.addAttribute("info", vEEduAplctVO);
|
||||
// return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndRslt";
|
||||
//대량 업로드 솔루션 테스트
|
||||
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndRsltTest";
|
||||
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndRslt";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package kcc.ve.aplct.fndtnEnhanceTrn.web;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -147,32 +150,67 @@ public class FndtnEnhanceTrnController {
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/main.do")
|
||||
public String main( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
|
||||
public String main( @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO , ModelMap model , HttpServletRequest request ) throws Exception {
|
||||
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
/* LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
// 성인
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
|
||||
vEEduAplctVO.setInstrDiv("20");
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
|
||||
//2. pageing step2
|
||||
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEEduAplctVOList);*/
|
||||
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
|
||||
|
||||
|
||||
//1.pageing step1
|
||||
//5개만 select을 위한 설정
|
||||
vEPrcsDetailVO.setPageUnit(5);
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
|
||||
/*
|
||||
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
|
||||
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
|
||||
}
|
||||
*/
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
});
|
||||
|
||||
|
||||
Map<String,Object> countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO);
|
||||
// 리스트 row마다 신청 확인하기
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
model.addAttribute("countMap", countMap);
|
||||
|
||||
//3.pageing step3
|
||||
return "/web/ve/aplct/fndtnEnhanceTrn/main";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@ -231,6 +269,7 @@ public class FndtnEnhanceTrnController {
|
||||
vEEduAplctReqVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctReqVO.setLctrDivCd(t.getLctrDivCd());
|
||||
vEEduAplctReqVO.setPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
|
||||
vEEduAplctReqVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
|
||||
VEEduAplctVO vEEduAplctVO = fndtnEnhanceTrnService.findByAprvlCd(vEEduAplctReqVO);
|
||||
// VO를 먼저 null 체크 후 진행해야 에러안남
|
||||
// vEEduAplctVO != null &&
|
||||
@ -252,6 +291,83 @@ public class FndtnEnhanceTrnController {
|
||||
|
||||
|
||||
return "/web/ve/aplct/fndtnEnhanceTrn/eduAplctList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do")
|
||||
public String fndtnEduAplctList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND b.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.findByAprvlList(vEPrcsDetailVO);
|
||||
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
|
||||
});
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
|
||||
|
||||
return "/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList";
|
||||
}
|
||||
/**
|
||||
* 교육상세
|
||||
@ -287,7 +403,6 @@ public class FndtnEnhanceTrnController {
|
||||
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
@ -336,6 +451,29 @@ public class FndtnEnhanceTrnController {
|
||||
|
||||
|
||||
|
||||
private String dateChk(VEPrcsDetailVO vEPrcsDetailVO , LocalDate currentDate) {
|
||||
|
||||
String returnDate = "";
|
||||
|
||||
String targetDateString = vEPrcsDetailVO.getEduDdlnPnttm();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
|
||||
|
||||
// 문자열로부터 LocalDate 객체를 생성합니다.
|
||||
LocalDate targetDate = LocalDate.parse(targetDateString, formatter);
|
||||
|
||||
|
||||
// 교육종료 날짜와 현재날짜 비교
|
||||
if (currentDate.isBefore(targetDate)) { //현재날짜가 종료날짜보다 이전이면 0
|
||||
returnDate = "0";
|
||||
} else if (currentDate.isAfter(targetDate)) { //현재날짜가 종료날짜 이후면 1
|
||||
returnDate = "1";
|
||||
} else { // 종료날짜와 같으면 2
|
||||
returnDate = "2";
|
||||
}
|
||||
|
||||
return returnDate;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.service;
|
||||
|
||||
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
|
||||
public interface SspnIdtmtService {
|
||||
|
||||
void insertVeEduAplct(VEEduAplctVO paramVO);
|
||||
|
||||
VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO);
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO;
|
||||
|
||||
@Repository("sspnIdtmtDAO")
|
||||
public class SspnIdtmtDAO extends EgovAbstractDAO {
|
||||
|
||||
public void insertIsltn(ScholInfoVO paramVO) throws Exception {
|
||||
insert("ScholInfoDAO.insertIsltn", paramVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* L - Page
|
||||
* @param scholInfoVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<ScholInfoVO> selectPagingList(ScholInfoVO paramVO) throws Exception {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<ScholInfoVO> list = (List<ScholInfoVO>) list("ScholInfoDAO.selectPagingList", paramVO);
|
||||
return list;
|
||||
}
|
||||
|
||||
public ScholInfoVO selectDetail(ScholInfoVO paramVO) throws Exception {
|
||||
return (ScholInfoVO) select("ScholInfoDAO.selectDetail", paramVO);
|
||||
}
|
||||
|
||||
public ScholInfoVO selectDetailWithQuery(ScholInfoVO paramVO) throws Exception {
|
||||
return (ScholInfoVO) select("ScholInfoDAO.selectDetailWithQuery", paramVO);
|
||||
}
|
||||
|
||||
public ScholInfoVO select(ScholInfoVO paramVO) throws Exception {
|
||||
return (ScholInfoVO) select("ScholInfoDAO.select", paramVO);
|
||||
}
|
||||
|
||||
public ScholInfoVO selectScholId(ScholInfoVO paramVO) throws Exception {
|
||||
return (ScholInfoVO) select("ScholInfoDAO.selectScholId", paramVO);
|
||||
}
|
||||
|
||||
public void insert(ScholInfoVO paramVO) throws Exception{
|
||||
insert("ScholInfoDAO.insert" , paramVO);
|
||||
}
|
||||
|
||||
public int update(ScholInfoVO paramVO)throws Exception{
|
||||
return update("ScholInfoDAO.update", paramVO);
|
||||
}
|
||||
|
||||
public void deleteIsltn(ScholInfoVO paramVO) throws Exception {
|
||||
insert("ScholInfoDAO.deleteIsltn", paramVO);
|
||||
}
|
||||
|
||||
public int insertSelectIsltn(ScholInfoVO scholInfoVO) throws Exception {
|
||||
return update("ScholInfoDAO.insertSelectIsltn", scholInfoVO);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.service.impl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduAplctDAO;
|
||||
|
||||
@Service("sspnIdtmtService")
|
||||
public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
|
||||
|
||||
//과정
|
||||
@Resource(name="vEEduAplctDAO")
|
||||
private VEEduAplctDAO vEEduAplctDAO;
|
||||
|
||||
@Override
|
||||
public void insertVeEduAplct(VEEduAplctVO paramVO) {
|
||||
//C
|
||||
vEEduAplctDAO.insertVeEduAplct(paramVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) {
|
||||
return vEEduAplctDAO.findByAprvlCd(vEEduAplctReqVO);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,593 @@
|
||||
package kcc.ve.aplct.sspnIdtmt.web;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
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.servlet.ModelAndView;
|
||||
|
||||
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.impl.CmmUseDAO;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.utl.user.service.CheckFileUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
|
||||
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService;
|
||||
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.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 2021.12.16
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2021.12.16 조용준 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Controller
|
||||
//@RequestMapping("/web/ve/aplct/sspnIdtmt")
|
||||
public class SspnIdtmtController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SspnIdtmtController.class);
|
||||
|
||||
//암복호화 유틸
|
||||
@Resource(name = "egovCryptoUtil")
|
||||
EgovCryptoUtil egovCryptoUtil;
|
||||
|
||||
//파일 체크 util
|
||||
@Resource(name = "checkFileUtil")
|
||||
private CheckFileUtil checkFileUtil;
|
||||
|
||||
//로그인 체크 util
|
||||
@Resource(name = "checkLoginUtil")
|
||||
private CheckLoginUtil checkLoginUtil;
|
||||
|
||||
//파일정보의 관리
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
|
||||
//과정 관리
|
||||
@Resource(name = "vEPrcsService")
|
||||
private VEPrcsService vEPrcsService;
|
||||
|
||||
//온라인콘텐츠과정 관리
|
||||
@Resource(name = "vEPrcsOnlnCntntService")
|
||||
private VEPrcsOnlnCntntService vEPrcsOnlnCntntService;
|
||||
|
||||
//교육신청
|
||||
@Resource(name = "vEEduAplctService")
|
||||
private VEEduAplctService vEEduAplctService;
|
||||
|
||||
//차시
|
||||
@Resource(name = "vEEduChasiService")
|
||||
private VEEduChasiService vVEEduChasiService;
|
||||
|
||||
//교육과정신청
|
||||
@Resource(name = "vEEduMIXService")
|
||||
private VEEduMIXService vEEduMIXService;
|
||||
|
||||
//교육과정신청
|
||||
@Resource(name = "vEPrcsMIXService")
|
||||
private VEPrcsMIXService vEPrcsMIXService;
|
||||
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
|
||||
|
||||
//교육과정순번
|
||||
@Resource(name="prcsGnrService")
|
||||
private EgovIdGnrService prcsGnrService;
|
||||
|
||||
//과정온라인콘텐츠순번
|
||||
@Resource(name="prcsOnlnGnrService")
|
||||
private EgovIdGnrService prcsOnlnGnrService;
|
||||
|
||||
//교육신청순번
|
||||
@Resource(name="eduAplctGnrService")
|
||||
private EgovIdGnrService eduAplctGnrService;
|
||||
|
||||
//교육차시순번
|
||||
@Resource(name="eduChasiGnrService")
|
||||
private EgovIdGnrService eduChasiGnrService;
|
||||
|
||||
//교육신청온라인
|
||||
@Resource(name = "vEEduAplctOnlnService")
|
||||
private VEEduAplctOnlnService vEEduAplctOnlnService;
|
||||
|
||||
@Resource(name = "eduAplctAdultService")
|
||||
private EduAplctAdultService eduAplctAdultService;
|
||||
|
||||
//코드
|
||||
@Resource(name="cmmUseDAO")
|
||||
private CmmUseDAO cmmUseDAO;
|
||||
|
||||
|
||||
//온라인콘텐츠과정 관리
|
||||
@Resource(name = "sspnIdtmtService")
|
||||
private SspnIdtmtService sspnIdtmtService;
|
||||
|
||||
|
||||
/**
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/main.do")
|
||||
public String main( @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO , ModelMap model , HttpServletRequest request ) throws Exception {
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
|
||||
|
||||
|
||||
//1.pageing step1
|
||||
//5개만 select을 위한 설정
|
||||
vEPrcsDetailVO.setPageUnit(5);
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
|
||||
/*
|
||||
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
|
||||
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
|
||||
}
|
||||
*/
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
});
|
||||
|
||||
|
||||
Map<String,Object> countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO);
|
||||
// 리스트 row마다 신청 확인하기
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
model.addAttribute("countMap", countMap);
|
||||
|
||||
return "/web/ve/aplct/sspnIdtmt/main";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/eduAplctList.do")
|
||||
public String eduAplctList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND b.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);
|
||||
|
||||
// 리스트 row마다 신청 확인하기
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
VEEduAplctVO vEEduAplctReqVO = new VEEduAplctVO();
|
||||
vEEduAplctReqVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctReqVO.setLctrDivCd(t.getLctrDivCd());
|
||||
vEEduAplctReqVO.setPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
|
||||
vEEduAplctReqVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60);
|
||||
VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO);
|
||||
// VO를 먼저 null 체크 후 진행해야 에러안남
|
||||
// vEEduAplctVO != null &&
|
||||
if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) {
|
||||
t.setAprvlCd(vEEduAplctVO.getAprvlCd());
|
||||
}
|
||||
});
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
|
||||
|
||||
return "/web/ve/aplct/sspnIdtmt/eduAplctList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/fndtnEduAplctList.do")
|
||||
public String fndtnEduAplctList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND b.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.findByAprvlList(vEPrcsDetailVO);
|
||||
// 리스트 row마다 신청 확인하기
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
|
||||
|
||||
return "/web/ve/aplct/sspnIdtmt/fndtnEduAplctList";
|
||||
}
|
||||
/**
|
||||
* 교육상세
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/eduAplctDetail.do")
|
||||
public String eduAplctDetail(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
//1.pageing step1
|
||||
//과정 조회
|
||||
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
|
||||
|
||||
model.addAttribute("info", vEPrcsDetailVODetail);
|
||||
|
||||
|
||||
return "/web/ve/aplct/sspnIdtmt/eduAplctDetail";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 등록
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/eduRegAjax.do")
|
||||
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, 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 로그인 정보 가져오기
|
||||
|
||||
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
|
||||
vEEduAplctVO.setEduAplctOrd(eduAplctGnrService.getNextStringId());
|
||||
|
||||
vEEduAplctVO.setLctrDivCd("60"); // 기반강화
|
||||
vEEduAplctVO.setAprvlCd("10"); // 승인코드 VE0003 10 - 요청, 20 - 승인, 30 - 반려
|
||||
// sbmt_pnttm 제출일시
|
||||
vEEduAplctVO.setSbmtYn("Y"); // 제출여부
|
||||
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId());
|
||||
// frst_regist_pnttm
|
||||
vEEduAplctVO.setUserId(loginVO.getUniqId());
|
||||
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
|
||||
sspnIdtmtService.insertVeEduAplct(vEEduAplctVO);
|
||||
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 교육신청 목록 화면
|
||||
*/
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do")
|
||||
public String sspnIdtmtEduAplctList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
//로그인 처리====================================
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
if (loginVO == null || ssoLoginVO == null) {
|
||||
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||
}
|
||||
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND b.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.findByAprvlList(vEPrcsDetailVO);
|
||||
|
||||
|
||||
// 현재 날짜를 가져옵니다.
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 날짜비교
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
t.setDateChk(this.dateChk(t, currentDate));
|
||||
|
||||
});
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
|
||||
return "/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList";
|
||||
|
||||
}
|
||||
|
||||
|
||||
private String dateChk(VEPrcsDetailVO vEPrcsDetailVO , LocalDate currentDate) {
|
||||
|
||||
String returnDate = "";
|
||||
|
||||
String targetDateString = vEPrcsDetailVO.getEduDdlnPnttm();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
|
||||
|
||||
// 문자열로부터 LocalDate 객체를 생성합니다.
|
||||
LocalDate targetDate = LocalDate.parse(targetDateString, formatter);
|
||||
|
||||
|
||||
// 교육종료 날짜와 현재날짜 비교
|
||||
if (currentDate.isBefore(targetDate)) { //현재날짜가 종료날짜보다 이전이면 0
|
||||
returnDate = "0";
|
||||
} else if (currentDate.isAfter(targetDate)) { //현재날짜가 종료날짜 이후면 1
|
||||
returnDate = "1";
|
||||
} else { // 종료날짜와 같으면 2
|
||||
returnDate = "2";
|
||||
}
|
||||
|
||||
return returnDate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
@ -51,6 +51,7 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
private String eduPlace; //교육장소
|
||||
private String sbmtYn; //제출여부
|
||||
private String sbmtPnttm; //제출일시
|
||||
private String sbmtPnttmDetail; //제출일시 시분초 추가
|
||||
private String aprvlCd; //승인코드
|
||||
private String aprvlPnttm; //승인일시
|
||||
private String aprvlCn; //승인내용
|
||||
@ -127,6 +128,7 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String endEduPrsnl; //교육인원(이수)
|
||||
|
||||
|
||||
public int getChasi() {
|
||||
return chasi;
|
||||
}
|
||||
@ -260,6 +262,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String endPnttm; //접수 종료일
|
||||
|
||||
private String prcsEndPnttm; //접수 종료일 저작권체험교실.
|
||||
|
||||
//강사료확정처리
|
||||
private String instrFeeOrd;
|
||||
private String feeSbmtYn;
|
||||
@ -293,6 +297,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String prcsAplctPrdOrd;
|
||||
|
||||
private String unfthYn; //불성실여부
|
||||
|
||||
|
||||
public String getPrcsAplctPrdOrd() {
|
||||
return prcsAplctPrdOrd;
|
||||
@ -338,6 +344,13 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
private String clsCmbtYn; //접적지역
|
||||
private String ppulDclnYn; //인구감소지역
|
||||
|
||||
|
||||
private String qestnrId; // 설문
|
||||
private String aplctStateCd; // 교육이수 상태
|
||||
|
||||
|
||||
|
||||
|
||||
public String getSpecialWorkAllow() {
|
||||
return specialWorkAllow;
|
||||
}
|
||||
@ -1464,6 +1477,36 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
public void setRmtTrnAtchFileDetail(FileVO rmtTrnAtchFileDetail) {
|
||||
this.rmtTrnAtchFileDetail = rmtTrnAtchFileDetail;
|
||||
}
|
||||
public String getSbmtPnttmDetail() {
|
||||
return sbmtPnttmDetail;
|
||||
}
|
||||
public void setSbmtPnttmDetail(String sbmtPnttmDetail) {
|
||||
this.sbmtPnttmDetail = sbmtPnttmDetail;
|
||||
}
|
||||
public String getPrcsEndPnttm() {
|
||||
return prcsEndPnttm;
|
||||
}
|
||||
public void setPrcsEndPnttm(String prcsEndPnttm) {
|
||||
this.prcsEndPnttm = prcsEndPnttm;
|
||||
}
|
||||
public String getUnfthYn() {
|
||||
return unfthYn;
|
||||
}
|
||||
public void setUnfthYn(String unfthYn) {
|
||||
this.unfthYn = unfthYn;
|
||||
}
|
||||
public String getQestnrId() {
|
||||
return qestnrId;
|
||||
}
|
||||
public void setQestnrId(String qestnrId) {
|
||||
this.qestnrId = qestnrId;
|
||||
}
|
||||
public String getAplctStateCd() {
|
||||
return aplctStateCd;
|
||||
}
|
||||
public void setAplctStateCd(String aplctStateCd) {
|
||||
this.aplctStateCd = aplctStateCd;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -50,4 +50,6 @@ public interface VEEduMIXService {
|
||||
void updateRsltRprtFileIdNull(VEEduAplctVO vEEduAplctVO) throws Exception;
|
||||
|
||||
void updateRsltRprtFileId(VEEduAplctVO vEEduAplctVO) throws Exception;
|
||||
//저작권 체험교실 목록
|
||||
List<VEEduAplctVO> selectExprnPagingList(VEEduAplctVO paramVO) throws Exception;
|
||||
}
|
||||
|
||||
@ -137,4 +137,10 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
|
||||
public void updateRsltRprtFileId(VEEduAplctVO vEEduAplctVO) throws Exception {
|
||||
insert("VEEduMIXDAO.updateRsltRprtFileId", vEEduAplctVO);
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectExprnPagingList(VEEduAplctVO paramVO) throws Exception {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectExprnPagingList", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,4 +125,8 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
|
||||
public void updateRsltRprtFileId(VEEduAplctVO vEEduAplctVO) throws Exception {
|
||||
vEEduMIXDAO.updateRsltRprtFileId(vEEduAplctVO);
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectExprnPagingList(VEEduAplctVO paramVO) throws Exception{
|
||||
return vEEduMIXDAO.selectExprnPagingList(paramVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,4 +9,12 @@ public interface VEAPrcsAplctPrdInstrAsgnmService {
|
||||
void instrInsert(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO);
|
||||
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd);
|
||||
|
||||
void udpateAprvlCdEduAplct(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
void insertAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
|
||||
|
||||
VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
|
||||
|
||||
void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||
|
||||
@ -38,4 +39,8 @@ public interface VEPrcsAplctPrdService {
|
||||
|
||||
List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import kcc.com.cmm.ComDefaultVO;
|
||||
|
||||
@ -41,6 +42,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
//ve_edu_aplct
|
||||
private String eduAplctOrd; //교육신청순번
|
||||
private List<String> eduAplctOrdList; //교육신청순번
|
||||
private String eduChasiOrd; //교육차시순번
|
||||
private String cnt;
|
||||
|
||||
@ -118,6 +120,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String aprvlCd;
|
||||
|
||||
private String aplctStateCd; // 신청상태코드 VEA003
|
||||
private String eduCmpltCrtfcNmbr;
|
||||
|
||||
private String dateChk;
|
||||
private Boolean qestRsltExists;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -247,6 +255,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setEduAplctOrd(String eduAplctOrd) {
|
||||
this.eduAplctOrd = eduAplctOrd;
|
||||
}
|
||||
public List<String> getEduAplctOrdList() {
|
||||
return eduAplctOrdList;
|
||||
}
|
||||
public void setEduAplctOrdList(List<String> eduAplctOrdList) {
|
||||
this.eduAplctOrdList = eduAplctOrdList;
|
||||
}
|
||||
public String getEduChasiOrd() {
|
||||
return eduChasiOrd;
|
||||
}
|
||||
@ -559,6 +573,30 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setAprvlCd(String aprvlCd) {
|
||||
this.aprvlCd = aprvlCd;
|
||||
}
|
||||
public String getAplctStateCd() {
|
||||
return aplctStateCd;
|
||||
}
|
||||
public void setAplctStateCd(String aplctStateCd) {
|
||||
this.aplctStateCd = aplctStateCd;
|
||||
}
|
||||
public String getEduCmpltCrtfcNmbr() {
|
||||
return eduCmpltCrtfcNmbr;
|
||||
}
|
||||
public void setEduCmpltCrtfcNmbr(String eduCmpltCrtfcNmbr) {
|
||||
this.eduCmpltCrtfcNmbr = eduCmpltCrtfcNmbr;
|
||||
}
|
||||
public String getDateChk() {
|
||||
return dateChk;
|
||||
}
|
||||
public void setDateChk(String dateChk) {
|
||||
this.dateChk = dateChk;
|
||||
}
|
||||
public Boolean getQestRsltExists() {
|
||||
return qestRsltExists;
|
||||
}
|
||||
public void setQestRsltExists(Boolean qestRsltExists) {
|
||||
this.qestRsltExists = qestRsltExists;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -29,4 +29,6 @@ public interface VEPrcsService {
|
||||
//교육과정 리스트 순서 수정
|
||||
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;
|
||||
|
||||
void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
@ -21,4 +21,21 @@ public class VEAPrcsAplctPrdInstrAsgnmDAO extends EgovAbstractDAO {
|
||||
return (List<VEAPrcsAplctPrdInstrAsgnmVO>) list("VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd", prcsAplctPrdOrd);
|
||||
}
|
||||
|
||||
public void udpateAprvlCdEduAplct(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
update("VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct", vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
public void insertAprvlCdEduAplctDetail(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
insert("VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
|
||||
return (VEPrcsDetailVO) select("VEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail", vEDetailVO);
|
||||
}
|
||||
|
||||
public void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
|
||||
delete("VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail", vEDetailVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
@Service("vEAPrcsAplctPrdInstrAsgnmService")
|
||||
public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInstrAsgnmService {
|
||||
@ -35,4 +36,26 @@ public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInst
|
||||
public List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
|
||||
return vEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd(prcsAplctPrdOrd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void udpateAprvlCdEduAplct(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
vEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertAprvlCdEduAplctDetail(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
vEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail(vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
|
||||
return vEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
|
||||
vEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail(vEDetailVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@ -91,5 +92,13 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
|
||||
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.findByAprvlList", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return (Map<String, Object>) select("VEPrcsAplctPrdDAO.findAllDashboardCnt", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -89,4 +90,14 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return vEPrcsAplctPrdDAO.findByAprvlList(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return vEPrcsAplctPrdDAO.findAllDashboardCnt(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -77,4 +77,8 @@ public class VEPrcsDAO extends EgovAbstractDAO {
|
||||
update("VEPrcsDAO.updatePrcsSort", paramVO);
|
||||
}
|
||||
|
||||
public void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
delete("VEPrcsDAO.deleteInstr", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -59,4 +59,10 @@ public class VEPrcsServiceImpl implements VEPrcsService {
|
||||
vEPrcsDAO.updatePrcsSort(paramVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
vEPrcsDAO.deleteInstr(vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -21,6 +21,7 @@ import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
||||
@ -81,6 +82,10 @@ public class CndtnTrgtMngController {
|
||||
@Resource(name="prcsOnlnGnrService")
|
||||
private EgovIdGnrService prcsOnlnGnrService;
|
||||
|
||||
|
||||
//과정차시 관리
|
||||
@Resource(name = "vEPrcsAplctPrdService")
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
/*
|
||||
|
||||
// 교육신청 서비스단
|
||||
@ -341,6 +346,7 @@ public class CndtnTrgtMngController {
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -15,6 +15,7 @@ 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.cmmn.exception.FdlException;
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
@ -61,6 +62,8 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(CndtnPrcsInfoMngController.class);
|
||||
|
||||
private final String LCTR_DIV_CD = "60";
|
||||
|
||||
//로그인 체크 util
|
||||
@Resource(name = "checkLoginUtil")
|
||||
private CheckLoginUtil checkLoginUtil;
|
||||
@ -140,7 +143,7 @@ public class CndtnPrcsInfoMngController {
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
|
||||
@ -165,7 +168,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 화면
|
||||
* 기소유예 화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfyAjax.do")
|
||||
public ModelAndView fndthEduPrcsMngMdfyAjax(
|
||||
@ -275,7 +278,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 등록
|
||||
* 기소유예 등록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngRegAjax.do")
|
||||
public ModelAndView fndthEduPrcsMngRegAjax(
|
||||
@ -306,7 +309,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
String prcsOrd = prcsGnrService.getNextStringId(); // 고유ID
|
||||
vEPrcsDetailVO.setPrcsOrd(prcsOrd);
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsService.insert(vEPrcsDetailVO);
|
||||
|
||||
@ -354,7 +357,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngList.do")
|
||||
public String fndthEduPrcsAplctPrdMngList(
|
||||
public String cndtnEduPrcsAplctMngList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
@ -377,7 +380,7 @@ public class CndtnPrcsInfoMngController {
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
|
||||
@ -415,11 +418,11 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 등록 화면
|
||||
* 기소유예 신청기간 등록 화면
|
||||
*/
|
||||
//@RequestMapping("eduPrcsMngReg.do")
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngReg.do")
|
||||
public String fndthEduPrcsAplctPrdMngReg(
|
||||
public String cndtnEduPrcsAplctMngReg(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
@ -445,7 +448,7 @@ public class CndtnPrcsInfoMngController {
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
|
||||
|
||||
@ -482,7 +485,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 등록
|
||||
* 기소유예 신청기간 등록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctSelectDivAndCnAjax.do")
|
||||
public ModelAndView cndtnEduPrcsAplctSelectDivAndCnAjax(
|
||||
@ -528,10 +531,52 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 등록
|
||||
* 기소유예 신청기간 등록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngRegAjax.do")
|
||||
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
|
||||
public ModelAndView cndtnEduPrcsAplctMngRegAjax(
|
||||
@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 prcsOrd = prcsGnrService.getNextStringId(); // 고유ID
|
||||
vEPrcsDetailVO.setPrcsOrd(prcsOrd);
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsService.insert(vEPrcsDetailVO);
|
||||
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기소유예 신청기간 등록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngRegAjax.do")
|
||||
public ModelAndView cndtnEduPrcsAplctPrdMngRegAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
@ -556,7 +601,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsAplctPrdService.insert(vEPrcsDetailVO);
|
||||
|
||||
|
||||
@ -566,9 +611,119 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 기간 상세화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do")
|
||||
public String cndtnEduPrcsAplctPrdMngDetail(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//과정 조회
|
||||
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
|
||||
model.addAttribute("info", vEPrcsDetailVODetail);
|
||||
|
||||
//과정 신청자 정보 가져오기
|
||||
{
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
VEEduAplctVO paramVO = new VEEduAplctVO();
|
||||
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
// 검색 - 날짜
|
||||
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
|
||||
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
|
||||
// 검색 - 검색어
|
||||
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
|
||||
paramVO.setSearchSelStatus(vEPrcsDetailVO.getSearchSelStatus());
|
||||
|
||||
|
||||
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
System.out.println("====");
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
|
||||
}
|
||||
|
||||
// 강사 배치 정보
|
||||
{
|
||||
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList);
|
||||
|
||||
model.addAttribute("instrAsgnmList", instrAsgnmList);
|
||||
}
|
||||
|
||||
return "/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화 신청자 상태값 변경
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateEduAplctAprvlCdAjax.do")
|
||||
public ModelAndView updateEduAplctAprvlCd(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd() +"!!!");
|
||||
|
||||
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(); //권한에 따른 로그인 정보 가져오기
|
||||
|
||||
try {
|
||||
// 교육 신청 테이블에 신청자 상태값 update
|
||||
vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO);
|
||||
|
||||
// 승인 - 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
|
||||
if("20".equals(vEPrcsDetailVO.getAprvlCd())) {
|
||||
this.aprvlCd20(vEPrcsDetailVO,loginVO.getUniqId());
|
||||
}
|
||||
// 접수취소(반려) - vea_aplct_detail_info TB에 data update
|
||||
else if("30".equals(vEPrcsDetailVO.getAprvlCd()))
|
||||
{
|
||||
this.aprvlCd30(vEPrcsDetailVO);
|
||||
}
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
modelAndView.addObject("result", "");
|
||||
}
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 기소유예 기간 상세화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngDetail.do")
|
||||
public String cndtnEduPrcsAplctMngDetail(
|
||||
@ -602,7 +757,7 @@ public class CndtnPrcsInfoMngController {
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
vEPrcsDetailVO.setPrcsOrd("");
|
||||
|
||||
@ -651,7 +806,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 기간 상세수정화면
|
||||
* 기소유예 기간 상세수정화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngMdfy.do")
|
||||
public String fndthEduPrcsAplctPrdMngMdfy(
|
||||
@ -684,7 +839,7 @@ public class CndtnPrcsInfoMngController {
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
vEPrcsDetailVO.setPrcsOrd("");
|
||||
|
||||
@ -708,7 +863,7 @@ public class CndtnPrcsInfoMngController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 수정
|
||||
* 기소유예 신청기간 수정
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngMdfyAjax.do")
|
||||
public ModelAndView fndthEduPrcsAplctPrdMngMdfyAjax(
|
||||
@ -739,7 +894,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
//String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
|
||||
//vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
//vEPrcsDetailVO.setUseYn("Y");
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
@ -880,6 +1035,303 @@ public class CndtnPrcsInfoMngController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.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(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND b.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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기소유예 신청기간 등록 화면
|
||||
*/
|
||||
//@RequestMapping("eduPrcsMngReg.do")
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.do")
|
||||
public String cndtnEduPrcsAplctPrdMngReg(
|
||||
@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(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
//model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 교육 부분 코드 가져오는 영역
|
||||
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
|
||||
codeVO.setCodeId("VEA001");//기관구분코드
|
||||
codeVO.setCode(vEPrcsDetailVOList.get(0).getPrcsDiv());
|
||||
model.addAttribute("prcsDivNm", cmmUseDAO.selectCmmCodeDetailValue(codeVO).getCodeNm());
|
||||
|
||||
// 상세교육과정 내용 가져오는 영역
|
||||
VEPrcsDetailVO vEPrcsDetailVOPrcsCn = new VEPrcsDetailVO();
|
||||
vEPrcsDetailVOPrcsCn.setPrcsOrd(vEPrcsDetailVOList.get(0).getPrcsOrd());
|
||||
model.addAttribute("prcsCn", vEPrcsService.selectDetail(vEPrcsDetailVOPrcsCn).getPrcsCn());
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcs", vEPrcsDetailVOList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 기간 상세수정화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.do")
|
||||
public String cndtnEduPrcsAplctPrdMngMdfy(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
System.out.println("vEPrcsDetailVO.getPrcsDiv() : "+ vEPrcsDetailVO.getPrcsDiv());
|
||||
|
||||
//과정 정보 가져오기
|
||||
{
|
||||
//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("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
vEPrcsDetailVO.setPrcsOrd("");
|
||||
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
|
||||
|
||||
System.out.println("=====");
|
||||
//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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 수정
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfyAjax.do")
|
||||
public ModelAndView cndtnEduPrcsAplctPrdMngMdfyAjax(
|
||||
@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("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
//vEPrcsDetailVO.setUseYn("Y");
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
|
||||
vEPrcsAplctPrdService.update(vEPrcsDetailVO);
|
||||
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @methodName : aprvlCd20
|
||||
* @author : 이호영
|
||||
* @date : 2023.09.25
|
||||
* @description : aprvlCd == 20 교육 승인 일 경유
|
||||
* 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
|
||||
* @param vEPrcsDetailVO
|
||||
* @param uniqId
|
||||
* @throws FdlException
|
||||
*/
|
||||
private void aprvlCd20(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) throws FdlException {
|
||||
|
||||
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
|
||||
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEDetailVO.setEduAplctOrd(id);
|
||||
|
||||
// 데이터가 있는지만 비교하기 위한 구문
|
||||
VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
// 데이터가 없으면 Insert
|
||||
if(vEDetail_DVO == null) {
|
||||
vEDetailVO.setAplctStateCd("10"); // 신청상태코드 VEA003 10:미이수 20:이수
|
||||
vEDetailVO.setFrstRegisterId(uniqId);
|
||||
vEAPrcsAplctPrdInstrAsgnmService.insertAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : aprvlCd30
|
||||
* @author : 이호영
|
||||
* @date : 2023.09.25
|
||||
* @description : aprvlCd == 30 교육 반려
|
||||
* 반려일 경우 vea_aplct_detail_info TB에 data 삭제
|
||||
* @param vEPrcsDetailVO
|
||||
* @param uniqId
|
||||
* @throws FdlException
|
||||
*/
|
||||
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
|
||||
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
|
||||
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEDetailVO.setEduAplctOrd(id);
|
||||
|
||||
// 데이터가 있는지만 비교하기 위한 구문
|
||||
VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
// 데이터가 있으면 삭제
|
||||
if(vEDetail_DVO != null) {
|
||||
vEDetailVO.setAplctStateCd("30");
|
||||
vEAPrcsAplctPrdInstrAsgnmService.updateAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -14,8 +14,9 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.uss.umt.service.EgovUserManageService;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoMIXService;
|
||||
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoService;
|
||||
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO;
|
||||
@ -54,6 +55,11 @@ public class CommonManageWebController {
|
||||
@Resource(name = "vEEduAplctSndHstryService")
|
||||
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
|
||||
|
||||
|
||||
//회원조회
|
||||
@Resource(name = "userManageService")
|
||||
private EgovUserManageService userManageService;
|
||||
|
||||
/**
|
||||
* 학교정보 검색 팝업 리스트
|
||||
*/
|
||||
@ -78,12 +84,25 @@ public class CommonManageWebController {
|
||||
//검색 조건
|
||||
String selectCondition = new String();
|
||||
if (!"".equals(scholInfoVO.getSearchKeyword())) {
|
||||
selectCondition += "AND a.SCHOL_NM LIKE CONCAT ('%', '" +scholInfoVO.getSearchKeyword() + "', '%')";
|
||||
selectCondition += " AND A.SCHOL_NM LIKE '%"+scholInfoVO.getSearchKeyword()+"%' ";
|
||||
}
|
||||
|
||||
//2.2 학교종류
|
||||
if(StringUtil.isNotEmpty(scholInfoVO.getSearchCondition())){
|
||||
/*if(StringUtil.isNotEmpty(scholInfoVO.getSearchCondition())){
|
||||
selectCondition += "AND DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',IF (INSTR(schol_grade_nm,'각종학교')>0,'40','50')) IN ('"+scholInfoVO.getSearchCondition()+"')";
|
||||
}*/
|
||||
if (!"".equals(scholInfoVO.getSearchCondition())) {
|
||||
if(scholInfoVO.getSearchCondition().equals("10")) {
|
||||
selectCondition += " AND A.SCHOL_GRADE_NM LIKE '%초등%' ";
|
||||
}else if(scholInfoVO.getSearchCondition().equals("20")) {
|
||||
selectCondition += " AND A.SCHOL_GRADE_NM LIKE '%중학%' ";
|
||||
}else if(scholInfoVO.getSearchCondition().equals("30")) {
|
||||
selectCondition += " AND A.SCHOL_GRADE_NM LIKE '%고등%' ";
|
||||
}else if(scholInfoVO.getSearchCondition().equals("40")) {
|
||||
selectCondition += " AND A.SCHOL_GRADE_NM LIKE '%특수%' ";
|
||||
}else if(scholInfoVO.getSearchCondition().equals("50")) {
|
||||
selectCondition += " AND A.SCHOL_GRADE_NM LIKE '%각종%' ";
|
||||
}
|
||||
}
|
||||
scholInfoVO.setSelectPagingListQuery(selectCondition);
|
||||
|
||||
@ -115,7 +134,7 @@ public class CommonManageWebController {
|
||||
|
||||
//권한에 따른 로그인 정보 가져오기
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
|
||||
vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId());
|
||||
int rs = vEEduAplctService.statusUpdate(vEEduAplctVO);
|
||||
|
||||
//교육콘텐츠 교육승인 상태로 변경 시 메일발송
|
||||
@ -198,5 +217,35 @@ public class CommonManageWebController {
|
||||
return "/web/ve/comm/selectPrcsDetailList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원 검색 팝업 리스트
|
||||
*/
|
||||
@RequestMapping("popup/userPopList.do")
|
||||
public String userPopList(@ModelAttribute("searchVO") UserManageVO userManageVO , ModelMap model , HttpServletRequest request ) throws Exception {
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(userManageVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(userManageVO.getPageUnit());
|
||||
paginationInfo.setPageSize(10);
|
||||
|
||||
// paging step2
|
||||
userManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
userManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
userManageVO.setRecordCountPerPage(10);
|
||||
|
||||
if("".equals(userManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
userManageVO.setSearchSortCnd("mber_id");
|
||||
userManageVO.setSearchSortOrd("asc");
|
||||
}
|
||||
|
||||
List<UserManageVO> userList = userManageService.selectOffeduUserList(userManageVO);
|
||||
//3.paging step3
|
||||
int totCnt = 0;
|
||||
if(userList.size() > 0) totCnt = userList.get(0).getTotCnt();
|
||||
paginationInfo.setTotalRecordCount(totCnt);
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
//학교정보 리스트, 페이징 정보 전달
|
||||
model.addAttribute("userList", userList);
|
||||
return "oprtn/cmm/userPopListBower";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package kcc.ve.oprtn.cpyrgExprnClsrm.oprtnAplctMng.web;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -19,10 +21,13 @@ 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.FileVO;
|
||||
import kcc.com.cmm.util.DateUtil;
|
||||
import kcc.com.utl.user.service.CheckFileUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
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.VEPrcsOnlnCntntService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
||||
|
||||
@ -88,6 +93,9 @@ public class OprtnAplctAnncmMngController {
|
||||
@Resource(name = "checkFileUtil")
|
||||
private CheckFileUtil checkFileUtil;
|
||||
|
||||
//교육과정신청
|
||||
@Resource(name = "vEPrcsMIXService")
|
||||
private VEPrcsMIXService vEPrcsMIXService;
|
||||
|
||||
/*
|
||||
|
||||
@ -132,7 +140,7 @@ public class OprtnAplctAnncmMngController {
|
||||
*/
|
||||
@RequestMapping("oprtnAplctAnncmMngList.do")
|
||||
public String OprtnAplctAnncmMngList(
|
||||
VEPrcsDetailVO vEPrcsDetailVO
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
|
||||
@ -171,6 +179,21 @@ public class OprtnAplctAnncmMngController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 저작권체험교실 등록 화면
|
||||
*/
|
||||
@RequestMapping("oprtnAplctAnncmMngReg.do")
|
||||
public String oprtnAplctMgrReg( @ModelAttribute("modelVO") VEPrcsDetailVO vEPrcsDetailVO , ModelMap model) throws Exception {
|
||||
vEPrcsDetailVO.setMode(VeConstants.MODE_CRT);
|
||||
//온라인차시 리스트
|
||||
vEPrcsDetailVO.setUseYn("Y");
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30);
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectPrcsList(vEPrcsDetailVO);
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육과정관리 상세 화면
|
||||
@ -212,6 +235,43 @@ public class OprtnAplctAnncmMngController {
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육과정관리 미리보기 팝업
|
||||
*/
|
||||
@RequestMapping("cautionGuidePreView.do")
|
||||
public String cautionGuidePreView(@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO, ModelMap model)throws Exception{
|
||||
|
||||
//날짜 표시형식 변환
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmm");
|
||||
|
||||
SimpleDateFormat simpleStrFormat = new SimpleDateFormat("yyyy년 MM월 dd일");
|
||||
SimpleDateFormat simpleStrFormatEnd = new SimpleDateFormat("MM월 dd일");
|
||||
|
||||
//시작일자 날짜 형식 변환
|
||||
Date stDate = simpleDateFormat.parse(vEPrcsDetailVO.getStrtPnttm());
|
||||
String stDay = simpleStrFormat.format(stDate);
|
||||
|
||||
//종료일자 날짜 형식 변환
|
||||
Date edDate = simpleDateFormat.parse(vEPrcsDetailVO.getEndPnttm());
|
||||
String edDay = simpleStrFormatEnd.format(edDate);
|
||||
|
||||
//요일 텍스트 받아오기
|
||||
String strWeekStart = DateUtil.getWeekText(stDate);
|
||||
String strWeekEnd = DateUtil.getWeekText(edDate);
|
||||
|
||||
vEPrcsDetailVO.setStrtPnttm(stDay + "(" + strWeekStart + ")");
|
||||
vEPrcsDetailVO.setEndPnttm(edDay + "(" + strWeekEnd + ")");
|
||||
|
||||
|
||||
//현재년도
|
||||
Date year = new Date();
|
||||
SimpleDateFormat nowYearFormat = new SimpleDateFormat("yyyy");
|
||||
String nowYear = nowYearFormat.format(year);
|
||||
model.addAttribute("nowYear", nowYear);
|
||||
|
||||
return "oprtn/cpyrgExprnClsrm/popup/cautionGuidePreView";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육과정관리 수정 화면
|
||||
*/
|
||||
@ -362,29 +422,7 @@ public class OprtnAplctAnncmMngController {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 교육과정관리 등록 화면
|
||||
*/
|
||||
@RequestMapping("oprtnAplctAnncmMngReg.do")
|
||||
public String OprtnAplctAnncmMngReg(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
model.addAttribute("loginVO", loginVO);
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육과정관리 등록
|
||||
@ -411,7 +449,6 @@ public class OprtnAplctAnncmMngController {
|
||||
}
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
// SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
@ -436,19 +473,6 @@ public class OprtnAplctAnncmMngController {
|
||||
//step2.파일 처리====================================
|
||||
|
||||
|
||||
|
||||
/* if (loginVO!=null) {
|
||||
System.out.println(loginVO.getMembId());
|
||||
System.out.println(loginVO.getMembSeq());
|
||||
System.out.println(loginVO.getId());
|
||||
System.out.println(loginVO.getUniqId());
|
||||
}
|
||||
if (ssoLoginVO!=null) {
|
||||
System.out.println(ssoLoginVO.getMembId());
|
||||
System.out.println(ssoLoginVO.getMembSeq());
|
||||
//System.out.println(ssoLoginVO.getId());
|
||||
}*/
|
||||
|
||||
//번호 생성 및 디비 생성해주기
|
||||
String prcsAplctPrdOrd = prcsGnrService.getNextStringId(); // 고유ID
|
||||
vEPrcsDetailVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
|
||||
@ -475,7 +499,6 @@ public class OprtnAplctAnncmMngController {
|
||||
System.out.println(vEPrcsDetailVO.getEndPnttm());
|
||||
|
||||
vEPrcsDetailVO.setLctrDivCd("30");
|
||||
// vEPrcsDetailVO.setUseYn("Y");
|
||||
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsAplctPrdService.insert(vEPrcsDetailVO);
|
||||
|
||||
|
||||
@ -1,21 +1,36 @@
|
||||
package kcc.ve.oprtn.cpyrgExprnClsrm.oprtnAplctMng.web;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@ -137,7 +152,9 @@ public class OprtnAplctMngController {
|
||||
//vEEduAplctVO.setLctrDivCd("30");
|
||||
vEEduAplctVO.setNotiUserId(user.getUniqId());
|
||||
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
//List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
vEEduAplctVO.setLctrDivCd("30");
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO);
|
||||
//List복호화
|
||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||
//3.pageing step3
|
||||
@ -151,19 +168,27 @@ public class OprtnAplctMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 저작권체험교실 등록 화면
|
||||
* 교육과정관리 등록 화면
|
||||
*/
|
||||
@RequestMapping("oprtnAplctMngReg.do")
|
||||
public String oprtnAplctMgrReg( @ModelAttribute("modelVO") VEPrcsDetailVO vEPrcsDetailVO , ModelMap model) throws Exception {
|
||||
vEPrcsDetailVO.setMode(VeConstants.MODE_CRT);
|
||||
//온라인차시 리스트
|
||||
vEPrcsDetailVO.setUseYn("Y");
|
||||
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30);
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectPrcsList(vEPrcsDetailVO);
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctMngReg";
|
||||
public String OprtnAplctAnncmMngReg(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
model.addAttribute("loginVO", loginVO);
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctMngReg";
|
||||
}
|
||||
|
||||
/**
|
||||
@ -408,13 +433,13 @@ String[] header = {
|
||||
,"보고서제출일"
|
||||
,"운영시기(월)"
|
||||
|
||||
,"선정결과"
|
||||
,"처리상태"
|
||||
,"성별"
|
||||
,"참고사항"
|
||||
};
|
||||
|
||||
String[] order = {
|
||||
"TotCnt"
|
||||
"EduAplctOrd"
|
||||
,"EduSlctAreaCd"
|
||||
,"ScholDivCd"
|
||||
,"ScholInsttNm"
|
||||
@ -438,7 +463,7 @@ String[] order = {
|
||||
,"RprtSbmtDt"
|
||||
,"OprtnStrtDt"
|
||||
|
||||
,"MdfyRqstYn"
|
||||
,"AprvlCd"
|
||||
,"ChrgSexCd"
|
||||
,""
|
||||
};
|
||||
@ -457,7 +482,222 @@ String[] order = {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 저작권 체험교실 운영신청 목록 업로드 파일 일괄 다운로드
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "oprtnAplctFileAllDownLoad.do")
|
||||
public void oprtnAplctFileAllDownLoad(@RequestParam Map<String, Object> commandMap
|
||||
, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
|
||||
//파일 SN을 리스트에 담기
|
||||
List<String> atchFileIdList = new ArrayList<String>();
|
||||
//파일 SN을 리스트에 담기
|
||||
List<String> atchFileSnList = new ArrayList<String>();
|
||||
|
||||
//split을 이용해 아이디를 각자 배열에 담기
|
||||
String[] splitIdStr = commandMap.get("atchFileId").toString().split(",");
|
||||
String[] splitSnStr = commandMap.get("fileSn").toString().split(",");
|
||||
//zip파일 이름
|
||||
String orgnZipNm = commandMap.get("orgnZipNm").toString();
|
||||
//downloadType (A:ID가 여러개고 fileSn이 1개인 경우 || B:ID는 하나이고 fileSn이 여러개인 경우)
|
||||
String downloadType = commandMap.get("downloadType").toString();
|
||||
|
||||
String atchFileId = new String();
|
||||
String fileSn = new String();
|
||||
|
||||
|
||||
//ID가 여러개고 fileSn이 1개인 경우
|
||||
if("A".equals(downloadType)) {
|
||||
fileSn = "0";
|
||||
for(int i=0; i<splitIdStr.length; i++) {
|
||||
atchFileIdList.add(splitIdStr[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//ID는 하나이고 fileSn이 여러개인 경우
|
||||
if("B".equals(downloadType)) {
|
||||
atchFileId = splitIdStr[0];
|
||||
for(int i=0; i<splitSnStr.length; i++) {
|
||||
atchFileSnList.add(splitSnStr[i]);
|
||||
}
|
||||
}
|
||||
|
||||
FileVO fileVO = new FileVO();
|
||||
fileVO.setDownloadType(downloadType);
|
||||
|
||||
if("A".equals(downloadType)) {
|
||||
fileVO.setAtchFileIdList(atchFileIdList);
|
||||
fileVO.setFileSn(fileSn);
|
||||
} else if("B".equals(downloadType)) {
|
||||
fileVO.setAtchFileId(atchFileId);
|
||||
fileVO.setAtchFileSnList(atchFileSnList);
|
||||
}
|
||||
|
||||
List<FileVO> fvoList = fileService.selectZipFileList(fileVO); // 해당 기능에 맞게 파일 조회
|
||||
|
||||
if(fvoList.size() == 0){
|
||||
response.setContentType("application/x-msdownload");
|
||||
PrintWriter printwriter = response.getWriter();
|
||||
printwriter.println("<html>");
|
||||
printwriter.println("<br><br><br><h2>Could not get file name:<br></h2>");
|
||||
printwriter.println("<br><br><br><center><h3><a href='javascript: history.go(-1)'>Back</a></h3></center>");
|
||||
printwriter.println("<br><br><br>© webAccess");
|
||||
printwriter.println("</html>");
|
||||
printwriter.flush();
|
||||
printwriter.close();
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
// buffer size
|
||||
int size = 1024;
|
||||
byte[] buf = new byte[size];
|
||||
|
||||
String outZipNm = fvoList.get(0).getFileStreCours()+File.separator + orgnZipNm;
|
||||
FileInputStream fis = null;
|
||||
ZipArchiveOutputStream zos = null;
|
||||
BufferedInputStream bis = null;
|
||||
|
||||
try {
|
||||
// Zip 파일생성
|
||||
zos = new ZipArchiveOutputStream(new BufferedOutputStream(new FileOutputStream(outZipNm)));
|
||||
|
||||
for ( FileVO vo : fvoList ){
|
||||
zos.setEncoding("UTF-8");
|
||||
|
||||
//buffer에 해당파일의 stream을 입력한다.
|
||||
fis = new FileInputStream(vo.getFileStreCours() + "/" + vo.getStreFileNm());
|
||||
bis = new BufferedInputStream(fis,size);
|
||||
|
||||
//zip에 넣을 다음 entry 를 가져온다.
|
||||
zos.putArchiveEntry(new ZipArchiveEntry(vo.getOrignlFileNm()));
|
||||
|
||||
//준비된 버퍼에서 집출력스트림으로 write 한다.
|
||||
int len;
|
||||
while((len = bis.read(buf,0,size)) != -1) zos.write(buf,0,len);
|
||||
|
||||
bis.close();
|
||||
fis.close();
|
||||
zos.closeArchiveEntry();
|
||||
}
|
||||
|
||||
zos.close();
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
if( zos != null ) zos.close();
|
||||
if( fis != null ) fis.close();
|
||||
if( bis != null ) bis.close();
|
||||
}
|
||||
|
||||
File uFile = new File(fvoList.get(0).getFileStreCours(), orgnZipNm);
|
||||
long fSize = uFile.length();
|
||||
|
||||
if (fSize > 0) {
|
||||
String mimetype = "application/x-msdownload";
|
||||
|
||||
response.setContentType(mimetype);
|
||||
setDisposition(orgnZipNm, request, response);
|
||||
//response.setContentLength(fSize);
|
||||
|
||||
BufferedInputStream in = null;
|
||||
BufferedOutputStream out = null;
|
||||
|
||||
try {
|
||||
in = new BufferedInputStream(new FileInputStream(uFile));
|
||||
out = new BufferedOutputStream(response.getOutputStream());
|
||||
|
||||
FileCopyUtils.copy(in, out);
|
||||
out.flush();
|
||||
} catch (Exception ex) {
|
||||
LOGGER.debug("IGNORED: {}", ex.getMessage());
|
||||
} finally {
|
||||
if (in != null) {
|
||||
try {
|
||||
in.close();
|
||||
} catch (Exception ignore) {
|
||||
LOGGER.debug("IGNORED: {}", ignore.getMessage());
|
||||
}
|
||||
}
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
} catch (Exception ignore) {
|
||||
LOGGER.debug("IGNORED: {}", ignore.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
//파일 다운로드 후 파일 삭제
|
||||
File delFile = new File(outZipNm);
|
||||
delFile.delete();
|
||||
} else {
|
||||
response.setContentType("application/x-msdownload");
|
||||
PrintWriter printwriter = response.getWriter();
|
||||
printwriter.println("<html>");
|
||||
printwriter.println("<br><br><br><h2>Could not get file name:<br>" + orgnZipNm + "</h2>");
|
||||
printwriter.println("<br><br><br><center><h3><a href='javascript: history.go(-1)'>Back</a></h3></center>");
|
||||
printwriter.println("<br><br><br>© webAccess");
|
||||
printwriter.println("</html>");
|
||||
printwriter.flush();
|
||||
printwriter.close();
|
||||
}
|
||||
}
|
||||
|
||||
private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String browser = getBrowser(request);
|
||||
|
||||
String dispositionPrefix = "attachment; filename=";
|
||||
String encodedFilename = null;
|
||||
|
||||
if (browser.equals("MSIE")) {
|
||||
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
|
||||
} else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
|
||||
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
|
||||
} else if (browser.equals("Firefox")) {
|
||||
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
|
||||
} else if (browser.equals("Opera")) {
|
||||
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
|
||||
} else if (browser.equals("Chrome")) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < filename.length(); i++) {
|
||||
char c = filename.charAt(i);
|
||||
if (c > '~') {
|
||||
sb.append(URLEncoder.encode("" + c, "UTF-8"));
|
||||
} else {
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
encodedFilename = sb.toString();
|
||||
} else {
|
||||
//throw new RuntimeException("Not supported browser");
|
||||
throw new IOException("Not supported browser");
|
||||
}
|
||||
|
||||
// response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); // 파일명에 콤마 포함시 오류
|
||||
response.setHeader("Content-Disposition", dispositionPrefix + "\"" + encodedFilename + "\"");
|
||||
|
||||
if ("Opera".equals(browser)) {
|
||||
response.setContentType("application/octet-stream;charset=UTF-8");
|
||||
}
|
||||
}
|
||||
|
||||
private String getBrowser(HttpServletRequest request) {
|
||||
String header = request.getHeader("User-Agent");
|
||||
if (header.indexOf("MSIE") > -1) {
|
||||
return "MSIE";
|
||||
} else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
|
||||
return "Trident";
|
||||
} else if (header.indexOf("Chrome") > -1) {
|
||||
return "Chrome";
|
||||
} else if (header.indexOf("Opera") > -1) {
|
||||
return "Opera";
|
||||
}
|
||||
return "Firefox";
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -11,10 +12,13 @@ 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.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.exception.FdlException;
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
@ -135,6 +139,7 @@ public class FndthPrcsAplctPrdMngController {
|
||||
//과정
|
||||
@Resource(name="cmmUseDAO")
|
||||
private CmmUseDAO cmmUseDAO;
|
||||
|
||||
/*
|
||||
|
||||
// 교육신청 서비스단
|
||||
@ -274,11 +279,8 @@ public class FndthPrcsAplctPrdMngController {
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
//model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
|
||||
|
||||
// 교육 부분 코드 가져오는 영역
|
||||
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
|
||||
codeVO.setCodeId("VEA001");//기관구분코드
|
||||
@ -290,8 +292,6 @@ public class FndthPrcsAplctPrdMngController {
|
||||
vEPrcsDetailVOPrcsCn.setPrcsOrd(vEPrcsDetailVOList.get(0).getPrcsOrd());
|
||||
model.addAttribute("prcsCn", vEPrcsService.selectDetail(vEPrcsDetailVOPrcsCn).getPrcsCn());
|
||||
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcs", vEPrcsDetailVOList);
|
||||
}
|
||||
@ -448,8 +448,18 @@ public class FndthPrcsAplctPrdMngController {
|
||||
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
// 검색 - 날짜
|
||||
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
|
||||
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
|
||||
// 검색 - 검색어
|
||||
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
|
||||
|
||||
|
||||
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEPrcsDetailVOList);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
System.out.println("====");
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
|
||||
@ -515,6 +525,7 @@ public class FndthPrcsAplctPrdMngController {
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcs", vEPrcsDetailVOList);
|
||||
System.out.println("==========");
|
||||
}
|
||||
|
||||
//과정 조회
|
||||
@ -684,9 +695,6 @@ public class FndthPrcsAplctPrdMngController {
|
||||
//선택한 강사 데이터 등록 처리
|
||||
vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO);
|
||||
|
||||
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
@ -698,6 +706,122 @@ public class FndthPrcsAplctPrdMngController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화 신청자 상태값 변경
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/updateEduAplctAprvlCdAjax.do")
|
||||
public ModelAndView updateEduAplctAprvlCd(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd() +"!!!");
|
||||
|
||||
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(); //권한에 따른 로그인 정보 가져오기
|
||||
|
||||
try {
|
||||
// 교육 신청 테이블에 신청자 상태값 update
|
||||
vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO);
|
||||
|
||||
// 승인 - 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
|
||||
if("20".equals(vEPrcsDetailVO.getAprvlCd())) {
|
||||
this.aprvlCd20(vEPrcsDetailVO,loginVO.getUniqId());
|
||||
}
|
||||
// 접수취소(반려) - vea_aplct_detail_info TB에 data update
|
||||
else if("30".equals(vEPrcsDetailVO.getAprvlCd()))
|
||||
{
|
||||
this.aprvlCd30(vEPrcsDetailVO);
|
||||
}
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
modelAndView.addObject("result", "");
|
||||
}
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @methodName : aprvlCd20
|
||||
* @author : 이호영
|
||||
* @date : 2023.09.25
|
||||
* @description : aprvlCd == 20 교육 승인 일 경유
|
||||
* 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
|
||||
* @param vEPrcsDetailVO
|
||||
* @param uniqId
|
||||
* @throws FdlException
|
||||
*/
|
||||
private void aprvlCd20(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) throws FdlException {
|
||||
|
||||
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
|
||||
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEDetailVO.setEduAplctOrd(id);
|
||||
|
||||
// 데이터가 있는지만 비교하기 위한 구문
|
||||
VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
// 데이터가 없으면 Insert
|
||||
if(vEDetail_DVO == null) {
|
||||
vEDetailVO.setAplctStateCd("10"); // 신청상태코드 VEA003 10:미이수 20:이수
|
||||
vEDetailVO.setFrstRegisterId(uniqId);
|
||||
vEAPrcsAplctPrdInstrAsgnmService.insertAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : aprvlCd30
|
||||
* @author : 이호영
|
||||
* @date : 2023.09.25
|
||||
* @description : aprvlCd == 30 교육 반려
|
||||
* 승인일 경우 vea_aplct_detail_info TB에 data 삭제
|
||||
* @param vEPrcsDetailVO
|
||||
* @param uniqId
|
||||
* @throws FdlException
|
||||
*/
|
||||
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
|
||||
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
|
||||
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
vEDetailVO.setEduAplctOrd(id);
|
||||
|
||||
// 데이터가 있는지만 비교하기 위한 구문
|
||||
VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
// 데이터가 있으면 삭제
|
||||
if(vEDetail_DVO != null) {
|
||||
vEDetailVO.setAplctStateCd("30");
|
||||
vEAPrcsAplctPrdInstrAsgnmService.updateAprvlCdEduAplctDetail(vEDetailVO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -332,7 +332,6 @@ public class FndthPrcsInfoMngController {
|
||||
public ModelAndView fndthEduPrcsMngMdfyAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
//, RedirectAttributes redirectAttributes
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
@ -381,6 +380,51 @@ public class FndthPrcsInfoMngController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 등록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/instrDelAjax.do")
|
||||
public ModelAndView instrDelAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView("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 로그인 정보 가져오기
|
||||
|
||||
try {
|
||||
|
||||
vEPrcsService.deleteInstr(vEPrcsDetailVO);
|
||||
modelAndView.addObject("result", "success");
|
||||
} catch (Exception e) {
|
||||
modelAndView.addObject("result", "");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -623,7 +623,7 @@ public class MainController {
|
||||
//List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtree(menuManageVO) ;
|
||||
menuManageVO.setSiteId(siteId);
|
||||
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
|
||||
|
||||
System.out.println("================================");
|
||||
List<String> menuTwoExist = new ArrayList<>(); //2뎁스의 하위 매뉴가 있는것 조회
|
||||
HashSet<String> underMenuEmpty = new HashSet<String>(); //2뎁스의 하위매뉴 없는것 조회
|
||||
for(MenuManageJTreeVO menuManage : menuResultList){
|
||||
@ -1355,6 +1355,8 @@ public class MainController {
|
||||
.replace("addFcltMgr", "fcltMgrList")
|
||||
.replace("mainzoneModify", "mainzoneList");
|
||||
menuUrl = strUrl;
|
||||
|
||||
System.out.println("strUrl :: "+ strUrl);
|
||||
}
|
||||
|
||||
|
||||
@ -1465,6 +1467,21 @@ public class MainController {
|
||||
//현재 메뉴
|
||||
setViewMenu(request , commandMap , tempMenuManageVO , resultVO , menuManageVO );
|
||||
|
||||
|
||||
String pageUrl = request.getRequestURI().replaceAll(request.getContextPath(), "");
|
||||
// System.out.println("pageUri :: "+ pageUri.substring(0, pageUri.lastIndexOf("/")));
|
||||
|
||||
|
||||
String pageUri = pageUrl.substring(0, pageUrl.lastIndexOf("/"));
|
||||
model.addAttribute("pageUri", pageUri);
|
||||
String pageUriLast = pageUrl.substring(pageUrl.lastIndexOf("/"), pageUrl.length());
|
||||
model.addAttribute("pageUriLast", pageUriLast);
|
||||
|
||||
System.out.println("pageUri :: "+ pageUri);
|
||||
System.out.println("pageUri :: "+ pageUri);
|
||||
System.out.println("pageUri :: "+ pageUri);
|
||||
System.out.println("pageUriLast :: "+ pageUriLast);
|
||||
|
||||
//메뉴번호 넘겨주기
|
||||
model.addAttribute("menuNo", menuManageVO.getMenuNo());
|
||||
|
||||
@ -1533,6 +1550,7 @@ public class MainController {
|
||||
menuManageVO.setAuthorCode(auth);
|
||||
menuManageVO.setMenuUserType(menuManageVO.getMenuUserType());
|
||||
List<MenuManageJTreeVO> menuResultList = menuCreateManageService.selectMenuListJtreeWeb(menuManageVO) ;
|
||||
System.out.println("======================== menuResultList");
|
||||
for(MenuManageJTreeVO tempResultVo : menuResultList){ //1 뎁스
|
||||
if(tempResultVo.getDepths().equals("1")){
|
||||
showOneDepthMenu.add(tempResultVo);
|
||||
@ -1620,6 +1638,25 @@ public class MainController {
|
||||
|
||||
model.addAttribute("menuCurrentResultList", menuCurrentResultList);
|
||||
model.addAttribute("menuLeftResultList", menuLeftResultList);
|
||||
|
||||
|
||||
|
||||
for(MenuManageJTreeVO treeVO : menuResultList) {
|
||||
if(!"1".equals(treeVO.getDepths())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for(MenuManageJTreeVO treeLowVO : menuResultList) {
|
||||
if(treeVO.getMenuNo().equals(treeLowVO.getUpperMenuId())) {
|
||||
treeVO.setUrl(treeLowVO.getUrl());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
model.addAttribute("menuResultList", menuResultList);
|
||||
|
||||
// 아래 처리중 중간네비 메뉴 조회를 위해 with recurseive 중첩절을 쓰는 쿼리가 있음으로, 큐브리드 쿼리화 필요
|
||||
|
||||
@ -2891,7 +2891,6 @@
|
||||
<property name="fillChar" value="0" />
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- 18.일별가능시수설정 vea_dt_psbl_tm_qntty_stng -->
|
||||
<bean name="dtPsblTmQnttyGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
|
||||
<property name="dataSource" ref="dataSource" />
|
||||
|
||||
@ -112,7 +112,7 @@
|
||||
<!-- 강의 NOTI 관리 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Cubrid.xml"/>
|
||||
|
||||
<!-- 강의 NOTI 관리 -->
|
||||
<!-- 조건부기소유예관리 대상자 관리 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Cubrid.xml"/>
|
||||
|
||||
|
||||
|
||||
@ -53,6 +53,7 @@
|
||||
|
||||
|
||||
<!-- 교육신청복합쿼리 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEAPrcsAplctPrdInstrAsgnm_SQL_Tibero.xml"/>
|
||||
<sqlMap resource="egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml"/>
|
||||
|
||||
|
||||
@ -111,6 +112,8 @@
|
||||
<!-- 강의 NOTI 관리 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Tibero.xml"/>
|
||||
|
||||
<!-- 조건부기소유예관리 대상자 관리 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Tibero.xml"/>
|
||||
<!-- 청소년 추가 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEADtPsblTmQnttyStng_SQL_Tibero.xml"/> <!-- 일별가능시수설정 -->
|
||||
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrYrStng_SQL_Tibero.xml"/> <!-- 강의년도설정 -->
|
||||
|
||||
@ -927,4 +927,16 @@
|
||||
)
|
||||
|
||||
</insert>
|
||||
|
||||
<select id="userManageDAO.selectOffeduUserList" parameterClass="userVO" resultClass="userVO">
|
||||
/* 임시.*NOT_SQL_LOG.* userManageDAO.selectOffeduUser */
|
||||
SELECT COUNT(mber_id) OVER() AS totCnt,
|
||||
a.mber_id AS mberId
|
||||
FROM lettngnrlmber a
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="searchWord" prepend="AND">
|
||||
a.mber_id LIKE '%'||#searchWord#||'%'
|
||||
</isNotEmpty>
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<!-- 패널티 등록 C -->
|
||||
<insert id="VEAsgnmNotiDAO.insert" parameterClass="VEAsgnmNotiVO">
|
||||
|
||||
MERGE INTO <include refid="VEAsgnmNotiDAO.table_name"/> T1 USING DB_ROOT
|
||||
<!-- MERGE INTO <include refid="VEAsgnmNotiDAO.table_name"/> T1 USING DB_ROOT
|
||||
ON (T1.TBL_UNIQ_ORD = #tblUniqOrd# AND T1.FRST_REGISTER_ID = #frstRegisterId# AND T1.MENU_NO = #menuNo# )
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
@ -48,7 +48,33 @@
|
||||
#frstRegisterId#,
|
||||
#menuNo#,
|
||||
#urlPath#
|
||||
) -->
|
||||
|
||||
MERGE INTO <include refid="VEAsgnmNotiDAO.table_name"/> T1
|
||||
USING (SELECT
|
||||
#tblUniqOrd# AS tbl_uniq_ord,
|
||||
#frstRegisterId# AS frst_register_id,
|
||||
#menuNo# AS menu_no,
|
||||
#urlPath# AS url_path FROM DUAL) T2
|
||||
ON (T1.tbl_uniq_ord = T2.tbl_uniq_ord
|
||||
AND T1.frst_register_id = T2.frst_register_id
|
||||
AND T1.menu_no = T2.menu_no)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
frst_regist_pnttm = SYSDATE,
|
||||
url_path = T2.url_path
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT(
|
||||
<include refid="VEAsgnmNotiDAO.column_name"/>
|
||||
)VALUES (
|
||||
T2.TBL_UNIQ_ORD,
|
||||
SYSDATE,
|
||||
T2.FRST_REGISTER_ID,
|
||||
T2.MENU_NO,
|
||||
T2.URL_PATH
|
||||
)
|
||||
|
||||
|
||||
</insert>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -0,0 +1,164 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
|
||||
<!-- 찾교 과정 테이블 -->
|
||||
<sqlMap namespace="CndtnTrgtInfoMng">
|
||||
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
|
||||
<typeAlias alias="CndtnPrcsInfoMngVO" type="kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO"/>
|
||||
|
||||
|
||||
<!-- 공통 테이블 명 -->
|
||||
<sql id="CndtnTrgtInfoMngDAO.table_name">
|
||||
vea_sspn_idmt_trgt
|
||||
</sql>
|
||||
|
||||
<!-- 저장용 공통 컬럼 명 -->
|
||||
<sql id="CndtnTrgtInfoMngDAO.column_name">
|
||||
sspn_idtmt_trgt_ord
|
||||
, user_id
|
||||
, edu_state_cd
|
||||
, frst_regist_pnttm
|
||||
, frst_register_id
|
||||
, last_updt_pnttm
|
||||
, last_updusr_id
|
||||
, trgt_nm
|
||||
, clphone
|
||||
, d_birth
|
||||
, addr
|
||||
, addr_detail
|
||||
, post
|
||||
, email
|
||||
, req_pnttm
|
||||
, vnt_nmbr
|
||||
, cmptnt_athrt
|
||||
, sex
|
||||
, req_nmbr
|
||||
, prsctr_nm
|
||||
, req_state_cd
|
||||
</sql>
|
||||
|
||||
<!-- 조회용 공통 컬럼 명 -->
|
||||
<sql id="CndtnTrgtInfoMngDAO.select_column_name">
|
||||
|
||||
a.sspn_idtmt_trgt_ord AS sspnIdtmtTrgtOrd
|
||||
, a.user_id AS userId
|
||||
, a.edu_state_cd AS eduStateCd
|
||||
, a.frst_regist_pnttm AS frstRegistPnttm
|
||||
, a.frst_register_id AS frstRegisterId
|
||||
, a.last_updt_pnttm AS lastUpdtPnttm
|
||||
, a.last_updusr_id AS lastUpdusrId
|
||||
, a.trgt_nm AS trgtNm
|
||||
, a.clphone AS clphone
|
||||
, a.d_birth AS dBirth
|
||||
, a.addr AS addr
|
||||
, a.addr_detail AS addrDetail
|
||||
, a.post AS post
|
||||
, a.email AS email
|
||||
, a.req_pnttm AS reqPnttm
|
||||
, a.vnt_nmbr AS vntNmbr
|
||||
, a.cmptnt_athrt AS cmptntAthrt
|
||||
, a.sex AS sex
|
||||
, a.req_nmbr AS reqNmbr
|
||||
, a.prsctr_nm AS prsctrNm
|
||||
, a.req_state_cd AS reqStateCd
|
||||
</sql>
|
||||
|
||||
|
||||
<!-- 등록 C -->
|
||||
<insert id="cndtnTrgtInfoMngDAO.insert" parameterClass="CndtnPrcsInfoMngVO">
|
||||
|
||||
INSERT INTO <include refid="CndtnTrgtInfoMngDAO.table_name"/> (
|
||||
<include refid="CndtnTrgtInfoMngDAO.column_name"/>
|
||||
)VALUES(
|
||||
#sspnIdtmtTrgtOrd#
|
||||
, #userId#
|
||||
, #eduStateCd#
|
||||
, now()
|
||||
, #frstRegisterId#
|
||||
, #lastUpdtPnttm#
|
||||
, #lastUpdusrId#
|
||||
, #trgtNm#
|
||||
, #clphone#
|
||||
, #dBirth#
|
||||
, #addr#
|
||||
, #addrDetail#
|
||||
, #post#
|
||||
, #email#
|
||||
, #reqPnttm#
|
||||
, #vntNmbr#
|
||||
, #cmptntAthrt#
|
||||
, #sex#
|
||||
, #reqNmbr#
|
||||
, #prsctrNm#
|
||||
, #reqStateCd#
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="cndtnTrgtInfoMngDAO.selectDetail" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
|
||||
SELECT
|
||||
<include refid="CndtnTrgtInfoMngDAO.select_column_name"/>
|
||||
FROM
|
||||
<include refid="CndtnTrgtInfoMngDAO.table_name"/> a
|
||||
WHERE
|
||||
1=1
|
||||
AND sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 강사 수정 C -->
|
||||
<update id="cndtnTrgtInfoMngDAO.update" parameterClass="CndtnPrcsInfoMngVO">
|
||||
/* cndtnTrgtInfoMngDAO.update */
|
||||
UPDATE
|
||||
<include refid="CndtnTrgtInfoMngDAO.table_name"/>
|
||||
SET
|
||||
user_id = #userId#
|
||||
, edu_state_cd = #eduStateCd#
|
||||
, last_updt_pnttm = SYSDATE
|
||||
, last_updusr_id = #lastUpdusrId#
|
||||
, trgt_nm = #trgtNm#
|
||||
, clphone = #clphone#
|
||||
, d_birth = #dBirth#
|
||||
, addr = #addr#
|
||||
, addr_detail = #addrDetail#
|
||||
, post = #post#
|
||||
, email = #email#
|
||||
, req_pnttm = #reqPnttm#
|
||||
, vnt_nmbr = #vntNmbr#
|
||||
, cmptnt_athrt = #cmptntAthrt#
|
||||
, sex = #sex#
|
||||
, req_nmbr = #reqNmbr#
|
||||
, prsctr_nm = #prsctrNm#
|
||||
, req_state_cd = #reqStateCd#
|
||||
WHERE
|
||||
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
|
||||
</update>
|
||||
|
||||
<!-- 기소유예 대상자 R -->
|
||||
<select id="cndtnTrgtInfoMngDAO.selectPagingList" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt,
|
||||
<include refid="CndtnTrgtInfoMngDAO.select_column_name"/>
|
||||
FROM
|
||||
<include refid="CndtnTrgtInfoMngDAO.table_name"/> a
|
||||
WHERE
|
||||
1=1
|
||||
<isNotEmpty property="searchQuery">
|
||||
$searchQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtStartDt">
|
||||
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSmbtEndDt">
|
||||
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</sqlMap>
|
||||
@ -181,10 +181,10 @@
|
||||
#email#,
|
||||
#eduPlace#,
|
||||
#sbmtYn#,
|
||||
IF(#sbmtYn# = 'Y', SYSDATE, NULL),
|
||||
CASE WHEN #sbmtYn# = 'Y' THEN SYSDATE ELSE NULL END,
|
||||
#aprvlCd#,
|
||||
|
||||
IF(#aprvlCd# IS NOT NULL, SYSDATE, NULL),
|
||||
CASE WHEN #aprvlCd# IS NOT NULL THEN SYSDATE ELSE NULL END,
|
||||
#aprvlCn#,
|
||||
#insttNm#,
|
||||
#insttDivCd#,
|
||||
@ -240,6 +240,119 @@
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 강사 등록 C -->
|
||||
<insert id="VEEduAplctDAO.insertVeEduAplct" parameterClass="VEEduAplctVO">
|
||||
|
||||
INSERT INTO <include refid="VEEduAplctDAO.table_name"/> (
|
||||
EDU_APLCT_ORD,
|
||||
LCTR_DIV_CD,
|
||||
USER_ID,
|
||||
PRCS_ORD,
|
||||
|
||||
SBMT_YN,
|
||||
SBMT_PNTTM,
|
||||
APRVL_CD,
|
||||
APRVL_PNTTM,
|
||||
APRVL_CN,
|
||||
|
||||
FRST_REGIST_PNTTM,
|
||||
FRST_REGISTER_ID,
|
||||
USE_YN
|
||||
)VALUES(
|
||||
#eduAplctOrd#,
|
||||
#lctrDivCd#,
|
||||
#userId#,
|
||||
#prcsOrd#,
|
||||
|
||||
#sbmtYn#,
|
||||
SYSDATE,
|
||||
#aprvlCd#,
|
||||
SYSDATE,
|
||||
#aprvlCn#,
|
||||
|
||||
SYSDATE,
|
||||
#frstRegisterId#,
|
||||
'Y'
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
<!-- 강사 등록 C -->
|
||||
<select id="VEEduAplctDAO.findByAprvlCd" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
|
||||
SELECT
|
||||
<include refid="VEEduAplctDAO.select_column_name"/>
|
||||
FROM ve_prcs_aplct_prd vpap
|
||||
LEFT JOIN <include refid="VEEduAplctDAO.table_name"/> a
|
||||
ON a.prcs_ord = #prcsAplctPrdOrd#
|
||||
WHERE a.lctr_div_cd =#lctrDivCd#
|
||||
AND a.user_id = #userId#
|
||||
GROUP BY
|
||||
A.EDU_APLCT_ORD ,
|
||||
A.LCTR_DIV_CD ,
|
||||
A.USER_ID ,
|
||||
A.PRCS_ORD ,
|
||||
A.EDU_SLCT_CD ,
|
||||
A.EDU_SLCT_AREA_CD ,
|
||||
A.SCHOL_INSTT_NM ,
|
||||
A.SCHOL_DIV_CD ,
|
||||
A.STNDRD_SCHOL_CD ,
|
||||
A.ISLTN_SCHOL_YN ,
|
||||
A.ADDR ,
|
||||
A.ADDR_DETAIL ,
|
||||
A.CHRG_NM ,
|
||||
A.CLPHONE ,
|
||||
A.PHONE ,
|
||||
A.EMAIL ,
|
||||
A.EDU_PLACE ,
|
||||
A.SBMT_YN ,
|
||||
TO_CHAR(A.SBMT_PNTTM, 'YY-MM-DD') ,
|
||||
A.APRVL_CD ,
|
||||
TO_CHAR(A.APRVL_PNTTM, 'YY-MM-DD') ,
|
||||
A.APRVL_CN ,
|
||||
A.INSTT_NM ,
|
||||
A.INSTT_DIV_CD ,
|
||||
A.HOPE_SBJCT ,
|
||||
A.RQST_CN ,
|
||||
A.POST ,
|
||||
A.JOB_NM ,
|
||||
A.MDFY_RQST_YN ,
|
||||
A.EQPMN_CN ,
|
||||
A.BLNG ,
|
||||
A.DPRTM ,
|
||||
A.FULL_NAME ,
|
||||
A.PSTN ,
|
||||
A.PRPS ,
|
||||
a.txt_msg_cn ,
|
||||
a.e_mail_cn ,
|
||||
a.prvt_memo_cn ,
|
||||
TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY-MM-DD') ,
|
||||
A.FRST_REGISTER_ID ,
|
||||
TO_CHAR(A.LAST_UPDT_PNTTM, 'YYYY-MM-DD') ,
|
||||
A.LAST_UPDUSR_ID,
|
||||
A.SCHOL_SEAL_ATCH_FILE_ID ,
|
||||
A.EDU_TRGT ,
|
||||
A.EDU_PRSNL ,
|
||||
A.EDU_CN ,
|
||||
A.STRT_OPRTN_DT ,
|
||||
A.END_OPRTN_DT ,
|
||||
A.RPRT_SBMT_DT ,
|
||||
A.TRANS_ATCH_FILE_ID ,
|
||||
A.USE_YN ,
|
||||
A.MNG_NMBR_YR ,
|
||||
A.MNG_NMBR_SBJCT ,
|
||||
A.MNG_NMBR_ORD ,
|
||||
A.EDU_MD ,
|
||||
A.OATH_ATCH_FILE_ID ,
|
||||
A.PLAN_ATCH_FILE_ID ,
|
||||
A.Attend_ATCH_FILE_ID ,
|
||||
A.PHT_ATCH_FILE_ID ,
|
||||
A.IS_WAIT ,
|
||||
A.CORPS_EDU ,
|
||||
A.BROADROOM_EDU
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 강사 정보 R -->
|
||||
<select id="VEEduAplctDAO.selectDetail" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* VEEduAplctDAO.selectDetail */
|
||||
@ -275,6 +388,7 @@
|
||||
REMOTE_YN AS remoteYn,
|
||||
CLS_CMBT_YN clsCmbtYn,
|
||||
PPUL_DCLN_YN AS ppulDclnYn
|
||||
, TO_CHAR(A.SBMT_PNTTM, 'YYYY-MM-DD HH24:MI:ss') AS sbmtPnttmDetail
|
||||
,C.aprvl_cd AS exprnAprvlCd
|
||||
, C.orgnl_rslt_atch_file_id AS orgnlRsltAtchFileId
|
||||
, C.cpy_rslt_atch_file_id AS cpyRsltAtchFileId
|
||||
@ -579,7 +693,7 @@
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="sbmtYn">
|
||||
, SBMT_YN = #sbmtYn#
|
||||
, SBMT_PNTTM = IF(SBMT_PNTTM is null, SYSDATE, SBMT_PNTTM)
|
||||
, SBMT_PNTTM = CASE WHEN SBMT_PNTTM IS NULL THEN SYSDATE ELSE SBMT_PNTTM END
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="aprvlCd">
|
||||
, APRVL_CD = #aprvlCd#
|
||||
|
||||
@ -57,8 +57,7 @@
|
||||
<sql id="VEEduChasiDAO.select_column_name">
|
||||
A.EDU_APLCT_ORD AS eduAplctOrd,
|
||||
A.EDU_CHASI_ORD AS eduChasiOrd,
|
||||
|
||||
IF(A.EDU_HOPE_DT is not null and A.EDU_HOPE_DT != '', DATE_FORMAT(A.EDU_HOPE_DT,'%Y.%m.%d'), '') AS eduHopeDt,
|
||||
CASE WHEN A.EDU_HOPE_DT IS NOT NULL AND A.EDU_HOPE_DT != '' THEN TO_CHAR(TO_DATE(a.EDU_HOPE_DT, 'YYYYMMDD'), 'YYYY.MM.dd') ELSE '' END AS eduHopeDt,
|
||||
A.STRT_TM AS strtTm,
|
||||
A.END_TM AS endTm,
|
||||
A.LRN_TM AS lrnTm,
|
||||
@ -67,9 +66,9 @@
|
||||
A.PRSNL AS prsnl,
|
||||
A.MEMO_CN AS memoCn,
|
||||
|
||||
DATE_FORMAT(A.FRST_REGIST_PNTTM,'%Y-%m-%d') AS frstRegistPnttm,
|
||||
TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY-MM-dd') AS frstRegistPnttm,
|
||||
A.FRST_REGISTER_ID AS frstRegisterId,
|
||||
DATE_FORMAT(A.LAST_UPDT_PNTTM,'%Y-%m-%d') AS lastUpdtPnttm,
|
||||
TO_CHAR(A.LAST_UPDT_PNTTM, 'YYYY-MM-dd') AS frstRegistPnttm,
|
||||
A.LAST_UPDUSR_ID AS lastUpdusrId,
|
||||
|
||||
A.LRN_SBJCT AS lrnSbjct,
|
||||
@ -244,6 +243,7 @@
|
||||
|
||||
<!-- 강사 정보 L -->
|
||||
<select id="VEEduChasiDAO.selectList" parameterClass="VEEduChasiVO" resultClass="VEEduChasiVO">
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduChasiDAO.selectList */
|
||||
SELECT
|
||||
<include refid="VEEduChasiDAO.select_column_name"/>
|
||||
FROM <include refid="VEEduChasiDAO.join_table_name"/>
|
||||
|
||||
@ -50,9 +50,9 @@
|
||||
,#oprtnStrtDt#
|
||||
,#oprtnEndDt#
|
||||
,#oprtnFileId#
|
||||
,NOW()
|
||||
,SYSDATE
|
||||
,#frstRegisterId#
|
||||
,NOW()
|
||||
,SYSDATE
|
||||
,#lastUpdusrId#
|
||||
,#islandsYn#
|
||||
,#remoteYn#
|
||||
@ -80,7 +80,7 @@
|
||||
,OPRTN_STRT_DT = #oprtnStrtDt#
|
||||
,OPRTN_END_DT = #oprtnEndDt#
|
||||
,OPRTN_FILE_ID = #oprtnFileId#
|
||||
,LAST_UPDT_PNTTM = NOW()
|
||||
,LAST_UPDT_PNTTM = SYSDATE
|
||||
,LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
,ISLANDS_YN = #islandsYn#
|
||||
,REMOTE_YN = #remoteYn#
|
||||
|
||||
@ -79,18 +79,18 @@
|
||||
a.email AS email,
|
||||
a.edu_place AS eduPlace,
|
||||
a.sbmt_yn AS sbmtYn,
|
||||
a.sbmt_pnttm AS sbmtPnttm,
|
||||
TO_CHAR(a.sbmt_pnttm, 'YYYY-MM-DD') AS sbmtPnttm,
|
||||
a.aprvl_cd AS aprvlCd,
|
||||
a.aprvl_pnttm AS aprvlPnttm,
|
||||
TO_CHAR(a.aprvl_pnttm, 'YYYY-MM-DD') AS aprvlPnttm,
|
||||
a.aprvl_cn AS aprvlCn,
|
||||
a.instt_nm AS insttNm,
|
||||
a.instt_div_cd AS insttDivCd,
|
||||
a.hope_sbjct AS hopeSbjct,
|
||||
a.rqst_cn AS rqstCn,
|
||||
|
||||
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
|
||||
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
|
||||
a.frst_register_id AS frstRegisterId,
|
||||
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
|
||||
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
|
||||
a.last_updusr_id AS lastUpdusrId,
|
||||
|
||||
a.schol_seal_atch_file_id AS scholSealAtchFileId,
|
||||
@ -100,7 +100,8 @@
|
||||
a.strt_oprtn_dt AS strtOprtnDt,
|
||||
a.end_oprtn_dt AS endOprtnDt,
|
||||
a.rprt_sbmt_dt AS rprtSbmtDt,
|
||||
a.trans_atch_file_id AS transAtchFileId
|
||||
a.trans_atch_file_id AS transAtchFileId,
|
||||
a.use_yn AS useYn
|
||||
|
||||
</sql>
|
||||
|
||||
@ -120,12 +121,23 @@
|
||||
<select id="VEEduMIXDAO.selectList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.selectList */
|
||||
SELECT
|
||||
qe.QESTNR_ID AS qestnrId , /* 설문했으면 ID가 있음 */
|
||||
vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */
|
||||
le.MBER_NM AS userNm,
|
||||
<include refid="VEEduMIXDAO.select_column_name"/>
|
||||
FROM
|
||||
<include refid="VEEduMIXDAO.table_name"/> a
|
||||
JOIN ve_prcs_aplct_prd vpap ON
|
||||
a.PRCS_ORD = vpap.PRCS_APLCT_PRD_ORD
|
||||
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON
|
||||
a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD
|
||||
/* AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
|
||||
JOIN LETTNGNRLMBER le ON
|
||||
a.USER_ID = le.MBER_ID
|
||||
LEFT JOIN LETTNQESTNRINFO qe ON
|
||||
a.USER_ID = qe.FRST_REGISTER_ID
|
||||
WHERE
|
||||
1=1
|
||||
|
||||
<isNotEmpty property="prcsOrd">
|
||||
AND a.prcs_ord=#prcsOrd#
|
||||
</isNotEmpty>
|
||||
@ -133,11 +145,25 @@
|
||||
AND a.sbmt_yn=#sbmtYn#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSelStatus">
|
||||
AND a.aprvl_cd = #searchSelStatus#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtStartDt">
|
||||
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtEndDt">
|
||||
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
AND a.use_yn = 'Y'
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 강사 정보 L page -->
|
||||
<select id="VEEduMIXDAO.selectPagingList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.selectPagingList */
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectPagingList */
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt
|
||||
, ROWNUM AS rowNo
|
||||
@ -263,6 +289,12 @@
|
||||
FROM ve_prcs_aplct_prd S3
|
||||
WHERE S3.use_YN = 'Y' AND S3.frst_regist_pnttm = (SELECT MAX(frst_regist_pnttm) FROM ve_prcs_aplct_prd)
|
||||
) AS endPnttm
|
||||
, (
|
||||
SELECT
|
||||
S4.end_pnttm
|
||||
FROM ve_prcs_aplct_prd S4
|
||||
WHERE S4.prcs_aplct_prd_ord = A.prcs_ord
|
||||
) AS prcsEndPnttm
|
||||
, (
|
||||
SELECT
|
||||
COUNT(1)
|
||||
@ -2580,9 +2612,10 @@
|
||||
</select>
|
||||
|
||||
<select id="VEEduMIXDAO.selectOprtnExcelList" parameterClass="VEEduAplctVO" resultClass="VEEduExcelVO">
|
||||
/* VEEduMIXDAO.selectOprtnExcelList */
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectOprtnExcelList */
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt
|
||||
, ROW_NUMBER() OVER(ORDER BY A.EDU_APLCT_ORD DESC) AS eduAplctOrd
|
||||
, A.EDU_SLCT_AREA_CD AS eduSlctAreaCd
|
||||
, A.SCHOL_DIV_CD AS scholDivCd
|
||||
, A.SCHOL_INSTT_NM AS scholInsttNm
|
||||
@ -2594,7 +2627,8 @@
|
||||
, A.addr||' '||A.addr_detail AS addr
|
||||
, E.chrg_mjr AS chrgMjr
|
||||
<!-- , E.d_birth AS birth -->
|
||||
, DATE_FORMAT(STR_TO_DATE(E.d_birth,'%Y%m%d') ,'%Y-%m-%d') AS birth
|
||||
<!-- , DATE_FORMAT(STR_TO_DATE(E.d_birth,'%Y%m%d') ,'%Y-%m-%d') AS birth -->
|
||||
,TO_CHAR(TO_DATE(E.d_birth,'YYYYMMdd') ,'YYYY-MM-dd') AS birth
|
||||
|
||||
, E.exprn_clsrn_cd AS exprnClsrnCd
|
||||
, E.exprn_clsrn_year AS exprnClsrnYear
|
||||
@ -2605,10 +2639,12 @@
|
||||
, E.TRGT_PRSNL AS trgtPrsnl
|
||||
|
||||
, TO_CHAR(E.RPRT_SBMT,'YYYY-MM-DD') AS rprtSbmtDt
|
||||
, DATE_FORMAT(STR_TO_DATE(E.OPRTN_STRT_DT,'%Y%m%d') ,'%Y-%m-%d') || '~' || DATE_FORMAT(STR_TO_DATE(E.OPRTN_END_DT,'%Y%m%d') ,'%Y-%m-%d')
|
||||
<!-- , DATE_FORMAT(STR_TO_DATE(E.OPRTN_STRT_DT,'%Y%m%d') ,'%Y-%m-%d') || '~' || DATE_FORMAT(STR_TO_DATE(E.OPRTN_END_DT,'%Y%m%d') ,'%Y-%m-%d') -->
|
||||
, TO_CHAR(TO_DATE(E.OPRTN_STRT_DT,'YYYYMMdd') ,'YYYY-MM-dd') || '~' || TO_CHAR(TO_DATE(E.OPRTN_END_DT,'YYYYMMdd') ,'YYYY-MM-dd')
|
||||
AS oprtnStrtDt
|
||||
, A.MDFY_RQST_YN AS mdfyRqstYn
|
||||
, DECODE(E.chrg_sex_cd, 'M', '남성', 'F', '여성') AS chrgSexCd
|
||||
, DECODE(A.aprvl_cd, '10', '운영신청', '70', '수정요청', '80', '수정완료', '60', '운영확정', '90', '운영미확정') AS aprvlCd
|
||||
FROM
|
||||
VE_EDU_APLCT A
|
||||
LEFT OUTER JOIN
|
||||
@ -2640,9 +2676,9 @@
|
||||
(
|
||||
SELECT
|
||||
EDU_APLCT_ORD
|
||||
, EDU_CHASI_ORD
|
||||
, MAX(EDU_CHASI_ORD)
|
||||
, SUM(lrn_tm) AS lrn_tm
|
||||
, MIN(REPLACE(IF(EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '', NULL, EDU_HOPE_DT), '.', '')) AS EDU_HOPE_DT
|
||||
, MIN(REPLACE(CASE WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '' THEN NULL ELSE EDU_HOPE_DT END, '.', '')) AS EDU_HOPE_DT
|
||||
FROM
|
||||
VE_EDU_CHASI
|
||||
GROUP BY EDU_APLCT_ORD
|
||||
@ -2652,15 +2688,13 @@
|
||||
ON A.USER_ID = D.USER_ID
|
||||
LEFT OUTER JOIN VE_EDU_OPRTN E
|
||||
ON A.EDU_APLCT_ORD = E.EDU_APLCT_ORD
|
||||
WHERE 1=1
|
||||
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||
WHERE NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||
AND A.SBMT_YN = 'Y'
|
||||
AND A.LCTR_DIV_CD = #lctrDivCd#
|
||||
<isNotEmpty property="aprvlCd">
|
||||
AND A.APRVL_CD=#aprvlCd#
|
||||
</isNotEmpty>
|
||||
ORDER BY 1=1
|
||||
, A.EDU_APLCT_ORD DESC
|
||||
ORDER BY A.EDU_APLCT_ORD DESC
|
||||
</select>
|
||||
|
||||
<insert id="VEEduMIXDAO.insertExprnClsrmEndInfo" parameterClass="VEEduAplctVO">
|
||||
@ -2693,9 +2727,9 @@ VALUES
|
||||
, #evdncPhtAtchFileId#
|
||||
, #rmtTrnAtchFileId#
|
||||
|
||||
, NOW()
|
||||
, SYSDATE
|
||||
, #frstRegisterId#
|
||||
, NOW()
|
||||
, SYSDATE
|
||||
, #lastUpdusrId#
|
||||
)
|
||||
</insert>
|
||||
@ -3384,7 +3418,7 @@ VALUES
|
||||
SET
|
||||
$fileType$ = null,
|
||||
last_updusr_id = #lastUpdusrId#,
|
||||
last_updt_pnttm = now()
|
||||
last_updt_pnttm = SYSDATE
|
||||
WHERE
|
||||
edu_aplct_ord = #eduAplctOrd#
|
||||
</insert>
|
||||
@ -3407,8 +3441,100 @@ VALUES
|
||||
rmt_trn_atch_file_id = #rmtTrnAtchFileId#,
|
||||
</isNotEmpty>
|
||||
last_updusr_id = #lastUpdusrId#,
|
||||
last_updt_pnttm = now()
|
||||
last_updt_pnttm = SYSDATE
|
||||
WHERE
|
||||
edu_aplct_ord = #eduAplctOrd#
|
||||
</insert>
|
||||
|
||||
<select id="VEEduMIXDAO.selectExprnPagingList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectExprnPagingList */
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt,
|
||||
ROWNUM AS rowNo,
|
||||
A.edu_aplct_ord AS eduAplctOrd,
|
||||
A.user_id AS userId,
|
||||
A.prcs_ord AS prcsOrd,
|
||||
A.aprvl_cd AS aprvlCd,
|
||||
A.edu_slct_area_cd AS eduSlctAreaCd,
|
||||
A.schol_instt_nm AS scholInsttNm,
|
||||
A.chrg_nm AS chrgNm,
|
||||
TO_CHAR(A.sbmt_pnttm, 'YYYY.MM.DD') AS sbmtPnttm,
|
||||
D.unfth_yn AS unfthYn,
|
||||
(
|
||||
SELECT COUNT(1)
|
||||
FROM ve_new_noti e
|
||||
WHERE ((A.edu_aplct_ord = e.tbl_uniq_ord OR B.edu_aplct_ord = e.tbl_uniq_ord) OR B.edu_chasi_ord = e.tbl_uniq_ord)
|
||||
AND e.menu_no = #menuNo#
|
||||
AND e.frst_register_id = #notiUserId#
|
||||
)
|
||||
AS notiCnt,
|
||||
C.CHRG_MJR AS chrgMjr
|
||||
FROM ve_edu_aplct A
|
||||
LEFT OUTER JOIN (
|
||||
SELECT
|
||||
EDU_APLCT_ORD
|
||||
,EDU_CHASI_ORD
|
||||
,SUM(lrn_tm) AS lrn_tm
|
||||
,MIN(
|
||||
REPLACE(
|
||||
CASE WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '' THEN NULL ELSE EDU_HOPE_DT END
|
||||
, '.'
|
||||
, ''
|
||||
)
|
||||
) AS EDU_HOPE_DT
|
||||
FROM VE_EDU_CHASI
|
||||
GROUP BY EDU_APLCT_ORD, EDU_CHASI_ORD
|
||||
) B
|
||||
ON A.edu_aplct_ord = B.edu_aplct_ord
|
||||
LEFT OUTER JOIN VE_EDU_OPRTN C
|
||||
ON A.EDU_APLCT_ORD = C.EDU_APLCT_ORD
|
||||
LEFT JOIN (
|
||||
SELECT MAX(dd.edu_aplct_ord) AS edu_aplct_ord
|
||||
FROM ve_edu_aplct dd
|
||||
JOIN ve_edu_scltn_teacher ddd
|
||||
ON dd.edu_aplct_ord = ddd.edu_aplct_ord
|
||||
GROUP BY dd.FRST_REGISTER_ID
|
||||
) dddd
|
||||
ON a.EDU_APLCT_ORD = dddd.EDU_APLCT_ORD
|
||||
LEFT JOIN ve_edu_scltn_teacher D
|
||||
ON D.EDU_APLCT_ORD = dddd.EDU_APLCT_ORD
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="lctrDivCd" prepend="AND">
|
||||
A.lctr_div_cd = #lctrDivCd#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchYear">
|
||||
AND TO_CHAR(A.SBMT_PNTTM,'YYYY') = #searchYear#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="eduSlctAreaCd">
|
||||
AND A.EDU_SLCT_AREA_CD = #eduSlctAreaCd#
|
||||
</isNotEmpty>
|
||||
<isEmpty property="searchCondition">
|
||||
<isNotEmpty property="searchKeyword">
|
||||
AND (
|
||||
A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# '%' OR
|
||||
A.INSTT_NM LIKE '%' || #searchKeyword# || '%'
|
||||
)
|
||||
</isNotEmpty>
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="searchCondition">
|
||||
<isEqual property="searchCondition" compareValue="1">
|
||||
AND A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%'
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="2">
|
||||
AND A.CHRG_NM LIKE '%' || #searchKeyword# || '%'
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchScholDivCdArr">
|
||||
<iterate open="(" close=")" conjunction="," property="searchScholDivCdArr" prepend="AND A.SCHOL_DIV_CD IN " > #searchScholDivCdArr[]#</iterate>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchCpyAprvlCd">
|
||||
AND A.APRVL_CD = #searchCpyAprvlCd#
|
||||
</isNotEmpty>
|
||||
ORDER BY 1
|
||||
<isNotEmpty property="orderByQuery">
|
||||
, $orderByQuery$
|
||||
</isNotEmpty>
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
|
||||
<!-- 찾교 과정 테이블 -->
|
||||
<sqlMap namespace="VEAPrcsAplctPrdInstrAsgnm">
|
||||
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
|
||||
<typeAlias alias="VEAPrcsAplctPrdInstrAsgnmVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO"/>
|
||||
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
|
||||
|
||||
|
||||
<!-- 공통 테이블 명 -->
|
||||
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.table_name">
|
||||
vea_prcs_aplct_prd_instr_asgnm
|
||||
</sql>
|
||||
|
||||
<!-- 저장용 공통 컬럼 명 -->
|
||||
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.column_name">
|
||||
|
||||
prcs_aplct_prd_ord
|
||||
, user_id
|
||||
, lctr_plan_atch_file_id
|
||||
, doc_atch_file_id
|
||||
, asgnm_aprvl_cd
|
||||
, asgnm_aprvl_pnttm
|
||||
, asgnm_aprvl_id
|
||||
, rmrks
|
||||
, frst_regist_pnttm
|
||||
, frst_register_id
|
||||
, last_updt_pnttm
|
||||
, last_updusr_id
|
||||
</sql>
|
||||
|
||||
<!-- 조회용 공통 컬럼 명 -->
|
||||
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name">
|
||||
|
||||
a.prcs_aplct_prd_ord as prcsAplctPrdOrd
|
||||
, a.user_id as userId
|
||||
, a.lctr_plan_atch_file_id as lctrPlanAtchFileId
|
||||
, a.doc_atch_file_id as docAtchFileId
|
||||
, a.asgnm_aprvl_cd as asgnmAprvlCd
|
||||
, a.asgnm_aprvl_pnttm as asgnmAprvlPnttm
|
||||
, a.asgnm_aprvl_id as asgnmAprvlId
|
||||
, a.rmrks as rmrks
|
||||
, a.frst_regist_pnttm as frstRegistPnttm
|
||||
, a.frst_register_id as frstRegisterId
|
||||
, a.last_updt_pnttm as lastUpdtPnttm
|
||||
, a.last_updusr_id as lastUpdusrId
|
||||
</sql>
|
||||
|
||||
<!-- 강사 배정 등록 -->
|
||||
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.instrInsert" parameterClass="VEAPrcsAplctPrdInstrAsgnmVO">
|
||||
|
||||
INSERT INTO <include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> (
|
||||
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.column_name"/>
|
||||
)VALUES(
|
||||
#prcsAplctPrdOrd#
|
||||
, #userId#
|
||||
, #lctrPlanAtchFileId#
|
||||
, #docAtchFileId#
|
||||
, #asgnmAprvlCd#
|
||||
, SYSDATE
|
||||
, #asgnmAprvlId#
|
||||
, #rmrks#
|
||||
, SYSDATE
|
||||
, #frstRegisterId#
|
||||
, SYSDATE
|
||||
, #lastUpdusrId#
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 강사 배정 등록 -->
|
||||
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
|
||||
/* VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail */
|
||||
INSERT INTO vea_aplct_detail_info
|
||||
(
|
||||
prcs_aplct_prd_ord
|
||||
, edu_aplct_ord
|
||||
, aplct_state_cd
|
||||
, frst_regist_pnttm
|
||||
, frst_register_id
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#prcsAplctPrdOrd#
|
||||
, #eduAplctOrd#
|
||||
, #aplctStateCd#
|
||||
, SYSDATE
|
||||
, #frstRegisterId#
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
select
|
||||
prcs_aplct_prd_ord as prcsAplctPrdOrd
|
||||
, edu_aplct_ord as eduAplctOrd
|
||||
, aplct_state_cd as aplctStateCd
|
||||
, frst_regist_pnttm as frstRegistPnttm
|
||||
, frst_register_id as frstRegisterId
|
||||
from vea_aplct_detail_info
|
||||
where edu_aplct_ord = #eduAplctOrd#
|
||||
and prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<delete id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
|
||||
|
||||
UPDATE vea_aplct_detail_info SET
|
||||
aplct_state_cd = #aplctStateCd#
|
||||
WHERE
|
||||
edu_aplct_ord = #eduAplctOrd#
|
||||
AND prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
|
||||
</delete>
|
||||
|
||||
|
||||
|
||||
<!-- 교육 신청자 상태 update -->
|
||||
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct" parameterClass="VEPrcsDetailVO">
|
||||
UPDATE VE_EDU_APLCT
|
||||
SET aprvl_cd = #aprvlCd#
|
||||
WHERE edu_aplct_ord IN
|
||||
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
|
||||
#eduAplctOrdList[]#
|
||||
</iterate>
|
||||
</update>
|
||||
|
||||
<!-- 강사 배정 등록 -->
|
||||
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd" parameterClass="String" resultClass="VEAPrcsAplctPrdInstrAsgnmVO">
|
||||
|
||||
SELECT
|
||||
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name"/>
|
||||
, vid.instr_nm as instrNm
|
||||
, vid.phone
|
||||
FROM
|
||||
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> a
|
||||
LEFT JOIN ve_instr_detail vid
|
||||
ON a.user_id = vid.user_id
|
||||
WHERE 1=1
|
||||
AND a.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
AND vid.aprvl_cd ='20' <!-- 변경 승인 -->
|
||||
AND vid.instr_div ='20' <!-- 성인강사 -->
|
||||
AND vid.use_yn ='Y'
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</sqlMap>
|
||||
@ -388,6 +388,7 @@
|
||||
</select>
|
||||
|
||||
<select id="VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEInstrDetailVO">
|
||||
/*VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList*/
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt ,
|
||||
a.instr_div AS instrDiv,
|
||||
@ -480,7 +481,7 @@
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
|
||||
</select>
|
||||
<!-- 강사 정보 R -->
|
||||
|
||||
<select id="VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
SELECT COUNT(1) OVER() AS totCnt ,
|
||||
a.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
|
||||
@ -518,6 +519,7 @@
|
||||
,a.ddln_cd AS ddlnCd
|
||||
,a.edu_strt_pnttm AS eduStrtPnttm
|
||||
,a.edu_ddln_pnttm AS eduDdlnPnttm
|
||||
,b.prcs_cn AS prcsCn
|
||||
|
||||
FROM ve_prcs_aplct_prd a
|
||||
, ve_prcs b
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
,ddln_cd
|
||||
,edu_strt_pnttm
|
||||
,edu_ddln_pnttm
|
||||
,edu_place
|
||||
</sql>
|
||||
|
||||
<!-- 조회용 공통 컬럼 명 -->
|
||||
@ -108,6 +109,7 @@
|
||||
,#ddlnCd#
|
||||
,#eduStrtPnttm#
|
||||
,#eduDdlnPnttm#
|
||||
,#eduPlace#
|
||||
)
|
||||
</insert>
|
||||
|
||||
@ -178,6 +180,9 @@
|
||||
<isNotEmpty property="eduDdlnPnttm">
|
||||
, edu_ddln_pnttm = #eduDdlnPnttm#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="eduPlace">
|
||||
, edu_place = #eduPlace#
|
||||
</isNotEmpty>
|
||||
|
||||
WHERE
|
||||
prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
@ -295,6 +300,7 @@
|
||||
, (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
|
||||
, b.prcs_div as prcsDiv
|
||||
|
||||
, (SELECT COUNT(*)
|
||||
FROM ve_edu_aplct x
|
||||
@ -349,7 +355,7 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 강사 정보 R -->
|
||||
<!-- 과정신청기간 최근 1개 R -->
|
||||
<select id="VEPrcsAplctPrdDAO.selectDetailNewOne" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
/* VEPrcsAplctPrdDAO.selectDetailNewOne */
|
||||
SELECT COUNT(1) OVER() AS totCnt ,
|
||||
@ -378,6 +384,9 @@
|
||||
AS atchFileNm
|
||||
FROM ve_prcs_aplct_prd a
|
||||
WHERE 1 = 1
|
||||
<isNotEmpty property="lctrDivCd">
|
||||
AND a.lctr_div_cd=#lctrDivCd#
|
||||
</isNotEmpty>
|
||||
AND
|
||||
a.use_yn = 'Y'
|
||||
ORDER BY a.strt_pnttm DESC
|
||||
@ -413,6 +422,8 @@
|
||||
AS atchFileNm
|
||||
|
||||
, b.prcs_nm as prcsNm
|
||||
, b.prcs_div as prcsDiv
|
||||
, a.edu_place as eduPlace
|
||||
|
||||
,a.dead_line_dt AS deadLineDt
|
||||
,a.prcs_ord AS prcsOrd
|
||||
@ -421,6 +432,7 @@
|
||||
,a.ddln_cd AS ddlnCd
|
||||
,a.edu_strt_pnttm AS eduStrtPnttm
|
||||
,a.edu_ddln_pnttm AS eduDdlnPnttm
|
||||
,b.prcs_cn AS prcsCn
|
||||
|
||||
FROM ve_prcs_aplct_prd a
|
||||
, ve_prcs b
|
||||
@ -433,7 +445,169 @@
|
||||
AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd#
|
||||
</isNotEmpty>
|
||||
|
||||
|
||||
|
||||
ORDER BY a.strt_pnttm DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEInstrDetailVO">
|
||||
/*VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList*/
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt ,
|
||||
a.instr_div AS instrDiv,
|
||||
a.user_id AS userId,
|
||||
(SELECT user_nm FROM COMVNUSERMASTER WHERE USER_ID = a.user_id) AS userNm,
|
||||
a.instr_detail_ord AS instrDetailOrd,
|
||||
a.instr_nm AS instrNm,
|
||||
a.phone AS phone,
|
||||
a.email AS email,
|
||||
a.post AS post,
|
||||
a.addr AS addr,
|
||||
a.addr_detail AS addrDetail,
|
||||
a.rsdne AS rsdne,
|
||||
a.d_birth AS dBirth,
|
||||
/* IF (length(a.d_birth)=8,DATE_FORMAT(STR_TO_DATE(a.d_birth, '%Y%m%d'),'%Y-%m-%d')
|
||||
,IF (length(a.d_birth)=6,DATE_FORMAT(STR_TO_DATE(a.d_birth, '%y%m%d'),'%Y-%m-%d'),'')) AS Birth, */
|
||||
CASE
|
||||
WHEN LENGTH(NVL(a.d_birth,'')) = 8 THEN TO_CHAR(TO_DATE(a.d_birth, 'YYYYMMDD'), 'YYYY-MM-DD')
|
||||
WHEN LENGTH(NVL(a.d_birth,'')) = 6 THEN TO_CHAR(TO_DATE(a.d_birth, 'YYMMDD'), 'YYYY-MM-DD')
|
||||
ELSE ''
|
||||
END AS Birth,
|
||||
a.final_schol AS finalSchol,
|
||||
a.mjr AS mjr,
|
||||
a.appt_yr AS apptYr,
|
||||
a.actvt_carer AS actvtCarer,
|
||||
a.mn_lctr_cn AS mnLctrCn,
|
||||
a.pht_atch_file_id AS phtAtchFileId,
|
||||
a.blng AS blng,
|
||||
a.pstn AS pstn,
|
||||
a.prfsn_fld AS prfsnFld,
|
||||
a.sbmt_yn AS sbmtYn,
|
||||
a.sbmt_pnttm AS sbmtPnttm,
|
||||
a.aprvl_cd AS aprvlCd,
|
||||
TO_CHAR(a.aprvl_pnttm,'YYYY-MM-DD') AS aprvlPnttm,
|
||||
a.aprvl_id AS aprvlId,
|
||||
a.aprvl_cn AS aprvlCn,
|
||||
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
|
||||
a.frst_register_id AS frstRegisterId,
|
||||
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
|
||||
a.last_updusr_id AS lastUpdusrId,
|
||||
<isNotEmpty property="excelYn">
|
||||
(SELECT a0.code_nm
|
||||
FROM LETTCCMMNDETAILCODE a0
|
||||
WHERE a0.code_id='VE0018'
|
||||
AND a0.code =a.div_cd
|
||||
)
|
||||
AS divCd,
|
||||
(SELECT a0.code_nm
|
||||
FROM LETTCCMMNDETAILCODE a0
|
||||
WHERE a0.code_id='VE0002'
|
||||
AND a0.code =a.appt_div
|
||||
)
|
||||
AS apptDiv,
|
||||
</isNotEmpty>
|
||||
<isEmpty property="excelYn">
|
||||
a.div_cd AS divCd,
|
||||
a.appt_div AS apptDiv,
|
||||
</isEmpty>
|
||||
|
||||
a.use_yn AS useYn,
|
||||
a.qlfct_end_yn AS qlfctEndYn,
|
||||
a.qlfct_end_pnttm AS qlfctEndPnttm,
|
||||
a.qlfct_end_cn AS qlfctEndCn,
|
||||
|
||||
a.appt_dt AS apptDt,
|
||||
a.hchk_dt AS hchkDt,
|
||||
a.rmrks AS rmrks,
|
||||
a.memo AS memo,
|
||||
a.sig_memo AS sigMemo
|
||||
FROM
|
||||
ve_instr b
|
||||
, ve_instr_detail a
|
||||
WHERE
|
||||
1=1
|
||||
AND a.user_id=b.user_id
|
||||
<isNotEmpty property="selectPagingListQuery">
|
||||
$selectPagingListQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="userId">
|
||||
AND a.user_id=#userId#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="instrDiv">
|
||||
AND a.instr_div=#instrDiv#
|
||||
</isNotEmpty>
|
||||
ORDER BY a.sbmt_pnttm DESC
|
||||
<isEmpty property="orderByQuery">
|
||||
, b.user_id desc
|
||||
</isEmpty>
|
||||
<isNotEmpty property="orderByQuery">
|
||||
, $orderByQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 교육 확정 목록 -->
|
||||
<select id="VEPrcsAplctPrdDAO.findByAprvlList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
/* VEPrcsAplctPrdDAO.findByAprvlList */
|
||||
select
|
||||
a.edu_aplct_ord AS eduAplctOrd ,
|
||||
vpap.PRCS_APLCT_PRD_ORD AS prcsAplctPrdOrd ,
|
||||
vp.prcs_nm AS prcsNm ,
|
||||
vp.prcs_cn AS prcsCn ,
|
||||
vp.prcs_div AS prcsDiv ,
|
||||
vpap.strt_pnttm AS strtPnttm ,
|
||||
vpap.end_pnttm AS endPnttm ,
|
||||
vpap.edu_strt_pnttm AS eduStrtPnttm ,
|
||||
vpap.edu_ddln_pnttm AS eduDdlnPnttm ,
|
||||
a.APRVL_CD AS aprvlCd ,
|
||||
CASE WHEN EXISTS ( /* 설문조사 */
|
||||
SELECT 1
|
||||
FROM lettnqestnrrslt lerslt
|
||||
WHERE lerslt.respond_id = 'USRCNFRM_00000002720'
|
||||
AND vpap.PRCS_APLCT_PRD_ORD = lerslt.edu_aplct_ord
|
||||
) THEN 1 ELSE 0 END as qestRsltExists
|
||||
from
|
||||
VE_EDU_APLCT a
|
||||
join ve_prcs_aplct_prd vpap
|
||||
on a.prcs_ord = vpap.prcs_aplct_prd_ord
|
||||
join ve_prcs vp /* 과정 */
|
||||
on vpap.prcs_ord = vp.prcs_ord
|
||||
left join vea_aplct_detail_info vadi /* 신청상세정보 */
|
||||
on a.edu_aplct_ord = vadi.edu_aplct_ord
|
||||
and vpap.prcs_aplct_prd_ord = vadi.prcs_aplct_prd_ord
|
||||
where
|
||||
a.lctr_div_cd = #lctrDivCd#
|
||||
and a.user_id = #userId#
|
||||
ORDER BY vpap.edu_strt_pnttm
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="VEPrcsAplctPrdDAO.findAllDashboardCnt" parameterClass="VEPrcsDetailVO" resultClass="java.util.HashMap">
|
||||
/*
|
||||
VEPrcsAplctPrdDAO.findAllDashboardCnt
|
||||
count_end_cd 는 조건이 b.aplct_state_cd = '20' (VEA003 - 이수완료) 여야 하는데
|
||||
이수완료 update 액션 포인트가 아직 안정해져 있어서 날짜로 대체
|
||||
*/
|
||||
SELECT
|
||||
SUM(CASE WHEN a.aprvl_cd = '10' THEN 1 ELSE 0 END) AS count_aprvl_cd_10,
|
||||
SUM(CASE WHEN a.aprvl_cd = '20' AND TO_DATE(c.edu_ddln_pnttm, 'YYYY.MM.DD') > CURRENT_DATE THEN 1 ELSE 0 END) AS count_aprvl_cd_20,
|
||||
SUM(CASE WHEN a.aprvl_cd = '20' AND TO_DATE(c.edu_ddln_pnttm, 'YYYY.MM.DD') < CURRENT_DATE THEN 1 ELSE 0 END) AS count_end_cd
|
||||
FROM
|
||||
ve_edu_aplct a
|
||||
LEFT JOIN vea_aplct_detail_info b
|
||||
ON a.edu_aplct_ord = b.edu_aplct_ord
|
||||
LEFT JOIN ve_prcs_aplct_prd c
|
||||
ON c.prcs_aplct_prd_ord = b.prcs_aplct_prd_ord
|
||||
WHERE
|
||||
a.lctr_div_cd = #lctrDivCd#
|
||||
AND a.user_id = #userId#
|
||||
</select>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -171,7 +171,7 @@
|
||||
</select>
|
||||
|
||||
<!-- 강사 정보 L page -->
|
||||
<select id="VEPrcsDAO.selectPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
<select id="VEPrcsDAO.selectPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO" remapResults="true">
|
||||
/* VEPrcsDAO.selectPagingList */
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt ,
|
||||
@ -340,4 +340,11 @@
|
||||
WHERE PRCS_ORD = #prcsOrd#
|
||||
|
||||
</update>
|
||||
|
||||
<delete id="VEPrcsDAO.deleteInstr" parameterClass="VEPrcsDetailVO">
|
||||
DELETE FROM VEA_PRCS_APLCT_PRD_INSTR_ASGNM
|
||||
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
AND user_id = #userId#
|
||||
</delete>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -51,9 +51,9 @@
|
||||
a.aprvl_id AS aprvlId,
|
||||
a.aprvl_cn AS aprvlCn,
|
||||
|
||||
DATE_FORMAT(a.frst_regist_pnttm,'%Y%m%d') AS frstRegistPnttm,
|
||||
TO_CHAR(a.frst_regist_pnttm, 'YYYY-MM-dd') AS frstRegistPnttm,
|
||||
a.frst_register_id AS frstRegisterId,
|
||||
DATE_FORMAT(a.last_updt_pnttm,'%Y%m%d') AS lastUpdtPnttm,
|
||||
TO_CHAR(a.last_updt_pnttm, 'YYYY-MM-dd') AS lastUpdtPnttm,
|
||||
a.last_updusr_id AS lastUpdusrId,
|
||||
|
||||
orgnl_rslt_atch_file_id AS orgnlRsltAtchFileId,
|
||||
|
||||
@ -53,6 +53,7 @@
|
||||
|
||||
<!-- 강사 정보 L page -->
|
||||
<select id="ScholInfoMIXDAO.selectPagingList" parameterClass="ScholInfoVO" resultClass="ScholInfoVO">
|
||||
/* 임시.*NOT_SQL_LOG.* ScholInfoDAO.selectPagingList*/
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt ,
|
||||
a.SCHOL_ID AS scholId
|
||||
@ -81,25 +82,27 @@
|
||||
,a.ESTBS_DT AS estbsDt
|
||||
,a.SCHOL_ANVSRY AS scholAnvsry
|
||||
,a.LAST_UPDT_PNTTM AS lastUpdtPnttm
|
||||
, IF(b.stndrd_schol_cd IS null,'N','Y') AS isltnScholYn
|
||||
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',if (INSTR(schol_grade_nm,'각종학교')>0,'40','50')) AS scholDivCd
|
||||
/* , IF(b.stndrd_schol_cd IS null,'N','Y') AS isltnScholYn */
|
||||
, CASE WHEN b.schol_isltn_ord is null THEN 'N' ELSE 'Y' END isltnScholYn
|
||||
/* , DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',if (INSTR(schol_grade_nm,'각종학교')>0,'40','50')) AS scholDivCd */
|
||||
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',CASE WHEN INSTR(schol_grade_nm, '각종학교') > 0 THEN '40' ELSE '50' END) AS scholDivCd
|
||||
|
||||
FROM <include refid="ScholInfoMIXDAO.table_name"/> a
|
||||
|
||||
LEFT OUTER JOIN ve_schol_isltn b
|
||||
ON(a.schol_id=b.schol_id)
|
||||
ON(a.schol_id=b.schol_isltn_ord)
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="selectPagingListQuery">
|
||||
$selectPagingListQuery$
|
||||
</isNotEmpty>
|
||||
ORDER BY 1=1
|
||||
ORDER BY 1
|
||||
<isEmpty property="orderByQuery">
|
||||
, a.schol_nm asc
|
||||
</isEmpty>
|
||||
<isNotEmpty property="orderByQuery">
|
||||
, $orderByQuery$
|
||||
</isNotEmpty>
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
</select>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -225,15 +225,13 @@
|
||||
/*
|
||||
, IF(b.stndrd_schol_cd IS null,'N','Y') AS isltnScholYn
|
||||
*/
|
||||
, NVL2(b.stndrd_schol_cd,'Y','N') AS isltnScholYn
|
||||
/*
|
||||
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',if (INSTR(schol_grade_nm,'각종학교')>0,'40','50')) AS scholDivCd
|
||||
*/
|
||||
, NVL2(b.schol_isltn_ord,'Y','N') AS isltnScholYn
|
||||
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',CASE WHEN INSTR(schol_grade_nm, '각종학교') > 0 THEN '40' ELSE '50' END) AS scholDivCd
|
||||
|
||||
FROM
|
||||
<include refid="ScholInfoDAO.table_name"/> a
|
||||
LEFT OUTER JOIN ve_schol_isltn b
|
||||
ON(a.schol_id=b.schol_id)
|
||||
ON(a.schol_id=b.schol_isltn_ord)
|
||||
WHERE 1=1
|
||||
<isNotEmpty property="scholGrade">
|
||||
$scholGrade$
|
||||
|
||||
@ -153,6 +153,8 @@
|
||||
|
||||
<pattern>*/web/ve/**/popup/*</pattern>
|
||||
|
||||
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/cautionGuidePreView.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
|
||||
|
||||
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
|
||||
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->
|
||||
|
||||
|
||||
@ -30,6 +30,34 @@
|
||||
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>");
|
||||
}
|
||||
|
||||
function delAtchFile(itemId , fileSn){
|
||||
if(!confirm("삭제하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<c:url value='/uss/ion/fms/fmsfileDeleteAjax.do' />",
|
||||
data:{ "atchFileId" : itemId , "fileSn" : fileSn},
|
||||
dataType:'json',
|
||||
cache: false,
|
||||
async: false,
|
||||
timeout: 600000,
|
||||
success: function (returnData, status) {
|
||||
if(returnData.result == 'success'){
|
||||
alert("삭제되었습니다.");
|
||||
location.reload(true);
|
||||
}else{
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log("ERROR : ", e);
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function fn_egov_deleteFile(atchFileId, fileSn, delTrName) {
|
||||
if(!confirm("<spring:message code="common.delete.msg" />")) return;
|
||||
|
||||
@ -127,9 +155,11 @@
|
||||
<c:choose>
|
||||
<c:when test="${searchVO.designTy eq 'EMPTY'}">
|
||||
<c:forEach var="fileVO" items="${fileList}" varStatus="status">
|
||||
<a href="javascript:fn_egov_downFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>')" class="file_download_a" title="다운로드">
|
||||
<a href="javascript:fn_egov_downFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>')" class="file_download_a" title="다운로드" style="display:inline-block;">
|
||||
<c:out value="${fileVO.orignlFileNm}"/>
|
||||
</a>
|
||||
<img src="<c:url value='/images/egovframework/com/cmm/btn/btn_del.png' />" class="cursor" onClick="delAtchFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>'); return false;" alt="첨부파일">
|
||||
<br/>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
|
||||
84
src/main/webapp/WEB-INF/jsp/oprtn/cmm/userPopListBower.jsp
Normal file
84
src/main/webapp/WEB-INF/jsp/oprtn/cmm/userPopListBower.jsp
Normal file
@ -0,0 +1,84 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<title>학교명 검색</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="${pageContext.request.contextPath}/kccadrPb/usr/script/popup.js"></script>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
$(document).ready(function(){
|
||||
});
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
var popList = document.popList ;
|
||||
popList.pageIndex.value = pageNo ;
|
||||
popList.action = "<c:url value='/kccadr/oprtn/comm/popup/userPopList.do'/>";
|
||||
popList.submit();
|
||||
}
|
||||
|
||||
function fncUserDataSlct(obj){
|
||||
opener.$("#userId").val(obj.getAttribute('data-value'));
|
||||
self.close();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- 일정 상세 -->
|
||||
<form:form commandName="userManageVO" id="popList" name="popList" method="post" onsubmit="return false;">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}' default='1' />"/>
|
||||
<input type="hidden" name="pageUnit" value="<c:out value='${searchVO.pageUnit}' default='1' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
|
||||
|
||||
<div class="area_popup">
|
||||
<div class="cont_popup">
|
||||
<div class="pop_list_top">
|
||||
<input type="text" name="searchWord" id="searchWord" style="width: 450px;" value="<c:out value='${searchVO.searchWord}' />" placeholder="아이디 입력" size="20">
|
||||
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||
</div>
|
||||
|
||||
<div class="pop_tb_type01 list2">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">아이디</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="row" items="${userList}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#" onclick="fncUserDataSlct(this); return false;" data-value="${row.mberId}"><c:out value="${row.mberId}" /></a>
|
||||
<input type="hidden" name="userId" value="${row.mberId}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,504 @@
|
||||
<!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 : cndtnEduPrcsAplctPrdMngDetail.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">
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
// 상태값 확인
|
||||
ddlnCdSttsChk();
|
||||
|
||||
|
||||
});
|
||||
|
||||
function ddlnCdSttsChk(){
|
||||
var $ddlnCdStts = $("#ddlnCdStts");
|
||||
|
||||
// 텍스트가 비어있는지 확인
|
||||
if ($ddlnCdStts.text().trim() === "") {
|
||||
var dateText = $ddlnCdStts.closest('table').find("td:eq(2)").text().trim();
|
||||
|
||||
var strtPnttm = new Date(dateText.split("~")[0].trim().replace(/\./g, '-'));
|
||||
var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-'));
|
||||
var currentDate = new Date();
|
||||
|
||||
// 시간, 분, 초 초기화
|
||||
strtPnttm.setHours(0, 0, 0, 0);
|
||||
endPnttm.setHours(0, 0, 0, 0);
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
|
||||
if (currentDate < strtPnttm) {
|
||||
$ddlnCdStts.text("접수전");
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
$ddlnCdStts.text("접수중");
|
||||
} else if (currentDate > endPnttm) {
|
||||
$ddlnCdStts.text("접수종료");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoDetail(){
|
||||
var form = document.detailForm ;
|
||||
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do'/>";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function fncMdfy(){
|
||||
var detailForm = document.detailForm ;
|
||||
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function fn_delInstr(data){
|
||||
document.instrForm.userId.value = data ;
|
||||
|
||||
|
||||
|
||||
|
||||
var data = new FormData(document.getElementById("instrForm"));
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
// var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/instrDelAjax.do'/>";
|
||||
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/instrDelAjax.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("삭제되었습니다.");
|
||||
// 새로고침
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
event.stopImmediatePropagation();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 강사 배치
|
||||
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
|
||||
var form = document.popForm;
|
||||
|
||||
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
|
||||
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
|
||||
|
||||
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
|
||||
form.target = "_securityPop";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function chkAll(obj) {
|
||||
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
|
||||
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
|
||||
}
|
||||
|
||||
function updateEduAplctOrd(p_aprvlCd, p_prcsAplctPrdOrd) {
|
||||
var selectedEduAplctOrd = [];
|
||||
|
||||
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
|
||||
$("input[name='chk']:checked").each(function() {
|
||||
var eduAplctOrdValue = $(this).val();
|
||||
selectedEduAplctOrd.push(eduAplctOrdValue);
|
||||
});
|
||||
|
||||
console.log('selectedEduAplctOrd : ', selectedEduAplctOrd);
|
||||
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
|
||||
if (selectedEduAplctOrd.length === 0) {
|
||||
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var dataToSend = {
|
||||
"eduAplctOrdList": selectedEduAplctOrd,
|
||||
"aprvlCd": p_aprvlCd,
|
||||
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
|
||||
};
|
||||
|
||||
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateEduAplctAprvlCdAjax.do'/>";
|
||||
|
||||
|
||||
// AJAX 호출을 통해 서버에 데이터 전송
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
|
||||
// contentType : 'application/json',
|
||||
dataType:'json',
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("변경 처리 되었습니다.");
|
||||
window.location.reload();
|
||||
}else{
|
||||
alert("변경 중 오류가 발생하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
console.error("AJAX Error:", textStatus, errorThrown);
|
||||
console.error("Response:", jqXHR.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<form id="instrForm" name="instrForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<input type="hidden" name="userId" id="userId"/>
|
||||
</form>
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
|
||||
</form:form>
|
||||
<form id="popForm" name="popForm" method="post">
|
||||
<input type="hidden" name="pageIndex" value="1"/>
|
||||
<input type="hidden" name="prcsAplctPrdOrd" value="" />
|
||||
<input type="hidden" name="pageUnit" value="5" />
|
||||
|
||||
</form>
|
||||
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<!-- 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:code codeId="VEA001" code="${info.prcsDiv}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">과정</th>
|
||||
<td>
|
||||
<c:out value="${info.prcsNm}"/>
|
||||
|
||||
</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 class="addPro_wrap">
|
||||
<c:out value="${info.eduPlace}"/>
|
||||
</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>
|
||||
<c:out value="${info.prcsCn }" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">정원</th>
|
||||
<td class="addPro_wrap">
|
||||
<c:out value="${info.nos}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">상태</th>
|
||||
<td id="ddlnCdStts">
|
||||
<ve:code codeId="VEA004" 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>
|
||||
|
||||
<!--
|
||||
강사 배치 정보
|
||||
강사 배치 정보
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>강사 배치 정보</p>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 210px;"><!-- name -->
|
||||
<col style="width: auto;"><!-- 제출일 -->
|
||||
<col style="width: 210px;"><!-- 신청상태 -->
|
||||
<col style="width: 210px;"><!-- 신청상태 -->
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>강사명</th>
|
||||
<th>연락처</th>
|
||||
<th>확정여부</th>
|
||||
<th>삭제</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${!empty instrAsgnmList }">
|
||||
<c:forEach var="list" items="${instrAsgnmList}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<c:out value="${list.instrNm }"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.phone }"/>
|
||||
</td>
|
||||
<td>
|
||||
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_type01" onclick="fn_delInstr('<c:out value="${list.userId }" />')">삭제</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="4">강사 배치 정보가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- 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="fncInstrAsgnmInfo('<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">강사배치</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
교육 신청자 list_상세
|
||||
교육 신청자 list_상세
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>교육신청자</p> <!-- ${listPrcsAplct } -->
|
||||
</div>
|
||||
<!-- list_top -->
|
||||
<div class="list_top search-only">
|
||||
<div class="list_top_1">
|
||||
<div class="util_right">
|
||||
<ve:select codeId="VE0003" name="searchSelStatus" id="searchSelStatus" css="class='sel_type1'"
|
||||
selectedValue="${vEPrcsDetailVO.searchSelStatus}" defaultValue='' includes="10,20,30"
|
||||
defaultText='전체'
|
||||
/>
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
|
||||
</div>
|
||||
<%-- <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="fncGoDetail(); return false;">검색</button>
|
||||
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: 5%">
|
||||
<col style="width: 210px;">
|
||||
<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>이수여부</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${!empty listPrcsAplct}">
|
||||
<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="${list.userNm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.sbmtPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestnrId }">
|
||||
<button type="button" class="btn_type04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">설문결과</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
미입력
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestnrId }">
|
||||
<%-- <button type="button" class="btnType04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">출력</button> --%>
|
||||
<button type="button" class="btn_type04">출력</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="7">신청자가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
|
||||
</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_type04" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'; return false;">강의목록</button>
|
||||
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(30, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">접수취소(반려)</button>
|
||||
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(20, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">교육승인</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
<!-- //cont -->
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,327 @@
|
||||
<!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" %>
|
||||
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
|
||||
<%
|
||||
/**
|
||||
* @Class Name : cndtnEduPrcsAplctPrdMngList.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">
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
// 상태값 확인
|
||||
$(".ddlnCdStts").each(function() {
|
||||
var $currentCell = $(this);
|
||||
|
||||
// 텍스트가 비어있는지 확인
|
||||
if ($currentCell.text().trim() === "") {
|
||||
var $currentRow = $currentCell.closest('tr');
|
||||
|
||||
var strtPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[0].trim());
|
||||
var endPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[1].trim());
|
||||
var currentDate = new Date();
|
||||
|
||||
var ddlnCdText = '';
|
||||
if (currentDate < strtPnttm) {
|
||||
ddlnCdText = "접수전";
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
ddlnCdText = "접수중";
|
||||
} else if (currentDate > endPnttm) {
|
||||
ddlnCdText = "접수종료";
|
||||
}
|
||||
|
||||
$currentCell.text(ddlnCdText);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var listForm = document.listForm ;
|
||||
listForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncCreate() {
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.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 search-only">
|
||||
<div class="list_top_1">
|
||||
<div class="util_right">
|
||||
|
||||
<ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
|
||||
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
|
||||
defaultText="전체"
|
||||
/>
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
|
||||
</div>
|
||||
<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>
|
||||
<button class="btn_type03" onclick="fncReset(this); 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 -->
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<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>
|
||||
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
|
||||
</td>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
|
||||
</td>
|
||||
<td class="ddlnCdStts">
|
||||
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||
</td>
|
||||
<!-- <td> -->
|
||||
<%-- <c:out value="${list.useYn}"/> --%>
|
||||
<!-- </td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="7"><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>
|
||||
@ -0,0 +1,285 @@
|
||||
<!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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfyAjax.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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.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>
|
||||
</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="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<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>
|
||||
<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 class="addPro_wrap">
|
||||
<input type="text" name="eduPlace" id="eduPlace" value="${info.eduPlace}" >
|
||||
</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>
|
||||
<textarea name="prcsCn" id="prcsCn" class="memo" disabled="disabled" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
|
||||
</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="VEA004" name="ddlnCd" id="ddlnCd" css="class='sel_type1'" selectedValue="${info.ddlnCd}" defaultValue="" defaultText="선택"/>
|
||||
</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>
|
||||
@ -0,0 +1,311 @@
|
||||
<!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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : cndtnEduPrcsAplctPrdMngReg.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">
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#prcsOrd').change(function(){
|
||||
fnSelectDivAndCn($(this).val());
|
||||
});
|
||||
|
||||
$('#nos').on('input', function() {
|
||||
// 숫자만 허용
|
||||
$(this).val($(this).val().replace(/[^0-9]/g, ''));
|
||||
|
||||
// 값이 0으로 시작하면 제거
|
||||
if ($(this).val().charAt(0) == '0') {
|
||||
$(this).val($(this).val().substring(1));
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
//세부과정 추가 버튼 클릭 시 세부과정 추가
|
||||
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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngRegAjax.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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// div codeNm 가져오는 function
|
||||
function fnSelectDivAndCn(prcsOrdVal){
|
||||
|
||||
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctSelectDivAndCnAjax.do";
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data:{ "prcsOrd" : prcsOrdVal},
|
||||
dataType:'json',
|
||||
async: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
$('#prcsDiv').val(returnData.prcsDiv);
|
||||
$('#prcsCn').val(returnData.prcsCn);
|
||||
}
|
||||
},
|
||||
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/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.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>
|
||||
<input type="text" name="prcsDiv" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
|
||||
</td>
|
||||
</tr>
|
||||
<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>
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="eduStrtPnttm" name="eduStrtPnttm" value="${vEEduAplctVO.strtPnttm}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="eduDdlnPnttm" name="eduDdlnPnttm" value="${vEEduAplctVO.endPnttm}">
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육장소</th>
|
||||
<td class="addPro_wrap">
|
||||
<input type="text" name="eduPlace" id="eduPlace" value="${vEEduAplctVO.eduPlace}" >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">신청기간</th>
|
||||
<td>
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEEduAplctVO.eduStrtPnttm}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.eduDdlnPnttm}">
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">상세교육과정</th>
|
||||
<td>
|
||||
<textarea name="prcsCn" id="prcsCn" class="memo" disabled="disabled" class="inputLight" style="height: 200px;"><c:out value="${prcsCn }" /></textarea>
|
||||
</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>
|
||||
<kc:select codeId="VEA004" name="ddlnCd" id="ddlnCd" defaultText="전체" defaultValue="" css="class='sel_type1'" />
|
||||
</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>
|
||||
@ -301,7 +301,7 @@
|
||||
</td>
|
||||
<th scope="row">생년월일</th>
|
||||
<td>
|
||||
<input type="text" name="dBirth" id="dBirth" placeholder="0000-00-00" maxlength="10" value="<c:out value="${info.dBirth }" />" />
|
||||
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8" value="<c:out value="${info.dBirth }" />" />
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
|
||||
@ -250,7 +250,7 @@
|
||||
</td>
|
||||
<th scope="row">생년월일</th>
|
||||
<td>
|
||||
<input type="text" name="dBirth" id="dBirth" placeholder="0000-00-00" maxlength="10"/>
|
||||
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
|
||||
@ -223,7 +223,13 @@
|
||||
}
|
||||
|
||||
function fncPreview(){
|
||||
alert("개발전")
|
||||
commonPopWindowopenForm(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/cautionGuidePreView.do"
|
||||
, 750
|
||||
, 700
|
||||
, "cautionGuidePreView"
|
||||
, $("#popForm")
|
||||
);
|
||||
}
|
||||
|
||||
</script>
|
||||
@ -240,6 +246,8 @@
|
||||
<form id="popForm" name="popForm" method="post">
|
||||
<input type="hidden" name="callFunc" value="callFunc"/>
|
||||
<input type="hidden" name="targetId" value=""/>
|
||||
<input type="hidden" name="strtPnttm" value="${info.strtPnttm}"/>
|
||||
<input type="hidden" name="endPnttm" value="${info.endPnttm}"/>
|
||||
</form>
|
||||
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<!-- cont -->
|
||||
@ -331,7 +339,7 @@
|
||||
</c:import>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<%-- <tr>
|
||||
<th scope="row">
|
||||
<p>안내내용</p>
|
||||
</th>
|
||||
@ -347,7 +355,7 @@
|
||||
<td>
|
||||
<c:out value='${info.popupCn}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tr> --%>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>사용여부</p>
|
||||
|
||||
@ -289,7 +289,10 @@
|
||||
<!-- <button class="btnType02" onclick="fncCreate(); return false;" >삭제</button> -->
|
||||
</td>
|
||||
<td>
|
||||
${list.strtPnttm}~${list.endPnttm}
|
||||
<fmt:parseDate value='${list.strtPnttm}' var='strtPnttmDe' pattern="yyyyMMddHHmm" scope="page" />
|
||||
<fmt:parseDate value='${list.endPnttm}' var='endPnttmDe' pattern="yyyyMMddHHmm" scope="page" />
|
||||
<fmt:formatDate value="${strtPnttmDe}" pattern="yyyy-MM-dd"/> ~
|
||||
<fmt:formatDate value="${endPnttmDe}" pattern="yyyy-MM-dd"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value='${list.atchFileNm}'/>
|
||||
|
||||
@ -153,14 +153,14 @@
|
||||
alert("종료일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#anncmCn").val() == ""){
|
||||
/* if($("#anncmCn").val() == ""){
|
||||
alert("안내내용을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#popupCn").val() == ""){
|
||||
alert("팝업내용을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
} */
|
||||
|
||||
//첨부파일 등록 처리
|
||||
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
|
||||
@ -465,24 +465,6 @@
|
||||
</tr>
|
||||
|
||||
-->
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>안내내용</p>
|
||||
</th>
|
||||
<td>
|
||||
<textarea name="anncmCn" id="anncmCn" cols="30" rows="3"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>팝업내용</p>
|
||||
</th>
|
||||
<td>
|
||||
<textarea name="popupCn" id="popupCn" cols="30" rows="3"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
|
||||
@ -126,14 +126,14 @@
|
||||
alert("종료일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#anncmCn").val() == ""){
|
||||
/* if($("#anncmCn").val() == ""){
|
||||
alert("안내내용을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#popupCn").val() == ""){
|
||||
alert("팝업내용을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
} */
|
||||
|
||||
//첨부파일 등록 처리
|
||||
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
|
||||
@ -426,7 +426,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<%-- <tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>안내내용</p>
|
||||
@ -444,7 +444,7 @@
|
||||
<td>
|
||||
<textarea id="popupCn" name="popupCn" class="purpose_text" rows="5" cols="30"><c:out value='${info.popupCn}'/></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tr> --%>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
|
||||
@ -162,6 +162,7 @@
|
||||
<c:when test="${not empty info.sbmtPnttm}">
|
||||
<fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yy-MM-dd"/>
|
||||
<fmt:formatDate value="${sbmtPnttm}" pattern="20yy.MM.dd"/>
|
||||
<%-- <c:out value="${info.sbmtPnttm}" /> --%>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
@ -174,8 +175,9 @@
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty info.endPnttm}">
|
||||
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
|
||||
<%-- <fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/> --%>
|
||||
<c:out value="${info.endPnttm}" />
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
@ -413,15 +415,17 @@
|
||||
<button type="button" class="btn_type01" onclick="fncRejectPopup(); return false;">수정요청</button>
|
||||
</c:if>
|
||||
<!-- 운영신청, 수정요청완료 상태에서만 선정여부 설정 가능(선정여부는 교육확정 프로세스에 영향을 끼치지 않음 - 관리자 구분 용도)-->
|
||||
<c:if test="${info.aprvlCd eq '10' || info.aprvlCd eq '80'}">
|
||||
<%-- <c:if test="${info.aprvlCd eq '10' || info.aprvlCd eq '80'}">
|
||||
<button type="button" class="btn_type04" onclick="fncChsChange('Y'); return false;">선정</button>
|
||||
<button type="button" class="btn_type05" onclick="fncChsChange('N'); return false;">미선정</button>
|
||||
</c:if>
|
||||
</c:if> --%>
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<c:if test="${info.aprvlCd ne '60' && info.aprvlCd ne '90'}">
|
||||
<button type="button" class="btn_type01" onclick="fncStatusChange('60'); return false;">교육확정</button>
|
||||
<button type="button" class="btn_type02" onclick="fncStatusChange('90'); return false;">교육미확정</button>
|
||||
<!-- <button type="button" class="btn_type01" onclick="fncStatusChange('60'); return false;">교육확정</button>
|
||||
<button type="button" class="btn_type02" onclick="fncStatusChange('90'); return false;">교육미확정</button> -->
|
||||
<button type="button" class="btn_type01" onclick="fncStatusChange('60'); return false;">선정처리</button>
|
||||
<button type="button" class="btn_type02" onclick="fncStatusChange('90'); return false;">선정취소</button>
|
||||
</c:if>
|
||||
<!-- 교육 확정인 경우 관리자만 수정 가능 하도록 -->
|
||||
<c:if test="${info.aprvlCd eq '60'}">
|
||||
|
||||
@ -1,90 +1,172 @@
|
||||
<!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" %>
|
||||
<%@ 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 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="form" uri="http://www.springframework.org/tags/form"%>
|
||||
<%@ taglib prefix="validator"
|
||||
uri="http://www.springmodules.org/tags/commons-validator"%>
|
||||
<%@ taglib prefix="ve" 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" %>
|
||||
<%@ 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="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">c
|
||||
<style>
|
||||
input:read-only{
|
||||
input:read-only {
|
||||
background-color: #ededed;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
|
||||
function press(event) {
|
||||
if (event.keyCode==13) {
|
||||
if (event.keyCode == 13) {
|
||||
fncGoList();
|
||||
}
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
function linkPage(pageNo) {
|
||||
var listForm = document.listForm;
|
||||
listForm.pageIndex.value = pageNo;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
function fncGoList() {
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncGoDetail(eduAplctOrd){
|
||||
var listForm = document.listForm ;
|
||||
listForm.eduAplctOrd.value = eduAplctOrd ;
|
||||
function fncGoDetail(eduAplctOrd) {
|
||||
var listForm = document.listForm;
|
||||
listForm.eduAplctOrd.value = eduAplctOrd;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngDetail.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function excelDownLoad(){
|
||||
var listForm = document.listForm ;
|
||||
function excelDownLoad() {
|
||||
var listForm = document.listForm;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctExcelDownLoad.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
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){
|
||||
$.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{
|
||||
} else {
|
||||
$(this).prop("selectedIndex", 0);
|
||||
}
|
||||
}else{
|
||||
if($(this).attr('type') == 'checkbox'){
|
||||
$(this).prop('checked' , false);
|
||||
}else{
|
||||
} else {
|
||||
if ($(this).attr('type') == 'checkbox') {
|
||||
$(this).prop('checked', false);
|
||||
} else {
|
||||
$(this).val('');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function fnCheckAll(){
|
||||
var chk = document.listForm.chk;
|
||||
if(document.listForm.checkAll.checked) {
|
||||
if(chk) {
|
||||
if(chk.length > 1) {
|
||||
for(var i=0; i < chk.length; i++) {
|
||||
chk[i].checked = true;
|
||||
}
|
||||
} else {
|
||||
chk.checked = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(chk) {
|
||||
if(chk.length > 1) {
|
||||
for(var j=0; j < chk.length; j++) {
|
||||
chk[j].checked = false;
|
||||
}
|
||||
} else {
|
||||
chk.checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function fncStatusChangeAll(){
|
||||
var chkLen = $(listForm).find("input[name=chk]:checked").length;
|
||||
var aprvlCdSelected = $('#aprvlCdSelect option:selected').val();
|
||||
|
||||
if(chkLen ==0){
|
||||
alert("선택된 항목이 없습니다.");
|
||||
return;
|
||||
}
|
||||
if(aprvlCdSelected == ''){
|
||||
alert("상태를 선택해주세요.")
|
||||
return;
|
||||
}
|
||||
|
||||
$("#aprvlCd").val(aprvlCdSelected);
|
||||
var data = new FormData(document.getElementById("listForm"));
|
||||
if(confirm("상태를 일괄변경 하시겠습니까?")){
|
||||
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/kccadr/oprtn/comm/eduAplctStatusListAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.rsCnt > 0){
|
||||
alert("상태가 변경 되었습니다.");
|
||||
location.reload();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function fileDownLoad() {
|
||||
alert("개발전");
|
||||
return;
|
||||
var listForm = document.listForm;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctFileAllDownLoad.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncCreate() {
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngReg.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
</script>
|
||||
<title>신청관리</title>
|
||||
</head>
|
||||
<body>
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" method="post" onsubmit="return false;">
|
||||
<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}" />" />
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO"
|
||||
method="post" onsubmit="return false;">
|
||||
<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" value="" />
|
||||
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
<!-- cont_tit -->
|
||||
@ -114,15 +196,26 @@
|
||||
<p>구분</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<select name="searchYear" id="sdfsdf" class="sel_type1 yearSelect" selectValue="${vEEduAplctVO.searchYear}" defaultText='전체'></select>
|
||||
<ve:select codeId="VE0008" name="eduSlctAreaCd" id="eduSlctAreaCd" styleClass="sel_type1" selectedValue="${vEEduAplctVO.eduSlctAreaCd}" defaultText='전체'/>
|
||||
<select name="searchCondition" id="searchCondition" class="sel_type1">
|
||||
<option value="1" ${vEEduAplctVO.searchCondition eq '1' ? 'selected' : '' }>학교명</option>
|
||||
<option value="2" ${vEEduAplctVO.searchCondition eq '2' ? 'selected' : '' }>담당자</option>
|
||||
</select>
|
||||
<input type="text" placeholder="검색어를 입력하세요." title="검색어 입력" class="search_input" id="searchKeyword" name="searchKeyword" value="${cryptoUtil.decrypt(vEEduAplctVO.searchKeyword)}" onkeyDown="press(event);">
|
||||
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
|
||||
<select name="searchYear" id="sdfsdf"
|
||||
class="sel_type1 yearSelect"
|
||||
selectValue="${vEEduAplctVO.searchYear}" defaultText='전체'></select>
|
||||
<ve:select codeId="VE0008" name="eduSlctAreaCd"
|
||||
id="eduSlctAreaCd" styleClass="sel_type1"
|
||||
selectedValue="${vEEduAplctVO.eduSlctAreaCd}" defaultText='전체' />
|
||||
<select name="searchCondition" id="searchCondition"
|
||||
class="sel_type1">
|
||||
<option value="1"
|
||||
${vEEduAplctVO.searchCondition eq '1' ? 'selected' : '' }>학교명</option>
|
||||
<option value="2"
|
||||
${vEEduAplctVO.searchCondition eq '2' ? 'selected' : '' }>담당자</option>
|
||||
</select> <input type="text" placeholder="검색어를 입력하세요." title="검색어 입력"
|
||||
class="search_input" id="searchKeyword" name="searchKeyword"
|
||||
value="${cryptoUtil.decrypt(vEEduAplctVO.searchKeyword)}"
|
||||
onkeyDown="press(event);">
|
||||
<button type="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">
|
||||
@ -131,16 +224,20 @@
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<div class="check_wrap">
|
||||
<c:set var="searchStatus" value="${fn:join(vEEduAplctVO.searchScholDivCdArr, ',') }"/>
|
||||
<span><input type="checkbox" ${fn:indexOf(searchStatus, VeConstants.SCHOL_DIV_CD_10) ne -1 ? 'checked' : ''}
|
||||
value="${VeConstants.SCHOL_DIV_CD_10}" name="searchScholDivCdArr" id="searchSatus2">초등학교
|
||||
</span>
|
||||
<span><input type="checkbox" ${fn:indexOf(searchStatus, VeConstants.SCHOL_DIV_CD_20) ne -1 ? 'checked' : ''}
|
||||
value="${VeConstants.SCHOL_DIV_CD_20}" name="searchScholDivCdArr" id="searchSatus3">중학교
|
||||
</span>
|
||||
<span><input type="checkbox" ${fn:indexOf(searchStatus, VeConstants.SCHOL_DIV_CD_30) ne -1 ? 'checked' : ''}
|
||||
value="${VeConstants.SCHOL_DIV_CD_30}" name="searchScholDivCdArr" id="searchSatus4">고등학교
|
||||
</span>
|
||||
<c:set var="searchStatus"
|
||||
value="${fn:join(vEEduAplctVO.searchScholDivCdArr, ',') }" />
|
||||
<span><input type="checkbox"
|
||||
${fn:indexOf(searchStatus, VeConstants.SCHOL_DIV_CD_10) ne -1 ? 'checked' : ''}
|
||||
value="${VeConstants.SCHOL_DIV_CD_10}"
|
||||
name="searchScholDivCdArr" id="searchSatus2">초등학교 </span> <span><input
|
||||
type="checkbox"
|
||||
${fn:indexOf(searchStatus, VeConstants.SCHOL_DIV_CD_20) ne -1 ? 'checked' : ''}
|
||||
value="${VeConstants.SCHOL_DIV_CD_20}"
|
||||
name="searchScholDivCdArr" id="searchSatus3">중학교 </span> <span><input
|
||||
type="checkbox"
|
||||
${fn:indexOf(searchStatus, VeConstants.SCHOL_DIV_CD_30) ne -1 ? 'checked' : ''}
|
||||
value="${VeConstants.SCHOL_DIV_CD_30}"
|
||||
name="searchScholDivCdArr" id="searchSatus4">고등학교 </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -151,34 +248,54 @@
|
||||
<div class="util_right">
|
||||
<select name="searchCpyAprvlCd" class="sel_type1">
|
||||
<option value="">전체</option>
|
||||
<option value="10" <c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '10'}">selected</c:if>>운영신청</option>
|
||||
<option value="70" <c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '70'}">selected</c:if>>수정요청</option>
|
||||
<option value="80" <c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '80'}">selected</c:if>>수정요청완료</option>
|
||||
<option value="60" <c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '60'}">selected</c:if>>교육확정</option>
|
||||
<option value="90" <c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '90'}">selected</c:if>>교육미확정</option>
|
||||
<option value="10"
|
||||
<c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '10'}">selected</c:if>>운영신청</option>
|
||||
<option value="70"
|
||||
<c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '70'}">selected</c:if>>수정요청</option>
|
||||
<option value="80"
|
||||
<c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '80'}">selected</c:if>>수정완료</option>
|
||||
<option value="60"
|
||||
<c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '60'}">selected</c:if>>운영확정</option>
|
||||
<option value="90"
|
||||
<c:if test="${vEEduAplctVO.searchCpyAprvlCd eq '90'}">selected</c:if>>운영미확정</option>
|
||||
</select>
|
||||
<p style="padding:0 20px 0 30px; font-weight:500; font-size:18px;">선정여부</p>
|
||||
<%-- <p
|
||||
style="padding: 0 20px 0 30px; font-weight: 500; font-size: 18px;">선정여부</p>
|
||||
<div class="check_wrap">
|
||||
<select name="searchChsYn" class="sel_type1">
|
||||
<option value="">전체</option>
|
||||
<option value="Y" <c:if test="${vEEduAplctVO.searchChsYn eq 'Y'}">selected</c:if>>선정</option>
|
||||
<option value="N" <c:if test="${vEEduAplctVO.searchChsYn eq 'N'}">selected</c:if>>미선정</option>
|
||||
<option value="Y"
|
||||
<c:if test="${vEEduAplctVO.searchChsYn eq 'Y'}">selected</c:if>>선정</option>
|
||||
<option value="N"
|
||||
<c:if test="${vEEduAplctVO.searchChsYn eq 'N'}">selected</c:if>>미선정</option>
|
||||
</select>
|
||||
</div>
|
||||
</div> --%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- list_top -->
|
||||
<div class="list_util">
|
||||
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
|
||||
<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="${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 class="sel_type1" name="pageUnit" id="pageUnit"
|
||||
onchange="linkPage(1);" title="줄 선택" style="width: 140px"
|
||||
class="sel_type1">
|
||||
<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_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button>
|
||||
<button type="button"
|
||||
onclick="fileDownLoad();">첨부파일 다운로드</button>
|
||||
<button type="button" class="btn_down_excel"
|
||||
onclick="excelDownLoad();">엑셀 다운로드</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //list_top -->
|
||||
@ -187,23 +304,26 @@
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: 5%">
|
||||
<col style="width: 12%">
|
||||
<col style="width: 18%">
|
||||
<col style="width: 24%">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 16%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 13%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
|
||||
<th>번호</th>
|
||||
<th>담당교과</th>
|
||||
<th>학교명</th>
|
||||
<th>담당자</th>
|
||||
<th>신청일자</th>
|
||||
<th>선정여부</th>
|
||||
<!-- <th>선정여부</th> -->
|
||||
<th>처리상태</th>
|
||||
<th>비고</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -217,32 +337,28 @@
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<td>
|
||||
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||
<input name="chk" id="<c:out value="${list.eduAplctOrd}"/>" type="checkbox" value="<c:out value="${list.eduAplctOrd}"/>"/> <label for="<c:out value="${list.eduAplctOrd}"/>"></label>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.chrgMjr}"/>
|
||||
<%--<ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/>--%>
|
||||
<td><c:out
|
||||
value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }" />
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" title="<c:out value='${list.eduAplctOrd}'/>">
|
||||
<c:out value="${list.scholInsttNm}"/>
|
||||
</a>
|
||||
<td><c:out value="${list.chrgMjr}" /> <%--<ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/>--%>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" title="<c:out value='${list.eduAplctOrd}'/>">
|
||||
<c:out value="${list.chrgNm}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.sbmtPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${list.mdfyRqstYn eq null}">-</c:if>
|
||||
<c:if test="${list.mdfyRqstYn eq 'Y'}">선정</c:if>
|
||||
<c:if test="${list.mdfyRqstYn eq 'N'}">미선정</c:if>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<td><a
|
||||
href="javascript:fncGoDetail('${list.eduAplctOrd}');"
|
||||
title="<c:out value='${list.eduAplctOrd}'/>"> <c:out
|
||||
value="${list.scholInsttNm}" />
|
||||
</a></td>
|
||||
<td><a
|
||||
href="javascript:fncGoDetail('${list.eduAplctOrd}');"
|
||||
title="<c:out value='${list.eduAplctOrd}'/>"> <c:out
|
||||
value="${list.chrgNm}" />
|
||||
</a></td>
|
||||
<td><c:out value="${list.sbmtPnttm}" /></td>
|
||||
<%-- <td><c:if test="${list.mdfyRqstYn eq null}">-</c:if> <c:if
|
||||
test="${list.mdfyRqstYn eq 'Y'}">선정</c:if> <c:if
|
||||
test="${list.mdfyRqstYn eq 'N'}">미선정</c:if></td> --%>
|
||||
<td><c:choose>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_10}">
|
||||
<span class="app_status1">운영신청</span>
|
||||
</c:when>
|
||||
@ -250,32 +366,60 @@
|
||||
<span class="app_status2">수정요청</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_80}">
|
||||
<span class="app_status4">수정요청완료</span>
|
||||
<span class="app_status4">수정완료</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60}">
|
||||
<span class="app_status4">교육확정</span>
|
||||
<span class="app_status4">운영확정</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_90}">
|
||||
<span class="app_status4">교육미확정</span>
|
||||
<span class="app_status4">운영미확정</span>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:choose></td>
|
||||
<td>
|
||||
<c:if test="${list.unfthYn eq 'Y'}">
|
||||
불성실
|
||||
</c:if>
|
||||
<c:if test="${list.unfthYn eq 'N'}">
|
||||
성실
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
<tr>
|
||||
<td colspan="8"><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 name="aprvlCdSelect" id="aprvlCdSelect"class="sel_type1">
|
||||
<option value="">선택</option>
|
||||
<option value="10">운영신청</option>
|
||||
<!-- <option value="70">수정요청</option> -->
|
||||
<option value="80">수정완료</option>
|
||||
<option value="60">운영확정</option>
|
||||
<option value="90">운영미확정</option>
|
||||
</select>
|
||||
<button class="btn_type04" onclick="fncStatusChangeAll(); return false;" >일괄변경</button>
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
|
||||
<button class="btn_type06" onclick="fncCreate(); return false;" >등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
<ui:pagination paginationInfo="${paginationInfo}" type="image"
|
||||
jsFunction="linkPage" />
|
||||
</div>
|
||||
<!-- //page -->
|
||||
</div>
|
||||
@ -284,7 +428,7 @@
|
||||
<!-- //cont -->
|
||||
<!-- //cont -->
|
||||
|
||||
</form:form>
|
||||
</form:form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -1,44 +1,123 @@
|
||||
<!DOCTYPE html>
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||
<%@ 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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ 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" />
|
||||
|
||||
<%
|
||||
/**
|
||||
* @Class Name : oprtnAplctAnncmMngReg.jsp
|
||||
* @Description : 운영신청안내관리 등록
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2021.12.16 조용준 최초 생성
|
||||
* @author 조용주
|
||||
* @since 2021.12.16
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<c:set var="now" value="<%=new java.util.Date()%>" />
|
||||
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
||||
|
||||
<c:set var="sysYear">
|
||||
<fmt:formatDate value="${now}" pattern="yyyy" />
|
||||
</c:set>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<title>교육신청 수정</title>
|
||||
<title>교육과정관리</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript">
|
||||
$( document ).ready(function(){
|
||||
$(".btn_add_file").on('click', function(){
|
||||
$(document).ready(function() {
|
||||
/* 학교구분 라이도버튼 비활성화 */
|
||||
$("input[name=scholDivCd]").attr("onclick", "return(false);")
|
||||
$(".btn_type01").on('click', function(){
|
||||
$("#file_temp").click();
|
||||
});
|
||||
});
|
||||
|
||||
function fncSave(){
|
||||
|
||||
if($("#title").val() == ""){
|
||||
alert("제목을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#strtPnttm").val() == ""){
|
||||
alert("시작일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#endPnttm").val() == ""){
|
||||
alert("종료일을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
/* if($("#anncmCn").val() == ""){
|
||||
alert("안내내용을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
if($("#popupCn").val() == ""){
|
||||
alert("팝업내용을 입력해주세요.");
|
||||
return false;
|
||||
} */
|
||||
|
||||
//첨부파일 등록 처리
|
||||
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
|
||||
//var data = new FormData(form);
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
|
||||
//첨부파일 등록 처리-step1
|
||||
//if(!data.get("fileSize")){
|
||||
if($('#tbody_fiielist tr').length*1<=0){
|
||||
alert("첨부파일을 등록해 주세요");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
//첨부파일 등록 처리-step2
|
||||
_fileForm2.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
|
||||
});
|
||||
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngRegAjax.do";
|
||||
|
||||
console.log(data);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: url,
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
//if(returnData.result == "success" && returnData.rsCnt > 0 ){
|
||||
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/cpyrgExprnClsrm/oprtnAplctMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(){
|
||||
var createForm = document.createForm ;
|
||||
createForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngDetail.do'/>";
|
||||
createForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncScholList() {
|
||||
commonPopWindowopenForm(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/comm/popup/scholPopList.do"
|
||||
@ -48,6 +127,15 @@
|
||||
);
|
||||
}
|
||||
|
||||
function fncUserList() {
|
||||
commonPopWindowopenForm(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/comm/popup/userPopList.do"
|
||||
, "700"
|
||||
, "750"
|
||||
, "UserListPop",$("#popupForm")
|
||||
);
|
||||
}
|
||||
|
||||
function callBackSchPop(schData){
|
||||
if(emptyObject(schData)){
|
||||
alert("오류가 발생하였습니다. 관리자에게 문의해주세요 [ERR-SCH-POP]")
|
||||
@ -63,288 +151,85 @@
|
||||
$('input[name=isltnScholYn][value='+schData.isltnScholYn+']').prop('checked', true);
|
||||
}
|
||||
|
||||
function fncSave(type){
|
||||
|
||||
if(type == 'S'){
|
||||
if (!validCheck()) return;
|
||||
}
|
||||
|
||||
var url = '${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngRegAjax.do';
|
||||
if(VeConstants.MODE_UPT == $("#mode").val()){
|
||||
url = '${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngMdfyAjax.do';
|
||||
}
|
||||
|
||||
fncDataReplace();
|
||||
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){
|
||||
_fileForm2.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
//첨부파일 등록 처리
|
||||
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
|
||||
|
||||
$.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) {
|
||||
$("#eduAplctOrd").val(returnData.VO.eduAplctOrd);
|
||||
if(status == 'success'){
|
||||
alert("등록 되었습니다.");
|
||||
fncGoDetail(); //현재 메인화면 이동
|
||||
} else if(status== 'fail'){
|
||||
alert("등록에 실패하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
function oprtnYn(){
|
||||
var radioVal = $('input[name="exprnClsrnCd"]:checked').val();
|
||||
if(radioVal == "01"){
|
||||
$('input[name="eClsrnYear"]').attr('disabled',false);
|
||||
}else{
|
||||
$('input[name="eClsrnYear"]').attr('disabled',true);
|
||||
$('input[name="eClsrnYear"]').prop('checked',false);
|
||||
}
|
||||
}
|
||||
|
||||
// 데이터 저장전 치환해야할 데이터
|
||||
function fncDataReplace(){
|
||||
if($("#email1").val() != '' && $("#email2").val() != '') {
|
||||
var emailAll = document.getElementById("email1").value + "@" + document.getElementById("email2").value;
|
||||
$("#email").val(emailAll)
|
||||
function fncEtcInputEnable(thisObj){
|
||||
$("#exprnClsrnAplctCn").val('');
|
||||
if($(thisObj).val() == '04'){
|
||||
$("#exprnClsrnAplctCn").prop('disabled' , false);
|
||||
}else{
|
||||
$("#exprnClsrnAplctCn").prop('disabled' , true);
|
||||
}
|
||||
|
||||
if($("#birthYear").val() != '' && $("#birthMonth").val() != '' && $("#birthDay").val() != ''){
|
||||
$("#dBirth").val($("#birthYear").val()+$("#birthMonth").val()+$("#birthDay").val());
|
||||
}
|
||||
|
||||
if($("#cmpltNum").val() != ''){
|
||||
$('#cmpltNum').val($('#cmpltNum').val().replace(/-/gi, ''));
|
||||
}
|
||||
|
||||
if($("input[name=eClsrnYear]:checked").length != 0){
|
||||
var arr = $.map($("input[name=eClsrnYear]:checked"), function(elm,idx){return [elm.value]});
|
||||
|
||||
$('#exprnClsrnYear').val(arr);
|
||||
}
|
||||
$('#rprtSbmt').val($('#rprtSbmt').val().replace(/-/gi, ''));
|
||||
$('#oprtnStrtDt').val($('#oprtnStrtDt').val().replace(/[.]/gi, ''));
|
||||
$('#oprtnEndDt').val($('#oprtnEndDt').val().replace(/[.]/gi, ''));
|
||||
}
|
||||
|
||||
function validCheck(){
|
||||
|
||||
if($("#scholInsttNm").val() == ''){
|
||||
alert('학교(기관)명을 선택해주세요.');
|
||||
$("#scholInsttNm").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#chrgNm").val() == ''){
|
||||
alert('교사명을 입력해주세요.');
|
||||
$("#chrgNm").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
if($("#chrgSexCd").val() == ''){
|
||||
alert('성별을 선택해주세요.');
|
||||
$("#chrgSexCd").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#email1").val() == '' || $("#email2").val() == ''){
|
||||
alert('이메일을 입력해주세요.');
|
||||
$("#email1").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#post").val() == ''){
|
||||
alert('주소를 입력해주세요.');
|
||||
$("#post").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#addrDetail").val() == ''){
|
||||
alert('상세주소를 입력해주세요.');
|
||||
$("#addrDetail").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#chrgMjr").val() == ''){
|
||||
alert('담당교과를 입력해주세요.');
|
||||
$("#chrgMjr").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#birthYear").val() == ''){
|
||||
alert('생년월일 년도를 선택해주세요.');
|
||||
$("#birthYear").focus();
|
||||
return false;
|
||||
};
|
||||
if($("#birthMonth").val() == ''){
|
||||
alert('생년월일 월를 선택해주세요.');
|
||||
$("#birthMonth").focus();
|
||||
return false;
|
||||
};
|
||||
if($("#birthDay").val() == ''){
|
||||
alert('생년월일 일자를 선택해주세요.');
|
||||
$("#birthDay").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
if($("#cmpltYear").val() == ''){
|
||||
alert('이수년도를 입력해주세요.');
|
||||
$("#cmpltYear").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#cmpltNum").val() == ''){
|
||||
alert('이수번호를 입력해주세요.');
|
||||
$("#cmpltNum").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#exprnClsrnCd").val() == ''){
|
||||
alert('체험교실운영여부 구분을 선택해주세요.');
|
||||
$("#exprnClsrnCd").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("input[name=eClsrnYear]:checked").length == 0){
|
||||
alert('체험교실운영여부 년도를 하나이상 선택하셔야합니다.');
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#exprnClsrnAplct").val() == ''){
|
||||
alert('신청경로을 선택해주세요.');
|
||||
$("#exprnClsrnAplct").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#exprnClsrnAplct").val() == '04'){
|
||||
if($("#exprnClsrnAplctCn").val() == '') {
|
||||
alert('신청경로 기타 내용을 입력해주세요.');
|
||||
$("#exprnClsrnAplctCn").focus();
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
if($("#trgtGrade").val() == ''){
|
||||
alert('대학년수를 입력해주세요.');
|
||||
$("#trgtGrade").focus();
|
||||
return false;
|
||||
};
|
||||
if($("#trgtClsrm").val() == ''){
|
||||
alert('대상반을 입력해주세요.');
|
||||
$("#trgtClsrm").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#trgtPrsnl").val() == ''){
|
||||
alert('대학생수를 입력해주세요.');
|
||||
$("#trgtPrsnl").focus();
|
||||
return false;
|
||||
};
|
||||
|
||||
if($("#rprtSbmt").val() == ''){
|
||||
alert('보고서제출일을 입력해주세요.');
|
||||
$("#rprtSbmt").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if($("#oprtnStrtDt").val() == ''){
|
||||
alert('운영시기 시작일을 입력해주세요.');
|
||||
$("#oprtnStrtDt").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#oprtnEndDt").val() == ''){c
|
||||
alert('운영시기 종료일을 입력해주세요.');
|
||||
$("#oprtnEndDt").focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
if($(".uploaded_obj").length == 0){
|
||||
alert("파일을 첨부해 주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="mask2" onclick="timeLayerUtil()"></div>
|
||||
<form:form id="listForm" name="listForm" method="post">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
||||
</form:form>
|
||||
|
||||
<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="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="email" id="email" value=""/><!-- 이메일 -->
|
||||
<input type="hidden" name="sbmtYn" id="sbmtYn" value=""/><!-- 제출여부 -->
|
||||
<input type="hidden" name="aprvlCd" id="aprvlCd" value=""/><!-- 승인코드 -->
|
||||
<input type="hidden" name="dBirth" id="dBirth" value=""/><!-- dBirth -->
|
||||
<input type="hidden" name="exprnClsrnYear" id="exprnClsrnYear" value=""/><!-- exprnClsrnYear -->
|
||||
<input type="hidden" name="limitcount" id="limitcount" value="3" /><!-- 최대 업로드 파일갯수 -->
|
||||
<input type="hidden" name="allrowFileExtsn" id="allrowFileExtsn" value="gif,jpg,jpeg,png" /><!-- 최대 업로드 파일갯수 -->
|
||||
<input type="hidden" name="mode" id="mode" value="${modelVO.mode}" />
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
|
||||
<input type="hidden" name="oprtnFileId" id="oprtnFileId" value="${info.oprtnFileId}" />
|
||||
|
||||
<!-- cont -->
|
||||
<div class="cont_wrap">
|
||||
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<input type="hidden" name="lctrDivCd" value="30"/>
|
||||
<input type="hidden" name="limitcount" id="limitcount" value="3" /><!-- 최대 업로드 파일갯수 -->
|
||||
<!-- cont -->
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>교육신청 내용 변경</h2>
|
||||
<h2>운영신청서 등록</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>교육신청관리</p>
|
||||
<p>저작권 체험교실</p>
|
||||
</li>
|
||||
<li><span class="cur_nav">교육신청 내용 변경</span></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>
|
||||
<p>저작권 체험교실 운영 신청 등록</p>
|
||||
</div>
|
||||
<div class="tb_type02">
|
||||
<!-- list_상세 -->
|
||||
<div class="tb_type02 wirte">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: 210px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>학교(기관)명</p>
|
||||
<p>교사 아이디</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<input type="text" value="${info.scholInsttNm}" size="25" readonly id="scholInsttNm" name="scholInsttNm" title="학교(기관)명">
|
||||
<button type="button" class="btn_type06" data-tooltip="sub01_pop02" onclick="fncScholList();">학교검색</button>
|
||||
<input type="hidden" size="25" title="학교명코드" id="stndrdScholCd" name="stndrdScholCd" value="${info.stndrdScholCd}">
|
||||
<td>
|
||||
<input type="text" value="${info.userId}" style="min-width:400px;" size="25" readonly id="userId" name="userId" title="교사아이디">
|
||||
<button type="button" class="btn_type06" onclick="fncUserList();">사용자 검색</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -353,8 +238,10 @@
|
||||
<p>교사명</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" value="${info.chrgNm}" size="25" id="chrgNm" name="chrgNm" title="담당자명">
|
||||
<input type="text" value="${info.chrgNm}" style="min-width:400px;" size="25" id="chrgNm" name="chrgNm" title="교사명">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>성별</p>
|
||||
@ -366,17 +253,64 @@
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>이메일</p>
|
||||
<p>휴대폰</p>
|
||||
</th>
|
||||
<td class="input_mail" colspan="3">
|
||||
<c:set var="email" value="${fn:split(info.email,'@')}"/>
|
||||
<input type="text" value="${email[0]}" 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">
|
||||
※ 교내에서 확인 가능한 메일 계정 입력 (예) 교육청 도메인
|
||||
</span>
|
||||
<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>
|
||||
<label for="eduSlctAreaCd" class="label">지역 선택</label>
|
||||
<kc:select codeId="VE0008" selectedValue="${info.eduSlctAreaCd}" id="eduSlctAreaCd" name="eduSlctAreaCd" styleClass="selType1" css="readonly" defaultText="지역" defaultValue=""
|
||||
script="onFocus='this.initialSelect = this.selectedIndex;' onChange='this.selectedIndex = this.initialSelect;'"/>
|
||||
<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="checkbox" id="islandsYn" name="islandsYn" value="Y"><label for="islandsYn"> 도서지역</label>
|
||||
<input type="checkbox" id="remoteYn" name="remoteYn" value="Y"><label for="remoteYn"> 벽지지역</label>
|
||||
<input type="checkbox" id="clsCmbtYn" name="clsCmbtYn" value="Y"><label for="clsCmbtYn"> 접적지역</label>
|
||||
<input type="checkbox" id="ppulDclnYn" name="ppulDclnYn" value="Y"><label for="ppulDclnYn"> 인구감소지역</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="input_adress">
|
||||
@ -384,11 +318,23 @@
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>주소</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<input type="text" class="adressFst adr_input" value="${info.post}" id="post" name="post" title="우편번호" readonly />
|
||||
<%--<button type="button" class="btnType01" onclick="fn_postCode(this);" title="팝업 열림">주소찾기</button>--%><br/>
|
||||
<input type="text" class="adressMid searchResultAddr" value="${info.addr}" id="addr" name="addr" title="중간주소" readonly /><br/>
|
||||
<input type="text" class="adressLst usrInsertAddr" value="${info.addrDetail}" id="addrDetail" name="addrDetail" title="상세주소" readonly>
|
||||
<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 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);"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -397,6 +343,7 @@
|
||||
<p>담당교과</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<label for="chrgMjr" class="label">담당교과 입력</label>
|
||||
<input type="text" name="chrgMjr" id="chrgMjr" value="${info.chrgMjr}" size="25">
|
||||
</td>
|
||||
</tr>
|
||||
@ -411,24 +358,12 @@
|
||||
<c:set var="birthMonth" value="${fn:substring(info.dBirth, 4, 6)}"/>
|
||||
<c:set var="birthDay" value="${fn:substring(info.dBirth, 6, 8)}"/>
|
||||
</c:if>
|
||||
<select name="birthYear" id="birthYear" class="sel_type1 birthYear" selectValue="${birthYear}"></select>
|
||||
<select name="birthMonth" id="birthMonth" class="sel_type1 birthMonth" selectValue="${birthMonth}"></select>
|
||||
<select name="birthDay" id="birthDay" class="sel_type1 birthDay" selectValue="${birthDay}"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>저작권 오프라인<br/>교원연수</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<span class="t_bold">이수년도</span>
|
||||
<select id="cmpltYear" name="cmpltYear" class="sel_type1 yearSelect"
|
||||
selectValue="${info.cmpltYear}" start="${sysYear}" emptyOption="true" selected="" order="asc"></select>
|
||||
<span class="t_bold">이수번호</span> <input type="text" value="${info.cmpltNum}" size="15" id="cmpltNum" name="cmpltNum" maxlength="12" onkeyup="cmpltNoFormat(this);" title="이수번호">
|
||||
<span class="table_req_text">
|
||||
※ 교내에서 확인 가능한 메일 계정 입력 (예) 교육청 도메인
|
||||
</span>
|
||||
<label for="birthYear" class="label">년도 선택</label>
|
||||
<select name="birthYear" id="birthYear" class="selType1 birthYear" selectValue="${birthYear}"></select>
|
||||
<label for="birthMonth" class="label">월 선택</label>
|
||||
<select name="birthMonth" id="birthMonth" class="selType1 birthMonth" selectValue="${birthMonth}"></select>
|
||||
<label for="birthDay" class="label">일 선택</label>
|
||||
<select name="birthDay" id="birthDay" class="selType1 birthDay" selectValue="${birthDay}"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -437,14 +372,18 @@
|
||||
<p>체험교실운영여부</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<kc:radio codeId="VE0031" name="exprnClsrnCd" id="exprnClsrnCd" selectedValue="${empty info.exprnClsrnCd ? '01' : info.exprnClsrnCd}"/><br/>
|
||||
<c:forEach var="year" begin="2009" end="${sysYear}" varStatus="status">
|
||||
<kc:radio codeId="VE0031" name="exprnClsrnCd" id="exprnClsrnCd"
|
||||
selectedValue="${empty info.exprnClsrnCd ? '01' : info.exprnClsrnCd}"
|
||||
onChange="oprtnYn()"/><br/>
|
||||
<c:forEach var="year" begin="2009" end="${sysYear-1}" varStatus="status">
|
||||
<input type="checkbox" id="exprnClsrnYear${status.count}" name="eClsrnYear" title="${year}" value="${year}" ${fn:contains(info.exprnClsrnYear, year) ? 'checked' : ''}>
|
||||
<label for="exprnClsrnYear${status.count}">${year}</label>
|
||||
<c:if test="${status.count % 10 eq 0}">
|
||||
<br/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</br>
|
||||
<span>※ 소속학교 변동 여부와는 관계없이 기운영 여부를 체크.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -454,59 +393,52 @@
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<kc:radio codeId="VE0030" name="exprnClsrnAplct" id="exprnClsrnAplct" selectedValue="${empty info.exprnClsrnAplct ? '01' : info.exprnClsrnAplct}" onChange="fncEtcInputEnable(this)"/>
|
||||
<input type="text" value="${info.exprnClsrnAplctCn}" size="25" id="exprnClsrnAplctCn" name="exprnClsrnAplctCn" title="신청경로기타설명" ${info.exprnClsrnAplct eq '04' ? '' : 'disabled'}>
|
||||
<label for="exprnClsrnAplctCn" class="label">신청경로 기타설명</label>
|
||||
<input type="text" value="${info.exprnClsrnAplctCn}" size="25" id="exprnClsrnAplctCn" name="exprnClsrnAplctCn" ${info.exprnClsrnAplct eq '04' ? '' : 'disabled'}>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>운영 계획</p>
|
||||
<span class="cf_text">* 항목은 필수 입력 사항입니다.</span>
|
||||
<p>운영계획</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_type02">
|
||||
<div class="tb_type02 wirte">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: 210px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>대학년수</p>
|
||||
<p>학년수 </p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="trgtGrade" id="trgtGrade" onkeyup="onlyNumber(this);" maxlength="3" value="${info.trgtGrade}" title="교육대상" size="20"> 학년
|
||||
<td colspan="3">
|
||||
<label for="trgtGrade" class="label">대상 학년 입력</label>
|
||||
<input type="text" name="trgtGrade" id="trgtGrade" onkeyup="onlyNumber(this);" maxlength="3" value="${info.trgtGrade}" size="20"> 학년
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>대상 반</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="trgtClsrm" id="trgtClsrm" onkeyup="onlyNumber(this);" maxlength="3" value="${info.trgtClsrm}" title="교육인원" size="20"> 반
|
||||
<td colspan="3">
|
||||
<label for="trgtClsrm" class="label">대상 반 입력</label>
|
||||
<input type="text" name="trgtClsrm" id="trgtClsrm" value="${info.trgtClsrm}" title="교육인원" size="20"> 반
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>대학생수</p>
|
||||
<p>학생수</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="trgtPrsnl" id="trgtPrsnl" onkeyup="onlyNumber(this);" maxlength="4" value="${info.trgtPrsnl}" title="교육대상" size="20"> 명
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>보고서제출일</p>
|
||||
</th>
|
||||
<td>
|
||||
<div class="calendar_wrap">
|
||||
<fmt:parseDate value="${info.rprtSbmt}" var="rprtSbmt" pattern="yyyyMMdd"/>
|
||||
<input type="text" value="<fmt:formatDate value="${rprtSbmt}" pattern="yyyy.MM.dd"/>" name="rprtSbmt" id="rprtSbmt" class="calendar" title="시작일 선택">
|
||||
</div>
|
||||
<td colspan="3">
|
||||
<label for="trgtPrsnl" class="label">학생 수 입력</label>
|
||||
<input type="text" name="trgtPrsnl" id="trgtPrsnl" onkeyup="onlyNumber(this);" maxlength="4" value="${info.trgtPrsnl}" size="20"> 명
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -515,15 +447,9 @@
|
||||
<p>운영시기</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<div class="calendar_wrap">
|
||||
<fmt:parseDate value="${info.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
|
||||
<input type="text" value="<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy.MM.dd"/>" name="oprtnStrtDt" id="oprtnStrtDt" class="calendar" title="시작일 선택">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<fmt:parseDate value="${info.oprtnEndDt}" var="oprtnEndDt" pattern="yyyyMMdd"/>
|
||||
<input type="text" value="<fmt:formatDate value="${oprtnEndDt}" pattern="yyyy.MM.dd"/>" name="oprtnEndDt" id="oprtnEndDt" class="calendar" title="종료일 선택">
|
||||
</div>
|
||||
<kc:radio codeId="VE0030" name="exprnClsrnAplct" id="exprnClsrnAplct" selectedValue="${empty info.exprnClsrnAplct ? '01' : info.exprnClsrnAplct}" onChange="fncEtcInputEnable(this)"/>
|
||||
<label for="exprnClsrnAplctCn" class="label">신청경로 기타설명</label>
|
||||
<input type="text" value="${info.exprnClsrnAplctCn}" size="25" id="exprnClsrnAplctCn" name="exprnClsrnAplctCn" ${info.exprnClsrnAplct eq '04' ? '' : 'disabled'}>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -531,52 +457,63 @@
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>첨부파일</p>
|
||||
</th>
|
||||
<td class="upload_area" colspan="3">
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType01 btn_add_file">파일찾기</button>
|
||||
<td class="upload_area">
|
||||
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
|
||||
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
|
||||
</div>
|
||||
<div class="file_wrap">
|
||||
<table>
|
||||
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
|
||||
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p>
|
||||
<div class="file_wrap file_upload_box no_img_box">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
<!-- <th>
|
||||
<input type="checkbox" id="all_check"><label for="all_check"></label>
|
||||
</th> -->
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before">
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
|
||||
<td colspan="4">
|
||||
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap">
|
||||
<table>
|
||||
<div class="file_wrap fileAfter file_list_div">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 100px;">
|
||||
<col style="width: 60%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
<th>삭제</th>
|
||||
<!-- <th>
|
||||
<input type="checkbox" id="all_check"><label for="all_check"></label>
|
||||
</th> -->
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody id="tbody_fiielist" class="tb_file_after">
|
||||
<c:forEach var="fileList" items="${fileList}" varStatus="status">
|
||||
<tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj">
|
||||
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
|
||||
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
|
||||
<td class="td_filename">
|
||||
<span class="file_name_text">${fileList.orignlFileNm}</span>
|
||||
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
|
||||
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
|
||||
</td>
|
||||
<td class="td_filesort">
|
||||
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
|
||||
@ -585,39 +522,32 @@
|
||||
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"><i></i></button>
|
||||
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_cf">
|
||||
<div class="cf_left">
|
||||
<p>최대 <span>3</span>개</p>
|
||||
<p><span>50MB</span>제한</p>
|
||||
</div>
|
||||
</div>
|
||||
<span class="table_req_text">
|
||||
※ 신청서(공문)양식 다운로드 후, 직인을 포함하여 업로드 해주세요.
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</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_type01" onclick="fncSave('S');">저장</button>
|
||||
<button type="button" class="btn_type03" onclick="fncGoList();">취소</button>
|
||||
<button type="button" class="btn_type05" onclick="fncSave(); return false;">등록</button>
|
||||
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -0,0 +1,71 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/usr/publish/css/popup.css">
|
||||
<style>.popup_wrap {display: block; width:750px !important;}</style>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
$(document).ready(function(){
|
||||
// 레이어팝업 포커싱 이동 수정
|
||||
$(".tooltip-close").click(function(){
|
||||
$('[data-tooltip="sub40_pop01"]').focus();
|
||||
});
|
||||
})
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
var data = {
|
||||
pageIndex : pageNo,
|
||||
searchKeyword : $("#searchKeyword").val(),
|
||||
searchCondition : $("#searchCondition").val(),
|
||||
pageUnit : 5,
|
||||
formId : $("#formId").val(),
|
||||
}
|
||||
fncScholList(data);
|
||||
}
|
||||
|
||||
function goWrite(){
|
||||
location.href= "${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.do";
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub40_pop01" data-focus="sub40_pop01" data-focus-prev="list_popup_close">
|
||||
<div class="popup_tit">
|
||||
<p>신청서 작성 안내</p>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<div class="cont_body">
|
||||
<div class="application_wrap">
|
||||
<div class="info_box">
|
||||
<dl>
|
||||
<dt>알려드립니다</dt>
|
||||
<dd><c:out value='${nowYear}'/>년도 저작권 체험교실 운영 신청은 <c:out value='${vEPrcsDetailVO.strtPnttm }'/> ~ <c:out value='${vEPrcsDetailVO.endPnttm}'/>,<br>9:00 ~ 18:00에 진행되오니 많은 관심 부탁드립니다. 감사합니다.</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="title">· 신청서 접수 시 유의사항</div>
|
||||
<div class="list">
|
||||
<ol>
|
||||
<li><span class="number"></span>저작권 체험교실 운영 신청만 가능합니다. 찾아가는 저작권 교육 신청은 불가능합니다.<span>- 찾아가는 저작권 교육 신청은 해당 사이트(www.copyright.or.kr/offedu)에서 이용하여</br>
|
||||
  주시기 바랍니다.</span></li>
|
||||
<li><span class="number"></span>신청 시 공문양식을 다운로드 받아서 반드시 학교장 직인된 공문을 첨부해야 합니다.</li>
|
||||
<li><span class="number"></span>신청 시 반드시 본인 계정으로 신청해야 하며, 타인 계정으로 신청 시 신청 취소 처리됩니다.</li>
|
||||
<li><span class="number"></span>체험교실 신규 운영 교사는 체험교실 운영 교사 연수(1일, 8시간)를 반드시 이수해야 하며, 체험교실 운영 기간내에 저작권 e-배움터에서 제공하는 온라인 강좌를 의무 이수해야 합니다.</li>
|
||||
<li><span class="number"></span>신청기간 내 위원회 업무시간(09:00 ~ 18:00)동안 이용이 가능합니다.</li>
|
||||
<!-- <li><span class="number">6.</span>신청기간 내 학교급별(초등, 중등, 고등) 게시판을 반드시 확인 후 신청해 주시기 바랍니다.</li> -->
|
||||
<li><span class="number"></span>신청교사가 교내에서 확인 가능한 메일 계정을 기재해 주시기 바랍니다.</li>
|
||||
<li><span class="number"></span>신청 중 문의사항은 위원회 체험교실 담당자에게 연락을 주시기 바랍니다(055-792-0234)</li>
|
||||
<li><span class="number"></span>선정 후 취소(신규 운영 교사 사전 연수 불참 등) 및 운영 포기교실은 차년도 참여를 제한합니다.<br>(해당 내용 학교 공문 발송 예정)</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -50,6 +50,11 @@
|
||||
var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-'));
|
||||
var currentDate = new Date();
|
||||
|
||||
// 시간, 분, 초 초기화
|
||||
strtPnttm.setHours(0, 0, 0, 0);
|
||||
endPnttm.setHours(0, 0, 0, 0);
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
|
||||
if (currentDate < strtPnttm) {
|
||||
$ddlnCdStts.text("접수전");
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
@ -66,13 +71,56 @@
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoDetail(){
|
||||
var form = document.detailForm ;
|
||||
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do'/>";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function fncMdfy(){
|
||||
var detailForm = document.detailForm ;
|
||||
var form = document.mdfyForm ;
|
||||
detailForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function fn_delInstr(data){
|
||||
document.instrForm.userId.value = data ;
|
||||
|
||||
|
||||
|
||||
|
||||
var data = new FormData(document.getElementById("instrForm"));
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/instrDelAjax.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("삭제되었습니다.");
|
||||
// 새로고침
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
event.stopImmediatePropagation();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 강사 배치
|
||||
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
|
||||
var form = document.popForm;
|
||||
@ -86,35 +134,92 @@
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function chkAll(obj) {
|
||||
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
|
||||
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
|
||||
}
|
||||
|
||||
function updateEduAplctOrd(p_aprvlCd, p_prcsAplctPrdOrd) {
|
||||
var selectedEduAplctOrd = [];
|
||||
|
||||
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
|
||||
$("input[name='chk']:checked").each(function() {
|
||||
var eduAplctOrdValue = $(this).val();
|
||||
selectedEduAplctOrd.push(eduAplctOrdValue);
|
||||
});
|
||||
|
||||
console.log('selectedEduAplctOrd : ', selectedEduAplctOrd);
|
||||
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
|
||||
if (selectedEduAplctOrd.length === 0) {
|
||||
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var dataToSend = {
|
||||
"eduAplctOrdList": selectedEduAplctOrd,
|
||||
"aprvlCd": p_aprvlCd,
|
||||
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
|
||||
};
|
||||
|
||||
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/updateEduAplctAprvlCdAjax.do'/>";
|
||||
|
||||
|
||||
// AJAX 호출을 통해 서버에 데이터 전송
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
|
||||
// contentType : 'application/json',
|
||||
dataType:'json',
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("변경 처리 되었습니다.");
|
||||
window.location.reload();
|
||||
}else{
|
||||
alert("변경 중 오류가 발생하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
console.error("AJAX Error:", textStatus, errorThrown);
|
||||
console.error("Response:", jqXHR.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<form id="instrForm" name="instrForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<input type="hidden" name="userId" id="userId"/>
|
||||
</form>
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
|
||||
</form:form>
|
||||
<form id="popForm" name="popForm" method="post">
|
||||
<input type="hidden" name="pageIndex" value="1"/>
|
||||
<input type="hidden" name="prcsAplctPrdOrd" value="" />
|
||||
<input type="hidden" name="pageUnit" value="5" />
|
||||
|
||||
</form>
|
||||
<form id="mdfyForm" name="mdfyForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
</form>
|
||||
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' default='1' />"/>
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<!-- cont -->
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>교육 과정 상세</h2>
|
||||
<h2>과정 신청기간 상세</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>교육콘텐츠</p>
|
||||
<p>조건부기소유예관리</p>
|
||||
</li>
|
||||
<li><span class="cur_nav">교육 과정 관리</span></li>
|
||||
<li><span class="cur_nav">교육 과정 상세</span></li>
|
||||
<li><span class="cur_nav">과정신청기간관리 신청기간 상세</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
@ -164,7 +269,12 @@
|
||||
<c:out value="${info.eduStrtPnttm}"/>~<c:out value="${info.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">상세교육과정</th>
|
||||
<td>
|
||||
<c:out value="${info.prcsCn }" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">정원</th>
|
||||
<td class="addPro_wrap">
|
||||
@ -216,12 +326,14 @@
|
||||
<col style="width: 210px;"><!-- name -->
|
||||
<col style="width: auto;"><!-- 제출일 -->
|
||||
<col style="width: 210px;"><!-- 신청상태 -->
|
||||
<col style="width: 210px;"><!-- 신청상태 -->
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>강사명</th>
|
||||
<th>연락처</th>
|
||||
<th>확정여부</th>
|
||||
<th>삭제</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -238,12 +350,15 @@
|
||||
<td>
|
||||
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_type01" onclick="fn_delInstr('<c:out value="${list.userId }" />')">삭제</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="3">강사 배치 정보가 없습니다.</td>
|
||||
<td colspan="4">강사 배치 정보가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
@ -267,7 +382,30 @@
|
||||
교육 신청자 list_상세
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>교육신청자</p>
|
||||
<p>교육신청자</p> <!-- ${listPrcsAplct } -->
|
||||
</div>
|
||||
<!-- list_top -->
|
||||
<div class="list_top search-only">
|
||||
<div class="list_top_1">
|
||||
<div class="util_right">
|
||||
|
||||
<select id="searchStatus" name="searchStatus" class="sel_type1">
|
||||
<option value="10" <c:if test="${vEPrcsDetailVO.searchStatus==10 }">selected="selected"</c:if> >확정여부</option>
|
||||
<option value="20" <c:if test="${vEPrcsDetailVO.searchStatus==20 }">selected="selected"</c:if>>이수여부</option>
|
||||
</select>
|
||||
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
|
||||
</div>
|
||||
<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="fncGoDetail(); return false;">검색</button>
|
||||
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
@ -281,20 +419,15 @@
|
||||
<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>확정여부</th>
|
||||
<th>이수여부</th>
|
||||
<th>신청상태</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
|
||||
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
|
||||
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
|
||||
|
||||
<c:choose>
|
||||
<c:when test="${!empty listPrcsAplct}">
|
||||
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
|
||||
@ -304,10 +437,7 @@
|
||||
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${status.count}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.chrgNm}"/>
|
||||
<c:out value="${list.userNm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.sbmtPnttm}"/>
|
||||
@ -316,28 +446,55 @@
|
||||
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
설문조사
|
||||
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
출력
|
||||
<c:choose>
|
||||
<c:when test="${list.qestnrId }">
|
||||
<button type="button" class="btn_type04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">설문결과</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
미입력
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
출력
|
||||
<c:choose>
|
||||
<c:when test="${list.qestnrId }">
|
||||
<%-- <button type="button" class="btnType04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">출력</button> --%>
|
||||
<button type="button" class="btn_type04">출력</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="8">신청자가 없습니다.</td>
|
||||
<td colspan="7">신청자가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
|
||||
</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_type04" onclick="location.href='<c:url value="/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do" />'; return false;">강의목록</button>
|
||||
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(30, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">접수취소(반려)</button>
|
||||
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(20, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">교육승인</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : fndthEduPrcsAplctPrdMngMdfy.jsp
|
||||
@ -29,6 +30,39 @@
|
||||
<title>교육과정관리</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#prcsOrd').change(function(){
|
||||
fnSelectDivAndCn($(this).val());
|
||||
});
|
||||
fnSelectDivAndCn($('#prcsOrd').val());
|
||||
});
|
||||
|
||||
|
||||
// div codeNm 가져오는 function
|
||||
function fnSelectDivAndCn(prcsOrdVal){
|
||||
|
||||
var url = "${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctSelectDivAndCnAjax.do";
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data:{ "prcsOrd" : prcsOrdVal},
|
||||
dataType:'json',
|
||||
async: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
$('#prcsDiv').val(returnData.prcsDiv);
|
||||
$('#prcsCn').val(returnData.prcsCn);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//세부과정 추가 버튼 클릭 시 세부과정 추가
|
||||
function addPro() {
|
||||
var addQuest = $(".addPro_wrap");
|
||||
@ -176,7 +210,8 @@
|
||||
<tr>
|
||||
<th scope="row">교육부분</th>
|
||||
<td>
|
||||
<ve:select codeId="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}"/>
|
||||
<input type="text" id="prcsDiv" readonly="readonly" value=""/>
|
||||
<%-- <ve:select codeId="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}"/> --%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -189,7 +224,8 @@
|
||||
<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:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
|
||||
</c:forEach>
|
||||
|
||||
</select>
|
||||
@ -230,6 +266,13 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">상세교육과정</th>
|
||||
<td>
|
||||
<textarea name="prcsCn" id="prcsCn" class="memo" disabled="disabled" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">정원</th>
|
||||
<td class="addPro_wrap">
|
||||
|
||||
@ -35,6 +35,17 @@
|
||||
$('#prcsOrd').change(function(){
|
||||
fnSelectDivAndCn($(this).val());
|
||||
});
|
||||
|
||||
$('#nos').on('input', function() {
|
||||
// 숫자만 허용
|
||||
$(this).val($(this).val().replace(/[^0-9]/g, ''));
|
||||
|
||||
// 값이 0으로 시작하면 제거
|
||||
if ($(this).val().charAt(0) == '0') {
|
||||
$(this).val($(this).val().substring(1));
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
@ -203,13 +214,13 @@
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">교육부분코드</th>
|
||||
<th scope="row">교육부분</th>
|
||||
<td>
|
||||
<input type="text" name="prcsDiv" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육과정</th>
|
||||
<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'/> --%>
|
||||
|
||||
|
||||
@ -127,7 +127,7 @@
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
@ -65,7 +65,74 @@ function snsShare(snsName) {
|
||||
<!-- 바디 전체 div="container" 선언 - 네비/바디 전체 div="container" 종료 - 푸터 -->
|
||||
<div class="container">
|
||||
<c:if test="${!fn:contains(URL , 'login/ssoLogin.')}">
|
||||
<div class="path">
|
||||
|
||||
<div class="navigation">
|
||||
<div class="inner">
|
||||
<ul class="list">
|
||||
|
||||
|
||||
|
||||
<li class="home"><a href="/user/main/main.do">메인화면</a></li>
|
||||
<li>
|
||||
<!-- 데이터 셋팅 -->
|
||||
<c:forEach var="resultListTit" items="${menuResultList}" varStatus="status">
|
||||
<c:if test="${resultListTit.depths eq '2' and fn:contains(resultListTit.url, pageUri)}" >
|
||||
<!-- 조건을 만족하는 항목에 대한 처리 -->
|
||||
<c:set var="upperMenuId" value="${resultListTit.upperMenuId }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
<!-- 1depths -->
|
||||
<c:forEach var="resultListTit" items="${menuResultList}" varStatus="status">
|
||||
<c:if test="${resultListTit.depths eq '1' and upperMenuId eq resultListTit.menuNo }" >
|
||||
<button type="button" class="navi_title" id="p_menu_nm_navi" title="하위메뉴 열기">${resultListTit.menuNm }</button>
|
||||
<!-- 조건을 만족하는 항목에 대한 처리 -->
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
<ul class="navi_depth" id="navi_depth_1">
|
||||
<c:forEach var="resultListOne" items="${menuResultList}" varStatus="status">
|
||||
<c:if test="${resultListOne.depths eq '1' }">
|
||||
<li>
|
||||
<a href="${pageContext.request.contextPath}${empty resultListOne.url ? '#' : resultListOne.url }" ${resultListOne.menuType eq 'O' ? 'target="_blank"' : ""} >
|
||||
<c:out value="${resultListOne.menuNm}" escapeXml="false" />
|
||||
</a>
|
||||
</li>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- 2depths -->
|
||||
<li>
|
||||
<c:set var="found" value="false"/>
|
||||
<c:forEach var="resultListTwo" items="${menuResultList}" varStatus="status">
|
||||
<c:if test="${not found
|
||||
&& resultListTwo.depths eq '2'
|
||||
&& resultListTwo.upperMenuId eq upperMenuId
|
||||
and fn:contains(resultListTwo.url, pageUriLast)}">
|
||||
<button type="button" class="navi_title" id="menu_nm_navi" title="하위메뉴 열기"><c:out value="${resultListTwo.menuNm}" /></button>
|
||||
<c:set var="found" value="true"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
|
||||
|
||||
<ul class="navi_depth" id="navi_depth_2">
|
||||
<c:forEach var="resultListTwo" items="${menuResultList}" varStatus="status">
|
||||
<c:if test="${resultListTwo.depths eq '2'
|
||||
&& resultListTwo.upperMenuId eq upperMenuId }">
|
||||
<li>
|
||||
<a href="${pageContext.request.contextPath}${empty resultListTwo.url ? '#' : resultListTwo.url }" ${resultListTwo.menuType eq 'O' ? 'target="_blank"' : ""} >
|
||||
<c:out value="${resultListTwo.menuNm}" />
|
||||
</a>
|
||||
</li>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<%-- <div class="path">
|
||||
<div class="pathedfr">
|
||||
<ul>
|
||||
<li class="home"><i></i>HOME</li>
|
||||
@ -135,11 +202,11 @@ function snsShare(snsName) {
|
||||
</ul>
|
||||
</div>
|
||||
<!--// mobile snb-->
|
||||
</div>
|
||||
</div> --%>
|
||||
</c:if>
|
||||
<!-- 선언 - 이너/종료 - 푸터 -->
|
||||
<div class="inner">
|
||||
<div class="snb">
|
||||
<%-- <div class="snb">
|
||||
<c:forEach var="menuLeftResultList" items="${menuLeftResultList}" varStatus="status">
|
||||
<c:if test="${menuLeftResultList.depths eq '1' }">
|
||||
<c:forEach var="resultCurrentList" items="${menuCurrentResultList}" varStatus="status">
|
||||
@ -162,7 +229,7 @@ function snsShare(snsName) {
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div> --%>
|
||||
|
||||
|
||||
|
||||
|
||||
@ -106,6 +106,7 @@
|
||||
document.body.innerHTML = initBody;
|
||||
}
|
||||
|
||||
//설문조사 주석 임시로
|
||||
function beforeSrvyPopupAjax(){
|
||||
var sendData= $(document.listForm).serializeArray();
|
||||
$("#beforeSrvyPopupLoad").load("${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/Popup/beforeSrvyPopup.do", sendData ,function(response, status, xhr){
|
||||
@ -283,9 +284,9 @@
|
||||
</th>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty info.endPnttm}">
|
||||
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
|
||||
<c:when test="${not empty info.prcsEndPnttm}">
|
||||
<fmt:parseDate value="${info.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyMMddHHmm"/>
|
||||
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
|
||||
@ -113,8 +113,8 @@
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
|
||||
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="20yy.MM.dd"/>
|
||||
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
@ -185,8 +185,8 @@
|
||||
<li>
|
||||
<span>접수종료일</span>
|
||||
<span>
|
||||
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="20yy.MM.dd"/>
|
||||
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,540 +0,0 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" />
|
||||
<% pageContext.setAttribute("replaceChar", "\n"); %>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
|
||||
<script>
|
||||
/* js에 전달용 */
|
||||
var contextPath = '${pageContext.request.contextPath}';
|
||||
var eduAplctOrd = "<c:out value='${info.eduAplctOrd}'/>";
|
||||
</script>
|
||||
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
|
||||
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
|
||||
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
|
||||
|
||||
<style>
|
||||
input:disabled {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
input:read-only {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
#orgn{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
|
||||
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offeduadvc/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
|
||||
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
|
||||
#cpy{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
|
||||
#evdnc{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
|
||||
#evdnc div.irx_filetree.empty-uploader{background: url(/offeduadvc/visitEdu/usr/publish/images/content/dropzone_file_before_only_zip.png) no-repeat center; height: 150px !important;}
|
||||
#rmttrn{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
|
||||
</style>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
//대용량 업로드 솔루션
|
||||
var control1 = new Object();
|
||||
var control2 = new Object();
|
||||
var control3 = new Object();
|
||||
var control4 = new Object();
|
||||
var control5 = new Object();
|
||||
|
||||
//첨부파일 변화 유무
|
||||
var control1Chg = 'N';
|
||||
var control2Chg = 'N';
|
||||
var control3Chg = 'N';
|
||||
var control4Chg = 'N';
|
||||
|
||||
//임시파일 유무 설정
|
||||
var control1Tmprr = 'N';
|
||||
var control2Tmprr = 'N';
|
||||
var control3Tmprr = 'N';
|
||||
var control4Tmprr = 'N';
|
||||
|
||||
//기존 임시저장 확인 여부 - tmprrYn이 == N 테이블 insert / tmprrYn == Y 테이블 update
|
||||
var tmprrYn = 'N';
|
||||
|
||||
var control1Id = '${info.orgnlRsltAtchFileId}';
|
||||
var control2Id = '${info.cpyRsltAtchFileId}';
|
||||
var control3Id = '${info.evdncPhtAtchFileId}';
|
||||
var control4Id = '${info.rmtTrnAtchFileId}';
|
||||
|
||||
|
||||
if(control1Id != null && control1Id != ''){
|
||||
control1Tmprr = 'Y';
|
||||
tmprrYn = 'Y';
|
||||
}
|
||||
if(control2Id != null && control2Id != ''){
|
||||
control2Tmprr = 'Y';
|
||||
tmprrYn = 'Y';
|
||||
}
|
||||
if(control3Id != null && control3Id != ''){
|
||||
control3Tmprr = 'Y';
|
||||
tmprrYn = 'Y';
|
||||
}
|
||||
if(control4Id != null && control4Id != ''){
|
||||
control4Tmprr = 'Y';
|
||||
tmprrYn = 'Y';
|
||||
}
|
||||
|
||||
//임시파일 다운로드 jsp 기본 경로
|
||||
var urlBase = "<c:url value='/innorix/exam/'/>"
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
//대용량 업로드 솔루션 innorix
|
||||
//원본 결과 보고서 컨트롤 생성
|
||||
control1 = innorix.create({
|
||||
el : '#orgn', // 컨트롤 출력 객체 ID
|
||||
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
|
||||
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=orgn" />', // 업로드 URL
|
||||
maxFileCount : 1, // 첨부가능 파일 전체 개수
|
||||
width : 870, // 컨트롤 출력 너비(pixel)
|
||||
height : 80, // 컨트롤 출력 높이(pixel)
|
||||
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
|
||||
useContextMenu : 'false' //우클릭을 이용한 개별 업로드 방지
|
||||
});
|
||||
|
||||
// 파일 추가 이벤트
|
||||
control1.on('afterAddFiles', function (p) {
|
||||
$('.orgnl_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
|
||||
$('.orgnl_totalfileCount').text(p.length);
|
||||
control1Chg = 'Y';
|
||||
});
|
||||
|
||||
// 파일 삭제 이벤트
|
||||
// 임시 저장이 아닌, 새로 afterAddFiles(업로드 전 파일추가) - control1Chg 'N'
|
||||
// 임시 저장 파일 삭제 시 - control1Chg 'Y'
|
||||
control1.on('removeFiles', function (p) {
|
||||
$('.orgnl_totalfileSize').text('0MB') ;
|
||||
$('.orgnl_totalfileCount').text('0');
|
||||
control1Chg = 'N';
|
||||
if(control1Tmprr == 'Y'){
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
innorixDelRprtAtchFile(p[0].uniqueFileName, 'orgnl_rslt_atch_file_id')
|
||||
control1Tmprr = 'N';
|
||||
control1Chg = 'Y';
|
||||
$("#control1DownBtn").css('display', 'none');
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//평가용 결과 보고서 컨트롤 생성
|
||||
control2 = innorix.create({
|
||||
el : '#cpy', // 컨트롤 출력 객체 ID
|
||||
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
|
||||
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=cpy" />', // 업로드 URL
|
||||
maxFileCount : 1, // 첨부가능 파일 전체 개수
|
||||
width : 870, // 컨트롤 출력 너비(pixel)
|
||||
height : 80, // 컨트롤 출력 높이(pixel)
|
||||
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
|
||||
useContextMenu : 'false'
|
||||
});
|
||||
|
||||
// 파일 추가 이벤트
|
||||
control2.on('afterAddFiles', function (p) {
|
||||
$('.cpy_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
|
||||
$('.cpy_totalfileCount').text(p.length);
|
||||
control2Chg = 'Y';
|
||||
});
|
||||
|
||||
// 파일 삭제 이벤트
|
||||
control2.on('removeFiles', function (p) {
|
||||
$('.cpy_totalfileSize').text('0MB') ;
|
||||
$('.cpy_totalfileCount').text('0');
|
||||
control2Chg = 'N';
|
||||
if(control2Tmprr == 'Y'){
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
innorixDelRprtAtchFile(p[0].uniqueFileName, 'cpy_rslt_atch_file_id')
|
||||
control2Tmprr = 'N';
|
||||
control2Chg = 'Y';
|
||||
$("#control2DownBtn").css('display', 'none');
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//증빙사진 컨트롤 생성
|
||||
control3 = innorix.create({
|
||||
el : '#evdnc', // 컨트롤 출력 객체 ID
|
||||
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
|
||||
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=evdnc" />', // 업로드 URL
|
||||
maxFileCount : 1, // 첨부가능 파일 전체 개수
|
||||
width : 870, // 컨트롤 출력 너비(pixel)
|
||||
height : 80, // 컨트롤 출력 높이(pixel)
|
||||
allowExtension : ["zip"],
|
||||
useContextMenu : 'false'
|
||||
});
|
||||
|
||||
// 파일 추가 이벤트
|
||||
control3.on('afterAddFiles', function (p) {
|
||||
$('.evdnc_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
|
||||
$('.evdnc_totalfileCount').text(p.length);
|
||||
control3Chg = 'Y';
|
||||
});
|
||||
|
||||
// 파일 삭제 이벤트
|
||||
control3.on('removeFiles', function (p) {
|
||||
$('.evdnc_totalfileSize').text('0MB') ;
|
||||
$('.evdnc_totalfileCount').text('0');
|
||||
control3Chg = 'N';
|
||||
if(control3Tmprr == 'Y'){
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
innorixDelRprtAtchFile(p[0].uniqueFileName, 'evdnc_pht_atch_file_id')
|
||||
control3Tmprr = 'N';
|
||||
control3Chg = 'Y';
|
||||
$("#control3DownBtn").css('display', 'none');
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//원격연수 이수증 컨트롤 생성
|
||||
control4 = innorix.create({
|
||||
el : '#rmttrn', // 컨트롤 출력 객체 ID
|
||||
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
|
||||
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=rmttrn" />', // 업로드 URL
|
||||
maxFileCount : 1, // 첨부가능 파일 전체 개수
|
||||
width : 870, // 컨트롤 출력 너비(pixel)
|
||||
height : 80, // 컨트롤 출력 높이(pixel)
|
||||
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
|
||||
useContextMenu : 'false'
|
||||
});
|
||||
|
||||
// 파일 추가 이벤트
|
||||
control4.on('afterAddFiles', function (p) {
|
||||
$('.rmtTrn_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
|
||||
$('.rmtTrn_totalfileCount').text(p.length);
|
||||
control4Chg = 'Y';
|
||||
});
|
||||
|
||||
// 파일 삭제 이벤트
|
||||
control4.on('removeFiles', function (p) {
|
||||
$('.rmtTrn_totalfileSize').text('0MB') ;
|
||||
$('.rmtTrn_totalfileCount').text('0');
|
||||
control4Chg = 'N';
|
||||
if(control4Tmprr == 'Y'){
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
innorixDelRprtAtchFile(p[0].uniqueFileName, 'rmt_trn_atch_file_id')
|
||||
control4Tmprr = 'N';
|
||||
control4Chg = 'Y';
|
||||
$("#control4DownBtn").css('display', 'none');
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//멀티 컨트롤 생성 - hidden으로 화면 비노출, 제출 시 컨트롤 1~4를 add하여 업로드
|
||||
control5 = innorix.create({
|
||||
el : '#fileControl5', // 컨트롤 출력 객체 ID
|
||||
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
|
||||
uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />', // 업로드 URL
|
||||
maxFileCount : 4, // 첨부가능 파일 전체 개수
|
||||
});
|
||||
|
||||
|
||||
|
||||
//임시저장 데이터가 있을 시 임시저장 파일 처리
|
||||
if(control1Tmprr == 'Y'){
|
||||
control1.presetDownloadFiles([{
|
||||
printFileName: '${info.orgnlRsltAtchFileDetail.orignlFileNm}',
|
||||
fileSize: '${info.orgnlRsltAtchFileDetail.fileSize}',
|
||||
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.orgnlRsltAtchFileDetail.streFileNm}',
|
||||
uniqueFileName : '${info.orgnlRsltAtchFileDetail.atchFileId}'
|
||||
}]);
|
||||
control1Chg = 'N'; //임시저장 파일 세팅 시 'afterAddFiles' 이벤트에서 control1Chg = 'Y' 처리가 되어 다시 N으로 설정
|
||||
}
|
||||
if(control2Tmprr == 'Y'){
|
||||
control2.presetDownloadFiles([{
|
||||
printFileName: '${info.cpyRsltAtchFileDetail.orignlFileNm}',
|
||||
fileSize: '${info.cpyRsltAtchFileDetail.fileSize}',
|
||||
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.cpyRsltAtchFileDetail.streFileNm}',
|
||||
uniqueFileName : '${info.cpyRsltAtchFileDetail.atchFileId}'
|
||||
}]);
|
||||
control2Chg = 'N';
|
||||
}
|
||||
if(control3Tmprr == 'Y'){
|
||||
control3.presetDownloadFiles([{
|
||||
printFileName: '${info.evdncPhtAtchFileDetail.orignlFileNm}',
|
||||
fileSize: '${info.evdncPhtAtchFileDetail.fileSize}',
|
||||
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.evdncPhtAtchFileDetail.streFileNm}',
|
||||
uniqueFileName : '${info.evdncPhtAtchFileDetail.atchFileId}'
|
||||
}]);
|
||||
control3Chg = 'N';
|
||||
}
|
||||
if(control4Tmprr == 'Y'){
|
||||
control4.presetDownloadFiles([{
|
||||
printFileName: '${info.rmtTrnAtchFileDetail.orignlFileNm}',
|
||||
fileSize: '${info.rmtTrnAtchFileDetail.fileSize}',
|
||||
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.rmtTrnAtchFileDetail.streFileNm}',
|
||||
uniqueFileName : '${info.rmtTrnAtchFileDetail.atchFileId}'
|
||||
}]);
|
||||
control4Chg = 'N';
|
||||
}
|
||||
|
||||
|
||||
//첨부파일 업로드 후속조치 - 결과제출 시 처리
|
||||
control5.on('uploadComplete', function (p) {
|
||||
fn_callBackInnorixInsert(p.files);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function fn_callBackInnorixInsert(data){
|
||||
var url = "<c:url value='/web/common/insertRprtInnorixFileAjax.do' />";
|
||||
if(tmprrYn == 'Y'){ //임시 저장 데이터가 있을 시 테이블 update 처리
|
||||
var url = "<c:url value='/web/common/updateRprtInnorixFileAjax.do' />";
|
||||
}
|
||||
|
||||
var sendData = {
|
||||
"eduAplctOrd": $('#eduAplctOrd').val()
|
||||
, "aprvlCd" : $('#aprvlCd').val() //결과제출 - 10, 임시제출 - 230
|
||||
, "innorixFileListVO": data
|
||||
, "successMsg" : "제출 완료되었습니다."
|
||||
}
|
||||
|
||||
if(fn_innorixCmmAjax(sendData, url) == "OK")
|
||||
{
|
||||
fncGoList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
var linkForm = document.linkForm ;
|
||||
linkForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndDetail.do'/>";
|
||||
linkForm.submit();
|
||||
}
|
||||
|
||||
function fncSave(){
|
||||
if(control1.getFileCount() == 0){
|
||||
alert("원본 결과보고서를 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
|
||||
if(control2.getFileCount() == 0){
|
||||
alert("평가용 결과보고서를 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
|
||||
if(control3.getFileCount() == 0){
|
||||
alert("증빙사진을 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
document.getElementById('aprvlCd').value = '10';
|
||||
|
||||
//임시저장 파일이 아닌 새로 추가한 파일만 업로드 처리
|
||||
control5.removeAllFiles(); //control5 초기화
|
||||
if(control1Chg == 'Y'){
|
||||
control5.addFiles(control1.getAllFiles());
|
||||
}
|
||||
if(control2Chg == 'Y'){
|
||||
control5.addFiles(control2.getAllFiles());
|
||||
}
|
||||
if(control3Chg == 'Y'){
|
||||
control5.addFiles(control3.getAllFiles());
|
||||
}
|
||||
if(control4Chg == 'Y'){
|
||||
control5.addFiles(control4.getAllFiles());
|
||||
}
|
||||
//업로드 파일 사이즈 500MB 제한
|
||||
//임시로 저장되어 있던 파일들 용량까지 체크하기 위하여 control5.getTotalSize()가 아닌 각각 파일의 사이즈를 더하여 비교
|
||||
if(control1.getTotalSize() + control2.getTotalSize() + control3.getTotalSize() + control4.getTotalSize()> 524288000){
|
||||
alert("업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.")
|
||||
return false;
|
||||
}
|
||||
|
||||
//기존 임시 저장상태에서 새로 등록한 파일이 없다면, 상태 값만 10으로 update 처리
|
||||
if(control5.getFileCount() == '0'){
|
||||
var url = "<c:url value='/web/common/updateRprtInnorixFileAjax.do' />";
|
||||
var sendData = {
|
||||
"eduAplctOrd": $('#eduAplctOrd').val()
|
||||
, "aprvlCd" : $('#aprvlCd').val()
|
||||
, "successMsg" : "제출 완료되었습니다."
|
||||
}
|
||||
if(fn_innorixCmmAjax(sendData, url) == "OK")
|
||||
{
|
||||
fncGoList();
|
||||
}
|
||||
}else{
|
||||
//업로드 경로 설정 -upload.jsp에서 uploader.setDirectory(innoDirPath) 식으로 사용
|
||||
//230810 기준 : innoDirPath = globals_local.properties = /usr/local/tomcat/file/sht/ 경로지만
|
||||
//upload.jsp에서 /app/doc/offedu/sht/로 다시 set. context-properties.xml에서 파일 경로도 /app/doc/offedu/sht/
|
||||
var postObj = new Object();
|
||||
postObj.innoDirPath = $('#innoDirPath').val();
|
||||
control5.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
|
||||
control5.upload();
|
||||
}
|
||||
}
|
||||
|
||||
function fncTmprrSave(){
|
||||
|
||||
//첨부파일이 변경됐을시만 업로드. 임시저장으로 인하여 비교 필요
|
||||
control5.removeAllFiles(); //control5 초기화
|
||||
if(control1Chg == 'Y'){
|
||||
control5.addFiles(control1.getAllFiles());
|
||||
}
|
||||
if(control2Chg == 'Y'){
|
||||
control5.addFiles(control2.getAllFiles());
|
||||
}
|
||||
if(control3Chg == 'Y'){
|
||||
control5.addFiles(control3.getAllFiles());
|
||||
}
|
||||
if(control4Chg == 'Y'){
|
||||
control5.addFiles(control4.getAllFiles());
|
||||
}
|
||||
//업로드 파일 사이즈 500MB 제한
|
||||
if(control1.getTotalSize() + control2.getTotalSize() + control3.getTotalSize() + control4.getTotalSize()> 524288000){
|
||||
alert("업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.")
|
||||
return false;
|
||||
}
|
||||
if((control1Chg == 'N' && control2Chg == 'N'
|
||||
&& control3Chg == 'N' && control4Chg == 'N') || control5.getFileCount() == '0'){
|
||||
alert("임시저장할 파일을 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
document.getElementById('aprvlCd').value = '230';
|
||||
//업로드 경로 설정 -upload.jsp에서 uploader.setDirectory(innoDirPath) 식으로 사용
|
||||
//230810 기준 : innoDirPath = globals_local.properties = /usr/local/tomcat/file/sht/ 경로지만
|
||||
//upload.jsp에서 /app/doc/offedu/sht/로 다시 set. context-properties.xml에서 파일 경로도 /app/doc/offedu/sht/
|
||||
var postObj = new Object();
|
||||
postObj.innoDirPath = $('#innoDirPath').val();
|
||||
control5.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
|
||||
control5.upload();
|
||||
}
|
||||
</script>
|
||||
|
||||
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
|
||||
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
|
||||
<input type="hidden" id="innoDirPath" value="<spring:eval expression="@globalSettings['Globals.Innorix.FilePath']"/>" />
|
||||
</form:form>
|
||||
|
||||
|
||||
<div class="cont_wrap" id="sub">
|
||||
<div class="cont_tit">
|
||||
<h2>결과보고</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>결과보고 정보</p>
|
||||
<span class="cf_text" style="font-size: 16px; font-weight: 400; color: #e40000;line-height: 1.5;margin-left:100px;">※ 업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.
|
||||
<br/> 용량을 초과할 경우, 오류 발생으로 인해 업로드가 되지 않으니 유의하시기 바랍니다. </span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="exprnClsrmEndRslt_wrap">
|
||||
<dl class="filewrap_div">
|
||||
<dt><p class="req_text"><span>필수입력 항목</span>*</p>원본 결과보고서</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" onclick="control1.openFileDialogSingle();" class="btnType01 orgnl_btn_add_file">원본 결과보고서 파일찾기</button>
|
||||
<c:if test="${info.orgnlRsltAtchFileId != null && info.orgnlRsltAtchFileId != ''}">
|
||||
<button type="button" id="control1DownBtn" onclick="control1.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
|
||||
</c:if>
|
||||
</div>
|
||||
<div id="orgn"></div><br/>
|
||||
<div class="file_cf">
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="orgnl_limitFileCount">1</span>개</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number orgnl_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number orgnl_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="filewrap_div">
|
||||
<dt><p class="req_text"><span>필수입력 항목</span>*</p>평가용 결과보고서</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" onclick="control2.openFileDialogSingle();" class="btnType01 cpy_btn_add_file">평가용 결과보고서 파일찾기</button>
|
||||
<c:if test="${info.cpyRsltAtchFileId != null && info.cpyRsltAtchFileId != ''}">
|
||||
<button type="button" id="control2DownBtn" onclick="control2.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
|
||||
</c:if>
|
||||
</div>
|
||||
<div id="cpy"></div><br/>
|
||||
<div class="file_cf">
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="cpy_limitFileCount">1</span>개</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number cpy_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number cpy_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="filewrap_div">
|
||||
<dt><p class="req_text"><span>필수입력 항목</span>*</p>증빙사진</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" onclick="control3.openFileDialogSingle();" class="btnType01 evdnc_btn_add_file">증빙 사진 파일찾기</button>
|
||||
<c:if test="${info.evdncPhtAtchFileId != null && info.evdncPhtAtchFileId != ''}">
|
||||
<button type="button" id="control3DownBtn" onclick="control3.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
|
||||
</c:if>
|
||||
</div>
|
||||
<div id="evdnc"></div><br/>
|
||||
<div class="file_cf">
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="evdnc_limitFileCount">1</span>개</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number evdnc_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number evdnc_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="filewrap_div">
|
||||
<dt>원격연수 이수증</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" onclick="control4.openFileDialogSingle();" class="btnType01 rmtTrn_btn_add_file">원격연수 이수증 파일찾기</button>
|
||||
<c:if test="${info.rmtTrnAtchFileId != null && info.rmtTrnAtchFileId != ''}">
|
||||
<button type="button" id="control4DownBtn" onclick="control4.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
|
||||
</c:if>
|
||||
</div>
|
||||
<div id="rmttrn"></div><br/>
|
||||
<div class="file_cf">
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="rmtTrn_limitFileCount">1</span>개</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number rmtTrn_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number rmtTrn_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left"></div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btnType06" onclick="fncSave();">결과제출</button>
|
||||
<button type="button" class="btnType06" onclick="fncTmprrSave();">임시저장</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<div id="fileControl5" style="display:none"></div>
|
||||
<button type="button" class="btnType02 m_btn_block" onclick="fncGoList();">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -0,0 +1,965 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" />
|
||||
<% pageContext.setAttribute("replaceChar", "\n"); %>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
|
||||
<style>
|
||||
input:disabled {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
input:read-only {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
$( document ).ready(function(){
|
||||
|
||||
// 원본 결과보고
|
||||
$(".orgnl_btn_add_file").on('click', function(){
|
||||
$("#orgnl_file_temp").click();
|
||||
});
|
||||
|
||||
$(document).on("drop",".orgnl_file_drop",function(e){
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var objDragAndDrop = $(".orgnl_file_drop");
|
||||
orgnlFileUpload(files,objDragAndDrop); //파일업로드
|
||||
});
|
||||
$(function(){ //단일 파일업로드
|
||||
$('#orgnl_file_temp').change(function(e){
|
||||
var objUpload = $(".upload_area");
|
||||
var files = $('#orgnl_file_temp')[0].files;
|
||||
orgnlFileUpload(files,objUpload); //파일업로드
|
||||
if($("#orgnl_file_temp").length > 0){
|
||||
$("#orgnl_file_temp").val(""); //파일지우기
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//첨부파일 영역 hide 처리
|
||||
drawUploadArea();
|
||||
});
|
||||
var _orgnFileIdx = 0;
|
||||
var _orgnFileForm = new Array();
|
||||
function orgnlFileUpload(files,obj) //업로드 function
|
||||
{
|
||||
var limitsize = 100*1024*1024; //파일 제한 체크(10개, 100MB)
|
||||
var limitcount = $("input[name=orgnl_limitcount]").val()*1 ;
|
||||
var allrowFileExtsn = $("input[name=orgnl_allrowFileExtsn]").val();
|
||||
|
||||
if($('#orgnl_tbody_fiielist').find('tr').length + files.length > limitcount ){
|
||||
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 100MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
if(allrowFileExtsn != undefined && allrowFileExtsn != ""){
|
||||
if(allrowFileExtsn.toLowerCase().indexOf(files[i].name.split(".")[1].toLowerCase()) < 0 ){
|
||||
alert(allrowFileExtsn.toUpperCase() +" 파일 형식만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _orgnFileIdx;
|
||||
tmpObj.type = "orgn";
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_orgnFileForm.push(tmpObj);
|
||||
orgnlSendFileToServer(fd, obj, files[i], _orgnFileIdx);
|
||||
_orgnFileIdx++;
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.orgnl_totalfileCount').text($('.orgnl_item_file_size').length);
|
||||
$('.orgnl_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.orgnl_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
|
||||
function orgnlSendFileToServer(formData, obj , fileObj, _orgnFileIdx)
|
||||
{
|
||||
$('.orgnl_no_img_box').hide(); //list 박스 형식 변경
|
||||
$('.orgnl_file_list_div').show();
|
||||
var list_html = "";
|
||||
var tt = "";
|
||||
|
||||
var fileNm = fileObj.name;
|
||||
var fileExt = fileNm.split('.').pop().toLowerCase();
|
||||
|
||||
list_html += '<tr class="item_'+tt+' uploaded_obj">';
|
||||
|
||||
list_html += '<td class="td_filename file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filesort file_extension"><span class="file_filesort_text" value='+fileExt+'>.'+fileExt+'</span></td>';
|
||||
list_html += '<td class="td_filesize file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
|
||||
|
||||
list_html += '<td class="file_del"><button type="button" class="btn_del" onclick="orgnlDelete_item(this, '+_orgnFileIdx+')" title="';
|
||||
list_html += fileObj.name;
|
||||
list_html += ' 삭제"><i></i></button></td>';
|
||||
list_html += '<input type="hidden" name="fileSize" class="orgnl_item_file_size" value="'+fileObj.size+'">';
|
||||
list_html += '</tr>';
|
||||
$('#orgnl_tbody_fiielist').append(list_html);
|
||||
}
|
||||
|
||||
/* 삭제버튼 클릭시 */
|
||||
function orgnlDelete_item(obj, fileIdx){
|
||||
$(obj).closest("tr").remove();
|
||||
_orgnFileForm.forEach(function(fobj, idx) {
|
||||
if (fobj.name == ("file_" + fileIdx)) _orgnFileForm[idx] = "";
|
||||
});
|
||||
|
||||
if($('.orgnl_item_file_size').length == 0){
|
||||
$('.orgnl_no_img_box').show();
|
||||
$('.orgnl_file_list_div').hide();
|
||||
var totalfileSize = 0;
|
||||
$('.orgnl_totalfileCount').text($('.orgnl_item_file_size').length) ;
|
||||
$('.orgnl_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.orgnl_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}else{
|
||||
var totalfileSize = 0;
|
||||
$('.orgnl_totalfileCount').text($('.orgnl_item_file_size').length) ;
|
||||
$('.orgnl_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.orgnl_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
_orgnFileIdx--;
|
||||
_orgnFileForm.splice(0,1);
|
||||
}
|
||||
|
||||
// 평가용 결과보고서 파일등록
|
||||
$( document ).ready(function(){
|
||||
// 평가용 결과보고
|
||||
$(".cpy_btn_add_file").on('click', function(){
|
||||
$("#cpy_file_temp").click();
|
||||
});
|
||||
|
||||
$(document).on("drop",".cpy_file_drop",function(e){
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var objDragAndDrop = $(".cpy_file_drop");
|
||||
cpyFileUpload(files,objDragAndDrop); //파일업로드
|
||||
});
|
||||
$(function(){ //단일 파일업로드
|
||||
$('#cpy_file_temp').change(function(e){
|
||||
var objUpload = $(".upload_area");
|
||||
var files = $('#cpy_file_temp')[0].files;
|
||||
cpyFileUpload(files,objUpload); //파일업로드
|
||||
if($("#cpy_file_temp").length > 0){
|
||||
$("#cpy_file_temp").val(""); //파일지우기
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
var _cpyFileIdx = 0;
|
||||
var _cpyFileForm = new Array();
|
||||
function cpyFileUpload(files,obj) //업로드 function
|
||||
{
|
||||
var limitsize = 100*1024*1024; //파일 제한 체크(10개, 100MB)
|
||||
var limitcount = $("input[name=cpy_limitcount]").val()*1 ;
|
||||
var allrowFileExtsn = $("input[name=cpy_allrowFileExtsn]").val();
|
||||
|
||||
if($('#cpy_tbody_fiielist').find('tr').length + files.length > limitcount ){
|
||||
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 100MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
if(allrowFileExtsn != undefined && allrowFileExtsn != ""){
|
||||
if(allrowFileExtsn.toLowerCase().indexOf(files[i].name.split(".")[1].toLowerCase()) < 0 ){
|
||||
alert(allrowFileExtsn.toUpperCase() +" 파일 형식만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _cpyFileIdx;
|
||||
tmpObj.type = "cpy";
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_cpyFileForm.push(tmpObj);
|
||||
cpySendFileToServer(fd, obj, files[i], _cpyFileIdx);
|
||||
_cpyFileIdx++;
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.cpy_totalfileCount').text($('.cpy_item_file_size').length) ;
|
||||
$('.cpy_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.cpy_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
|
||||
function cpySendFileToServer(formData, obj , fileObj, _cpyFileIdx)
|
||||
{
|
||||
$('.cpy_no_img_box').hide(); //list 박스 형식 변경
|
||||
$('.cpy_file_list_div').show();
|
||||
var list_html = "";
|
||||
var tt = "";
|
||||
|
||||
var fileNm = fileObj.name;
|
||||
var fileExt = fileNm.split('.').pop().toLowerCase();
|
||||
|
||||
list_html += '<tr class="item_'+tt+' uploaded_obj">';
|
||||
|
||||
list_html += '<td class="td_filename file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filesort file_extension"><span class="file_filesort_text" value='+fileExt+'>.'+fileExt+'</span></td>';
|
||||
list_html += '<td class="td_filesize file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
|
||||
|
||||
list_html += '<td class="file_del"><button type="button" class="btn_del" onclick="cpyDelete_item(this, '+_cpyFileIdx+')" title="';
|
||||
list_html += fileObj.name;
|
||||
list_html += ' 삭제"><i></i></button></td>';
|
||||
list_html += '<input type="hidden" name="fileSize" class="cpy_item_file_size" value="'+fileObj.size+'">';
|
||||
list_html += '</tr>';
|
||||
$('#cpy_tbody_fiielist').append(list_html);
|
||||
}
|
||||
|
||||
/* 삭제버튼 클릭시 */
|
||||
function cpyDelete_item(obj, fileIdx){
|
||||
$(obj).closest("tr").remove();
|
||||
_cpyFileForm.forEach(function(fobj, idx) {
|
||||
if (fobj.name == ("file_" + fileIdx)) _cpyFileForm[idx] = "";
|
||||
});
|
||||
|
||||
if($('.cpy_item_file_size').length == 0){
|
||||
$('.cpy_no_img_box ').show();
|
||||
$('.cpy_file_list_div').hide();
|
||||
var totalfileSize = 0;
|
||||
$('.cpy_totalfileCount').text($('.cpy_item_file_size').length) ;
|
||||
$('.cpy_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.cpy_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}else{
|
||||
var totalfileSize = 0;
|
||||
$('.cpy_totalfileCount').text($('.cpy_item_file_size').length) ;
|
||||
$('.cpy_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.cpy_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
|
||||
_cpyFileIdx--;
|
||||
_cpyFileForm.splice(0,1);
|
||||
}
|
||||
|
||||
// 증빈사진 파일등록
|
||||
$( document ).ready(function(){
|
||||
// 증빙사진
|
||||
$(".evdnc_btn_add_file").on('click', function(){
|
||||
$("#evdnc_file_temp").click();
|
||||
});
|
||||
|
||||
$(document).on("drop",".evdnc_file_drop",function(e){
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var objDragAndDrop = $(".evdnc_file_drop");
|
||||
evdncFileUpload(files,objDragAndDrop); //파일업로드
|
||||
});
|
||||
$(function(){ //단일 파일업로드
|
||||
$('#evdnc_file_temp').change(function(e){
|
||||
var objUpload = $(".upload_area");
|
||||
var files = $('#evdnc_file_temp')[0].files;
|
||||
evdncFileUpload(files,objUpload); //파일업로드
|
||||
if($("#evdnc_file_temp").length > 0){
|
||||
$("#evdnc_file_temp").val(""); //파일지우기
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
var _evdncFileIdx = 0;
|
||||
var _evdncFileForm = new Array();
|
||||
function evdncFileUpload(files,obj) //업로드 function
|
||||
{
|
||||
var limitsize = 100*1024*1024; //파일 제한 체크(10개, 100MB)
|
||||
var limitcount = $("input[name=evdnc_limitcount]").val()*1 ;
|
||||
var allrowFileExtsn = $("input[name=evdnc_allrowFileExtsn]").val();
|
||||
|
||||
if($('#evdnc_tbody_fiielist').find('tr').length + files.length > limitcount ){
|
||||
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 100MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
if(allrowFileExtsn != undefined && allrowFileExtsn != ""){
|
||||
var _fileLen = files[i].name.length;
|
||||
var _lastDot = files[i].name.lastIndexOf('.')+1;
|
||||
if(allrowFileExtsn.toLowerCase().indexOf(files[i].name.substring(_lastDot, _fileLen).toLowerCase()) < 0 ){
|
||||
alert(allrowFileExtsn.toUpperCase() +" 파일 형식만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _evdncFileIdx;
|
||||
tmpObj.type = "evdnc";
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_evdncFileForm.push(tmpObj);
|
||||
evdncSendFileToServer(fd, obj, files[i], _evdncFileIdx);
|
||||
_evdncFileIdx++;
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.evdnc_totalfileCount').text($('.evdnc_item_file_size').length) ;
|
||||
$('.evdnc_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.evdnc_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
|
||||
function evdncSendFileToServer(formData, obj , fileObj, _evdncFileIdx)
|
||||
{
|
||||
|
||||
$('.evdnc_no_img_box').hide(); //list 박스 형식 변경
|
||||
$('.evdnc_file_list_div').show();
|
||||
var list_html = "";
|
||||
var tt = "";
|
||||
|
||||
var fileNm = fileObj.name;
|
||||
var fileExt = fileNm.split('.').pop().toLowerCase();
|
||||
|
||||
list_html += '<tr class="item_'+tt+' uploaded_obj">';
|
||||
|
||||
list_html += '<td class="td_filename file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filesort file_extension"><span class="file_filesort_text" value='+fileExt+'>.'+fileExt+'</span></td>';
|
||||
list_html += '<td class="td_filesize file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
|
||||
|
||||
list_html += '<td class="file_del"><button type="button" class="btn_del" onclick="evdncDelete_item(this, '+_evdncFileIdx+')" title="';
|
||||
list_html += fileObj.name;
|
||||
list_html += ' 삭제"><i></i></button></td>';
|
||||
list_html += '<input type="hidden" name="fileSize" class="evdnc_item_file_size" value="'+fileObj.size+'">';
|
||||
list_html += '</tr>';
|
||||
$('#evdnc_tbody_fiielist').append(list_html);
|
||||
}
|
||||
|
||||
/* 삭제버튼 클릭시 */
|
||||
function evdncDelete_item(obj, fileIdx){
|
||||
$(obj).closest("tr").remove();
|
||||
_evdncFileForm.forEach(function(fobj, idx) {
|
||||
if (fobj.name == ("file_" + fileIdx)) _evdncFileForm[idx] = "";
|
||||
});
|
||||
|
||||
if($('.evdnc_item_file_size').length == 0){
|
||||
$('.evdnc_no_img_box').show();
|
||||
$('.evdnc_file_list_div').hide();
|
||||
var totalfileSize = 0;
|
||||
$('.evdnc_totalfileCount').text($('.evdnc_item_file_size').length) ;
|
||||
$('.evdnc_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.evdnc_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}else{
|
||||
var totalfileSize = 0;
|
||||
$('.evdnc_totalfileCount').text($('.evdnc_item_file_size').length) ;
|
||||
$('.evdnc_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.evdnc_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
_evdncFileIdx--;
|
||||
_evdncFileForm.splice(0,1);
|
||||
}
|
||||
|
||||
// 원격연수 이수증
|
||||
$( document ).ready(function(){
|
||||
// 원격연수
|
||||
$(".rmtTrn_btn_add_file").on('click', function(){
|
||||
$("#rmtTrn_file_temp").click();
|
||||
});
|
||||
|
||||
$(document).on("drop",".rmtTrn_file_drop",function(e){
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var objDragAndDrop = $(".rmtTrn_file_drop");
|
||||
rmtTrnFileUpload(files,objDragAndDrop); //파일업로드
|
||||
});
|
||||
$(function(){ //단일 파일업로드
|
||||
$('#rmtTrn_file_temp').change(function(e){
|
||||
var objUpload = $(".upload_area");
|
||||
var files = $('#rmtTrn_file_temp')[0].files;
|
||||
rmtTrnFileUpload(files,objUpload); //파일업로드
|
||||
if($("#rmtTrn_file_temp").length > 0){
|
||||
$("#rmtTrn_file_temp").val(""); //파일지우기
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
var _rmtTrnFileIdx = 0;
|
||||
var _rmtTrnFileForm = new Array();
|
||||
function rmtTrnFileUpload(files,obj) //업로드 function
|
||||
{
|
||||
var limitsize = 100*1024*1024; //파일 제한 체크(10개, 100MB)
|
||||
var limitcount = $("input[name=rmtTrn_limitcount]").val()*1 ;
|
||||
var allrowFileExtsn = $("input[name=rmtTrn_allrowFileExtsn]").val();
|
||||
|
||||
if($('#rmtTrn_tbody_fiielist').find('tr').length + files.length > limitcount ){
|
||||
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 100MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
if(allrowFileExtsn != undefined && allrowFileExtsn != ""){
|
||||
if(allrowFileExtsn.toLowerCase().indexOf(files[i].name.split(".")[1].toLowerCase()) < 0 ){
|
||||
alert(allrowFileExtsn.toUpperCase() +" 파일 형식만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _rmtTrnFileIdx;
|
||||
tmpObj.type = "rmtTrn";
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_rmtTrnFileForm.push(tmpObj);
|
||||
rmtTrnSendFileToServer(fd, obj, files[i], _rmtTrnFileIdx);
|
||||
_rmtTrnFileIdx++;
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.rmtTrn_totalfileCount').text($('.rmtTrn_item_file_size').length) ;
|
||||
$('.rmtTrn_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.rmtTrn_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
|
||||
function rmtTrnSendFileToServer(formData, obj , fileObj, _fileIdx)
|
||||
{
|
||||
$('.rmtTrn_no_img_box').hide(); //list 박스 형식 변경
|
||||
$('.rmtTrn_file_list_div').show();
|
||||
var list_html = "";
|
||||
var tt = "";
|
||||
|
||||
var fileNm = fileObj.name;
|
||||
var fileExt = fileNm.split('.').pop().toLowerCase();
|
||||
|
||||
list_html += '<tr class="item_'+tt+' uploaded_obj">';
|
||||
|
||||
list_html += '<td class="td_filename file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filesort file_extension"><span class="file_filesort_text" value='+fileExt+'>.'+fileExt+'</span></td>';
|
||||
list_html += '<td class="td_filesize file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
|
||||
|
||||
list_html += '<td class="file_del"><button type="button" class="btn_del" onclick="rmtTrnDelete_item(this, '+_fileIdx+')" title="';
|
||||
list_html += fileObj.name;
|
||||
list_html += ' 삭제"><i></i></button></td>';
|
||||
list_html += '<input type="hidden" name="fileSize" class="rmtTrn_item_file_size" value="'+fileObj.size+'">';
|
||||
list_html += '</tr>';
|
||||
$('#rmtTrn_tbody_fiielist').append(list_html);
|
||||
}
|
||||
|
||||
/* 삭제버튼 클릭시 */
|
||||
function rmtTrnDelete_item(obj, fileIdx){
|
||||
$(obj).closest("tr").remove();
|
||||
_rmtTrnFileForm.forEach(function(fobj, idx) {
|
||||
if (fobj.name == ("file_" + fileIdx)) _rmtTrnFileForm[idx] = "";
|
||||
});
|
||||
|
||||
if($('.rmtTrn_item_file_size').length == 0){
|
||||
$('.rmtTrn_no_img_box ').show();
|
||||
$('.rmtTrn_file_list_div').hide();
|
||||
var totalfileSize = 0;
|
||||
$('.rmtTrn_totalfileCount').text($('.rmtTrn_item_file_size').length) ;
|
||||
$('.rmtTrn_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.rmtTrn_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}else{
|
||||
var totalfileSize = 0;
|
||||
$('.rmtTrn_totalfileCount').text($('.rmtTrn_item_file_size').length) ;
|
||||
$('.rmtTrn_item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.rmtTrn_totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
_rmtTrnFileIdx --;
|
||||
_rmtTrnFileForm.splice(0,1);
|
||||
}
|
||||
|
||||
function fncGoList()
|
||||
{
|
||||
var linkForm = document.linkForm ;
|
||||
linkForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndDetail.do'/>";
|
||||
linkForm.submit();
|
||||
}
|
||||
|
||||
function fncSave(){
|
||||
var data = new FormData(document.getElementById("fileUploadForm"));
|
||||
if(_orgnFileForm.length == '0'){
|
||||
alert("원본 결과보고서를 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
_orgnFileForm.forEach(function(obj, idx) {
|
||||
if (obj) data.append("fileOrgn"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
if(_cpyFileForm.length == '0'){
|
||||
alert("평가용 결과보고서를 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
_cpyFileForm.forEach(function(obj, idx) {
|
||||
if (obj) data.append("fileCpy"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
if(_evdncFileForm.length == '0'){
|
||||
alert("증빙사진을 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
_evdncFileForm.forEach(function(obj, idx) {
|
||||
if (obj) data.append("fileEvdnc"+idx, obj.fileObj);
|
||||
});
|
||||
/*
|
||||
if(_rmtTrnFileForm.length == '0'){
|
||||
alert("원격연수 이수증을 첨부해주세요.")
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
_rmtTrnFileForm.forEach(function(obj, idx) {
|
||||
if (obj) data.append("fileRmtTrn"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
if(confirm("결과보고를 제출하시겠습니까?")){
|
||||
$.ajax({
|
||||
type: "POST"
|
||||
, enctype: 'multipart/form-data'
|
||||
, url: "${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndRsltAjax.do"
|
||||
, data: data
|
||||
, dataType:'json'
|
||||
, async: false
|
||||
, processData: false
|
||||
, contentType: false
|
||||
, cache: false
|
||||
, success: function (returnData, status) {
|
||||
if(status == 'success'){
|
||||
alert("등록 되었습니다.");
|
||||
fncGoList(); //현재 메인화면 이동
|
||||
} else if(status== 'fail'){
|
||||
alert("등록에 실패하였습니다.");
|
||||
}
|
||||
}
|
||||
, error: function (e) {
|
||||
alert("저장에 실패하였습니다."); console.log("ERROR : ", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" onsubmit="return false;" 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="searchStatus" value="<c:out value="${vEEduAplctVO.searchStatus}" />" />
|
||||
</form:form>
|
||||
|
||||
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
|
||||
</form:form>
|
||||
|
||||
<form id="fileUploadForm">
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
|
||||
</form>
|
||||
|
||||
<div class="cont_wrap" id="sub">
|
||||
<div class="cont_tit">
|
||||
<h2>결과보고</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>결과보고 정보</p>
|
||||
<span class="cf_text" style="font-size: 16px; font-weight: 400; color: #e40000;line-height: 1.5;margin-left:100px;"
|
||||
>※ 업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.
|
||||
<br/> 용량을 초과할 경우, 오류 발생으로 인해 업로드가 되지 않으니 유의하시기 바랍니다.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="exprnClsrmEndRslt_wrap">
|
||||
<dl class="filewrap_div">
|
||||
<dt><p class="req_text"><span>필수입력 항목</span>*</p>원본 결과보고서</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType01 orgnl_btn_add_file">원본 결과보고서 업로드</button>
|
||||
<input type="file" id="orgnl_file_temp" name="orgnl_file_temp" class="uploadFile" style="display:none"/>
|
||||
</div>
|
||||
<div class="file_wrap no_img_box orgnl_no_img_box">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before orgnl_file_drop">
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap file_list_div orgnl_file_list_div">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 100px;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody id="orgnl_tbody_fiielist" class="orgnl_tb_file_after tb_file_after">
|
||||
<c:forEach var="fileList" items="${fileList}" varStatus="status">
|
||||
<tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj">
|
||||
<input type="hidden" name="fileSize" class="orgnl_item_file_size" value="${fileList.fileSize}">
|
||||
<td class="td_filename">
|
||||
<span class="file_name_text">${fileList.orignlFileNm}</span>
|
||||
</td>
|
||||
<td class="td_filesort">
|
||||
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize">
|
||||
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" title="df" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_cf">
|
||||
<input type="hidden" name="orgnl_limitcount" id="orgnl_limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
|
||||
<input type="hidden" name="orgnl_allrowFileExtsn" id="orgnl_allrowFileExtsn" value="" /><!-- 허용 확장자 -->
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="orgnl_limitFileCount">1</span>개</p>
|
||||
<p><span>100MB</span>제한</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number orgnl_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number orgnl_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl class="filewrap_div">
|
||||
<dt><p class="req_text"><span>필수입력 항목</span>*</p>평가용 결과보고서</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType01 cpy_btn_add_file">평가용 결과보고서 업로드</button>
|
||||
<input type="file" id="cpy_file_temp" name="cpy_file_temp" class="uploadFile" style="display:none"/>
|
||||
</div>
|
||||
<div class="file_wrap no_img_box cpy_no_img_box">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before cpy_file_drop">
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap file_list_div cpy_file_list_div">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기, 삭제 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 100px;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody id="cpy_tbody_fiielist" class="cpy_tb_file_after tb_file_after">
|
||||
<c:forEach var="fileList" items="${fileList}" varStatus="status">
|
||||
<tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj">
|
||||
<input type="hidden" name="fileSize" class="cpy_item_file_size" value="${fileList.fileSize}">
|
||||
<td class="td_filename">
|
||||
<span class="file_name_text">${fileList.orignlFileNm}</span>
|
||||
</td>
|
||||
<td class="td_filesort">
|
||||
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize">
|
||||
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_cf">
|
||||
<input type="hidden" name="cpy_limitcount" id="cpy_limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
|
||||
<input type="hidden" name="cpy_allrowFileExtsn" id="cpy_allrowFileExtsn" value="" /><!-- 허용 확장자 -->
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="cpy_limitFileCount">1</span>개</p>
|
||||
<p><span>100MB</span>제한</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number cpy_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number cpy_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="filewrap_div">
|
||||
<dt><p class="req_text"><span>필수입력 항목</span>*</p>증빙사진</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType01 evdnc_btn_add_file">증빙 사진 업로드</button>
|
||||
<input type="file" id="evdnc_file_temp" name="evdnc_file_temp" class="uploadFile" style="display:none"/>
|
||||
</div>
|
||||
<div class="file_wrap no_img_box evdnc_no_img_box">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before evdnc_file_drop">
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap file_list_div evdnc_file_list_div">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기, 삭제 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 100px;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
<th>삭제</th>
|
||||
</thead>
|
||||
<tbody id="evdnc_tbody_fiielist" class="evdnc_tb_file_after tb_file_after">
|
||||
<c:forEach var="fileList" items="${fileList}" varStatus="status">
|
||||
<tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj">
|
||||
<input type="hidden" name="fileSize" class="evdnc_item_file_size" value="${fileList.fileSize}">
|
||||
<td class="td_filename">
|
||||
<span class="file_name_text">${fileList.orignlFileNm}</span>
|
||||
</td>
|
||||
<td class="td_filesort">
|
||||
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize">
|
||||
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_cf">
|
||||
<input type="hidden" name="evdnc_limitcount" id="evdnc_limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
|
||||
<input type="hidden" name="evdnc_allrowFileExtsn" id="evdnc_allrowFileExtsn" value="ZIP" /><!-- 허용 확장자 -->
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="evdnc_limitFileCount">1</span>개</p>
|
||||
<p><span>100MB</span>제한</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number evdnc_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number evdnc_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="filewrap_div">
|
||||
<dt>원격연수 이수증</dt>
|
||||
<dd>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType01 rmtTrn_btn_add_file">원격연수 이수증 업로드</button>
|
||||
<input type="file" id="rmtTrn_file_temp" name="rmtTrn_file_temp" class="uploadFile" style="display:none"/>
|
||||
</div>
|
||||
<div class="file_wrap no_img_box rmtTrn_no_img_box">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before rmtTrn_file_drop">
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap file_list_div rmtTrn_file_list_div">
|
||||
<table>
|
||||
<caption>첨부파일 파일명, 종류, 크기, 삭제 정보 제공</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 100px;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
<th>삭제</th>
|
||||
</thead>
|
||||
<tbody id="rmtTrn_tbody_fiielist" class="rmtTrn_tb_file_after tb_file_after">
|
||||
<c:forEach var="fileList" items="${fileList}" varStatus="status">
|
||||
<tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj">
|
||||
<input type="hidden" name="fileSize" class="rmtTrn_item_file_size" value="${fileList.fileSize}">
|
||||
<td class="td_filename">
|
||||
<span class="file_name_text">${fileList.orignlFileNm}</span>
|
||||
</td>
|
||||
<td class="td_filesort">
|
||||
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize">
|
||||
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_cf">
|
||||
<input type="hidden" name="rmtTrn_limitcount" id="rmtTrn_limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
|
||||
<input type="hidden" name="rmtTrn_allrowFileExtsn" id="rmtTrn_allrowFileExtsn" value="" /><!-- 허용 확장자 -->
|
||||
<div class="cf_left">
|
||||
<p>최대 <span class="rmtTrn_limitFileCount">1</span>개</p>
|
||||
<p><span>100MB</span>제한</p>
|
||||
</div>
|
||||
<div class="cf_right">
|
||||
<p>등록된 파일 <span class="upload_number rmtTrn_totalfileCount">0</span>개</p>
|
||||
<span class="upload_number rmtTrn_totalfileSize">0MB</span>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btnType06" onclick="fncSave();">결과제출</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType02 m_btn_block" onclick="fncGoList();">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -148,9 +148,9 @@
|
||||
</th>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty info.sbmtPnttm}">
|
||||
<fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/>
|
||||
<fmt:formatDate value="${sbmtPnttm}" pattern="20yy.MM.dd"/>
|
||||
<c:when test="${not empty info.sbmtPnttmDetail}">
|
||||
<fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy.MM.dd HH시 mm분"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
@ -164,7 +164,7 @@
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${not empty info.endPnttm}">
|
||||
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
@ -196,7 +196,7 @@
|
||||
<td colspan="3">
|
||||
<c:choose>
|
||||
<c:when test="${not empty info.endPnttm}">
|
||||
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
}
|
||||
|
||||
function openPop(){
|
||||
if(!checkAplctPsbl()) return;
|
||||
//if(!checkAplctPsbl()) return;
|
||||
|
||||
commonPopLayeropen(
|
||||
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/popup/cautionGuide.do"
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
}
|
||||
|
||||
function goWrite(){
|
||||
if(!checkAplctPsbl()) return;
|
||||
/* if(!checkAplctPsbl()) return; */
|
||||
|
||||
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do").submit();
|
||||
}
|
||||
@ -98,9 +98,9 @@
|
||||
<option ${vEEduAplctVO.searchStatus2 eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_10 ? 'selected' : ''} value="${VeConstants.APRVL_CD_10}">운영신청</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_70 ? 'selected' : ''} value="${VeConstants.APRVL_CD_70}">수정요청</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_80 ? 'selected' : ''} value="${VeConstants.APRVL_CD_80}">수정요청완료</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_60 ? 'selected' : ''} value="${VeConstants.APRVL_CD_60}">교육확정</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_90 ? 'selected' : ''} value="${VeConstants.APRVL_CD_90}">교육미확정</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_80 ? 'selected' : ''} value="${VeConstants.APRVL_CD_80}">수정완료</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_60 ? 'selected' : ''} value="${VeConstants.APRVL_CD_60}">운영확정</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.APRVL_CD_90 ? 'selected' : ''} value="${VeConstants.APRVL_CD_90}">운영미확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
@ -154,8 +154,8 @@
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
|
||||
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="20yy.MM.dd"/>
|
||||
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
|
||||
<%--<c:choose>
|
||||
<c:when test="${not empty list.rprtSbmtDt}">
|
||||
<fmt:parseDate value="${list.rprtSbmtDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
|
||||
@ -187,13 +187,13 @@
|
||||
<span class="app_status3">수정요청</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_80}">
|
||||
<span class="app_status3">수정요청완료</span>
|
||||
<span class="app_status3">수정완료</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60}">
|
||||
<span class="app_status1">교육확정</span>
|
||||
<span class="app_status1">운영확정</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_90}">
|
||||
<span class="app_status1">교육미확정</span>
|
||||
<span class="app_status1">운영미확정</span>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
@ -227,8 +227,8 @@
|
||||
<li>
|
||||
<span>접수종료일</span>
|
||||
<span>
|
||||
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="20yy.MM.dd"/>
|
||||
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
|
||||
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@ -107,7 +107,7 @@
|
||||
$(".tb_write").find("input[type=radio]:first-child").attr('checked',true);
|
||||
$(".addClassRowClsrm > tbody").find(">tr:gt(5)").remove();
|
||||
$("#agree").prop('checked',false);
|
||||
$("#agree1").prop('checked',false);
|
||||
/* $("#agree1").prop('checked',false); */
|
||||
$("input[name=onlnPrcsOrd]").prop('checked',false);
|
||||
|
||||
var fileVo = new Array();
|
||||
@ -234,9 +234,20 @@
|
||||
$('#exprnClsrnYear').val(arr);
|
||||
}
|
||||
|
||||
if($('#oprtnStrtDt').val() != null){
|
||||
$('#oprtnStrtDt').val($('#oprtnStrtDt').val().replace(/[.]/gi, ''));
|
||||
}
|
||||
if($('#oprtnEndDt').val() != null){
|
||||
$('#oprtnEndDt').val($('#oprtnEndDt').val().replace(/[.]/gi, ''));
|
||||
}
|
||||
//임시저장 데이터 불러왔을 시 duet-date-picker에서 날짜 input에 id를 넣어주지 않음
|
||||
if($('duet-date-picker[name=oprtnStrtDt]').val() != null){
|
||||
$('duet-date-picker[name=oprtnStrtDt]').val($('duet-date-picker[name=oprtnStrtDt]').val().replace(/[.]/gi, ''))
|
||||
}
|
||||
if($('duet-date-picker[name=oprtnEndDt]').val() != null){
|
||||
$('duet-date-picker[name=oprtnEndDt]').val($('duet-date-picker[name=oprtnEndDt]').val().replace(/[.]/gi, ''))
|
||||
}
|
||||
}
|
||||
|
||||
function validCheck(){
|
||||
|
||||
@ -382,8 +393,10 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
var oprtnStrtDt = $('#oprtnStrtDt').val();
|
||||
var oprtnEndDt = $('#oprtnEndDt').val();
|
||||
/* var oprtnStrtDt = $('#oprtnStrtDt').val();
|
||||
var oprtnEndDt = $('#oprtnEndDt').val(); */
|
||||
var oprtnStrtDt = $('duet-date-picker[name=oprtnStrtDt]').val();
|
||||
var oprtnEndDt = $('duet-date-picker[name=oprtnEndDt]').val();
|
||||
|
||||
oprtnStrtDt = oprtnStrtDt.replace(/[.]/gi, '');
|
||||
oprtnEndDt = oprtnEndDt.replace(/[.]/gi, '');
|
||||
@ -394,7 +407,8 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
var oprtnStrtDtDate = $('#oprtnStrtDt').val();
|
||||
/* var oprtnStrtDtDate = $('#oprtnStrtDt').val(); */
|
||||
var oprtnStrtDtDate = $('duet-date-picker[name=oprtnStrtDt]').val();
|
||||
var yyyy = oprtnStrtDtDate.substr(0,4);
|
||||
var mm = oprtnStrtDtDate.substr(5,2);
|
||||
var dd = oprtnStrtDtDate.substr(8,2);
|
||||
@ -417,10 +431,10 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#agree1").length > 0 && $('#agree1').val() != 'Y'){
|
||||
/* if($("#agree1").length > 0 && !$('#agree1').prop('checked')){
|
||||
alert('개인정보 이용 약관에 동의해주세요.');
|
||||
return false;
|
||||
}
|
||||
} */
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -501,7 +515,10 @@
|
||||
// cmpltNoFormat(document.getElementById('cmpltNum'));
|
||||
// }
|
||||
|
||||
$("#exprnClsrnCd").val(info.exprnClsrnCd);
|
||||
$('input[name=exprnClsrnCd][value='+info.exprnClsrnCd+']').prop('checked', true);
|
||||
if(info.exprnClsrnCd == '02'){
|
||||
$('input[name="eClsrnYear"]').attr('disabled',true);
|
||||
}
|
||||
$('input[name=eClsrnYear]').prop('checked',false);
|
||||
if(isNotEmpty(info.exprnClsrnYear)){
|
||||
var yearList = info.exprnClsrnYear.split(',');
|
||||
@ -510,7 +527,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
$("#exprnClsrnAplct").val(info.exprnClsrnAplct);
|
||||
$('input[name=exprnClsrnAplct][value='+info.exprnClsrnAplct+']').prop('checked', true);
|
||||
if(info.exprnClsrnAplct == '04'){
|
||||
$("#exprnClsrnAplctCn").prop('disabled' , false);
|
||||
$("#exprnClsrnAplctCn").val(info.exprnClsrnAplctCn);
|
||||
@ -524,11 +541,15 @@
|
||||
$("#trgtPrsnl").val(info.trgtPrsnl);
|
||||
|
||||
if(isNotEmpty(info.oprtnStrtDt)){
|
||||
$("#oprtnStrtDt").val(dateFormat(info.oprtnStrtDt.replace(/[.]/gi,''), 'date'));
|
||||
/* $("#oprtnStrtDt").val(dateFormat(info.oprtnStrtDt.replace(/[.]/gi,''), 'date')); */
|
||||
$('duet-date-picker[name=oprtnStrtDt]').val(dateFormat(info.oprtnStrtDt.replace(/[.]/gi,''), 'date'))
|
||||
$('#oprtnStrtDt').val(dateFormat(info.oprtnStrtDt.replace(/[.]/gi,''), 'date'));
|
||||
}
|
||||
|
||||
if(isNotEmpty(info.oprtnEndDt)){
|
||||
$("#oprtnEndDt").val(dateFormat(info.oprtnEndDt.replace(/[.]/gi,''), 'date'));
|
||||
/* $("#oprtnEndDt").val(dateFormat(info.oprtnEndDt.replace(/[.]/gi,''), 'date')); */
|
||||
$('duet-date-picker[name=oprtnEndDt]').val(dateFormat(info.oprtnEndDt.replace(/[.]/gi,''), 'date'))
|
||||
$('#oprtnEndDt').val(dateFormat(info.oprtnEndDt.replace(/[.]/gi,''), 'date'));
|
||||
}
|
||||
|
||||
$("#oprtnFileId").val(info.oprtnFileId);
|
||||
@ -536,6 +557,7 @@
|
||||
var fileTbody = $("#tbody_fiielist");
|
||||
$.each(fileList, function(idx, obj){
|
||||
var tr = $("<tr/>").addClass('item_'+obj.atchFileId+'_'+obj.fileSn).addClass('uploaded_obj');
|
||||
var hiddenInput = $('<input/>').attr('type', 'hidden').attr('name', 'fileSize').addClass('item_file_size').val(obj.fileSize);
|
||||
var td1 = $('<td/>').addClass('td_filename');
|
||||
var td2 = $('<td/>').addClass('td_filesort');
|
||||
var td3 = $('<td/>').addClass('td_filesize');
|
||||
@ -551,7 +573,7 @@
|
||||
td2.append(span2);
|
||||
td3.append(span3);
|
||||
td4.append(button);
|
||||
tr.append(td1).append(td2).append(td3).append(td4);
|
||||
tr.append(hiddenInput).append(td1).append(td2).append(td3).append(td4);
|
||||
fileTbody.append(tr);
|
||||
});
|
||||
if(fileList.length > 0){
|
||||
@ -593,6 +615,8 @@
|
||||
<input type="hidden" name="mode" id="mode" value="${modelVO.mode}" />
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
|
||||
<input type="hidden" name="oprtnFileId" id="oprtnFileId" value="${info.oprtnFileId}" />
|
||||
<input type="hidden" name="prcsOrd" id="prcsOrd" value="${detailVO.prcsAplctPrdOrd}" /> <!-- 교육과정신청기간 ID -->
|
||||
|
||||
|
||||
<div class="cont_tit">
|
||||
<h2>운영신청서 작성</h2>
|
||||
@ -1069,7 +1093,7 @@
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<div class="agree_wrap">
|
||||
<!-- <div class="agree_wrap">
|
||||
<div class="tb_tit01">
|
||||
<p>개인정보 이용 동의</p>
|
||||
</div>
|
||||
@ -1093,11 +1117,11 @@
|
||||
<div>
|
||||
<input type="checkbox" id="agree1" name="agree1" value="Y">
|
||||
<label for="agree1">위 사항에 동의합니다.</label>
|
||||
<input type="hidden" id="agreeError" name="agreeError"> <!-- IE에서 체크박스가 마지막에 있을 시 이상한 오류 발생. 오류 방지를 위해히든 하나 넣어둠 -->
|
||||
</div>
|
||||
<input type="hidden" id="agreeError" name="agreeError"> IE에서 체크박스가 마지막에 있을 시 이상한 오류 발생. 오류 방지를 위해히든 하나 넣어둠
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
|
||||
@ -31,11 +31,16 @@
|
||||
}
|
||||
|
||||
function goWrite(){
|
||||
location.href= "${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.do";
|
||||
var frm = document.getElementById("prcsOrdForm");
|
||||
frm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg.do'/>";
|
||||
frm.submit();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<form id="prcsOrdForm" name="prcsOrdForm">
|
||||
<input type="hidden" name="prcsOrd" id="prcsOrd" value="${detailVO.prcsAplctPrdOrd}" /> <!-- 교육과정신청기간 ID -->
|
||||
</form>
|
||||
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub40_pop01" data-focus="sub40_pop01" data-focus-prev="list_popup_close">
|
||||
<div class="popup_tit">
|
||||
<p>신청서 작성 안내</p> <button class="btn_popup_close tooltip-close" data-focus="list_popup_close" title="팝업 닫기"><i></i></button>
|
||||
@ -46,7 +51,12 @@
|
||||
<div class="info_box">
|
||||
<dl>
|
||||
<dt>알려드립니다</dt>
|
||||
<dd>2023년도 저작권 체험교실 운영 신청은 2023년 02월27(월) ~ 03월06일(월),<br>9:00 ~ 18:00에 진행되오니 많은 관심 부탁드립니다. 감사합니다.</dd>
|
||||
<c:if test="${detailVO.checkYn eq 'Y' }">
|
||||
<dd><c:out value='${nowYear}'/>년도 저작권 체험교실 운영 신청은 <c:out value='${detailVO.strtPnttm }'/> ~ <c:out value='${detailVO.endPnttm}'/>,<br>9:00 ~ 18:00에 진행되오니 많은 관심 부탁드립니다. 감사합니다.</dd>
|
||||
</c:if>
|
||||
<c:if test="${detailVO.checkYn ne 'Y' }">
|
||||
<dd><c:out value='${nowYear}'/>년도 저작권 체험교실 운영 신청은 <c:out value='${detailVO.strtPnttm }'/> ~ <c:out value='${detailVO.endPnttm}'/>,<br>9:00 ~ 18:00에 진행되었습니다.<br> 현재는 신청기간이 아니므로 찾아가는 저작권 교육을 이용하여 주시기 바랍니다. 감사합니다.</dd>
|
||||
</c:if>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="title">· 신청서 접수 시 유의사항</div>
|
||||
@ -69,7 +79,9 @@
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<c:if test="${detailVO.checkYn eq 'Y' }">
|
||||
<button type="button" class="btnType05" onclick="goWrite();">확인</button>
|
||||
</c:if>
|
||||
<button type="button" class="btnType02 tooltip-close" data-focus="list_popup_close" data-focus-next="sub40_pop01">취소</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
|
||||
@ -202,6 +202,12 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">상세교육과정</th>
|
||||
<td>
|
||||
<c:out value="${info.prcsCn }" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">정원</th>
|
||||
<td class="addPro_wrap">
|
||||
|
||||
@ -31,7 +31,17 @@ $(document).ready(function(){
|
||||
var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim());
|
||||
var currentDate = new Date();
|
||||
|
||||
// 시간, 분, 초 초기화
|
||||
strtPnttm.setHours(0, 0, 0, 0);
|
||||
endPnttm.setHours(0, 0, 0, 0);
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
|
||||
var ddlnCdText = '';
|
||||
|
||||
console.log('currentDate : ', currentDate);
|
||||
console.log('strtPnttm : ', strtPnttm);
|
||||
console.log('endPnttm : ', endPnttm);
|
||||
console.log('');
|
||||
if (currentDate < strtPnttm) {
|
||||
ddlnCdText = "접수전";
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
@ -59,7 +69,7 @@ $(document).ready(function(){
|
||||
|
||||
var data = new FormData(document.getElementById("regForm"));
|
||||
if(confirm("신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduRegAjax.do";
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/eduRegAjax.do";
|
||||
console.log(data);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
@ -86,7 +96,7 @@ $(document).ready(function(){
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
listForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -94,7 +104,7 @@ $(document).ready(function(){
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.do'/>";
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
@ -109,6 +119,19 @@ $(document).ready(function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
function fn_eduInquiry(){
|
||||
commonPopLayeropen(
|
||||
"${pageContext.request.contextPath}/web/ve/comm/popup/eduInquiryPopup.do"
|
||||
, 470
|
||||
, 464
|
||||
// , data
|
||||
, ""
|
||||
, "Y"
|
||||
, "eduInquiryPopup"
|
||||
);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
@ -220,17 +243,12 @@ $(document).ready(function(){
|
||||
</c:choose>
|
||||
</td>
|
||||
<td class="aplctBtn">
|
||||
<!-- <button type="button" class="btnType02" onclick="fncReset(this);">초기화</button> -->
|
||||
<button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');">신청</button>
|
||||
<%-- <button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');"><c:out value="${list.aprvlCd }" /></button> --%>
|
||||
</td>
|
||||
<!-- <td> -->
|
||||
<%-- <c:out value="${list.useYn}"/> --%>
|
||||
<!-- </td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -242,7 +260,7 @@ $(document).ready(function(){
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType01" onclick="goWrite()">교육문의(미개발)</button>
|
||||
<button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -0,0 +1,226 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
});
|
||||
|
||||
function fncEduReg(prcsAplctPrdOrd){
|
||||
var regForm = document.regForm;
|
||||
regForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
var data = new FormData(document.getElementById("regForm"));
|
||||
if(confirm("신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduRegAjax.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 linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function goEduAplctList(prcsAplctPrdOrd){
|
||||
var goEduAplctListForm = document.goEduAplctListForm ;
|
||||
goEduAplctListForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
goEduAplctListForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form name="regForm" id="regForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="viewForm" id="viewForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="goEduAplctListForm" id="goEduAplctListForm">
|
||||
</form>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
||||
<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" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>강의신청목록</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus" class="label">신청상태 선택</label>
|
||||
<select class="selType1" id="searchStatus" name="searchStatus">
|
||||
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_list01">
|
||||
<table>
|
||||
<caption>교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육기간</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td><kc:code codeId="VE0003" code="${list.aprvlCd}"/></td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</c:when>
|
||||
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<!-- <td>-</td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</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="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do" />'">강의목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
@ -7,6 +7,7 @@
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
@ -44,126 +45,77 @@
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
|
||||
<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" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>대시보드 (개발해야함)</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
<h2>기반강화연수 대시보드</h2>
|
||||
</div>
|
||||
<ul class="edu_process">
|
||||
<li class="edu_apply"><i></i><div class="text_area">신청중 강의<p><span><c:out value="${countMap['COUNT_APRVL_CD_10']}" /></span>건</p></div></li>
|
||||
<li class="edu_register"><i></i><div class="text_area">수강중 강의<p><span><c:out value="${countMap['COUNT_APRVL_CD_20']}" /></span>건</p></div></li>
|
||||
<li class="edu_close"><i></i><div class="text_area">종료된 강의<p><span><c:out value="${countMap['COUNT_END_CD']}" /></span>건</p></div></li>
|
||||
</ul>
|
||||
|
||||
<div class="tb_tit02">
|
||||
<div class="tb_tit02_left">
|
||||
<div class="t_best">최근 교육 목록</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus2" class="label">신청상태 선택</label>
|
||||
<select class="selType1" 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_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_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEEduAplctVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEEduAplctVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEEduAplctVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEEduAplctVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
<div class="btn_wrap1">
|
||||
<button type="button" title="최근 교육 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do" />'">더보기</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tb_list01">
|
||||
<div class="tb_list02">
|
||||
<table>
|
||||
<caption>최근 교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 18%;">
|
||||
<col style="width: 15%">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width:35%;">
|
||||
<col style="width:;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</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>
|
||||
<th>교육과정</th>
|
||||
<th>교육기간</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
|
||||
<tr>
|
||||
<%-- <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> --%>
|
||||
<td>
|
||||
<c:out value='${list.rowNo}'/>
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td><kc:code codeId="VE0003" code="${list.aprvlCd}"/></td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<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 test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<ve:code codeId="VE0012" code="${list.insttDivCd}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<c:out value='${list.insttNm}'/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<ve:code codeId="VE0007" code="${list.eduSlctCd}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
|
||||
<span class="app_status1">교육신청</span>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</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">수정요청</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDT_CMPT}">
|
||||
<span class="app_status3">수정완료</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDU_SELCT}">
|
||||
<span class="app_status1">교육확정</span>
|
||||
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
@ -179,92 +131,5 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="tb_list01_m">
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<ul onclick="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<li>
|
||||
<span>번호</span>
|
||||
<span><c:out value='${list.rowNo}'/></span>
|
||||
</li>
|
||||
<li>
|
||||
<span>교육희망일</span>
|
||||
<span>
|
||||
<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>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>기관구분</span>
|
||||
<span><ve:code codeId="VE0012" code="${list.insttDivCd}"/></span>
|
||||
</li>
|
||||
<li>
|
||||
<span>기관(단체)명</span>
|
||||
<span><c:out value='${list.insttNm}'/></span>
|
||||
</li>
|
||||
<li>
|
||||
<span>신청유형</span>
|
||||
<span><ve:code codeId="VE0007" code="${list.eduSlctCd}"/></span>
|
||||
</li>
|
||||
<li>
|
||||
<span>신청상태</span>
|
||||
<span>
|
||||
<span class="app_status1">
|
||||
<c:choose>
|
||||
<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">수정요청</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDT_CMPT}">
|
||||
<span class="app_status3">수정완료</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>
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</c:forEach>
|
||||
</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="btnType04" onclick="goWrite()">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<%-- <div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div> --%>
|
||||
</form:form>
|
||||
</div>
|
||||
@ -0,0 +1,227 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ 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"); %>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
|
||||
<style>
|
||||
input:disabled {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
input:read-only {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
// 상태값 확인
|
||||
ddlnCdSttsChk();
|
||||
|
||||
|
||||
});
|
||||
|
||||
function ddlnCdSttsChk(){
|
||||
var $ddlnCdStts = $("#ddlnCdStts");
|
||||
|
||||
// 텍스트가 비어있는지 확인
|
||||
if ($ddlnCdStts.text().trim() === "") {
|
||||
var dateText = $ddlnCdStts.closest('table').find("td:eq(2)").text().trim();
|
||||
|
||||
var strtPnttm = new Date(dateText.split("~")[0].trim().replace(/\./g, '-'));
|
||||
var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-'));
|
||||
var currentDate = new Date();
|
||||
|
||||
if (currentDate < strtPnttm) {
|
||||
$ddlnCdStts.text("접수전");
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
$ddlnCdStts.text("접수중");
|
||||
} else if (currentDate > endPnttm) {
|
||||
$ddlnCdStts.text("접수종료");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoEdit(){
|
||||
var linkForm = document.linkForm ;
|
||||
linkForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctMdfy.do'/>";
|
||||
linkForm.submit();
|
||||
}
|
||||
|
||||
function fncSendSubmit(){
|
||||
if(confirm("제출 하시겠습니까?")){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctStatusAjax.do",
|
||||
data: {
|
||||
"eduAplctOrd" : $("#eduAplctOrd").val() ,
|
||||
"sbmtYn" : 'Y',
|
||||
"aprvlCd" : VeConstants.APRVL_CD_80,
|
||||
},
|
||||
dataType:'json',
|
||||
success:function(returnData){
|
||||
if(returnData.rsCnt > 0){
|
||||
alert("제출 되었습니다.");
|
||||
fncGoDetail();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function fncCancleSubmit(){
|
||||
if(confirm("교육신청 취소하시겠습니까?")){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/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 fncGoDetail(){
|
||||
var linkForm = document.linkForm ;
|
||||
linkForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do'/>";
|
||||
linkForm.submit();
|
||||
}
|
||||
|
||||
function chrgInfoUpdatePop(){
|
||||
commonPopLayeropen(
|
||||
"${pageContext.request.contextPath}/web/ve/comm/popup/chrgInfoUpdatePop.do"
|
||||
, 650
|
||||
, 464
|
||||
, {'eduAplctOrd' : $("#eduAplctOrd").val()}
|
||||
, "Y"
|
||||
, "chrgInfoUpdatePop"
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<div class="cont_wrap" id="sub">
|
||||
<div class="cont_tit">
|
||||
<h2>교육신청 상세</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tit_box">
|
||||
<i class="tit_box_icon1"></i>
|
||||
<div>
|
||||
<p>찾아가는 저작권 교육</p>
|
||||
<span>
|
||||
‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>공공기관, 대학, 문화예술단체 등을 </span>대상으로 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.
|
||||
<p style="font-weight:400;color:red;font-size:17px;padding-top:10px;">담당자 연락처) 02-2669-0083</p>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>교육신청 내용</p>
|
||||
</div>
|
||||
<%--
|
||||
<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType06" onclick="chrgInfoUpdatePop();">담당자 정보 수정</button>
|
||||
</div>
|
||||
</c:if>
|
||||
--%>
|
||||
</div>
|
||||
<div class="tb_type01 tb_write">
|
||||
<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:code codeId="VEA001" code="${info.prcsDiv}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">과정</th>
|
||||
<td>
|
||||
<c:out value="${info.prcsNm}"/>
|
||||
|
||||
</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 class="addPro_wrap">
|
||||
<c:out value="${info.eduPlace}"/>
|
||||
</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>
|
||||
<c:out value="${info.prcsCn }" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">정원</th>
|
||||
<td class="addPro_wrap">
|
||||
<c:out value="${info.nos}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">상태</th>
|
||||
<td id="ddlnCdStts">
|
||||
<ve:code codeId="VEA004" code="${info.ddlnCd}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -0,0 +1,303 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
$(".aplctBtn button").click(function(){
|
||||
var regForm = document.regForm;
|
||||
regForm.prcsAplctPrdOrd.value = $(this).data('info');
|
||||
});
|
||||
// 상태값 확인
|
||||
$(".ddlnCdStts").each(function() {
|
||||
var $thisCell = $(this);
|
||||
var $applyButton = $thisCell.closest('tr').find(".aplctBtn button");
|
||||
// var $aprvlCd = $thisCell.closest('tr').find(".aplctBtn input");
|
||||
|
||||
// 텍스트가 비어있는지 확인
|
||||
if ($thisCell.text().trim() === "") {
|
||||
var $currentRow = $thisCell.closest('tr');
|
||||
|
||||
var strtPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[0].trim());
|
||||
var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim());
|
||||
var currentDate = new Date();
|
||||
|
||||
// 시간, 분, 초 초기화
|
||||
strtPnttm.setHours(0, 0, 0, 0);
|
||||
endPnttm.setHours(0, 0, 0, 0);
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
|
||||
var ddlnCdText = '';
|
||||
|
||||
console.log('currentDate : ', currentDate);
|
||||
console.log('strtPnttm : ', strtPnttm);
|
||||
console.log('endPnttm : ', endPnttm);
|
||||
console.log('');
|
||||
if (currentDate < strtPnttm) {
|
||||
ddlnCdText = "접수전";
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
ddlnCdText = "접수중";
|
||||
} else if (currentDate > endPnttm) {
|
||||
ddlnCdText = "접수종료";
|
||||
}
|
||||
|
||||
$thisCell.text(ddlnCdText);
|
||||
|
||||
}
|
||||
|
||||
// 텍스트가 "접수중"인지 확인
|
||||
if ($thisCell.text().trim() !== "접수중") {
|
||||
$applyButton.prop('disabled', true); // 버튼 비활성화
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
function fncEduReg(prcsAplctPrdOrd){
|
||||
var regForm = document.regForm;
|
||||
regForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
var data = new FormData(document.getElementById("regForm"));
|
||||
if(confirm("신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/eduRegAjax.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 linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
function fn_eduInquiry(){
|
||||
commonPopLayeropen(
|
||||
"${pageContext.request.contextPath}/web/ve/comm/popup/eduInquiryPopup.do"
|
||||
, 470
|
||||
, 464
|
||||
// , data
|
||||
, ""
|
||||
, "Y"
|
||||
, "eduInquiryPopup"
|
||||
);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form name="regForm" id="regForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="viewForm" id="viewForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
|
||||
<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" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>교육신청목록</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus2" class="label">신청상태 선택</label>
|
||||
<select class="selType1" 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_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_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEEduAplctVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEEduAplctVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEEduAplctVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEEduAplctVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_list01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<%-- <col style="width: 5%"> --%>
|
||||
<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>
|
||||
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
|
||||
</td>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
|
||||
</td>
|
||||
<td class="ddlnCdStts">
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.aprvlCd}">
|
||||
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td class="aplctBtn">
|
||||
<%-- <button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');">신청</button> --%>
|
||||
<button type="button" class="btnType04" data-info="<c:out value="${list.prcsAplctPrdOrd}"/>" data-tooltip="reg_search" >신청</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</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="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 신청 클릭 > 기소유예 대상자 확인 팝업 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="reg_search" data-focus="reg_search"
|
||||
data-focus-prev="reg_search_close">
|
||||
<div class="popup_tit">
|
||||
<p>교육대상자 확인</p> <button class="btn_popup_close tooltip-close" data-focus="reg_search_close"
|
||||
title="팝업 닫기"><i></i></button>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<p class="text_greeting">안녕하세요.</br>한국저작권위원회입니다.</p>
|
||||
<div class="popup_texta"><textarea placeholder="문의내용을 입력해 주세요."></textarea></div>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btnType05">문의하기</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
|
||||
@ -0,0 +1,226 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
});
|
||||
|
||||
function fncEduReg(prcsAplctPrdOrd){
|
||||
var regForm = document.regForm;
|
||||
regForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
var data = new FormData(document.getElementById("regForm"));
|
||||
if(confirm("신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduRegAjax.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 linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function goEduAplctList(prcsAplctPrdOrd){
|
||||
var goEduAplctListForm = document.goEduAplctListForm ;
|
||||
goEduAplctListForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
goEduAplctListForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form name="regForm" id="regForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="viewForm" id="viewForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="goEduAplctListForm" id="goEduAplctListForm">
|
||||
</form>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
||||
<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" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>나의 강의 신청목록</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus" class="label">신청상태 선택</label>
|
||||
<select class="selType1" id="searchStatus" name="searchStatus">
|
||||
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_list01">
|
||||
<table>
|
||||
<caption>교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육기간</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td><kc:code codeId="VE0003" code="${list.aprvlCd}"/></td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</c:when>
|
||||
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<!-- <td>-</td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</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="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do" />'">강의목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
137
src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/main.jsp
Normal file
137
src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/main.jsp
Normal file
@ -0,0 +1,137 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function goWrite(){
|
||||
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg.do").submit();
|
||||
}
|
||||
|
||||
function fncGoDetail(eduAplctOrd){
|
||||
var listForm = document.listForm ;
|
||||
listForm.eduAplctOrd.value = eduAplctOrd ;
|
||||
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do").submit();
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
|
||||
<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" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>기소유예 대시보드</h2>
|
||||
</div>
|
||||
<ul class="edu_process">
|
||||
<li class="edu_apply"><i></i><div class="text_area">신청중 강의<p><span><c:out value="${countMap['COUNT_APRVL_CD_10']}" /></span>건</p></div></li>
|
||||
<li class="edu_register"><i></i><div class="text_area">수강중 강의<p><span><c:out value="${countMap['COUNT_APRVL_CD_20']}" /></span>건</p></div></li>
|
||||
<li class="edu_close"><i></i><div class="text_area">종료된 강의<p><span><c:out value="${countMap['COUNT_END_CD']}" /></span>건</p></div></li>
|
||||
</ul>
|
||||
|
||||
<div class="tb_tit02">
|
||||
<div class="tb_tit02_left">
|
||||
<div class="t_best">최근 교육 목록</div>
|
||||
</div>
|
||||
<div class="btn_wrap1">
|
||||
<button type="button" title="최근 교육 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do"/>'">더보기</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tb_list02">
|
||||
<table>
|
||||
<caption>최근 교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육기간</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<%-- <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> --%>
|
||||
<td>
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td><kc:code codeId="VE0003" code="${list.aprvlCd}"/></td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</c:when>
|
||||
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
@ -0,0 +1,226 @@
|
||||
<%@ page contentType="text/html; charset=utf-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ 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" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
});
|
||||
|
||||
function fncEduReg(prcsAplctPrdOrd){
|
||||
var regForm = document.regForm;
|
||||
regForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
var data = new FormData(document.getElementById("regForm"));
|
||||
if(confirm("신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduRegAjax.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 linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function goEduAplctList(prcsAplctPrdOrd){
|
||||
var goEduAplctListForm = document.goEduAplctListForm ;
|
||||
goEduAplctListForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
|
||||
goEduAplctListForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form name="regForm" id="regForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="viewForm" id="viewForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="goEduAplctListForm" id="goEduAplctListForm">
|
||||
</form>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
||||
<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" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>강의신청목록</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus" class="label">신청상태 선택</label>
|
||||
<select class="selType1" id="searchStatus" name="searchStatus">
|
||||
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_list01">
|
||||
<table>
|
||||
<caption>교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육기간</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
|
||||
</td>
|
||||
<td><kc:code codeId="VE0003" code="${list.aprvlCd}"/></td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</c:when>
|
||||
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<!-- <td>-</td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</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="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/eduAplctList.do" />'">강의목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
166
src/main/webapp/WEB-INF/jsp/web/ve/comm/eduInquiryPopup.jsp
Normal file
166
src/main/webapp/WEB-INF/jsp/web/ve/comm/eduInquiryPopup.jsp
Normal file
@ -0,0 +1,166 @@
|
||||
<%@ 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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ 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="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
boardCaptionDetailToggle4();
|
||||
|
||||
// 레이어팝업 포커싱 이동 수정
|
||||
$(".tooltip-close").click(function(){
|
||||
$('[data-tooltip="sub01_pop01"]').focus();
|
||||
});
|
||||
|
||||
//레이어팝업 초정 이동 시 필요한 data 값 추가
|
||||
var btnLast = $('.popup_cont').find('.page').find('button:last-child');
|
||||
btnLast.attr('data-focus-next','sub01_pop01');
|
||||
btnLast.attr('data-focus','sub01_pop01_close');
|
||||
|
||||
});
|
||||
|
||||
function fncClose() {
|
||||
window.close();
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
var data = {'lctrDivCd' : '${vEEduAplctVO.lctrDivCd}', 'pageUnit' : 5, 'pageIndex': pageNo , 'sbmtYn' : 'N'};
|
||||
searchBeforeData(data);
|
||||
}
|
||||
|
||||
function fcnCallData(eduAplctOrd){
|
||||
if(confirm("선택하신 데이터로 변경하시겠습니까?")){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"<c:url value='/web/ve/comm/dataCallAjax.do'/>",
|
||||
data: {"eduAplctOrd" : eduAplctOrd, 'lctrDivCd' :'${vEEduAplctVO.lctrDivCd}' },
|
||||
dataType:'json',
|
||||
success:function(returnData){
|
||||
if(returnData.result == 'success'){
|
||||
var rsData = new Object();
|
||||
rsData.info = returnData.info;
|
||||
rsData.list = returnData.list;
|
||||
rsData.chasiList = returnData.chasiList;
|
||||
rsData.fileList = returnData.fileList;
|
||||
rsData.fileListCnt = returnData.fileListCnt;
|
||||
callDataSetting(rsData);
|
||||
$('button[data-focus=list_popup_close]').trigger('click');
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
|
||||
<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="searchStatus" value="<c:out value="${vEEduAplctVO.searchStatus}" />" />
|
||||
</form:form>
|
||||
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="sub01_pop01" data-focus="sub01_pop01" data-focus-prev="sub01_pop01_close">
|
||||
<div class="popup_tit">
|
||||
<p>이전 교육신청 목록</p>
|
||||
<button class="btn_popup_close tooltip-close" data-focus="list_popup_close" title="팝업 닫기"><i></i></button>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<div class="cont_body">
|
||||
<div class="pop_tb_type02">
|
||||
<table>
|
||||
<caption>이전 교육신청 목록 교육구분, 신청일, 선택 을/를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width: calc(100%/3);">
|
||||
<col style="width: calc(100%/3);">
|
||||
<col style="width: calc(100%/3);">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<c:choose>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
|
||||
<th scope="col">담당교과</th>
|
||||
</c:when>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
|
||||
<th scope="col">구분</th>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<th scope="col">교육구분</th>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<c:choose>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
|
||||
<th scope="col">성명</th>
|
||||
</c:when>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
|
||||
<th scope="col">교사명</th>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<th scope="col">신청일</th>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<th scope="col">선택</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<c:choose>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
|
||||
${list.chrgMjr}
|
||||
</c:when>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
|
||||
<kc:code codeId="VE0012" code="${list.insttDivCd}"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<kc:code codeId="VE0007" code="${list.eduSlctCd}"/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</th>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
|
||||
${list.fullName}
|
||||
</c:when>
|
||||
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
|
||||
${list.chrgNm}
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<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>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td><button type="button" class="btnType01" onclick="fcnCallData('${list.eduAplctOrd}');">선택</button></td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${fn:length(list) eq 0}">
|
||||
<tr>
|
||||
<td colspan="3"><spring:message code="common.nodata.msg" /></td>
|
||||
</tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- <div class="page"> -->
|
||||
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -19,7 +19,72 @@
|
||||
<url-pattern>*.do</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
|
||||
<!-- CORS -->
|
||||
<filter>
|
||||
<filter-name>CORS</filter-name>
|
||||
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>cors.allowed.origins</param-name>
|
||||
<param-value>*</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.allowed.methods</param-name>
|
||||
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.allowed.headers</param-name>
|
||||
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.exposed.headers</param-name>
|
||||
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.support.credentials</param-name>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.preflight.maxage</param-name>
|
||||
<param-value>10</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>CORS</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
<filter>
|
||||
<filter-name>CorsFilter</filter-name>
|
||||
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>cors.allowed.origins</param-name>
|
||||
<param-value>*</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.allowed.methods</param-name>
|
||||
<param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.allowed.headers</param-name>
|
||||
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.exposed.headers</param-name>
|
||||
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<!-- 쿠키 통신을 안하는데 이걸 true로 하면 4XX 서버 에러가 뜬다 -->
|
||||
<param-name>cors.support.credentials</param-name>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>cors.preflight.maxage</param-name>
|
||||
<param-value>10</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>CorsFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- 템플릿 소스에서는 아래의 필터사용 대신 JSP 출력시 <c:out> 태그를 사용하는 것을 기본정책으로 한다 -->
|
||||
<!-- egovframework.rte.ptl.mvc.filter.HTMLTagFilter kcc.com.cmm.filter.HTMLTagFilter-->
|
||||
|
||||
@ -269,7 +269,8 @@ function delAtchFile(itemId , fileSn){
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/offeduadvc/uss/ion/fms/fmsfileDeleteAjax.do",
|
||||
/*url: "/offeduadvc/uss/ion/fms/fmsfileDeleteAjax.do",*/
|
||||
url: "/offeduadvc/web/fms/fmsfileDeleteAjax.do",
|
||||
data:{ "atchFileId" : itemId , "fileSn" : fileSn},
|
||||
dataType:'json',
|
||||
cache: false,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user