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);
#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);
@ -792,11 +787,6 @@ 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");
@ -821,7 +811,6 @@ 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>();
@ -900,14 +889,6 @@ 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);
@ -929,10 +910,6 @@ 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);
}

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) {
<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>
}
</ul>

View File

@ -2,7 +2,6 @@
@{
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;">
@ -195,21 +194,7 @@
<tr>
<th>교강사</th>
<td>
<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>
<table id="tblInstructor" class="tblInstructor" style="width: 100%;border: none !important;border-collapse: collapse !important;"></table>
</td>
</tr>
</table>
@ -239,6 +224,8 @@
$(".troff").show();
$(".idoff").show();
}
finduser(); //일정등록 강사 정보 가지고오기
});
function save() {
@ -469,17 +456,14 @@
$("input:radio[name=istudyplace][value=" + d.studyplace + "]").attr("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);
}
if (d.instructors != null) {
var instructors = d.instructors.split(',');
$.each($(".chkInstructor"), function (i, item) {
if (instructors.includes($(item).val())) {
$(item).prop("checked", true);
}
}
});
});
}
}
bglayer(); $("#scdbox").slideDown("fast", function () { $("#scdbox").scrollTop(0); });
@ -575,6 +559,31 @@
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>
}

View File

@ -9,9 +9,7 @@
<li><a href="javascript:;" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
}
<li class="active"><a href="javascript:;" 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><a href="javascript:;" data-toggle="tab" onclick="gotab(5);">시험설정</a></li>
<li><a href="javascript:;" onclick="gotab(4);" data-toggle="tab">메뉴설정</a></li>
</ul>
</div>

View File

@ -19,40 +19,37 @@
<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> 기본정보 @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="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>
@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="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>
<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>
@ -67,15 +64,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 { @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 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 { @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 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 == 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 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>
@ -463,46 +460,11 @@
}
});
}
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 ? "등록" : "수정") + "하시겠습니까?")) {
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 ? "등록" : "수정") + "하시겠습니까?")) {
$("#CMEX_israndq").val($("#chkrq").prop("checked") ? 1 : 0);
$("#CMEX_israndqi").val($("#chkrqi").prop("checked") ? 1 : 0);
var sd = "";
@ -524,21 +486,7 @@
}
var pqlist = "";
function qadd() {
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);
framelayer("/cm/qp?stringval13=R");
}
function calcplist() {
pqlist = "";
@ -582,7 +530,6 @@
$("#intval").val(capResult.obj);
}
setv("IsSavedForParent", 1);
goparent(val('IsSavedForParent') == '1');
//timesubmit();
}
else if (capResult.obj == -1) {

View File

@ -1,10 +1,4 @@
@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;">
@ -21,8 +15,6 @@
<!-- // 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">
@ -87,17 +79,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 + ")")
@ -262,7 +254,7 @@
$("#isoffabs").attr("disabled", _isonline);
if (capResult.code == 1000) {
msg("평가기준/비율을 저장했습니다.", null, true, null, true);
gotab(5, 500);
gotab(3, 500);
} else {
msgadmin();
}
@ -274,19 +266,7 @@
}
@*/* 평가 추가 함수 */*@
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;
}
function add(idx, no) {
if (idx == 0) {
showramemainlayer("/cm/cmregex?cmno=@(Model.CM.cmno)&intval=" + no);
} else if (idx == 1) {
@ -307,7 +287,7 @@
function cbdel() {
if (capResult.code == 1000) {
msg("삭제했습니다.", null, true, null, true);
gotab(5, 500);
gotab(3, 500);
} else {
msg("수강데이터가 생성되어 삭제할 수 없습니다.");
}
@ -321,7 +301,6 @@
function examList() {
if (capResult.code == 1000) {
let html = "";
let num = 0;
$.each($(capResult.obj), function (i, item) {
let cShape = "", rsType = "", testDate = "", estKind = "";
@ -355,12 +334,9 @@
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>";
num += i + 1;
html += "</tr>";
});
$("#hdnExCnt").val(num);
$("#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(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=""><a href="#" onclick="gotab(5);" data-toggle="tab">시험설정</a></li>
<li class="active"><a href="#" data-toggle="tab">메뉴설정</a></li>
</ul>
</div>

View File

@ -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">

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3
,a.strval,a.strval2
from(
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
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
) a
union all
select 2
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
,null strval3
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
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
, null strval3
,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3
,b.cname,null
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
,null strval3
,b.ndno,0
,row_number() over (order by b.ndno) intval3
,b.dname,b.acode
from cmncsd a
inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno#
@ -838,9 +834,6 @@
<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">
@ -850,8 +843,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,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>)
(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>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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, u.usertype, u.username as instructors_name
, 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
, 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
@ -951,7 +944,6 @@
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>
@ -964,7 +956,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">u.username like concat('%', #instructors#, '%')</isNotNull>
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic>
) a
left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) 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//-->
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 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
order by a.RNO
</select>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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,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
, 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
@ -1001,7 +994,6 @@
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>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<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>
</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.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">
<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) &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>
order by a.rno
</select>
@ -1466,8 +1458,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,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>
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>
from cmex a
where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected
<!--,case when a.remainPeople &lt;= 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.instructors
,a.comment
from cminningscd a
left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
@ -2302,8 +2293,8 @@
,null as iseq,null as teachername
,b.cshape
,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
,c.estart
,c.eend
,c.instructors
from cmex a
left join cm b ON b.cmno = a.cmno
@ -2311,7 +2302,7 @@
where a.cmno=#cmno# and a.isdel=0
<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="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 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) {
// 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);
@ -1151,6 +1142,9 @@ 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);
}

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3
,a.strval,a.strval2
from(
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
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
) a
union all
select 2
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
,null strval3
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
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
, null strval3
,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3
,b.cname,null
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
,null strval3
,b.ndno,0
,row_number() over (order by b.ndno) intval3
,b.dname,b.acode
from cmncsd a
inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno#
@ -838,9 +834,6 @@
<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">
@ -850,8 +843,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,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>)
(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>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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, u.usertype, u.username as instructors_name
, 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
, 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
@ -951,7 +944,6 @@
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>
@ -964,7 +956,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">u.username like concat('%', #instructors#, '%')</isNotNull>
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic>
) a
left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) 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//-->
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 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
order by a.RNO
</select>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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,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
, 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
@ -1001,7 +994,6 @@
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>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<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>
</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.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">
<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) &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>
order by a.rno
</select>
@ -1466,8 +1458,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,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>
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>
from cmex a
where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected
<!--,case when a.remainPeople &lt;= 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.instructors
,a.comment
from cminningscd a
left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
@ -2301,8 +2292,8 @@
,null as iseq,null as teachername
,b.cshape
,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
,c.estart
,c.eend
,c.instructors
from cmex a
left join cm b ON b.cmno = a.cmno
@ -2310,7 +2301,7 @@
where a.cmno=#cmno# and a.isdel=0
<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="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 id="cm.est2" parameterClass="int" resultClass="est">

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3
,a.strval,a.strval2
from(
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
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
) a
union all
select 2
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
,null strval3
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
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
, null strval3
,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3
,b.cname,null
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
,null strval3
,b.ndno,0
,row_number() over (order by b.ndno) intval3
,b.dname,b.acode
from cmncsd a
inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno#
@ -838,9 +834,6 @@
<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">
@ -850,8 +843,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,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>)
(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>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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, u.usertype, u.username as instructors_name
, 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
, 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
@ -951,7 +944,6 @@
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>
@ -964,7 +956,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">u.username like concat('%', #instructors#, '%')</isNotNull>
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic>
) a
left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) 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//-->
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 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
order by a.RNO
</select>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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,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
, 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
@ -1001,7 +994,6 @@
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>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<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>
</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.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">
<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) &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>
order by a.rno
</select>
@ -1466,8 +1458,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,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>
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>
from cmex a
where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected
<!--,case when a.remainPeople &lt;= 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.instructors
,a.comment
from cminningscd a
left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
@ -2302,8 +2293,8 @@
,null as iseq,null as teachername
,b.cshape
,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
,c.estart
,c.eend
,c.instructors
from cmex a
left join cm b ON b.cmno = a.cmno
@ -2311,7 +2302,7 @@
where a.cmno=#cmno# and a.isdel=0
<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="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 id="cm.est2" parameterClass="int" resultClass="est">

