Merge branch 'master_tolag3'

# Conflicts:
#	src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgt/cndtnEduPrcsAplctPrdMngReg.jsp
#	src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.jsp
#	src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctPrdMngReg.jsp
This commit is contained in:
leejunho 2025-11-28 17:09:12 +09:00
commit d3c1a663b1
14 changed files with 373 additions and 133 deletions

View File

@ -325,12 +325,14 @@ public class XxxWebController {
public String atTest() throws Exception {
Map<String, String> chihwan = new HashMap<>();
chihwan.put("title", "이준호테스트");
chihwan.put("siteUrl", "www.naver.com");
chihwan.put("content", "귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.\n");
chihwan.put("eduDay", "2025.11.28 (금) 9시~18시");
chihwan.put("eduRegDay", "(교육등록:8:50~9시)");
chihwan.put("eduPlace", "서울 강남구 테헤란로 131, 한국지식재산센터 지하 1층 훈민정음 홀 (역삼역 4번출구 인근)");
// sendService.sendAt("01030266269", "TEMPLATE_EDU_SUBMIT", chihwan);
sendService.sendAt("01030266269", "TEMPLATE_EDU_SUBMIT", chihwan);
sendService.sendSms("01030266269", "테스트문자제목", "테스트 내용", "SMS");
// sendService.sendSms("01030266269", "테스트문자제목", "테스트 내용", "SMS");
return null;
}

View File

@ -506,17 +506,22 @@ public class SendServiceImpl extends EgovAbstractServiceImpl implements SendServ
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"caseNo", "cfrnc"});
break;*/
case "TEMPLATE_EDU_SUBMIT": // 교육신청
at.setTemplatecode("bizp_2025112016051950432354168");
at.setTemplatecode("bizp_2025112512494050432369880");
content =
/*"[한국공정거래조정원]\r\n"
+ "귀사(하)가 신청한 분쟁조정 신청사건(사건번호 #{caseNo})에 대한 보완(#{nCha}차)이 필요합니다.\r\n"
+ "향후 담당 조사관이 공문 등을 통해 연락드릴 예정입니다. \r\n"
+ "https://fairnet.kofair.or.kr";*/
"[지식재산 보호 교육]\r\n"
+ "귀하가 신청하신 [#{title}] 교육과정이 정상적으로 신청되었습니다.\r\n"
+ "자세한 내용은 한국지식재산보호원 지식재산 보호 교육시스템에서 확인해주시기 바랍니다.\r\n"
+ "#{siteUrl}";
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"title", "siteUrl"});
"[한국지식재산보호원]\r\n"
+ "#{content}\r\n"
+ "\r\n"
+ "--교육 일정 안내--\r\n"
+ "1.일시 : #{eduDay}\r\n"
+ "#{eduRegDay}\r\n"
+ "※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.\r\n"
+ "\r\n"
+ "2.장소 : #{eduPlace}\r\n"
+ "\r\n"
+ "3.준비물 : 필기구, 실물신분증\r\n"
+ "\r\n"
+ "문의처:1670-1271";
requiredPlaceholders.put(at.getTemplatecode(), new String[]{"content", "eduDay", "eduRegDay", "eduPlace"});
break;
}

View File

@ -29,12 +29,12 @@ Globals.DbType = postgresql
# schema - ipedu_scm
# User - ipedu_user
# password - qw3$kEduReal!
Globals.UserName= koipaEdu
Globals.Password= koipaEdu123
Globals.UserName= ipedu_user
Globals.Password= qw3$kEduReal!
Globals.DriverClassName=org.postgresql.Driver
#\uB85C\uCEEC DB
Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified
Globals.Url=jdbc:postgresql://172.25.1.93:5445/ipedu?stringtype=unspecified
#\uC6B4\uC601 \uAC1C\uBC1CDB
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
#\uC6B4\uC601 DB
@ -77,3 +77,12 @@ globals.certPhone.clientId = 5a2a72e2-16ce-420c-8816-57b3dda0e231
globals.certPhone.srvNo = 001003
globals.certPhone.accessToken = 994b5d96-3788-4239-a5b0-a0ba2e0cf089
globals.certPhone.stosUrl = https://pcc.siren24.com/servlet/StoS
# ===========================
# \uBFCC\uB9AC\uC624 \uC54C\uB9BC\uD1A1, \uBB38\uC790 \uBC1C\uC1A1
# ===========================
ppurio.id=ipedu
ppurio.pw=a12711271!!
ppurio.host=https://api.bizppurio.com
ppurio.senderKey=2f3b0bb2cc106a3d98f248c85ac5d5376505f553
ppurio.from=16701271

