강사 기반 상세 진행중

This commit is contained in:
hylee 2023-10-17 15:36:00 +09:00
parent 988c3dc727
commit cf0583ef84
15 changed files with 2900 additions and 1 deletions

View File

@ -0,0 +1,633 @@
package kcc.ve.instr.fndtnVisitEdu.asgnmInfo.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.IpUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiVO;
@Controller
public class VEFndtnAsgnmController {
// eGov 공통 메세지
@Resource(name = "egovMessageSource")
EgovMessageSource egovMessageSource;
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//과정차시 관리
@Resource(name = "vEAPrcsAplctPrdInstrAsgnmService")
private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService;
//배정 MIX 정보
@Resource(name="vEAsgnmMIXService")
private VEAsgnmMIXService vEAsgnmMIXService;
//과정차시 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
// 기반강화 강의목록(확정)
@RequestMapping("/web/ve/instr/fndtnVisitEdu/asgnmInfo/instrAsgnmList.do")
public String instrAsgnmList(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
model.addAttribute("ssoLoginVO", ssoLoginVO);
model.addAttribute("loginVO", loginVO);
//로그인 처리====================================
//3.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//4. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
vEPrcsDetailVO.setInstrDiv("20");
vEPrcsDetailVO.setAprvlCd("20");
vEPrcsDetailVO.setSearchDiv("ING"); // 강의내역 END 종료내역
try {
// System.out.println("session.getAttribute(menuNo).toString()");
// System.out.println(session.getAttribute("menuNo").toString());
// vEPrcsDetailVO.setMenuNo(session.getAttribute("menuNo").toString());
}catch(Exception ex) {
ex.printStackTrace();
}
//
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEAsgnmMIXService.selectFndtnVisitAsgnmPagingList(vEPrcsDetailVO);
//6.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList);
return "/web/ve/instr/fndtnVisitEdu/asgnmInfo/instrAsgnmList";
}
// 기반강화 강의목록(확정) > 상세
@RequestMapping("/web/ve/instr/fndtnVisitEdu/asgnmInfo/instrAsgnmDetail.do")
public String instrAsgnmDetail(
@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) {
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
model.addAttribute("ssoLoginVO", ssoLoginVO);
model.addAttribute("loginVO", loginVO);
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
//과정 신청자 정보 가져오기
{
//해당 과정을 제출한 사용자 정보를 가져온다.
VEEduAplctVO paramVO = new VEEduAplctVO();
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.decryptVeEduAplctList(vEPrcsDetailVOList);
System.out.println("====");
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
// 신청자 반려 승인 요청 신청자 모두 포함
vEPrcsDetailVODetail.setNosCnt1(Integer.toString(vEPrcsDetailVOList.size()));
}
// 과정 조회 set
model.addAttribute("info", vEPrcsDetailVODetail);
// 강사 배치 정보
{
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
List<VEAPrcsAplctPrdInstrAsgnmVO> instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList);
model.addAttribute("instrAsgnmList", instrAsgnmList);
}
return "/web/ve/instr/fndtnVisitEdu/asgnmInfo/instrAsgnmDetail";
}
//성인강사 강의 요청 상세
/*@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstDetail.do")
public String instrAsgnmRqstDetail(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
model.addAttribute("ssoLoginVO", ssoLoginVO);
model.addAttribute("loginVO", loginVO);
//로그인 처리====================================
VEInstrAsgnmVO vEInstrAsgnmVOInfo = vEAsgnmMIXService.selectAsgnmRqstDetail(vEInstrAsgnmVO);
vEInstrAsgnmVOInfo = egovCryptoUtil.decryptVEInstrAsgnmVO(vEInstrAsgnmVOInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("info", vEInstrAsgnmVOInfo);
//사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectTngrPrcsList(vEPrcsDetailVO);
model.addAttribute("eduList", vEPrcsDetailVOList);
//강사료
VEInstrFeeAcmdtVO instrFee = new VEInstrFeeAcmdtVO();
instrFee.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
instrFee.setEduChasiOrd(vEInstrAsgnmVO.getEduChasiOrd());
instrFee = vEInstrFeeService.selectDetail(instrFee);
//강사료 제외 합계
int instrFeeSum = Integer.parseInt(instrFee.getSpecialWorkAllow())
+ Integer.parseInt(instrFee.getDistanceAllow())
+ Integer.parseInt(instrFee.getTrafficFee())
+ Integer.parseInt(instrFee.getAcmdtFee());
instrFee.setInstrFeeSum(instrFeeSum);
model.addAttribute("instrFee", instrFee);
//20220222 우영두 추가
//강의내역 NOTI 입력
VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();
vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd());
vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId());
try {
System.out.println("session.getAttribute(menuNo).toString()");
System.out.println(session.getAttribute("menuNo").toString());
vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
}catch(Exception ex) {
ex.printStackTrace();
}
vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request));
vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
return "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstDetail";
}
//성인강사 강의 추가요청 상세
@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstDetail.do")
public String instrAsgnmAddRqstDetail(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
model.addAttribute("ssoLoginVO", ssoLoginVO);
model.addAttribute("loginVO", loginVO);
//로그인 처리====================================
vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
VEInstrAsgnmVO vEInstrAsgnmVOInfo = vEAsgnmMIXService.selectAsgnmAddRqstDetail(vEInstrAsgnmVO);
vEInstrAsgnmVOInfo = egovCryptoUtil.decryptVEInstrAsgnmVO(vEInstrAsgnmVOInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("info", vEInstrAsgnmVOInfo);
//사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectTngrPrcsList(vEPrcsDetailVO);
model.addAttribute("eduList", vEPrcsDetailVOList);
return "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstDetail";
}
//성인강사 강의확정내역 상세
@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmDetail.do")
public String instrAsgnmDetail(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
model.addAttribute("ssoLoginVO", ssoLoginVO);
model.addAttribute("loginVO", loginVO);
//로그인 처리====================================
vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
//배정 교육 정보
VEInstrAsgnmVO vEInstrAsgnmVOInfo = vEAsgnmMIXService.selectAsgnmDetail(vEInstrAsgnmVO);
vEInstrAsgnmVOInfo = egovCryptoUtil.decryptVEInstrAsgnmVO(vEInstrAsgnmVOInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("info", vEInstrAsgnmVOInfo);
// 강사 상세정보
VEInstrDetailVO vEInstrDetailVOInfo = new VEInstrDetailVO();
vEInstrDetailVOInfo.setInstrDiv("20");
vEInstrDetailVOInfo.setUserId(loginVO.getUniqId());
vEInstrDetailVOInfo.setUseYn("Y");
vEInstrDetailVOInfo = vEInstrDetailService.selectDetail(vEInstrDetailVOInfo);
vEInstrDetailVOInfo = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVOInfo);
model.addAttribute("instrInfo", vEInstrDetailVOInfo);
//강사료 상세정보
VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = new VEInstrFeeAcmdtVO();
vEInstrFeeAcmdtVO.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
vEInstrFeeAcmdtVO.setEduChasiOrd(vEInstrAsgnmVO.getEduChasiOrd());
vEInstrFeeAcmdtVO = vEInstrFeeService.selectDetail(vEInstrFeeAcmdtVO);
//강사료 제외 합계
int instrFeeSum = Integer.parseInt(vEInstrFeeAcmdtVO.getInstrFee())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getBsnsTripFee())
+ Integer.parseInt(vEInstrFeeAcmdtVO.getSpareFee());
vEInstrFeeAcmdtVO.setInstrFeeSum(instrFeeSum);
model.addAttribute("instrFee", vEInstrFeeAcmdtVO);
//강의계획서 정보 가져오기
int fileCnt = 0;
List<FileVO> result = null;
if (vEInstrAsgnmVOInfo != null) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(vEInstrAsgnmVOInfo.getLctrPlanAtchFileId());
result = fileMngService.selectFileInfs(fileVO);
fileCnt = result.size();
}
else {
fileCnt = 0;
}
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", fileCnt);
//20220222 우영두 추가
//강의내역 NOTI 입력
VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();
vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd());
vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId());
try {
System.out.println("session.getAttribute(menuNo).toString()");
System.out.println(session.getAttribute("menuNo").toString());
vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
}catch(Exception ex) {
ex.printStackTrace();
vEAsgnmNotiVO.setMenuNo("9991200");
}
vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request));
vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
return "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmDetail";
}
*//**
* 강의계획서 제출 Ajax
*//*
@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/lctrPlanRegAjax.do")
public ModelAndView filePopupAjax(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
String atchFileId = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {
//XXX_로 첨부파일 네이밍
List<FileVO> result = egovFileMngUtil.parseFileInf(files, "FILE_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
}
try {
//결과 저장
vEInstrAsgnmVO.setLctrPlanAtchFileId(atchFileId);
vEAsgnmMIXService.updateLctrPlan(vEInstrAsgnmVO);
}catch(Exception ex) {
System.out.println("Exception vEAsgnmMIXService.updateLctrPlan");
}
modelAndView.addObject("result", "success");
return modelAndView;
}
*//**
* 숙박신청 등록 처리
*//*
@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/acmdtRegPopAjax.do")
public ModelAndView acmdtRegPopAjax(
@ModelAttribute("vEInstrFeeAcmdtVO") VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEInstrFeeAcmdtVO.setFrstRegisterId(loginVO.getUniqId());
vEAcmdtAplctService.insert(vEInstrFeeAcmdtVO);
} catch (Exception ex) {
ex.printStackTrace();
isSuccess = false;
msg = ex.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
//성인강사 강의 요청 수락,거절 처리
@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstMdfyAjax.do")
public ModelAndView instrAsgnmRqstMdfyAjax(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//강사배정테이블 확정 코드 수정
vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
vEAsgnmMIXService.updateAsgnmCode(vEInstrAsgnmVO);
//차시 테이블 확정 Y 업데이트 처리
if("30".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) {
vEInstrAsgnmVO.setInstrCnfrmCd("Y");
vEInstrAsgnmVO.setInstrCnfrmId(loginVO.getUniqId());
vEAsgnmMIXService.updateChasiCode(vEInstrAsgnmVO);
}else if("40".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { //요청 거절 강사배정내역 테이블에 insert. 요청 목록에서 거절한 항목 조회를 위해(VE0025)
vEInstrAsgnmVO.setHstryCd("10"); //거절
vEAsgnmMIXService.insertAsgnmHstry(vEInstrAsgnmVO);
}else if("60".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { //요청 거절 강사배정내역 테이블에 insert. 요청 목록에서 거절한 항목 조회를 위해(VE0025)
vEInstrAsgnmVO.setHstryCd("40"); //변경요청
vEAsgnmMIXService.insertAsgnmHstry(vEInstrAsgnmVO);
}
modelAndView.addObject("result", "success");
return modelAndView;
}
//성인강사 강의 추가요청 등록
@RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstAjax.do")
public ModelAndView instrAsgnmAddRqstAjax(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//강사배정내역테이블 등록
vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
vEAsgnmMIXService.insertAsgnmHstry(vEInstrAsgnmVO);
//차시 테이블 확정 Y 업데이트 처리
modelAndView.addObject("result", "success");
return modelAndView;
}
*/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEPrcsDetailVO p_vEPrcsDetailVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit());
paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEPrcsDetailVO setPagingStep2(
VEPrcsDetailVO p_vEPrcsDetailVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
p_vEPrcsDetailVO.setSearchSortOrd("desc");
}
return p_vEPrcsDetailVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
}

