2025-10-17 16:34 예방교육 수강 신청 수정

This commit is contained in:
myname 2025-10-17 16:34:51 +09:00
parent 343b529c5f
commit 500e04cd4a
7 changed files with 1259 additions and 15 deletions

View File

@ -19,8 +19,7 @@ public interface CmdTrgtService {
ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO);
//교육대상자 확인 - new
ModelAndView checkSspnIdtmt(CmdTrgtMngVO cndtnTrgtInfoMngVO);
ModelAndView checkSspnIdtmt(CmdTrgtMngVO cndtnTrgtInfoMngVO);
}

View File

@ -0,0 +1,24 @@
package kcc.ve.aplct.prevent.service;
import org.springframework.web.servlet.ModelAndView;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
public interface PreventService {
void insertVeEduAplct(VEEduAplctVO paramVO);
void updateAprvlCd(VEEduAplctVO paramVO) throws Exception;
VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO);
// String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
//교육대상자 확인
ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO);
//교육대상자 확인 - new
ModelAndView checkSspnIdtmt(CmdTrgtMngVO cndtnTrgtInfoMngVO);
}

View File

@ -0,0 +1,285 @@
package kcc.ve.aplct.prevent.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.com.cmm.LoginVO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.aplct.prevent.service.PreventService;
import kcc.ve.cmm.VeSendSMS;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctSndHstryService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduAplctDAO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.impl.CmdTrgtMngDAO;
@Service("preventService")
public class PreventServiceImpl implements PreventService {
//과정
@Resource(name="vEEduAplctDAO")
private VEEduAplctDAO vEEduAplctDAO;
// 기소유예 관련
@Resource(name="cmdTrgtInfoMngDAO")
private CmdTrgtMngDAO cmdTrgtMngDAO;
//snd_hstry id gen
@Resource(name = "sndGnrService")
private EgovIdGnrService sndGnrService;
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//강사 정보 MIX
@Resource(name="vEInstrMixService")
private VEInstrMixService vEInstrMixService;
// 교육신청발송이력
@Resource(name = "vEEduAplctSndHstryService")
private VEEduAplctSndHstryService vEEduAplctSndHstryService;
@Override
public void insertVeEduAplct(VEEduAplctVO paramVO) {
vEEduAplctDAO.insertVeEduAplct(paramVO);
}
@Override
public void updateAprvlCd(VEEduAplctVO paramVO) throws Exception {
vEEduAplctDAO.updateReg(paramVO);
}
@Override
public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) {
return vEEduAplctDAO.findByAprvlCd(vEEduAplctReqVO);
}
@Override
public ModelAndView findByTrgtNmAndDBirthAndEduStateCd(CmdTrgtMngVO cndtnTrgtInfoMngVO) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String result="";
String msg="";
String id="";
String next="";
try {
result="success";
//
// // 교육 신청한 대상자 조회
id = cmdTrgtMngDAO.findByTrgtNmAndDBirthAndEduStateCd(cndtnTrgtInfoMngVO);
if(StringUtils.isNotEmpty(id)) {
msg = "이미 신청한 대상자 입니다.";
// 신청한 대상자가 없으면
// 신청하지 않은 대상자가 있는지 조회
}else {
id = cmdTrgtMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd(cndtnTrgtInfoMngVO);
msg = "대상자가 없습니다.";
if(StringUtils.isNotEmpty(id)) {
msg = "확인됐습니다.";
next = "Y";
}
}
} catch (Exception e) {
result="fail";
msg = "오류가 발생하였습니다 관리자에게 문의하세요. ";
e.printStackTrace();
// TODO: handle exception
}
modelAndView.addObject("msg", msg);
modelAndView.addObject("result", result);
modelAndView.addObject("id", id);
modelAndView.addObject("next", next);
return modelAndView;
}
@Override
public ModelAndView checkSspnIdtmt(CmdTrgtMngVO cmdTrgtMngVO) {
/*
* step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것.
* step1.신청 가능한 대상이 있는지 찾는다.
* 있으면 신청처리 but 2개 이상이면 선택하도록, 1개면 신청 처리
* step2.대상이 없으면 기존 이력이 있는지 확인
* 있으면 기존 사유 노출
* step3.기존 이력이 없으면 관리자에게 문의 하도록 한다.
* */
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String result="";
String msg="";
String id="";
String next=""; //?
String smsYn = ""; //휴대폰 인증 번호 발송 여부
try {
result="";
//
// // step0.해당 계정으로 신청한 정보가 있는지 확인 하고, 있다면 동일한 정보로 신청했는지 확인 할것.
//CmdTrgtMngVO cndtnTrgtMngVO = cmdTrgtMngDAO.checkSspnIdtmtNewStep0(cmdTrgtMngVO);
/*
if ("F".equals(cndtnTrgtMngVO.getResultCd())) { //해당 계정으로 신청한 정보중에 다른 개인정보(이름, 생년월일, 성별) 사용해서 신청한 내용이 있다.
result="fail";
msg = "하나의 계정은 한 명의 대상자만 신청할 수 있습니다.";
modelAndView.addObject("msg", msg);
modelAndView.addObject("result", result);
return modelAndView;
}
*/
// step1.신청 가능한 대상이 있는지 찾는다.-대상자 존재 여부만 확인
List<CmdTrgtMngVO> cndtnTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep1(cmdTrgtMngVO);
System.out.println(cndtnTrgtMngVOList);
System.out.println(cndtnTrgtMngVOList.size());
if (false) { //대상자가 없음
result = "fail";
msg = "대상자 정보와 입력하신 정보가 일치하지 않습니다.\n담당자에게 문의 바랍니다.\n문의: 055-792-0223";
next = "Y"; //?
}else { //대상자 있음
//id = cndtnTrgtMngVOList.get(0).getCmdTrgtInfoOrd();
//step2.대상이 완료 상태인지 확인
cndtnTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep2(cmdTrgtMngVO);
int i_cnt = 0;
try {
i_cnt = cndtnTrgtMngVOList.size();
}catch(Exception ex) {
ex.printStackTrace();
}
if (i_cnt>0) { //완료한 상태이다.
result = "fail";
msg = "의뢰 상태가 완료로 과정대상자가 아닙니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}else { //미완료 상태이다. //신청한 과정이 있는지 확인 필요.
cndtnTrgtMngVOList = cmdTrgtMngDAO.checkSspnIdtmtStep3(cmdTrgtMngVO);
i_cnt = 0;
try {
i_cnt = cndtnTrgtMngVOList.size();
}catch(Exception ex) {
ex.printStackTrace();
}
if (i_cnt>0) {// 신청한 과정이 있다.
msg = "이미 신청한 교육이 있습니다.";
next = ""; //?
}else {//신청한 과정이 없다.
result = "success";
msg = "";
//id = cndtnTrgtMngVOList.get(0).getSspnIdtmtTrgtOrd();
//id = "";
next = "Y";
smsYn = "Y";
//next = Integer.toString(cndtnTrgtMngVOList.size()); //대상자
}
}
}
//핸드폰으로 인증번호 발송
if ("Y".equals(smsYn) && !"Y".equals(cmdTrgtMngVO.getChkYn())) {
//인증번호 생성
String code = RandomStringUtils.randomNumeric(6);
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
VeSendSMS sendSMS = new VeSendSMS();
cmdTrgtMngVO = egovCryptoUtil.decryptCmdTrgtMngVOInfo(cmdTrgtMngVO); //핸드폰번호 복호화
vEEduAplctVO.setEduAplctOrd("기소유예 대상자 인증");
vEEduAplctVO.setSndCn("안녕하세요. 저작권배움터 기소유예 담당자입니다.\n인증번호는 " + code + " 입니다.");
vEEduAplctVO.setClphone(cmdTrgtMngVO.getClphone());
vEEduAplctVO.setSndFlag("B");
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
//문자 발송 성공
if("1".equals(resultMap.get("result_code"))){
//발송 로그
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
String snd_ord = sndGnrService.getNextStringId();
vEEduAplctVO.setSndHstryOrd(snd_ord);
vEEduAplctVO.setSndId(loginVO.getUniqId());
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
vEEduAplctVO.setSndCd("10");
vEEduAplctVO.setTrgtId(loginVO.getUniqId());
vEEduAplctSndHstryService.insert(vEEduAplctVO);
//인증번호 row 생성 (기존 강사인증 테이블 사용)
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
vEInstrDetailVO.setEmail(vEEduAplctVO.getClphone());
vEInstrDetailVO.setCrtfdNumber(code);
vEInstrDetailVO.setUserId(loginVO.getUniqId());
vEInstrMixService.deleteInstrEmailCrtfd(vEInstrDetailVO);
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
}
}
/*
if(StringUtils.isNotEmpty(id)) {
msg = "이미 신청한 대상자 입니다.";
// 신청한 대상자가 없으면
// 신청하지 않은 대상자가 있는지 조회
}else {
id = cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd(cndtnTrgtInfoMngVO);
msg = "대상자가 없습니다.";
if(StringUtils.isNotEmpty(id)) {
msg = "확인됐습니다.";
next = "Y";
}
}
*/
} catch (Exception e) {
result="fail";
msg = "오류가 발생하였습니다 관리자에게 문의하세요. ";
next = "Y";
e.printStackTrace();
// TODO: handle exception
}
modelAndView.addObject("msg", msg);
modelAndView.addObject("id", id);
modelAndView.addObject("result", result);
modelAndView.addObject("next", next); //fail & Y = 관리자 문의 버튼 노출
return modelAndView;
}
}

