This commit is contained in:
subsub 2023-10-10 11:25:25 +09:00
commit 1c39becb1a
21 changed files with 640 additions and 87 deletions

View File

@ -87,6 +87,10 @@ public class ScholInfoVO extends ComDefaultVO implements Serializable {
private String selectPagingListQuery;
private String orderByQuery;
private String isltnYn; //도서벽지학교여부
private String isltn2Yn; //벽지지역여부
private String isltn3Yn; //접적지역여부
private String ppltnReducAreaYn; //인구감소지역여부
public String getScholId() {
return scholId;
}
@ -414,4 +418,38 @@ public class ScholInfoVO extends ComDefaultVO implements Serializable {
public void setCallBackFnc(String callBackFnc) {
this.callBackFnc = callBackFnc;
}
public String getIsltnYn() {
return isltnYn;
}
public void setIsltnYn(String isltnYn) {
this.isltnYn = isltnYn;
}
public String getIsltn2Yn() {
return isltn2Yn;
}
public void setIsltn2Yn(String isltn2Yn) {
this.isltn2Yn = isltn2Yn;
}
public String getIsltn3Yn() {
return isltn3Yn;
}
public void setIsltn3Yn(String isltn3Yn) {
this.isltn3Yn = isltn3Yn;
}
public String getPpltnReducAreaYn() {
return ppltnReducAreaYn;
}
public void setPpltnReducAreaYn(String ppltnReducAreaYn) {
this.ppltnReducAreaYn = ppltnReducAreaYn;
}
}

View File

@ -8,12 +8,15 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.collections.CollectionUtils;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
@ -474,6 +477,25 @@ public class ExprnClsrmAplctController {
}
//체험교실 운영신청 초기화 첨부파일 삭제
@RequestMapping(value = "/fmsfileMultipleDeleteAjax.do", method = RequestMethod.POST)
public ModelAndView fmsfileMultipleDeleteAjax(@RequestBody FileVO fileVo) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
if(CollectionUtils.isNotEmpty(fileVo.getFileList())){
for(FileVO file : fileVo.getFileList()){
fileService.deleteFmsFileInf(file);
}
}
modelAndView.addObject("result", "success");
}catch (Exception e) {
modelAndView.addObject("result", "fail");
System.out.println("Exception Occured!!!");
return modelAndView;
}
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//

View File

@ -348,6 +348,10 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String qestnrId; // 설문
private String aplctStateCd; // 교육이수 상태
//관리자 화면 등록 여부
private String adminInsert;
//운영계획 필요 교재 수량
private String needTxtbNum;
@ -1507,6 +1511,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setAplctStateCd(String aplctStateCd) {
this.aplctStateCd = aplctStateCd;
}
public String getAdminInsert() {
return adminInsert;
}
public void setAdminInsert(String adminInsert) {
this.adminInsert = adminInsert;
}
public String getNeedTxtbNum() {
return needTxtbNum;
}
public void setNeedTxtbNum(String needTxtbNum) {
this.needTxtbNum = needTxtbNum;
}
}

View File

