2023-10-18 14:11 수정 사항 적용

This commit is contained in:
myname 2023-10-18 14:11:27 +09:00
parent 95bf268375
commit eff22cbce5
24 changed files with 3275 additions and 115 deletions

View File

@ -57,12 +57,13 @@ public class VEAStngMixDAO extends EgovAbstractDAO {
//L //L
public VEAStngVO selectEduAplctDateChkList(VEAStngVO paramVO) throws Exception { public VEAStngVO selectEduAplctDateChkList(VEAStngVO paramVO) throws Exception {
VEAStngVO tlist = (VEAStngVO) list("VEALctrYrStngMixDAO.selectEduAplctDateChkList", paramVO); return (VEAStngVO) select("VEALctrYrStngMixDAO.selectEduAplctDateChkList", paramVO);
return tlist; //return tlist;
} }
public VEAStngVO selectEduAplctTimeChkList(VEAStngVO paramVO) throws Exception { public VEAStngVO selectEduAplctTimeChkList(VEAStngVO paramVO) throws Exception {
VEAStngVO tlist = (VEAStngVO) list("VEALctrYrStngMixDAO.selectEduAplctTimeChkList", paramVO); return (VEAStngVO) select("VEALctrYrStngMixDAO.selectEduAplctTimeChkList", paramVO);
return tlist; //VEAStngVO tlist = (VEAStngVO) list("VEALctrYrStngMixDAO.selectEduAplctTimeChkList", paramVO);
//return tlist;
} }
} }

View File