View File

@ -386,42 +386,38 @@
<select id="cm.cmdatas" parameterClass="int" resultClass="data">
select a.dtype,a.intval,a.intval2,a.intval3
,a.strval,a.strval2,a.strval3
,a.strval,a.strval2
from(
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
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
) a
union all
select 2
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
,null strval3
,b.bkno,0
,row_number() over (order by b.bkno) intval3
,b.bkname,null
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
, null strval3
,b.cmno,a.ispre
,row_number() over (order by b.cmno) intval3
,b.cname,null
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
,null strval3
,b.ndno,0
,row_number() over (order by b.ndno) intval3
,b.dname,b.acode
from cmncsd a
inner join ncsd b on b.ndno=a.ndno
where a.cmno=#cmno#
@ -838,9 +834,6 @@
<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">
@ -850,8 +843,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,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>)
(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>)
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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, u.usertype, u.username as instructors_name
, 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
, 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
@ -951,7 +944,6 @@
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>
@ -964,7 +956,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">u.username like concat('%', #instructors#, '%')</isNotNull>
<isNotNull property="instructors" prepend="and">a.instructors like concat('%', #instructors#, '%')</isNotNull>
</dynamic>
) a
left outer join cm b on b.cmno=a.cmno
@ -972,8 +964,9 @@
) 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//-->
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 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
order by a.RNO
</select>
<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
,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.usertype
,a.instructors_name
,u.usertype
,u.username AS 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,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
, 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
@ -1001,7 +994,6 @@
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>
@ -1017,20 +1009,20 @@
<isEqual property="searchtype" compareValue="qno" prepend="and">a.qno = #searchtext#</isEqual>
</isNotNull>
<isNotNull property="qno" prepend="and">a.qno=#qno#</isNotNull>
<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>
</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.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">
<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) &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>
order by a.rno
</select>
@ -1466,8 +1458,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,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>
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>
from cmex a
where a.exno=#orgexno#;
<selectKey type="post" property="exno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
@ -1946,14 +1938,13 @@
,a.isselected
<!--,case when a.remainPeople &lt;= 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.instructors
,a.comment
from cminningscd a
left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
@ -2304,8 +2295,8 @@
,null as iseq,null as teachername
,b.cshape
,c.cmisno
,DATE_FORMAT(c.estart, '%Y-%m-%d') AS estart
,DATE_FORMAT(c.eend, '%Y-%m-%d') AS eend
,c.estart
,c.eend
,c.instructors
from cmex a
left join cm b ON b.cmno = a.cmno
@ -2313,7 +2304,7 @@
where a.cmno=#cmno# and a.isdel=0
<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="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 id="cm.est2" parameterClass="int" resultClass="est">

File diff suppressed because one or more lines are too long