YNICTE/BO/Views/croom/gradeall2.cshtml

418 lines
20 KiB
Plaintext

@model NP.Model.VMLect
@{
int idx = 1;
}
<form id="mform2" method="post">
<br />
<section class="panel panel-default">
<div style="padding: 10px 10px">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-응시상태;2:응시완료;1:응시중;0:미응시" }, { "name", "addstringval2" }, { "selected", Model.addstringval2 }, { "onchange", "submit()" } })
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
@*<a href="#" onclick="javascript:exceldown('mform', '/croom/gradeall', 'tbody1', '성적처리평가');" class="btn btn-s-xs btn-success" style="margin-left: 5px; float:right;">엑셀다운로드</a>*@
<a href="#" onclick="javascript:callComment('mform', '/croom/gradeall', 'tbody1', '성적처리평가');" class="btn btn-s-xs btn-success" style="margin-left: 5px; float:right;">엑셀다운로드</a>
@Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;1;1" : "0;0;0") + ";1;right;평가안내")
</div>
<div class="table-responsive" id="excel1">
<table class="table table-striped b-t b-light">
<thead>
<tr>
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="20">No</th>
<th width="20">운영기수</th>
<th>구분</th>
<th>고객사</th>
<th>교육장</th>
<th>과정명</th>
<th>시험명</th>
<th>교육생</th>
<th>ID</th>
<th>핸드폰</th>
<th>교육시작일</th>
<th>교육종료일</th>
<th>응시일자<br />(제출일자)</th>
<th>경과시간</th>
<th>IP</th>
<th width="30">응시상태</th>
<th>총점</th>
<th>관리</th>
<th>수료여부</th>
</tr>
</thead>
<tbody class="data" id="tbody1">
@foreach (var d in Model.LectEXes)
{
<tr data-exno="@d.exno" data-lectno="@d.lectno">
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td>
<td>@d.rnorvt</td>
@if (d.cshape == 2)
{
<td>@d.sseq</td>
}
else
{
<td>-</td>
}
<td>@d.isrebatename</td>
<td>@d.asname</td>
<td>@d.studyplacename</td>
<td>@d.cname</td>
<td>@d.exname</td>
<td>@d.username</td>
<td>@d.userid</td>
<td>@d.mobile</td>
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
@if (d.cshape == 2)
{
if (d.iscomplete != 1)
{
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@d.leend.ToShortDateString()</a></td>
}
else
{
<td>@d.leend.ToShortDateString()</td>
}
}
else
{
<td>@d.edate.Value.ToShortDateString()</td>
}
<td>@(d.estartymdhm)<br />@(d.eend == null ? "": string.Format("({0})", d.eendymdhm))</td>
<td>@d.eseterm</td>
<td>@d.eip</td>
<td class="estate@(d.estate)">@d.estatename</td>
<td><a class="btn btn-xxs btn-select" onclick="viewex(@d.exno, @d.lectno,@(idx++))" href="#">@d.tpoint</a></td>
<td class="link text-center">
@if (d.estart != null)
{
//재응시 관련 수정 #xodus 수정완료 reexam에 extype 추가
<a style="color:#fff" onclick="reexam(@d.exno, @d.lectno, @d.extype)" href="#" class="btn btn-select btn-xxs">재응시</a>
}
</td>
@if (!ViewBag.IsSubAdmin96)
{
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("<a href=\"#\" onclick=\"viewcert({0})\">{1}</a>", d.lectno, "수료") : d.iscompletename)</td>
}
else
{
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
}
</tr>
}
</tbody>
</table>
</div>
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
</section>
</form>
@Html.Partial("./Partial/ExcelCommentBox")
<div id="scdbox" class="findbox draggable regbox" style="width: 400px; z-index: 1041; top: 60px; overflow: auto;">
<h4><i class="fa fa-bars"></i> <span id="pcap">교육일정변경</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
<ul id="ulScd"></ul>
<div class="findboxbtnbox" id="btnsavelect">
<a href="#" class="btn btn-primary" onclick="updateScd();">선택완료</a>
</div>
</div>
<div id="thisbox" class="findbox draggable regbox" style="width: 800px; z-index: 1041; top: 60px; bottom: 30px; overflow: auto;">
<h4><i class="fa fa-bars"></i> <span id="pcap">시험 상세결과</span><a href="#" class="btn btn-default btn-xs f-r closethisbox" data-click="checkclose()">닫기</a></h4>
<br />
<h5><i class="fa fa-bars"></i> 개요</h5>
<table class="regtable" id="exsummary">
<tr>
<th>소속</th>
<th>이름(ID)</th>
<th>총점</th>
<th>객관식</th>
<th>단답형</th>
<th>서술형</th>
</tr>
<tr>
<td id="asname"></td>
<td id="usernameid"></td>
<td id="tpoint"></td>
<td id="a0point"></td>
<td id="a1point"></td>
<td id="a2point"></td>
</tr>
</table>
<br />
<h5><i class="fa fa-bars"></i> 채점결과</h5>
<div>
<table class="regtable">
<colgroup><col width="100" /><col /></colgroup>
<tbody id="exdata"></tbody>
</table>
</div>
<br /><br />
<div class="botfixempty">&nbsp;</div>
<div style="position: fixed; bottom: 30px; left: 200px; width: 800px; height: 50px; background-color: #fff; text-align: center;">
<a href="#" id="btnpre" class="btn btn-info btn-xs" onclick="nextex(-1)">◀이전</a>
<a href="#" id="btnnext" class="btn btn-info btn-xs" onclick="nextex(1)">다음▶</a>
<a href="#" class="btn btn-default btn-xs closethisbox" data-click="checkclose()">닫기</a>
</div>
</div>
<style type="text/css">
td.estate0 {
background-color: #ffd7bb !important;
color: red;
}
.tablea0 {
word-break: break-all;
width: 100%;
}
.tablea0 tr td {
text-align: center;
}
.tablea0 tr td.qi {
text-align: left;
}
.regtable tr td .tablea0 tr td {
padding: 6px 5px;
}
#exsummary tr td {
text-align: center;
}
td.qi div.imgbox.active {
position: fixed;
left: 10%;
top: 10%;
height: 80%;
width: 80%;
z-index: 3000;
background-color: #999;
text-align: center;
padding-top: 10%;
}
td.qi div.imgbox.active img {
height: 60%;
max-width: 60%;
}
</style>
<script>
$(document).ready(function () {
$("tr.ex" + ($("#addstringval").find("option").index($("#addstringval").find("option:selected")) + 1)).removeClass("hidden");
$("body").on("click", "td.qi div.imgbox", function () {
$(this).toggleClass("active");
});
$("body").on("click", "td.save a.btn-danger", function () {
var input = $(this).closest("td").find("input");
if (getint(input.val()) > getint(input.attr("data-max"))) {
$(input).focus();
msg2(input.attr("data-max") + "점 이하로 입력해주세요.");
} else if (confirm("점수를 수정하시겠습니까?")) {
capp("/acommon/lectexqpoint", { exno: _exno, lectno: _lectno, eqno: input.attr("data-eqno"), cpoint: getint(input.val()) }, "cblectexqpoint", null, null, null, true);
}
});
});
var _ispointchanged = false;
function cblectexqpoint() {
if (capResult.code == 1000) {
_ispointchanged = true;
msg2("점수를 변경하였습니다(수료처리는 별도로 진행해야합니다.)");
} else {
msgdev(true);
}
}
function findme() {
bglayer(); submit();
}
//재응시 관련 수정 #xodus 수정완료 reexam에 extype 추가
function reexam(exno, lectno, extype) {
capp("/acommon/reexam", { exno: exno, lectno: lectno, extype: extype }, "cbreexam");
}
function cbreexam() {
if (capResult.code == 1000) {
msg("재응시 처리했습니다.", null, null, null, true);
submit("mform", 500);
}
}
var _exno = 0;
var _lectno = 0;
var _ridx = 0;
function viewex(exno, lectno,ridx) {
_exno = exno;
_lectno = lectno;
_ridx = ridx;
$("#exdata tr").remove();
capp("/acommon/lectex", { lectno: lectno, exno: exno }, "cblectex");
}
function cblectex() {
var lectex = capResult.obj.lectex;
var lectexq = capResult.obj.lectexq;
var lectexqs = capResult.obj.lectexqs;
var qis = capResult.obj.qis;
sett("asname", getdb(lectex.asname));
sett("usernameid", getdb(lectex.usernameid))
sett("tpoint", "{0}/{1}".format(lectex.tpoint, lectex.extpoint));
var v1 = 0;
var v2 = 0;
$.each(lectexq, function (i, d) {
if (d.atype == 0) {
v1 += d.cpoint;
v2 += d.dpoint;
}
});
sett("a0point", "{0}/{1}".format(v1, v2));
v1 = 0;
v2 = 0;
$.each(lectexq, function (i, d) {
if (d.atype == 1) {
v1 += d.cpoint;
v2 += d.dpoint;
}
});
sett("a1point", "{0}/{1}".format(v1, v2));
v1 = 0;
v2 = 0;
$.each(lectexq, function (i, d) {
if (d.atype == 2) {
v1 += d.cpoint;
v2 += d.dpoint;
}
});
sett("a2point", "{0}/{1}".format(v1, v2));
var html = "";
$.each(lectexq, function (i, d) {
if (d.atype == 0) {
html += "" +
"<tr><th>문제" + (i + 1) + "</th>" +
"<td>" + d.qtext + "</td></tr>" +
"<tr><th>보기</th>" +
"<td><table class=\"tablea0\"><colgroup><col width=\"50\" /><col width=\"50\" /><col width=\"80\" /><col /></colgroup><tr><th>정답</th><th>선택</th><th>비율</th><th>보기</th></tr>";
$.each(qis, function (i2, d2) {
if (d2.qno == d.qno) {
var tqi = null;
$.each(lectexqs, function (i3, d3) {
if (d3.qno == d2.qno) {
tqi = d3;
return false;
}
});
html += "" +
"<tr><td>" + (d2.isright == 1 ? "[정답]" : "") + "</td>" +
"<td>" + (("," + getdb(d.atext) + ",").indexOf("," + d2.qino + ",") > -1 ? "[선택]" : "") + "</td>" +
"<td>[" + (tqi == null ? 0 : tqi.countselect) + "명, " + (tqi == null ? 0 : tqi.avgselect) + "%]</td>" +
"<td class=\"qi\">" + (d2.fileurl == null ? "":"<div class=\"imgbox\"><img style='max-width: 90%;' src='@Model.Files" + getdb(d2.fileurl) + "' alt='' style=\"max-width: 50%;\" /></div>") + (d2.qitext) + "</td></tr>";
}
});
html += "</table></td></tr>" +
"<tr><th>점수</th>" +
"<td class=\"save\">선다형) <input type=\"text\" data-eqno=\"" + d.eqno + "\" data-max=\"" + d.dpoint + "\" data-org=\"" + d.cpoint + "\" class=\"form-control disp-init int text-center\" maxlength\"2\" style=\"width: 100px;\" value=\""+d.cpoint+"\" /> / " + d.dpoint + "점 <a href=\"#\" class=\"btn btn-danger\">저장</a></td></tr><tr><td colspan=\"2\">&nbsp;</td></tr>";
}
else if (d.atype == 1) {
var rights = "";
$.each(qis, function (i2, d2) {
if (d2.qno == d.qno) {
rights += "," + d2.qitext;
}
});
rights = rights == "" ? "" : rights.substr(1);
html += "<tr><th>문제" + (i + 1) + "</th><td>" + d.qtext + "</td></tr>" +
"<tr><th>정답</th><td>" + rights + "</td></tr>" +
"<tr><th>응시자답안</th><td>" + getdb(d.atext) + "</td></tr>" +
"<tr><th>점수</th>" +
"<td class=\"save\">단답형) <input type=\"text\" data-eqno=\"" + d.eqno + "\" data-max=\"" + d.dpoint + "\" data-org=\"" + d.cpoint + "\" class=\"form-control disp-init int text-center\" maxlength\"2\" style=\"width: 100px;\" value=\"" + d.cpoint +"\" /> / " + d.dpoint + "점 <a href=\"#\" class=\"btn btn-danger\">저장</a></td></tr><tr><td colspan=\"2\">&nbsp;</td></tr>";
}
else if (d.atype == 2) {
html += "<tr><th>문제" + (i + 1) + "</th><td>" + d.qtext + "</td></tr>" +
"<tr><th>응시자답안</th><td>" + getdb(d.atext) + "</td></tr>" +
"<tr><th>점수</th>" +
"<td class=\"save\">서술형) <input type=\"text\" data-eqno=\"" + d.eqno + "\" data-max=\"" + d.dpoint + "\" data-org=\"" + d.cpoint + "\" class=\"form-control disp-init int text-center\" maxlength\"2\" style=\"width: 100px;\" value=\"" + d.cpoint +"\" /> / " + d.dpoint + "점 <a href=\"#\" class=\"btn btn-danger\">저장</a></td></tr><tr><td colspan=\"2\">&nbsp;</td></tr>";
}
});
$("#exdata").append(html);
$("#btnpre,#btnnext").show();
if (_ridx == 1) {
$("#btnpre").hide();
}
if (_ridx == $("#tbody1 tr").length) {
$("#btnnext").hide();
}
setTimeout(function () {
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
bglayer2(false);
}, 10);
}
function checkclose() {
//191223.kfcf-req 점수변경시 페이지 갱신 안되도록 수정
self.close();
bglayer(false);
}
var _authtype = 1;
var _lectno;
function viewcert(lectno) {
_lectno = lectno;
capp("/acommon/authkey", { authtype: _authtype, jobkey: lectno }, "cbauthkey");
}
function cbauthkey() {
if (capResult.code == 1000) {
@*var pop = window.open('@ViewBag.fronturl/Open/CertPrint?userno=@ViewBag.SSUserNo&authtype=' + _authtype + '&randkey=' + capResult.obj, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");*@
var pop = window.open('@ViewBag.reporturl/certification.aspx?lectno='+_lectno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
if (pop == null) {
msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
}
}
}
var _saveidx = 0;
function nextex(idx) {
if (idx != 0) {
_saveidx = idx;
hidelayermsg(true);
getexs(true);
}
}
var _isprenext = false;
function getexs(isprenext) {
_isprenext = isprenext;
if (isprenext) {
$("#tbody1 tr").remove();
capp("/acommon/lectallexes", { pagenum: @((int)Model.pagenum), pagerowcount:@(Model.pagerowcount), sdstate: valnull("addstringval2"), edate: valnull("stringval"), cshape: valnull("stringval2"), cname: valnull("stringval3"), cnamestr: valnull("stringval3"), iscomplete: valnull("stringval4"), studyplace: valnull("stringval5"), searchtype: valnull("stringval6"), searchtext: valnull("stringval7"), extype: @(Model.tabidx == 2 ? 0 : 1), sdateall: valnull("stringval8"), edateall: valnull("stringval9"), asname: valnull("stringval10") }, "cblectexes", null, null, null, true);
}
}
function cblectexes() {
$.each(capResult.obj, function (i, d) {
$("#tbody1").append(("<tr data-exno=\"{12}\" data-lectno=\"{0}\">" +
"<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" +
"<td>{2}</td>" +
"<td>{16}</td>" +
"<td>{3}</td>" +
"<td>{4}</td>" +
"<td>{17}</td>" +
"<td>{18}</td>" +
"<td>{19}</td>" +
"<td>{5}</td>" +
"<td>{20}</td>" +
"{21}" +
"<td>{6}<br />{7}</td>" +
"<td>{8}</td>" +
"<td>{9}</td>" +
"<td class=\"estate{10}\">{11}</td>" +
"<td><a class=\"btn btn-xxs btn-select\" onclick =\"viewex({12}, {0},{15})\" href=\"#\">{13}</a></td>" +
"<td class=\"link text-center\">{14}</td>" +
"{22}</tr>").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, getdb(d.asname)
, d.usernameid, d.estartymdhm, getdb(d.eend) == "" ? "" : "({0})".format(d.eendymdhm), d.eseterm, getdb(d.eip)
, d.estate, d.estatename, d.exno, d.tpoint
, (getdb(d.estart) != "") ? ("<a style=\"color:#fff;\" onclick=\"reexam({12}, {0})\" href=\"#\" class=\"btn btn-select btn-xxs\">재응시</a>") : "", (i + 1)
, d.cshape == 2 ? d.sseq : "-",getdb(d.studyplacename), getdb(d.cname), getdb(d.exname), d.leststr, d.leestr
, '@(!ViewBag.IsSubAdmin96)' == 'True' ? d.scomplete : d.scomplete96));
});
if (_isprenext) {
viewex($("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-exno"), $("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-lectno"), _ridx + _saveidx);
}
}
</script>