@ -127,8 +127,15 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
System.out.println("vEAStngVO.toString()3"); System.out.println("vEAStngVO.toString()3");
if (dateVO==null) {
//대상 기간이 없다.
flag = false;
break;
}
// 날짜에 부합하는 데이터가 없는 경우 flag 변경 처리 // 날짜에 부합하는 데이터가 없는 경우 flag 변경 처리
//가능한 기간에 값이 있고, 불가능한 기간에 값이 없음 //가능한 기간에 값이 있고, 불가능한 기간에 값이 없음
if (Integer.parseInt(dateVO.getDpStrtDt())>0 && Integer.parseInt(dateVO.getDpDdlnDt())<=0){ if (Integer.parseInt(dateVO.getDpStrtDt())>0 && Integer.parseInt(dateVO.getDpDdlnDt())<=0){
; ;
}else { }else {

View File

@ -36,6 +36,8 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; 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.VEPrcsCntntVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
@ -169,6 +171,10 @@ public class EduEndAdultController {
private CheckAdrProcessUtil checkAdrProcessUtil; private CheckAdrProcessUtil checkAdrProcessUtil;
*/ */
//강사상세 정보
@Resource(name="vEInstrDetailService")
private VEInstrDetailService vEInstrDetailService;
/** /**
* 교육완료 목록 화면 * 교육완료 목록 화면
*/ */
@ -416,6 +422,31 @@ public class EduEndAdultController {
return "/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail"; return "/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail";
} }
/**
* 배정강사 정보 조회
*/
@RequestMapping(value="/selectInstrInfo.do")
public ModelAndView selectInstrInfo( HttpServletRequest request
, ModelMap model
, @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
System.out.println("vEInstrDetailVO.getUserId() :: "+ vEInstrDetailVO.getUserId());
vEInstrDetailVO.setUserId(vEInstrDetailVO.getUserId());
vEInstrDetailVO.setInstrDiv("20");
vEInstrDetailVO.setUseYn("Y");
VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO);
// 강사 정보 select
info = egovCryptoUtil.decryptVEInstrDetailVO(info);
modelAndView.addObject("info", info);
modelAndView.addObject("result", "success");
return modelAndView;
}
/** /**
* 교육 설문 팝업 차수정보 조회 * 교육 설문 팝업 차수정보 조회
*/ */

View File

@ -234,6 +234,8 @@ public class CommonWebController {
public ModelAndView dataCallAjax(HttpServletRequest request , ModelMap model , VEEduAplctVO vEEduAplctVO) throws Exception { public ModelAndView dataCallAjax(HttpServletRequest request , ModelMap model , VEEduAplctVO vEEduAplctVO) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
try {
if(VeConstants.LCTR_DIV_CD_30.equals(vEEduAplctVO.getLctrDivCd())){ if(VeConstants.LCTR_DIV_CD_30.equals(vEEduAplctVO.getLctrDivCd())){
vEEduAplctVO = vEEduAplctService.selectOprtnDetail(vEEduAplctVO); vEEduAplctVO = vEEduAplctService.selectOprtnDetail(vEEduAplctVO);
}else{ }else{
@ -258,6 +260,7 @@ public class CommonWebController {
for(int i=0;i<vEEduChasiVOList.size();i++) { for(int i=0;i<vEEduChasiVOList.size();i++) {
VEEduChasiVO vEEduChasiVOT = vEEduChasiVOList.get(i); VEEduChasiVO vEEduChasiVOT = vEEduChasiVOList.get(i);
if (vEEduChasiVOT.getEduHopeDt()!=null)
if (vEEduChasiVOT.getEduHopeDt().length()==8) { if (vEEduChasiVOT.getEduHopeDt().length()==8) {
vEEduChasiVOT.setEduHopeDt(EgovStringUtil.addDotChar(vEEduChasiVOT.getEduHopeDt())); vEEduChasiVOT.setEduHopeDt(EgovStringUtil.addDotChar(vEEduChasiVOT.getEduHopeDt()));
} }
@ -275,6 +278,11 @@ public class CommonWebController {
modelAndView.addObject("fileList", result); modelAndView.addObject("fileList", result);
modelAndView.addObject("fileListCnt", result.size()); modelAndView.addObject("fileListCnt", result.size());
modelAndView.addObject("result", "success"); modelAndView.addObject("result", "success");
}catch(Exception ex) {
ex.printStackTrace();
}
return modelAndView; return modelAndView;
} }

View File

@ -285,6 +285,7 @@ public class EduAplctTngrController {
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. // return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
} }
try {
//1.교육희망일이 신청 가능한 일자인지 fail3 //1.교육희망일이 신청 가능한 일자인지 fail3
VEAStngVO vEAStngVO = new VEAStngVO(); VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setFrstRegisterId(loginVO.getUniqId()); vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
@ -297,15 +298,19 @@ public class EduAplctTngrController {
return modelAndView; return modelAndView;
} }
//작업 필요함 2023-10-17
//2.신청 시간이 해당 지역의 가능한 시간인지 fail //2.신청 시간이 해당 지역의 가능한 시간인지 fail
//신청한 교육 일자 시간이 신청기간에 받을수 있는 지역의 시간, 일자 조건에 맞는지 확인 한다. //신청한 교육 일자 시간이 신청기간에 받을수 있는 지역의 시간, 일자 조건에 맞는지 확인 한다.
//boolean flag = vEAStngMixService.eduAplctChkTime(vEAStngVO, request); //boolean flag = vEAStngMixService.eduAplctChkTime(vEAStngVO, request);
/*
boolean flag = eduAplctTngrService.eduAplctChkProcess(vEEduAplctVO, request, modelAndView); boolean flag = eduAplctTngrService.eduAplctChkProcess(vEEduAplctVO, request, modelAndView);
if(!flag){ if(!flag){
modelAndView.addObject("result", "fail"); modelAndView.addObject("result", "fail");
return modelAndView; return modelAndView;
} }
*/
//동일한 신청건이 있는지 확인(신청자아이디, 교육희망일, 교육대상 동일 비교) //동일한 신청건이 있는지 확인(신청자아이디, 교육희망일, 교육대상 동일 비교)
boolean flag2 = eduAplctTngrService.eduAplctDuplChkProcess(vEEduAplctVO, request, modelAndView); boolean flag2 = eduAplctTngrService.eduAplctDuplChkProcess(vEEduAplctVO, request, modelAndView);
@ -317,6 +322,10 @@ public class EduAplctTngrController {
modelAndView.addObject("VO", vEEduAplctVO); modelAndView.addObject("VO", vEEduAplctVO);
modelAndView.addObject("result", "success"); modelAndView.addObject("result", "success");
}catch(Exception ex) {
ex.printStackTrace();
}
return modelAndView; return modelAndView;
} }

View File

@ -97,6 +97,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String corpsEdu; //집체교육 여부 private String corpsEdu; //집체교육 여부
private String broadroomEdu; //방송실교육 여부 private String broadroomEdu; //방송실교육 여부
private String rndsOrd; //회차순번(해당 신청이 속하는 회차 고유 순번)
//ve_edu_aplct_snd_hstry //ve_edu_aplct_snd_hstry
@ -1569,6 +1571,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setLastYear(String lastYear) { public void setLastYear(String lastYear) {
this.lastYear = lastYear; this.lastYear = lastYear;
} }
public String getRndsOrd() {
return rndsOrd;
}
public void setRndsOrd(String rndsOrd) {
this.rndsOrd = rndsOrd;
}
} }

View File

@ -811,6 +811,46 @@ public class AreaLctrMngTngrController {
} }
/**
* 패널티 삭제 처리
*/
@RequestMapping("popup/instrPnltyDelAjax.do")
public ModelAndView instrPnltyDelPopupAjax(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, 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(); //권한에 따른 로그인 정보 가져오기
//교육차시강사배정 테이블에 패널티 정보 삭제
try {
//목록에서 패널티를 여러 유저에게 등록
vEEduPnltyService.delete(vEInstrAsgnmVO);
} catch (Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/** /**
* 강사료 등록 처리 * 강사료 등록 처리
*/ */

View File

@ -0,0 +1,709 @@
package kcc.ve.oprtn.tngrVisitEdu.eduCnfrmMng.web;
import java.util.List;
import java.util.Properties;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
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 egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.VEPagingUtil;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIX2023Service;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduChasiInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduPnltyService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
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.VEEduInstrDstncService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
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("/kccadr/oprtn/tngrVisitEdu")
public class NewEduCnfrmMngTngrController {
private static final Logger LOGGER = LoggerFactory.getLogger(NewEduCnfrmMngTngrController.class);
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//신청과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//교육과정신청
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
// 교육패널티
@Resource(name = "vEEduPnltyService")
private VEEduPnltyService vEEduPnltyService;
// 강의배정정보
@Resource(name = "vEAsgnmMIXService")
private VEAsgnmMIXService vEAsgnmMIXService;
// 강의배정정보2023
@Resource(name = "vEAsgnmMIX2023Service")
private VEAsgnmMIX2023Service vEAsgnmMIX2023Service;
// 숙박신청정보
@Resource(name = "vEAcmdtAplctService")
private VEAcmdtAplctService vEAcmdtAplctService;
// 강사배치 확정 처리
@Resource(name = "vEEduChasiInstrAsgnmService")
private VEEduChasiInstrAsgnmService vEEduChasiInstrAsgnmService;
// 강사목록
@Resource(name = "vEInstrMixService")
private VEInstrMixService vEInstrMixService;
// 페이지 유틸
@Resource(name = "vEPagingUtil")
private VEPagingUtil vEPagingUtil;
// 교육강사거리
@Resource(name = "vEEduInstrDstncService")
private VEEduInstrDstncService vEEduInstrDstncService;
/**
* 특정 강사배치 팝업
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/spcfcInstrAsgnmPopup.do")
public String spcfcInstrAsgnmPopup(
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
,@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
//0.pageing step0
//온라인 오프라인 여부 확인
//배치대상신청정보
//vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO);
//2. pageing step2
vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
//selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
/*if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
}
//3.5 요청일 종료일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
}*/
//정보변경 요청사항 있는 강사부터 조회
vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC ");
vEInstrDetailVO.setInstrDiv("10");
vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
//4.pageing step3
paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("resultList", vEInstrDetailVOList);
//배치 목록
//1.pageing step1
PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO);
//2. pageing step2
vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1);
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
vEEduAplctVO.setAprvlCd("60"); //확정코드
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
VEEduAplctVO vo = new VEEduAplctVO();
for(int i=0; i < vEEduAplctVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i));
vEEduAplctVOList.get(i).setUserId(vo.getUserId());
vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm());
}
//3.pageing step3
paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1);
model.addAttribute("paginationInfo1", paginationInfo1);
model.addAttribute("cryptoUtil", egovCryptoUtil);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
return "oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup";
}
/**
* 강사 배정 조건 관리 팝업
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/instrAsgnmCndtnMngPopup.do")
public String instrAsgnmCndtnMngPopup(
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
,@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
//0.pageing step0
//온라인 오프라인 여부 확인
//배치대상신청정보
//vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO);
//2. pageing step2
vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
//selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
/*if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
}
//3.5 요청일 종료일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
}*/
//정보변경 요청사항 있는 강사부터 조회
vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC ");
vEInstrDetailVO.setInstrDiv("10");
vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
//4.pageing step3
paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("resultList", vEInstrDetailVOList);
//배치 목록
//1.pageing step1
PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO);
//2. pageing step2
vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1);
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
vEEduAplctVO.setAprvlCd("60"); //확정코드
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
VEEduAplctVO vo = new VEEduAplctVO();
for(int i=0; i < vEEduAplctVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i));
vEEduAplctVOList.get(i).setUserId(vo.getUserId());
vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm());
}
//3.pageing step3
paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1);
model.addAttribute("paginationInfo1", paginationInfo1);
model.addAttribute("cryptoUtil", egovCryptoUtil);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
return "oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup";
}
/**
* 강사 월별 시수계산 관리 팝업
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/instrMntTmMngPopup.do")
public String instrMntTmMngPopup(
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
,@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
//0.pageing step0
//온라인 오프라인 여부 확인
//배치대상신청정보
//vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO);
//2. pageing step2
vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
//selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
/*if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
}
//3.5 요청일 종료일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
}*/
//정보변경 요청사항 있는 강사부터 조회
vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC ");
vEInstrDetailVO.setInstrDiv("10");
vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
//4.pageing step3
paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("resultList", vEInstrDetailVOList);
//배치 목록
//1.pageing step1
PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO);
//2. pageing step2
vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1);
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
vEEduAplctVO.setAprvlCd("60"); //확정코드
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
VEEduAplctVO vo = new VEEduAplctVO();
for(int i=0; i < vEEduAplctVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i));
vEEduAplctVOList.get(i).setUserId(vo.getUserId());
vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm());
}
//3.pageing step3
paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1);
model.addAttribute("paginationInfo1", paginationInfo1);
model.addAttribute("cryptoUtil", egovCryptoUtil);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
return "oprtn/tngrVisitEdu/popup/instrMntTmMngPopup";
}
/**
* 강사 거주지별 배정 비율 관리 팝업
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/instrRsdncMngPopup.do")
public String instrRsdncMngPopup(
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
,@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
//0.pageing step0
//온라인 오프라인 여부 확인
//배치대상신청정보
//vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO);
//2. pageing step2
vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
//selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
/*if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
}
//3.5 요청일 종료일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
}*/
//정보변경 요청사항 있는 강사부터 조회
vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC ");
vEInstrDetailVO.setInstrDiv("10");
vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
//4.pageing step3
paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("resultList", vEInstrDetailVOList);
//배치 목록
//1.pageing step1
PaginationInfo paginationInfo1 = this.setPagingStep_1(vEEduAplctVO);
//2. pageing step2
vEEduAplctVO = this.setPagingStep_2(vEEduAplctVO, paginationInfo1);
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
vEEduAplctVO.setAprvlCd("60"); //확정코드
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
VEEduAplctVO vo = new VEEduAplctVO();
for(int i=0; i < vEEduAplctVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i));
vEEduAplctVOList.get(i).setUserId(vo.getUserId());
vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm());
}
//3.pageing step3
paginationInfo1 = this.setPagingStep_3(vEEduAplctVOList, paginationInfo1);
model.addAttribute("paginationInfo1", paginationInfo1);
model.addAttribute("cryptoUtil", egovCryptoUtil);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
return "oprtn/tngrVisitEdu/popup/instrRsdncMngPopup";
//instrRsdncMng
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
private PaginationInfo setPagingStep1(
VEInstrDetailVO p_vEInstrDetailVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit());
paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEInstrDetailVO setPagingStep2(
VEInstrDetailVO p_vEInstrDetailVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm");
p_vEInstrDetailVO.setSearchSortOrd("desc");
}
return p_vEInstrDetailVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEInstrDetailVO> p_vEInstrDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep_1(
VEEduAplctVO p_vEEduAplctVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit());
paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEEduAplctVO setPagingStep_2(
VEEduAplctVO p_vEEduAplctVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEEduAplctVO.setSearchSortCnd("prcs_ord");
p_vEEduAplctVO.setSearchSortOrd("desc");
}
return p_vEEduAplctVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep_3(
List<VEEduAplctVO> p_vEEduAplctVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
}