View File

@ -3,6 +3,7 @@ package kcc.ve.instr.tngrVisitEdu.asgnmInfo.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
public interface VEAsgnmMIXService {
@ -120,4 +121,6 @@ public interface VEAsgnmMIXService {
//R
VEInstrAsgnmVO selectTtlMntChasiSumDetail(VEInstrAsgnmVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectFndtnVisitAsgnmPagingList(VEPrcsDetailVO vEPrcsDetailVO);
}

View File

@ -7,6 +7,7 @@ import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Repository("vEAsgnmMIXDAO")
public class VEAsgnmMIXDAO extends EgovAbstractDAO {
@ -215,4 +216,8 @@ public class VEAsgnmMIXDAO extends EgovAbstractDAO {
return (VEInstrAsgnmVO) select("VEAsgnmMIXDAO.selectTtlMntChasiSumDetail", paramVO);
}
public List<VEPrcsDetailVO> selectFndtnVisitAsgnmPagingList(VEPrcsDetailVO paramVO) {
return (List<VEPrcsDetailVO>) list("VEAsgnmMIXDAO.selectFndtnVisitAsgnmPagingList", paramVO);
}
}

View File

@ -10,6 +10,7 @@ import org.springframework.stereotype.Service;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Service("vEAsgnmMIXService")
public class VEAsgnmMIXServiceImpl implements VEAsgnmMIXService {
@ -195,4 +196,9 @@ public class VEAsgnmMIXServiceImpl implements VEAsgnmMIXService {
return vEAsgnmMIXDAO.selectTtlMntChasiSumDetail(paramVO);
}
@Override
public List<VEPrcsDetailVO> selectFndtnVisitAsgnmPagingList(VEPrcsDetailVO paramVO) {
return vEAsgnmMIXDAO.selectFndtnVisitAsgnmPagingList(paramVO);
}
}

View File

@ -15,6 +15,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
//ve_prcs
private String searchDiv; //검색구분
private String prcsOrd; //과정순번
private String prcsDiv; //과정구분
private String prcsKind; //과정종류
@ -132,6 +133,13 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public String getSearchDiv() {
return searchDiv;
}
public void setSearchDiv(String searchDiv) {
this.searchDiv = searchDiv;
}
public String getPrcsOrd() {
return prcsOrd;
}

View File

@ -4,6 +4,7 @@
<sqlMap namespace="VEAsgnmMIX">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEInstrAsgnmVO" type="kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO"/>
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<!-- 공통 테이블 명 -->
@ -4861,6 +4862,69 @@
</select>
<select id="VEAsgnmMIXDAO.selectFndtnVisitAsgnmPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/* VEAsgnmMIXDAO.selectFndtnVisitAsgnmPagingList */
SELECT
(
SELECT
COUNT(*)
FROM
ve_edu_aplct x
WHERE
x.prcs_ord = a.prcs_aplct_prd_ord
AND x.sbmt_yn = 'Y'
) AS nosCnt1, /* 신청자 정보 */
vpap.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
vpap.nos ,
vp.prcs_div AS prcsDiv,
vp.prcs_nm AS prcsNm,
vpap.edu_strt_pnttm as eduStrtPnttm,
vpap.edu_ddln_pnttm as eduDdlnPnttm,
vpap.lctr_div_cd AS lctrDivCd,
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 ,
vid.instr_nm AS instrNm ,
vid.phone
FROM
vea_prcs_aplct_prd_instr_asgnm a
LEFT JOIN ve_instr_detail vid ON
a.user_id = vid.user_id
LEFT JOIN ve_prcs_aplct_prd vpap ON
vpap.prcs_aplct_prd_ord = a.prcs_aplct_prd_ord
LEFT JOIN ve_prcs vp ON
vp.prcs_ord = vpap.prcs_ord
WHERE
1 = 1
AND vid.aprvl_cd = #aprvlCd# /* 강의 승인 20 */
AND vid.instr_div = #instrDiv# /* 성인 20 */
AND vid.use_yn = 'Y'
/*진행 중 : 진행 예정*/
<isEqual property="searchDiv" compareValue="ING">
AND TO_CHAR(CURRENT_DATE, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(vpap.edu_ddln_pnttm, '.' , '')
</isEqual>
/*종료*/
<isEqual property="searchDiv" compareValue="END">
AND TO_CHAR(CURRENT_DATE, 'YYYYMMDD') <![CDATA[ > ]]> REPLACE(vpap.edu_ddln_pnttm, '.' , '')
</isEqual>
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- //동일 일자에 강사 배정 여부 체크-->
<select id="VEAsgnmMIXDAO.selectInstrAsgnmScholCheck" parameterClass="VEInstrAsgnmVO" resultClass="VEInstrAsgnmVO">
/* VEAsgnmMIXDAO.selectInstrAsgnmScholCheck */

View File

@ -55,7 +55,7 @@
</div> -->
<div class="cont_wrap">
<div class="cont_tit">
<h2>교육기반강화연수</h2>
<h2>기소유예</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img
src="/offeduadvc/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"><a href="https://www.facebook.com/koreacopyright" target="_blank"></a></button>

View File

@ -0,0 +1,228 @@
<!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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
</script>
<title>강의배정팝업</title>
<script type="text/javaScript" language="javascript">
function fncPopClose(){
var activeTarget = $('[data-tooltip-con="sub52_pop01"]');
activeTarget.hide();
$('[data-tooltip="sub52_pop01"]').focus();
}
// 저장
function setDataSave(){
if($("#aplctCn").val() == "") {
alert("신청사유 내용을 입력해주세요");
return;
}
if (confirm("저장 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/adultVisitEdu/popup/eduAcmdtAplctPopupAjax.do",
data: $("#createForm").serialize(),
dataType:'json',
async: false,
success: function (data, status) {
if (data.isSuccess == true) {
alert("정상적으로 저장 되었습니다.");
// 닫기
location.reload();
} else {
alert("Msg : " + data.msg);
}
},
error : function(xhr, status, error) {
alert("Err : " + JSON.stringify(status));
}
});
}
}
</script>
</head>
<body>
<form:form id="createForm" name="createForm" method="post" commandName="vEEduRprtVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEInstrAsgnmVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEInstrAsgnmVO.eduChasiOrd}" />" />
<input type="hidden" name="sbmtYn" id="sbmtYn" value="" />
<div class="popup_wrap popType02" tabindex="0" data-tooltip-con="sub52_pop01" data-focus="sub52_pop01" data-focus-prev="sub52_pop01_close">
<div class="popup_tit">
<p>숙박신청</p><button class="btn_popup_close tooltip-close" data-focus="sub52_pop01_close" onclick="fncPopClose(); return false;" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="pop_tb_type01">
<table>
<caption>숙박신청 (th)를 제공하는 표</caption>
<colgroup>
<col style="width: 120px;">
<col style="width: auto">
<col style="width: 120px;">
<col style="width: auto">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>성명</p>
</th>
<td><c:out value='${info.instrNm}' /></td>
<th scope="row">
<p>거주지</p>
</th>
<td><c:out value='${info.rsdne}' /></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>성명</p>
</th>
<td colspan="3"><c:out value='${info.instrNm}' /></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>거주지</p>
</th>
<td colspan="3"><c:out value='${info.rsdne}' /></td>
</tr>
<tr>
<th scope="row">
<p>학교명</p>
</th>
<td colspan="3"><c:out value='${info.scholInsttNm}' /></td>
</tr>
<tr>
<th scope="row">
<p>학교주소</p>
</th>
<td colspan="3"><c:out value='${info.addr}' /><c:out value='${info.addrDetail}' /></td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>강의일자</p>
</th>
<td><c:out value='${info.eduHopeDt}' /></td>
<th scope="row">
<p>첫 강의시간</p>
</th>
<td>
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>강의일자</p>
</th>
<td colspan="3"><c:out value='${info.eduHopeDt}' /></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>첫 강의시간</p>
</th>
<td>
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
</td>
</tr>
<c:if test="${!empty acmdtAplctYesterday}">
<tr class="trLength4">
<th scope="row">
<p>전날 강의여부</p>
</th>
<td>
Y
</td>
<th scope="row">
<p>전날 학교명</p>
</th>
<td>
<c:out value="${acmdtAplctYesterday.scholInsttNm}" />
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>전날 강의여부</p>
</th>
<td colspan="3">
Y
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>전날 학교명</p>
</th>
<td colspan="3">
<c:out value="${acmdtAplctYesterday.scholInsttNm}" />
</td>
</tr>
<tr>
<th scope="row">
<p>전날 학교주소</p>
</th>
<td colspan="3">
<c:out value="${acmdtAplctYesterday.addr}" />
</td>
</tr>
</c:if>
<tr>
<th scope="row">
<p>신청사유</p>
</th>
<td colspan="3">
<c:out value='${info.aplctCn}' />
</td>
</tr>
<tr>
<th scope="row">
<p>처리결과</p>
</th>
<td colspan="3">
<ve:code codeId="VE0023" code="${info.aprvlCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>미승인 사유</p>
</th>
<td colspan="3">
<td colspan="3"><c:out value='${info.aprvlCn}' /></td>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType02 tooltip-close" data-focus="sub52_pop01-close" onclick="fncPopClose(); return false;" data-focus-next="sub52_pop01">취소</button>
</div>
</div>
</div>
</div>
</form:form>
</body>
</html>

View File

@ -0,0 +1,214 @@
<!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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
</script>
<title>강의배정팝업</title>
<script type="text/javaScript" language="javascript">
function fncPopClose(){
var activeTarget = $('[data-tooltip-con="sub51_pop01"]');
activeTarget.hide();
$('[data-tooltip="sub51_pop01"]').focus();
}
// 저장
function setDataSave(){
if($("#aplctCn").val() == "") {
alert("신청사유 내용을 입력해주세요");
return;
}
if (confirm("저장 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/acmdtRegPopAjax.do",
data: $("#createForm").serialize(),
dataType:'json',
async: false,
success: function (data, status) {
if (data.isSuccess == true) {
alert("정상적으로 저장 되었습니다.");
// 닫기
location.reload();
} else {
alert("Msg : " + data.msg);
}
},
error : function(xhr, status, error) {
alert("Err : " + JSON.stringify(status));
}
});
}
}
</script>
</head>
<body>
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrFeeAcmdtVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEInstrFeeAcmdtVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEInstrFeeAcmdtVO.eduChasiOrd}" />" />
<input type="hidden" name="sbmtYn" id="sbmtYn" value="" />
<div class="popup_wrap popType02" tabindex="0" data-tooltip-con="sub51_pop01" data-focus="sub51_pop01" data-focus-prev="sub51_pop01_close">
<div class="popup_tit">
<p>숙박신청</p><button class="btn_popup_close tooltip-close" data-focus="sub51_pop01_close" onclick="fncPopClose(); return false;" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="pop_tb_type01">
<table>
<caption>숙박신청 (th)를 제공하는 표</caption>
<colgroup>
<col style="width: 120px;">
<col style="width: auto">
<col style="width: 120px;">
<col style="width: auto">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>성명</p>
</th>
<td><c:out value='${info.instrNm}' /></td>
<th scope="row">
<p>거주지</p>
</th>
<td><c:out value='${info.rsdne}' /></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>성명</p>
</th>
<td colspan="3"><c:out value='${info.instrNm}' /></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>거주지</p>
</th>
<td colspan="3"><c:out value='${info.rsdne}' /></td>
</tr>
<tr>
<th scope="row">
<p>학교명</p>
</th>
<td colspan="3"><c:out value='${info.scholInsttNm}' /></td>
</tr>
<tr>
<th scope="row">
<p>학교주소</p>
</th>
<td colspan="3"><c:out value='${info.addr}' /><c:out value='${info.addrDetail}' /></td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>강의일자</p>
</th>
<td><c:out value='${info.eduHopeDt}' /></td>
<th scope="row">
<p>첫 강의시간</p>
</th>
<td>
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>강의일자</p>
</th>
<td colspan="3"><c:out value='${info.eduHopeDt}' /></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>첫 강의시간</p>
</th>
<td>
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
</td>
</tr>
<c:if test="${!empty acmdtAplctYesterday}">
<tr class="trLength4">
<th scope="row">
<p>전날 강의여부</p>
</th>
<td>
Y
</td>
<th scope="row">
<p>전날 학교명</p>
</th>
<td>
<c:out value="${acmdtAplctYesterday.scholInsttNm}" />
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>전날 강의여부</p>
</th>
<td colspan="3">
Y
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>전날 학교명</p>
</th>
<td colspan="3">
<c:out value="${acmdtAplctYesterday.scholInsttNm}" />
</td>
</tr>
<tr>
<th scope="row">
<p>전날 학교주소</p>
</th>
<td colspan="3">
<c:out value="${acmdtAplctYesterday.addr}" />
</td>
</tr>
</c:if>
<tr>
<th scope="row">
<p>신청사유</p>
</th>
<td colspan="3">
<textarea name="aplctCn" id="aplctCn" class="cmm_cmt" cols="30" rows="3" placeholder="메모를 작성해주세요"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="setDataSave(); return false;">제출</button>
</div>
<div class="btn_right">
<button type="button" class="btnType02 tooltip-close" data-focus="sub51_pop01-close" onclick="fncPopClose(); return false;" data-focus-next="sub51_pop01">취소</button>
</div>
</div>
</div>
</div>
</form:form>
</body>
</html>

