Compare commits
3 Commits
20a848c8d9
...
99103851de
| Author | SHA1 | Date |
|---|---|---|
|
|
99103851de | |
|
|
eb39064d6b | |
|
|
1d0673c078 |
|
|
@ -584,6 +584,11 @@ namespace NP.BO.Controllers
|
|||
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", p);
|
||||
#endregion
|
||||
|
||||
#region + 기본정보 담당자/교강사 [vm.Datas] Get: cm.cmdatas (cmno, 단일 파라미터)
|
||||
vm.Datas = Dao.Get<Data>("cm.cmdatas", vm.CM.cmno);
|
||||
#endregion
|
||||
|
||||
|
||||
ViewBag.fronturl = GetConfig("fronturl");
|
||||
|
||||
return View("cmregeduschedule", vm);
|
||||
|
|
@ -787,6 +792,11 @@ namespace NP.BO.Controllers
|
|||
ViewBag.Front = GetConfig("fronturl");
|
||||
return View(vm);
|
||||
}
|
||||
/// <summary>
|
||||
/// 교육환경설정 > 강좌설정 > 시험설정 > 시험등록 > 문제추가
|
||||
/// </summary>
|
||||
/// <param name="vm"></param>
|
||||
/// <returns></returns>
|
||||
public ActionResult qp(VMCM vm)
|
||||
{
|
||||
vm.ComCodes = GetComCodes("ccdiff,cc1,cc2,cc3,cc4,cc5");
|
||||
|
|
@ -811,6 +821,7 @@ namespace NP.BO.Controllers
|
|||
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.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 = vm.Qs ?? new List<Question>();
|
||||
|
|
@ -889,6 +900,14 @@ namespace NP.BO.Controllers
|
|||
public ActionResult cmregexset(VMCM vm) {
|
||||
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)
|
||||
p.Clear();
|
||||
p.Add("cmno", vm.intval);
|
||||
|
|
@ -910,6 +929,10 @@ namespace NP.BO.Controllers
|
|||
vm.ESTs = Dao.Get<EST>("cm.exlist", p);
|
||||
#endregion
|
||||
|
||||
//교육일정이 존재하는지 조회
|
||||
var scd = Dao.Get<int>("cm.cminnigscd.exists", new Hashtable() { { "cmno", vm.CM.cmno } });
|
||||
ViewBag.Scd = scd.FirstOrDefault();
|
||||
|
||||
return View("cmregexset", vm);
|
||||
}
|
||||
|
||||
|
|
|
|||
2458
BO/Logs/log.txt
2458
BO/Logs/log.txt
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
7433
BO/Logs/query.txt
7433
BO/Logs/query.txt
File diff suppressed because one or more lines are too long
|
|
@ -11,7 +11,9 @@
|
|||
|
||||
@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 == 5 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(5)");" 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 == 4 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(4)");" data-toggle="tab">메뉴설정</a></li>
|
||||
}
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
@{
|
||||
int studyplaceseq = 0;
|
||||
int tempInt = 0;
|
||||
int index = 0;
|
||||
}
|
||||
<div style="@(Model.CM.cmno < 1 ? "display: none;":"")">
|
||||
<ul class="pagination pagination-md" style="margin: 0;">
|
||||
|
|
@ -194,7 +195,21 @@
|
|||
<tr>
|
||||
<th>교강사</th>
|
||||
<td>
|
||||
<table id="tblInstructor" class="tblInstructor" style="width: 100%;border: none !important;border-collapse: collapse !important;"></table>
|
||||
<table id="tblInstructor" class="tblInstructor" style="width: 100%;border: none !important;border-collapse: collapse !important;">
|
||||
<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>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -224,8 +239,6 @@
|
|||
$(".troff").show();
|
||||
$(".idoff").show();
|
||||
}
|
||||
|
||||
finduser(); //일정등록 강사 정보 가지고오기
|
||||
});
|
||||
|
||||
function save() {
|
||||
|
|
@ -456,14 +469,17 @@
|
|||
$("input:radio[name=istudyplace][value=" + d.studyplace + "]").attr("checked", true);
|
||||
}
|
||||
//교강사 체크
|
||||
if (d.instructors != null) {
|
||||
var instructors = d.instructors.split(',');
|
||||
$.each($(".chkInstructor"), function (i, item) {
|
||||
if (instructors.includes($(item).val())) {
|
||||
$(item).prop("checked", true);
|
||||
$.each($(".chkInstructor"), function (i, item) {
|
||||
if (d.instructors != null) {
|
||||
let tc = d.instructors.split(',');
|
||||
|
||||
for (var i = 0; i < tc.length; i++) {
|
||||
if ($(this).val() == tc[i]) {
|
||||
$(this).prop("checked", true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
bglayer(); $("#scdbox").slideDown("fast", function () { $("#scdbox").scrollTop(0); });
|
||||
|
|
@ -559,31 +575,6 @@
|
|||
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>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@
|
|||
<li><a href="javascript:;" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
|
||||
}
|
||||
<li class="active"><a href="javascript:;" data-toggle="tab">평가설정</a></li>
|
||||
<li><a href="javascript:;" data-toggle="tab" onclick="gotab(5);">시험설정</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><a href="javascript:;" onclick="gotab(4);" data-toggle="tab">메뉴설정</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -19,37 +19,40 @@
|
|||
<div class="row">
|
||||
<form id="mform" method="post" enctype="multipart/form-data" class="form-horizontal">
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 기본정보<span class=""></span></strong></header>
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 기본정보 @Model.CMInnings.FirstOrDefault().scdtype<span class=""></span></strong></header>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<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", "1:최종평가", new ViewDataDictionary { { "special", "stringlist" }, { "name", "vm.CMEX.extype" }, { "checked", Model.CMEX.extype } })</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 col-md-2 control-label req">교육일정 선택</label>
|
||||
<div class="col-sm-8 col-md-10">
|
||||
<select class="form-control dev" id="cmisno" name="vm.CMEX.cmisno">
|
||||
<option>선택</option>
|
||||
@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();
|
||||
<option value="@item.cmisno" @(item.cmisno == Model.CMEX.cmisno ? "selected" : "")>[@item.studyplacename] [@item.estart ~ @item.eend]</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 col-md-2 control-label req">시험 응시 일시</label>
|
||||
<div class="col-sm-8 col-md-10 form-inline">
|
||||
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval18) ? (DateTime?)null : Convert.ToDateTime(Model.stringval18), new ViewDataDictionary { { "name", "vm.stringval18" } })
|
||||
@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.TextBoxFor(m => m.stringval23, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name = "vm.stringval23" }) 분
|
||||
</div>
|
||||
</div>
|
||||
@if (Model.CMInnings.FirstOrDefault().scdtype == 0) {
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 col-md-2 control-label req">교육일정 선택</label>
|
||||
<div class="col-sm-8 col-md-10">
|
||||
<select class="form-control dev" id="cmisno" name="vm.CMEX.cmisno">
|
||||
<option value="">선택</option>
|
||||
@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();
|
||||
<option value="@item.cmisno" data-instructors="@(item.instructors)" @(item.cmisno == Model.CMEX.cmisno ? "selected" : "")>[@item.studyplacename] [@item.estart ~ @item.eend]</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
<div class="col-sm-8 col-md-10 form-inline">
|
||||
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval18) ? (DateTime?)null : Convert.ToDateTime(Model.stringval18), new ViewDataDictionary { { "name", "vm.stringval18" } })
|
||||
@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.TextBoxFor(m => m.stringval23, new { @class = "form-control text-center onlyNum2", @maxlength = "2", @style = "width:50px;", @Name = "vm.stringval23" }) 분
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<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>
|
||||
<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>
|
||||
|
|
@ -64,15 +67,15 @@
|
|||
</div>
|
||||
<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>
|
||||
<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 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>
|
||||
<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>
|
||||
<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 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>
|
||||
<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>
|
||||
<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 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>
|
||||
<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>
|
||||
|
|
@ -460,11 +463,46 @@
|
|||
}
|
||||
});
|
||||
}
|
||||
if (check("CMEX_exname", "", "시험명칭을 입력하세요.")) { }
|
||||
else if ($("#vm_CMEX_eqtype0").prop("checked") && $("#box1 tbody tr").length < 1) { msg("출제할 문제를 추가해주세요."); }
|
||||
else if ($("#vm_CMEX_eqtype1").prop("checked") && _layerqcount < 1) { msg("출제문항수를 입력해주세요."); }
|
||||
else if (getDouble(val("CMEX_econdition")) > 100 || getDouble(val("CMEX_econdition")) < 0) { msg("출석률은 0 ~ 100 사이의 값을 입력해주세요."); }
|
||||
else if (_isvalid && confirm("시험을 " + (getint(val("CMEX_exno")) < 1 ? "등록" : "수정") + "하시겠습니까?")) {
|
||||
if (check("CMEX_exname", "", "시험명칭을 입력하세요.")) { return; }
|
||||
|
||||
@if (Model.CMInnings.FirstOrDefault().scdtype == 0) {
|
||||
<text>
|
||||
if ($("#cmisno").val() == "") {
|
||||
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_israndqi").val($("#chkrqi").prop("checked") ? 1 : 0);
|
||||
var sd = "";
|
||||
|
|
@ -486,7 +524,21 @@
|
|||
}
|
||||
var pqlist = "";
|
||||
function qadd() {
|
||||
framelayer("/cm/qp?stringval13=R");
|
||||
var instructors = "";
|
||||
|
||||
@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() {
|
||||
pqlist = "";
|
||||
|
|
@ -530,6 +582,7 @@
|
|||
$("#intval").val(capResult.obj);
|
||||
}
|
||||
setv("IsSavedForParent", 1);
|
||||
goparent(val('IsSavedForParent') == '1');
|
||||
//timesubmit();
|
||||
}
|
||||
else if (capResult.obj == -1) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,10 @@
|
|||
@model NP.Model.VMCM
|
||||
@{
|
||||
int esTsCnt = 0;
|
||||
if (Model.ESTs != null) {
|
||||
esTsCnt = Model.ESTs.Count;
|
||||
}
|
||||
}
|
||||
<!-- div[id=container] -->
|
||||
<div style="@(Model.CM.cmno < 1 ? "display: none;" : "")">
|
||||
<ul class="pagination pagination-md" style="margin: 0;">
|
||||
|
|
@ -15,6 +21,8 @@
|
|||
<!-- // div[id=container] -->
|
||||
<!-- form[id=mform] -->
|
||||
<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" style="border-top: 1px solid #ddd; margin-top: 5px;">
|
||||
<div class="panel-body">
|
||||
|
|
@ -79,17 +87,17 @@
|
|||
<!--<td>@item.estkindname</td>-->
|
||||
<td class="link"><a href="javascript:;" onclick="add(@item.gubun, @item.exno)">@item.exname</a></td>
|
||||
<td>
|
||||
@if(item.cshape == 1) { //오프라인
|
||||
@(item.estart + "~" + item.eend)
|
||||
} else { //온라인
|
||||
@(item.estart)
|
||||
}
|
||||
</td>
|
||||
@if (item.cshape == 1) { //오프라인
|
||||
@(item.estart + "~" + item.eend)
|
||||
} else { //온라인
|
||||
@(item.estart)
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (item.testsdate != null && item.testedate != null) {
|
||||
@(Html.Raw(item.testsdate + " ~ <br/>" + item.testedate))
|
||||
}
|
||||
</td>
|
||||
@if (item.testsdate != null && item.testedate != null) {
|
||||
@(Html.Raw(item.testsdate + " ~ <br/>" + item.testedate))
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (item.rstype == 1) {
|
||||
@(item.iseq + "회차" + " (" + item.teachername + ")")
|
||||
|
|
@ -254,7 +262,7 @@
|
|||
$("#isoffabs").attr("disabled", _isonline);
|
||||
if (capResult.code == 1000) {
|
||||
msg("평가기준/비율을 저장했습니다.", null, true, null, true);
|
||||
gotab(3, 500);
|
||||
gotab(5, 500);
|
||||
} else {
|
||||
msgadmin();
|
||||
}
|
||||
|
|
@ -266,7 +274,19 @@
|
|||
}
|
||||
|
||||
@*/* 평가 추가 함수 */*@
|
||||
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) {
|
||||
showramemainlayer("/cm/cmregex?cmno=@(Model.CM.cmno)&intval=" + no);
|
||||
} else if (idx == 1) {
|
||||
|
|
@ -287,7 +307,7 @@
|
|||
function cbdel() {
|
||||
if (capResult.code == 1000) {
|
||||
msg("삭제했습니다.", null, true, null, true);
|
||||
gotab(3, 500);
|
||||
gotab(5, 500);
|
||||
} else {
|
||||
msg("수강데이터가 생성되어 삭제할 수 없습니다.");
|
||||
}
|
||||
|
|
@ -301,6 +321,7 @@
|
|||
function examList() {
|
||||
if (capResult.code == 1000) {
|
||||
let html = "";
|
||||
let num = 0;
|
||||
|
||||
$.each($(capResult.obj), function (i, item) {
|
||||
let cShape = "", rsType = "", testDate = "", estKind = "";
|
||||
|
|
@ -334,9 +355,12 @@
|
|||
html += " <td>" + rsType + "</td>";
|
||||
html += " <td>" + estKind +"</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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@
|
|||
<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(5);" 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="active"><a href="#" data-toggle="tab">메뉴설정</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<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>
|
||||
|
||||
<div class="line line-dashed line-lg pull-in"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 col-md-2 control-label">교강사</label>
|
||||
<div class="col-sm-8 col-md-10">
|
||||
|
|
|
|||
|
|
@ -386,38 +386,42 @@
|
|||
|
||||
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
|
||||
select a.dtype,a.intval,a.intval2,a.intval3
|
||||
,a.strval,a.strval2
|
||||
,a.strval,a.strval2,a.strval3
|
||||
from(
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
,b.userid strval3
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
) a
|
||||
union all
|
||||
select 2
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,null strval3
|
||||
from cmbook a
|
||||
inner join book b on b.bkno=a.bkno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 3 dtype
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
, null strval3
|
||||
from cmrelay a
|
||||
inner join cm b on b.cmno=a.rcmno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 4
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,null strval3
|
||||
from cmncsd a
|
||||
inner join ncsd b on b.ndno=a.ndno
|
||||
where a.cmno=#cmno#
|
||||
|
|
@ -834,6 +838,9 @@
|
|||
<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#
|
||||
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
|
||||
,cmisno = #cmisno#
|
||||
,testsdate = #testsdate#
|
||||
,testedate = #testedate#
|
||||
where exno=#exno#
|
||||
</update>
|
||||
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
|
||||
|
|
@ -843,8 +850,8 @@
|
|||
</select>
|
||||
<insert id="cm.cmex.in" parameterClass="cmex">
|
||||
INSERT INTO cmex
|
||||
(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,<include refid="sql.inv"></include>)
|
||||
(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>)
|
||||
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>)
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
</insert>
|
||||
<update id="cm.cmex.up" parameterClass="cmex">
|
||||
|
|
@ -928,14 +935,14 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
,<include refid="sql.prc"></include>
|
||||
from question a
|
||||
left outer join comcode cc on cc.ccode = a.qdiff
|
||||
|
|
@ -944,6 +951,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -956,7 +964,7 @@
|
|||
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
|
||||
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
left outer join cm b on b.cmno=a.cmno
|
||||
|
|
@ -964,9 +972,8 @@
|
|||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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 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
|
||||
<!--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
|
||||
order by a.RNO
|
||||
</select>
|
||||
<select id="cm.questions2" parameterClass="hashtable" resultClass="question">
|
||||
|
|
@ -976,12 +983,12 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*
|
||||
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
|
||||
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
|
||||
,b.cname
|
||||
, 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
|
||||
|
|
@ -994,6 +1001,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -1009,20 +1017,20 @@
|
|||
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
|
||||
</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
</dynamic>
|
||||
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
|
||||
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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
|
||||
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
|
||||
,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
|
||||
<dynamic prepend="having">
|
||||
<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="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) < 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>
|
||||
order by a.rno
|
||||
</select>
|
||||
|
|
@ -1458,8 +1466,8 @@
|
|||
drop temporary table if exists temp_cminning_mapping;
|
||||
</update>
|
||||
<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,<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,<include refid="sql.inv"></include>
|
||||
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>)
|
||||
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>
|
||||
from cmex a
|
||||
where a.exno=#orgexno#;
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
|
|
@ -1938,13 +1946,14 @@
|
|||
,a.isselected
|
||||
<!--,case when a.remainPeople <= 0 then 0 else 1 end isend-->
|
||||
, 1 isend
|
||||
,a.instructors
|
||||
from
|
||||
(
|
||||
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.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
|
||||
,a.comment
|
||||
,a.comment,a.instructors
|
||||
from cminningscd a
|
||||
left outer join cminning c on c.cmino = a.cmino
|
||||
left outer join cm d on d.cmno = c.cmno
|
||||
|
|
@ -2293,8 +2302,8 @@
|
|||
,null as iseq,null as teachername
|
||||
,b.cshape
|
||||
,c.cmisno
|
||||
,c.estart
|
||||
,c.eend
|
||||
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
|
||||
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
|
||||
,c.instructors
|
||||
from cmex a
|
||||
left join cm b ON b.cmno = a.cmno
|
||||
|
|
@ -2302,7 +2311,7 @@
|
|||
where a.cmno=#cmno# and a.isdel=0
|
||||
<isNotNull property="estart" prepend="and">c.estart >= concat(#estart#, ' 00:00:00')</isNotNull>
|
||||
<isNotNull property="eend" prepend="and">c.eend <= concat(#eend#, ' 23:59:59')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull>
|
||||
</select>
|
||||
|
||||
<select id="cm.est2" parameterClass="int" resultClass="est">
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -1104,6 +1104,15 @@ 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) {
|
||||
// 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) != "") {
|
||||
//응시자데이터 존재하므로 일부데이터만 저장
|
||||
return JsonOK(Dao.Save("cm.cmex.savetop", vm.CMEX), false);
|
||||
|
|
@ -1142,9 +1151,6 @@ namespace NP.Base.Controllers
|
|||
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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -386,38 +386,42 @@
|
|||
|
||||
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
|
||||
select a.dtype,a.intval,a.intval2,a.intval3
|
||||
,a.strval,a.strval2
|
||||
,a.strval,a.strval2,a.strval3
|
||||
from(
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
,b.userid strval3
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
) a
|
||||
union all
|
||||
select 2
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,null strval3
|
||||
from cmbook a
|
||||
inner join book b on b.bkno=a.bkno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 3 dtype
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
, null strval3
|
||||
from cmrelay a
|
||||
inner join cm b on b.cmno=a.rcmno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 4
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,null strval3
|
||||
from cmncsd a
|
||||
inner join ncsd b on b.ndno=a.ndno
|
||||
where a.cmno=#cmno#
|
||||
|
|
@ -834,6 +838,9 @@
|
|||
<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#
|
||||
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
|
||||
,cmisno = #cmisno#
|
||||
,testsdate = #testsdate#
|
||||
,testedate = #testedate#
|
||||
where exno=#exno#
|
||||
</update>
|
||||
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
|
||||
|
|
@ -843,8 +850,8 @@
|
|||
</select>
|
||||
<insert id="cm.cmex.in" parameterClass="cmex">
|
||||
INSERT INTO cmex
|
||||
(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,<include refid="sql.inv"></include>)
|
||||
(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>)
|
||||
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>)
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
</insert>
|
||||
<update id="cm.cmex.up" parameterClass="cmex">
|
||||
|
|
@ -928,14 +935,14 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
,<include refid="sql.prc"></include>
|
||||
from question a
|
||||
left outer join comcode cc on cc.ccode = a.qdiff
|
||||
|
|
@ -944,6 +951,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -956,7 +964,7 @@
|
|||
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
|
||||
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
left outer join cm b on b.cmno=a.cmno
|
||||
|
|
@ -964,9 +972,8 @@
|
|||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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 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
|
||||
<!--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
|
||||
order by a.RNO
|
||||
</select>
|
||||
<select id="cm.questions2" parameterClass="hashtable" resultClass="question">
|
||||
|
|
@ -976,12 +983,12 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*
|
||||
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
|
||||
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
|
||||
,b.cname
|
||||
, 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
|
||||
|
|
@ -994,6 +1001,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -1009,20 +1017,20 @@
|
|||
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
|
||||
</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
</dynamic>
|
||||
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
|
||||
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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
|
||||
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
|
||||
,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
|
||||
<dynamic prepend="having">
|
||||
<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="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) < 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>
|
||||
order by a.rno
|
||||
</select>
|
||||
|
|
@ -1458,8 +1466,8 @@
|
|||
drop temporary table if exists temp_cminning_mapping;
|
||||
</update>
|
||||
<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,<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,<include refid="sql.inv"></include>
|
||||
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>)
|
||||
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>
|
||||
from cmex a
|
||||
where a.exno=#orgexno#;
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
|
|
@ -1938,13 +1946,14 @@
|
|||
,a.isselected
|
||||
<!--,case when a.remainPeople <= 0 then 0 else 1 end isend-->
|
||||
, 1 isend
|
||||
,a.instructors
|
||||
from
|
||||
(
|
||||
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.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
|
||||
,a.comment
|
||||
,a.comment,a.instructors
|
||||
from cminningscd a
|
||||
left outer join cminning c on c.cmino = a.cmino
|
||||
left outer join cm d on d.cmno = c.cmno
|
||||
|
|
@ -2292,8 +2301,8 @@
|
|||
,null as iseq,null as teachername
|
||||
,b.cshape
|
||||
,c.cmisno
|
||||
,c.estart
|
||||
,c.eend
|
||||
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
|
||||
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
|
||||
,c.instructors
|
||||
from cmex a
|
||||
left join cm b ON b.cmno = a.cmno
|
||||
|
|
@ -2301,7 +2310,7 @@
|
|||
where a.cmno=#cmno# and a.isdel=0
|
||||
<isNotNull property="estart" prepend="and">c.estart >= concat(#estart#, ' 00:00:00')</isNotNull>
|
||||
<isNotNull property="eend" prepend="and">c.eend <= concat(#eend#, ' 23:59:59')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull>
|
||||
</select>
|
||||
|
||||
<select id="cm.est2" parameterClass="int" resultClass="est">
|
||||
|
|
|
|||
|
|
@ -386,38 +386,42 @@
|
|||
|
||||
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
|
||||
select a.dtype,a.intval,a.intval2,a.intval3
|
||||
,a.strval,a.strval2
|
||||
,a.strval,a.strval2,a.strval3
|
||||
from(
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
,b.userid strval3
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
) a
|
||||
union all
|
||||
select 2
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,null strval3
|
||||
from cmbook a
|
||||
inner join book b on b.bkno=a.bkno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 3 dtype
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
, null strval3
|
||||
from cmrelay a
|
||||
inner join cm b on b.cmno=a.rcmno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 4
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,null strval3
|
||||
from cmncsd a
|
||||
inner join ncsd b on b.ndno=a.ndno
|
||||
where a.cmno=#cmno#
|
||||
|
|
@ -834,6 +838,9 @@
|
|||
<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#
|
||||
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
|
||||
,cmisno = #cmisno#
|
||||
,testsdate = #testsdate#
|
||||
,testedate = #testedate#
|
||||
where exno=#exno#
|
||||
</update>
|
||||
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
|
||||
|
|
@ -843,8 +850,8 @@
|
|||
</select>
|
||||
<insert id="cm.cmex.in" parameterClass="cmex">
|
||||
INSERT INTO cmex
|
||||
(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,<include refid="sql.inv"></include>)
|
||||
(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>)
|
||||
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>)
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
</insert>
|
||||
<update id="cm.cmex.up" parameterClass="cmex">
|
||||
|
|
@ -928,14 +935,14 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
,<include refid="sql.prc"></include>
|
||||
from question a
|
||||
left outer join comcode cc on cc.ccode = a.qdiff
|
||||
|
|
@ -944,6 +951,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -956,7 +964,7 @@
|
|||
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
|
||||
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
left outer join cm b on b.cmno=a.cmno
|
||||
|
|
@ -964,9 +972,8 @@
|
|||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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 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
|
||||
<!--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
|
||||
order by a.RNO
|
||||
</select>
|
||||
<select id="cm.questions2" parameterClass="hashtable" resultClass="question">
|
||||
|
|
@ -976,12 +983,12 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*
|
||||
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
|
||||
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
|
||||
,b.cname
|
||||
, 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
|
||||
|
|
@ -994,6 +1001,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -1009,20 +1017,20 @@
|
|||
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
|
||||
</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
</dynamic>
|
||||
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
|
||||
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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
|
||||
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
|
||||
,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
|
||||
<dynamic prepend="having">
|
||||
<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="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) < 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>
|
||||
order by a.rno
|
||||
</select>
|
||||
|
|
@ -1458,8 +1466,8 @@
|
|||
drop temporary table if exists temp_cminning_mapping;
|
||||
</update>
|
||||
<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,<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,<include refid="sql.inv"></include>
|
||||
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>)
|
||||
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>
|
||||
from cmex a
|
||||
where a.exno=#orgexno#;
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
|
|
@ -1938,13 +1946,14 @@
|
|||
,a.isselected
|
||||
<!--,case when a.remainPeople <= 0 then 0 else 1 end isend-->
|
||||
, 1 isend
|
||||
,a.instructors
|
||||
from
|
||||
(
|
||||
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.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
|
||||
,a.comment
|
||||
,a.comment,a.instructors
|
||||
from cminningscd a
|
||||
left outer join cminning c on c.cmino = a.cmino
|
||||
left outer join cm d on d.cmno = c.cmno
|
||||
|
|
@ -2293,8 +2302,8 @@
|
|||
,null as iseq,null as teachername
|
||||
,b.cshape
|
||||
,c.cmisno
|
||||
,c.estart
|
||||
,c.eend
|
||||
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
|
||||
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
|
||||
,c.instructors
|
||||
from cmex a
|
||||
left join cm b ON b.cmno = a.cmno
|
||||
|
|
@ -2302,7 +2311,7 @@
|
|||
where a.cmno=#cmno# and a.isdel=0
|
||||
<isNotNull property="estart" prepend="and">c.estart >= concat(#estart#, ' 00:00:00')</isNotNull>
|
||||
<isNotNull property="eend" prepend="and">c.eend <= concat(#eend#, ' 23:59:59')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull>
|
||||
</select>
|
||||
|
||||
<select id="cm.est2" parameterClass="int" resultClass="est">
|
||||
|
|
|
|||
|
|
@ -386,38 +386,42 @@
|
|||
|
||||
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
|
||||
select a.dtype,a.intval,a.intval2,a.intval3
|
||||
,a.strval,a.strval2
|
||||
,a.strval,a.strval2,a.strval3
|
||||
from(
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
select 1 dtype
|
||||
,a.userno intval,b.usertype intval2
|
||||
,row_number() over (order by b.username desc) intval3
|
||||
,b.username strval,null strval2
|
||||
,b.userid strval3
|
||||
from cmprof a
|
||||
inner join users b on b.userno=a.userno
|
||||
where a.cmno=#cmno#
|
||||
order by b.username desc
|
||||
) a
|
||||
union all
|
||||
select 2
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,b.bkno,0
|
||||
,row_number() over (order by b.bkno) intval3
|
||||
,b.bkname,null
|
||||
,null strval3
|
||||
from cmbook a
|
||||
inner join book b on b.bkno=a.bkno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 3 dtype
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
,b.cmno,a.ispre
|
||||
,row_number() over (order by b.cmno) intval3
|
||||
,b.cname,null
|
||||
, null strval3
|
||||
from cmrelay a
|
||||
inner join cm b on b.cmno=a.rcmno
|
||||
where a.cmno=#cmno#
|
||||
union all
|
||||
select 4
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,b.ndno,0
|
||||
,row_number() over (order by b.ndno) intval3
|
||||
,b.dname,b.acode
|
||||
,null strval3
|
||||
from cmncsd a
|
||||
inner join ncsd b on b.ndno=a.ndno
|
||||
where a.cmno=#cmno#
|
||||
|
|
@ -834,6 +838,9 @@
|
|||
<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#
|
||||
,isseq=#isseq#,isreexamable=#isreexamable#,isresultopen=#isresultopen#,etime=#etime#
|
||||
,cmisno = #cmisno#
|
||||
,testsdate = #testsdate#
|
||||
,testedate = #testedate#
|
||||
where exno=#exno#
|
||||
</update>
|
||||
<select id="cm.cmex.extype1count" parameterClass="hashtable" resultClass="int">
|
||||
|
|
@ -843,8 +850,8 @@
|
|||
</select>
|
||||
<insert id="cm.cmex.in" parameterClass="cmex">
|
||||
INSERT INTO cmex
|
||||
(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,<include refid="sql.inv"></include>)
|
||||
(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>)
|
||||
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>)
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
</insert>
|
||||
<update id="cm.cmex.up" parameterClass="cmex">
|
||||
|
|
@ -928,14 +935,14 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
select a.*,b.cname
|
||||
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
|
||||
,a.ispassspace,a.isignorecase,a.instructors, u.usertype, u.username as instructors_name
|
||||
, Row_Number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.qtextstring</isNull> ) rno
|
||||
,<include refid="sql.prc"></include>
|
||||
from question a
|
||||
left outer join comcode cc on cc.ccode = a.qdiff
|
||||
|
|
@ -944,6 +951,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -956,7 +964,7 @@
|
|||
<isNotNull property="isuse" prepend="and">a.isuse=#isuse#</isNotNull>
|
||||
<isNotNull property="qtextstring" prepend="and">a.qtextstring like concat('%', #searchtext#,'%')</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">u.username like concat('%', #instructors#, '%')</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
left outer join cm b on b.cmno=a.cmno
|
||||
|
|
@ -964,9 +972,8 @@
|
|||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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 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
|
||||
<!--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
|
||||
order by a.RNO
|
||||
</select>
|
||||
<select id="cm.questions2" parameterClass="hashtable" resultClass="question">
|
||||
|
|
@ -976,12 +983,12 @@
|
|||
,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) < 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
|
||||
,u.usertype
|
||||
,u.username AS instructors_name
|
||||
,a.usertype
|
||||
,a.instructors_name
|
||||
from (
|
||||
select a.*
|
||||
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
|
||||
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
|
||||
,b.cname
|
||||
, 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
|
||||
|
|
@ -994,6 +1001,7 @@
|
|||
left outer join comcode cc3 on cc3.ccode = a.cc3
|
||||
left outer join comcode cc4 on cc4.ccode = a.cc4
|
||||
left outer join comcode cc5 on cc5.ccode = a.cc5
|
||||
left outer join users u on u.userid = a.instructors
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
|
||||
<isNotNull property="qdiff" prepend="and">a.qdiff=#qdiff#</isNotNull>
|
||||
|
|
@ -1009,20 +1017,20 @@
|
|||
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
|
||||
</isNotNull>
|
||||
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
|
||||
</dynamic>
|
||||
<isNotNull property="instuctorName" prepend="and">u.username like concat('%', #instuctorName#, '%')</isNotNull>
|
||||
<isNotNull property="scdinstuctor" prepend="and">FIND_IN_SET(u.userid, #scdinstuctor#) > 0</isNotNull>
|
||||
</dynamic>
|
||||
) a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
) a
|
||||
left outer join cmexq eq on eq.qno=a.qno
|
||||
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
|
||||
,a.qdiffname,a.ccname1,a.ccname2,a.ccname3,a.ccname4,a.ccname5,a.rno,a.pagetotalcount,a.cdt,a.udt,a.instructors
|
||||
,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
|
||||
<dynamic prepend="having">
|
||||
<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="rrate" prepend="and">case when sum(case when ued.atext is not null then 1 else 0 end) < 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>
|
||||
order by a.rno
|
||||
</select>
|
||||
|
|
@ -1458,8 +1466,8 @@
|
|||
drop temporary table if exists temp_cminning_mapping;
|
||||
</update>
|
||||
<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,<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,<include refid="sql.inv"></include>
|
||||
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>)
|
||||
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>
|
||||
from cmex a
|
||||
where a.exno=#orgexno#;
|
||||
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
|
||||
|
|
@ -1938,13 +1946,14 @@
|
|||
,a.isselected
|
||||
<!--,case when a.remainPeople <= 0 then 0 else 1 end isend-->
|
||||
, 1 isend
|
||||
,a.instructors
|
||||
from
|
||||
(
|
||||
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.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
|
||||
,a.comment
|
||||
,a.comment,a.instructors
|
||||
from cminningscd a
|
||||
left outer join cminning c on c.cmino = a.cmino
|
||||
left outer join cm d on d.cmno = c.cmno
|
||||
|
|
@ -2295,8 +2304,8 @@
|
|||
,null as iseq,null as teachername
|
||||
,b.cshape
|
||||
,c.cmisno
|
||||
,c.estart
|
||||
,c.eend
|
||||
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
|
||||
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
|
||||
,c.instructors
|
||||
from cmex a
|
||||
left join cm b ON b.cmno = a.cmno
|
||||
|
|
@ -2304,7 +2313,7 @@
|
|||
where a.cmno=#cmno# and a.isdel=0
|
||||
<isNotNull property="estart" prepend="and">c.estart >= concat(#estart#, ' 00:00:00')</isNotNull>
|
||||
<isNotNull property="eend" prepend="and">c.eend <= concat(#eend#, ' 23:59:59')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">c.instructors like concat('%',#instructors#,'%')</isNotNull>
|
||||
<isNotNull property="instructors" prepend="and">FIND_IN_SET((SELECT userid FROM users WHERE username = #instructors#), c.instructors) > 0</isNotNull>
|
||||
</select>
|
||||
|
||||
<select id="cm.est2" parameterClass="int" resultClass="est">
|
||||
|
|
|
|||
Binary file not shown.
1655
FO/Logs/query.txt
1655
FO/Logs/query.txt
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue