Compare commits

..

No commits in common. "99103851de6cafb1bfd9a41feefce77057f5044d" and "20a848c8d97048c00ec37bc850cd07ca9b53123a" have entirely different histories.

22 changed files with 3074 additions and 11658 deletions

View File

@ -584,11 +584,6 @@ namespace NP.BO.Controllers
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", p); vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", p);
#endregion #endregion
#region + / [vm.Datas] Get: cm.cmdatas (cmno, )
vm.Datas = Dao.Get<Data>("cm.cmdatas", vm.CM.cmno);
#endregion
ViewBag.fronturl = GetConfig("fronturl"); ViewBag.fronturl = GetConfig("fronturl");
return View("cmregeduschedule", vm); return View("cmregeduschedule", vm);
@ -792,11 +787,6 @@ namespace NP.BO.Controllers
ViewBag.Front = GetConfig("fronturl"); ViewBag.Front = GetConfig("fronturl");
return View(vm); return View(vm);
} }
/// <summary>
/// 교육환경설정 > 강좌설정 > 시험설정 > 시험등록 > 문제추가
/// </summary>
/// <param name="vm"></param>
/// <returns></returns>
public ActionResult qp(VMCM vm) public ActionResult qp(VMCM vm)
{ {
vm.ComCodes = GetComCodes("ccdiff,cc1,cc2,cc3,cc4,cc5"); vm.ComCodes = GetComCodes("ccdiff,cc1,cc2,cc3,cc4,cc5");
@ -821,7 +811,6 @@ namespace NP.BO.Controllers
if (!string.IsNullOrEmpty(vm.stringval9)) { ht.Add("ecount", GetInt(vm.stringval9)); } if (!string.IsNullOrEmpty(vm.stringval9)) { ht.Add("ecount", GetInt(vm.stringval9)); }
if (!string.IsNullOrEmpty(vm.stringval10)) { ht.Add("rrate", GetInt(vm.stringval10)); } if (!string.IsNullOrEmpty(vm.stringval10)) { ht.Add("rrate", GetInt(vm.stringval10)); }
if (!string.IsNullOrEmpty(vm.stringval15)) { ht.Add("instuctorName", vm.stringval15); } if (!string.IsNullOrEmpty(vm.stringval15)) { ht.Add("instuctorName", vm.stringval15); }
if (!string.IsNullOrEmpty(vm.stringval16)) { ht.Add("scdinstuctor", vm.stringval16); }
vm.Qs = Dao.Get<Question>("cm.questions2", ht); vm.Qs = Dao.Get<Question>("cm.questions2", ht);
} }
vm.Qs = vm.Qs ?? new List<Question>(); vm.Qs = vm.Qs ?? new List<Question>();
@ -900,14 +889,6 @@ namespace NP.BO.Controllers
public ActionResult cmregexset(VMCM vm) { public ActionResult cmregexset(VMCM vm) {
var p = new Hashtable(); var p = new Hashtable();
#region + [vm.CMInnings] Get: cm.cminnings (cmno, isonline, isscd)
p.Clear();
p.Add("cmno", vm.intval);
p.Add("isonline", 0);
p.Add("isscd", 1);
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", p);
#endregion
#region + [vm.CM] Get: cm.cms (cmno) #region + [vm.CM] Get: cm.cms (cmno)
p.Clear(); p.Clear();
p.Add("cmno", vm.intval); p.Add("cmno", vm.intval);
@ -929,10 +910,6 @@ namespace NP.BO.Controllers
vm.ESTs = Dao.Get<EST>("cm.exlist", p); vm.ESTs = Dao.Get<EST>("cm.exlist", p);
#endregion #endregion
//교육일정이 존재하는지 조회
var scd = Dao.Get<int>("cm.cminnigscd.exists", new Hashtable() { { "cmno", vm.CM.cmno } });
ViewBag.Scd = scd.FirstOrDefault();
return View("cmregexset", vm); return View("cmregexset", vm);
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -11,9 +11,7 @@
@if (!ViewBag.IsSubAdmin96) { @if (!ViewBag.IsSubAdmin96) {
<li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(3)");" data-toggle="tab">평가설정</a></li> <li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(3)");" data-toggle="tab">평가설정</a></li>
if (Model.CM.ismaster == 0) { <li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(5)");" data-toggle="tab">시험설정</a></li>
<li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(5)");" data-toggle="tab">시험설정</a></li>
}
<li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(4)");" data-toggle="tab">메뉴설정</a></li> <li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(4)");" data-toggle="tab">메뉴설정</a></li>
} }
</ul> </ul>

View File

@ -2,7 +2,6 @@
@{ @{
int studyplaceseq = 0; int studyplaceseq = 0;
int tempInt = 0; int tempInt = 0;
int index = 0;
} }
<div style="@(Model.CM.cmno < 1 ? "display: none;":"")"> <div style="@(Model.CM.cmno < 1 ? "display: none;":"")">
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
@ -195,21 +194,7 @@
<tr> <tr>
<th>교강사</th> <th>교강사</th>
<td> <td>
<table id="tblInstructor" class="tblInstructor" style="width: 100%;border: none !important;border-collapse: collapse !important;"> <table id="tblInstructor" class="tblInstructor" style="width: 100%;border: none !important;border-collapse: collapse !important;"></table>
<tr>
@foreach (var item in Model.Datas.Where(w => w.dtype == 1)) {
index = index + 1;
<td style="border: none !important;">
<input type="checkbox" class="chkInstructor" name="chkInstructor" id="chkInstructor@(index)" value="@item.strval3" />
<label style="margin-right: 8px;" for="chkInstructor@(index)">@item.strval</label>
</td>
if ((index) % 5 == 0) {
@:</tr><tr>
}
}
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
@ -239,6 +224,8 @@
$(".troff").show(); $(".troff").show();
$(".idoff").show(); $(".idoff").show();
} }
finduser(); //일정등록 강사 정보 가지고오기
}); });
function save() { function save() {
@ -469,17 +456,14 @@
$("input:radio[name=istudyplace][value=" + d.studyplace + "]").attr("checked", true); $("input:radio[name=istudyplace][value=" + d.studyplace + "]").attr("checked", true);
} }
//교강사 체크 //교강사 체크
$.each($(".chkInstructor"), function (i, item) { if (d.instructors != null) {
if (d.instructors != null) { var instructors = d.instructors.split(',');
let tc = d.instructors.split(','); $.each($(".chkInstructor"), function (i, item) {
if (instructors.includes($(item).val())) {
for (var i = 0; i < tc.length; i++) { $(item).prop("checked", true);
if ($(this).val() == tc[i]) {
$(this).prop("checked", true);
}
} }
} });
}); }
} }
bglayer(); $("#scdbox").slideDown("fast", function () { $("#scdbox").scrollTop(0); }); bglayer(); $("#scdbox").slideDown("fast", function () { $("#scdbox").scrollTop(0); });
@ -575,6 +559,31 @@
msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요."); msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
} }
} }
} }
@*/** 일정등록 시 교강사호출 **/*@
function finduser() {
capp("/acommon/userfind", {
ftype: 1, usertypes: null, asno: null, usernameid: null, asno: null, usertype: null }, "cbfinduser", null, null, true, true);
}
function cbfinduser() {
if (capResult.code == 1000) {
let html = "<tr>";
$.each($(capResult.obj), function (i, r) {
html += "<td style=\"border: none !important;\">";
html += " <input type=\"checkbox\" class=\"chkInstructor\" name=\"chkInstructor\" id=\"chkInstructor" + i + "\" value=\"" + getdb(r.userid).replace(/:/gi, '|').replace(/;/gi, '|') + "\" />";
html += " <label style=\"margin-right: 8px;\" for=\"chkInstructor" + i + "\">" + getdb(r.username).replace(/:/gi, '|').replace(/;/gi, '|') + "</label> ";
html += "</td>";
if ((i + 1) % 5 == 0) {
html += "</tr><tr>";
}
});
html += "</tr>";
$("#tblInstructor").html(html);
}
}
</script> </script>
} }

