사용자 대상자 의뢰취소 복구 완료
This commit is contained in:
parent
e8ced52128
commit
0787c72735
@ -532,6 +532,11 @@ public class SspnIdtmtController {
|
|||||||
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
|
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
|
||||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
, ModelMap model
|
, ModelMap model
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ㄴㅇㄹㄴㅇㄹㄴㅇㄹ
|
||||||
, HttpServletRequest request
|
, HttpServletRequest request
|
||||||
) throws Exception {
|
) throws Exception {
|
||||||
|
|
||||||
|
|||||||
@ -30,6 +30,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
private String lastUpdusrId; // 수정자
|
private String lastUpdusrId; // 수정자
|
||||||
|
|
||||||
private String sndFlag;
|
private String sndFlag;
|
||||||
|
private String popup;
|
||||||
|
|
||||||
//ve_prcs_aplct_prd
|
//ve_prcs_aplct_prd
|
||||||
private String prcsAplctPrdOrd; //과정신청기간순번
|
private String prcsAplctPrdOrd; //과정신청기간순번
|
||||||
@ -50,7 +51,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
//ve_edu_aplct
|
//ve_edu_aplct
|
||||||
private String eduAplctOrd; //교육신청순번
|
private String eduAplctOrd; //교육신청순번
|
||||||
private List<String> eduAplctOrdList; //교육신청순번
|
private List<String> eduAplctOrdList; //교육신청순번
|
||||||
private List<String> sspnIdtmtTrgtOrdList; //교육신청순번
|
private List<String> sspnIdtmtTrgtOrdList;
|
||||||
private String eduChasiOrd; //교육차시순번
|
private String eduChasiOrd; //교육차시순번
|
||||||
private String cnt;
|
private String cnt;
|
||||||
|
|
||||||
@ -949,6 +950,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
|||||||
public void setSndFlag(String sndFlag) {
|
public void setSndFlag(String sndFlag) {
|
||||||
this.sndFlag = sndFlag;
|
this.sndFlag = sndFlag;
|
||||||
}
|
}
|
||||||
|
public String getPopup() {
|
||||||
|
return popup;
|
||||||
|
}
|
||||||
|
public void setPopup(String popup) {
|
||||||
|
this.popup = popup;
|
||||||
|
}
|
||||||
public String getFeeSbmtYn() {
|
public String getFeeSbmtYn() {
|
||||||
return feeSbmtYn;
|
return feeSbmtYn;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||||
|
|
||||||
|
|
||||||
public interface CndtnTrgtMngService {
|
public interface CndtnTrgtMngService {
|
||||||
|
|
||||||
@ -27,6 +29,8 @@ public interface CndtnTrgtMngService {
|
|||||||
|
|
||||||
//비공개메모 update
|
//비공개메모 update
|
||||||
int memoUpdate(CndtnTrgtMngVO cndtnTrgtInfoMngVO) throws Exception;
|
int memoUpdate(CndtnTrgtMngVO cndtnTrgtInfoMngVO) throws Exception;
|
||||||
|
|
||||||
|
void updateEduStateCdAndReqStateCdAjax(CndtnTrgtMngVO cndtnTrgtMngVO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -152,5 +152,9 @@ public class CndtnTrgtMngDAO extends EgovAbstractDAO {
|
|||||||
public int memoUpdate(CndtnTrgtMngVO cndtnTrgtInfoMngVO) throws Exception {
|
public int memoUpdate(CndtnTrgtMngVO cndtnTrgtInfoMngVO) throws Exception {
|
||||||
return update("cndtnTrgtInfoMngDAO.memoUpdate", cndtnTrgtInfoMngVO);
|
return update("cndtnTrgtInfoMngDAO.memoUpdate", cndtnTrgtInfoMngVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateEduStateCdAndReqStateCdAjax(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
|
||||||
|
update("cndtnTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax", cndtnTrgtInfoMngVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,6 +77,11 @@ public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
|
|||||||
public void bulkInsert(List<CndtnTrgtMngVO> trgtExcelVOList) {
|
public void bulkInsert(List<CndtnTrgtMngVO> trgtExcelVOList) {
|
||||||
cndtnTrgtInfoMngDAO.bulkInsert(trgtExcelVOList);
|
cndtnTrgtInfoMngDAO.bulkInsert(trgtExcelVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEduStateCdAndReqStateCdAjax(CndtnTrgtMngVO cndtnTrgtMngVO) {
|
||||||
|
cndtnTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax(cndtnTrgtMngVO);
|
||||||
|
}
|
||||||
|
|
||||||
//비공개메모 update
|
//비공개메모 update
|
||||||
@Override
|
@Override
|
||||||
@ -84,4 +89,6 @@ public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
|
|||||||
return cndtnTrgtInfoMngDAO.memoUpdate(cndtnTrgtInfoMngVO);
|
return cndtnTrgtInfoMngDAO.memoUpdate(cndtnTrgtInfoMngVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -255,6 +255,47 @@ public class CndtnTrgtMngController {
|
|||||||
return "oprtn/cndtnSspnIdtmt/trgtList";
|
return "oprtn/cndtnSspnIdtmt/trgtList";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateEduStateCdAndReqStateCdAjax.do")
|
||||||
|
public ModelAndView updateEduStateCdAndReqStateCdAjax(
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") CndtnTrgtMngVO cndtnTrgtMngVO
|
||||||
|
, ModelMap model
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
|
modelAndView.setViewName("jsonView");
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||||
|
if (!"".equals(s_oprtnLoginCheckNInfo)) {
|
||||||
|
modelAndView.addObject("result", "loginFail");
|
||||||
|
return modelAndView;
|
||||||
|
}
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
cndtnTrgtMngVO.setLastUpdusrId(loginVO.getUniqId());
|
||||||
|
try {
|
||||||
|
|
||||||
|
|
||||||
|
cndtnTrgtInfoMngService.updateEduStateCdAndReqStateCdAjax(cndtnTrgtMngVO);
|
||||||
|
|
||||||
|
|
||||||
|
modelAndView.addObject("result", "success");
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
modelAndView.addObject("result", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @methodName : getUserWork
|
* @methodName : getUserWork
|
||||||
* @author : 이호영
|
* @author : 이호영
|
||||||
|
|||||||
@ -1186,6 +1186,7 @@ public class CndtnPrcsInfoMngController {
|
|||||||
return modelAndView;
|
return modelAndView;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 기소유예 교육확정상세 > 이수/미이수 체크버튼 처리
|
* 기소유예 교육확정상세 > 이수/미이수 체크버튼 처리
|
||||||
@ -1464,6 +1465,86 @@ public class CndtnPrcsInfoMngController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @methodName : fndthInstrAsgnmPopup
|
||||||
|
* @author : 이호영
|
||||||
|
* @date : 2024.01.11
|
||||||
|
* @description : 대상자목록에서 강제 배정하는 popup
|
||||||
|
* @param vEPrcsDetailVO
|
||||||
|
* @param model
|
||||||
|
* @param redirectAttributes
|
||||||
|
* @param session
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnEduAsgnmPopup.do")
|
||||||
|
public String cndtnEduAsgnmPopup(
|
||||||
|
// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
|
|
||||||
|
, ModelMap model
|
||||||
|
, RedirectAttributes redirectAttributes
|
||||||
|
, HttpSession session
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||||
|
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//1.pageing step1
|
||||||
|
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||||
|
|
||||||
|
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||||
|
//paginationInfo.setRecordCountPerPage(10000);
|
||||||
|
|
||||||
|
//2. pageing step2
|
||||||
|
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||||
|
|
||||||
|
//기반강화 조회
|
||||||
|
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||||
|
|
||||||
|
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||||
|
String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
|
||||||
|
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){
|
||||||
|
String[] splited = vEPrcsDetailVO.getPrcsKind().split(",");
|
||||||
|
vEPrcsDetailVO.setSearchStatusArr(splited);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
|
||||||
|
|
||||||
|
//vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 값만 존재하면됨
|
||||||
|
// popup일떄 접수중인것만 표시
|
||||||
|
vEPrcsDetailVO.setPopup("true");
|
||||||
|
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO);
|
||||||
|
|
||||||
|
//3.pageing step3
|
||||||
|
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||||
|
|
||||||
|
|
||||||
|
model.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
|
|
||||||
|
//대상 리스트, 페이징 정보 전달
|
||||||
|
model.addAttribute("list", vEPrcsDetailVOList);
|
||||||
|
|
||||||
|
return "/oprtn/cndtnSspnIdtmt/popup/cndtnEduAsgnmPopup";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1.기반강화 강사배치 팝업 function
|
* 1.기반강화 강사배치 팝업 function
|
||||||
|
|||||||
@ -332,7 +332,6 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<!-- 기소유예 대상자 확인 STEP01 -->
|
<!-- 기소유예 대상자 확인 STEP01 -->
|
||||||
<select id="cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd" parameterClass="CndtnPrcsInfoMngVO" resultClass="String">
|
<select id="cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd" parameterClass="CndtnPrcsInfoMngVO" resultClass="String">
|
||||||
/* cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd */
|
/* cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd */
|
||||||
@ -455,7 +454,7 @@
|
|||||||
)bb
|
)bb
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<update id="cndtnTrgtInfoMngDAO.memoUpdate" parameterClass="CndtnPrcsInfoMngVO">
|
<update id="cndtnTrgtInfoMngDAO.memoUpdate" parameterClass="CndtnPrcsInfoMngVO">
|
||||||
/* cndtnTrgtInfoMngDAO.memoUpdate */
|
/* cndtnTrgtInfoMngDAO.memoUpdate */
|
||||||
UPDATE <include refid="CndtnTrgtInfoMngDAO.table_name"/>
|
UPDATE <include refid="CndtnTrgtInfoMngDAO.table_name"/>
|
||||||
SET
|
SET
|
||||||
@ -464,4 +463,19 @@
|
|||||||
,RMRKS = #rmrks#
|
,RMRKS = #rmrks#
|
||||||
WHERE SSPN_IDTMT_TRGT_ORD = #sspnIdtmtTrgtOrd#
|
WHERE SSPN_IDTMT_TRGT_ORD = #sspnIdtmtTrgtOrd#
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
<update id="cndtnTrgtInfoMngDAO.updateEduStateCdAndReqStateCdAjax" parameterClass="CndtnPrcsInfoMngVO">
|
||||||
|
/* cndtnTrgtInfoMngDAO.memoUpdate */
|
||||||
|
UPDATE <include refid="CndtnTrgtInfoMngDAO.table_name"/>
|
||||||
|
SET
|
||||||
|
REQ_STATE_CD = #reqStateCd#
|
||||||
|
, EDU_STATE_CD = #eduStateCd#
|
||||||
|
, LAST_UPDT_PNTTM = SYSDATE
|
||||||
|
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
|
WHERE SSPN_IDTMT_TRGT_ORD IN
|
||||||
|
<iterate property="sspnIdtmtTrgtOrdList" open="(" close=")" conjunction=",">
|
||||||
|
#sspnIdtmtTrgtOrdList[]#
|
||||||
|
</iterate>
|
||||||
|
</update>
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
|
|||||||
@ -408,7 +408,12 @@
|
|||||||
<isNotEmpty property="searchKeyword">
|
<isNotEmpty property="searchKeyword">
|
||||||
AND b.prcs_nm LIKE '%'|| #searchKeyword# ||'%'
|
AND b.prcs_nm LIKE '%'|| #searchKeyword# ||'%'
|
||||||
</isNotEmpty>
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="popup">
|
||||||
|
AND a.DDLN_CD IS null
|
||||||
|
AND TO_DATE(a.STRT_PNTTM , 'YYYY.MM.DD') <![CDATA[ <= ]]> TO_DATE(SYSDATE , 'YYYY.MM.DD')
|
||||||
|
AND TO_DATE(a.END_PNTTM , 'YYYY.MM.DD') >= TO_DATE(SYSDATE , 'YYYY.MM.DD')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,245 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<%
|
||||||
|
/**
|
||||||
|
* @Class Name : instrAsgnmPopup.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(){
|
||||||
|
console.log('<c:out value="${vEPrcsDetailVO.sspnIdtmtTrgtOrdList}" />')
|
||||||
|
});
|
||||||
|
|
||||||
|
function chkAll(obj) {
|
||||||
|
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
|
||||||
|
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
|
||||||
|
}
|
||||||
|
|
||||||
|
function fn_insert() {
|
||||||
|
|
||||||
|
// 대상자 의뢰취소 - 취소에 취소 (복구)
|
||||||
|
function fn_updateCancelReqStatus(p_eduStateCd, p_reqStateCd) {
|
||||||
|
|
||||||
|
var prcsAplctPrdOrdList = [];
|
||||||
|
|
||||||
|
|
||||||
|
console.log('Start');
|
||||||
|
var chk = false;
|
||||||
|
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
|
||||||
|
$("input[name='chk']:checked").each(function() {
|
||||||
|
prcsAplctPrdOrdList.push($(this).val());
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
|
||||||
|
if (prcsAplctPrdOrdList.length === 0) {
|
||||||
|
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataToSend = {
|
||||||
|
"prcsAplctPrdOrdList" : prcsAplctPrdOrdList
|
||||||
|
// , "eduStateCd" : p_eduStateCd
|
||||||
|
// , "reqStateCd" : p_reqStateCd
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!confirm("교육배정을 하시겠습니까?")){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================
|
||||||
|
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateEduStateCdAndReqStateCdAjax.do'/>";
|
||||||
|
|
||||||
|
// AJAX 호출을 통해 서버에 데이터 전송
|
||||||
|
$.ajax({
|
||||||
|
type : "POST",
|
||||||
|
url : url,
|
||||||
|
data : $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
|
||||||
|
// contentType : 'application/json',
|
||||||
|
dataType : 'json',
|
||||||
|
success : function(returnData) {
|
||||||
|
if (returnData.result == "success") {
|
||||||
|
alert("변경 처리 되었습니다.");
|
||||||
|
window.location.reload();
|
||||||
|
} else {
|
||||||
|
alert("변경 중 오류가 발생하였습니다.");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function(jqXHR, textStatus, errorThrown) {
|
||||||
|
console.error("AJAX Error:", textStatus, errorThrown);
|
||||||
|
console.error("Response:", jqXHR.responseText);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="area_popup supm_popup">
|
||||||
|
<div class="cont_popup">
|
||||||
|
|
||||||
|
<form:form id="insertForm" name="insertForm" method="post" onsubmit="return false;">
|
||||||
|
<!-- <input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/> -->
|
||||||
|
<!-- <input type="hidden" name="eduChasiOrd" id="eduChasiOrd"/> -->
|
||||||
|
<!-- <input type="hidden" name="userId" id="userId" /> -->
|
||||||
|
<!-- <input type="hidden" name="asgnmAprvlCd" id="asgnmAprvlCd" value="30"/> VE0019 배정 승인 코드 30 확정 -->
|
||||||
|
<input type="hidden" name="sspnIdtmtTrgtOrdList" id="sspnIdtmtTrgtOrdList" value="<c:out value="${vEPrcsDetailVO.sspnIdtmtTrgtOrdList}" />" />
|
||||||
|
</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="pageUnit" value="5" />
|
||||||
|
<input type="hidden" name="rsdne" value="" />
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" css="class='sel_type1'"
|
||||||
|
selectedText="${vEEduAplctVO.rsdne}" defaultValue=''
|
||||||
|
defaultText='전체'
|
||||||
|
/>
|
||||||
|
<div class="util_right">
|
||||||
|
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="${vEPrcsDetailVO.searchKeyword }">
|
||||||
|
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> --%>
|
||||||
|
<div class="pop_tb_tit01">
|
||||||
|
<p>교육목록</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list_util">
|
||||||
|
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
|
||||||
|
<div>
|
||||||
|
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
|
||||||
|
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||||
|
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||||
|
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||||
|
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
|
||||||
|
</select>
|
||||||
|
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pop_tb_type01">
|
||||||
|
<!-- list -->
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: auto">
|
||||||
|
<col style="width: 180px;">
|
||||||
|
<col style="width: 180px;">
|
||||||
|
<col style="width: 10%">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
|
||||||
|
<th>NO</th>
|
||||||
|
<th>대면구분</th>
|
||||||
|
<th>과정명</th>
|
||||||
|
<th>신청기간</th>
|
||||||
|
<th>교육일자</th>
|
||||||
|
<th>신청자/정원</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="list" items="${list}" varStatus="status">
|
||||||
|
<tr class="listCount">
|
||||||
|
<td>
|
||||||
|
<input name="chk"
|
||||||
|
value="${list.prcsAplctPrdOrd}" title="Check" type="checkbox"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${status.count}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
|
||||||
|
<c:out value="${list.eduStrtPnttm}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty list}">
|
||||||
|
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- //list -->
|
||||||
|
|
||||||
|
<!-- page -->
|
||||||
|
<div class="page">
|
||||||
|
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn_wrap_pop btn_layout01">
|
||||||
|
<div class="btn_left">
|
||||||
|
</div>
|
||||||
|
<div class="btn_center">
|
||||||
|
<button type="button" class="btn_type03" onclick="self.close();">닫기</button>
|
||||||
|
<button type="button" class="btn_type04" onclick="fn_insert();">신청</button>
|
||||||
|
</div>
|
||||||
|
<div class="btn_right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -239,10 +239,211 @@
|
|||||||
$(".memoTr").fadeIn();
|
$(".memoTr").fadeIn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function chkAll(obj) {
|
||||||
|
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
|
||||||
|
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 대상자 의뢰취소
|
||||||
|
function fn_updateReqStatus(p_eduStateCd, p_reqStateCd) {
|
||||||
|
|
||||||
|
var sspnIdtmtTrgtOrdList = [];
|
||||||
|
|
||||||
|
|
||||||
|
console.log('Start');
|
||||||
|
var chk = false;
|
||||||
|
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
|
||||||
|
$("input[name='chk']:checked").each(function() {
|
||||||
|
var sspnIdtmtTrgtOrdValue = $(this).val();
|
||||||
|
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
|
||||||
|
|
||||||
|
// 교육상태가 대기/ 연기 인지 확인
|
||||||
|
// 그 외에 값이면 loop 나온 뒤 경고 alert 실행 후 function 종료
|
||||||
|
if($(this).data('eduinfo') != 10
|
||||||
|
&& $(this).data('eduinfo') != 50
|
||||||
|
){
|
||||||
|
chk = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(chk){
|
||||||
|
alert("교육상태가 '교육대기','연기' 외에 다른 상태값이 있습니다.");
|
||||||
|
// 초기화
|
||||||
|
sspnIdtmtTrgtOrdList = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
|
||||||
|
if (sspnIdtmtTrgtOrdList.length === 0) {
|
||||||
|
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var dataToSend = {
|
||||||
|
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList,
|
||||||
|
"eduStateCd" : p_eduStateCd,
|
||||||
|
"reqStateCd" : p_reqStateCd
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
if(!confirm("의뢰취소를 하시겠습니까?")){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// AJAX 호출을 통해 서버에 데이터 전송
|
||||||
|
this.fn_cmmAjax(dataToSend);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 대상자 의뢰취소 - 취소에 취소 (복구)
|
||||||
|
function fn_updateCancelReqStatus(p_eduStateCd, p_reqStateCd) {
|
||||||
|
|
||||||
|
var sspnIdtmtTrgtOrdList = [];
|
||||||
|
|
||||||
|
|
||||||
|
console.log('Start');
|
||||||
|
var chk = false;
|
||||||
|
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
|
||||||
|
$("input[name='chk']:checked").each(function() {
|
||||||
|
var sspnIdtmtTrgtOrdValue = $(this).val();
|
||||||
|
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
|
||||||
|
|
||||||
|
// 교육상태가 대기/ 연기 인지 확인
|
||||||
|
// 그 외에 값이면 loop 나온 뒤 경고 alert 실행 후 function 종료
|
||||||
|
if($(this).data('eduinfo') != 60
|
||||||
|
){
|
||||||
|
chk = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(chk){
|
||||||
|
alert("교육상태가 '교육취소'외에 다른 상태값이 있습니다.");
|
||||||
|
// 초기화
|
||||||
|
sspnIdtmtTrgtOrdList = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
|
||||||
|
if (sspnIdtmtTrgtOrdList.length === 0) {
|
||||||
|
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataToSend = {
|
||||||
|
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList,
|
||||||
|
"eduStateCd" : p_eduStateCd,
|
||||||
|
"reqStateCd" : p_reqStateCd
|
||||||
|
};
|
||||||
|
|
||||||
|
if(!confirm("의뢰취소복구를 하시겠습니까?")){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.fn_cmmAjax(dataToSend);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fn_cmmAjax(dataToSend){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateEduStateCdAndReqStateCdAjax.do'/>";
|
||||||
|
|
||||||
|
// AJAX 호출을 통해 서버에 데이터 전송
|
||||||
|
$.ajax({
|
||||||
|
type : "POST",
|
||||||
|
url : url,
|
||||||
|
data : $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
|
||||||
|
// contentType : 'application/json',
|
||||||
|
dataType : 'json',
|
||||||
|
success : function(returnData) {
|
||||||
|
if (returnData.result == "success") {
|
||||||
|
alert("변경 처리 되었습니다.");
|
||||||
|
window.location.reload();
|
||||||
|
} else {
|
||||||
|
alert("변경 중 오류가 발생하였습니다.");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function(jqXHR, textStatus, errorThrown) {
|
||||||
|
console.error("AJAX Error:", textStatus, errorThrown);
|
||||||
|
console.error("Response:", jqXHR.responseText);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 강사 배치
|
||||||
|
function fn_eduAsgnm(prcsAplctPrdOrd) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var sspnIdtmtTrgtOrdList = [];
|
||||||
|
|
||||||
|
|
||||||
|
var chk = false;
|
||||||
|
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
|
||||||
|
$("input[name='chk']:checked").each(function() {
|
||||||
|
var sspnIdtmtTrgtOrdValue = $(this).val();
|
||||||
|
sspnIdtmtTrgtOrdList.push(sspnIdtmtTrgtOrdValue);
|
||||||
|
|
||||||
|
// 교육상태가 대기/ 연기 인지 확인
|
||||||
|
// 그 외에 값이면 loop 나온 뒤 경고 alert 실행 후 function 종료
|
||||||
|
if($(this).data('eduinfo') != 10
|
||||||
|
){
|
||||||
|
chk = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(chk){
|
||||||
|
alert("교육상태가 '교육대기'외에 다른 상태값이 있습니다.");
|
||||||
|
// 초기화
|
||||||
|
sspnIdtmtTrgtOrdList = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
|
||||||
|
if (sspnIdtmtTrgtOrdList.length === 0) {
|
||||||
|
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataToSend = {
|
||||||
|
"sspnIdtmtTrgtOrdList" : sspnIdtmtTrgtOrdList
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var form = document.popForm;
|
||||||
|
|
||||||
|
form.sspnIdtmtTrgtOrdList.value = sspnIdtmtTrgtOrdList;
|
||||||
|
|
||||||
|
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
|
||||||
|
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnEduAsgnmPopup.do'/>";
|
||||||
|
|
||||||
|
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
|
||||||
|
form.target = "_securityPop";
|
||||||
|
form.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<title>교육과정관리</title>
|
<title>교육과정관리</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<form id="popForm" name="popForm" method="post" >
|
||||||
|
<input type="hidden" id="sspnIdtmtTrgtOrdList" name="sspnIdtmtTrgtOrdList" value="" />
|
||||||
|
</form>
|
||||||
<form id="excelForm" name="excelForm" method="post" >
|
<form id="excelForm" name="excelForm" method="post" >
|
||||||
</form>
|
</form>
|
||||||
<form id="detailForm" name="detailForm" method="post" >
|
<form id="detailForm" name="detailForm" method="post" >
|
||||||
@ -374,6 +575,7 @@
|
|||||||
<div class="tb_type01">
|
<div class="tb_type01">
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
|
<col style="width: 5%">
|
||||||
<col style="width: 10%">
|
<col style="width: 10%">
|
||||||
<col style="width: 10%">
|
<col style="width: 10%">
|
||||||
<col style="width: 2px">
|
<col style="width: 2px">
|
||||||
@ -388,6 +590,7 @@
|
|||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<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>
|
||||||
@ -403,34 +606,37 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<c:forEach var="list" items="${list}" varStatus="status">
|
<c:forEach var="list" items="${list}" varStatus="status">
|
||||||
<tr class="listCount" onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
<tr class="listCount">
|
||||||
<%-- <td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;"> --%>
|
|
||||||
<%-- <c:out value='${list.prcsNm}'/> --%>
|
|
||||||
<!-- </td> -->
|
|
||||||
<td>
|
<td>
|
||||||
|
<input name="chk"
|
||||||
|
value="${list.sspnIdtmtTrgtOrd}" data-eduInfo="${list.eduStateCd }"
|
||||||
|
data-reqInfo="${list.reqStateCd }" title="Check" type="checkbox"/>
|
||||||
|
</td>
|
||||||
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<c:set var="reqPnttm" value="${fn:substring(list.reqPnttm, 0, 10)}" />
|
<c:set var="reqPnttm" value="${fn:substring(list.reqPnttm, 0, 10)}" />
|
||||||
<%-- <fmt:formatDate value="${list.reqPnttm }" pattern="yyyy-MM-dd" /> --%>
|
<%-- <fmt:formatDate value="${list.reqPnttm }" pattern="yyyy-MM-dd" /> --%>
|
||||||
<c:out value="${reqPnttm }" />
|
<c:out value="${reqPnttm }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
|
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
|
<ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<c:out value="${list.dBirth }" />
|
<c:out value="${list.dBirth }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<c:out value="${list.trgtNm }" />
|
<c:out value="${list.trgtNm }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<ve:code codeId="COM014" code="${list.sex }"/>
|
<ve:code codeId="COM014" code="${list.sex }"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<c:out value="${list.reqNmbr }" />
|
<c:out value="${list.reqNmbr }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
|
||||||
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
|
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@ -473,6 +679,9 @@
|
|||||||
<div class="btn_center">
|
<div class="btn_center">
|
||||||
</div>
|
</div>
|
||||||
<div class="btn_right">
|
<div class="btn_right">
|
||||||
|
<button type="button" class="btn_type04" onclick="fn_updateCancelReqStatus(10, 10); return false;">의뢰취소복구</button>
|
||||||
|
<button type="button" class="btn_type05" onclick="fn_updateReqStatus(60, 40); return false;">의뢰취소</button>
|
||||||
|
<!-- <button type="button" class="btn_type02" onclick="fn_eduAsgnm(); return false;">교육배정</button> -->
|
||||||
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
|
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user