View File

@ -92,6 +92,7 @@
INSERT INTO <include refid="table_name"/> (
<include refid="column_name"/>
,oprtn_atch_file_id
,prvt_memo_cn
)VALUES(
@ -129,6 +130,7 @@
,#qustnrTm#
,#oprtnAtchFileId#
,#prvtMemoCn#
)
</insert>
@ -302,7 +304,11 @@
<isNotEmpty property="oprtnAtchFileId">
, oprtn_atch_file_id = #oprtnAtchFileId#
</isNotEmpty>
</isNotEmpty>
<isNotEmpty property="prvtMemoCn">
, prvt_memo_cn = #prvtMemoCn#
</isNotEmpty>
WHERE
prcs_aplct_prd_ord = #prcsAplctPrdOrd#

View File

@ -545,7 +545,29 @@
<td>
<c:out value="${fn:replace(info.prcsCn , crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${info.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <c:out value="${fn:split(info.prvtMemoCn, '|')[0]}" />
<c:out value="${fn:split(info.prvtMemoCn, '|')[1]}" />
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <c:out value="${fn:split(info.prvtMemoCn, '|')[2]}" />
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -90,7 +90,7 @@
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
prcsDivChk(prcsDiv);
/*prcsDivChk(prcsDiv);*/
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
}
@ -176,6 +176,12 @@
alert("상세교육과정은 1000자 까지만 저장가능합니다.");
return;
}
$('#prvtMemoCn').val(
$('#prvtMemoCn1').val()
+ "|" + $('#prvtMemoCn2').val()
+ "|" + $('#prvtMemoCn3').val()
);
var data = new FormData(document.getElementById("createForm"));
@ -355,7 +361,28 @@
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${info.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <input type="text" name="prvtMemoCn1" id="prvtMemoCn1" value="${fn:split(info.prvtMemoCn, '|')[0]}">
<input type="text" name="prvtMemoCn2" id="prvtMemoCn2" value="${fn:split(info.prvtMemoCn, '|')[1]}">
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <input type="text" name="prvtMemoCn3" id="prvtMemoCn3" value="${fn:split(info.prvtMemoCn, '|')[2]}">
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -35,20 +35,20 @@
$('#prcsOrd').change(function(){
fnSelectDivAndCn($(this).val());
});
$('#nos').on('input', function() {
// 숫자만 허용
$(this).val($(this).val().replace(/[^0-9]/g, ''));
// 값이 0으로 시작하면 제거
if ($(this).val().charAt(0) == '0') {
$(this).val($(this).val().substring(1));
}
});
/*var prcsDiv = "<c:out value='${prcsDiv }' />";
prcsDivChk(prcsDiv);*/
$("#filebutton").on('click', function(){
$("#file_temp").click();
@ -57,7 +57,7 @@
for(var m=0; m<=23; m++){
$("#qustnrTm").append("<option value='" + m + "'>" + m + "시</option>");
}
});
@ -73,28 +73,31 @@
}else{
$('#tr_eduPlace #thId').text('관련URL');
}
}*/
function fncSave(){
if ($('#prcsCn').val().length>1000){
alert("상세교육과정은 1000자 까지만 저장가능합니다.");
return;
}
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
$('#prvtMemoCn').val(
$('#prvtMemoCn1').val()
+ "|" + $('#prvtMemoCn2').val()
+ "|" + $('#prvtMemoCn3').val()
);
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cmdTrgt/cndtnEduPrcsAplctPrdMngRegAjax.do";
$.ajax({
@ -119,7 +122,7 @@
});
}
}
// div codeNm 가져오는 function
function fnSelectDivAndCn(prcsOrdVal){
@ -135,11 +138,9 @@
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
/*prcsDivChk(prcsDiv);*/
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
//prcsDivChk(prcsDiv);
}
},
error:function(request , status, error){
@ -161,13 +162,13 @@
{
console.log('files', files);
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
@ -175,17 +176,17 @@
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script>
@ -198,7 +199,7 @@
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>과정 신청기간 등록</h2>
@ -207,10 +208,10 @@
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav"> 과정 신청기간 등록</span></li>
<li><span class="cur_nav"> 과정 신청기간 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
@ -232,28 +233,28 @@
<td>
<input type="text" name="prcsDiv" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
</td>
</tr>
</tr>
<tr>
<th scope="row">교육과정</th>
<td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcs}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsOrd}"/>'><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td class="addPro_wrap">
<input type="text" name="title" id="title" value="${vEEduAplctVO.title}" style="width:500px;" maxLength="30">
</td>
</tr>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
@ -266,7 +267,7 @@
</div> --%>
</td>
</tr>
<tr>
<th scope="row">설문오픈일시</th>
<td>
@ -274,15 +275,15 @@
<input type="text" class="calendar" title="설문오픈일 선택" id="qustnrStrtPnttm" name="qustnrStrtPnttm" />
<label for="qustnrTm" class="label">설문오픈시</label>
<select name="qustnrTm" id="qustnrTm" class="sel_type1">
</select>
</select>
</div>
<%-- ~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.endPnttm}">
</div> --%>
</td>
</tr>
</tr>
<tr id="tr_eduPlace">
<th scope="row" id="thId">교육장소</th>
<td class="addPro_wrap">
@ -299,15 +300,37 @@
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.eduDdlnPnttm}">
</div>
</td>
</tr>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<td>
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsCn }" /></textarea>
</td>
</tr>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${vEEduAplctVO.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <input type="text" name="prvtMemoCn1" id="prvtMemoCn1" value="">
<input type="text" name="prvtMemoCn2" id="prvtMemoCn2" value="">
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <input type="text" name="prvtMemoCn3" id="prvtMemoCn3" value="">
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
@ -315,14 +338,14 @@
</td>
</tr>
<tr>
<th scope="row">
<th scope="row">
<p>상태</p>
</th>
<td>
<kc:select codeId="VEA004" name="ddlnCd" id="ddlnCd" defaultText="전체" defaultValue="" css="class='sel_type1'" />
<kc:select codeId="VEA004" name="ddlnCd" id="ddlnCd" defaultText="전체" defaultValue="" css="class='sel_type1'" />
</td>
</tr>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
@ -335,10 +358,10 @@
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01 btn line blue md">파일 첨부하기</button>
</div>
<p class="cf_text2" style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
</div>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
@ -407,8 +430,8 @@
</table>
</div>
</td>
</tr>
</tr>
</tbody>
</table>
</div>
@ -424,7 +447,7 @@
<button type="button" class="btn_type01" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -536,7 +536,29 @@
<td>
<c:out value="${fn:replace(info.prcsCn , crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${info.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <c:out value="${fn:split(info.prvtMemoCn, '|')[0]}" />
<c:out value="${fn:split(info.prvtMemoCn, '|')[1]}" />
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <c:out value="${fn:split(info.prvtMemoCn, '|')[2]}" />
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -90,7 +90,7 @@
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
prcsDivChk(prcsDiv);
/*prcsDivChk(prcsDiv);*/
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
}
@ -176,6 +176,12 @@
alert("상세교육과정은 1000자 까지만 저장가능합니다.");
return;
}
$('#prvtMemoCn').val(
$('#prvtMemoCn1').val()
+ "|" + $('#prvtMemoCn2').val()
+ "|" + $('#prvtMemoCn3').val()
);
var data = new FormData(document.getElementById("createForm"));
@ -353,7 +359,28 @@
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${info.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <input type="text" name="prvtMemoCn1" id="prvtMemoCn1" value="${fn:split(info.prvtMemoCn, '|')[0]}">
<input type="text" name="prvtMemoCn2" id="prvtMemoCn2" value="${fn:split(info.prvtMemoCn, '|')[1]}">
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <input type="text" name="prvtMemoCn3" id="prvtMemoCn3" value="${fn:split(info.prvtMemoCn, '|')[2]}">
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -92,7 +92,11 @@
});
$('#prvtMemoCn').val(
$('#prvtMemoCn1').val()
+ "|" + $('#prvtMemoCn2').val()
+ "|" + $('#prvtMemoCn3').val()
);
if(confirm("저장하시겠습니까?")){
@ -135,11 +139,9 @@
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
/*prcsDivChk(prcsDiv);*/
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
//prcsDivChk(prcsDiv);
}
},
error:function(request , status, error){
@ -305,7 +307,29 @@
<td>
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsCn }" /></textarea>
</td>
</tr>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${vEEduAplctVO.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <input type="text" name="prvtMemoCn1" id="prvtMemoCn1" value="">
<input type="text" name="prvtMemoCn2" id="prvtMemoCn2" value="">
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <input type="text" name="prvtMemoCn3" id="prvtMemoCn3" value="">
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -533,7 +533,29 @@
<td>
<c:out value="${fn:replace(info.prcsCn , crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${info.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <c:out value="${fn:split(info.prvtMemoCn, '|')[0]}" />
<c:out value="${fn:split(info.prvtMemoCn, '|')[1]}" />
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <c:out value="${fn:split(info.prvtMemoCn, '|')[2]}" />
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -90,7 +90,7 @@
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
prcsDivChk(prcsDiv);
/*prcsDivChk(prcsDiv);*/
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
}
@ -176,6 +176,12 @@
alert("상세교육과정은 1000자 까지만 저장가능합니다.");
return;
}
$('#prvtMemoCn').val(
$('#prvtMemoCn1').val()
+ "|" + $('#prvtMemoCn2').val()
+ "|" + $('#prvtMemoCn3').val()
);
var data = new FormData(document.getElementById("createForm"));
@ -355,7 +361,28 @@
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${info.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <input type="text" name="prvtMemoCn1" id="prvtMemoCn1" value="${fn:split(info.prvtMemoCn, '|')[0]}">
<input type="text" name="prvtMemoCn2" id="prvtMemoCn2" value="${fn:split(info.prvtMemoCn, '|')[1]}">
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <input type="text" name="prvtMemoCn3" id="prvtMemoCn3" value="${fn:split(info.prvtMemoCn, '|')[2]}">
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -92,7 +92,11 @@
});
$('#prvtMemoCn').val(
$('#prvtMemoCn1').val()
+ "|" + $('#prvtMemoCn2').val()
+ "|" + $('#prvtMemoCn3').val()
);
if(confirm("저장하시겠습니까?")){
@ -135,11 +139,9 @@
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
/*prcsDivChk(prcsDiv);*/
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
//prcsDivChk(prcsDiv);
}
},
error:function(request , status, error){
@ -314,6 +316,28 @@
<input type="text" name="nos" id="nos" value="${vEEduAplctVO.nos}" style="width:100px;" maxLength="6">
</td>
</tr>
<tr>
<th scope="row">알림톡발송내용</th>
<td>
<%--<textarea name="prcsMemoCn" id="prcsMemoCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsMemoCn}" /></textarea>--%>
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="${vEEduAplctVO.prvtMemoCn}">
<pre>
[한국지식재산보호원]
귀하의 상표권 교육조건부 기소유예 교육 신청이 완료되었습니다.
--교육 일정 안내--
1.일시 : <input type="text" name="prvtMemoCn1" id="prvtMemoCn1" value="">
<input type="text" name="prvtMemoCn2" id="prvtMemoCn2" value="">
※시간 엄수! 지각 시 교육등록이 불가할 수 있으니 시간을 꼭 지켜주시기 바랍니다.
2.장소 : <input type="text" name="prvtMemoCn3" id="prvtMemoCn3" value="">
3.준비물 : 필기구, 실물신분증
문의처:1670-1271
</pre>
</td>
</tr>
<tr>
<th scope="row">
<p>상태</p>

View File

@ -29,9 +29,9 @@
$(document).ready(function(){
// 상태값 확인
ddlnCdSttsChk();
@ -39,21 +39,21 @@
var regForm = document.regForm;
regForm.prcsAplctPrdOrd.value = $(this).data('info');
});
});
function ddlnCdSttsChk(){
var $ddlnCdStts = $(".ddlnCdStts");
//교육 상태(10:신청마감 or 20:교육확정)
var prcsDdlnCd = "${info.ddlnCd}";
// 상태에따라 싱천버튼 활성화 비활성화
var regStatus = true;
// 텍스트가 비어있는지 확인
if (($ddlnCdStts.text().trim() === ""
if (($ddlnCdStts.text().trim() === ""
|| $ddlnCdStts.text().trim() === "반려") && (prcsDdlnCd !== '20'&& prcsDdlnCd !== '10')) {
var dateText = $ddlnCdStts.closest('table').find("td:eq(3)").text().trim();
@ -62,11 +62,11 @@
// 시간 맞추기
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
var currentDate = new Date();
// new Date에서 년, 월, 일만 생성
currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
if (currentDate < strtPnttm) {
$ddlnCdStts.text("접수전");
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
@ -78,7 +78,7 @@
}
console.log('regStatus : ', regStatus);
$('#regBtn').prop('disabled', regStatus); // 버튼 비활성화
/* 240122 웹접근성으로 인하여 disabled 사용 불가능 - disabled대신 onclick과 데이터툴팁 제거하기 */
if ($('#regBtn').prop('disabled')) {
$('#regBtn').removeAttr('onclick').removeAttr('data-tooltip');
@ -166,12 +166,12 @@
}
});
}
}
}
function fncCancelUser(
p_eduAplctOrd
, p_prcsAplctPrdOrd
, p_reqNo
, p_reqNo
){
if(confirm("교육 수강을 취소 하시겠습니까?")){
$.ajax({
@ -234,7 +234,7 @@
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/endInfo/popup/eduRsltRprtRegPop.do"
"${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/popup/eduCancelPop.do"
"${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/popup/eduCancelPop.do"
, 650
, 664
, {
@ -245,12 +245,12 @@
, "Y"
, "cancelStatusChangePop"
);
/*
if(confirm("교육 수강 취소 요청을 하시겠습니까?\n관리자 승인 후 취소가 가능합니다.")){
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/endInfo/popup/eduRsltRprtRegPop.do"
"${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/popup/eduCancelPop.do"
"${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/popup/eduCancelPop.do"
, 650
, 664
, {
@ -264,7 +264,7 @@
}
*/
}
// function fncCancleSubmit(){
// if(confirm("교육신청 취소하시겠습니까?")){
// $.ajax({
@ -296,7 +296,7 @@
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
form.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd;
var data = new FormData(document.getElementById("regForm"));
if(confirm("신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/eduRegAjax.do";
@ -325,7 +325,7 @@
}
}
*/
function fncGoDetail(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do'/>";
@ -342,21 +342,21 @@
, "chrgInfoUpdatePop"
);
}
/*
function fn_confirm(){
var form = document.confirmForm;
var dBirth = $('#dBirth').val().replace(/\./g, '');
var trgtNm = $('#trgtNm').val();
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
var data = new FormData(document.getElementById("confirmForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/userConfirmAjax.do";
$.ajax({
type:"POST",
@ -406,12 +406,12 @@
, id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
,"eduAplctOrd" : id
@ -425,7 +425,7 @@
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/popup/eduAplctPopList.do"
@ -435,8 +435,8 @@
, "Y"
, "AplctPopup"
);
}
}
function fn_eduRegPopup(p_trgtNm, p_dBirth, p_clphone, p_sspnIdtmtTrgtOrd){
var data ={
"prcsAplctPrdOrd": $('#regForm input[name="prcsAplctPrdOrd"]').val()
@ -444,8 +444,8 @@
, "dBirth" : p_dBirth
, "clphone" : p_clphone
, "sspnIdtmtTrgtOrd" :p_sspnIdtmtTrgtOrd
}
}
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/eduAplctPop.do"
// "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduAplctPop.do"
@ -496,7 +496,7 @@
<div class="tb_tit01_left">
<p>교육신청 내용</p>
</div>
<%--
<%--
<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
<div class="btn_wrap">
<button type="button" class="btnType06" onclick="chrgInfoUpdatePop();">담당자 정보 수정</button>
@ -515,21 +515,21 @@
<tr>
<th scope="row">교육부분</th>
<td>
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
</td>
</tr>
</tr>
<tr>
<th scope="row">과정</th>
<td>
<c:out value="${info.prcsNm}"/>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<c:out value="${info.title}"/>
</td>
</tr>
<tr>
@ -547,7 +547,7 @@
</c:if> --%>
<th scope="row">교육장소</th>
<td class="addPro_wrap">
<c:out value="${info.eduPlace}"/>
<c:out value="${info.eduPlace}"/>
</td>
</tr>
<tr>
@ -555,18 +555,18 @@
<td>
<c:out value="${info.eduStrtPnttm}"/>
</td>
</tr>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<td>
<c:out value="${fn:replace(info.prcsCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<c:out value="${info.nos}"/>
<c:out value="${info.nos}"/>
</td>
</tr>
<tr>
@ -584,7 +584,7 @@
</c:otherwise>
</c:choose>
</td>
</tr>
</tr>
<tr>
<th scope="row">
<p>첨부파일</p>
@ -595,18 +595,18 @@
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
</tr>
</tbody>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" id="listBtn" class="btnType02 btn fill gray large" onclick="fncGoList();">
목록
</button>
</button>
</div>
<div class="btn_center">
<!-- 신청이고 교육확정이 아니면 신청, 승인 상태에서 사용자 취소 가능 하도록 버튼 노출 할것. -->
<%-- <c:if test="${(info.aprvlCd eq '10' or info.aprvlCd eq '20') and info.ddlnCd ne '20'}"> --%>
<%-- <button type="button" class="btnType05" onclick="fncCancelUser('${infoAplctOrd.eduAplctOrd}')">교육취소</button> --%>
@ -616,25 +616,25 @@
<%-- <c:if test="${(info.aprvlCd eq '10' or info.aprvlCd eq '20') and info.ddlnCd eq '20'}"> --%>
<%-- <button type="button" class="btnType05" onclick="fncCancelUserToAdmin('${infoAplctOrd.eduAplctOrd}')">취소신청</button> --%>
<%-- </c:if> --%>
<c:if test="${(prcsAplctVO.aprvlCd eq '10' or prcsAplctVO.aprvlCd eq '20') and prcsAplctVO.ddlnCd ne '20'}">
<button type="button" class="btn line red large" onclick="fncCancelUser('${infoAplctOrd.eduAplctOrd}', '${infoAplctOrd.prcsOrd}', '2-1')">교육취소</button>
</c:if>
<c:if test="${prcsAplctVO.aprvlCd eq '60' and prcsAplctVO.ddlnCd eq '20' and empty prcsAplctVO.aplctStateCd}">
<button type="button" class="btnType05" onclick="fncCancelStatusChange('${infoAplctOrd.eduAplctOrd}', '${infoAplctOrd.prcsOrd}', '6-1')">취소요청</button>
</c:if>
</div>
<div class="btn_right" class="aplctBtn">
<%-- <button type="button" class="btnType04" id="regBtn" data-info="<c:out value="${info.prcsAplctPrdOrd}"/>" data-tooltip="target_confirm_popup" >신청</button> --%>
<button type="button" class="btnType04 btn fill blue large" id="regBtn" data-info="<c:out value='${info.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
<button type="button" class="btnType04 btn fill blue large" id="regBtn" data-info="<c:out value='${info.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncAplctPopup('<c:out value="${info.prcsAplctPrdOrd}"/>','','','10','select'
,'','',''
)" title="팝업 열림">신청</button>
</div>
</div>