View File

@ -0,0 +1,234 @@
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function fncGoCreate() {
$("#listForm").attr("action","${pageContext.request.contextPath}/web/kccadr/accdnt/acd/adjstChangeDateCreate.do").submit();
}
function fncRqst(){
if(confirm("강의신청 하시겠습니까?")){
$("#hstryCd").val("50"); //배정내역코드 - 강의신청
var data = new FormData(document.getElementById("detailForm"));
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstAjax.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); }
});
}
}
function fncGoList(){
var detailForm = document.detailForm;
detailForm.action = "<c:url value='/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstList.do'/>";
detailForm.submit();
}
function goReqStatus(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do").submit();
}
</script>
</head>
<body>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="detailForm" name="detailForm" commandName="vEInstrAsgnmVO" method="post" >
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrAsgnmVO.pageIndex}'/>"/>
<input type="hidden" name="searchStartDt" value="<c:out value="${vEInstrAsgnmVO.searchStartDt}" />" />
<input type="hidden" name="searchEndDt" value="<c:out value="${vEInstrAsgnmVO.searchEndDt}" />" />
<input type="hidden" name="searchKeyword" value="<c:out value="${vEInstrAsgnmVO.searchKeyword}" />" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value='${info.instrDiv}'/>"/> <!-- 강사구분 -->
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="<c:out value='${info.eduAplctOrd}'/>"/> <!-- 교육신청 순번 -->
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="<c:out value='${info.eduChasiOrd}'/>"/> <!-- 교육차시 순번 -->
<input type="hidden" name="hstryCd" id="hstryCd" 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="tit_box">
<i class="tit_box_icon1"></i>
<div>
<p>찾아가는 저작권 교육</p>
<span>‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>전국 초ㆍ중ㆍ고등학교, 청소년ㆍ아동복지ㆍ노인ㆍ장애인 기관 및 단체 등</span>에 직접 방문하여 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.</span>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>성인 강의 추가요청 상세 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>교육일시</p>
</th>
<td>${fn:substring(info.eduHopeDt,0,4)}년 ${fn:substring(info.eduHopeDt,4,6)}월 ${fn:substring(info.eduHopeDt,6,8)}일</td>
<th scope="row">
<p>차시</p>
</th>
<td>
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${info.lrnTm}'/>분)
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>기관명</p>
</th>
<td>${info.scholInsttNm}</td>
<th scope="row">
<p>지역</p>
</th>
<td><ve:code codeId="VE0008" code="${info.eduSlctAreaCd}"/></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>기관명</p>
</th>
<td colspan="3">${info.scholInsttNm}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>지역</p>
</th>
<td colspan="3"><ve:code codeId="VE0008" code="${info.eduSlctAreaCd}"/></td>
</tr>
<tr>
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">${info.addr}</td>
</tr>
<tr>
<th scope="row">
<p>교육내용</p>
</th>
<td colspan="3">
<c:forEach var="eduList" items="${eduList}" varStatus="status">
<c:if test="${fn:contains(info.eduCn, eduList.prcsOrd)}">
- ${eduList.prcsNm} <br/>
</c:if>
</c:forEach>
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>교육대상</p>
</th>
<td>${info.trgt}</td>
<th scope="row">
<p>인원</p>
</th>
<td>${info.prsnl}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>교육대상</p>
</th>
<td colspan="3">${info.trgt}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>인원</p>
</th>
<td colspan="3">${info.prsnl}</td>
</tr>
<tr>
<th scope="row">
<p>신청자</p>
</th>
<td colspan="3">${info.chrgNm}</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>연락처</p>
</th>
<td>${info.phone}</td>
<th scope="row">
<p>휴대전화</p>
</th>
<td>${info.clphone}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>연락처</p>
</th>
<td colspan="3">${info.phone}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>휴대전화</p>
</th>
<td colspan="3">${info.clphone}</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td colspan="3">${info.email}</td>
</tr>
<tr>
<th scope="row">
<p>신청마감일</p>
</th>
<td colspan="3">*미구현</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<c:if test="${info.asgnmAprvlCd eq '50' and (empty info.hstryCd or info.hstryCd eq '10')}">
<button type="button" class="btnType04 m_btn_block" onclick="fncRqst(); return false;">강의신청</button>
</c:if>
</div>
<div class="btn_right">
<button type="button" class="btnType02 m_btn_block" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</form:form>
</div>
</body>
</html>