View File

@ -9,9 +9,7 @@
<li><a href="javascript:;" onclick="gotab(2);" data-toggle="tab">교육일정</a></li> <li><a href="javascript:;" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
} }
<li class="active"><a href="javascript:;" data-toggle="tab">평가설정</a></li> <li class="active"><a href="javascript:;" data-toggle="tab">평가설정</a></li>
@if (Model.CM.ismaster == 0) { <li><a href="javascript:;" data-toggle="tab" onclick="gotab(5);">시험설정</a></li>
<li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(5)");" data-toggle="tab">시험설정</a></li>
}
<li><a href="javascript:;" onclick="gotab(4);" data-toggle="tab">메뉴설정</a></li> <li><a href="javascript:;" onclick="gotab(4);" data-toggle="tab">메뉴설정</a></li>
</ul> </ul>
</div> </div>

View File

@ -19,40 +19,37 @@
<div class="row"> <div class="row">
<form id="mform" method="post" enctype="multipart/form-data" class="form-horizontal"> <form id="mform" method="post" enctype="multipart/form-data" class="form-horizontal">
<section class="panel panel-default"> <section class="panel panel-default">
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 기본정보 @Model.CMInnings.FirstOrDefault().scdtype<span class=""></span></strong></header> <header class="panel-heading"><strong><i class="fa fa-bars"></i> 기본정보<span class=""></span></strong></header>
<div class="panel-body"> <div class="panel-body">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label req">평가구분</label> <label class="col-sm-4 col-md-2 control-label req">평가구분</label>
<div class="col-sm-8 col-md-10">@*@Html.Partial("./Partial/Radio", "0:진행평가;1:최종평가", new ViewDataDictionary { { "special", "stringlist" }, { "name", "CMEX.extype" }, { "checked", Model.CMEX.extype } })*@</div> <div class="col-sm-8 col-md-10">@*@Html.Partial("./Partial/Radio", "0:진행평가;1:최종평가", new ViewDataDictionary { { "special", "stringlist" }, { "name", "CMEX.extype" }, { "checked", Model.CMEX.extype } })*@</div>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", "1:최종평가", new ViewDataDictionary { { "special", "stringlist" }, { "name", "vm.CMEX.extype" }, { "checked", Model.CMEX.extype } })</div> <div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", "1:최종평가", new ViewDataDictionary { { "special", "stringlist" }, { "name", "vm.CMEX.extype" }, { "checked", Model.CMEX.extype } })</div>
</div> </div>
@if (Model.CMInnings.FirstOrDefault().scdtype == 0) { <div class="form-group">
<div class="form-group"> <label class="col-sm-4 col-md-2 control-label req">교육일정 선택</label>
<label class="col-sm-4 col-md-2 control-label req">교육일정 선택</label> <div class="col-sm-8 col-md-10">
<div class="col-sm-8 col-md-10"> <select class="form-control dev" id="cmisno" name="vm.CMEX.cmisno">
<select class="form-control dev" id="cmisno" name="vm.CMEX.cmisno"> <option>선택</option>
<option value="">선택</option> @foreach (var item in Model.CMInningscds.OrderByDescending(c => c.estart)) {
@foreach (var item in Model.CMInningscds.OrderByDescending(c => c.estart)) { tempInt = Model.CMInningscds2.Where(c => c.cmino == item.cmino && c.cmisno == item.cmisno && c.intv1 == 2).Count();
tempInt = Model.CMInningscds2.Where(c => c.cmino == item.cmino && c.cmisno == item.cmisno && c.intv1 == 2).Count(); <option value="@item.cmisno" @(item.cmisno == Model.CMEX.cmisno ? "selected" : "")>[@item.studyplacename] [@item.estart ~ @item.eend]</option>
<option value="@item.cmisno" data-instructors="@(item.instructors)" @(item.cmisno == Model.CMEX.cmisno ? "selected" : "")>[@item.studyplacename] [@item.estart ~ @item.eend]</option> }
} </select>
</select> </div>
</div> </div>
</div> <div class="form-group">
<div class="line line-dashed line-lg pull-in"></div> <label class="col-sm-4 col-md-2 control-label req">시험 응시 일시</label>
<div class="form-group"> <div class="col-sm-8 col-md-10 form-inline">
<label class="col-sm-4 col-md-2 control-label req">시험 응시 일시</label> @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval18) ? (DateTime?)null : Convert.ToDateTime(Model.stringval18), new ViewDataDictionary { { "name", "vm.stringval18" } })
<div class="col-sm-8 col-md-10 form-inline"> @Html.TextBoxFor(m => m.stringval19, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name="vm.stringval19" }) 시
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval18) ? (DateTime?)null : Convert.ToDateTime(Model.stringval18), new ViewDataDictionary { { "name", "vm.stringval18" } }) @Html.TextBoxFor(m => m.stringval20, new { @class = "form-control text-center onlyNum2", @maxlength ="2", @style = "width:50px;", @Name = "vm.stringval20" }) 분
@Html.TextBoxFor(m => m.stringval19, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name="vm.stringval19" }) 시 ~
@Html.TextBoxFor(m => m.stringval20, new { @class = "form-control text-center onlyNum2", @maxlength ="2", @style = "width:50px;", @Name = "vm.stringval20" }) 분 @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval21) ? (DateTime?)null : Convert.ToDateTime(Model.stringval21), new ViewDataDictionary { { "name", "vm.stringval21" } })
~ @Html.TextBoxFor(m => m.stringval22, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name = "vm.stringval22" }) 시
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval21) ? (DateTime?)null : Convert.ToDateTime(Model.stringval21), new ViewDataDictionary { { "name", "vm.stringval21" } }) @Html.TextBoxFor(m => m.stringval23, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name = "vm.stringval23" }) 분
@Html.TextBoxFor(m => m.stringval22, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name = "vm.stringval22" }) 시 </div>
@Html.TextBoxFor(m => m.stringval23, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name = "vm.stringval23" }) 분 </div>
</div>
</div>
}
<div class="line line-dashed line-lg pull-in"></div><div class="form-group"> <div class="line line-dashed line-lg pull-in"></div><div class="form-group">
<label class="col-sm-4 col-md-2 control-label req">평가명</label> <label class="col-sm-4 col-md-2 control-label req">평가명</label>
<div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CMEX.exname, new { @class = "form-control", @maxlength = "100", @Name = "vm.CMEX.exname" })</div> <div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CMEX.exname, new { @class = "form-control", @maxlength = "100", @Name = "vm.CMEX.exname" })</div>
@ -67,15 +64,15 @@
</div> </div>
<div class="line line-dashed line-lg pull-in"></div><div class="form-group"> <div class="line line-dashed line-lg pull-in"></div><div class="form-group">
<label class="col-sm-4 col-md-2 control-label req">출석률</label> <label class="col-sm-4 col-md-2 control-label req">출석률</label>
<div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CMEX.econdition, new { @Value = (Model.CMEX.econdition == 0 ? 90 : Model.CMEX.econdition), @class = "form-control disp-init int nocomma text-center", @maxlength = "3", @style = "width: 80px;", @Name = "vm.CMEX.econdition" }) % 이상</div> <div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CMEX.econdition, new { @class = "form-control disp-init int nocomma text-center", @maxlength = "3", @style = "width: 80px;", @Name = "vm.CMEX.econdition" }) % 이상</div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div><div class="form-group"> <div class="line line-dashed line-lg pull-in"></div><div class="form-group">
<label class="col-sm-4 col-md-2 control-label req">제한시간</label> <label class="col-sm-4 col-md-2 control-label req">제한시간</label>
<div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CMEX.etime, new { @Value = (Model.CMEX.etime == 0 ? 60 : Model.CMEX.etime), @class = "form-control text-center disp-init int nocomma", @style = "width: 80px;", @Name = "vm.CMEX.etime" })분 * 0분 입력 시 시간제한 없음</div> <div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CMEX.etime, new { @class = "form-control text-center disp-init int nocomma", @style = "width: 80px;", @Name = "vm.CMEX.etime" })분 * 0분 입력 시 시간제한 없음</div>
</div> </div>
<div class="line line-dashed line-lg pull-in @(Model.examsavable)"></div><div class="form-group @(Model.examsavable)"> <div class="line line-dashed line-lg pull-in @(Model.examsavable)"></div><div class="form-group @(Model.examsavable)">
<label class="col-sm-4 col-md-2 control-label">문항출력설정</label> <label class="col-sm-4 col-md-2 control-label">문항출력설정</label>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "special", "FromTo" }, { "name", "vm.CMEX.evtype" }, { "selected", (Model.CMEX.evtype == 0 ? 10 : Model.CMEX.evtype) }, { "start", 1 }, { "end", 10 }, { "textadd", "개" }, { "df", "0:전체" }, { "disabled", Model.examsavable } }) 출력</div> <div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "special", "FromTo" }, { "name", "vm.CMEX.evtype" }, { "selected", Model.CMEX.evtype }, { "start", 1 }, { "end", 10 }, { "textadd", "개" }, { "df", "0:전체" }, { "disabled", Model.examsavable } }) 출력</div>
</div> </div>
<div class="line line-dashed line-lg pull-in @(Model.examsavable)"></div><div class="form-group @(Model.examsavable)"> <div class="line line-dashed line-lg pull-in @(Model.examsavable)"></div><div class="form-group @(Model.examsavable)">
<label class="col-sm-4 col-md-2 control-label">출제방식설정</label> <label class="col-sm-4 col-md-2 control-label">출제방식설정</label>
@ -463,46 +460,11 @@
} }
}); });
} }
if (check("CMEX_exname", "", "시험명칭을 입력하세요.")) { return; } if (check("CMEX_exname", "", "시험명칭을 입력하세요.")) { }
else if ($("#vm_CMEX_eqtype0").prop("checked") && $("#box1 tbody tr").length < 1) { msg("출제할 문제를 추가해주세요."); }
@if (Model.CMInnings.FirstOrDefault().scdtype == 0) { else if ($("#vm_CMEX_eqtype1").prop("checked") && _layerqcount < 1) { msg("출제문항수를 입력해주세요."); }
<text> else if (getDouble(val("CMEX_econdition")) > 100 || getDouble(val("CMEX_econdition")) < 0) { msg("출석률은 0 ~ 100 사이의 값을 입력해주세요."); }
if ($("#cmisno").val() == "") { else if (_isvalid && confirm("시험을 " + (getint(val("CMEX_exno")) < 1 ? "등록" : "수정") + "하시겠습니까?")) {
msg("교육일정을 선택해주세요.")
return;
}
if ($("#vm_stringval18").val() == "") {
msg("시험 응시 일시 시작 날짜를 입력해주세요.")
return;
}
if ($("#stringval19").val() == "") {
msg("시험 응시 일시 시작 시간을 입력해주세요.")
return;
}
if ($("#stringval20").val() == "") {
msg("시험 응시 일시 시작 분을 입력해주세요.")
return;
}
if ($("#vm_stringval21").val() == "") {
msg("시험 응시 일시 종료 날짜를 입력해주세요.")
return;
}
if ($("#stringval22").val() == "") {
msg("시험 응시 일시 종료 시간을 입력해주세요.")
return;
}
if ($("#stringval23").val() == "") {
msg("시험 응시 일시 시작 분을 입력해주세요.")
return;
}
</text>
}
if ($("#vm_CMEX_eqtype0").prop("checked") && $("#box1 tbody tr").length < 1) { msg("출제할 문제를 추가해주세요."); return; }
if ($("#vm_CMEX_eqtype1").prop("checked") && _layerqcount < 1) { msg("출제문항수를 입력해주세요."); return; }
if (getDouble(val("CMEX_econdition")) > 100 || getDouble(val("CMEX_econdition")) < 0) { msg("출석률은 0 ~ 100 사이의 값을 입력해주세요."); return; }
if (_isvalid && confirm("시험을 " + (getint(val("CMEX_exno")) < 1 ? "등록" : "수정") + "하시겠습니까?")) {
$("#CMEX_israndq").val($("#chkrq").prop("checked") ? 1 : 0); $("#CMEX_israndq").val($("#chkrq").prop("checked") ? 1 : 0);
$("#CMEX_israndqi").val($("#chkrqi").prop("checked") ? 1 : 0); $("#CMEX_israndqi").val($("#chkrqi").prop("checked") ? 1 : 0);
var sd = ""; var sd = "";
@ -524,21 +486,7 @@
} }
var pqlist = ""; var pqlist = "";
function qadd() { function qadd() {
var instructors = ""; framelayer("/cm/qp?stringval13=R");
@if (Model.CMInnings.FirstOrDefault().scdtype == 0) {
<text>
if ($("#cmisno").val() == "") {
msg("교육일정을 선택해주세요.")
return;
}
var selected = $("#cmisno").find("option:selected");
instructors = selected.data("instructors");
</text>
}
framelayer("/cm/qp?stringval13=R&stringval16=" + instructors);
} }
function calcplist() { function calcplist() {
pqlist = ""; pqlist = "";
@ -582,7 +530,6 @@
$("#intval").val(capResult.obj); $("#intval").val(capResult.obj);
} }
setv("IsSavedForParent", 1); setv("IsSavedForParent", 1);
goparent(val('IsSavedForParent') == '1');
//timesubmit(); //timesubmit();
} }
else if (capResult.obj == -1) { else if (capResult.obj == -1) {

View File

@ -1,10 +1,4 @@
@model NP.Model.VMCM @model NP.Model.VMCM
@{
int esTsCnt = 0;
if (Model.ESTs != null) {
esTsCnt = Model.ESTs.Count;
}
}
<!-- div[id=container] --> <!-- div[id=container] -->
<div style="@(Model.CM.cmno < 1 ? "display: none;" : "")"> <div style="@(Model.CM.cmno < 1 ? "display: none;" : "")">
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
@ -21,8 +15,6 @@
<!-- // div[id=container] --> <!-- // div[id=container] -->
<!-- form[id=mform] --> <!-- form[id=mform] -->
<form id="mform" method="post" class="form-horizontal"> <form id="mform" method="post" class="form-horizontal">
<input type="hidden" id="hdnScdCnt" value="@ViewBag.Scd" />
<input type="hidden" id="hdnExCnt" value="@esTsCnt" />
<!-- section[class=panel panel-default] --> <!-- section[class=panel panel-default] -->
<section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;"> <section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;">
<div class="panel-body"> <div class="panel-body">
@ -87,17 +79,17 @@
<!--<td>@item.estkindname</td>--> <!--<td>@item.estkindname</td>-->
<td class="link"><a href="javascript:;" onclick="add(@item.gubun, @item.exno)">@item.exname</a></td> <td class="link"><a href="javascript:;" onclick="add(@item.gubun, @item.exno)">@item.exname</a></td>
<td> <td>
@if (item.cshape == 1) { //오프라인 @if(item.cshape == 1) { //오프라인
@(item.estart + "~" + item.eend) @(item.estart + "~" + item.eend)
} else { //온라인 } else { //온라인
@(item.estart) @(item.estart)
} }
</td> </td>
<td> <td>
@if (item.testsdate != null && item.testedate != null) { @if (item.testsdate != null && item.testedate != null) {
@(Html.Raw(item.testsdate + " ~ <br/>" + item.testedate)) @(Html.Raw(item.testsdate + " ~ <br/>" + item.testedate))
} }
</td> </td>
<td> <td>
@if (item.rstype == 1) { @if (item.rstype == 1) {
@(item.iseq + "회차" + " (" + item.teachername + ")") @(item.iseq + "회차" + " (" + item.teachername + ")")
@ -262,7 +254,7 @@
$("#isoffabs").attr("disabled", _isonline); $("#isoffabs").attr("disabled", _isonline);
if (capResult.code == 1000) { if (capResult.code == 1000) {
msg("평가기준/비율을 저장했습니다.", null, true, null, true); msg("평가기준/비율을 저장했습니다.", null, true, null, true);
gotab(5, 500); gotab(3, 500);
} else { } else {
msgadmin(); msgadmin();
} }
@ -274,19 +266,7 @@
} }
@*/* 평가 추가 함수 */*@ @*/* 평가 추가 함수 */*@
function add(idx, no) function add(idx, no) {
{
if ($("#hdnScdCnt").val() == 0) {
msg("교육일정 탭에서 교육회차를 먼저 등록해주세요.");
return;
}
var inningcnt = @Model.CMInnings.Count; //온라인대체
if (no == 0 && inningcnt > 0 && parseInt($("#hdnExCnt").val()) > 0) {
msg2("온라인 100%인 교육은 1개의 최종평가만 등록 가능합니다.");
return;
}
if (idx == 0) { if (idx == 0) {
showramemainlayer("/cm/cmregex?cmno=@(Model.CM.cmno)&intval=" + no); showramemainlayer("/cm/cmregex?cmno=@(Model.CM.cmno)&intval=" + no);
} else if (idx == 1) { } else if (idx == 1) {
@ -307,7 +287,7 @@
function cbdel() { function cbdel() {
if (capResult.code == 1000) { if (capResult.code == 1000) {
msg("삭제했습니다.", null, true, null, true); msg("삭제했습니다.", null, true, null, true);
gotab(5, 500); gotab(3, 500);
} else { } else {
msg("수강데이터가 생성되어 삭제할 수 없습니다."); msg("수강데이터가 생성되어 삭제할 수 없습니다.");
} }
@ -321,7 +301,6 @@
function examList() { function examList() {
if (capResult.code == 1000) { if (capResult.code == 1000) {
let html = ""; let html = "";
let num = 0;
$.each($(capResult.obj), function (i, item) { $.each($(capResult.obj), function (i, item) {
let cShape = "", rsType = "", testDate = "", estKind = ""; let cShape = "", rsType = "", testDate = "", estKind = "";
@ -355,12 +334,9 @@
html += " <td>" + rsType + "</td>"; html += " <td>" + rsType + "</td>";
html += " <td>" + estKind +"</td>" html += " <td>" + estKind +"</td>"
html += " <td><a href=\"javascript:;\" class=\"delete-link\" onclick=\"del(" + item.estkind + ", " + item.exno + ")\">[삭제]</a></td>"; html += " <td><a href=\"javascript:;\" class=\"delete-link\" onclick=\"del(" + item.estkind + ", " + item.exno + ")\">[삭제]</a></td>";
html += "</tr>"; html += "</tr>";
num += i + 1;
}); });
$("#hdnExCnt").val(num);
$("#tbody1").html(html); $("#tbody1").html(html);
} }
} }

View File

@ -10,9 +10,7 @@
<li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li> <li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
} }
<li class=""><a href="#" onclick="gotab(3);" data-toggle="tab">평가설정</a></li> <li class=""><a href="#" onclick="gotab(3);" data-toggle="tab">평가설정</a></li>
@if (Model.CM.ismaster == 0) { <li class=""><a href="#" onclick="gotab(5);" data-toggle="tab">시험설정</a></li>
<li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(5)");" data-toggle="tab">시험설정</a></li>
}
<li class="active"><a href="#" data-toggle="tab">메뉴설정</a></li> <li class="active"><a href="#" data-toggle="tab">메뉴설정</a></li>
</ul> </ul>
</div> </div>

View File

@ -31,7 +31,7 @@
<label class="col-sm-4 col-md-2 control-label">과정</label> <label class="col-sm-4 col-md-2 control-label">과정</label>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Select", Model.CMs, new ViewDataDictionary { { "special", "reg" }, { "name", "Question.cmno" }, { "selected", Model.Question.cmno }, { "df", ":-과정선택" } })</div> <div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Select", Model.CMs, new ViewDataDictionary { { "special", "reg" }, { "name", "Question.cmno" }, { "selected", Model.Question.cmno }, { "df", ":-과정선택" } })</div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">교강사</label> <label class="col-sm-4 col-md-2 control-label">교강사</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10">

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data"> <select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3 select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3 ,a.strval,a.strval2
from( from(
select 1 dtype select 1 dtype
,a.userno intval,b.usertype intval2 ,a.userno intval,b.usertype intval2
,row_number() over (order by b.username desc) intval3 ,row_number() over (order by b.username desc) intval3
,b.username strval,null strval2 ,b.username strval,null strval2
,b.userid strval3 from cmprof a
from cmprof a inner join users b on b.userno=a.userno
inner join users b on b.userno=a.userno where a.cmno=#cmno#
where a.cmno=#cmno# order by b.username desc
order by b.username desc
) a ) a
union all union all
select 2 select 2
,b.bkno,0 ,b.bkno,0
,row_number() over (order by b.bkno) intval3 ,row_number() over (order by b.bkno) intval3
,b.bkname,null ,b.bkname,null
,null strval3
from cmbook a from cmbook a
inner join book b on b.bkno=a.bkno inner join book b on b.bkno=a.bkno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 3 dtype select 3 dtype
,b.cmno,a.ispre ,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3 ,row_number() over (order by b.cmno) intval3
,b.cname,null ,b.cname,null
, null strval3
from cmrelay a from cmrelay a
inner join cm b on b.cmno=a.rcmno inner join cm b on b.cmno=a.rcmno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 4 select 4
,b.ndno,0 ,b.ndno,0
,row_number() over (order by b.ndno) intval3 ,row_number() over (order by b.ndno) intval3
,b.dname,b.acode ,b.dname,b.acode
,null strval3
from cmncsd a from cmncsd a
inner join ncsd b on b.ndno=a.ndno inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno# where a.cmno=#cmno#
@ -838,9 +834,6 @@
<update id="cm.cmex.savetop" parameterClass="cmex"> <update id="cm.cmex.savetop" parameterClass="cmex">
UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup# UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup#
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime# ,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
,cmisno = #cmisno#
,testsdate = #testsdate#
,testedate = #testedate#
where exno=#exno# where exno=#exno#
</update> </update>
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int"> <select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
@ -850,8 +843,8 @@
</select> </select>
<insert id="cm.cmex.in" parameterClass="cmex"> <insert id="cm.cmex.in" parameterClass="cmex">
INSERT INTO cmex INSERT INTO cmex
(cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,<include refid="sql.inc"></include>)
values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,#cmisno#,#testsdate#,#testedate#,<include refid="sql.inv"></include>) values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,<include refid="sql.inv"></include>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert> </insert>
<update id="cm.cmex.up" parameterClass="cmex"> <update id="cm.cmex.up" parameterClass="cmex">
@ -935,14 +928,14 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.*,b.cname select a.*,b.cname
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name ,a.ispassspace,a.isignorecase,a.instructors
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
,<include refid="sql.prc"></include> ,<include refid="sql.prc"></include>
from question a from question a
left outer join comcode cc on cc.ccode = a.qdiff left outer join comcode cc on cc.ccode = a.qdiff
@ -951,7 +944,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -964,7 +956,7 @@
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull> <isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull> <isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull> <isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic> </dynamic>
) a ) a
left outer join cm b on b.cmno=a.cmno left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
<!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0//--> <!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0-->
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors,a.usertype,a.instructors_name left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors
order by a.RNO order by a.RNO
</select> </select>
<select id="cm.questions2" parameterClass="hashtable" resultClass="question"> <select id="cm.questions2" parameterClass="hashtable" resultClass="question">
@ -983,12 +976,12 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.* select a.*
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors,u.usertype,u.username as instructors_name select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors
,b.cname ,b.cname
, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5 , cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
@ -1001,7 +994,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual> <isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull> </isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull> </dynamic>
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
</dynamic>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors,a.usertype,a.instructors_name ,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
<dynamic prepend="having"> <dynamic prepend="having">
<isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull> <isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull>
<isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull> <isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull>
<isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull> <isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
</dynamic> </dynamic>
order by a.rno order by a.rno
</select> </select>
@ -1466,8 +1458,8 @@
drop temporary table if exists temp_cminning_mapping; drop temporary table if exists temp_cminning_mapping;
</update> </update>
<insert id="cm.cmcopy.ex0" parameterClass="cmex"> <insert id="cm.cmcopy.ex0" parameterClass="cmex">
insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,<include refid="sql.inc"></include>)
select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,cmisno,testsdate,testedate,<include refid="sql.inv"></include> select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,<include refid="sql.inv"></include>
from cmex a from cmex a
where a.exno=#orgexno#; where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected ,a.isselected
<!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend--> <!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend-->
, 1 isend , 1 isend
,a.instructors
from from
( (
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople ,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople
,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename ,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename
,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected ,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected
,a.comment,a.instructors ,a.comment
from cminningscd a from cminningscd a
left outer join cminning c on c.cmino = a.cmino left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno left outer join cm d on d.cmno = c.cmno
@ -2302,8 +2293,8 @@
,null as iseq,null as teachername ,null as iseq,null as teachername
,b.cshape ,b.cshape
,c.cmisno ,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart ,c.estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend ,c.eend
,c.instructors ,c.instructors
from cmex a from cmex a
left join cm b ON b.cmno = a.cmno left join cm b ON b.cmno = a.cmno
@ -2311,7 +2302,7 @@
where a.cmno=#cmno# and a.isdel=0 where a.cmno=#cmno# and a.isdel=0
<isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull> <isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull>
<isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull> <isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull>
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull> <isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
</select> </select>
<select id="cm.est2" parameterClass="int" resultClass="est"> <select id="cm.est2" parameterClass="int" resultClass="est">

Binary file not shown.

Binary file not shown.

View File

@ -1104,15 +1104,6 @@ namespace NP.Base.Controllers
//if (vm.CMEX.extype == 1 && Dao.Get<int>("cm.cmex.extype1count", new Hashtable() { { "cmno", vm.CMEX.cmno }, { "exno", vm.CMEX.exno } }).First() > 0) { //if (vm.CMEX.extype == 1 && Dao.Get<int>("cm.cmex.extype1count", new Hashtable() { { "cmno", vm.CMEX.cmno }, { "exno", vm.CMEX.exno } }).First() > 0) {
// return JsonBack(new JsonRtn() { code = 1, obj = -1 }); // return JsonBack(new JsonRtn() { code = 1, obj = -1 });
//} //}
//2025-12-24 / KHJ / 시험응시 시작일/종료일 모델 바인딩
if (!string.IsNullOrEmpty(vm.stringval18)) {
vm.CMEX.testsdate = vm.stringval18 + " " + vm.stringval19 + ":" + vm.stringval20;
}
if (!string.IsNullOrEmpty(vm.stringval21)) {
vm.CMEX.testedate = vm.stringval21 + " " + vm.stringval22 + ":" + vm.stringval23;
}
if (vm.CMEX.exno > 0 && ExamSaveValid(vm.CMEX.exno) != "") { if (vm.CMEX.exno > 0 && ExamSaveValid(vm.CMEX.exno) != "") {
//응시자데이터 존재하므로 일부데이터만 저장 //응시자데이터 존재하므로 일부데이터만 저장
return JsonOK(Dao.Save("cm.cmex.savetop", vm.CMEX), false); return JsonOK(Dao.Save("cm.cmex.savetop", vm.CMEX), false);
@ -1151,6 +1142,9 @@ namespace NP.Base.Controllers
vm.CMEX.qcount = vm.CMEX.cmexqs.Count(); vm.CMEX.qcount = vm.CMEX.cmexqs.Count();
} }
} }
//2025-12-24 / KHJ / 시험응시 시작일/종료일 모델 바인딩
vm.CMEX.testsdate = vm.stringval18 + " " + vm.stringval19 + ":" + vm.stringval20;
vm.CMEX.testedate = vm.stringval21 + " " + vm.stringval22 + ":" + vm.stringval23;
return JsonOK(Dao.SaveExam(vm.CMEX), false); return JsonOK(Dao.SaveExam(vm.CMEX), false);
} }

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data"> <select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3 select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3 ,a.strval,a.strval2
from( from(
select 1 dtype select 1 dtype
,a.userno intval,b.usertype intval2 ,a.userno intval,b.usertype intval2
,row_number() over (order by b.username desc) intval3 ,row_number() over (order by b.username desc) intval3
,b.username strval,null strval2 ,b.username strval,null strval2
,b.userid strval3 from cmprof a
from cmprof a inner join users b on b.userno=a.userno
inner join users b on b.userno=a.userno where a.cmno=#cmno#
where a.cmno=#cmno# order by b.username desc
order by b.username desc
) a ) a
union all union all
select 2 select 2
,b.bkno,0 ,b.bkno,0
,row_number() over (order by b.bkno) intval3 ,row_number() over (order by b.bkno) intval3
,b.bkname,null ,b.bkname,null
,null strval3
from cmbook a from cmbook a
inner join book b on b.bkno=a.bkno inner join book b on b.bkno=a.bkno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 3 dtype select 3 dtype
,b.cmno,a.ispre ,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3 ,row_number() over (order by b.cmno) intval3
,b.cname,null ,b.cname,null
, null strval3
from cmrelay a from cmrelay a
inner join cm b on b.cmno=a.rcmno inner join cm b on b.cmno=a.rcmno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 4 select 4
,b.ndno,0 ,b.ndno,0
,row_number() over (order by b.ndno) intval3 ,row_number() over (order by b.ndno) intval3
,b.dname,b.acode ,b.dname,b.acode
,null strval3
from cmncsd a from cmncsd a
inner join ncsd b on b.ndno=a.ndno inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno# where a.cmno=#cmno#
@ -838,9 +834,6 @@
<update id="cm.cmex.savetop" parameterClass="cmex"> <update id="cm.cmex.savetop" parameterClass="cmex">
UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup# UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup#
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime# ,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
,cmisno = #cmisno#
,testsdate = #testsdate#
,testedate = #testedate#
where exno=#exno# where exno=#exno#
</update> </update>
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int"> <select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
@ -850,8 +843,8 @@
</select> </select>
<insert id="cm.cmex.in" parameterClass="cmex"> <insert id="cm.cmex.in" parameterClass="cmex">
INSERT INTO cmex INSERT INTO cmex
(cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,<include refid="sql.inc"></include>)
values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,#cmisno#,#testsdate#,#testedate#,<include refid="sql.inv"></include>) values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,<include refid="sql.inv"></include>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert> </insert>
<update id="cm.cmex.up" parameterClass="cmex"> <update id="cm.cmex.up" parameterClass="cmex">
@ -935,14 +928,14 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.*,b.cname select a.*,b.cname
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name ,a.ispassspace,a.isignorecase,a.instructors
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
,<include refid="sql.prc"></include> ,<include refid="sql.prc"></include>
from question a from question a
left outer join comcode cc on cc.ccode = a.qdiff left outer join comcode cc on cc.ccode = a.qdiff
@ -951,7 +944,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -964,7 +956,7 @@
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull> <isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull> <isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull> <isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic> </dynamic>
) a ) a
left outer join cm b on b.cmno=a.cmno left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
<!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0//--> <!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0-->
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors,a.usertype,a.instructors_name left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors
order by a.RNO order by a.RNO
</select> </select>
<select id="cm.questions2" parameterClass="hashtable" resultClass="question"> <select id="cm.questions2" parameterClass="hashtable" resultClass="question">
@ -983,12 +976,12 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.* select a.*
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors,u.usertype,u.username as instructors_name select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors
,b.cname ,b.cname
, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5 , cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
@ -1001,7 +994,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual> <isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull> </isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull> </dynamic>
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
</dynamic>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors,a.usertype,a.instructors_name ,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
<dynamic prepend="having"> <dynamic prepend="having">
<isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull> <isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull>
<isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull> <isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull>
<isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull> <isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
</dynamic> </dynamic>
order by a.rno order by a.rno
</select> </select>
@ -1466,8 +1458,8 @@
drop temporary table if exists temp_cminning_mapping; drop temporary table if exists temp_cminning_mapping;
</update> </update>
<insert id="cm.cmcopy.ex0" parameterClass="cmex"> <insert id="cm.cmcopy.ex0" parameterClass="cmex">
insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,<include refid="sql.inc"></include>)
select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,cmisno,testsdate,testedate,<include refid="sql.inv"></include> select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,<include refid="sql.inv"></include>
from cmex a from cmex a
where a.exno=#orgexno#; where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected ,a.isselected
<!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend--> <!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend-->
, 1 isend , 1 isend
,a.instructors
from from
( (
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople ,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople
,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename ,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename
,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected ,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected
,a.comment,a.instructors ,a.comment
from cminningscd a from cminningscd a
left outer join cminning c on c.cmino = a.cmino left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno left outer join cm d on d.cmno = c.cmno
@ -2301,8 +2292,8 @@
,null as iseq,null as teachername ,null as iseq,null as teachername
,b.cshape ,b.cshape
,c.cmisno ,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart ,c.estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend ,c.eend
,c.instructors ,c.instructors
from cmex a from cmex a
left join cm b ON b.cmno = a.cmno left join cm b ON b.cmno = a.cmno
@ -2310,7 +2301,7 @@
where a.cmno=#cmno# and a.isdel=0 where a.cmno=#cmno# and a.isdel=0
<isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull> <isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull>
<isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull> <isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull>
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull> <isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
</select> </select>
<select id="cm.est2" parameterClass="int" resultClass="est"> <select id="cm.est2" parameterClass="int" resultClass="est">

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data"> <select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3 select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3 ,a.strval,a.strval2
from( from(
select 1 dtype select 1 dtype
,a.userno intval,b.usertype intval2 ,a.userno intval,b.usertype intval2
,row_number() over (order by b.username desc) intval3 ,row_number() over (order by b.username desc) intval3
,b.username strval,null strval2 ,b.username strval,null strval2
,b.userid strval3 from cmprof a
from cmprof a inner join users b on b.userno=a.userno
inner join users b on b.userno=a.userno where a.cmno=#cmno#
where a.cmno=#cmno# order by b.username desc
order by b.username desc
) a ) a
union all union all
select 2 select 2
,b.bkno,0 ,b.bkno,0
,row_number() over (order by b.bkno) intval3 ,row_number() over (order by b.bkno) intval3
,b.bkname,null ,b.bkname,null
,null strval3
from cmbook a from cmbook a
inner join book b on b.bkno=a.bkno inner join book b on b.bkno=a.bkno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 3 dtype select 3 dtype
,b.cmno,a.ispre ,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3 ,row_number() over (order by b.cmno) intval3
,b.cname,null ,b.cname,null
, null strval3
from cmrelay a from cmrelay a
inner join cm b on b.cmno=a.rcmno inner join cm b on b.cmno=a.rcmno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 4 select 4
,b.ndno,0 ,b.ndno,0
,row_number() over (order by b.ndno) intval3 ,row_number() over (order by b.ndno) intval3
,b.dname,b.acode ,b.dname,b.acode
,null strval3
from cmncsd a from cmncsd a
inner join ncsd b on b.ndno=a.ndno inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno# where a.cmno=#cmno#
@ -838,9 +834,6 @@
<update id="cm.cmex.savetop" parameterClass="cmex"> <update id="cm.cmex.savetop" parameterClass="cmex">
UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup# UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup#
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime# ,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
,cmisno = #cmisno#
,testsdate = #testsdate#
,testedate = #testedate#
where exno=#exno# where exno=#exno#
</update> </update>
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int"> <select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
@ -850,8 +843,8 @@
</select> </select>
<insert id="cm.cmex.in" parameterClass="cmex"> <insert id="cm.cmex.in" parameterClass="cmex">
INSERT INTO cmex INSERT INTO cmex
(cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,<include refid="sql.inc"></include>)
values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,#cmisno#,#testsdate#,#testedate#,<include refid="sql.inv"></include>) values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,<include refid="sql.inv"></include>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert> </insert>
<update id="cm.cmex.up" parameterClass="cmex"> <update id="cm.cmex.up" parameterClass="cmex">
@ -935,14 +928,14 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.*,b.cname select a.*,b.cname
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name ,a.ispassspace,a.isignorecase,a.instructors
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
,<include refid="sql.prc"></include> ,<include refid="sql.prc"></include>
from question a from question a
left outer join comcode cc on cc.ccode = a.qdiff left outer join comcode cc on cc.ccode = a.qdiff
@ -951,7 +944,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -964,7 +956,7 @@
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull> <isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull> <isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull> <isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic> </dynamic>
) a ) a
left outer join cm b on b.cmno=a.cmno left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
<!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0//--> <!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0-->
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors,a.usertype,a.instructors_name left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors
order by a.RNO order by a.RNO
</select> </select>
<select id="cm.questions2" parameterClass="hashtable" resultClass="question"> <select id="cm.questions2" parameterClass="hashtable" resultClass="question">
@ -983,12 +976,12 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.* select a.*
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors,u.usertype,u.username as instructors_name select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors
,b.cname ,b.cname
, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5 , cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
@ -1001,7 +994,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual> <isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull> </isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull> </dynamic>
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
</dynamic>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors,a.usertype,a.instructors_name ,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
<dynamic prepend="having"> <dynamic prepend="having">
<isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull> <isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull>
<isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull> <isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull>
<isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull> <isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
</dynamic> </dynamic>
order by a.rno order by a.rno
</select> </select>
@ -1466,8 +1458,8 @@
drop temporary table if exists temp_cminning_mapping; drop temporary table if exists temp_cminning_mapping;
</update> </update>
<insert id="cm.cmcopy.ex0" parameterClass="cmex"> <insert id="cm.cmcopy.ex0" parameterClass="cmex">
insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,<include refid="sql.inc"></include>)
select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,cmisno,testsdate,testedate,<include refid="sql.inv"></include> select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,<include refid="sql.inv"></include>
from cmex a from cmex a
where a.exno=#orgexno#; where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected ,a.isselected
<!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend--> <!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend-->
, 1 isend , 1 isend
,a.instructors
from from
( (
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople ,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople
,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename ,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename
,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected ,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected
,a.comment,a.instructors ,a.comment
from cminningscd a from cminningscd a
left outer join cminning c on c.cmino = a.cmino left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno left outer join cm d on d.cmno = c.cmno
@ -2302,8 +2293,8 @@
,null as iseq,null as teachername ,null as iseq,null as teachername
,b.cshape ,b.cshape
,c.cmisno ,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart ,c.estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend ,c.eend
,c.instructors ,c.instructors
from cmex a from cmex a
left join cm b ON b.cmno = a.cmno left join cm b ON b.cmno = a.cmno
@ -2311,7 +2302,7 @@
where a.cmno=#cmno# and a.isdel=0 where a.cmno=#cmno# and a.isdel=0
<isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull> <isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull>
<isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull> <isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull>
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull> <isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
</select> </select>
<select id="cm.est2" parameterClass="int" resultClass="est"> <select id="cm.est2" parameterClass="int" resultClass="est">

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data"> <select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3 select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3 ,a.strval,a.strval2
from( from(
select 1 dtype select 1 dtype
,a.userno intval,b.usertype intval2 ,a.userno intval,b.usertype intval2
,row_number() over (order by b.username desc) intval3 ,row_number() over (order by b.username desc) intval3
,b.username strval,null strval2 ,b.username strval,null strval2
,b.userid strval3 from cmprof a
from cmprof a inner join users b on b.userno=a.userno
inner join users b on b.userno=a.userno where a.cmno=#cmno#
where a.cmno=#cmno# order by b.username desc
order by b.username desc
) a ) a
union all union all
select 2 select 2
,b.bkno,0 ,b.bkno,0
,row_number() over (order by b.bkno) intval3 ,row_number() over (order by b.bkno) intval3
,b.bkname,null ,b.bkname,null
,null strval3
from cmbook a from cmbook a
inner join book b on b.bkno=a.bkno inner join book b on b.bkno=a.bkno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 3 dtype select 3 dtype
,b.cmno,a.ispre ,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3 ,row_number() over (order by b.cmno) intval3
,b.cname,null ,b.cname,null
, null strval3
from cmrelay a from cmrelay a
inner join cm b on b.cmno=a.rcmno inner join cm b on b.cmno=a.rcmno
where a.cmno=#cmno# where a.cmno=#cmno#
union all union all
select 4 select 4
,b.ndno,0 ,b.ndno,0
,row_number() over (order by b.ndno) intval3 ,row_number() over (order by b.ndno) intval3
,b.dname,b.acode ,b.dname,b.acode
,null strval3
from cmncsd a from cmncsd a
inner join ncsd b on b.ndno=a.ndno inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno# where a.cmno=#cmno#
@ -838,9 +834,6 @@
<update id="cm.cmex.savetop" parameterClass="cmex"> <update id="cm.cmex.savetop" parameterClass="cmex">
UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup# UPDATE cmex SET <include refid="sql.up"></include>,exname=#exname#,edesc=#edesc#,econdition=#econdition#,isblur=#isblur#,isusebackup=#isusebackup#
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime# ,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
,cmisno = #cmisno#
,testsdate = #testsdate#
,testedate = #testedate#
where exno=#exno# where exno=#exno#
</update> </update>
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int"> <select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
@ -850,8 +843,8 @@
</select> </select>
<insert id="cm.cmex.in" parameterClass="cmex"> <insert id="cm.cmex.in" parameterClass="cmex">
INSERT INTO cmex INSERT INTO cmex
(cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isreexamable,isresultopen,isdel,<include refid="sql.inc"></include>)
values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,#cmisno#,#testsdate#,#testedate#,<include refid="sql.inv"></include>) values (#cmno#,#extype#,#exname#,#edesc#,#etime#,#econdition#,#evtype#,#eqtype#,#israndq#,#israndqi#,#qcount#,#isblur#,#tpoint#,#relaylimit#,#isusebackup#,#isseq#,#isreexamable#,#isresultopen#,0,<include refid="sql.inv"></include>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert> </insert>
<update id="cm.cmex.up" parameterClass="cmex"> <update id="cm.cmex.up" parameterClass="cmex">
@ -935,14 +928,14 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.*,b.cname select a.*,b.cname
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5, a.cdt,a.udt
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name ,a.ispassspace,a.isignorecase,a.instructors
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
,<include refid="sql.prc"></include> ,<include refid="sql.prc"></include>
from question a from question a
left outer join comcode cc on cc.ccode = a.qdiff left outer join comcode cc on cc.ccode = a.qdiff
@ -951,7 +944,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -964,7 +956,7 @@
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull> <isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull> <isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull> <isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic> </dynamic>
) a ) a
left outer join cm b on b.cmno=a.cmno left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
<!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0//--> <!--LEFT OUTER JOIN users u ON FIND_IN_SET(u.userid, a.instructors) > 0-->
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors,a.usertype,a.instructors_name left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.ispassspace,a.isignorecase,a.instructors
order by a.RNO order by a.RNO
</select> </select>
<select id="cm.questions2" parameterClass="hashtable" resultClass="question"> <select id="cm.questions2" parameterClass="hashtable" resultClass="question">
@ -983,12 +976,12 @@
,sum(case when ued.atext is not null then 1 else 0 end) ecount ,sum(case when ued.atext is not null then 1 else 0 end) ecount
,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate ,case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end rrate
,a.instructors ,a.instructors
,a.usertype ,u.usertype
,a.instructors_name ,u.username AS instructors_name
from ( from (
select a.* select a.*
from ( from (
select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors,u.usertype,u.username as instructors_name select a.qno,a.cmno,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc,a.cdt,a.udt,a.instructors
,b.cname ,b.cname
, cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5 , cc.cname qdiffname, cc1.cname ccname1, cc2.cname ccname2, cc3.cname ccname3, cc4.cname ccname4, cc5.cname ccname5
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno , Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
@ -1001,7 +994,6 @@
left outer join comcode cc3 on cc3.ccode = a.cc3 left outer join comcode cc3 on cc3.ccode = a.cc3
left outer join comcode cc4 on cc4.ccode = a.cc4 left outer join comcode cc4 on cc4.ccode = a.cc4
left outer join comcode cc5 on cc5.ccode = a.cc5 left outer join comcode cc5 on cc5.ccode = a.cc5
left outer join users u on u.userid = a.instructors
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull> <isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual> <isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull> </isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull> <isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull> </dynamic>
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
</dynamic>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
) a ) a
left outer join cmexq eq on eq.qno=a.qno left outer join cmexq eq on eq.qno=a.qno
left outer join lectexq ued on ued.eqno=eq.eqno left outer join lectexq ued on ued.eqno=eq.eqno
left outer join users u on u.userid = a.instructors
group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc group by a.qno,a.cmno,a.cname,a.qdiff,a.cc1,a.cc2,a.cc3,a.cc4,a.cc5,a.isuse,a.atype,a.dpoint,a.qtext,a.qtextstring,a.qdesc
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors,a.usertype,a.instructors_name ,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
<dynamic prepend="having"> <dynamic prepend="having">
<isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull> <isNotNull property="qcount" prepend="and">count(ued.examno)=#qcount#</isNotNull>
<isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull> <isNotNull property="ecount" prepend="and">sum(case when ued.atext is not null then 1 else 0 end)=#ecount#</isNotNull>
<isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull> <isNotNull property="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) &lt; 1 then 0 else sum(ued.iscorrect) / sum(case when ued.atext is not null then 1 else 0 end) * 100 end=#rrate#</isNotNull>
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
</dynamic> </dynamic>
order by a.rno order by a.rno
</select> </select>
@ -1466,8 +1458,8 @@
drop temporary table if exists temp_cminning_mapping; drop temporary table if exists temp_cminning_mapping;
</update> </update>
<insert id="cm.cmcopy.ex0" parameterClass="cmex"> <insert id="cm.cmcopy.ex0" parameterClass="cmex">
insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,cmisno,testsdate,testedate,<include refid="sql.inc"></include>) insert into cmex (cmno,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,isdel,<include refid="sql.inc"></include>)
select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,cmisno,testsdate,testedate,<include refid="sql.inv"></include> select #cmno#,extype,exname,edesc,etime,econdition,evtype,eqtype,israndq,israndqi,qcount,isblur,tpoint,relaylimit,isusebackup,isseq,isresultopen,isreexamable,0,<include refid="sql.inv"></include>
from cmex a from cmex a
where a.exno=#orgexno#; where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected ,a.isselected
<!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend--> <!--,case when a.remainPeople &lt;= 0 then 0 else 1 end isend-->
, 1 isend , 1 isend
,a.instructors
from from
( (
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople ,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status in (1,2) and z.ischanged=0)) remainPeople
,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename ,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename
,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected ,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected
,a.comment,a.instructors ,a.comment
from cminningscd a from cminningscd a
left outer join cminning c on c.cmino = a.cmino left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno left outer join cm d on d.cmno = c.cmno
@ -2304,8 +2295,8 @@
,null as iseq,null as teachername ,null as iseq,null as teachername
,b.cshape ,b.cshape
,c.cmisno ,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart ,c.estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend ,c.eend
,c.instructors ,c.instructors
from cmex a from cmex a
left join cm b ON b.cmno = a.cmno left join cm b ON b.cmno = a.cmno
@ -2313,7 +2304,7 @@
where a.cmno=#cmno# and a.isdel=0 where a.cmno=#cmno# and a.isdel=0
<isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull> <isNotNull property="estart" prepend="and">c.estart &gt;= concat(#estart#, ' 00:00:00')</isNotNull>
<isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull> <isNotNull property="eend" prepend="and">c.eend &lt;= concat(#eend#, ' 23:59:59')</isNotNull>
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull> <isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
</select> </select>
<select id="cm.est2" parameterClass="int" resultClass="est"> <select id="cm.est2" parameterClass="int" resultClass="est">

File diff suppressed because one or more lines are too long