View File

@ -35,7 +35,7 @@ import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
import kcc.ve.aplct.prevent.service.PreventService;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService;
@ -50,6 +50,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@ -165,8 +166,14 @@ public class PreventController {
private CmmUseDAO cmmUseDAO;
//온라인콘텐츠과정 관리
@Resource(name = "sspnIdtmtService")
private SspnIdtmtService sspnIdtmtService;
//@Resource(name = "sspnIdtmtService")
//private SspnIdtmtService sspnIdtmtService;
//@Resource(name = "cmdTrgtService")
//private CmdTrgtService cmdTrgtService;
@Resource(name = "preventService")
private PreventService preventService;
@Resource(name = "NotifyManageService")
private NotifyManageService notifyManageService;
@ -364,6 +371,10 @@ public class PreventController {
, ModelMap model
, HttpServletRequest request
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
model.addAttribute("loginVO", loginVO);
System.out.println("s_actionaaaaaaaaaaa");
String s_action = request.getParameter("action"); //insert or select
System.out.println("s_action");
@ -529,7 +540,7 @@ public class PreventController {
vEEduAplctReqVO.setLctrDivCd(vEPrcsDetailVODetail.getLctrDivCd());
vEEduAplctReqVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd());
vEEduAplctReqVO.setLctrDivCd(p_lctr_div_cd);
VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO);
VEEduAplctVO vEEduAplctVO = preventService.findByAprvlCd(vEEduAplctReqVO);
// VO를 먼저 null 체크 진행해야 에러안남
// vEEduAplctVO != null &&
if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) {
@ -675,6 +686,7 @@ public class PreventController {
// frst_regist_pnttm
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
vEEduAplctVO.setChrgNm(vEPrcsDetailVO.getTrgtNm());
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
@ -685,14 +697,14 @@ public class PreventController {
//암호화
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
vEEduAplctVO.setRndsOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd()); //2024-02-07 추가 신청서 정보에 대상자 정보를 넣어야 추후 구분이 가능해서 추가함
sspnIdtmtService.insertVeEduAplct(vEEduAplctVO);
preventService.insertVeEduAplct(vEEduAplctVO);
CndtnTrgtMngVO cndtnTrgtMngVO = new CndtnTrgtMngVO();
cndtnTrgtMngVO.setUserId(loginVO.getUniqId());
cndtnTrgtMngVO.setSspnIdtmtTrgtOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd());
cndtnTrgtMngVO.setEduStateCd("25"); // 신청
//cndtnTrgtMngVO.setEduStateCd("25"); // 신청
cndtnTrgtMngVO.setEduAplctOrd(s_eduAplctOrd); //동일한 대상자가 어떤 신청서와 맞는지 매칭에 필요함
@ -920,7 +932,7 @@ public class PreventController {
String result = "false";
try {
sspnIdtmtService.updateAprvlCd(vEEduAplctVO);
preventService.updateAprvlCd(vEEduAplctVO);
result = "success";
} catch (Exception e) {
@ -940,7 +952,7 @@ public class PreventController {
*/
@RequestMapping("/web/ve/aplct/prevent/userConfirmAjax.do")
public ModelAndView userConfirmAjax(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
@ModelAttribute("cndtnTrgtInfoMngVO") CmdTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
@ -956,7 +968,7 @@ public class PreventController {
return modelAndView;
}
return sspnIdtmtService.checkSspnIdtmt(cndtnTrgtInfoMngVO);
return preventService.checkSspnIdtmt(cndtnTrgtInfoMngVO);
/*
try {
@ -992,7 +1004,7 @@ public class PreventController {
*/
@RequestMapping("/web/ve/aplct/prevent/userNewConfirmAjax.do")
public ModelAndView userNewConfirmAjax(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
@ModelAttribute("cndtnTrgtInfoMngVO") CmdTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
@ -1022,11 +1034,11 @@ public class PreventController {
System.out.println(cndtnTrgtInfoMngVO.getTrgtNm());
*/
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO);
cndtnTrgtInfoMngVO = egovCryptoUtil.encryptCmdTrgtMngVOInfo(cndtnTrgtInfoMngVO);
//return modelAndView;
return sspnIdtmtService.checkSspnIdtmt(cndtnTrgtInfoMngVO);
return preventService.checkSspnIdtmt(cndtnTrgtInfoMngVO);
}

View File

@ -592,6 +592,7 @@
강사 배치 정보
강사 배치 정보
-->
<br/>
<div class="tb_tit01">
<p>강사 배치 정보</p>
</div>
@ -735,7 +736,7 @@
<c:out value="${list.rowNo}"/>
</td>
<td>
<c:out value="${list.trgtNm}"/>
<c:out value="${list.chrgNm}"/>
</td>
<td>
<a href="#none" onclick="fn_goDetailPop('${list.eduAplctOrd}','${list.mberId}','${list.cmdTrgtInfoOrd}')"><c:out value="${list.mberId}"/></a>

View File

@ -0,0 +1,299 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 기소유예 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="/ipedu/visitEdu/adm/publish/css/reset.css">
<style>
.duet-date__dialog-content,.duet-date__dialog{max-width:400px;width:364px;}
.popup_wrap.popType01{left: 25%;width: 50%;}
.twoRow{width: 100%;}
input::placeholder {
/* color: red; */
font-size: 0.7em;
/* font-style: italic; */
}
</style>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
const dBirth = document.querySelector(".dBirth");
dBirth.localization = {
placeholder: '생년월일을 선택하세요',
selectedDateMessage: 'Selected date is',
prevMonthLabel: '이전 달 보기',
nextMonthLabel: '다음 달 보기',
monthSelectLabel: '달 선택',
yearSelectLabel: '년도 선택',
closeLabel: '달력 닫기',
dayNames: ['일', '월', '화', '수', '목', '금', '토'],
monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
identifier: "searchStartDt",
incrementYears:100,
}
setTimeout(function(){
$('.dBirth .duet-date__input').attr("title","생년월일을 선택하세요.");
},10)
$('#fldSelect').change(function(){
console.log($(this).val());
console.log($(this).val() == '99');
if($(this).val() == '99'){
$('#fld').val('');
$('#fld').attr('type', 'text');
}else{
$('#fld').val($('#fldSelect option:selected').text());
$('#fld').attr('type', 'hidden');
}
});
// $('#phone').keyup(function() {
// var input = $(this).val();
// console.log('input : ', input);
// // 숫자가 아닌 모든 문자를 찾아서 삭제합니다.
// var numericInput = input.replace(/[^0-9]/g, '');
// $(this).val(numericInput);
// });
});
// value 체크
// 20231130 이호영
function fnValidation(){
var valChk = true
// 텍스트 입력 필드에 값이 있는지 확인
$('input[type="text"]').not('#fld').each(function() {
if ($(this).val() == '') {
var fieldName = $(this).closest('td').prev('th').find('p').text();
if (fieldName!=''){
alert(fieldName + '를 입력해주세요.');
$(this).focus();
valChk = false
return false; // 함수 실행 중지
}
}
});
// alert 두번 방지 if
if(valChk){
var phoneNumber = $('#phone').val();
// -가 없는 핸드폰 번호 형식을 검사하는 정규 표현식
var regex = /^01[0-9]{8,9}$/;
if(!regex.test(phoneNumber)) {
alert("올바른 핸드폰 번호 형식이 아닙니다.\n01012341234 형식으로 입력해 주세요");
return false;
}
if(!$('#chkY').prop("checked")){
alert('개인정보 처리 동의해 주세요.')
return false;
}
}
return valChk;
}
function fncEduReg(){
if(!fnValidation()){
return false;
}
var data = new FormData(document.getElementById("regForm2"));
if(confirm("신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/eduRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
$('#target_confirm_popup-close').click();
}
</script>
<form id="regForm2" name="regForm2" method="post">
<input type="hidden" name="prcsAplctPrdOrd" value="${vEPrcsDetailVO.prcsAplctPrdOrd}">
<!-- 대상자 테이블 PK -->
<input type="hidden" name="cmdTrgtInfoOrd" value="${vEPrcsDetailVO.cmdTrgtInfoOrd}">
<input type="hidden" name="trgtNm" value="${vEPrcsDetailVO.trgtNm}">
<input type="hidden" name="dBirth" value="${vEPrcsDetailVO.dBirth}">
<input type="hidden" name="phone" id="phone" value="${vEPrcsDetailVO.clphone}"/>
<!-- 신청인정보 -->
<div class="tooltip-wrap q_pop">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p id="popNm">신청인정보</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01" style="overflow:visible;">
<table>
<caption>신청인정보를 입력하는 표</caption>
<colgroup>
<col style="width: 170px;">
<col style="width: auto;">
<col style="width: 170px;">
<col style="width: auto;">
</colgroup>
<tbody>
<!-- <tr>
<th scope="row">
<p>성명</p>
</th>
<td>
<input type="text" class="twoRow" name="chrgNm" id="chrgNm"/>
</td>
<th scope="row">
<p>생년월일</p>
</th>
<td>
<div class="calendar_wrap">
<duet-date-picker identifier="date" class="dBirth" name="dBirth" min="1940-01-01" max="2025-12-31"></duet-date-picker>
</div>
</td>
</tr> -->
<tr>
<th scope="row">
<p>핸드폰</p>
</th>
<td>
<input type="text" class="twoRow" value="${vEPrcsDetailVO.clphone}" readonly/>
</td>
<th scope="row">
<p>이메일</p>
</th>
<td>
<input type="text" class="twoRow" name="email" id="email"/>
</td>
</tr>
<%-- <tr>
<th scope="row">
<p>소속기업</p>
</th>
<td>
<input type="text" class="twoRow" name="insttNm" id="insttNm"/>
</td>
</tr>
<tr>
<th scope="row">
<p>분야</p>
</th>
<td>
<ve:select codeId="VEA014" id="fldSelect" css="class='selType1'"
selectedValue="" defaultValue=''
defaultText="선택"
/>
<!-- <input type="text" class="twoRow" name="fld" id="fld"/> -->
<td colspan="2">
<input type="hidden" placeholder="직접 입력해주세요" class="twoRow" name="fld" id="fld"/>
</td>
</tr>
<tr>
<th scope="row">
<p>저작권 교육 수강 여부</p>
</th>
<td>
<input type="text" class="lctrYn" name="lctrYn" id="lctrYn"/>
</td>
</tr>
<tr>
<th scope="row">
<p>교육관련 사전질의</p>
</th>
<td colspan="2">
<input type="text" name="prvsQs" id="prvsQs" style="width: 100%;"/>
</td>
</tr> --%>
<!-- <tr> -->
<!-- <td colspan="3"> -->
<!-- </td> -->
<!-- </tr> -->
</tbody>
</table>
</div>
<pre>개인정보 처리 동의서
한국지식재산보호원에서는 귀하의 개인정보를 중요시하며, 개인정보보호법 제15조, 제17조, 제22조, 제23조 및 제24조에 따라 아래와 같이 개인정보 처리에 관하여 동의를 얻고자 합니다.
&lt;개인정보 수집 및 이용에 대한 동의 &gt;
ο 개인정보의 수집 이용 목적 : 교육 대상자 및 이수자 관리
ο 수집하는 개인정보 항목 : 성명, 생년월일, 휴대전화, 이메일
ο 개인정보의 보유 및 이용기간 : 사업 종료시까지
ο 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용 : 귀하의 개인정보 제공 및 동의를 거부할 권리가 있으며, 위 항목 동의 거부시 수강신청이 불가할 수 있음
</pre>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<input type="checkbox" name="chkYn" id="chkY" value="Y"/><label for="chkY">동의</label>
</div>
<div class="btn_right">
</div>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" id="regButton" onclick="fncEduReg();">신청</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>

View File

@ -0,0 +1,624 @@
<%--
Class Name : eduAplctPopList.jsp
Description : 신청팝업
Modification Information
1.강의 종류(청소년, 성인 ... VE0011) 및 설문 종류 (10-기본, 20-신청자, 30-강사) 및 상태(등록, 완료) 에 맞는 설문 레이어 팝업을 만든다.
수정일 수정자 수정내용
------- -------- ---------------------------
2021.12.02 조용준 내용
author : 조용준
since : 2021.12.02
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<script type="text/javascript" src="${pageContext.request.contextPath}/kccadrPb/usr/script/popup.js"></script>
<script type="text/javaScript" language="javascript">
//본인인증 확인 여부 체크
var chkYn = "";
/*
function fncGoScholList(){
linkPage(1);
}
function linkPage(pageNo){
var data = {
pageIndex : pageNo,
searchKeyword : $("#searchKeyword").val(),
searchCondition : $("#searchCondition").val(),
pageUnit : 5,
formId : $("#formId").val(),
}
fncScholList(data);
}
function fncScholList(paramObj) {
if(paramObj == undefined || paramObj == ''){
paramObj = {
pageIndex : 1,
searchKeyword : "",
searchCondition : "",
pageUnit : 5,
formId : $("#formId").val(),
};
}
// 학교 리스트 팝업 호출
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/scholPopList.do"
, 500
, 600
, paramObj
, "N"
, "scholPop"
);
}
*/
function fn_qa(){
location.href = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/main.do";
}
//제출
function fn_new_confirm(p_prcsAplctPrdOrd){
var form = document.confirmForm;
console.log('$("#dBirth").val() : ' , $('#dBirth').val());
var dBirth = $('#dBirth').val().replace(/\./g, '');
var trgtNm = $('#trgtNm').val();
var sex = $('input[name="sex"]:checked').val();
var clphone = $('#clphone').val();
$('#regForm input[name="prcsAplctPrdOrd"]').val(p_prcsAplctPrdOrd);
if (trgtNm==""){
alert("성명을 입력해주세요.");
return;
}
console.log('dBirth : ' , dBirth);
if (!dBirth){
alert("주민번호앞자리를 입력해주세요.");
return;
}
if (sex==""){
alert("성별을 입력해주세요.");
return;
}
if (clphone==""){
alert("휴대폰 번호를 입력해주세요.");
return;
}
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
form.sex.value = sex;
form.clphone.value = clphone;
form.chkYn.value = chkYn;
var data = new FormData(document.getElementById("confirmForm"));
//var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/userConfirmAjax.do";
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/userNewConfirmAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
if(chkYn != 'Y'){ //본인인증 전
alert("인증번호를 확인해주세요.");
$("#chkNo").show();
$("#chkBtn").hide();
//기존정보 변경 막기
$("#trgtNm").prop('readonly', true);
$("#date").prop('readonly', true);
$("#clphone").prop('readonly', true);
$(".duet-date__toggle").remove();
$("#sexM").attr("onclick", "return(false);");
$("#sexF").attr("onclick", "return(false);");
}else{ //본인인증 후
// 대상자 테이블 pk 값
var cmdTrgtInfoOrd = returnData.id;
// 교육 신청 ajax
// 대상자 이름, 생년월일, 대상자TB ID
if(returnData.next == "Y")
{
//sspnIdtmtTrgtOrd = returnData.id;
//fncEduReg(trgtNm, dBirth, returnData.id);
$('#target_confirm_popup-close').click();
fn_eduRegPopup(trgtNm, dBirth, clphone, returnData.id);
}else if(returnData.next == "N"){
//동일 대상자 중에서 선택할수 있도록 처리해야 한다.
//forMulti
$('#confirmBtns').hide();
$('#VOList').show();
returnData.cndtnTrgtMngVOList.forEach(
function (el, index){
var v_forMulti = '';
v_forMulti = v_forMulti +"<tr>";
v_forMulti = v_forMulti +"<td>";
v_forMulti = v_forMulti +el.reqNmbr;
v_forMulti = v_forMulti +"</td>";
v_forMulti = v_forMulti +"<td>";
v_forMulti = v_forMulti +el.prsctrNm;
v_forMulti = v_forMulti +"</td>";
v_forMulti = v_forMulti +"<td>";
//v_forMulti = v_forMulti +el.sspnIdtmtTrgtOrd;
v_forMulti = v_forMulti +"<button type=\"button\" class=\"btnType05\" onclick=\"fn_new_select('"+el.cmdTrgtInfoOrd+"')\">선택</button>";
v_forMulti = v_forMulti +"</td>";
v_forMulti = v_forMulti +"</tr>";
$('#forMulti').after(v_forMulti);
}
);
}
}
}else{
alert(returnData.msg);
if(returnData.next == "Y" && returnData.result == "fail")
{
//문의 하기 버튼 노출을 한다.
$('#qaBtn').show();
}
}
// fn_target_confirm_clean();
// location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
//$('#target_confirm_popup-close').click();
}
//선택
function fn_new_select(p_cmdTrgtInfoOrd){
var dBirth = $('#dBirth').val().replace(/\./g, '');
var trgtNm = $('#trgtNm').val();
var clphone = $('#clphone').val();
$('#target_confirm_popup-close').click();
fn_eduRegPopup(trgtNm, dBirth, clphone, p_cmdTrgtInfoOrd);
}
function fncChkNo(){
if($("#crtfdNumber").val().length != 6){
alert("인증번호 6자리를 입력해주세요.");
return false;
}
var data = new FormData(document.getElementById("newSrvyPopupForm"));
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/web/ve/instr/instrInfo/emailCrtfdChkAjax.do",
data: data,
dataType:"json",
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(returnData.result == 'success'){
alert("확인되었습니다.");
chkYn = "Y";
$("#chkNo").hide();
fn_new_confirm('${vEEduChasiVO.prcsAplctPrdOrd}');
} else {
alert("인증번호가 일치하지 않습니다.");
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
$(document).ready(function(){
/*
boardCaptionDetailToggle4();
// 레이어팝업 포커싱 이동 수정
$(".tooltip-close").click(function(){
var activeTarget = $('[data-tooltip-con="sub36_pop02"]');
activeTarget.hide();
$('[data-tooltip="sub01_pop02"]').focus();
});
//레이어팝업 초정 이동 시 필요한 data 값 추가
var btnLast = $('.popup_cont').find('.page').find('button:last-child');
btnLast.attr('data-focus-next','sub36_pop02');
btnLast.attr('data-focus','sub36_pop02_close');
*/
// 레이어팝업 포커싱 이동 수정
$(".tooltip-close").click(function(){
var activeTarget = $('[data-tooltip-con="sub36_pop02"]');
activeTarget.hide();
$('[data-info="${vEEduChasiVO.prcsAplctPrdOrd}"][data-tooltip="sub36_pop02"]').focus();
});
/* setTimeout(function(){
$('#dBirth .duet-date__input').attr("title","ex)1973.12.23 생년월일을 선택하세요.");
$('.calendar_wrap').each(function(){
//$(this).find('.duet-date__input').attr('onkeydown','this.value=dateSettingHere(this.value);');
$(this).find('.duet-date__input').attr('onblur','this.value=dateSettingHere(this.value);');
});
},10) */
//성명
if ('${loginVO.membName}'!=''){
$('#trgtNm').val('${loginVO.membName}');
}
//생년월일
if ('${fn:substring(loginVO.membBirth, 0 ,4)}'>='0'){
$('#year').val('${fn:substring(loginVO.membBirth, 0 ,4)}');
}
if ('${fn:substring(loginVO.membBirth, 4 ,6)}'>='0'){
$('#month').val('${fn:substring(loginVO.membBirth, 4 ,6)}');
}
if ('${fn:substring(loginVO.membBirth, 6 ,8)}'>='0'){
$('#day').val('${fn:substring(loginVO.membBirth, 6 ,8)}');
}
var year = $("#year").val();
var month = $("#month").val();
var day = $("#day").val();
$("#dBirth").val(year+"."+month+"."+day);
//휴대폰번호
if ('${loginVO.membCelnum}'!=''){
$('#clphone').val('${loginVO.membCelnum}');
}
//성별sexMsexM
if ('${loginVO.sexCode}'=='M'){
$('input[id="sexM"]').attr("checked", true);
}else if ('${loginVO.sexCode}'=='F'){
$('input[id="sexF"]').attr("checked", true);
}
})
</script>
<!-- 일정 상세 -->
<form id="statusChgForm" name="statusChgForm" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${chasiSrvyList[0].prcsAplctPrdOrd}' />"/>
<input type="hidden" name="aplctStateCd" id="aplctStateCd" value="20"/>
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${vEEduChasiVO.eduAplctOrd}">
<input type="hidden" name="lctrDivCd" value="50"/>
</form>
<form id="newSrvyPopupForm" name="newSrvyPopupForm" method="post" >
<input type="hidden" name="siteId" id="siteId" value="${vEEduChasiVO.siteId}">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${vEEduChasiVO.eduAplctOrd}">
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="${vEEduChasiVO.eduChasiOrd}">
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${chasiSrvyList[0].qustnrTmplatId}">
<input type="hidden" name="qestnrId" id="qestnrId" value="${chasiSrvyList[0].qestnrId}">
<input type="hidden" name="qestmInfoSize" id="qestmInfoSize" value="${fn:length(chasiSrvyList)}">
<div class="popup_wrap popType01" data-info="${vEEduChasiVO.prcsAplctPrdOrd}" tabindex="0" data-tooltip-con="sub36_pop02" data-focus="sub36_pop02" data-focus-prev="sub36_pop02_close">
<div class="popup_tit">
<p>교육대상자 확인</p> <button class="btn_popup_close tooltip-close" data-focus="sub36_pop02_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01" style="overflow:visible;">
<table>
<caption>교육대상자 확인 : 성명, 주민번호앞자리, 성별 등의 정보입력</caption>
<colgroup>
<col style="width:38%;">
<col style="width:auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">성명</th>
<td>
<label for="trgtNm" class="label">성명 입력</label>
<input type="text" id="trgtNm">
</td>
</tr>
<tr>
<th scope=“row”>생년월일 8자리 (ex.1988.01.01)</th>
<td>
<div class="calendar_wrap">
<input type="hidden" value="" id="dBirth"/>
<select name="" id="year" class="selType1">
<c:forEach var="index" begin="1925" end="2024">
<c:choose>
<c:when test="${fn:substring(loginVO.membBirth, 0 ,4) eq index}">
<option value="${index}" selected>${index}</option>
</c:when>
<c:otherwise>
<option value="${index}">${index}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>&ensp;년 &ensp;
<select name="" id="month" class="selType1">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>&ensp;월 &ensp;
<select name="" id="day" class="selType1">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>&ensp;일 &ensp;
<script>
$(function(){
$(".calendar_wrap select").change(function(){
var year = $("#year").val();
var month = $("#month").val();
var day = $("#day").val();
$("#dBirth").val(year+"."+month+"."+day);
})
})
</script>
<!-- <duet-date-picker identifier="date" id="dBirth" class="dBirth" min="1940-01-01"></duet-date-picker>
<script>
$(function(){
setTimeout(function(){
$('.calendar_wrap').each(function(){
//$(this).find('.duet-date__input').attr('onkeydown','this.value=dateSettingHere(this.value);');
$(this).find('.duet-date__input').attr('onblur','this.value=dateSettingHere(this.value);');
$(this).find('.duet-date__input').attr('onkeyup','this.value=dateSettingHere(this.value);');
});
},1000)
})
var dBirth = document.querySelector("#dBirth");
var DATE_FORMAT = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/
dBirth.dateAdapter = {
parse: function parse() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""
var createDate = arguments.length > 1 ? arguments[1] : undefined
var matches = value.match(DATE_FORMAT)
if (matches) {
return createDate(matches[3], matches[2], matches[1])
}
},
format: function format(date) {
if (date.getMonth() < 9) {
if (date.getDate() < 10) {
return ""
.concat(date.getFullYear(), ".")
.concat('0', date.getMonth() + 1, ".")
.concat('0', date.getDate())
} else {
return ""
.concat(date.getFullYear(), ".")
.concat('0', date.getMonth() + 1, ".")
.concat(date.getDate())
}
} else {
if (date.getDate() < 10) {
return ""
.concat(date.getFullYear(), ".")
.concat(date.getMonth() + 1, ".")
.concat('0', date.getDate())
} else {
return ""
.concat(date.getFullYear(), ".")
.concat(date.getMonth() + 1, ".")
.concat(date.getDate())
}
}
},
}
// 달력 플러그인 실행
dBirth.localization = {
placeholder: '날짜를 입력하세요',
selectedDateMessage: 'Selected date is',
prevMonthLabel: '이전 달 보기',
nextMonthLabel: '다음 달 보기',
monthSelectLabel: '달 선택',
yearSelectLabel: '년도 선택',
closeLabel: '달력 닫기',
dayNames: ['일', '월', '화', '수', '목', '금', '토'],
monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
identifier: "searchStartDt",
name: "eduHopeDt"
}
dBirth.addEventListener("duetFocus", function (e) {
calendarSetting();
dateSettingHere();
});
function dateSettingHere(objValue) {
var v = objValue.replace("..", ".");
if (v.match(/^\d{4}$/) !== null) {
if (event.keyCode == "8") {
// 백스페이스 키를 누를 때 '.' 안생기게
} else {
v = v + '.';
}
} else if (v.match(/^\d{4}\.\d{2}$/) !== null) {
if (event.keyCode == "8") {
// 백스페이스 키를 누를 때 '.' 안생기게
} else {
v = v + '.';
}
}
if (v.length==10){
setTimeout(function(){
$('#dBirth').val(v);
},100)
}else{
$('#dBirth').val('123');
}
// '-' 막기
if (event.keyCode == "189" || event.keyCode == "109") {
event.preventDefault();
return v;
} else {}
return v;
}
</script> -->
</div>
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker2.js"></script> --%>
</td>
</tr>
<tr>
<th scope=“row”>휴대폰 번호</th>
<td>
<input type="text" id="clphone" onkeyup="onlyNumber(this);" maxlength="11">
</td>
</tr>
<tr id="chkNo" style="display:none;">
<th scope=“row”>인증번호</th>
<td>
<input type="text" name="crtfdNumber" id="crtfdNumber" onkeyup="onlyNumber(this);" maxlength="6">
<button type="button" class="btnType06" onclick="fncChkNo();">인증하기</button>
</td>
</tr>
<tr>
<th scope=“row”>성별</th>
<td>
<input type="radio" id="sexM" name="sex" value="M"> <label class="" for="sexM">남성</label>
<input type="radio" id="sexF" name="sex" value="F"> <label class="" for="sexF">여성</label>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01" id="confirmBtns">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" id="chkBtn" onclick="fn_new_confirm('${vEEduChasiVO.prcsAplctPrdOrd}')">확인</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="sub36_pop02_close" data-focus-next="sub36_pop02">취소</button>
</div>
<div class="btn_right">
</div>
</div>
<!-- <div class="pop_tb_type01" style="overflow:visible;display:none;" id="VOList"> -->
<div class="pop_tb_type01" style="display:none;" id="VOList">
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" id="qaBtn" class="btnType05" onclick="fn_qa()" style="display:none;">문의하기</button>
</div>
</div>
<table>
<colgroup>
<col style="width:30%;">
<col style="width:30%;">
<col style="width:auto;">
</colgroup>
<div>
<tr>
<td colspan="3">여러건의 데이터가 확인 되었습니다.하기 대상 데이터중 하나를 선택 바랍니다.</td>
</tr>
<tr id="forMulti">
<th>사건번호</th>
<th>검사명</th>
<th>선택</th>
</tr>
</div>
</table>
<br/><br/><br/>
</div>
</div>
</div>
</div>
</form>