YNICTE/BO/Views/croom/certreception.cshtml

248 lines
13 KiB
Plaintext
Raw Normal View History

2020-10-12 14:39:23 +09:00
@model NP.Model.VMCM
<ul class="pagination pagination-md" style="margin: 0;">
<li><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li>
<li class="active"><a href="#" data-toggle="tab">접수/결제</a></li>
<li><a href="#" onclick="gotab(2);" data-toggle="tab">응시결과</a></li>
</ul>
<form id="mform1" method="post" class="form-horizontal">
<section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;">
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 시험정보</strong></header>
<div class="panel-body">
<div class="form-group">
<label class="col-sm-3 col-md-2 control-label">시험명 / 급수</label>
<div class="col-sm-8 col-md-10">@string.Format("{0} | {1} ", Model.ComCodes.Where(w => w.cgroup == "cert").Where(w => w.ccode == Model.Exam.certcc).Select(w => w.cname).FirstOrDefault(), Model.ComCodes.Where(w => w.cgroup == "certgrade").Where(w => w.ccode == Model.Exam.certgradecc).Select(w => w.cname).FirstOrDefault())</div>
</div>
<div class="form-group">
<label class="col-sm-3 col-md-2 control-label">접수기간</label>
<div class="col-sm-8 col-md-10">@Model.Exam.GetRegdate()</div>
</div>
<div class="form-group">
<label class="col-sm-3 col-md-2 control-label">신청자명단 / 결제완료인원</label>
<div class="col-sm-8 col-md-10">@string.Format("{0}명 / {1}명", Model.ExamUsers.Count(), Model.ExamUsers.Where(w => w.pstatus == 1).Count())</div>
</div>
</div>
</section>
<div class="tar buttonbox">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "1:결제완료;4:결제대기;8:결제취소" }, { "name", "addstringval" }, { "selected", Model.addstringval }, { "df", "상태선택" }, { "onchange", "$('#mform1').submit();" } })
<a href="#" onclick="javascript: reg(@Model.Exam.exno);" class="btn btn-s-xs btn-info" style="margin-left: 5px;">응시대상일괄등록</a>
<a href="#" onclick="javascript: reg(0);" class="btn btn-s-xs btn-success" style="margin-left: 5px;">응시대상등록</a>
<a href="#" onclick="javascript: del();" class="btn btn-s-xs btn-danger" style="margin-left: 5px;">응시대상삭제</a>
@Html.Partial("./Partial/sembtns", "#tbody1;1;1;1;1;0;자격증안내")
<a href="#" class="btn btn-default" onclick="golist();">목록</a>
</div>
<section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;">
<header class="panel-heading"><strong><i class="fa fa-bars"></i>신청자명단<span class=""></span></strong></header>
<div class="table-responsive" id="excel1">
<table class="table table-striped b-t b-light">
<thead>
<tr>
<th width="20"><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="20">No</th>
<th>고객사</th>
<th>신청자</th>
<th>ID</th>
<th>관련교육이력</th>
<th>등록일</th>
<th>결제상태</th>
</tr>
</thead>
<tbody class="data" id="tbody1">
@foreach (var d in Model.ExamUsers)
{
<tr>
<td><input type="checkbox" class="autocheck" value="@d.userno" data-userno="@d.userno" /></td>
<td>@d.rnorvt</td>
<td class="text-left">@d.asname</td>
<td>@d.username</td>
<td>@d.userid</td>
<td>@string.Format("{0}회",d.countsame)</td>
<td>@d.cdt.ToString("yyy-MM-dd")</td>
<td class="pstatus link text-center" style="@(d.pstatus==1 ? "": "background-color : pink;")" data-pstatus="@d.pstatus"><a href="#" onclick="@(d.pstatus != 1 ? "alert('아직 결제전입니다.');" : "")" style="text-align:center">@(d.pstatus == 1 ? "결제완료" : d.pstatus == 4 ? "결제대기" : "결제취소")</a></td>
</tr>
}
</tbody>
</table>
</div>
</section>
@Html.Partial("./Partial/DForm", Model)
</form>
<form id="dform" method="post" action="/croom/certs">
@Html.Partial("./Partial/DForm", Model, new ViewDataDictionary { { "preform", 1 } })
</form>
<div id="thisbox" class="findbox draggable regbox" style="width: 700px; 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" onclick="javascript: submit('mform1');">닫기</a></h4>
<table class="regtable">
<colgroup><col style="width:150px;" /><col /></colgroup>
<tr>
<th>ID</th>
<td>
<input type="text" id="userid" class="form-control disp-init" style="width: 150px;" readonly="readonly" />
<input type="hidden" id="userno" />
<a href="#" class="btn btn-info btn-find btn-xs data-find" onclick="userboxabsasno = 0, userboxftype = 2;findusershow()"><i class="fa fa-search"></i></a>
</td>
</tr>
<tr>
<th>응시대상정보</th>
<td>
<p class="form-control-static" id="userinfo"></p>
</td>
</tr>
</table>
<div class="findboxbtnbox">
<a href="#" class="btn btn-primary" onclick="save();">등록</a>
<a href="#" class="btn btn-default closethisbox" onclick="javascript: submit('mform1');">취소</a>
</div>
<br /><br />
</div>
<div id="thisbox1" class="findbox draggable regbox" style="width: 700px; 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>
<table class="regtable">
<colgroup><col style="width:200px;" /><col /></colgroup>
<tr id="trisparent">
<th class="req">일괄등록파일</th>
<td style="line-height: 35px;"><input id="uploadfile" type="file" /></td>
</tr>
</table>
<div class="findboxbtnbox">
<a href="~/Content/file/examusers.xlsx" class="btn btn-info">양식다운로드</a>
<a href="#" class="btn btn-primary" onclick="regbatch();">일괄등록</a>
</div>
<br /><br />
</div>
@Html.Partial("./Partial/UserBox", "bindUser;응시대상선택;1;1;thisbox", new ViewDataDictionary { { "assigns", Model.Assigns } })
@section styles{
<style type="text/css">
tr.ismax {
color: red;
}
a.closethisbox{color:black;
font-weight:normal;
}
</style>
}
@section scriptsHeader{
@Html.Partial("./Partial/semscript")
}
@section scripts{
<script>
//$(document).ready(function () {
// $("#stringval").on("change", function () {
// if ($(this).val() != "") {
// capp("/acommon/euserget",
// {
// pstatus: $(this).val(),
// exno : intval
// }, "euserget");
// }
// });
//});
//function euserget() {
// binddatacheck("stringval");
//}
function reg(no) {
$("#userinfo").val("");
if (no < 1) {
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
} else {
bglayer(); $("#thisbox1").slideDown("fast", function () { $("#thisbox1").scrollTop(0); });
}
}
function bindUser(vs) {
var v = vs.split(':');
setv("userid", v[7]);
setv("userno", v[0]);
$("#userinfo").text("[" + v[5] + "]" + v[6] + " | " + v[2] + "(" + v[3] + ")");
}
function save() {
var isvalid = true;
$.each($("#tbody1 tr td input.autocheck"), function () {
if ($(this).attr("data-userno") == $("#userno").val()) {
isvalid = false;
return false;
}
});
if (check("userid", null, "응시대상을 선택해주세요.", true)) { }
else if (!isvalid) { msg("이미 저장된 응시 대상은 저장할 수 없습니다."); }
else if (confirm("저장하시겠습니까?")) {
capp("/acommon/examusersave", { exno: @Model.Exam.exno , userno: val("userno"), certdate : '@Model.Exam.certdate', certindate: '@Model.Exam.certindate' }, "cbexamusersave", null, null, null, true);
}
}
function del() {
var eunos = "";
var isvalid = true;
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
eunos += "," + $(this).val();
if ($(this).closest("tr").find("td.pstatus").attr("data-pstatus") == "1") {
isvalid = false;
return false;
}
});
if (eunos == "") {
msg("삭제할 응시대상을 선택해주세요");
}
else if (!isvalid) { msg("결제가 완료된 응시대상은 삭제할 수 없습니다."); }
else if (confirm("선택한 응시대상을 삭제하시겠습니까?")) {
capp("/acommon/examuserdel", { exno: @Model.Exam.exno , usernos: eunos.substr(1) }, "cbexamuserdel");
}
}
function gotab(idx) {
if (idx == 0) {
$("#dform").attr("action", "/croom/certr");
$("#dform_pagenum").val(1);
} else if (idx == 2) {
$("#dform").attr("action", "/croom/certresult");
}
timesubmit("dform", 1);
}
function hidethisbox() {
$(this).closest('.findbox').slideDown('fast'); $('#bglayer').hide();
}
function cbexamusersave() {
if (capResult.code == 1000) {
msg2("저장되었습니다.");
$("#userid").val("");
$("#userno").val("");
$("#userinfo").text("");
} else {
msg2("선택한 응시대상이 이미 등록되어있습니다.");
}
}
function cbexamuserdel() {
if (capResult.code == 1000) {
msgf((capResult.obj/2) + "건을 삭제 처리했습니다.", "$('#dform').attr('action', '/croom/certreception').submit();");
} else {
msg("결제가 완료된 응시대상은 삭제할 수 없습니다.");
}
}
function regbatch() {
if ($("#uploadfile").val() == "") { msg("파일을 선택해주세요."); }
else {
var thumbext = $("#uploadfile").val();
thumbext = thumbext.slice(thumbext.indexOf(".") + 1).toLowerCase();
if ("xlsx".indexOf(thumbext) < 0) {
msg("xlsx 확장자만 가능합니다.");
}
else if (confirm("일괄등록하시겠습니까?")) {
var formData = new FormData();
formData.append("uploadfile", $("#uploadfile")[0].files[0]);
formData.append("intval", @Model.Exam.exno);
formData.append("uploadjob", "examuserregbatch");
capfile("/acommon/uploadexcel", formData, "cbregbatch", null, true, false, true);
}
}
}
function cbregbatch() {
if (capResult.code == 1000) {
$("#thisbox1").slideUp('fast');
msg("일괄등록을 완료했습니다.", null, true, null, true);
setTimeout(function () {
$("#dform").attr("action", "/croom/certreception").submit();
},1500);
} else {
$("#thisbox1").slideUp('fast');
msg("업로드가 실패했습니다.<br/><br/>" + capResult.msg);
}
}
</script>
}