View File

@ -0,0 +1,259 @@
<%@ 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"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function fncGoDetail(eduAplctOrd,eduChasiOrd){
$("#eduAplctOrd").val(eduAplctOrd);
$("#eduChasiOrd").val(eduChasiOrd);
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstDetail.do").submit();
}
function fncRqst(eduAplctOrd,eduChasiOrd){
if(confirm("강의신청 하시겠습니까?")){
$("#hstryCd").val("50"); //배정내역코드 - 강의신청
$("#eduAplctOrd").val(eduAplctOrd); //배정내역코드 - 강의신청
$("#eduChasiOrd").val(eduChasiOrd); //배정내역코드 - 강의신청
var data = new FormData(document.getElementById("listForm"));
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){
alert("강의신청 완료하였습니다.");
location.reload();
} else if(status== 'fail'){
alert("강의신청 실패하였습니다.");
}
},
error: function (e) { alert("강의신청 실패하였습니다."); console.log("ERROR : ", e); }
});
}
event.stopImmediatePropagation();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstList.do'/>";
listForm.submit();
}
function goReqStatus(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do").submit();
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
</script>
</head>
<body>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="listForm" name="listForm" commandName="vEInstrAsgnmVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrAsgnmVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEInstrAsgnmVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEInstrAsgnmVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus" value="<c:out value="${vEInstrAsgnmVO.searchStatus}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="" />
<input type="hidden" name="hstryCd" id="hstryCd" 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">
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" name="searchEduHopeStartDt" value="${vEInstrAsgnmVO.searchEduHopeStartDt}" class="calendar" title="시작일 선택"> --%>
<duet-date-picker identifier="date" name="searchEduHopeStartDt" class="startDate" value="${vEInstrAsgnmVO.searchEduHopeStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" name="searchEduHopeEndDt" value="${vEInstrAsgnmVO.searchEduHopeEndDt}" class="calendar" title="종료일 선택"> --%>
<duet-date-picker identifier="date" name="searchEduHopeEndDt" class="endDate" value="${vEInstrAsgnmVO.searchEduHopeEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
&nbsp;&nbsp;학교(기관)명 :&nbsp;
<input type="text" name="searchKeyword" id="searchKeyword" value="<c:out value='${vEInstrAsgnmVO.searchKeyword}' />" />
<button type="button" class="btnType01" onclick="linkPage(1)">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<div class="tb_list01">
<table>
<colgroup>
<col style="width: 8%;">
<col style="width: 15%;">
<col style="width: 8%;">
<col style="width: auto">
<col style="width: 10%;">
<col style="width: 15%;">
<col style="width: 12%;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">교육일자<!-- <button type="button">▼</button> --></th>
<th scope="col">요일</th>
<th scope="col">시간</th>
<th scope="col">지역</th>
<th scope="col">학교(기관)명</th>
<th scope="col">교육대상</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${vEInstrAsgnmVOList}" varStatus="status">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/> <!-- 요일 구하기 -->
<tr onclick="fncGoDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');" style="cursor:pointer;">
<th scope="row">
<p>
<c:if test="${vEInstrAsgnmVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${vEInstrAsgnmVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</p>
</th>
<td><p>${fn:substring(list.eduHopeDt,0,4)}-${fn:substring(list.eduHopeDt,4,6)}-${fn:substring(list.eduHopeDt,6,8)}</p></td>
<td><p><fmt:formatDate value="${eduHopeDt}" pattern="E"/></p></td>
<td><p>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${list.lrnTm}'/>분)
</p>
</td>
<td><p><ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/></p></td>
<td><p><c:out value='${list.scholInsttNm}'/></p></td>
<td><p><c:out value='${list.trgt}'/></p></td>
<td>
<span class="app_status1">
<c:if test="${list.asgnmAprvlCd eq '50'}"> <!-- 내역 테이블의 코드 50(추가요청)일 시 -->
<c:if test="${list.hstryCd eq '10' or empty list.hstryCd}"> <!-- 내역 코드 10(요청 강의 수락거절) or 내역 코드 없을 시(강의추가신청 전) -->
<button type="button" class="btnType06" onclick="fncRqst('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>'); return flase;">강의신청</button>
</c:if>
<c:if test="${list.hstryCd eq '50'}"> <!-- 내역 코드 50(강의추가신청) -->
<p>선정대기</p>
</c:if>
</c:if>
<c:if test="${list.asgnmAprvlCd ne '50'}"> <!-- 내역 테이블의 코드 50(추가요청)이 아닐 시 -->
<c:if test="${list.hstryCd eq '20'}"> <!-- 내역 코드 20(요청 강의 선정완료)) -->
<p>선정완료</p>
</c:if>
<c:if test="${list.hstryCd eq '30'}"> <!-- 내역 코드 30(요청 강의 선정제외)) -->
<p>선정제외</p>
</c:if>
</c:if>
</span>
</td>
</tr>
</c:forEach>
<c:if test="${empty vEInstrAsgnmVOList}">
<tr><td colspan="8"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="tb_list01_m">
<c:forEach var="list" items="${vEInstrAsgnmVOList}" varStatus="status">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/> <!-- 요일 구하기 -->
<ul onclick="fncGoDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');">
<li>
<span>번호</span>
<span><c:out value='${status.count}'/></span>
</li>
<li>
<span>교육일자</span>
<span>${fn:substring(list.eduHopeDt,0,4)}-${fn:substring(list.eduHopeDt,4,6)}-${fn:substring(list.eduHopeDt,6,8)}</span>
</li>
<li>
<span>요일</span>
<span><fmt:formatDate value="${eduHopeDt}" pattern="E"/></span>
</li>
<li>
<span>시간</span>
<span>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${list.lrnTm}'/>분)
</span>
</li>
<li>
<span>지역</span>
<span><ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/></span>
</li>
<li>
<span>기관명</span>
<span><c:out value='${list.scholInsttNm}'/></span>
</li>
<li>
<span>교육대상</span>
<span><c:out value='${list.trgt}'/></span>
</li>
<li>
<span>신청상태</span>
<span><span class="app_status1">
<c:if test="${list.asgnmAprvlCd eq '50'}"> <!-- 내역 테이블의 코드 50(추가요청)일 시 -->
<c:if test="${list.hstryCd eq '10' or empty list.hstryCd}"> <!-- 내역 코드 10(요청 강의 수락거절) or 내역 코드 없을 시(강의추가신청 전) -->
<button type="button">강의신청</button>
</c:if>
<c:if test="${list.hstryCd eq '50'}"> <!-- 내역 코드 50(강의추가신청) -->
<p>강의신청</p>
</c:if>
</c:if>
<c:if test="${list.asgnmAprvlCd ne '50'}"> <!-- 내역 테이블의 코드 50(추가요청)이 아닐 시 -->
<c:if test="${list.hstryCd eq '20'}"> <!-- 내역 코드 20(요청 강의 선정완료)) -->
<p>선정완료</p>
</c:if>
<c:if test="${list.hstryCd eq '30'}"> <!-- 내역 코드 30(요청 강의 선정제외)) -->
<p>선정제외</p>
</c:if>
</c:if>
</span></span>
</li>
</ul>
</c:forEach>
<c:if test="${empty vEInstrAsgnmVOList}">
<ul><li colspan="8"><spring:message code="common.nodata.msg" /></li></ul>
</c:if>
</div>
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</form:form>
</div>
</body>
</html>