View File

@ -19,7 +19,8 @@
pnlty_cd, pnlty_cd,
frst_regist_pnttm, frst_regist_pnttm,
frst_register_id, frst_register_id,
user_id user_id,
memo_cn
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
@ -30,7 +31,8 @@
a.pnlty_cd AS pnltyCd, a.pnlty_cd AS pnltyCd,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm, TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId, a.frst_register_id AS frstRegisterId,
a.user_id AS userId a.user_id AS userId,
a.memo_cn AS memoCn
</sql> </sql>
<!-- 패널티 등록 C --> <!-- 패널티 등록 C -->
@ -44,7 +46,8 @@
pnlty_cd = #pnltyCd#, pnlty_cd = #pnltyCd#,
frst_regist_pnttm = SYSDATE, frst_regist_pnttm = SYSDATE,
frst_register_id = #frstRegisterId#, frst_register_id = #frstRegisterId#,
user_id = #userId# user_id = #userId#,
memo_cn = #memoCn#
WHEN NOT MATCHED THEN WHEN NOT MATCHED THEN
INSERT( INSERT(
<include refid="VEEduPnltyDAO.column_name"/> <include refid="VEEduPnltyDAO.column_name"/>
@ -55,7 +58,8 @@
#pnltyCd#, #pnltyCd#,
SYSDATE, SYSDATE,
#frstRegisterId#, #frstRegisterId#,
#userId# #userId#,
#memoCn#
) )
</insert> </insert>

View File

@ -85,6 +85,8 @@
IS_WAIT, IS_WAIT,
CORPS_EDU, CORPS_EDU,
BROADROOM_EDU BROADROOM_EDU
, RNDS_ORD
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
@ -151,6 +153,7 @@
A.IS_WAIT AS isWait, A.IS_WAIT AS isWait,
A.CORPS_EDU AS corpsEdu, A.CORPS_EDU AS corpsEdu,
A.BROADROOM_EDU AS broadroomEdu A.BROADROOM_EDU AS broadroomEdu
, A.RNDS_ORD AS rndsOrd
</sql> </sql>
<!-- 강사 등록 C --> <!-- 강사 등록 C -->
@ -236,6 +239,7 @@
#isWait#, #isWait#,
#corpsEdu#, #corpsEdu#,
#broadroomEdu# #broadroomEdu#
, #rndsOrd#
) )
</insert> </insert>
@ -350,6 +354,7 @@
A.IS_WAIT , A.IS_WAIT ,
A.CORPS_EDU , A.CORPS_EDU ,
A.BROADROOM_EDU A.BROADROOM_EDU
, A.RNDS_ORD
</select> </select>
@ -636,6 +641,9 @@
<isNotEmpty property="adminUpdtYn"> <isNotEmpty property="adminUpdtYn">
, ADMIN_UPDT_YN = #adminUpdtYn# , ADMIN_UPDT_YN = #adminUpdtYn#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="rndsOrd">
, RNDS_ORD = #rndsOrd#
</isNotEmpty>
WHERE EDU_APLCT_ORD = #eduAplctOrd# WHERE EDU_APLCT_ORD = #eduAplctOrd#
</update> </update>
@ -822,6 +830,9 @@
<isNotEmpty property="adminUpdtYn"> <isNotEmpty property="adminUpdtYn">
, ADMIN_UPDT_YN = #adminUpdtYn# , ADMIN_UPDT_YN = #adminUpdtYn#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="rndsOrd">
, RNDS_ORD = #rndsOrd#
</isNotEmpty>
WHERE EDU_APLCT_ORD = #eduAplctOrd# WHERE EDU_APLCT_ORD = #eduAplctOrd#
</update> </update>

View File

@ -431,6 +431,9 @@
WHERE TO_CHAR(SYSDATE, 'YYYY.MM.DDHH24MI') BETWEEN rgstr_strt_pnttm||'00' AND rgstr_ddln_pnttm||'00' WHERE TO_CHAR(SYSDATE, 'YYYY.MM.DDHH24MI') BETWEEN rgstr_strt_pnttm||'00' AND rgstr_ddln_pnttm||'00'
AND nvl(rgstr_state,'00') <![CDATA[ <> ]]>'03' AND nvl(rgstr_state,'00') <![CDATA[ <> ]]>'03'
ORDER BY rnds_ord ASC
LIMIT 1
</select> </select>
<!-- 청소년 교육 신청가능일시 확인 하기(다음 신청일) --> <!-- 청소년 교육 신청가능일시 확인 하기(다음 신청일) -->

View File

