YNICTE/FO/Views/My/Exam.cshtml

320 lines
18 KiB
Plaintext
Raw Permalink Normal View History

2020-10-12 14:39:23 +09:00
@model NP.Model.VMMy
@{
}
<div class="mpgInfo">
<ul>
<li>
모든 자격취득자는 자격갱신을 위해 자격 유효기간 내 20시간 이상의 보수교육을 이수하여야 합니다.
</li>
<li>
자격 유효기간 내(2년), 20시간 보수교육 이수 후 자격갱신신청서 제출하셔야 합니다.
</li>
<li>
자격갱신 이후에도 자격 유효기간 내 (2년), 20시간 이상의 보수교육을 이수하여야 합니다
</li>
<li>
(자격정지 기간 : 1년, 자격 취득 및 갱신 후 총 3년 이내 보수교육 미이수 시 자격 취소)
</li>
</ul>
</div>
<div class="mpgtTitle mt0">
<h4>자격취득현황</h4>
<a href="/My/Lecture?intval=1">보수교육 이력조회</a>
</div>
<table class="lctAply">
<thead><tr><th width="80%">시험명</th><th width="10%">갱신요청</th><th width="10%">갱신이력</th></tr></thead>
<tbody>
@foreach (var d in Model.ExamUsers.Where(w => w.ispass == 1))
{
<tr>
<th>
<div class="ltaList">
<h5><a href="/My/ExamDetail?intval=@d.exno" class="tstlTitle">@d.exname</a></h5>
<dl class="ltaDl">
<dd>취득일 : @d.firstcertdate.ToString("yy-MM-dd")</dd>
<dd><a href="#" onclick="viewhistory(@d.exno)">유효기간 : @d.certdate.ToString("yy-MM-dd") ~ @d.certindate.ToString("yy-MM-dd")</a></dd>
</dl>
</div>
</th>
<th style="text-align:center"><a href="#" onclick="renew(@(d.exno),'@(d.exname)','@(d.gradename)','@d.certdate.ToString("yy-MM-dd") ~ @d.certindate.ToString("yy-MM-dd")','@(d.userid)','@(d.username)')">요청</a></th>
<th style="text-align:center"><a href="#" onclick="viewhistory(@(d.exno))">확인</a></th>
</tr>
}
</tbody>
</table>
@if (Model.ExamUsers.Where(w => w.ispass == 1).Count() < 1)
{
<div style="padding: 10px 20px; text-align: center;">- 취득내역이 없습니다.</div>
}
<div class="mpgtTitle"><h4>자격검정 접수 및 응시현황</h4></div>
<ul class="mpgtDesc">
<li>※ 결제대기상태일 경우, 결제를 완료하셔야 시험응시가 가능합니다.</li>
<li>※ 결제를 완료한 응시생들은 ‘수검자 유의사항’ 을 클릭하셔서 반드시 확인해주시기 바립니다. <a href="#" onclick="$('#pop1').fadeIn('fast')">유의사항 보기</a></li>
</ul>
<table class="lctAply">
<thead><tr><th>시험명</th><td>상태</td><td>결과</td></tr></thead>
<tbody>
@foreach (var d in Model.ExamUsers)
{
<tr>
<th>
<div class="ltaList mpgtList">
<h5>
<b style="cursor: pointer;" onclick="bglayer();location.href='/My/ExamDetail?intval=@d.exno'">@d.exname</b>
@if (d.estime > DateTime.Now && d.status == 1 && d.pstatus == 1)
{
<a href="#" onclick="printexam(@d.exno)" class="print">수험표출력</a>
}
</h5>
<dl class="ltaDl">
<dd>원서접수 : @d.rstime.ToString("yy-MM-dd") ~ @d.retime.ToString("yy-MM-dd")</dd>
<dd>시험일시 : <span>@d.estime.ToString("yy-MM-dd HH:mm")</span></dd>
</dl>
</div>
</th>
<td class="ltaBtn mpgtBtn" data-th="상태 : "><a href="#" class="sky" style="@(d.pstatus==1 ? "cursor:default;":"")" onclick="pay(@(d.pstatus == 1 ? 0 : d.exno), @(d.rstime < DateTime.Now && d.retime > DateTime.Now ? 1 : 0))">@(d.pstatus == 1 ? "승인완료" : "결제대기")</a></td>
<td class="ltaBtn mpgtBtn" data-th="결과 : "><a href="#" onclick="viewpoint(@d.isresultopen, @(d.estime < DateTime.Now && d.ispass != null ? d.exno : 0))">@(d.isresultopen==0 ? "-" : d.pstatus != 1 ? "-" : d.estime > DateTime.Now ? "응시전" : d.ispass == null ? "채점중" : d.ispass == 0 ? "불합격" : "합격")</a></td>
</tr>
}
</tbody>
</table>
<form id="mform" method="post" enctype="multipart/form-data" action="/My/QNAs">
<div class="testPop" id="renew1" style="display: none;">
<div class="mpgPop">
<div>
<div>
<div class="mpgPopWrap wdth430">
<div class="mpgPopTitle">
<h5>자격증 갱신요청</h5>
<a href="#" onclick="$('html, body').removeClass('lock');$('#renew1').fadeOut('fast')"></a>
</div>
<div class="mpgpResult">
<table id="renew">
<tr>
<th style="text-align:left">자격증</th>
<td style="text-align:left" id="cert"></td>
</tr>
<tr>
<th style="text-align:left">급수</th>
<td style="text-align:left" id="certgrade"></td>
</tr>
<tr>
<th style="text-align:left;">갱신이후<br />보수교육이력</th>
<td style="text-align:left" id="renewlist"></td>
</tr>
<tr>
<th style="text-align:left">요청사항</th>
<td style="text-align:left">
<input type="hidden" id="userid" name="userid" value="chl190" />
<input type="hidden" id="mtitle" name="mtitle" value="자격증 갱신요청" />
<textarea name="mcontents" id="mcontents" hidden="hidden"></textarea>
<input type="hidden" id="certtime" />
<textarea id="req" style="height:100px; resize:none;" class="form-control disp-init req"></textarea>
</td>
</tr>
</table>
<ul class="mpgPopBtn">
<li><a href="#" class="bk" onclick="save()">요청하기</a></li>
</ul>
</div>
<!-- clsPopCont -->
</div><!-- clsPopWrap -->
</div>
</div>
</div>
</div>
</form>
<div class="testPop" id="pop1" style="display: none;">
<div class="mpgPop mpgPopFull">
<div>
<div>
<div class="mpgPopWrap wdth1140">
<div class="mpgPopTitle">
<h5>수검자 유의사항</h5>
<a href="#" onclick="$('#pop1').fadeOut('fast')"></a>
</div>
<div class="mpgPopScroll">
<div class="mpgpList">
<ul>
<li>1. 수검자는 반드시 지정된 입실 시간(09:30)까지 시험실에 입실해야 하며, 시험 시작(10:00) 이후에는 응시가 불가하오니 유의하셔야 합니다.</li>
<li>2. 필기시험 일시 및 장소는 수험표에 기재된 것과 공고된 것을 반드시 대조 확인하고, 장소는 변경될 수 있으니 최종적으로 확인하여 착오가 없도록 유의하기 바랍니다.</li>
<li>3. 수검자는 필기시험 시 (1) 수험표 (2) 신분증 (3) 컴퓨터용 사인펜 (4) 검은색 볼펜을 지참하여야 하며, OMR 답안지의 선택형에는 (3) 컴퓨터용 사인펜으로 표기하고, 서술형에는 (4) 검은색 볼펜으로 서술하여야 합니다.</li>
<li>4. 접수된 수험원서·수수료 그 밖의 서류는 일체 반환하지 아니합니다.</li>
<li>5. 수검자가 『컴플라이언스경영 전문가』 자격의 검정에서 부정행위를 한 때에는 「컴플라이언스경영 전문가 관리·운영 규정」 제46조제1항에 따라 당해 검정을 정지 또는 무효로 하고 그 처분이 있는 날부터 3년간 『컴플라이언스경영 전문가』 자격 검정에 응시할 수 없습니다.</li>
<li>6. 수검자는 통신기기 및 전자기기(휴대용 전화기, 카메라 등)를 지참하거나 사용할 수 없으며, 발각시 부정행위로 처리됩니다.</li>
<li>7. 시험종료 후에는 답안카드와 함께 문제지를 제출하여야 합니다. 만일 문제지를 제출하지 않은 경우에는 부정행위로 처리될 수 있으며, 어떠한 형태로든 시험문제를 유출하는 경우 저작권법에 의하여 민·형사상 불이익을 받을 수 있습니다.</li>
<li>8. 수험표를 분실 및 훼손한 수검자는 사진 1매와 신분증을 가지고 시험당일 시험본부에서 재교부 받아야 합니다.</li>
<li>9. 검정장에는 주차시설이 부족할 수 있으므로 가급적 대중교통수단을 이용하여 주시기 바랍니다.</li>
</ul>
</div><!-- clsPopCont -->
</div>
</div><!-- clsPopWrap -->
</div>
</div>
</div>
</div>
<div class="testPop" id="pop2" style="display: none;">
<div class="mpgPop">
<div>
<div>
<div class="mpgPopWrap wdth430">
<div class="mpgPopTitle">
<h5>자격증 갱신이력</h5>
<a href="#" onclick="$('html, body').removeClass('lock');$('#pop2').fadeOut('fast')"></a>
</div>
<div class="mpgpResult" style="overflow-y: scroll; height:900px;">
<table id="history"></table>
</div><!-- clsPopCont -->
</div><!-- clsPopWrap -->
</div>
</div>
</div>
</div>
<div class="testPop" id="pop3" style="display: none;">
<div class="mpgPop">
<div>
<div>
<div class="mpgPopWrap wdth430">
<div class="mpgPopTitle">
<h5>자격시험 성적표</h5>
<a href="#" onclick="$('html, body').removeClass('lock');$('#pop3').fadeOut('fast')"></a>
</div>
<div class="mpgpResult">
<table>
<tr>
<th>시험명</th>
<td id="exname"></td>
</tr>
<tr>
<th>성명</th>
<td id="username"></td>
</tr>
<tr>
<th>응시급수</th>
<td id="grade"></td>
</tr>
<tr>
<th>컴플라이언스경영</th>
<td id="ep1">76</td>
</tr>
<tr>
<th>사회적책임경영</th>
<td id="ep2">76</td>
</tr>
<tr>
<th>리스크관리경영</th>
<td id="ep3">76</td>
</tr>
<tr>
<th>총점</th>
<td id="tot">364</td>
</tr>
<tr>
<th>평균</th>
<td id="avrg">76</td>
</tr>
<tr>
<th>합격여부</th>
<td class="red" id="ispass">합격</td>
</tr>
</table>
</div><!-- clsPopCont -->
</div><!-- clsPopWrap -->
</div>
</div>
</div>
</div>
@section scriptsHeader{
}
@section scripts{
<script>
$(document).ready(function () {
});
function viewhistory(exno) {
capp("/fcommon/examusers", { exno: exno }, "cbviewhistory");
}
function cbviewhistory() {
$("#history").find("tbody tr").remove();
$.each(capResult.obj, function (i, d) {
$("#history").append("<tr><td><h5>" + d.certdateymd + " ~ " + d.certindateymd + "</h5><p>(" + d.certtimeymd + " 보수교육수료)</p></td></tr>");
});
$('html, body').addClass('lock');
$('#pop2').fadeIn('fast');
}
function viewpoint(io, exno) {
if (io == 1 && exno > 0) {
capp("/fcommon/examuserresult", { exno: exno }, "cbviewpoint");
}
}
function cbviewpoint() {
if (capResult.code == 1000 && capResult.obj.exno > 0) {
sett("exname", capResult.obj.exname);
sett("username", capResult.obj.username);
sett("grade", capResult.obj.gradename);
sett("ep1", capResult.obj.epoint1);
sett("ep2", capResult.obj.epoint2);
sett("ep3", capResult.obj.epoint3);
sett("tot", capResult.obj.epoint1 + capResult.obj.epoint2 + capResult.obj.epoint3);
sett("avrg", capResult.obj.avrg);
sett("ispass", capResult.obj.ispass == 1 ? "합격" : "불합격");
$('html, body').addClass('lock');
$('#pop3').fadeIn('fast');
}
}
var mcontents="";
function renew(exno, cert, certgrade, certintime,userid,username) {
sett("cert", cert);
sett("certgrade", certgrade);
setv("certtime", certintime);
mcontents += "- 이름(ID): " + username + "(" + userid + ")" + "\n";
mcontents += "- 자격증: " + cert + "\n";
mcontents += "- 급수: " + certgrade + "\n";
mcontents += "- 유효기간: " +certintime + "\n";
capp("/fcommon/examusersrenewlects", { exno: exno }, "cbrenew");
}
function cbrenew() {
$('html,body').addClass('lock');
$('#renew1').fadeIn('fast');
var renewlist = "";
if (capResult.code == 1000) {
$.each(capResult.obj, function (i, r) {
if (r.cmno > 0) {
renewlist += "[" + r.oktimeforrenew + " 수]" + "[" + r.cshapename + "]" + r.cname + "<br />";
}
});
}
mcontents += "- 최근 보수교육 이력: \n" + renewlist + "\n";
$("#renewlist").html(renewlist == "" ? "보수교육이력이 없습니다." : renewlist);
}
function printexam(exno) {
window.open("/My/ExamPrint?intval=" + exno, "examprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
}
function pay(exno, ispayable) {
if (exno > 0) {
if (ispayable > 0) {
bglayer();
location.href = "/My/ExamPay?exno=" + exno;
} else {
msg("신청기간이 아닙니다. 운영자에게 문의해주세요.");
}
}
}
function save() {
mcontents += "- 요청사항\n" + val("req");
$("#mcontents").text(mcontents);
capfileform("/fcommon/memosend", "mform", "cbsave");
}
function cbsave() {
if (capResult.code == 1000) {
msg("메시지를 발송했습니다.", null, null, null, "location.href='/My/MemoSend'");
} else {
msg("받는 사람의 ID에 해당하는 사용자가 없습니다.");
}
}
</script>
}