View File

@ -0,0 +1,486 @@
<%@ 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"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$( document ).ready(function() {
$(".btn_add_file").on('click', function(){
$("#file_temp").click();
});
$('#file_temp').change(function(e){
var objUpload = $(".upload_area");
var files = $('#file_temp')[0].files;
handleFileUpload(files,objUpload); //파일업로드
if($("#file_temp").length > 0){
$("#file_temp").val(""); //파일지우기
}
});
});
function fncGoList(){
var detailForm = document.detailForm;
detailForm.action = "<c:url value='/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmList.do'/>";
detailForm.submit();
}
function fncSave(){
//첨부파일 등록 처리
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
//var data = new FormData(form);
var data = new FormData(document.getElementById("detailForm"));
//첨부파일 등록 처리-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("강의계획서를 제출 하시겠습니까?")){
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/lctrPlanRegAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){
alert("등록 되었습니다.");
location.reload();
} else if(status== 'fail'){
alert("등록에 실패하였습니다.");
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
</script>
</head>
<body>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post" >
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}'/>"/>
<input type="hidden" name="searchEduHopeStartDt" value="<c:out value="${vEPrcsDetailVO.searchEduHopeStartDt}" />" />
<input type="hidden" name="searchEduHopeEndDt" value="<c:out value="${vEPrcsDetailVO.searchEduHopeEndDt}" />" />
<input type="hidden" name="searchKeyword" value="<c:out value="${vEPrcsDetailVO.searchKeyword}" />" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value='${info.instrDiv}'/>"/> <!-- 강사구분 -->
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="<c:out value='${info.eduAplctOrd}'/>"/> <!-- 교육신청 순번 -->
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="<c:out value='${info.eduChasiOrd}'/>"/> <!-- 교육차시 순번 -->
<input type="hidden" name="hstryCd" id="hstryCd" value=""/> <!-- 배정내역 코드 -->
<input type="hidden" name="limitcount" id="limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
<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>에 직접 방문하여 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.</span>
</div>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>교육내역</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>성인 교육내역 상세 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>교육일시</p>
</th>
<td>
2023년 .1월 0.일
</td>
<th scope="row">
<p>시간</p>
</th>
<td>
15:05
~
17:05
(120분)
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>교육일시</p>
</th>
<td colspan="3">2023년 .1월 0.일</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>시간</p>
</th>
<td colspan="3">
15:05
~17:05
(120분)
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>기관(단체)명</p>
</th>
<td>정기관</td>
<th scope="row">
<p>지역</p>
</th>
<td>(온)</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>기관(단체)명</p>
</th>
<td colspan="3">정기관</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>지역</p>
</th>
<td colspan="3">(온)</td>
</tr>
<tr>
<th scope="row">
<p>교육장소</p>
</th>
<td colspan="3"></td>
</tr>
<tr>
<th scope="row">
<p>강의주제</p>
</th>
<td colspan="3">희망 의 주제</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>교육대상</p>
</th>
<td>대상감</td>
<th scope="row">
<p>인원</p>
</th>
<td>18</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>교육대상</p>
</th>
<td colspan="3">대상감</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>인원</p>
</th>
<td colspan="3">18</td>
</tr>
<tr>
<th scope="row">
<p>담당자</p>
</th>
<td colspan="3">성인담당자</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>연락처</p>
</th>
<td>010-2322-1941</td>
<th scope="row">
<p>휴대전화</p>
</th>
<td>010-2322-1941</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>연락처</p>
</th>
<td colspan="3">010-2322-1941</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>휴대전화</p>
</th>
<td colspan="3">010-2322-1941</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td colspan="3">yongjoon.cho@gmail.com</td>
</tr>
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>강사정보</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>성명</p>
</th>
<td>
성인강사2
</td>
<th scope="row">
<p>구분</p>
</th>
<td>
성인 강사
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>성명</p>
</th>
<td colspan="3">
성인강사2
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>구분</p>
</th>
<td colspan="3">
성인 강사
</td>
</tr>
<tr>
<th scope="row">
<p>거주지</p>
</th>
<td colspan="3">
광주광역시(동구 계림동)
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>강사료(a)</p>
</th>
<td>
0
</td>
<th scope="row">
<p>출장비(b)</p>
</th>
<td>
0
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>강사료(a)</p>
</th>
<td colspan="3">0</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>출장비(b)</p>
</th>
<td colspan="3">0</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>여비(c)</p>
</th>
<td>
0
</td>
<th scope="row">
<p>총액(a)+(b)+(c)</p>
</th>
<td>
0
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>여비(c)</p>
</th>
<td colspan="3">0</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>총액(a)+(b)+(c)</p>
</th>
<td colspan="3">0</td>
</tr>
</tbody>
</table>
</div>
<dl class="filewrap_div">
<c:if test="${empty fileList}">
<dt><p class="req_text"><span>필수입력 항목</span>*</p>강의계획서</dt>
<dd colspan="3" class="upload_area">
<div class="btn_wrap">
<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 file_upload_box 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">
<tr>
<td colspan="3">
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter 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="tbody_fiielist" class="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="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">
<div class="cf_left">
<p>최대 <span>1</span>개</p>
<p><span>500MB</span>제한</p>
</div>
<div class="cf_right btn_wrap">
<button type="button" onclick="fncSave(); return false;" class="btnType05" style="height: 40px;">제출</button>
</div>
</div>
</dd>
</c:if>
<c:if test="${not empty fileList}">
<td class="file_download">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.lctrPlanAtchFileId}" />
</c:import>
</td>
</c:if>
</dl>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType02 m_btn_block" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</form:form>
</div>
</body>
</html>

View File

@ -0,0 +1,194 @@
<%@ 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"%>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
//성인강사인지 체크
adultInstrCheck();
});
function fncGoCreate() {
$("#listForm").attr("action","${pageContext.request.contextPath}/web/kccadr/accdnt/acd/adjstChangeDateCreate.do").submit();
}
function fncGoDetail(prcsAplctPrdOrd){
$("#prcsAplctPrdOrd").val(prcsAplctPrdOrd);
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/fndtnVisitEdu/asgnmInfo/instrAsgnmDetail.do").submit();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmList.do'/>";
listForm.submit();
}
function goReqStatus(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do").submit();
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
</script>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value=""/>
<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="searchStatus" value="<c:out value="${vEPrcsDetailVO.searchStatus}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" 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">
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" name="searchEduHopeStartDt" value="${vEPrcsDetailVO.searchEduHopeStartDt}" class="calendar" title="시작일 선택"> --%>
<duet-date-picker identifier="date" name="searchEduHopeStartDt" class="startDate" value="${vEPrcsDetailVO.searchEduHopeStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" name="searchEduHopeEndDt" value="${vEPrcsDetailVO.searchEduHopeEndDt}" class="calendar" title="종료일 선택"> --%>
<duet-date-picker identifier="date" name="searchEduHopeEndDt" class="endDate" value="${vEPrcsDetailVO.searchEduHopeEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="linkPage(1); return false;">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<div class="tb_list01">
<table>
<colgroup>
<col style="width: 30%;">
<col style="width: 30%;">
<col style="width: 10%;">
<col style="width: 10%;">
</colgroup>
<thead>
<tr>
<th scope="col">교육과정</th>
<th scope="col">교육기간</th>
<th scope="col">정원</th>
<th scope="col">신청자수</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${vEPrcsDetailVOList}" varStatus="status">
<tr>
<td>
<a href="#none" onclick="fncGoDetail('<c:out value='${list.prcsAplctPrdOrd }' />')">${list.prcsNm } (${list.prcsAplctPrdOrd })</a>
</td>
<td>
${list.eduStrtPnttm } ~ ${list.eduDdlnPnttm }
</td>
<td>
${list.nos }
</td>
<td>
${list.nosCnt1 }
</td>
</tr>
</c:forEach>
<c:if test="${empty vEPrcsDetailVOList}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="tb_list01_m">
<c:forEach var="list" items="${vEPrcsDetailVOList}" varStatus="status">
<ul onclick="fncGoDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');">
<li>
<span>교육과정</span>
<span><a href="#none" onclick="fncGoDetail('<c:out value='${list.prcsAplctPrdOrd }' />')">${list.prcsNm } (${list.prcsAplctPrdOrd })</a></span>
</li>
<li>
<span>교육기간</span>
<span>${list.eduStrtPnttm } ~ ${list.eduDdlnPnttm }</span>
</li>
<li>
<span>정원</span>
<span>${list.nos }</span>
</li>
<li>
<span>신청자수</span>
<span>${list.nosCnt1 }</span>
</li>
<%-- <li>
<span>교육일자</span>
<span>${fn:substring(list.eduHopeDt,0,4)}-${fn:substring(list.eduHopeDt,4,6)}-${fn:substring(list.eduHopeDt,6,8)}</span>
</li>
<li>
<span>요일</span>
<span><fmt:formatDate value="${eduHopeDt}" pattern="E"/></span>
</li>
<li>
<span>시간</span>
<span>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${list.lrnTm}'/>분)
</span>
</li>
<li>
<span>지역</span>
<span><c:if test="${list.eduSlctCd eq '10'}">(온)</c:if><ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/></span>
</li>
<li>
<span>기관(단체)명</span>
<span><c:out value='${list.insttNm}'/></span>
</li>
<li>
<span>총 금액</span>
<span>
<c:set var = "fee" value="" />
<c:choose>
<c:when test="${list.instrFeeSbmtYn ne 'Y'}">
<c:set var = "fee" value="정산중" />
</c:when>
<c:when test="${list.acmdtSbmtYn eq 'Y' and empty list.acmdtAprvlCd}">
<c:set var = "fee" value="정산중" />
</c:when>
<c:otherwise>
<c:set var = "fee" value="${list.instrFee + list.specialWorkAllow + list.distanceAllow + list.trafficFee + list.acmdtFee}" />
</c:otherwise>
</c:choose>
<td><p><c:out value="${fee}" /></p></td>
</span>
</li> --%>
</ul>
</c:forEach>
<c:if test="${empty vEPrcsDetailVOList}">
<ul><li colspan="5"><spring:message code="common.nodata.msg" /></li></ul>
</c:if>
</div>
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>

View File

@ -0,0 +1,295 @@
<%@ 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"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function fncGoCreate() {
$("#listForm").attr("action","${pageContext.request.contextPath}/web/kccadr/accdnt/acd/adjstChangeDateCreate.do").submit();
}
function fncSave(asgnmAprvlCd){
var ment = "";
if(asgnmAprvlCd == '30'){
ment = "수락";
$("#asgnmAprvlCd").val("30");
}
if(asgnmAprvlCd == '40'){
ment = "거절";
$("#asgnmAprvlCd").val("40");
}
if(asgnmAprvlCd == '60'){
ment = "변경요청";
$("#asgnmAprvlCd").val("60");
}
if(confirm(ment+"처리 하시겠습니까?")){
var data = new FormData(document.getElementById("detailForm"));
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstMdfyAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){
alert(ment+"처리 완료하였습니다.");
fncGoList();
} else if(status== 'fail'){
alert(ment+"처리 실패하였습니다.");
}
},
error: function (e) { alert(ment+"처리에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fncGoList(){
var detailForm = document.detailForm;
detailForm.action = "<c:url value='/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstList.do'/>";
detailForm.submit();
}
function goReqStatus(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do").submit();
}
</script>
</head>
<body>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="detailForm" name="detailForm" commandName="vEInstrAsgnmVO" method="post" >
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrAsgnmVO.pageIndex}'/>"/>
<input type="hidden" name="searchAsgnmAprvlCd" value="<c:out value="${vEInstrAsgnmVO.searchAsgnmAprvlCd}" />" />
<input type="hidden" name="searchEduHopeStartDt" value="<c:out value="${vEInstrAsgnmVO.searchEduHopeStartDt}" />" />
<input type="hidden" name="searchEduHopeEndDt" value="<c:out value="${vEInstrAsgnmVO.searchEduHopeEndDt}" />" />
<input type="hidden" name="searchKeyword" value="<c:out value="${vEInstrAsgnmVO.searchKeyword}" />" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value='${info.instrDiv}'/>"/> <!-- 강사구분 -->
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="<c:out value='${info.eduAplctOrd}'/>"/> <!-- 교육신청 순번 -->
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="<c:out value='${info.eduChasiOrd}'/>"/> <!-- 교육차시 순번 -->
<input type="hidden" name="asgnmAprvlCd" id="asgnmAprvlCd" 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="tit_box">
<i class="tit_box_icon1"></i>
<div>
<p>찾아가는 저작권 교육</p>
<span>‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>전국 초ㆍ중ㆍ고등학교, 청소년ㆍ아동복지ㆍ노인ㆍ장애인 기관 및 단체 등</span>에 직접 방문하여 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.</span>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>성인 강의 요청 상세 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>교육일시</p>
</th>
<td>${fn:substring(info.eduHopeDt,0,4)}년 ${fn:substring(info.eduHopeDt,4,6)}월 ${fn:substring(info.eduHopeDt,6,8)}일</td>
<th scope="row">
<p>시간</p>
</th>
<td>
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${info.lrnTm}'/>분)
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>교육일시</p>
</th>
<td colspan="3">${fn:substring(info.eduHopeDt,0,4)}년 ${fn:substring(info.eduHopeDt,4,6)}월 ${fn:substring(info.eduHopeDt,6,8)}일</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>시간</p>
</th>
<td colspan="3">
<fmt:parseDate value="${info.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${info.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${info.lrnTm}'/>분)
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>기관(단체)명</p>
</th>
<td>${info.insttNm}</td>
<th scope="row">
<p>지역</p>
</th>
<td><c:if test="${info.eduSlctCd eq '10'}">(온)</c:if><ve:code codeId="VE0008" code="${info.eduSlctAreaCd}"/></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>기관(단체)명</p>
</th>
<td colspan="3">${info.insttNm}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>지역</p>
</th>
<td colspan="3"><c:if test="${info.eduSlctCd eq '10'}">(온)</c:if><ve:code codeId="VE0008" code="${info.eduSlctAreaCd}"/></td>
</tr>
<tr>
<th scope="row">
<p>교육장소</p>
</th>
<td colspan="3">${info.addr}</td>
</tr>
<tr>
<th scope="row">
<p>강의주제</p>
</th>
<td colspan="3">${info.hopeSbjct}</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>교육대상</p>
</th>
<td>${info.trgt}</td>
<th scope="row">
<p>인원</p>
</th>
<td>${info.prsnl}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>교육대상</p>
</th>
<td colspan="3">${info.trgt}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>인원</p>
</th>
<td colspan="3">${info.prsnl}</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>강의료</p>
</th>
<td><fmt:formatNumber value="${instrFee.instrFee}" pattern="#,###"/></td>
<th scope="row">
<p>교통비 등</p>
</th>
<td><fmt:formatNumber value="${instrFee.instrFeeSum}" pattern="#,###"/></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>강의료</p>
</th>
<td colspan="3"><fmt:formatNumber value="${instrFee.instrFee}" pattern="#,###"/></td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>교통비 등</p>
</th>
<td colspan="3"><fmt:formatNumber value="${instrFee.instrFeeSum}" pattern="#,###"/></td>
</tr>
<tr>
<th scope="row">
<p>담당자</p>
</th>
<td colspan="3">${info.chrgNm}</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>연락처</p>
</th>
<td>${info.phone}</td>
<th scope="row">
<p>휴대전화</p>
</th>
<td>${info.clphone}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>연락처</p>
</th>
<td colspan="3">${info.phone}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>휴대전화</p>
</th>
<td colspan="3">${info.clphone}</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td colspan="3">${info.email}</td>
</tr>
<!-- <tr>
<th scope="row">
<p>수락마감일</p>
</th>
<td colspan="3">*마감일 이후에는 자동으로 거절상태로 변경됩니다.</td>
</tr> -->
<c:if test="${info.hstryCd eq '40'}">
<tr>
<th scope="row">
<p>변경 요청 여부</p>
</th>
<td colspan="3">O</td>
</tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<c:if test="${info.asgnmAprvlCd eq '20' }"> <!-- 배정 테이블 수락요청 상태 -->
<button type="button" class="btnType04 m_btn_block" onclick="fncSave('30'); return false;">요청수락</button>
</c:if>
</div>
<div class="btn_right">
<c:if test="${info.asgnmAprvlCd eq '20' }"> <!-- 배정 테이블 수락요청 상태 -->
<button type="button" class="btnType03 m_btn_block" onclick="fncSave('40'); return false;">요청거절</button>
</c:if>
<c:if test="${info.asgnmAprvlCd eq '30' and info.hstryCd ne '40' and info.hstryCnt eq '0'}"> <!-- 배정테이블 수락승인, 변경요청 내역이 없으며, 거절 등 내역이 없는 경우 : 강사가 요청을 바로 수락 한 경우만 -->
<button type="button" class="btnType03 m_btn_block" onclick="fncSave('60'); return false;">변경요청</button>
</c:if>
<button type="button" class="btnType02 m_btn_block" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</form:form>
</div>
</body>
</html>