@ -585,12 +585,15 @@
</c:forEach> </c:forEach>
</select> </select>
<!--
<p>&nbsp;&nbsp;&nbsp;지역&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;지역&nbsp;&nbsp;</p>
<ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'" <ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.areaCd}" defaultValue='' selectedValue="${vELctrDetailVO.areaCd}" defaultValue=''
defaultText='전체' defaultText='전체'
/> />
-->
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button> <button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -674,6 +674,60 @@
} }
} }
// 특정 강사 배정
function fncSpcfcInstrAsgnmInfo() {
var chkLen = $(listForm).find("input[name=chk]:checked").length;
if(chkLen == 0){
alert("선택된 항목이 없습니다.");
return;
}
var form = document.listForm;
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
window.open("#", "_spcfcPop", "scrollbars = no, top=100px, left=100px, height=750px, width=1200px");
form.target = "_spcfcPop";
form.submit();
}
// 강사배정조건관리
function fncInstrAsgnmCndtnMng() {
var form = document.listForm;
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmCndtnMngPopup.do'/>";
window.open("#", "_cndtnMngPop", "scrollbars = no, top=100px, left=100px, height=750px, width=1200px");
form.target = "_cndtnMngPop";
form.submit();
}
// 강사월별시수계산
function fncInstrMntTmMng() {
var form = document.listForm;
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrMntTmMngPopup.do'/>";
window.open("#", "_instrMntTmMngPop", "scrollbars = no, top=100px, left=100px, height=750px, width=1200px");
form.target = "_instrMntTmMngPop";
form.submit();
}
// 강사거주지별배정비율설정
function fncInstrRsdncMng() {
var form = document.listForm;
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrRsdncMngPopup.do'/>";
window.open("#", "_instrRsdncMngPop", "scrollbars = no, top=100px, left=100px, height=750px, width=1200px");
form.target = "_instrRsdncMngPop";
form.submit();
}
</script> </script>
<title>신청관리</title> <title>신청관리</title>
</head> </head>
@ -740,11 +794,12 @@
<!-- <button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button> --> <!-- <button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button> -->
</div> </div>
<div class="right_box"> <div class="right_box">
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnm(); return false;">강사배정(전체)</button> <button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">강사배정조건관리X</button>
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmEA(); return false;">강사배정(개별)</button> <button type="button" class="btn_type06" onclick="fncInstrMntTmMng(); return false;">강사월별시수계산X</button>
<button type="button" class="btn_type06" onclick="fncInstrRsdncMng(); return false;">강사거주지별배정비율설정X</button>
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmDelete(); return false;">강사배치삭제(개별)</button>
</div> </div>
</div> </div>
@ -757,11 +812,14 @@
<input type="text" id="searchScholNm" name="searchScholNm" style="margin-left:25px;" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.searchScholNm}" onkeyDown="press(event);"> <input type="text" id="searchScholNm" name="searchScholNm" style="margin-left:25px;" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.searchScholNm}" onkeyDown="press(event);">
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button> <button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
<div class="btn_wrap btn_layout01" style="width:100%;">
<div class="btn_right" style="width:100%;margin-bottom:40px;">
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnm(); return false;">강사배정(전체)</button>
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmEA(); return false;">강사배정(개별)</button>
<button type="button" style="width:200px;" class="btn_type06" onclick="fncSpcfcInstrAsgnmInfo(); return false;">특정강사배정X</button>
</div>
</div> </div>
<div class="right_box">
<button type="button" style="width:200px;" class="btn_type06" onclick="fncInstrMassAsgnm30(); return false;">교육수락처리(개별)</button>
</div> </div>
</div> </div>
@ -771,6 +829,12 @@
</div> </div>
<div class="util_right"> <div class="util_right">
<input type="text" id="searchInstrNm" name="searchInstrNm" class="search_input" placeholder="검색어를 입력하세요" value="${cryptoUtil.decrypt(vEEduAplctVO.searchInstrNm)}" onkeyDown="press(event);"> <input type="text" id="searchInstrNm" name="searchInstrNm" class="search_input" placeholder="검색어를 입력하세요" value="${cryptoUtil.decrypt(vEEduAplctVO.searchInstrNm)}" onkeyDown="press(event);">
<div class="btn_wrap btn_layout01" style="width:100%;">
<div class="btn_right" style="width:100%;margin-bottom:40px;">
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmDelete(); return false;">강사배치삭제(개별)</button>
<button type="button" style="width:200px;" class="btn_type06" onclick="fncInstrMassAsgnm30(); return false;">교육수락처리(개별)</button>
</div>
</div>
</div> </div>
</div> </div>
<div class="list_top_2"> <div class="list_top_2">

View File

