This commit is contained in:
subsub 2024-01-16 17:01:37 +09:00
commit b20d9fc5ea
29 changed files with 609 additions and 586 deletions

View File

@ -1282,11 +1282,32 @@ public class CommonWebController {
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrMntAsgnmtChasiList(vEAutoAsgnmVO);
//step2-1-1.동일일자 시간대에 배정이 없는강사찾기
for (int j=0;j<vEInstrAssiEduAplctVOList.size();j++) {
s_user_id = s_user_id + ",'" + vEInstrAssiEduAplctVOList.get(j).getUserId()+"'";
}
if (!"'aaa'".equals(s_user_id)) { //대상 강사가 있을때만 다음을 실행한다.
System.out.println("===O있음===");
System.out.println("===////step2-1-1.동일일자 시간대에 배정이 없는강사찾기(필)===");
vEAutoAsgnmVO.setUserIds(s_user_id);
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrTimeDupFilterList(vEAutoAsgnmVO);
}else {
System.out.println("===X없음===");
}
//step2-2.희망 지역 강사 검색()
//오프라인, 온라인 구분해서 희망 지역 체크가 필요하다.
//오프라인의 경우 ()
//온라인인 경우 (해당 강사의 zoom 가능 여부 체크)
s_user_id = "'aaa'";
for (int j=0;j<vEInstrAssiEduAplctVOList.size();j++) {
s_user_id = s_user_id + ",'" + vEInstrAssiEduAplctVOList.get(j).getUserId()+"'";
}

View File

@ -268,7 +268,7 @@ public class ScholInfoController {
vList.get(i).setColor("#FF0000");
}else if (Integer.parseInt(vList.get(i).getTitleF())>=Integer.parseInt(vList.get(i).getTitleB()))
{
{ //신청 시간이 넘어간 경우로 불가능 처리함
vList.get(i).setColor("#FF0000");
//vList.get(i).setTitle("가능");
vList.get(i).setTitle("불가능");

View File

@ -41,7 +41,9 @@ public interface EduAplctTngrService {
//boolean eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception;
String eduAplctDateChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//해당일에 신청가능한 차시가 남아 있는지 - 신청지역
String eduAplctChkZoneChasiProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//해당일에 신청가능한 차시가 남아 있는지 - 전체
String eduAplctChkDayChasiProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception;
//해당일에 신청가능한 차시가 남아 있는지 - 개별

View File

@ -670,6 +670,66 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return v_ret;
}
@Override
public String eduAplctChkZoneChasiProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
boolean flag = true;
String v_ret = "";
String eduSlctCd = request.getParameter("eduSlctCd");
//차시 저장
String[] s_eduHopeDt = request.getParameterValues("eduHopeDt");
String[] s_strtTm = request.getParameterValues("strtTm");
String[] s_endTm = request.getParameterValues("endTm");
String[] eduSlctAreaCd = request.getParameterValues("eduSlctAreaCd");
String[] prdDivCd = request.getParameterValues("prdDivCd");
String rndsOrd = request.getParameter("rndsOrd");
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setRndsOrd(rndsOrd);
//VELctrDetailVO vELctrDetailVO = new VELctrDetailVO();
if ("10".equals(eduSlctCd)) { //온라인인 경우
vEAStngVO.setAreaCd("400");
}else { //오프라인인 경우
vEAStngVO.setAreaCd(eduSlctAreaCd[0]);
}
//vELctrDetailVO.setPrdDivCd(prdDivCd[i]);
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
List<VEAStngVO> list = vELctrAreaMngDAO.selectList20231024(vEAStngVO);
//해당지역의 신청한 차시
int i_aplctChasi = 0; //신청된 차시
int i_psblChasi = 0; //신청가능한 차시
try {
i_aplctChasi = vELctrAreaMngDAO.selectList20231027(vEAStngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
if (list.size()>0) {
i_aplctChasi = Integer.parseInt(list.get(0).getPsblTmQntty());
}
if (i_aplctChasi>=i_psblChasi) {
flag = false;
v_ret = "해당 지역의 차시 제한 초과";
}
return v_ret;
}
//개별 시간 체크
@Override
public String eduAplctEAChkProcessToStr(

View File

@ -360,7 +360,11 @@ public class EduAplctTngrController {
(해당 강의 회차의 교육 가능일자만 신청 가능하도록)
==>vea_lctr_rnds_stng
2-2.신청 가능한 시간인지(구현)
2-3.해당일 신청가능한 차시가 남았는지(미구현)
2-3-1.해당지역에 신청가능한 차시가 남았는지(미구현)
2-3.해당일 신청가능한 차시가 남았는지(구현)
2-4.동일한 날짜에 신청된 건이 있는지(구현)
* */
@ -407,9 +411,10 @@ public class EduAplctTngrController {
modelAndView.addObject("msg", s_flag);
return modelAndView;
}
//2-3.해당일 신청가능한 차시가 남았는지
// 교육가능시수 체크 - Y
//지역의 접수시간 체크 - N
String s_flag4 = eduAplctTngrService.eduAplctChkDayChasiProcessToStr(request, modelAndView);
if(!"".equals(s_flag4)){
@ -437,6 +442,81 @@ public class EduAplctTngrController {
return modelAndView;
}
/**
* 해당 지역이 신청 가능한지 체크
*/
@RequestMapping("eduAplctChkZoneAjax.do")
public ModelAndView eduAplctChkZoneAjax(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
/*
* //0.로그인 실패-fail4
* //1.교육희망일이 신청 가능한 일자인지 fail3
//2.신청 시간이 해당 지역의 가능한 시간인지 fail
//3.중복시간 체크 - fail2
* */
//로그인 처리====================================
//0.로그인 실패-fail4
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
modelAndView.addObject("result", "fail5");
return modelAndView;
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
/*
* 2.교육신청시 교육희망일 비교하여 가능한 정보를 가져온다.
2-1.신청 가능한 일자인지(구현)
(해당 강의 회차의 교육 가능일자만 신청 가능하도록)
==>vea_lctr_rnds_stng
2-2.신청 가능한 시간인지(구현)
2-3-1.해당지역에 신청가능한 차시가 남았는지(미구현)
2-3.해당일 신청가능한 차시가 남았는지(구현)
2-4.동일한 날짜에 신청된 건이 있는지(구현)
* */
try {
//1.교육희망일이 신청 가능한 일자인지 fail3
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
vEAStngVO.setRndsOrd(request.getParameter("rndsOrd"));
System.out.println(vEAStngVO.toString());
/*
boolean flag3 = vEAStngMixService.eduAplctChkDate(vEAStngVO, request);
if(!flag3){
modelAndView.addObject("result", "fail3");
return modelAndView;
}
*/
//2-3-1.해당지역에 신청가능한 차시가 남았는지(미구현)
String s_flag5 = eduAplctTngrService.eduAplctChkZoneChasiProcessToStr(request, modelAndView);
if(!"".equals(s_flag5)){
modelAndView.addObject("result", "fail6");
modelAndView.addObject("msg", s_flag5);
return modelAndView;
}
modelAndView.addObject("VO", vEEduAplctVO);
modelAndView.addObject("result", "success");
}catch(Exception ex) {
ex.printStackTrace();
}
return modelAndView;
}
/**
* 교육 신청 강의신청기간, 강의가능시간이 유효한지 체크 - 건별 체크
*/

View File

@ -9,6 +9,9 @@ public interface VEAutoAsgnmMIXService {
//해당 차시 학교에 거주하는 강사
List<VEAutoAsgnmVO> selectRsdneInstrList(VEAutoAsgnmVO paramVO) throws Exception;
//step2-1-1.동일일자,시간에 배정안된 강사 검색()
List<VEAutoAsgnmVO> selectInstrTimeDupFilterList(VEAutoAsgnmVO paramVO) throws Exception;
//step2-2.희망 지역 강사 검색()
List<VEAutoAsgnmVO> selectInstrHopeAreaList(VEAutoAsgnmVO paramVO) throws Exception;

View File

@ -21,6 +21,12 @@ public class VEAutoAsgnmMIXDAO extends EgovAbstractDAO {
List<VEAutoAsgnmVO> tlist = (List<VEAutoAsgnmVO>) list("VEAutoAsgnmDAO.selectRsdneInstrList", paramVO);
return tlist;
}
public List<VEAutoAsgnmVO> selectInstrTimeDupFilterList(VEAutoAsgnmVO paramVO) {
@SuppressWarnings("unchecked")
List<VEAutoAsgnmVO> tlist = (List<VEAutoAsgnmVO>) list("VEAutoAsgnmDAO.selectInstrTimeDupFilterList", paramVO);
return tlist;
}
public List<VEAutoAsgnmVO> selectInstrHopeAreaList(VEAutoAsgnmVO paramVO) {
@SuppressWarnings("unchecked")

View File

@ -27,7 +27,12 @@ public class VEAutoAsgnmMIXServiceImpl implements VEAutoAsgnmMIXService {
public List<VEAutoAsgnmVO> selectRsdneInstrList(VEAutoAsgnmVO paramVO) throws Exception{
return vEAutoAsgnmMIXDAO.selectRsdneInstrList(paramVO);
}
@Override
public List<VEAutoAsgnmVO> selectInstrTimeDupFilterList(VEAutoAsgnmVO paramVO) throws Exception{
return vEAutoAsgnmMIXDAO.selectInstrTimeDupFilterList(paramVO);
}
@Override
public List<VEAutoAsgnmVO> selectInstrHopeAreaList(VEAutoAsgnmVO paramVO) throws Exception{
return vEAutoAsgnmMIXDAO.selectInstrHopeAreaList(paramVO);

View File

@ -84,6 +84,11 @@ public class VELctrAreaMngDAO extends EgovAbstractDAO {
public int selectList20231026(VEAStngVO paramVO) throws Exception {
return (int) select("VELctrAreaMngDAO.selectList20231026", paramVO);
}
//해당 라운드가 속한 년도의 해당 지역의 신청한 차시수
public int selectList20231027(VEAStngVO paramVO) throws Exception {
return (int) select("VELctrAreaMngDAO.selectList20231027", paramVO);
}
//L
public List<VELctrDetailVO> selectOnList(VELctrDetailVO paramVO) throws Exception {

View File

@ -4,11 +4,9 @@ import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
@ -27,13 +25,9 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.rte.fdl.cmmn.exception.FdlException;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.CmmnDetailCode;
import kcc.com.cmm.service.EgovCmmUseService;
@ -47,7 +41,6 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@ -1379,27 +1372,33 @@ public class CndtnTrgtMngController {
//로그인 처리====================================
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO);
try {
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO);
// 관할청 공통코드
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VEA008");
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
// 관할청 공통코드
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VEA008");
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
String userWork = this.getUserWork(request);
model.addAttribute("userWork", userWork);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
}catch(Exception ex) {
ex.printStackTrace();
}
String userWork = this.getUserWork(request);
model.addAttribute("userWork", userWork);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtMdfy";
}
@ -1420,54 +1419,59 @@ public class CndtnTrgtMngController {
//로그인 처리====================================
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
//복호화
cndtnTrgtInfoVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoVO);
model.addAttribute("info", cndtnTrgtInfoVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
/*
// 관할청 공통코드
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VEA008");
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
*/
try {
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
//복호화
cndtnTrgtInfoVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoVO);
model.addAttribute("info", cndtnTrgtInfoVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
/*
// 관할청 공통코드
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VEA008");
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
*/
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VEA008");
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VEA008");
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
// CODE 값을 저장할 Set (중복을 제거하기 위해 사용)
Set<String> uniqueCodes = new HashSet<>();
for(CmmnDetailCode vo : CmmnDetailCodeList) {
uniqueCodes.add(vo.getCode().split("-")[0]);
// CODE 값을 저장할 Set (중복을 제거하기 위해 사용)
Set<String> uniqueCodes = new HashSet<>();
for(CmmnDetailCode vo : CmmnDetailCodeList) {
uniqueCodes.add(vo.getCode().split("-")[0]);
}
model.addAttribute("CmmnDetailCodeList", uniqueCodes);
// 관할청 - 지역명
String codeNm = cndtnTrgtInfoVO.getCmptntAthrt().split("-")[0];
model.addAttribute("cmptntAthrtCode", codeNm);
codeParam.setCodeNm(codeNm);
List<CmmnDetailCode> CmmnDetailList = egovCmmUseService.selectCmmCodeDetailLikeNmOrderByCode(codeParam);
model.addAttribute("cmmnCodeList", CmmnDetailList);
}catch(Exception ex) {
ex.printStackTrace();
}
model.addAttribute("CmmnDetailCodeList", uniqueCodes);
// 관할청 - 지역명
String codeNm = cndtnTrgtInfoVO.getCmptntAthrt().split("-")[0];
model.addAttribute("cmptntAthrtCode", codeNm);
codeParam.setCodeNm(codeNm);
List<CmmnDetailCode> CmmnDetailList = egovCmmUseService.selectCmmCodeDetailLikeNmOrderByCode(codeParam);
model.addAttribute("cmmnCodeList", CmmnDetailList);
return "oprtn/cndtnSspnIdtmt/trgtMngMdfy";

View File

@ -692,6 +692,102 @@ public class EduAplctMngTngrController {
}
/**
* 청소년찾아가는 저작권 교육 목록 Excel
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduAplctApplyExcelDownLoad.do")
public ModelAndView eduAplctApplyExcelDownLoad(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
try {
//년도
if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){
//vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear()));
}
//
if(StringUtils.isBlank(vEEduAplctVO.getSearchMonth())){
//vEEduAplctVO.setSearchMonth(String.valueOf(LocalDate.now().getMonthValue()));
}
// 요청, 반려건
//vEEduAplctVO.setSearchNotStatusArr(new String[]{"60",});
// 청소년
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduAplctVO.setMode(VeConstants.MODE_EXCEL);
vEEduAplctVO.setS4Excel("Y");
//List<VEEduAplctVO> list = vEEduMIXService.selectPagingList(vEEduAplctVO);
List<VEEduAplctVO> list = vEEduMIXService.selectPagingApplyList(vEEduAplctVO);
list = egovCryptoUtil.decryptVEEduAplctVOList(list);
list.forEach( vo -> {
/*
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VE0008");
codeParam.setCode(vo.getEduSlctAreaCd());
vo.setEduSlctAreaCd(egovCmmUseService.selectCmmCodeDetailCodeValue(codeParam));
codeParam.setCodeId("VE0009");
codeParam.setCode(vo.getScholDivCd());
vo.setScholDivCd(egovCmmUseService.selectCmmCodeDetailCodeValue(codeParam));
codeParam.setCodeId("VE0003");
codeParam.setCode(vo.getAprvlCd());
vo.setAprvlCd(egovCmmUseService.selectCmmCodeDetailCodeValue(codeParam));
*/
//vo.setEduHopeDt(CmmUtil.getStrDateFormat(vo.getEduHopeDt()));
});
List<Object> excelData = new ArrayList<>();
excelData.addAll(list);
// 세팅값
String title = "청소년 찾아가는 저작권 교육 - 교육신청 목록";
int[] width = {
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 7000, 10000
, 4000
, 4000, 4000
}; // 너비
String[] header = {
"교육일자", "신청일자", "지역", "학교(기관)명", "신청시간"
, "학교구분", "신청자", "담당자", "연락처", "휴대전화", "E-mail", "주소"
, "신청상태", "확정일자"
, "신청차시", "신청일시"
};
String[] order = {
"EduHopeDt", "SbmtPnttm", "EduSlctAreaCd", "ScholInsttNm", "LrnTm"
, "ScholDivCd", "UserNm", "ChrgNm", "Phone", "Clphone", "Email", "Addr"
, "AprvlCd","AprvlPnttm"
, "ChasiCnt","FrstRegistPnttm"
};
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
modelAndView.setViewName("excelDownloadView");
modelAndView.addObject(model);
}catch(Exception ex) {
ex.printStackTrace();
}
return modelAndView;
}
/**
* 청소년찾아가는 저작권 교육 목록 Excel
* @param model

View File

@ -207,6 +207,23 @@ public class EduAsgnmCnfrmMngTngrController {
vEEduAplctVO.setSearchAsgnmAprvlCd("30"); //교육배치확정 대상은 강사가 배정확정되어야 한다.
if (!"".equals(vEEduAplctVO.getSearchKeyword())) {
if ("2".equals(vEEduAplctVO.getSearchCondition())) {
vEEduAplctVO.setSelectPagingListQuery(" AND i.instr_nm='"+egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())+"'");
}else if ("0".equals(vEEduAplctVO.getSearchCondition())) {
vEEduAplctVO.setSelectPagingListQuery(" AND (A.SCHOL_INSTT_NM LIKE '%' || '"+vEEduAplctVO.getSearchKeyword()+"' || '%' OR i.instr_nm='"+egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())+"')");
}
//AND A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%'
//vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
}
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
//이름 복호화
VEEduAplctVO vo = new VEEduAplctVO();

View File

@ -458,6 +458,44 @@
END
,0)>NVL(aa.chasi,0)
</select>
<!-- //step2-1-1.해당 일자, 시간대에 강의가 없는 강사만(필) L page -->
<select id="VEAutoAsgnmDAO.selectInstrTimeDupFilterList" parameterClass="VEAutoAsgnmVO" resultClass="VEAutoAsgnmVO" remapResults="true">
/* VEAutoAsgnmDAO.selectInstrTimeDupFilterList */
/* 해당일자, 시간대에 강의가 없는 강사만 필수 */
SELECT aa.userId
FROM (
SELECT
b.user_id AS userId
, c.edu_hope_dt
, c.strt_tm
, c.end_tm
FROM
ve_edu_chasi_instr_asgnm b
, ve_edu_chasi c
WHERE
1 = 1
AND b.user_id IN ($userIds$)
AND b.edu_chasi_ord = c.edu_chasi_ord
)aa
LEFT OUTER JOIN ve_edu_chasi bb
on(
aa.edu_hope_dt=bb.edu_hope_dt
AND bb.edu_chasi_ord = #eduChasiOrd#
AND ( aa.strt_tm BETWEEN bb.strt_tm AND bb.end_tm
OR aa.end_tm BETWEEN bb.strt_tm AND bb.end_tm
OR bb.strt_tm BETWEEN aa.strt_tm AND aa.end_tm
OR bb.end_tm BETWEEN aa.strt_tm AND aa.end_tm )
)
WHERE 1=1
GROUP BY aa.userId
HAVING 0 >= SUM(CASE WHEN bb.edu_chasi_ord IS NULL THEN 0 ELSE 1 END)
</select>
<!-- //step2-2.희망 지역 강사 검색(필) L page -->
<select id="VEAutoAsgnmDAO.selectInstrHopeAreaList" parameterClass="VEAutoAsgnmVO" resultClass="VEAutoAsgnmVO" remapResults="true">

View File

@ -1043,7 +1043,11 @@
AND A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%'
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND A.CHRG_NM LIKE '%' || #searchKeyword# || '%'
/*
OR A.CHRG_NM LIKE '%' || searchKeyword || '%'
*/
</isEqual>
</isNotEmpty>
@ -5857,7 +5861,10 @@ VALUES
<select id="VEEduMIXDAO.selectSatisfactionExcelList" parameterClass="VEEduAplctVO" resultClass="VEEduSatisfactionExcelVO">
/* VEEduMIXDAO.selectSatisfactionExcelList */
SELECT
/*
substring(bbbb.edu_hope_dt,1,4)|| '-'|| substring(bbbb.edu_hope_dt,5,2)|| '-'|| substring(bbbb.edu_hope_dt,7,2) AS eduHopeDt
*/
bbbb.edu_hope_dt AS eduHopeDt
, cccc.schol_instt_nm AS scholInsttNm
, eeee.instr_nm AS instrNm
/*
@ -6070,7 +6077,7 @@ VALUES
SELECT EDU_APLCT_ORD
, EDU_CHASI_ORD
, '응답자' nos
, '0' vals
, 0 vals
, SUM(qestnSn1) AS qestnSn1
, SUM(qestnSn2) AS qestnSn2
, SUM(qestnSn3) AS qestnSn3
@ -6079,7 +6086,7 @@ VALUES
, SUM(qestnSn6) AS qestnSn6
, SUM(qestnSn7) AS qestnSn7
, SUM(qestnSn8) AS qestnSn8
, '0' AS srt
, 0 AS srt
FROM (
/*
A.VERY_SATISFIED AS verySatisfied ,
@ -6263,7 +6270,7 @@ VALUES
SELECT EDU_APLCT_ORD
, EDU_CHASI_ORD
, '점수' nos
, '0' vals
, 0 vals
/*
, IF(qestnSn1 IS NULL OR qestnSn1=0,0,ROUND(CAST(SUM(qestnSn1*vals*1.0) / SUM(qestnSn1*5.0)*100.0 AS double),2)) AS qestnSn1
, IF(qestnSn2 IS NULL OR qestnSn2=0,0,ROUND(CAST(SUM(qestnSn2*vals*1.0) / SUM(qestnSn2*5.0)*100.0 AS double),2)) AS qestnSn2
@ -6294,7 +6301,7 @@ VALUES
,ROUND(SUM(DECODE(qestnSn7,0,0,qestnSn7) *vals*1.0)*100 / DECODE(SUM(DECODE(qestnSn7,0,0,qestnSn7)*5.0),0,1,SUM(DECODE(qestnSn7,0,0,qestnSn7)*5.0)),2) AS qestnSn7
,ROUND(SUM(DECODE(qestnSn8,0,0,qestnSn8) *vals*1.0)*100 / DECODE(SUM(DECODE(qestnSn8,0,0,qestnSn8)*5.0),0,1,SUM(DECODE(qestnSn8,0,0,qestnSn8)*5.0)),2) AS qestnSn8
, '99' AS srt
, 99 AS srt
FROM (
/*
A.VERY_SATISFIED AS verySatisfied ,

View File

@ -747,7 +747,34 @@
GROUP BY d.edu_hope_dt
</select>
<!-- 해당 일자에 신청한 차시 정보를 가져온다. L -->
<select id="VELctrAreaMngDAO.selectList20231027" parameterClass="VEAStngVO" resultClass="int">
/* VELctrAreaMngDAO.selectList20231027 */
SELECT sum(d.chasi) AS psblTmQnttyCnt
FROM vea_lctr_rnds_stng a ,
vea_lctr_rnds_stng b
, ve_edu_aplct c
, ve_edu_chasi d
WHERE 1=1
AND a.yr =b.yr
AND a.rnds_ord=#rndsOrd#
AND d.edu_hope_dt=#trgtDt#
AND b.RNDS_ORD =c.RNDS_ORD
AND c.EDU_APLCT_ORD =d.EDU_APLCT_ORD
AND c.edu_slct_area_cd = #areaCd#
AND NVL(c.use_yn,'Y')='Y'
AND c.SBMT_YN = 'Y'
/* 요청(10), 선정완료(120), 승인(20), 교육확정(60), 수정요청(70), 수정요청 완료(80), 대기 수량(230)을 모두 카운트 한다. */
AND c.aprvl_cd IN ('10','120','20','60','70','80','230')
GROUP BY d.edu_hope_dt
</select>
<!-- 강사 정보 L -->
<select id="VELctrAreaMngDAO.selectDateChkList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
/* VELctrAreaMngDAO.selectDateChkList */

View File

@ -17,7 +17,9 @@
<pattern>/web/survey/surveyResultPreview.do</pattern> <!-- 사용자 설문 결과 팝업 -->
<pattern>/web/survey/jsontest.do</pattern> <!-- 사용자 설문 결과 팝업 -->
<pattern>/web/ve/aplct/tngrVisitEdu/lctrSrvy/lctrSrvyReg.do</pattern> <!-- 찾교 설문조사 화면 -->
<pattern>*/web/ve/**/*Popup*</pattern> <!-- 찾교 팝업(강사신청 반려 팝업) -->
<pattern>*/web/ve/**/*Popup*</pattern> <!-- 찾교 팝업(강사신청 반려 팝업) -->
<pattern>/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctRegIncPrivacy.do</pattern> <!-- 개인정보 -->
<!-- <pattern>*/eduEndQustnrNoLoginDetail.do</pattern> -->
</decorator>

View File

@ -453,7 +453,7 @@
<th scope="row">의뢰상태</th>
<td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
selectedText="교육대기" defaultValue="10"
defaultText='선택'
/>
</td>
@ -493,7 +493,7 @@
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
<p>의뢰통지서</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->

View File

@ -334,7 +334,7 @@
var optionNOT = {
// 차트 제목
title: {
text: '월별 횟수 차트 (총합 :' + dataNOTSum +')',
text: '전체 운영 차트 (총합 :' + dataNOTSum +')',
},
// x축 라벨
xAxis: {

View File

@ -76,7 +76,7 @@
function excelDownLoad(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctExcelDownLoad.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctApplyExcelDownLoad.do'/>";
listForm.submit();
}
@ -376,7 +376,7 @@
<option value='1000' <c:if test="${vEEduAplctVO.pageUnit == '1000'}">selected</c:if>>1000줄</option>
</select>
<button type="button" class="btn_type03" onclick="fncPrintListPopup(); return false;">신청서 일괄출력</button>
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button> -->
<button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button>
</div>
</div>
@ -388,11 +388,11 @@
<col style="width: 5%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 6%">
<col style="width: 10%">
<col style="width: auto;">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 8%">
<col style="width: 10%">
<col style="width: 8%">

View File

@ -391,9 +391,10 @@
<col style="width: 5%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 6%">
<col style="width: 10%">
<col style="width: auto;">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 8%">

View File

@ -152,7 +152,6 @@
/>
<select class="sel_type1" name="searchCondition" id="searchCondition">
<option value="0" ${vEEduAplctVO.searchCondition eq '0' ? 'selected' : '' }>전체</option>
<option value="1" ${vEEduAplctVO.searchCondition eq '1' ? 'selected' : '' }>학교명</option>
<option value="2" ${vEEduAplctVO.searchCondition eq '2' ? 'selected' : '' }>강사이름</option>
</select>

View File

@ -618,8 +618,8 @@
<div class="btn_left">
</div>
<div class="btn_center" style="width: 100%;">
<button type="button" class="btn_type04" onclick="fncAprooval(); return false;">확인</button>
<button type="button" class="btn_type02" onclick="window.close()">취소</button>
<!-- <button type="button" class="btn_type04" onclick="fncAprooval(); return false;">확인</button> -->
<button type="button" class="btn_type02" onclick="window.close()">닫기</button>
</div>
<div class="btn_right">
</div>

View File

@ -59,7 +59,7 @@
</div>
</div>
<div class="faq_Wrap">
<div class="faq_Wrap full_faq">
<ul class="faq">
<c:forEach var="result" items="${resultList}" varStatus="status">
<li>

View File

@ -32,491 +32,7 @@
background-color: #f9f9f9 !important;
}
</style>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
$('.time').attr('readonly',true);
//교육 선택에 따른 항목 노출
itemChg($("#eduSlctCd").val());
});
function prsnlCheck(thisObj){
if(thisObj.value < 10){
alert('교육 최소인원은 10명 이상입니다.');
$(this).focus();
return false;
}
}
function callBackSchPop(schData){
if(emptyObject(schData)){
alert("오류가 발생하였습니다. 관리자에게 문의해주세요 [ERR-SCH-POP]")
return false;
}
$("#scholInsttNm").val(schData.scholNm);
$("#stndrdScholCd").val(schData.stndrdScholCd);
$("#post").val(schData.newZipcd);
$("#addr").val(schData.newAddr);
$("#addrDetail").val(schData.newAddrDtl);
console.log(schData);
}
function fncCancle(){
if(confirm("교육신청을 취소하시겠습니까?")){
fncGoList();
}
}
function fncReset(isMsg){
if(isMsg == undefined && !confirm("교육신청을 내용을 초기화하시겠습니까?")){
return false;
}
$(".tb_write").find("input[type=text],input[type=hidden],textarea").val('');
$(".tb_write").find("select").prop('selectedIndex', 0);
$(".tb_write").find("input[type=radio]:first-child").attr('checked',true);
$(".addClassRow > tbody > tr:not(:first)").remove();
var rowObj = $(".addClassRow > tbody > tr:first");
rowObj.find('input[name=eduHopeDt]').val('');
rowObj.find('input[name=strtTm]').val('');
rowObj.find('input[name=endTm]').val('');
rowObj.find('input[name=trgt]').val('');
rowObj.find('input[name=prsnl]').val('');
rowObj.find('input[name=lrnTm]').val('');
$("#agree").prop('checked',false);
}
function fncGoList(){
$("#eduAplctOrd").val('');
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
varFrom.submit();
}
function fncGoDetail(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do'/>";
varFrom.submit();
}
//주소검색에 따른 지역 코드 값 가져오기
function codeVal(pram){
var code ='';
$.ajax({
method : "GET",
url : "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctRegCodeAjax.do' />",
async : false,
data : {
"codeDc" : pram
},
success : function(response) {
code = response.code;
},
error : function(request, status, error) {
console.log("code:"+request.status + "\n message:" + request.responseText +"\n error:" + error);
}
});
return code;
}
function fncSave(type){
//주소검색에 따른 지역 코드 값 세팅
var sigunguCode = $('#sigunguCode').val();
var eduSlctAreaCd = codeVal(sigunguCode);
document.createForm.eduSlctAreaCd.value = eduSlctAreaCd;
//온라인 일때는 교유선택 지역코드 불필요
if($("#eduSlctCd").val() == "10")
{
$("#eduSlctAreaCd").attr("disabled", "disabled");
}
if(type == 'S' || type == 'E' ){
if (!validCheck()) return;
}
var url = '${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctRegAjax.do';
if(VeConstants.MODE_UPT == $("#mode").val()){
url = '${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctMdfyAjax.do';
}
if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){
if(type != 'E' ){
if(type == 'I'){
$("#sbmtYn").val("N");
}else{
$("#sbmtYn").val("Y");
$("#aprvlCd").val(VeConstants.APRVL_CD_10);
}
}
//핸드폰번호 하이푼 추가
var phoneAll = document.getElementById("clphone1").value + "-"+ document.getElementById("clphone2").value + "-"+ document.getElementById("clphone3").value;
$("#clphone").val(phoneAll);
// 전화번호 하이푼 추가
var tell = document.getElementById("phone1").value + "-"+ document.getElementById("phone2").value + "-"+ document.getElementById("phone3").value;
$("#phone").val(tell);
//이메일 합치기
var emailAll = document.getElementById("email1").value + "@"+ document.getElementById("email2").value ;
$("#email").val(emailAll);
var data = new FormData(document.getElementById("createForm"));
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
$("#eduAplctOrd").val(returnData.VO.eduAplctOrd);
if(status == 'success'){
alert("등록 되었습니다.");
if(type != 'I'){
fncGoDetail(); //현재 메인화면 이동
}
} else if(status== 'fail'){
alert("등록에 실패하였습니다.");
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function validCheck(){
if($("#eduSlctCd").val() == ''){
alert('교육선택 구분을 선택해주세요.');
$("#eduSlctCd").focus();
return false;
};
/* if($("#eduSlctAreaCd").val() == ''){
alert('교육선택 지역을 선택해주세요.');
$("#eduSlctAreaCd").focus();
return false;
}; */
if($("#insttNm").val() == ''){
alert('기관(단체)명을 입력해주세요.');
$("#insttNm").focus();
return false;
};
if($("#insttDivCd").val() == ''){
alert('기관구분을 선택해주세요.');
$("#insttDivCd").focus();
return false;
};
if($("#eduSlctCd").val() == "20"){
if($("#post").val() == ''){
alert('주소를 입력해주세요.');
$("#post").focus();
return false;
};
if($("#addrDetail").val() == ''){
alert('상세주소를 입력해주세요.');
$("#addrDetail").focus();
return false;
};
}
if($("#eduSlctCd").val() == "10"){
if($("input[name='eduMdCd']:checked").val() == "99"){
if($("#eduMd").val() == ''){
alert('교육매체를 입력해주세요.');
$("#eduMd").focus();
return false;
};
}
}
if($("#chrgNm").val() == ''){
alert('담당자를 입력해주세요.');
$("#chrgNm").focus();
return false;
};
if($("#jobNm").val() == ''){
alert('직위을 입력해주세요.');
$("#jobNm").focus();
return false;
};
if($("#clphone2").val() == '' || $("#clphone3").val() == ''){
alert('휴대폰 번호를 입력해주세요.');
$("#clphone2").focus();
return false;
};
if($("#phone1").val() == '' || $("#phone2").val() == '' || $("#phone3").val() == ''){
alert('전화번호를 입력해주세요.');
$("#phone1").focus();
return false;
};
if($("#email1").val() == '' || $("#email2").val() == ''){
alert('이메일을 입력해주세요.');
$("#email1").focus();
return false;
};
if($("#hopeSbjct").val() == ''){
alert('희망주제를 입력해주세요.');
$("#hopeSbjct").focus();
return false;
};
if($("#rqstCn").val() == ''){
alert('교육 주제 관련 상세 요청사항 및 사전 질의(자유기재)를 입력해주세요.');
$("#rqstCn").focus();
return false;
};
if($("#eduTrgt").val() == ''){
alert('교육대상을 입력해주세요..');
$("#eduTrgt").focus();
return false;
};
if($("#eduPrsnl").val() == ''){
alert('교육인원을 입력해주세요.');
$("#eduPrsnl").focus();
return false;
};
var trObj = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr');
if(trObj.length == 0){
alert('교육차시 정보를 등록해주세요.');
return false;
}
var flag = true;
$.each(trObj , function(idx, row){
var eduHopeDt = $(this).find('input[name=eduHopeDt]').val();
if(eduHopeDt == ''){
alert('교육희망일 입력해주세요.');
$('input[name=eduHopeDt]:eq('+idx+')').focus();
return flag = false;
}
var yyyy = eduHopeDt.substr(0,4);
var mm = eduHopeDt.substr(5,2);
var dd = eduHopeDt.substr(8,2);
var eduHopeDtDate = new Date(yyyy, mm-1, dd); // 교육희망일을 Date 형태로 변경
var today = new Date();
var tyyyy = today.getFullYear();
var tmm = today.getMonth()+1;
var tdd = today.getDate();
var twoWeekAfter = new Date(tyyyy, tmm-1, tdd + 14); //오늘로부터 14일 뒤의 날짜를 SET
//교육희망일이 오늘로부터 2주 이내인지 체크
if(eduHopeDtDate < twoWeekAfter) {
alert('교육희망일은 2주 이후의 날짜로 입력해주세요.');
return flag = false;
}
if($(this).find('input[name=strtTm]').val() == ''){
alert('교육시작 시간을 입력해주세요.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=strtTm]').val().indexOf('선택') != -1){
alert('교육시작 시간을 입력해주세요.');
$('input[name=strtTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=endTm]').val() == ''){
alert('교육종료 시간을 입력해주세요.');
$('input[name=endTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=endTm]').val().indexOf('선택') != -1){
alert('교육종료 시간을 입력해주세요.');
$('input[name=endTm]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('select[name=divCd]').val() == ''){
alert('구분을 선택해주세요.');
$('select[name=divCd]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=trgt]').val() == ''){
alert('대상을 입력해주세요.');
$('input[name=trgt]:eq('+idx+')').focus();
return flag = false;
}
if($(this).find('input[name=prsnl]').val() == ''){
alert('인원을 입력해주세요.');
$('input[name=prsnl]:eq('+idx+')').focus();
return flag = false;
}
});
if(!flag){
return false;
}
if($("input:checkbox[name='agree']").prop('checked')==false){
alert('개인정보 수집 및 이용 목적에 동의하셔야합니다.');
return false;
}
return true;
}
function searchBeforeData(data){
if(data == undefined || emptyObject(data)){
data = {'lctrDivCd' : VeConstants.LCTR_DIV_CD_20, 'pageUnit' : 5, 'pageIndex': 1 , 'sbmtYn' : 'N'};
}
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/searchBeforeContent.do"
, 470
, 464
, data
, "Y"
, "searchBeforeData"
);
}
function callDataSetting(data){
// 데이터 체크
fncReset('Y'); // 데이터 초기화 진행
var info = data.info;
var list = data.chasiList;
$("#mode").val(VeConstants.MODE_UPT);
$("#eduAplctOrd").val(info.eduAplctOrd);
$("#eduSlctCd").val(info.eduSlctCd);
//오프라인의 경우 교육장소 활성화
if(info.eduSlctCd == '20'){
$("#juso").show();
$("#juso").find("input").removeAttr("disabled", "disabled");
$("#mechae").hide();
$("#mechae").find("input").attr("disabled", "disabled");
}
$("#eduMd").val(info.eduMd);
$("#eduSlctAreaCd").val(info.eduSlctAreaCd);
$("#insttNm").val(info.insttNm);
$('input[name=insttDivCd][value='+info.insttDivCd+']').prop('checked', true);
$("#post").val(info.post);
$("#addr").val(info.addr);
$("#addrDetail").val(info.addrDetail);
$("#chrgNm").val(info.chrgNm);
$("#jobNm").val(info.jobNm);
$("#eduTrgt").val(info.eduTrgt);
$("#eduPrsnl").val(info.eduPrsnl);
if(isNotEmpty(info.aplctCn)){
var aplctCnList = info.aplctCn.split(',');
$.each(aplctCnList, function(idx, value){
$('input[name=aplctCn][value='+value+']').prop('checked',true);
});
}
if(!isEmpty(info.clphone)){
var clphone = info.clphone.split('-');
$("#clphone1").val(clphone[0]);
$("#clphone2").val(clphone[1]);
$("#clphone3").val(clphone[2]);
}
if(!isEmpty(info.phone)){
var phone = info.phone.split('-');
$("#phone1").val(phone[0]);
$("#phone2").val(phone[1]);
$("#phone3").val(phone[2]);
}
if(!isEmpty(info.email)){
var email = info.email.split('@');
$("#email1").val(email[0]);
$("#email2").val(email[1]);
}
if(isNotEmpty(info.eduMdCd)){
$('input[name=eduMdCd][value='+info.eduMdCd+']').prop('checked',true);
}
if(isNotEmpty(info.feeInsttCd)){
$('input[name=feeInsttCd][value='+info.feeInsttCd+']').prop('checked',true);
}
$("#hopeSbjct").val(info.hopeSbjct);
$("#rqstCn").val(info.rqstCn);
$('.addClassRow').find('tbody > tr:first').nextAll().remove();
$.each(list, function(idx, value){
// 로우 추가
if(idx != 0){
addEduClassCopy('addClassRow');
}
console.log("+++++++++++++++++++++++++++++++++");
var tr = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr').eq(idx);
//tr.find('input[name=eduHopeDt]').val(dateFormat(value.eduHopeDt, 'date'));
//alert(info.eduHopeDt);
//alert(value.eduHopeDt);
if(isNotEmpty(value.eduHopeDt)){
tr.find('input[name=eduHopeDt0]').val(dateFormat(value.eduHopeDt.replace(/\./g, ""), 'date'));
tr.find('input[name=eduHopeDt]').val(dateFormat(value.eduHopeDt.replace(/\./g, ""), 'date'));
tr.find('input[name=eduHopeDt]').val(value.eduHopeDt);
//alert(value.eduHopeDt);
//$('#eduHopeDt'+idx).val(value.eduHopeDt);
}
tr.find('input[name=strtTm]').val(timeFomat(value.strtTm));
tr.find('input[name=endTm]').val(timeFomat(value.endTm));
tr.find('input[name=lrnTm]').val(value.lrnTm);
tr.find('input[name=trgt]').val(value.trgt);
tr.find('input[name=prsnl]').val(value.prsnl);
});
}
//교육 선택에 따른 항목 노출
function itemChg(item){
var mechae = $("#mechae");
var juso = $("#juso");
//온라인
if(item == '10'){
mechae.show();
mechae.find("input").removeAttr("disabled", "disabled");
$("#eduMd").attr("disabled", "disabled");
juso.hide();
juso.find("input").attr("disabled", "disabled");
}
//오프라인
if(item == '20'){
juso.show();
juso.find("input").removeAttr("disabled", "disabled");
mechae.hide();
mechae.find("input").attr("disabled", "disabled");
}
}
//교육 매체 따른 내용 변경
function eduMdChg(){
var v_eduMdCd = $("input[name='eduMdCd']:checked").val();
var v_eduMd = $('#eduMd');
if (v_eduMdCd=='99'){
v_eduMd.removeAttr('disabled');
}else{
v_eduMd.val('');
v_eduMd.attr('disabled', 'disabled');
}
}
</script>
<div class="agree_text" tabindex="0">
<pre>한국저작권위원회에서는 귀하의 개인정보를 중요시하며, 개인정보보호법 제15조, 제 17조, 제 22조, 제23조 및 제24조에 따라<br>아래와 같이 개인정보 처리에 관하여 동의를 얻고자 합니다.<br>

View File

@ -66,6 +66,7 @@
console.log(value.value);
rsObj[value.name] = value.value;
});
alert(rsObj);
callBackSchPop(rsObj);
$(".btn_popup_close").click();
}

View File

@ -60,7 +60,7 @@
$.each(inObj, function(idx, value){
console.log(value.value);
rsObj[value.name] = value.value;
});
});
callBackSchPop(rsObj);
$(".btn_popup_close").click();
}

View File

@ -464,6 +464,9 @@ function _chkChasiTime(p_this){
// 작성한 차시가 신청 가능한 기간/시간인지 체크(관리자 지역별 강의관리 참고) 및 중복신청건 조회
//DB로 체크
if(!checkAplctPsbl()) return;
//지역체크 추가
if(!checkAplctZonePsbl()) return;
}
var url = '${pageContext.request.contextPath}/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctRegAjax.do';
@ -893,20 +896,23 @@ function _chkChasiTime(p_this){
if(returnData.result == "fail4"){
alert("로그인 후 다시 교육신청해 주세요.");
flag = false;
return;
//return false;
}else if(returnData.result == "fail3"){
//alert("가능한 교육희망일자가 아닙니다.");
alert(returnData.msg+"일은 교육가능일자가 아닙니다.");
flag = false;
return;
//return false;
}else if(returnData.result == "fail"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert(returnData.msg+"는 강의가능시간이 아닙니다.");
flag = false;
return;
}
if(!duplChk) {
//return false;
}else if(returnData.result == "fail5"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert("해당 지역의 차시 신청이 초과 되어서 교육신청을 할 수 없습니다.");
flag = false;
//return false;
}else if(!duplChk) {
if(returnData.result == "fail2"){
if(confirm("중복된 신청 건이 있습니다. 진행하시겠습니까?")){
//중복신청건이 있어도 등록(최초 질의 후 재질의 방지)
@ -914,7 +920,7 @@ function _chkChasiTime(p_this){
} else {
flag = false;
}
return;
//return;
}
}
},
@ -933,6 +939,88 @@ function _chkChasiTime(p_this){
}
// 신청하는 차시가 유효한 신청기간인지, 강의가능시간인지 체크하는 로직
// =>강의 가능 시간 여부만 체크로 변경 2022-02-28
// 추가로, 본인이 등록했던 신청건인지 체크(사용자아이디, 학교명, 교육희망일, 교육대상 비교)
//1.교육희망일이 신청 가능한 일자인지
//2.신청 시간이 해당 지역의 가능한 시간인지
//3.중복시간 체크
function checkAplctZonePsbl() {
var trObj = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr');
var flag = true;
var duplChk = false;
var eduSlctCd = $("select[name=eduSlctCd]").val();
//alert(eduSlctCd);
//return;
$.each(trObj , function(idx, row){
if(!flag) return false;
var eduHopeDt = $(this).find('input[name=eduHopeDt]').val();
var strtTm = $(this).find('input[name=strtTm]').val();
var endTm = $(this).find('input[name=endTm]').val();
var eduSlctAreaCd = $("select[name=eduSlctAreaCd]").val();
var trgt = $(this).find('input[name=trgt]').val();
var rndsOrd = $('input[name=rndsOrd]').val();
/*
2.교육신청시 교육희망일 비교하여 가능한 정보를 가져온다.
2-1.신청 가능한 일자인지(구현)
(해당 강의 회차의 교육 가능일자만 신청 가능하도록)
==>vea_lctr_rnds_stng
2-2.신청 가능한 시간인지(구현)
2-3.해당일 신청가능한 차시가 남았는지(미구현)
2-4.동일한 날짜에 기 신청된 건이 있는지(구현)
*/
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctChkZoneAjax.do",
data: {
"eduHopeDt" : eduHopeDt ,
"strtTm" : strtTm,
"endTm" : endTm,
"eduSlctAreaCd" : eduSlctAreaCd,
// "prdDivCd" : prdDivCd,
"eduSlctCd" : eduSlctCd,
"trgt" : trgt,
"rndsOrd":rndsOrd,
},
dataType:'json',
async: false,
success:function(returnData){
if(returnData.result == "fail4"){
alert("로그인 후 다시 교육신청해 주세요.");
flag = false;
return ;
}else if(returnData.result == "fail6"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert("해당 지역의 차시 신청이 초과 되어서 교육신청을 할 수 없습니다.");
flag = false;
return ;
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
});
if(!flag){
return false;
}
return true;
}
// 신청기간에 정상적으로 들어온 것인지 체크하는 로직
function checkAplctPsbl_date_check() {
$.ajax({
@ -1240,8 +1328,8 @@ function _chkChasiTime(p_this){
</select>
<label for="eduSlctAreaCd" class="label">지역 선택</label>
<ve:select codeId="VE0008" selectedValue="${info.eduSlctAreaCd}" id="eduSlctAreaCd" name="eduSlctAreaCd" styleClass="selType1" css="disabled" defaultText="지역" defaultValue=""/>
<span class="cf_text areaMent" style="color:grey;">학교를 선택하시면 지역은 자동으로 입력됩니다.</span>
<span class="cf_text onlineMent" style="color:grey;">강사님이 방문하지 않는 비대면 교육입니다.</span>
<span class="cf_text areaMent" style="color:grey;display:none;">학교를 선택하시면 지역은 자동으로 입력됩니다.</span>
<span class="cf_text onlineMent" style="color:grey;display:none;">강사님이 방문하지 않는 비대면 교육입니다.</span>
</td>
</tr>
<tr>

View File

@ -163,7 +163,7 @@
.req_text{display: inline-block; font-size: 16px; font-weight: 600; color: #e40000; vertical-align: middle; padding-right: 5px;}
.req_text span{display: inline-block; width: 1px; height: 1px; margin: -1px; clip: rect(0,0,0,0); overflow: hidden; padding: 0;}
.req_text+p{display: inline-block;}
.cf_text {font-size: 15px; font-weight: 300; color: #e40000;}
.cf_text {font-size: 15px; font-weight: 400; color: #e40000;}
.cf_text2 {font-size: 15px; font-weight: 300; color: #666;}
.cf_text3 {font-size: 18px; font-weight: 300; color: #666; line-height: 1.4; letter-spacing: -1px; display: block; padding-top: 12px;}
.table_req_text {font-size: 15px; color: #666; font-weight: 300; display: block; padding-top: 5px; line-height: 1.3; letter-spacing: -0.5px;}
@ -841,6 +841,12 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
/*알림마당 > 교육자료실 > 첨부파일 수정*/
.fileView a{margin: 0 0 10px 0; white-space: normal; background-image: url(../images/content/file_img.png); background-repeat: no-repeat; background-position: left 48%; padding-left: 23px; letter-spacing: -0.5px; font-size: 16px; font-weight: 400; color:#555; line-height:20px;}
/*알림마당 > FAQ > 답변 색 수정*/
.full_faq .faq li button{background-color: #f5f5f5;}
.full_faq .faq li button .qst_text{z-index: 1;}
.full_faq .faq li .answer{background-color: #fff;}
@media all and (max-width: 1300px){
/*교육소개 추가*/
.edu_wrap .tb_type01 table tbody .edu_sus_num li{width: 55%;}

View File

@ -1067,3 +1067,42 @@ $(function(){
/* 날짜 및 시간 입력 시 자동 작성 스크립트 */
$(document).ready(function () {
boardCaptionToggle();
boardCaptionToggle02();
});
function boardCaptionToggle() {
var bdWid = $("body").width();
var thLength = $(".tb_type01 th").length;
if (bdWid > 640) {
var subTit = $(".tb_tit01_left p").text()
var itmText = "";
$(".tb_type01 th").each(function (index, item) {
itmText += $(item).text();
if (index === thLength - 1) {
/* 마지막 th일 경우 - ,가 들어가면 안됨. */
itmText;
} else {
itmText += ", ";
}
});
if ($(".tb_type01 caption").length == 0) {
if(subTit.indexOf("목록") != -1){
$(".tb_type01>table").prepend("<caption>" + subTit + " : " + itmText + "등의 정보제공 </caption>");
}else{
if(subTit == "대시보드"){
$(".tb_type01>table").prepend("<caption> : " + itmText + "등의 정보제공 </caption>");
}else{
$(".tb_type01>table").prepend("<caption>" + subTit + " 목록 : " + itmText + "등의 정보제공 </caption>");
}
}
} else {}
} else {
$(".tb_type01 caption").remove();
}
}