View File

@ -0,0 +1,270 @@
<%@ 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"%>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
//성인강사인지 체크
adultInstrCheck();
});
function fncGoCreate() {
$("#listForm").attr("action","${pageContext.request.contextPath}/web/kccadr/accdnt/acd/adjstChangeDateCreate.do").submit();
}
function fncGoDetail(eduAplctOrd,eduChasiOrd){
$("#eduAplctOrd").val(eduAplctOrd);
$("#eduChasiOrd").val(eduChasiOrd);
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstDetail.do").submit();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstList.do'/>";
listForm.submit();
}
function goReqStatus(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do").submit();
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
</script>
<!-- cont -->
<div class="cont_wrap" id="sub">
<form:form id="listForm" name="listForm" commandName="vEInstrAsgnmVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrAsgnmVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEInstrAsgnmVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEInstrAsgnmVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus" value="<c:out value="${vEInstrAsgnmVO.searchStatus}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" 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="searchCdtn" class="label">검색조건 선택</label>
<select class="selType1" name="searchAsgnmAprvlCd" id="searchCdtn">
<option value="" <c:if test="${vEInstrAsgnmVO.searchAsgnmAprvlCd eq ''}">selected</c:if>>전체</option>
<option value="20" <c:if test="${vEInstrAsgnmVO.searchAsgnmAprvlCd eq '20'}">selected</c:if>>대기</option>
<option value="30" <c:if test="${vEInstrAsgnmVO.searchAsgnmAprvlCd eq '30'}">selected</c:if>>수락</option>
<option value="40" <c:if test="${vEInstrAsgnmVO.searchAsgnmAprvlCd eq '40'}">selected</c:if>>거절</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" name="searchEduHopeStartDt" value="${vEInstrAsgnmVO.searchEduHopeStartDt}" class="calendar" title="시작일 선택"> --%>
<duet-date-picker identifier="date" name="searchEduHopeStartDt" class="startDate" value="${vEInstrAsgnmVO.searchEduHopeStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" name="searchEduHopeEndDt" value="${vEInstrAsgnmVO.searchEduHopeEndDt}" class="calendar" title="종료일 선택"> --%>
<duet-date-picker identifier="date" name="searchEduHopeEndDt" class="endDate" value="${vEInstrAsgnmVO.searchEduHopeEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="linkPage(1); return false;">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<div class="tb_list01">
<table>
<colgroup>
<col style="width: 8%;">
<col style="width: 15%;">
<col style="width: 8%;">
<col style="width: auto">
<col style="width: 10%;">
<col style="width: 15%;">
<col style="width: 12%;">
<col style="width: 12%;">
</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 scope="col">총 금액</th>
<th scope="col">신청상태</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${vEInstrAsgnmVOList}" varStatus="status">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/> <!-- 요일 구하기 -->
<c:choose>
<c:when test="${list.notiCnt == 0}">
<tr class="new_cont" onclick="fncGoDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');" style="cursor:pointer;">
</c:when>
<c:otherwise>
<tr onclick="fncGoDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');" style="cursor:pointer;">
</c:otherwise>
</c:choose>
<td>
<p>
<c:if test="${vEInstrAsgnmVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((vEInstrAsgnmVO.pageIndex -1)*vEInstrAsgnmVO.pageUnit) ) - status.index }"/>
</c:if>
<c:if test="${vEInstrAsgnmVO.searchSortOrd eq 'asc' }">
<c:out value="${(vEInstrAsgnmVO.pageIndex - 1) * vEInstrAsgnmVO.pageUnit + status.count}"/>
</c:if>
</p>
</td>
<td><p>${list.eduHopeDt}</p></td>
<td><p><fmt:formatDate value="${eduHopeDt}" pattern="E"/></p></td>
<td><p>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${list.lrnTm}'/>분)
</p></td>
<td><p><c:if test="${list.eduSlctCd eq '10'}">(온)</c:if><ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/></p></td>
<td><p><c:out value='${list.insttNm}'/></p></td>
<c:set var = "fee" value="" />
<c:choose>
<c:when test="${list.instrFeeSbmtYn ne 'Y'}">
<c:set var = "fee" value="정산중" />
</c:when>
<c:when test="${list.acmdtSbmtYn eq 'Y' and empty list.acmdtAprvlCd}">
<c:set var = "fee" value="정산중" />
</c:when>
<c:otherwise>
<c:set var = "fee" value="${list.instrFee + list.specialWorkAllow + list.distanceAllow + list.trafficFee + list.acmdtFee}" />
</c:otherwise>
</c:choose>
<td><p><c:out value='${fee}'/></p></td>
<c:set var="statCd" value="" />
<c:choose>
<c:when test="${list.asgnmAprvlCd eq '20'}">
<!-- 배정 수락 요청 상태 -->
<c:set var="statCd" value="대기" />
</c:when>
<c:when test="${(list.asgnmAprvlCd eq '40' and list.userId eq loginVO.id) or
(list.hstryUserId eq loginVO.id and (list.hstryCd eq '10' or list.hstryCd eq '40'))}">
<!-- 배정 거절 or 내역 거절 or 내열에 변경요청 -->
<c:set var="statCd" value="거절" />
</c:when>
<c:when test="${list.asgnmAprvlCd eq '30' and list.userId eq loginVO.id}">
<c:set var="statCd" value="수락" />
</c:when>
</c:choose>
<td><span class="app_status1">${statCd}</span></td>
</tr>
</c:forEach>
<c:if test="${empty vEInstrAsgnmVOList}">
<tr><td colspan="8"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="tb_list01_m">
<c:forEach var="list" items="${vEInstrAsgnmVOList}" varStatus="status">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/> <!-- 요일 구하기 -->
<ul onclick="fncGoDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');">
<li>
<span>번호</span>
<span>
<c:if test="${vEInstrAsgnmVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((vEInstrAsgnmVO.pageIndex -1)*vEInstrAsgnmVO.pageUnit) ) - status.index }"/>
</c:if>
<c:if test="${vEInstrAsgnmVO.searchSortOrd eq 'asc' }">
<c:out value="${(vEInstrAsgnmVO.pageIndex - 1) * vEInstrAsgnmVO.pageUnit + status.count}"/>
</c:if>
</span>
</li>
<li>
<span>교육일자</span>
<span>${fn:substring(list.eduHopeDt,0,4)}-${fn:substring(list.eduHopeDt,4,6)}-${fn:substring(list.eduHopeDt,6,8)}</span>
</li>
<li>
<span>요일</span>
<span><fmt:formatDate value="${eduHopeDt}" pattern="E"/></span>
</li>
<li>
<span>시간</span>
<span>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${list.lrnTm}'/>분)
</span>
</li>
<li>
<span>지역</span>
<span><c:if test="${list.eduSlctCd eq '10'}">(온)</c:if><ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/></span>
</li>
<li>
<span>기관(단체)명</span>
<span><c:out value='${list.insttNm}'/></span>
</li>
<li>
<span>총 금액</span>
<c:set var = "fee" value="" />
<c:choose>
<c:when test="${list.instrFeeSbmtYn ne 'Y'}">
<c:set var = "fee" value="정산중" />
</c:when>
<c:when test="${list.acmdtSbmtYn eq 'Y' and empty list.acmdtAprvlCd}">
<c:set var = "fee" value="정산중" />
</c:when>
<c:otherwise>
<c:set var = "fee" value="${list.instrFee + list.specialWorkAllow + list.distanceAllow + list.trafficFee + list.acmdtFee}" />
</c:otherwise>
</c:choose>
<span><c:out value='${fee}'/></span>
</li>
<li>
<span>신청상태</span>
<c:set var="statCd" value="" />
<c:choose>
<c:when test="${list.asgnmAprvlCd eq '20'}">
<!-- 배정 수락 요청 상태 -->
<c:set var="statCd" value="대기" />
</c:when>
<c:when test="${(list.asgnmAprvlCd eq '40' and list.userId eq loginVO.id) or
(list.hstryUserId eq loginVO.id and (list.hstryCd eq '10' or list.hstryCd eq '40'))}">
<!-- 배정 거절 or 내역 거절 or 내열에 변경요청 -->
<c:set var="statCd" value="거절" />
</c:when>
<c:when test="${list.asgnmAprvlCd eq '30' and list.userId eq loginVO.id}">
<c:set var="statCd" value="수락" />
</c:when>
</c:choose>
<span><c:out value='${statCd}'/></span>
</li>
</ul>
</c:forEach>
<c:if test="${empty vEInstrAsgnmVOList}">
<ul><li colspan="8"><spring:message code="common.nodata.msg" /></li></ul>
</c:if>
</div>
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>