@ -264,7 +264,7 @@
} }
function updateHiddenMemo(){ function updateHiddenMemo(){
$("#memo").val($("#memoCn").val()); $("#memo").val($("#detailForm #memoCn").val());
var data1 = new FormData(document.getElementById("hiddenMemoForm")); var data1 = new FormData(document.getElementById("hiddenMemoForm"));
@ -315,7 +315,64 @@
}); });
} }
// 패널티 부여
function fnPnltyInsert() {
$("#listForm #memoCn").val($("#pnltyCn").val());
$("#listForm #pnltyCd").val($("#pnltyCd1").val());
var data1 = new FormData(document.getElementById("listForm"));
if(confirm("해당 강사에게 패널티를 부여하시겠습니까?")){
$.ajax({
type:"POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrPnltyRegAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
// 패널티 삭제
function fnPnltyDelete(p_pnlty_ord) {
$("#listForm #pnltyOrd").val(p_pnlty_ord);
var data1 = new FormData(document.getElementById("listForm"));
if(confirm("해당 패널티를 삭제하시겠습니까?)")){
$.ajax({
type:"POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrPnltyDelAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("삭제 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script> </script>
</head> </head>
<body> <body>
@ -710,24 +767,36 @@
<div class="tb_type01"> <div class="tb_type01">
<table> <table>
<colgroup> <colgroup>
<col style="width: 20%;"> <col style="width: 18%;">
<col style="width: 20%;"> <col style="width: 18%;">
<col style="width: 20%;"> <col style="width: 18%;">
<col style="width: 20%;"> <col style="width: 18%;">
<col style="width: 20%"> <col style="width: 18%;">
<col style="width: 10%;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <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>
<th scope="col">패널티상세</th> <th scope="col">삭제</th>
<th scope="col">패널티부여일</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="pList" items="${pnltyList}" varStatus="status"> <c:forEach var="pList" items="${pnltyList}" varStatus="status">
<tr> <tr>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
<td><ve:code codeId="VE0016" code="${pList.pnltyCd}"/></td>
<c:choose>
<c:when test="${pList.scholInsttNm eq '' or pList.scholInsttNm eq null}">
<td colspan="3"><c:out value="${pList.memoCn}" /></td>
</c:when>
<c:otherwise>
<td><c:out value="${pList.eduHopeDt}" /></td> <td><c:out value="${pList.eduHopeDt}" /></td>
<td><c:out value="${pList.scholInsttNm}" /></td> <td><c:out value="${pList.scholInsttNm}" /></td>
<td> <td>
@ -735,8 +804,14 @@
~<fmt:parseDate value="${pList.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/> ~<fmt:parseDate value="${pList.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value="${pList.lrnTm}"/>분) (<c:out value="${pList.lrnTm}"/>분)
</td> </td>
<td><ve:code codeId="VE0016" code="${pList.pnltyCd}"/></td> </c:otherwise>
<td><c:out value="${pList.frstRegistPnttm}" /></td> </c:choose>
<td>
<button type="button" class="btn_type04" onclick="fnPnltyDelete('<c:out value="${pList.pnltyOrd}" />'); return false;">삭제</button>
</td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty pnltyList}"> <c:if test="${empty pnltyList}">
@ -748,9 +823,10 @@
<div class="btn_wrap btn_layout01"> <div class="btn_wrap btn_layout01">
<div class="btn_left"> <div class="btn_left" style="width:60%;">
</div> <ve:select codeId="VE0016" name="pnltyCd1" id="pnltyCd1" css="class='sel_type1'" />
<div class="btn_center"> <input type="text" name="pnltyCn" id="pnltyCn" size="30" maxlength="100" placeholder="" value="">
<button type="button" class="btn_type04" onclick="fnPnltyInsert(); return false;">패널티 등록</button>
</div> </div>
<div class="btn_right"> <div class="btn_right">
<c:if test="${info.qlfctEndYn eq 'Y'}"> <c:if test="${info.qlfctEndYn eq 'Y'}">
@ -765,6 +841,13 @@
</div> </div>
</div> </div>
</div> </div>
</form:form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pnltyCd" id="pnltyCd" value="" />
<input type="hidden" name="pnltyOrd" id="pnltyOrd" value="" />
<input type="hidden" name="memoCn" id="memoCn" value="" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>" />
</form:form> </form:form>
<!-- //cont --> <!-- //cont -->
</body> </body>

View File

@ -0,0 +1,263 @@
<!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"%>
<%
/**
* @Class Name : instrAsgnmCndtnMngPopup.jsp
* @Description : 강사배정조건관리 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function() {
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function press(event) {
//alert(event.keyCode);
if (event.keyCode==13) {
linkPage(1);
}
return;
}
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
}
function reloadLinkPage(){
$("#btnDstnc").show();
/*
var listForm = document.listForm ;
//listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
*/
}
function fncInstrAsgnm(id, p_rank) {
$("#userId").val(id);
if (p_rank=='-'){
$("#rmrks").val(p_rank);
}else{
$("#rmrks").val("배정기준"+p_rank+"순위");
}
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//동일 학교 여부 체크
function fncInstrAsgnm_bef(id, p_rank) {
$("#userId").val(id);
$("#rmrks").val("배정기준"+p_rank+"순위");
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax_bef.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.message == ''){
if(confirm("강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank)
}
}else{
if(confirm("동일한 일자에 다른 학교 강의가 있습니다.\n("+returnData.message+")\n강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank);
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function reloadPage(){
location.reload();
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrAsgnmVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />">
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="rmrks" id="rmrks" />
<input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/>
</form:form>
<form:form id="listForm" name="listForm" 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="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" /><!-- 성인 -->
<div class="area_popup">
<div class="cont_popup">
<div class="pop_tb_tit01">
<p>강사 배정 조건 관리</p>
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 40%;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th scope="col">항목</th>
<th scope="col">선택</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>거주지 우선</p>
</td>
<td>
<input type="radio" name="isltnScholYn0" id="isltn_schol_Y" value="Y" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_Y">적용</label>
<input type="radio" name="isltnScholYn0" id="isltn_schol_N" value="N" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_N">제외</label>
</td>
</tr>
<tr>
<td>
<p>연강 기준</p>
</td>
<td>
<input type="radio" name="isltnScholYn1" id="isltn_schol_Y" value="Y" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_Y">적용</label>
<input type="radio" name="isltnScholYn1" id="isltn_schol_N" value="N" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_N">제외</label>
</td>
</tr>
<tr>
<td>
<p>패널티 기준</p>
</td>
<td>
<input type="radio" name="isltnScholYn2" id="isltn_schol_Y" value="Y" ${empty info.isltnScholYn or info.isltnScholYn eq 'N' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_Y">적용</label>
<input type="radio" name="isltnScholYn2" id="isltn_schol_N" value="N" ${info.isltnScholYn eq 'Y' ? 'checked' : info.isltnScholYn}>
<label for="isltn_schol_N">제외</label>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type06" onclick="self.close();">저장</button>
<button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
<!-- 강사 거리계산용 끝 -->
</body>
</html>

View File

@ -266,7 +266,7 @@
<p>강사료</p> <p>강사료</p>
</th> </th>
<td> <td>
<input type="text" numberOnly readonly id="instrFee" name="instrFee" value="<fmt:formatNumber value="${info.instrFee}" pattern="#,###"/>"/> <input type="text" numberOnly id="instrFee" name="instrFee" value="<fmt:formatNumber value="${info.instrFee}" pattern="#,###"/>"/>
</td> </td>
<td> <td>
강의차시 * 43,000원 강의차시 * 43,000원

View File

@ -0,0 +1,412 @@
<!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"%>
<%
/**
* @Class Name : instrMntTmMngPopup.jsp
* @Description : 강사월별시수계산 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function() {
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function press(event) {
//alert(event.keyCode);
if (event.keyCode==13) {
linkPage(1);
}
return;
}
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
}
function reloadLinkPage(){
$("#btnDstnc").show();
/*
var listForm = document.listForm ;
//listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
*/
}
function fncInstrAsgnm(id, p_rank) {
$("#userId").val(id);
if (p_rank=='-'){
$("#rmrks").val(p_rank);
}else{
$("#rmrks").val("배정기준"+p_rank+"순위");
}
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//동일 학교 여부 체크
function fncInstrAsgnm_bef(id, p_rank) {
$("#userId").val(id);
$("#rmrks").val("배정기준"+p_rank+"순위");
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax_bef.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.message == ''){
if(confirm("강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank)
}
}else{
if(confirm("동일한 일자에 다른 학교 강의가 있습니다.\n("+returnData.message+")\n강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank);
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function reloadPage(){
location.reload();
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrAsgnmVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />">
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="rmrks" id="rmrks" />
<input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/>
</form:form>
<form:form id="listForm" name="listForm" 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="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" /><!-- 성인 -->
<div class="area_popup">
<div class="cont_popup">
<div class="pop_tb_tit01">
<p>강사 월별 시수 계산</p>
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: auto;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
</colgroup>
<thead>
<tr>
<th scope="col"></th>
<th scope="col"><button type="button" class="btn_type04" onclick="fncInstrAsgnmCndtnMng(); return false;">초기화</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col"><button type="button" class="btn_type06" onclick="fncInstrAsgnmCndtnMng(); return false;">계산</button></th>
<th scope="col">계</th>
</tr>
<tr>
<th scope="col">교육일정(월)</th>
<th scope="col">1월</th>
<th scope="col">2월</th>
<th scope="col">3월</th>
<th scope="col">4월</th>
<th scope="col">5월</th>
<th scope="col">6월</th>
<th scope="col">7월</th>
<th scope="col">8월</th>
<th scope="col">9월</th>
<th scope="col">10월</th>
<th scope="col">11월</th>
<th scope="col">12월</th>
<th scope="col">계</th>
</tr>
</thead>
<tbody>
<tr>
<td scope="col">교육접수차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">100차시</td>
<td scope="col">1200차시</td>
</tr>
<tr>
<td scope="col">구분</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
<td scope="col">강사|차시|시간(인)</td>
</tr>
<tr>
<td scope="col">5일</td>
<td scope="col">40|800|20</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">40|800|20</td>
</tr>
<tr>
<td scope="col">4일</td>
<td scope="col">30|480|16</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">30|480|16</td>
</tr>
<tr>
<td scope="col">3일</td>
<td scope="col">20|240|12</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">20|240|12</td>
</tr>
<tr>
<td scope="col">2일</td>
<td scope="col">10|80|8</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">10|80|8</td>
</tr>
<tr>
<td scope="col">1일</td>
<td scope="col">5|20|4</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">5|20|4</td>
</tr>
<tr>
<td scope="col">0일</td>
<td scope="col">5|0|0</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">5|0|0</td>
</tr>
<tr>
<td scope="col">계</td>
<td scope="col">110|1620|</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">||</td>
<td scope="col">110|1620|</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type06" onclick="self.close();">저장</button>
<button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
<!-- 강사 거리계산용 끝 -->
</body>
</html>

View File

@ -0,0 +1,584 @@
<!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"%>
<%
/**
* @Class Name : instrRsdncMngPopup.jsp
* @Description : 강사거주지별배정비율설정 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function() {
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function press(event) {
//alert(event.keyCode);
if (event.keyCode==13) {
linkPage(1);
}
return;
}
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
}
function reloadLinkPage(){
$("#btnDstnc").show();
/*
var listForm = document.listForm ;
//listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
*/
}
function fncInstrAsgnm(id, p_rank) {
$("#userId").val(id);
if (p_rank=='-'){
$("#rmrks").val(p_rank);
}else{
$("#rmrks").val("배정기준"+p_rank+"순위");
}
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//동일 학교 여부 체크
function fncInstrAsgnm_bef(id, p_rank) {
$("#userId").val(id);
$("#rmrks").val("배정기준"+p_rank+"순위");
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax_bef.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.message == ''){
if(confirm("강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank)
}
}else{
if(confirm("동일한 일자에 다른 학교 강의가 있습니다.\n("+returnData.message+")\n강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank);
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function reloadPage(){
location.reload();
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrAsgnmVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />">
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="rmrks" id="rmrks" />
<input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/>
</form:form>
<form:form id="listForm" name="listForm" 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="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" /><!-- 성인 -->
<div class="area_popup">
<div class="cont_popup">
<div class="pop_tb_tit01">
<p>강사 배정 조건 관리</p>
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: auto;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: 5%;">
</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>
<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>
<th scope="col">제주특별자치도</th>
<th scope="col">충청남도</th>
<th scope="col">충청북도</th>
</tr>
<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>
<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>
<th scope="col">비율|차시</th>
<th scope="col">비율|차시</th>
<th scope="col">비율|차시</th>
</tr>
</thead>
<tbody>
<tr>
<td scope="col">5일</td>
<td scope="col">
<input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value="50"
maxLength="2"
/>10</td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
</tr>
<tr>
<td scope="col">4일</td>
<td scope="col">
<input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value="50"
maxLength="2"
/>8</td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
</tr>
<tr>
<td scope="col">3일</td>
<td scope="col">
<input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value="50"
maxLength="2"
/>6</td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
</tr>
<tr>
<td scope="col">2일</td>
<td scope="col">
<input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value="50"
maxLength="2"
/>4</td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
</tr>
<tr>
<td scope="col">1일</td>
<td scope="col">
<input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value="50"
maxLength="2"
/>2</td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
<td scope="col"><input type="text" id="searchScholNm" name="searchScholNm" style="width:35px;" class="search_input" value=""
maxLength="2"
/></td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type06" onclick="self.close();">저장</button>
<button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
<!-- 강사 거리계산용 끝 -->
</body>
</html>

View File

@ -0,0 +1,442 @@
<!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"%>
<%
/**
* @Class Name : spcfcInstrAsgnmPopup.jsp
* @Description : 특정강사배치 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function() {
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function press(event) {
//alert(event.keyCode);
if (event.keyCode==13) {
linkPage(1);
}
return;
}
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
}
function reloadLinkPage(){
$("#btnDstnc").show();
/*
var listForm = document.listForm ;
//listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
*/
}
function fncInstrAsgnm(id, p_rank) {
$("#userId").val(id);
if (p_rank=='-'){
$("#rmrks").val(p_rank);
}else{
$("#rmrks").val("배정기준"+p_rank+"순위");
}
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//동일 학교 여부 체크
function fncInstrAsgnm_bef(id, p_rank) {
$("#userId").val(id);
$("#rmrks").val("배정기준"+p_rank+"순위");
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax_bef.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.message == ''){
if(confirm("강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank)
}
}else{
if(confirm("동일한 일자에 다른 학교 강의가 있습니다.\n("+returnData.message+")\n강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank);
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function reloadPage(){
location.reload();
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrAsgnmVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />">
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="rmrks" id="rmrks" />
<input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/>
</form:form>
<form:form id="listForm" name="listForm" 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="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" /><!-- 성인 -->
<div class="area_popup">
<div class="cont_popup">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>강사검색</p>
</div>
<div class="util_right">
<input type="text" id="instrNm" name="instrNm" class="search_input" placeholder="검색어를 입력하세요"
value="${vEEduAplctVO.instrNm}">
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
</div>
</div>
</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_type03" onclick="reloadPage();" id="btnDstnc" style="display:none;">이동거리확인</button>
</div>
</div>
<div class="pop_tb_tit01">
<p>강사 목록</p>
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 15%">
<col style="width: auto;">
<%-- <col style="width: 9%;"> --%>
<col style="width: 7%">
<col style="width: 10%">
<col style="width: 8%;">
</colgroup>
<thead>
<tr>
<th scope="col">이름</th>
<th scope="col">거주<br>지역</th>
<th scope="col">강의희망지역</th>
<th scope="col">온라인</th>
<th scope="col">강의일수</th>
<th scope="col">누적차시(월)</th>
<!-- <th scope="col">이동<br>거리</th> -->
<!-- <th scope="col">도서지역</th> -->
<!-- <th scope="col">연강</th> -->
<th scope="col">Penalty 횟수</th>
<th scope="col">선택</th>
<!-- <th scope="col">배정순위</th> -->
</tr>
</thead>
<c:set var="instrRank" value="1"/>
<c:set var="checkTopSum4Rank" value="0"/>
<tbody>
<c:forEach var="list" items="${resultList}" varStatus="status">
<c:if test="${status.count eq '1'}">
<c:set var="checkTopSum4Rank" value="${list.checkTopSum}"/>
</c:if>
<c:if test="${status.count ne '1'}">
<c:if test="${list.checkTopSum ne checkTopSum4Rank}">
<c:set var="instrRank" value="${instrRank+1}"/>
<c:set var="checkTopSum4Rank" value="${list.checkTopSum}"/>
</c:if>
</c:if>
<tr>
<td><c:out value='${list.instrNm}'/>
<br/>(${fn:split(list.userId,'_')[1]*1})
</td>
<td><c:out value='${list.rsdne}'/></td>
<td><c:out value='${list.rsdne}'/></td>
<td><c:out value='${list.zoomYn}'/></td>
<td><c:out value='${list.weekCnt}'/></td>
<td><c:out value='${list.lrnTmSum}'/></td>
<%-- <td><c:out value='${list.lrnTmSumYr}'/>/<c:out value='${list.yrPer}'/>%</td> --%>
<%-- <td><c:out value='${list.onewayDstnc}'/>Km</td> --%>
<%-- <td><c:out value='${list.isltnPsblYn}'/></td> --%>
<%-- <td><c:out value='${list.onlnPsblYn}'/></td> --%>
<%-- <td><c:out value='${list.cntnsLctrPsblYn}'/></td> --%>
<td><c:out value='${list.pnltyCnt}'/></td>
<td>
<c:if test='${empty list.chrgNm}'>
<c:choose>
<c:when test="${empty vEEduAplctVO.instrNm}">
<button class="btn_type06" onclick="fncInstrAsgnm_bef('<c:out value="${list.userId}" />', '<c:out value="${instrRank}"/>'); return false;">선택</button>
</c:when>
<c:otherwise>
<button class="btn_type06" onclick="fncInstrAsgnm_bef('<c:out value="${list.userId}" />', '-'); return false;">선택</button>
</c:otherwise>
</c:choose>
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty resultList}">
<tr><td colspan="8"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- page -->
<!--
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
-->
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 10%">
<col style="width: 5%">
<col style="width: 15%">
<col style="width: 8%">
<col style="width: 15%">
<col style="width: 10%">
<col style="width: 13%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 5%">
</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>
<th>강사명</th>
<th>선택근거</th>
<th>확정여부</th>
<th>추가강사인원</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<%-- <tr onclick="javascript:fncGoDetail('${list.eduAplctOrd}', '${list.eduChasiOrd}');" title="<c:out value='${list.eduAplctOrd}'/>" style="cursor:pointer;"> --%>
<tr>
<td>
<%-- <c:if test="${list.asgnmAprvlCd ne '20' and list.asgnmAprvlCd ne '30'}">
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}@${list.eduChasiOrd}" data-phone="<c:out value='${list.clphone}' />" data-cnt="<c:out value='${list.cnt}' />" title="Check" type="checkbox"/>
</c:if> --%>
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}@${list.eduChasiOrd}" data-phone="<c:out value='${list.clphone}' />"
data-email="<c:out value='${list.email}' />" data-cnt="<c:out value='${list.cnt}'/>" data-lctr="<c:out value='${list.userId}' />"
title="Check" type="checkbox"/>${list.asgnmAprvlCd}
</td>
<td>
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
</td>
<td>
<fmt:formatDate value="${eduHopeDt}" pattern="E"/>
</td>
<td>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value="${list.lrnTm}" />분)
</td>
<td>
<c:if test="${list.eduSlctCd eq '10'}">
(온)
</c:if>
<ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/>
</td>
<td id="listScholInsttNm">
<c:out value="${list.scholInsttNm}"/>
</td>
<td>
<c:out value="${list.trgt}"/>
</td>
<td>
<c:if test="${list.instrNm ne '' and not empty list.instrNm}">
<c:out value="${list.instrNm}"/>
<br/>(${fn:split(list.userId,'_')[1]*1})
</c:if>
</td>
<td>
<c:out value="${list.rmrks}"/>
</td>
<td>
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>
</td>
<td>
<c:choose>
<c:when test="${list.rowNo gt '0'}">
<c:out value="${list.rowNo}"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="12"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type04" onclick="self.close();">확인</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
<!-- 강사 거리계산용 끝 -->
</body>
</html>

View File

@ -100,9 +100,228 @@
, "chrgInfoUpdatePop" , "chrgInfoUpdatePop"
); );
} }
function selectInstrInfo(instrId){
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduEnd/selectInstrInfo.do"
,data: {
"userId" : instrId
}
,dataType:'json'
,success:function(returnData){
console.log(returnData);
var info = returnData.info;
$('#info_instrNm').text(info.instrNm);
var appendHtml = "";
if(info.phtAtchFileId == null)
appendHtml = '<img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요">'
else
appendHtml = '<img id="instrPhoto" alt="'+info.instrNm+' 사진" src="<c:url value="/uss/ion/pwm/getImage.do"/>?atchFileId='+info.phtAtchFileId+'" />'
$('#info_instrPhoto').append(appendHtml);
$('#info_phone').text(info.phone);
$('#info_email').text(info.email);
$('#info_post').text(info.post);
$('#info_addr').text(info.addr);
$('#info_rsdne').text(info.rsdne);
$('#info_dBirth').text(info.dBirth);
$('#info_finalSchol').text(info.finalSchol);
$('#info_mjr').text(info.mjr);
$('#info_apptYr').text(info.apptYr);
$('#info_actvtCarer').text(info.actvtCarer);
$('#info_mnLctrCn').text(info.mnLctrCn);
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script> </script>
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="instrInfo_pop01" data-focus="instrInfo_pop01" data-focus-prev="instrInfo_pop01_close" style="width:800px;">
<div class="popup_tit">
<p>강사 정보</p>
<button class="btn_popup_close tooltip-close" data-focus="instrInfo_pop01_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01">
<table>
<caption>성인대상 강사신청 등록 (th 명)을 입력하는 표</caption>
<colgroup>
<col style="width: 145px;">
<col style="width: auto;">
<col style="width: 145px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>강사명</p>
</th>
<td colspan="3" style="position: relative;">
<!-- <label for="instrNm" class="label">강사명</label> -->
<p id="info_instrNm">원영현</p>
<div class="put_photo">
<div class="put_photo_in">
<div class="put_photo_box" id="info_instrPhoto">
</div>
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p>연락처(핸드폰)</p>
</th>
<td class="input_phone" colspan="3">
<p id="info_phone"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>e-mail</p>
</th>
<td class="input_mail" colspan="3">
<p id="info_email"></p>
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<p id="info_post"></p><br>
<p id="info_addr"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>거주지</p>
</th>
<td>
<p id="info_rsdne"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>생년월일</p>
</th>
<td>
<p id="info_dBirth"></p>
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>최종학교</p>
</th>
<td>
<p id="info_finalSchol"></p>
</td>
<th scope="row">
<p>전공</p>
</th>
<td>
<p id="info_mjr"></p>
</td>
</tr>
<!-- <tr class="trLength2">
<th scope="row">
<p>최종학교</p>
</th>
<td colspan="3">
<p id="info_finalSchol">카이스트</p>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>전공</p>
</th>
<td colspan="3">
<p id="info_mjr"></p>
</td>
</tr> -->
<tr class="trLength4">
<th scope="row">
<p>위촉년도</p>
</th>
<td>
<p id="info_apptYr"></p>
</td>
<th scope="row">
<p>구분</p>
</th>
<td>
<p id="info_divCd"></p>
</td>
</tr>
<!-- <tr class="trLength2">
<th scope="row">
<p>위촉년도</p>
</th>
<td colspan="3">
<p id="info_apptYr">2022</p>
</td>
</tr><tr>
</tr><tr class="trLength2">
<th scope="row">
<p>구분</p>
</th>
<td colspan="3">
<p id="info_divCd">입문</p>
</td>
</tr>
<tr><th scope="row">
<p>위촉구분</p>
</th>
<td>
<p></p id="info_apptDiv"><p></p>
</td>
</tr> -->
<tr>
<th scope="row">
<p>활동경력</p>
</th>
<td colspan="3">
<p id="info_actvtCarer"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>주요강의내용</p>
</th>
<td colspan="3">
<p id="info_mnLctrCn"></p>
</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="btnType02 tooltip-close" data-focus="instrInfo_pop01_close" data-focus-next="instrInfo_pop01">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post"> <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="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
@ -356,7 +575,18 @@
(${list.lrnTm}분) (${list.lrnTm}분)
</td> </td>
<td>${list.trgt}</td> <td>${list.trgt}</td>
<td>${empty list.instrNm ? '-' : list.instrNm}</td> <td>
<%-- ${empty list.instrNm ? '-' : list.instrNm} --%>
<c:choose>
<c:when test="${empty list.instrNm }">
-
</c:when>
<c:otherwise>
<button type="button" class="btnType04" data-tooltip="instrInfo_pop01"
onclick="selectInstrInfo('${list.userId}')" title="팝업 열림">${list.instrNm}</button>
</c:otherwise>
</c:choose>
</td>
<td>${list.prsnl}</td> <td>${list.prsnl}</td>
</tr> </tr>
</c:forEach> </c:forEach>

View File

@ -332,8 +332,227 @@
, "fileUploadPop" , "fileUploadPop"
); );
} }
function selectInstrInfo(instrId){
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduEnd/selectInstrInfo.do"
,data: {
"userId" : instrId
}
,dataType:'json'
,success:function(returnData){
console.log(returnData);
var info = returnData.info;
$('#info_instrNm').text(info.instrNm);
var appendHtml = "";
if(info.phtAtchFileId == null)
appendHtml = '<img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요">'
else
appendHtml = '<img id="instrPhoto" alt="'+info.instrNm+' 사진" src="<c:url value="/uss/ion/pwm/getImage.do"/>?atchFileId='+info.phtAtchFileId+'" />'
$('#info_instrPhoto').append(appendHtml);
$('#info_phone').text(info.phone);
$('#info_email').text(info.email);
$('#info_post').text(info.post);
$('#info_addr').text(info.addr);
$('#info_rsdne').text(info.rsdne);
$('#info_dBirth').text(info.dBirth);
$('#info_finalSchol').text(info.finalSchol);
$('#info_mjr').text(info.mjr);
$('#info_apptYr').text(info.apptYr);
$('#info_actvtCarer').text(info.actvtCarer);
$('#info_mnLctrCn').text(info.mnLctrCn);
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script> </script>
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="instrInfo_pop01" data-focus="instrInfo_pop01" data-focus-prev="instrInfo_pop01_close" style="width:800px;">
<div class="popup_tit">
<p>강사 정보</p>
<button class="btn_popup_close tooltip-close" data-focus="instrInfo_pop01_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01">
<table>
<caption>성인대상 강사신청 등록 (th 명)을 입력하는 표</caption>
<colgroup>
<col style="width: 145px;">
<col style="width: auto;">
<col style="width: 145px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>강사명</p>
</th>
<td colspan="3" style="position: relative;">
<!-- <label for="instrNm" class="label">강사명</label> -->
<p id="info_instrNm">원영현</p>
<div class="put_photo">
<div class="put_photo_in">
<div class="put_photo_box" id="info_instrPhoto">
</div>
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p>연락처(핸드폰)</p>
</th>
<td class="input_phone" colspan="3">
<p id="info_phone"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>e-mail</p>
</th>
<td class="input_mail" colspan="3">
<p id="info_email"></p>
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<p id="info_post"></p><br>
<p id="info_addr"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>거주지</p>
</th>
<td>
<p id="info_rsdne"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>생년월일</p>
</th>
<td>
<p id="info_dBirth"></p>
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>최종학교</p>
</th>
<td>
<p id="info_finalSchol"></p>
</td>
<th scope="row">
<p>전공</p>
</th>
<td>
<p id="info_mjr"></p>
</td>
</tr>
<!-- <tr class="trLength2">
<th scope="row">
<p>최종학교</p>
</th>
<td colspan="3">
<p id="info_finalSchol">카이스트</p>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>전공</p>
</th>
<td colspan="3">
<p id="info_mjr"></p>
</td>
</tr> -->
<tr class="trLength4">
<th scope="row">
<p>위촉년도</p>
</th>
<td>
<p id="info_apptYr"></p>
</td>
<th scope="row">
<p>구분</p>
</th>
<td>
<p id="info_divCd"></p>
</td>
</tr>
<!-- <tr class="trLength2">
<th scope="row">
<p>위촉년도</p>
</th>
<td colspan="3">
<p id="info_apptYr">2022</p>
</td>
</tr><tr>
</tr><tr class="trLength2">
<th scope="row">
<p>구분</p>
</th>
<td colspan="3">
<p id="info_divCd">입문</p>
</td>
</tr>
<tr><th scope="row">
<p>위촉구분</p>
</th>
<td>
<p></p id="info_apptDiv"><p></p>
</td>
</tr> -->
<tr>
<th scope="row">
<p>활동경력</p>
</th>
<td colspan="3">
<p id="info_actvtCarer"></p>
</td>
</tr>
<tr>
<th scope="row">
<p>주요강의내용</p>
</th>
<td colspan="3">
<p id="info_mnLctrCn"></p>
</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="btnType02 tooltip-close" data-focus="instrInfo_pop01_close" data-focus-next="instrInfo_pop01">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 팝업을 위한 mask --> <!-- 팝업을 위한 mask -->
<div class="mask"></div> <div class="mask"></div>
@ -843,7 +1062,18 @@
(${list.lrnTm}분) (${list.lrnTm}분)
</td> </td>
<td>${list.trgt}</td> <td>${list.trgt}</td>
<td>${empty list.instrNm ? '-' : list.instrNm}</td> <td>
<%-- ${empty list.instrNm ? '-' : list.instrNm} --%>
<c:choose>
<c:when test="${empty list.instrNm }">
-
</c:when>
<c:otherwise>
<button type="button" class="btnType04" data-tooltip="instrInfo_pop01"
onclick="selectInstrInfo('${list.userId}')" title="팝업 열림">${list.instrNm}</button>
</c:otherwise>
</c:choose>
</td>
<td>${list.prsnl}</td> <td>${list.prsnl}</td>
<td> <td>

View File

@ -4,6 +4,23 @@
Description : 교육신청 Description : 교육신청
Modification Information Modification Information
1.해당일에 접수가 가능한 강의 회차를 가져온다.(먼저 가능한 강의 회차)
==>vea_lctr_rnds_stng
rndsOrd
==>없으면 오류 발생
2.교육신청시 교육희망일 비교하여 가능한 정보를 가져온다.
2-1.신청 가능한 일자인지(구현)
(해당 강의 회차의 교육 가능일자만 신청 가능하도록)
==>vea_lctr_rnds_stng
2-2.신청 가능한 시간인지(미구현)
2-3.해당일 신청가능한 차시가 남았는지(미구현)
2-4.해당 지역에 신청 가능한 차시가 남았는지(미구현)
2-5.동일한 날짜에 기 신청된 건이 있는지(구현)
수정일 수정자 수정내용 수정일 수정자 수정내용
------- -------- --------------------------- ------- -------- ---------------------------
2021.12.02 조용준 내용 2021.12.02 조용준 내용

View File

@ -1013,7 +1013,8 @@
- -
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<button type="button" class="btnType04" data-tooltip="instrInfo_pop01" onclick="selectInstrInfo('${list.userId}')" title="팝업 열림">${cryptoUtil.decrypt(list.instrNm) }</button> <button type="button" class="btnType04" data-tooltip="instrInfo_pop01"
onclick="selectInstrInfo('${list.userId}')" title="팝업 열림">${cryptoUtil.decrypt(list.instrNm) }</button>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>