@ -51,6 +51,7 @@ public class VEEduOprtnVO extends ComDefaultVO implements Serializable {
private String remoteYn; //벽지지역
private String clsCmbtYn; //접적지역
private String ppulDclnYn; //인구감소지역
private String needTxtbNum; //필요 교재 수량
@ -261,4 +262,13 @@ public class VEEduOprtnVO extends ComDefaultVO implements Serializable {
public void setPpulDclnYn(String ppulDclnYn) {
this.ppulDclnYn = ppulDclnYn;
}
public String getNeedTxtbNum() {
return needTxtbNum;
}
public void setNeedTxtbNum(String needTxtbNum) {
this.needTxtbNum = needTxtbNum;
}
}

View File

@ -118,8 +118,12 @@ public class OprtnAplctMngServiceImpl implements OprtnAplctMngService {
vEEduAplctVO.setEduAplctOrd(eduAplctOrd);
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30); //강의 구분 코드 체험교실
vEEduAplctVO.setOprtnFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
if(!"Y".equals(vEEduAplctVO.getAdminInsert())) {
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
}else {
vEEduAplctVO.setFrstRegisterId(vEEduAplctVO.getUserId());
}
//저장전 암호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
@ -146,6 +150,9 @@ public class OprtnAplctMngServiceImpl implements OprtnAplctMngService {
String s_scholSealAtchFileId = "";
s_scholSealAtchFileId = vEEduAplctVO.getScholSealAtchFileId();
if("30".equals(vEEduAplctVO.getLctrDivCd())) {
s_scholSealAtchFileId = vEEduAplctVO.getOprtnFileId();
}
//DB에서 실제 첨부파일 존재 여부 확인
FileVO fileVO = new FileVO();

View File

@ -188,9 +188,9 @@ public class OprtnAplctAnncmMngController {
//온라인차시 리스트
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectPrcsList(vEPrcsDetailVO);
/*List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectPrcsList(vEPrcsDetailVO);*/
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
/*model.addAttribute("list", vEPrcsDetailVOList);*/
return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg";
}

View File

@ -52,6 +52,7 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService;
@ -123,6 +124,9 @@ public class OprtnAplctMngController {
@Resource(name="vEAsgnmNotiService")
private VEAsgnmNotiService vEAsgnmNotiService;
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
/**
* 저작권체험교실 목록 화면
*/
@ -186,7 +190,10 @@ public class OprtnAplctMngController {
model.addAttribute("loginVO", loginVO);
//로그인 처리====================================
//신청서 양식다운로드 정보 가져오기(신청일자 기준 가장 최신 데이터, 1개 로우)
VEPrcsDetailVO detailVO = new VEPrcsDetailVO();
detailVO = vEPrcsAplctPrdService.selectDetailNewOne(detailVO);
model.addAttribute("detailVO", detailVO);
return "oprtn/cpyrgExprnClsrm/oprtnAplctMngReg";
}
@ -250,7 +257,7 @@ public class OprtnAplctMngController {
* 체험교실 수정 화면
*/
@RequestMapping("oprtnAplctMngMdfy.do")
public String oprtnAplctMngMdfy( @ModelAttribute("modelVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
public String oprtnAplctMngMdfy( @ModelAttribute("vEPrcsDetailVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
vEEduAplctVO.setMode(VeConstants.MODE_UPT);
@ -264,7 +271,8 @@ public class OprtnAplctMngController {
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(vEEduAplctVO.getScholSealAtchFileId());
/*fileVO.setAtchFileId(vEEduAplctVO.getScholSealAtchFileId());*/
fileVO.setAtchFileId(vEEduAplctVO.getOprtnFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());

View File

@ -387,7 +387,8 @@
ISLANDS_YN AS islandsYn,
REMOTE_YN AS remoteYn,
CLS_CMBT_YN clsCmbtYn,
PPUL_DCLN_YN AS ppulDclnYn
PPUL_DCLN_YN AS ppulDclnYn,
NEED_TXTB_NUM AS needTxtbNum
, TO_CHAR(A.SBMT_PNTTM, 'YYYY-MM-DD HH24:MI:ss') AS sbmtPnttmDetail
,C.aprvl_cd AS exprnAprvlCd
, C.orgnl_rslt_atch_file_id AS orgnlRsltAtchFileId
@ -1150,6 +1151,7 @@
FROM
ve_prcs_aplct_prd a
WHERE a.USE_YN = 'Y'
AND REPLACE(#sbmtPnttm#, '-', '') BETWEEN SUBSTR(a.strt_pnttm,1,6) AND SUBSTR(a.end_pnttm,1,6);
AND a.LCTR_DIV_CD = '30'
AND REPLACE(#sbmtPnttm#, '-', '') BETWEEN SUBSTR(a.strt_pnttm,3,6) AND SUBSTR(a.end_pnttm,3,6);
</select>
</sqlMap>

View File

@ -32,6 +32,7 @@
,REMOTE_YN
,CLS_CMBT_YN
,PPUL_DCLN_YN
,NEED_TXTB_NUM
)VALUES(
#eduAplctOrd#
,#chrgMjr#
@ -58,6 +59,7 @@
,#remoteYn#
,#clsCmbtYn#
,#ppulDclnYn#
,#needTxtbNum#
)
</insert>
@ -86,6 +88,7 @@
,REMOTE_YN = #remoteYn#
,CLS_CMBT_YN = #clsCmbtYn#
,PPUL_DCLN_YN = #ppulDclnYn#
,NEED_TXTB_NUM = #needTxtbNum#
WHERE 1=1
AND EDU_APLCT_ORD = #eduAplctOrd#
</update>

View File

@ -86,6 +86,10 @@
, CASE WHEN b.schol_isltn_ord is null THEN 'N' ELSE 'Y' END isltnScholYn
/* , DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',if (INSTR(schol_grade_nm,'각종학교')>0,'40','50')) AS scholDivCd */
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',CASE WHEN INSTR(schol_grade_nm, '각종학교') > 0 THEN '40' ELSE '50' END) AS scholDivCd
,a.ISLTN_YN AS isltnYn
,a.ISLTN2_YN AS isltn2Yn
,a.ISLTN3_YN AS isltn3Yn
,a.PPLTN_REDUC_AREA_YN AS ppltnReducAreaYn
FROM <include refid="ScholInfoMIXDAO.table_name"/> a

View File

@ -82,6 +82,10 @@
,A.ESTBS_DT AS estbsDt
,A.SCHOL_ANVSRY AS scholAnvsry
,A.LAST_UPDT_PNTTM AS lastUpdtPnttm
,A.ISLTN_YN AS isltnYn
,A.ISLTN2_YN AS isltn2Yn
,A.ISLTN3_YN AS isltn3Yn
,A.PPLTN_REDUC_AREA_YN AS ppltnReducAreaYn
</sql>
<!-- 학교 등록 C -->

View File

@ -109,6 +109,11 @@
<input type="hidden" name="scholDivCd" value="${row.scholDivCd}"/>
<input type="hidden" name="isltnScholYn" value="${row.isltnScholYn}"/>
<input type="hidden" name="isltnYn" value="${row.isltnYn}"/>
<input type="hidden" name="isltn2Yn" value="${row.isltn2Yn}"/>
<input type="hidden" name="isltn3Yn" value="${row.isltn3Yn}"/>
<input type="hidden" name="ppltnReducAreaYn" value="${row.ppltnReducAreaYn}"/>
</td>
</tr>
</c:forEach>

View File

@ -210,7 +210,7 @@
}
function fncGoList(){
var listForm = document.listForm ;
var listForm = document.listForm;
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngList.do'/>";
listForm.submit();
}
@ -254,9 +254,9 @@
</head>
<body>
<form:form id="listForm" name="listForm" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" name="pageIndex" value="<c:out value='${modelVO.pageIndex}' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${modelVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${modelVO.searchSortOrd}" />" />
</form:form>
<form id="popForm" name="popForm" method="post">

View File

@ -365,9 +365,11 @@
<th scope="row">
<p>대상학생수</p>
</th>
<td colspan="3">
${info.trgtPrsnl}
</td>
<td>${info.trgtPrsnl}</td>
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td>${info.needTxtbNum}</td>
</tr>
<tr>
<th scope="row">
@ -428,9 +430,9 @@
<button type="button" class="btn_type02" onclick="fncStatusChange('90'); return false;">선정취소</button>
</c:if>
<!-- 교육 확정인 경우 관리자만 수정 가능 하도록 -->
<c:if test="${info.aprvlCd eq '60'}">
<%-- <c:if test="${info.aprvlCd eq '60'}"> --%>
<button type="button" class="btn_type01" onclick="fncGoEdit();">변경</button>
</c:if>
<%-- </c:if> --%>
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>

View File

@ -9,6 +9,7 @@
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<%
/**
* @Class Name : oprtnAplctAnncmMngReg.jsp
@ -42,52 +43,119 @@
});
});
function fncSave(){
if($("#title").val() == ""){
alert("제목을 입력해주세요.");
return false;
}
if($("#strtPnttm").val() == ""){
alert("시작일을 입력해주세요.");
return false;
}
if($("#endPnttm").val() == ""){
alert("종료일을 입력해주세요.");
return false;
}
/* if($("#anncmCn").val() == ""){
alert("안내내용을 입력해주세요.");
return false;
}
if($("#popupCn").val() == ""){
alert("팝업내용을 입력해주세요.");
return false;
} */
//첨부파일 등록 처리
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
//var data = new FormData(form);
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-step1
//if(!data.get("fileSize")){
if($('#tbody_fiielist tr').length*1<=0){
alert("첨부파일을 등록해 주세요");
return false;
}
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
function birthSelectBoxDraw(){
$('.birthYear').yearselect({
start : 1900,
end : new Date().getFullYear(),
emptyOption: true,
emptyText: '선택',
selected:'',
order:'desc'
})
// 년도를 바꾼다면 일자를 다시 선택하기
$('.birthYear').change(function(){
if($(this).next().next().next().next('select.birthDay')){
if(Number($(this).next().next().next().next('select.birthDay').val()) > 28){
dayDraw($(this).next().next().next().next('select.birthDay'));
}
}
});
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngRegAjax.do";
$.each($(".birthMonth"), function(idx, elm){
var selectValue = $(this).attr('selectValue');
$(this).append($('<option>').text('선택').val(''));
for(var i=0; i < 12; i ++){
var option = $('<option/>');
var month = i+1;
month = month < 10 ? '0'+month : month;
option.val(month);
option.text(month+'월');
$(this).append(option);
}
if(isNotEmpty(selectValue)){
$(this).val(selectValue);
}
// 일자가 존재한다면..
if($(this).next().next('select.birthDay')){
$(this).change(function(){
dayDraw($(this).next().next('select.birthDay'));
});
}
});
$.each($(".birthDay"), function(idx, value){
dayDraw($(this));
});
}
function dayDraw(obj){
var selectValue = $(obj).attr('selectValue');
var selectMonth = $(obj).prev().prev('select.birthMonth').val();
var selectYear = $(obj).prev().prev().prev().prev('select.birthYear').val();
var lastDay = '';
if(isNotEmpty(selectMonth) && isNotEmpty(selectYear)){
lastDay = new Date(selectYear, selectMonth, 0).getDate();
}
$(obj).children('option').remove();
$(obj).append($('<option>').text('선택').val(''));
if(isNotEmpty(lastDay)){
for(var i=0; i < lastDay; i ++){
var option = $('<option/>');
var day = i+1;
day = day < 10 ? '0'+day : day;
option.val(day);
option.text(day+'일');
$(obj).append(option);
}
if(isNotEmpty(selectValue)){
$(obj).val(selectValue);
}
}
}
function fncSave(){
if (!validCheck()) return;
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngRegAjax.do";
if(VeConstants.MODE_UPT == $("#mode").val()){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctMngMdfyAjax.do";
}else{
$("#aprvlCd").val(VeConstants.APRVL_CD_10);
}
$("#sbmtYn").val("Y");
//핸드폰번호 하이푼 추가
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);
$("#eduSlctAreaCd").removeAttr("disabled");
$("input[name=scholDivCd]").removeAttr("disabled");
$("input[name=islandsYn]").removeAttr("disabled");
$("input[name=remoteYn]").removeAttr("disabled");
$("input[name=clsCmbtYn]").removeAttr("disabled");
$("input[name=ppulDclnYn]").removeAttr("disabled");
fncDataReplace();
var data = new FormData(document.getElementById("createForm"));
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
console.log(data);
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
@ -111,6 +179,232 @@
});
}
}
function validCheck(){
if($("#userId").val() == ''){
alert('사용자를 선택해주세요.');
$("#userId").focus();
return false;
};
if($("#scholInsttNm").val() == ''){
alert('학교(기관)명을 선택해주세요.');
$("#scholInsttNm").focus();
return false;
};
if($("#chrgNm").val() == ''){
alert('교사명을 입력해주세요.');
$("#chrgNm").focus();
return false;
};
if($("#chrgSexCd").val() == ''){
alert('성별을 선택해주세요.');
$("#chrgSexCd").focus();
return false;
};
if($("#clphone1").val() == '' || $("#clphone2").val() == '' || $("#clphone3").val() == ''){
alert('휴대폰 번호를 입력해주세요.');
$("#clphone2").focus();
return false;
};
if($("#phone1").val() == '' || $("#phone2").val() == '' || $("#phone3").val() == ''){
alert('전화번호를 입력해주세요.');
$("#phone1").focus();
return false;
};
if($("#email1").val() == '' || $("#email2").val() == ''){
alert('이메일을 입력해주세요.');
$("#email1").focus();
return false;
};
if($("#post").val() == ''){
alert('주소를 입력해주세요.');
$("#post").focus();
return false;
};
if($("#addrDetail").val() == ''){
alert('상세주소를 입력해주세요.');
$("#addrDetail").focus();
return false;
};
if($("#chrgMjr").val() == ''){
alert('담당교과를 입력해주세요.');
$("#chrgMjr").focus();
return false;
};
if($("#birthYear").val() == ''){
alert('생년월일 년도를 선택해주세요.');
$("#birthYear").focus();
return false;
};
if($("#birthMonth").val() == ''){
alert('생년월일 월를 선택해주세요.');
$("#birthMonth").focus();
return false;
};
if($("#birthDay").val() == ''){
alert('생년월일 일자를 선택해주세요.');
$("#birthDay").focus();
return false;
};
/*
if(data.get('cmpltYear') == ''){
alert('이수년도를 입력해주세요.');
$("#cmpltYear").focus();
return false;
};
if(data.get('cmpltNum') == ''){
alert('이수번호를 입력해주세요.');
$("#cmpltNum").focus();
return false;
} */
var radioVal = $('input[name="exprnClsrnCd"]:checked').val();
if($('#exprnClsrnCd').val() == ''){
alert('체험교실운영여부 구분을 선택해주세요.');
$("#exprnClsrnCd").focus();
return false;
}
if(radioVal == "01"){
if($("input[name=eClsrnYear]:checked").length == 0){
alert('체험교실운영여부 년도를 하나이상 선택하셔야합니다.');
return false;
}
}
if($('#exprnClsrnAplct').val() == ''){
alert('신청경로을 선택해주세요.');
$("#exprnClsrnAplct").focus();
return false;
}
if($('#exprnClsrnAplct').val() == '04'){
if($('#exprnClsrnAplctCn').val() == '') {
alert('신청경로 기타 내용을 입력해주세요.');
$("#exprnClsrnAplctCn").focus();
return false;
}
}
if($('#trgtGrade').val() == ''){
alert('학년수를 입력해주세요.');
$("#trgtGrade").focus();
return false;
}
if($('#trgtClsrm').val() == ''){
alert('대상반을 입력해주세요.');
$("#trgtClsrm").focus();
return false;
}
if($('#trgtPrsnl').val() == ''){
alert('학생수를 입력해주세요.');
$("#trgtPrsnl").focus();
return false;
}
if($('#oprtnStrtDt').val() == ''){
alert('운영시기 시작일을 입력해주세요.');
$("#oprtnStrtDt").focus();
return false;
}
if($('#oprtnEndDt').val() == ''){
alert('운영시기 종료일을 입력해주세요.');
$("#oprtnEndDt").focus();
return false;
}
var oprtnStrtDt = $("#oprtnStrtDt").val()
var oprtnEndDt = $("#oprtnEndDt").val()
oprtnStrtDt = oprtnStrtDt.replace(/[.]/gi, '');
oprtnEndDt = oprtnEndDt.replace(/[.]/gi, '');
if(oprtnStrtDt > oprtnEndDt){
alert("시작일이 종료일보다 클 수 없습니다.");
$("#oprtnEndDt").focus();
return false;
}
var oprtnStrtDtDate = $("#oprtnStrtDt").val()
var yyyy = oprtnStrtDtDate.substr(0,4);
var mm = oprtnStrtDtDate.substr(5,2);
var dd = oprtnStrtDtDate.substr(8,2);
var oprtnStrtDtDate = 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 todayDate = new Date(tyyyy, tmm-1, tdd)
//교육희망일이 오늘보다 전인지 체크
if(VeConstants.MODE_UPT != $("#mode").val() && oprtnStrtDtDate < todayDate){
alert('시작일 오늘 이후의 날짜로 입력해주세요.');
return flag = false;
}
if($(".uploaded_obj").length == 0){
alert("파일을 첨부해 주세요.");
return false;
}
/* if($("#agree1").length > 0 && !$('#agree1').prop('checked')){
alert('개인정보 이용 약관에 동의해주세요.');
return false;
} */
return true;
}
// 데이터 저장전 치환해야할 데이터
function fncDataReplace(){
if($("#email1").val() == '' || $("#email2").val() == ''){
var emailAll = document.getElementById("email1").value + "@" + document.getElementById("email2").value;
$("#email").val(emailAll);
}
if($("#birthYear").val() != '' && $("#birthMonth").val() != '' && $("#birthDay").val() != ''){
$("#dBirth").val($("#birthYear").val()+$("#birthMonth").val()+$("#birthDay").val());
}
// if(data.get('cmpltNum') != ''){
// data.set('cmpltNum', data.get('cmpltNum').replace(/-/gi, ''));
// }
if($("input[name=eClsrnYear]:checked").length != 0){
var arr = $.map($("input[name=eClsrnYear]:checked"), function(elm,idx){return [elm.value]});
$('#exprnClsrnYear').val(arr);
}
if($('#oprtnStrtDt').val() != null){
$('#oprtnStrtDt').val($('#oprtnStrtDt').val().replace(/[.]/gi, ''));
}
if($('#oprtnEndDt').val() != null){
$('#oprtnEndDt').val($('#oprtnEndDt').val().replace(/[.]/gi, ''));
}
/* //임시저장 데이터 불러왔을 시 duet-date-picker에서 날짜 input에 id를 넣어주지 않음
if($('duet-date-picker[name=oprtnStrtDt]').val() != null){
$('duet-date-picker[name=oprtnStrtDt]').val($('duet-date-picker[name=oprtnStrtDt]').val().replace(/[.]/gi, ''))
}
if($('duet-date-picker[name=oprtnEndDt]').val() != null){
$('duet-date-picker[name=oprtnEndDt]').val($('duet-date-picker[name=oprtnEndDt]').val().replace(/[.]/gi, ''))
} */
}
function fncGoList(){
var listForm = document.listForm ;
@ -149,6 +443,27 @@
$('input[name=scholDivCd][value='+schData.scholDivCd+']').prop('checked', true);
$('input[name=isltnScholYn][value='+schData.isltnScholYn+']').prop('checked', true);
if(schData.isltnYn == 'Y'){
$("#islandsYn").prop('checked', true);
}else{
$("#islandsYn").prop('checked', false);
}
if(schData.isltn2Yn == 'Y'){
$("#remoteYn").prop('checked', true);
}else{
$("#remoteYn").prop('checked', false);
}
if(schData.isltn3Yn == 'Y'){
$("#clsCmbtYn").prop('checked', true);
}else{
$("#clsCmbtYn").prop('checked', false);
}
if(schData.ppltnReducAreaYn == 'Y'){
$("#ppulDclnYn").prop('checked', true);
}else{
$("#ppulDclnYn").prop('checked', false);
}
}
function oprtnYn(){
@ -188,7 +503,19 @@
</form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="lctrDivCd" value="30"/>
<input type="hidden" name="adminInsert" value="Y"/>
<input type="hidden" name="clphone" id="clphone" value=""/><!-- 연락처(핸드폰) -->
<input type="hidden" name="phone" id="phone" value=""/><!-- 연락처(핸드폰) -->
<input type="hidden" name="email" id="email" value=""/><!-- 이메일 -->
<input type="hidden" name="sbmtYn" id="sbmtYn" value=""/><!-- 제출여부 -->
<input type="hidden" name="aprvlCd" id="aprvlCd" value="${info.aprvlCd}"/><!-- 승인코드 -->
<input type="hidden" name="dBirth" id="dBirth" value=""/><!-- dBirth -->
<input type="hidden" name="exprnClsrnYear" id="exprnClsrnYear" value=""/><!-- exprnClsrnYear -->
<input type="hidden" name="limitcount" id="limitcount" value="3" /><!-- 최대 업로드 파일갯수 -->
<input type="hidden" name="mode" id="mode" value="${vEPrcsDetailVO.mode}" />
<input type="hidden" name="prcsOrd" id="prcsOrd" value="${detailVO.prcsAplctPrdOrd}" /> <!-- 교육과정신청기간 ID -->
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
<input type="hidden" name="oprtnFileId" id="oprtnFileId" value="${info.oprtnFileId}" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
@ -307,10 +634,10 @@
<p>학교지역특성</p>
</th>
<td>
<input type="checkbox" id="islandsYn" name="islandsYn" value="Y"><label for="islandsYn"> 도서지역</label>
<input type="checkbox" id="remoteYn" name="remoteYn" value="Y"><label for="remoteYn"> 벽지지역</label>
<input type="checkbox" id="clsCmbtYn" name="clsCmbtYn" value="Y"><label for="clsCmbtYn"> 접적지역</label>
<input type="checkbox" id="ppulDclnYn" name="ppulDclnYn" value="Y"><label for="ppulDclnYn"> 인구감소지역</label>
<input type="checkbox" id="islandsYn" name="islandsYn" value="Y" disabled="disabled" <c:if test="${info.islandsYn eq 'Y' }">checked</c:if>><label for="islandsYn"> 도서지역</label>
<input type="checkbox" id="remoteYn" name="remoteYn" value="Y" disabled="disabled" <c:if test="${info.remoteYn eq 'Y' }">checked</c:if>><label for="remoteYn"> 벽지지역</label>
<input type="checkbox" id="clsCmbtYn" name="clsCmbtYn" value="Y" disabled="disabled" <c:if test="${info.clsCmbtYn eq 'Y' }">checked</c:if>><label for="clsCmbtYn"> 접적지역</label>
<input type="checkbox" id="ppulDclnYn" name="ppulDclnYn" value="Y" disabled="disabled" <c:if test="${info.ppulDclnYn eq 'Y' }">checked</c:if>><label for="ppulDclnYn"> 인구감소지역</label>
</td>
</tr>
<tr class="input_adress">
@ -441,15 +768,28 @@
<input type="text" name="trgtPrsnl" id="trgtPrsnl" onkeyup="onlyNumber(this);" maxlength="4" value="${info.trgtPrsnl}" size="20"> 명
</td>
</tr>
<tr>
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td colspan="3">
<label for="trgtPrsnl" class="label">필요 교재 수량 입력</label>
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" maxlength="3" value="${info.needTxtbNum}" size="20">
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>운영시기</p>
</th>
<td colspan="3">
<kc:radio codeId="VE0030" name="exprnClsrnAplct" id="exprnClsrnAplct" selectedValue="${empty info.exprnClsrnAplct ? '01' : info.exprnClsrnAplct}" onChange="fncEtcInputEnable(this)"/>
<label for="exprnClsrnAplctCn" class="label">신청경로 기타설명</label>
<input type="text" value="${info.exprnClsrnAplctCn}" size="25" id="exprnClsrnAplctCn" name="exprnClsrnAplctCn" ${info.exprnClsrnAplct eq '04' ? '' : 'disabled'}>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="oprtnStrtDt" name="oprtnStrtDt" value="${info.oprtnStrtDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="oprtnEndDt" name="oprtnEndDt" value="${info.oprtnEndDt}">
</div>
</td>
</tr>
<tr>
@ -461,7 +801,7 @@
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>

View File

@ -9,7 +9,7 @@
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<un:useConstants var="VeConstants" className="kcc.kccadr.cmm.KccadrConstants" />
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<%
/**
* @Class Name : oprtnStateMngList.jsp
@ -257,7 +257,27 @@
<c:out value="${list.sbmtPnttm}"/>
</td>
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}" />
<%-- <ve:code codeId="VE0003" code="${list.aprvlCd}" /> --%>
<c:choose>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_10}">
<span class="app_status1">운영신청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_70}">
<span class="app_status2">수정요청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_80}">
<span class="app_status4">수정완료</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60}">
<span class="app_status4">운영확정</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status4">운영미확정</span>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>

View File

@ -37,11 +37,11 @@
replyCalculation();
});
beforeSrvyPopupAjax();
/* beforeSrvyPopupAjax();
beforePrintPopupAjax();
afterSrvyPopupAjax();
afterPrintPopupAjax();
afterPrintPopupAjax(); */
//파일첨부버튼
$(".btn_add_file").on('click', function(){
@ -538,6 +538,14 @@
</td>
-->
</tr>
<tr>
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td>
${info.needTxtbNum}
</td>
</tr>
<!--
<tr>
<th scope="row">

View File

@ -467,6 +467,22 @@
</td>
</tr>
-->
<tr class="trLength4">
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td>
${info.needTxtbNum}
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td colspan="3">
${info.needTxtbNum}
</td>
</tr>
<tr>
<th scope="row">
<p>첨부파일</p>

View File

@ -79,8 +79,29 @@
$("#addr").val(schData.newAddr);
$("#addrDetail").val(schData.newAddrDtl);
$('input[name=scholDivCd][value='+schData.scholDivCd+']').prop('checked', true);
if(schData.isltnYn == 'Y'){
$("#islandsYn").prop('checked', true);
}else{
$("#islandsYn").prop('checked', false);
}
if(schData.isltn2Yn == 'Y'){
$("#remoteYn").prop('checked', true);
}else{
$("#remoteYn").prop('checked', false);
}
if(schData.isltn3Yn == 'Y'){
$("#clsCmbtYn").prop('checked', true);
}else{
$("#clsCmbtYn").prop('checked', false);
}
if(schData.ppltnReducAreaYn == 'Y'){
$("#ppulDclnYn").prop('checked', true);
}else{
$("#ppulDclnYn").prop('checked', false);
}
$("#eduSlctAreaCd").find("option").each(function(index){
if ($(this).text() == schData.locNm) {
$("#eduSlctAreaCd").val($(this).val());
@ -177,6 +198,10 @@
$("#eduSlctAreaCd").removeAttr("disabled");
$("input[name=scholDivCd]").removeAttr("disabled");
$("input[name=islandsYn]").removeAttr("disabled");
$("input[name=remoteYn]").removeAttr("disabled");
$("input[name=clsCmbtYn]").removeAttr("disabled");
$("input[name=ppulDclnYn]").removeAttr("disabled");
fncDataReplace();
var data = new FormData(document.getElementById("createForm"));
@ -431,10 +456,10 @@
return false;
}
/* if($("#agree1").length > 0 && !$('#agree1').prop('checked')){
if($("#agree1").length > 0 && !$('#agree1').prop('checked')){
alert('개인정보 이용 약관에 동의해주세요.');
return false;
} */
}
return true;
}
@ -473,6 +498,11 @@
$('input[name=ppulDclnYn][value='+info.ppulDclnYn+']').prop('checked', true);
$('input[name=scholDivCd][value='+info.scholDivCd+']').prop('checked', true);
$('input[name=islandsYn][value='+info.islandsYn+']').prop('checked', true);
$('input[name=remoteYn][value='+info.remoteYn+']').prop('checked', true);
$('input[name=clsCmbtYn][value='+info.clsCmbtYn+']').prop('checked', true);
$('input[name=ppulDclnYn][value='+info.ppulDclnYn+']').prop('checked', true);
$("#chrgNm").val(info.chrgNm);
$("#chrgSexCd").val(info.chrgSexCd);
@ -539,6 +569,7 @@
$("#trgtGrade").val(info.trgtGrade);
$("#trgtClsrm").val(info.trgtClsrm);
$("#trgtPrsnl").val(info.trgtPrsnl);
$("#needTxtbNum").val(info.needTxtbNum);
if(isNotEmpty(info.oprtnStrtDt)){
/* $("#oprtnStrtDt").val(dateFormat(info.oprtnStrtDt.replace(/[.]/gi,''), 'date')); */
@ -666,9 +697,9 @@
<p>학교구분</p>
</th>
<td colspan="3">
<input type="radio" id="scholDivCd01" name="scholDivCd" value="10" disabled="disabled"> <label class="" for="scholDivCd01">초등</label>
<input type="radio" id="scholDivCd012" name="scholDivCd" value="20" disabled="disabled"> <label class="" for="scholDivCd012">중등</label>
<input type="radio" id="scholDivCd0123" name="scholDivCd" value="30" disabled="disabled"> <label class="" for="scholDivCd0123">고등</label>
<input type="radio" id="scholDivCd01" name="scholDivCd" value="10" disabled="disabled" <c:if test="${info.scholDivCd eq '10' }">checked</c:if>> <label class="" for="scholDivCd01">초등</label>
<input type="radio" id="scholDivCd012" name="scholDivCd" value="20" disabled="disabled" <c:if test="${info.scholDivCd eq '20' }">checked</c:if>> <label class="" for="scholDivCd012">중등</label>
<input type="radio" id="scholDivCd0123" name="scholDivCd" value="30" disabled="disabled" <c:if test="${info.scholDivCd eq '30' }">checked</c:if>> <label class="" for="scholDivCd0123">고등</label>
</td>
</tr>
<tr>
@ -676,10 +707,10 @@
<p>학교지역특성</p>
</th>
<td colspan="3">
<input type="checkbox" id="islandsYn" name="islandsYn" value="Y"><label for="islandsYn"> 도서지역</label>
<input type="checkbox" id="remoteYn" name="remoteYn" value="Y"><label for="remoteYn"> 벽지지역</label>
<input type="checkbox" id="clsCmbtYn" name="clsCmbtYn" value="Y"><label for="clsCmbtYn"> 접적지역</label>
<input type="checkbox" id="ppulDclnYn" name="ppulDclnYn" value="Y"><label for="ppulDclnYn"> 인구감소지역</label>
<input type="checkbox" id="islandsYn" name="islandsYn" value="Y" disabled="disabled" <c:if test="${info.islandsYn eq 'Y' }">checked</c:if>><label for="islandsYn"> 도서지역</label>
<input type="checkbox" id="remoteYn" name="remoteYn" value="Y" disabled="disabled" <c:if test="${info.remoteYn eq 'Y' }">checked</c:if>><label for="remoteYn"> 벽지지역</label>
<input type="checkbox" id="clsCmbtYn" name="clsCmbtYn" value="Y" disabled="disabled" <c:if test="${info.clsCmbtYn eq 'Y' }">checked</c:if>><label for="clsCmbtYn"> 접적지역</label>
<input type="checkbox" id="ppulDclnYn" name="ppulDclnYn" value="Y" disabled="disabled" <c:if test="${info.ppulDclnYn eq 'Y' }">checked</c:if>><label for="ppulDclnYn"> 인구감소지역</label>
</td>
</tr>
<tr>
@ -931,6 +962,15 @@
</td>
</tr>
<tr>
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td>
<label for="trgtGrade" class="label">필요 교재 수량 입력</label>
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.needTxtbNum}" title="필요 교재 수량" size="20" maxlength="3">
</td>
</tr>
<%-- <tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
@ -1093,7 +1133,7 @@
</dd>
</dl>
<!-- <div class="agree_wrap">
<div class="agree_wrap">
<div class="tb_tit01">
<p>개인정보 이용 동의</p>
</div>
@ -1117,11 +1157,11 @@
<div>
<input type="checkbox" id="agree1" name="agree1" value="Y">
<label for="agree1">위 사항에 동의합니다.</label>
<input type="hidden" id="agreeError" name="agreeError"> IE에서 체크박스가 마지막에 있을 시 이상한 오류 발생. 오류 방지를 위해히든 하나 넣어둠
<input type="hidden" id="agreeError" name="agreeError"> <!-- IE에서 체크박스가 마지막에 있을 시 이상한 오류 발생. 오류 방지를 위해히든 하나 넣어둠 -->
</div>
</div>
</div>
</div> -->
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
@ -1132,7 +1172,9 @@
</c:when>
<c:otherwise>
<button type="button" class="btnType04" onclick="fncSave('S'); return false;">교육신청</button>
<button type="button" class="btnType06" onclick="fncSave('I'); return false;">임시저장</button>
<c:if test="${modelVO.mode ne VeConstants.MODE_UPT}">
<button type="button" class="btnType06" onclick="fncSave('I'); return false;">임시저장</button>
</c:if>
</c:otherwise>
</c:choose>
</div>

View File

@ -160,6 +160,12 @@ $(document).ready(function(){
<input type="hidden" name="scholDivCd" value="${row.scholDivCd}"/>
<input type="hidden" name="isltnScholYn" value="${row.isltnScholYn}"/>
<input type="hidden" name="isltnYn" value="${row.isltnYn}"/>
<input type="hidden" name="isltn2Yn" value="${row.isltn2Yn}"/>
<input type="hidden" name="isltn3Yn" value="${row.isltn3Yn}"/>
<input type="hidden" name="ppltnReducAreaYn" value="${row.ppltnReducAreaYn}"/>
</td>
</tr>
</c:forEach>

View File

@ -309,7 +309,7 @@ function delAtchFile(itemId , fileSn){
function autoDelAtchFile(data){
$.ajax({
type: "POST",
url: "/offeduadvc/uss/ion/fms/fmsfileMultipleDeleteAjax.do",
url: "/offeduadvc/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/fmsfileMultipleDeleteAjax.do",
data: JSON.stringify(data),
dataType:'json',
async: false,