parent
6708f26f21
commit
2a8a402ce8
|
|
@ -703,6 +703,8 @@
|
|||
<Content Include="Views\cc\exelboard.cshtml" />
|
||||
<Content Include="Views\cc\homer2.cshtml" />
|
||||
<Content Include="Views\Shared\Partial\ExcelCommentBox.cshtml" />
|
||||
<Content Include="Views\croom\grade0_1.cshtml" />
|
||||
<Content Include="Views\croom\gradeall0_1.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
|
|
|
|||
|
|
@ -588,6 +588,7 @@ namespace NP.BO.Controllers
|
|||
{
|
||||
vm.tabidx = 4;
|
||||
}
|
||||
ViewBag.userno = SUserInfo.UserNo;
|
||||
switch (vm.tabidx)
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -626,7 +627,7 @@ namespace NP.BO.Controllers
|
|||
|
||||
if (searchCheck)
|
||||
{
|
||||
if (SUserInfo.UserNo != 27460)
|
||||
if (SUserInfo.UserNo != 27460 && SUserInfo.UserNo != 31049 && SUserInfo.UserNo != 110 && SUserInfo.UserNo != 163)
|
||||
{
|
||||
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "iscomplete", vm.addstringval2 }, { "cmisno", vm.addstringval3 }, { "ispasss", vm.addstringval4 }, { "ispassa", vm.addstringval5 }, { "ispassex", vm.addstringval6 }, { "usernameid", vm.addstringval7 }, { "orderby", "ua.asname,ua.asno,u.username" } });
|
||||
//vm.Lects = Dao.Get<Lect>("grade.lectgrades", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "iscomplete", vm.addstringval2 }, { "cmisno", vm.addstringval3 }, { "ispasss", vm.addstringval4 }, { "ispassa", vm.addstringval5 }, { "ispassex", vm.addstringval6 }, { "usernameid", vm.addstringval7 }, { "orderby", "ua.asname,ua.asno,u.username" } });
|
||||
|
|
@ -783,6 +784,7 @@ namespace NP.BO.Controllers
|
|||
vm.excellog.userno = SUserInfo.UserNo;
|
||||
vm.excellog.userip = GetUserIP();
|
||||
}
|
||||
ViewBag.userno = SUserInfo.UserNo;
|
||||
if (searchGo == "T" || vm.isexceldown == 1)
|
||||
{
|
||||
switch (vm.tabidx)
|
||||
|
|
@ -791,14 +793,10 @@ namespace NP.BO.Controllers
|
|||
|
||||
//ht.Add("ustatus", 1);
|
||||
ht.Add("orderby", "ua.asname,ua.asno,u.username");
|
||||
if (SUserInfo.UserNo != 27460)
|
||||
if (SUserInfo.UserNo != 27460 && SUserInfo.UserNo != 31049 && SUserInfo.UserNo != 110 && SUserInfo.UserNo != 163)
|
||||
{
|
||||
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll", ht);
|
||||
}
|
||||
else
|
||||
{
|
||||
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll2", ht);
|
||||
}
|
||||
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
|
|
@ -817,6 +815,30 @@ namespace NP.BO.Controllers
|
|||
vm.Lects,
|
||||
"성적처리전체" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, ",2,4", vm.excellog);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll2", ht);
|
||||
|
||||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "순번","결제번호", "사용자ID", "이름","주민번호","교육생연락처","교육유형","교육구분"
|
||||
, "기술인분류", "직무분야","교육목적","등급", "교육시작일", "교육종료일", "과정명","수료번호","교육이수시간"
|
||||
, "진도율", "평가점수", "과제점수", "총점", "온라인집체교육출석여부", "강의평가"
|
||||
,"업체명","업체주소","사업자등록번호","고용보험관리번호","업태","종목","대표자","학력","직위","업체담당자","업체담당자 연락처"
|
||||
,"교육비","환급여부","환급액","환급은행명","환급계좌","환급계좌예금주","계산서이메일","소속협회"
|
||||
,"교육상위분류","교육하위분류","교육장소","교육연도", "수료여부"},
|
||||
new String[] { "rno","payno", "userid", "username","userpno", "mobile","cshapename","edukind"
|
||||
, "typemanname","typejobname","typeeduname","typegradename", "sdatestr", "edatestr", "cname","completeno","studytime"
|
||||
, "attrate", "exfpoint", "subjectpoint", "tpointstr", "isoffabsstr", "rsCount"
|
||||
,"asname","addr","brno","eino","btype","bkind","ceoname","slevelName","uduty","mname","mphone"
|
||||
,"payamt","isrebatename","rbankamt","rbank","rbankaccnum","rbankuser","taxemail","association"
|
||||
,"pcgname","cgname","studyplacename","tyear", "iscompletename" },
|
||||
vm.Lects,
|
||||
"성적처리전체" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, ",2,4", vm.excellog);
|
||||
}
|
||||
}
|
||||
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
|||
|
|
@ -37,7 +37,17 @@
|
|||
@*<li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="gotab(5);" data-toggle="tab">토론</a></li>*@
|
||||
}
|
||||
</ul>
|
||||
@Html.Partial("grade" + (Model.tabidx==2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)
|
||||
@*Html.Partial("grade" + (Model.tabidx==2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)*@
|
||||
@{
|
||||
string callpage = "grade" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx);
|
||||
List<int> usernos = new List<int>() { 27460, 31049, 110, 163 };
|
||||
if(usernos.Contains(ViewBag.userno) && Model.tabidx == 0)
|
||||
{
|
||||
callpage += "_1";
|
||||
}
|
||||
}
|
||||
@Html.Partial(callpage, Model)
|
||||
|
||||
<form id="dform" method="post" action="/croom/grades">@Html.Partial("./Partial/DForm", Model, new ViewDataDictionary { { "preform", 1 } })</form>
|
||||
@section styles{
|
||||
<style type="text/css">
|
||||
|
|
|
|||
|
|
@ -145,53 +145,47 @@
|
|||
{
|
||||
if (d.iscomplete != 1)
|
||||
{
|
||||
<td class="link text-center">[1] <a href="#" onclick="javascript: openScd(@Model.CM.cmno,@d.lectno,@d.cmisno);">@d.eend.ToShortDateString()</a></td>
|
||||
<td class="link text-center"><a href="#" onclick="javascript: openScd(@Model.CM.cmno,@d.lectno,@d.cmisno);">@d.eend.ToShortDateString()</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>[2] @d.eend.ToShortDateString()</td>
|
||||
<td>@d.eend.ToShortDateString()</td>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>[3] @d.edate.Value.ToShortDateString()</td>
|
||||
<td>@d.edate.Value.ToShortDateString()</td>
|
||||
}
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="link text-center">[4] <a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td>
|
||||
<td class="link text-center"><a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="link text-center">[5] @d.attrate %</td>
|
||||
<td class="link text-center">@d.attrate %</td>
|
||||
}
|
||||
@*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@
|
||||
<td>[6] @(d.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
|
||||
<td>[7] @(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
|
||||
<td style="display:none;">[8] @( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>
|
||||
<td>
|
||||
[9] @(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())
|
||||
// @(d.apoint) @(d.mpoint) @(d.fpoint) @(d.spoint) @(d.dpoint)
|
||||
</td>
|
||||
<td>@(d.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
|
||||
<td>@(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
|
||||
<td style="display:none;">@( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>
|
||||
<td>@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())</td>
|
||||
@*<td>@((d.isrebate == 1 && Model.CMEV.midrfd < 1) || (d.isrebate == 0 && Model.CMEV.mid < 1) ? "-" : d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>
|
||||
<td>@((d.isrebate == 1 && Model.CMEV.finalrfd < 1) || (d.isrebate == 0 && Model.CMEV.final < 1) ? "-" : d.ex1cnt < 1 ? "-" : d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
|
||||
<td>@((d.isrebate == 1 && Model.CMEV.subjectrfd < 1) || (d.isrebate == 0 && Model.CMEV.subject < 1) ? "-" : d.sd0cnt < 1 ? "-" : d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
|
||||
<td>@((d.isrebate == 1 && Model.CMEV.discussrfd < 1) || (d.isrebate == 0 && Model.CMEV.discuss < 1) ? "-" : d.sd1cnt < 1 ? "-" : d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>*@
|
||||
@if (Model.CMEV.isoffabs == 1)
|
||||
{
|
||||
<td class="link text-center">[10] <a href="#" onclick="save4();">@d.istatusname</a></td>
|
||||
<td class="link text-center"><a href="#" onclick="save4();">@d.istatusname</a></td>
|
||||
}
|
||||
<td>
|
||||
[11] @(d.rs0cnt == 0 ? 0 : 1) / @(d.rs0cnt == 0 ? 0 :(d.rs0cnt/ d.rs0cnt))
|
||||
|
|
||||
@(d.rs0lectcnt) / @(d.rs0cnt)
|
||||
</td>
|
||||
@*<td>@(d.rs0lectcnt) / @(d.rs0cnt)</td>*@
|
||||
<td>@(d.rs0lectcnt > 0 ? 1 : 0) / @(d.rs0cnt > 0 ? 1 : 0)</td>
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">[12] @Html.Raw(d.iscomplete == 1 ? string.Format("<a href=\"#\" onclick=\"viewcert({0})\">{1}</a>", d.lectno, "수료") : d.iscompletename)</td>
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("<a href=\"#\" onclick=\"viewcert({0})\">{1}</a>", d.lectno, "수료") : d.iscompletename)</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">[13] @Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
|
||||
}
|
||||
@*<td><a style="@(d.iscomplete == 1 ? "":"display:none;")" href="#" class="btn btn-select btn-xxs" onclick="changecompt('@(d.completetime != null ? d.completetime.Value.ToString("yyyy-MM-dd") : "0001-01-01")','@d.username','@d.userid',@d.lectno,'@d.cshape')">변경</a></td>*@
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,476 @@
|
|||
@model NP.Model.VMLect
|
||||
@{
|
||||
var ev = Model.Lects.FirstOrDefault() ?? new NP.Model.Lect() { };
|
||||
}
|
||||
<form id="mform" method="post">
|
||||
@if (Model.CMEV.isoffabs == 1)
|
||||
{
|
||||
<span style="padding:10px; font-weight:700; color:red;">집합교육 출석 필수강좌입니다.</span>
|
||||
}
|
||||
<section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;">
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 평가기준 및 비율<span class=""></span></strong></header>
|
||||
<table class="table table-striped b-t b-light no-odd">
|
||||
<colgroup><col style="width: 80px;display:none;" /><col style="width: 100px;" /><col /><col /><col /><col /><col /><col /><col /></colgroup>
|
||||
<thead>
|
||||
<tr><th style="display:none;">기준</th><th>평가항목</th><th>진도율</th>@*<th>진행평가(%)</th>*@<th>최종평가(%)</th><th>과제(%)</th><th style="display:none;">토론(%)</th><th style="display:none;">기타(%)</th><th>합계(총점)</th></tr>
|
||||
</thead>
|
||||
@if (Model.CM.isrefund == 1)
|
||||
{
|
||||
<tr>
|
||||
<th rowspan="2" style="display:none;">환급</th>
|
||||
<th>비율(점수)</th>
|
||||
<td>@Model.CMEV.attendrfd</td>
|
||||
@*<td>@Model.CMEV.midrfd</td>*@
|
||||
<td>@Model.CMEV.finalrfd</td>
|
||||
<td>@Model.CMEV.subjectrfd</td>
|
||||
<td style="display:none;">@Model.CMEV.discussrfd</td>
|
||||
<td style="display:none;">@Model.CMEV.etcrfd</td>
|
||||
<td>@(Model.CMEV.attendrfd + Model.CMEV.midrfd + Model.CMEV.finalrfd + Model.CMEV.subjectrfd + Model.CMEV.discussrfd + Model.CMEV.etcrfd)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>수료기준</th>
|
||||
<td>@Model.CMEV.attendcutrfd</td>
|
||||
@*<td>@Model.CMEV.midcutrfd</td>*@
|
||||
<td>@Model.CMEV.finalcutrfd</td>
|
||||
<td>@Model.CMEV.subjectcutrfd</td>
|
||||
<td style="display:none;">@Model.CMEV.discusscutrfd</td>
|
||||
<td style="display:none;">@Model.CMEV.etccutrfd</td>
|
||||
<td>@Model.CMEV.cutrfd</td>
|
||||
</tr>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
<tr>
|
||||
<th rowspan="2" style="display:none;">비환급</th>
|
||||
<th>비율(점수)</th>
|
||||
<td>@Model.CMEV.attend</td>
|
||||
@*<td>@Model.CMEV.mid</td>*@
|
||||
<td>@Model.CMEV.final</td>
|
||||
<td>@Model.CMEV.subject</td>
|
||||
<td style="display:none;">@Model.CMEV.discuss</td>
|
||||
<td style="display:none;">@Model.CMEV.etc</td>
|
||||
<td>@(Model.CMEV.attend + Model.CMEV.mid + Model.CMEV.final + Model.CMEV.subject + Model.CMEV.discuss + Model.CMEV.etc )</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>수료기준</th>
|
||||
<td>@Model.CMEV.attendcut</td>
|
||||
@*<td>@Model.CMEV.midcut</td>*@
|
||||
<td>@Model.CMEV.finalcut</td>
|
||||
<td>@Model.CMEV.subjectcut</td>
|
||||
<td style="display:none;">@Model.CMEV.discusscut</td>
|
||||
<td style="display:none;">@Model.CMEV.etccut</td>
|
||||
<td>@Model.CMEV.cut</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</section>
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 교육생 평가현황<span class=""></span></strong></header>
|
||||
<div class="step-content">
|
||||
<div class="step-pane active form-inline">
|
||||
@if (Model.CMEV.cshape != 1)
|
||||
{
|
||||
@Html.Partial("./Partial/Select", Model.CMinningscds, new ViewDataDictionary { { "special", "reg" }, { "name", "addstringval3" }, { "selected", Model.addstringval3 }, { "df", ":교육일정" }, { "onchange", "findme()" } })
|
||||
}
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":수료여부;1:수료;0:미수료" }, { "name", "addstringval2" }, { "selected", Model.addstringval2 }, { "onchange", "findme()" } })
|
||||
<label><input type="checkbox" name="addstringval4" value="1" @(Model.addstringval4 == "1" ? "checked" : "") onchange="findme()" /> 과제제출완료</label>
|
||||
<label><input type="checkbox" name="addstringval5" value="1" @(Model.addstringval5 == "1" ? "checked" : "") onchange="findme()" /> 진도율조건충족</label>
|
||||
<label><input type="checkbox" name="addstringval6" value="1" @(Model.addstringval6 == "1" ? "checked" : "") onchange="findme()" /> 시험기준충족</label>
|
||||
@Html.Partial("./Partial/Text", Model.addstringval7, Helpers.DicText(new NP.Model.TextDic() { Name = "addstringval7", Value = Model.addstringval7, PH = "ID 또는 이름을 입력하세요.", CssClass = "ff" }))
|
||||
<button class="btn btn-default btn-s-xs" type="button" onclick="javascript:findme();"><i class="fa fa-search"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding: 5px 10px; text-align: right;">
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":전체;1:환급;0:비환급" }, { "name", "addstringval" }, { "selected", Model.addstringval }, { "style", "position: absolute; left: 0; margin-left: 50px;" + (Model.CM.isrefund == 1 ? "" : "display:none;") }, { "onchange", "findme()" } })
|
||||
@Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;1" : "0;0") + ";1;1;0;평가안내")
|
||||
|
||||
@if (Model.IsAdmin)
|
||||
{
|
||||
<a href="#" class="btn btn-primary" onclick="save();">수료확인</a>
|
||||
if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<a href="#" class="btn btn-danger" onclick="save2();">수료처리</a>
|
||||
<a href="#" class="btn btn-danger" onclick="save3();">수료취소</a>
|
||||
}
|
||||
}
|
||||
|
||||
<a href="#" class="btn btn-default" onclick="golist();">목록</a>
|
||||
</div>
|
||||
<div class="table-responsive" id="excel1">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
|
||||
<th width="20">No</th>
|
||||
@if (Model.CMEV.cshape == 2)
|
||||
{
|
||||
<th width="30">운영기수</th>
|
||||
}
|
||||
<th>구분</th>
|
||||
<th>고객사</th>
|
||||
<th>교육생(ID)</th>
|
||||
<th>교육시작일</th>
|
||||
<th>교육종료일</th>
|
||||
<th>진도율</th>
|
||||
@*<th>진행평가(@ev.ex0cnt)</th>*@
|
||||
<th>최종평가(@ev.ex1cnt)</th>
|
||||
<th>과제(@ev.sd0cnt)</th>
|
||||
<th style="display:none;">토론(@ev.sd1cnt)</th>
|
||||
<th>환산점수</th>
|
||||
@if (Model.CMEV.isoffabs == 1)
|
||||
{
|
||||
<th>집합교육출석여부</th>
|
||||
}
|
||||
<th>강의평가</th>
|
||||
<th>수료여부</th>
|
||||
@*<th>수료일변경</th>*@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="data" id="tbody1">
|
||||
@{
|
||||
foreach (var d in Model.Lects)
|
||||
{
|
||||
<tr>
|
||||
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td>
|
||||
<td>@d.rnorvt</td>
|
||||
@if (Model.CMEV.cshape == 2)
|
||||
{
|
||||
<td>@d.sseq</td>
|
||||
}
|
||||
<td>@d.isrebatename</td>
|
||||
<td>@d.asname</td>
|
||||
<td>@d.usernameid</td>
|
||||
<td>@((Model.CM.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
|
||||
@if (Model.CMEV.cshape == 2)
|
||||
{
|
||||
if (d.iscomplete != 1)
|
||||
{
|
||||
<td class="link text-center">[1] <a href="#" onclick="javascript: openScd(@Model.CM.cmno,@d.lectno,@d.cmisno);">@d.eend.ToShortDateString()</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>[2] @d.eend.ToShortDateString()</td>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>[3] @d.edate.Value.ToShortDateString()</td>
|
||||
}
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="link text-center">[4] <a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="link text-center">[5] @d.attrate %</td>
|
||||
}
|
||||
@*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@
|
||||
<td>[6] @d.exfpoint</td>
|
||||
<td>[7] @d.subjectpoint</td>
|
||||
<td style="display:none;">[8] @( d.sd1cnt < 1 ? "-" : d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>
|
||||
<td>
|
||||
[9] @d.tpoint
|
||||
<input type="hidden" id="tpointList" value="(a:@d.apoint / m:@d.mpoint / f:@d.fpoint / s:@d.spoint / d:@d.dpoint)">
|
||||
</td>
|
||||
@*<td>@((d.isrebate == 1 && Model.CMEV.midrfd < 1) || (d.isrebate == 0 && Model.CMEV.mid < 1) ? "-" : d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>
|
||||
<td>@((d.isrebate == 1 && Model.CMEV.finalrfd < 1) || (d.isrebate == 0 && Model.CMEV.final < 1) ? "-" : d.ex1cnt < 1 ? "-" : d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
|
||||
<td>@((d.isrebate == 1 && Model.CMEV.subjectrfd < 1) || (d.isrebate == 0 && Model.CMEV.subject < 1) ? "-" : d.sd0cnt < 1 ? "-" : d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
|
||||
<td>@((d.isrebate == 1 && Model.CMEV.discussrfd < 1) || (d.isrebate == 0 && Model.CMEV.discuss < 1) ? "-" : d.sd1cnt < 1 ? "-" : d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>*@
|
||||
@if (Model.CMEV.isoffabs == 1)
|
||||
{
|
||||
<td class="link text-center">[10] <a href="#" onclick="save4();">@d.istatusname</a></td>
|
||||
}
|
||||
<td>
|
||||
[11] @d.rsCount
|
||||
|
|
||||
@(d.rs0lectcnt) / @(d.rs0cnt)
|
||||
</td>
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">[12] @Html.Raw(d.iscomplete == 1 ? string.Format("<a href=\"#\" onclick=\"viewcert({0})\">{1}</a>", d.lectno, "수료") : d.iscompletename)</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">[13] @Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
|
||||
}
|
||||
@*<td><a style="@(d.iscomplete == 1 ? "":"display:none;")" href="#" class="btn btn-select btn-xxs" onclick="changecompt('@(d.completetime != null ? d.completetime.Value.ToString("yyyy-MM-dd") : "0001-01-01")','@d.username','@d.userid',@d.lectno,'@d.cshape')">변경</a></td>*@
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@Html.Partial("./Partial/dform", Model)
|
||||
</form>
|
||||
<div id="thisbox" class="findbox draggable regbox" style="width: 600px; z-index: 1041; top: 30%; left:30%; overflow: auto;">
|
||||
<h4><i class="fa fa-bars"></i> <span id="pcap">교육생 정보</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
||||
<table class="regtable">
|
||||
<colgroup><col style="width:150px;" /><col /></colgroup>
|
||||
<tr><th>이름(ID)</th><td id="usernameid"></td></tr>
|
||||
<tr><th id="thcshape">수료일자/교육종료일</th><td>@Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "completetime" } })</td></tr>
|
||||
</table>
|
||||
<div class="findboxbtnbox" id="btnsavelect">
|
||||
<a href="#" class="btn btn-primary" onclick="change();">저장</a>
|
||||
</div>
|
||||
<br /><br />
|
||||
</div>
|
||||
<div id="scdbox" class="findbox draggable regbox" style="width: 400px; z-index: 1041; top: 60px; overflow: auto;">
|
||||
<h4><i class="fa fa-bars"></i> <span id="pcap">교육일정변경</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
||||
<ul id="ulScd"></ul>
|
||||
<div class="findboxbtnbox" id="btnsavelect">
|
||||
<a href="#" class="btn btn-primary" onclick="updateScd();">선택완료</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="thisbox2" class="findbox draggable regbox" style="width: 800px; z-index: 1041; top: 60px; bottom: 30px; overflow: auto;">
|
||||
<h4><i class="fa fa-bars"></i> <span id="pcap">OFF출결관리</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
||||
<br />
|
||||
<table class="regtable">
|
||||
<colgroup><col width="100"/><col/></colgroup>
|
||||
<tr style="display:none;">
|
||||
<th>회차선택</th>
|
||||
<td>
|
||||
<select id="cmino" class="form-control" onchange="getoff()">
|
||||
<option value="">-회차선택</option>
|
||||
@foreach (var d in Model.CMInnings)
|
||||
{
|
||||
if (Model.CM.cshape == 2)
|
||||
{
|
||||
<option value="@d.cmino">@string.Format("{0}.{1}", d.iseq, d.ititle)</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option value="@d.cmino">@string.Format("{0}.{1}({2} {3}:{4}~{5}:{6})", d.iseq, d.ititle, d.idate.ToString("yy-MM-dd"), d.ist.Substring(0, 2), d.ist.Substring(2, 2), d.iet.Substring(0, 2), d.iet.Substring(2, 2))</option>
|
||||
}
|
||||
}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>근거자료</th>
|
||||
<td id="tdfile"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<select id="cmisno" class="form-control" onchange="getoff()">
|
||||
<option value="">신청교육일</option>
|
||||
@foreach(var d in Model.CMinningscds)
|
||||
{
|
||||
<option value="@d.cmisno">@d.estart.ToString("yyyy-MM-dd")</option>
|
||||
}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<section class="panel panel-default">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<colgroup><col width="50" /><col /><col /><col /><col /><col /><col /><col /></colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>고객사</th>
|
||||
<th>교육생(ID)</th>
|
||||
<th>입실</th>
|
||||
<th>퇴실</th>
|
||||
<th>미입력 <input type="radio" name="attradio" onchange="changeatt('-1')" /></th>
|
||||
<th>출석 <input type="radio" name="attradio" onchange="changeatt('2')" /></th>
|
||||
<th>결석 <input type="radio" name="attradio" onchange="changeatt('0')" /></th>
|
||||
<th>최근수정일 {ID}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbodyoff"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
<div class="findboxbtnbox">
|
||||
<a href="#" class="btn btn-primary" onclick="saveatt();">저장</a>
|
||||
</div>
|
||||
<br /><br />
|
||||
</div>
|
||||
<script>
|
||||
|
||||
var _no = 0;
|
||||
function viewatt(no) {
|
||||
_no = no;
|
||||
showramemainlayer("/croom/atts?longval=" + no);
|
||||
}
|
||||
function childsaved() {
|
||||
//showramemainlayer("/croom/atts?longval=" + _no + "&IsSavedForParent=1");
|
||||
$("#mainlayerframe")[0].contentWindow.location.replace("/croom/atts?longval=" + _no + "&IsSavedForParent=1");
|
||||
}
|
||||
function findme() {
|
||||
bglayer(); submit();
|
||||
}
|
||||
function save() {
|
||||
var lectnos = "";
|
||||
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
|
||||
lectnos += "," + $(this).val();
|
||||
});
|
||||
if (lectnos == "") {
|
||||
msg("수료처리할 대상자를 선택해주세요.");
|
||||
} else if (confirm("선택한 대상자를 수료처리하시겠습니까?")) {
|
||||
capp("/acommon/lectcomplete", { cmno: @Model.CM.cmno, lectnos: lectnos.substr(1), type: 'calc' }, "cbsave");
|
||||
}
|
||||
}
|
||||
function cbsave() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf(capResult.obj.completecount + "건을 수료, " + capResult.obj.cancelcount + "건을 미수료 처리했습니다.", "submit('mform', 0, true)");
|
||||
} else {
|
||||
msgdev();
|
||||
}
|
||||
}
|
||||
function save2() {
|
||||
var lectnos = "";
|
||||
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
|
||||
lectnos += "," + $(this).val();
|
||||
});
|
||||
if (lectnos == "") {
|
||||
msg("강제수료처리할 대상자를 선택해주세요.");
|
||||
} else if (confirm("선택한 대상자를 강제 수료처리하시겠습니까?")) {
|
||||
capp("/acommon/lectcomplete", { cmno: @Model.CM.cmno,lectnos: lectnos.substr(1), type: 'abs' }, "cbsave2");
|
||||
}
|
||||
}
|
||||
function cbsave2() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf(capResult.obj + "건을 강제 수료 처리했습니다.", "submit('mform', 0, true)");
|
||||
} else {
|
||||
msgdev();
|
||||
}
|
||||
}
|
||||
function save3() {
|
||||
var lectnos = "";
|
||||
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
|
||||
lectnos += "," + $(this).val();
|
||||
});
|
||||
if (lectnos == "") {
|
||||
msg("강제수료취소할 대상자를 선택해주세요.");
|
||||
} else if (confirm("선택한 대상자를 강제 수료취소하시겠습니까?")) {
|
||||
capp("/acommon/lectcompletecancel", { cmno: @Model.CM.cmno,lectnos: lectnos.substr(1) }, "cbsave3");
|
||||
}
|
||||
}
|
||||
function cbsave3() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf(capResult.obj.cancelcount + "건을 강제 수료 취소했습니다.", "submit('mform', 0, true)");
|
||||
} else {
|
||||
msgdev();
|
||||
}
|
||||
}
|
||||
var _authtype = 1;
|
||||
var _lectno;
|
||||
function viewcert(lectno) {
|
||||
_lectno = lectno;
|
||||
capp("/acommon/authkey", { authtype: _authtype, jobkey: lectno }, "cbauthkey");
|
||||
}
|
||||
function cbauthkey() {
|
||||
if (capResult.code == 1000) {
|
||||
@*var pop = window.open('@ViewBag.fronturl/Open/CertPrint?userno=@ViewBag.SSUserNo&authtype=' + _authtype + '&randkey=' + capResult.obj, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");*@
|
||||
var pop = window.open('@ViewBag.reporturl/certification.aspx?lectno='+_lectno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
|
||||
if (pop == null) {
|
||||
msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
|
||||
}
|
||||
}
|
||||
}
|
||||
var _lectno;
|
||||
var _cshape;
|
||||
function changecompt(time, username, userid, lectno, cshape) {
|
||||
_lectno = lectno;
|
||||
_cshape = cshape;
|
||||
if (cshape == 1) { $("#thcshape").text("교육종료일"); }
|
||||
else { $("#thcshape").text("수료일자"); }
|
||||
$("#usernameid").text(username + "(" + userid + ")");
|
||||
$("#completetime").val(time);
|
||||
bglayer();
|
||||
$("#thisbox").slideDown("fast");
|
||||
}
|
||||
function change() {
|
||||
if ($("#completetime").val == null) {
|
||||
msg2("수료일자를 입력한 후 저장해주세요.");
|
||||
} else if (confirm("수료일자를 수정하시겠습니까?")) {
|
||||
capp("/acommon/lecttimechange", { lectno: _lectno, completetime: $("#completetime").val(), cshape: _cshape }, "cblecttimechange", null, null, null, true);
|
||||
}
|
||||
}
|
||||
function cblecttimechange() {
|
||||
if (capResult.code == 1000) {
|
||||
msg2("수료일자를 변경했습니다.", null, null, null, true);
|
||||
submit("mform", 500, true);
|
||||
} else { msgadmin2(); }
|
||||
}
|
||||
function save4() {
|
||||
bglayer(); $("#thisbox2").slideDown("fast", function () { $("#thisbox2").scrollTop(0); });
|
||||
if ($("#cmino option").length > 1) {
|
||||
setv("cmino", $("#cmino option:eq(1)").val());
|
||||
//setv("cmisno", $("#cmisno option:eq(1)").val());
|
||||
getoff();
|
||||
}
|
||||
}
|
||||
function getoff() {
|
||||
$("#tdfile").html("");
|
||||
$("#tbodyoff tr").remove();
|
||||
$("input[name='attradio']:checked").prop("checked", false);
|
||||
if ($("#cmino").val() != "" || $("#cmisno").val() != "") {
|
||||
capp("/acommon/cminninggetforoff", { cmino: val("cmino"), cmisno: val("cmisno") }, "cbcmiget", null, null, null, true);
|
||||
}
|
||||
}
|
||||
function cbcmiget() {
|
||||
var ci = capResult.obj.ci;
|
||||
setv("fgnooff", getdb(ci.fgnooff));
|
||||
_fgno = ci.fgnooff;
|
||||
if (ci.fileno3 > 0) {
|
||||
$("#tdfile").html("<div class=\"fileitembox\"><a href=\"/aCommon/DownFile?fno=" + ci.fileno3 + "\" title=\"다운로드\"><i class=\"fa fa-paperclip\"></i> <span class=\"fileitem\">" + ci.orgname3 + "</span></a> " +
|
||||
"<a href=\"#\" class=\"btn_txt btn btn-xxs btn-danger\" onclick=\"javascript:fnFileDeleteNew(" + ci.fileno3 + ", this, '', true, 'cbthisfiledel()');\" title=\"삭제\">삭제</a></div>");
|
||||
}
|
||||
else {
|
||||
$("#tdfile").html("<input type=\"file\" id=\"file2\" name=\"file2\" />");
|
||||
}
|
||||
$.each(capResult.obj.li, function (i, d) {
|
||||
$("#tbodyoff").append("<tr data-no=\"" + d.lectno + "\" data-attorg=\"" + getdb(d.istatus) + "\">" +
|
||||
"<td>" + d.rnorvt + "</td>" +
|
||||
"<td>" + getdb(d.asname) + "</td>" +
|
||||
"<td>" + getdb(d.username) + "(" + getdb(d.userid) + ")" + "</td>" +
|
||||
"<td>" + d.stimehm + "</td>" +
|
||||
"<td>" + d.etimehm + "</td>" +
|
||||
"<td><input type=\"radio\" class=\"att att-1\" name=\"istatus" + d.lectno + "\" " + (isnull(d.istatus) ? "checked" : "") + " value=\"\" /></td>" +
|
||||
"<td><input type=\"radio\" class=\"att att2\" name=\"istatus" + d.lectno + "\" " + (getdb(d.istatus) == "2" ? "checked" : "") + " value=\"2\" /></td>" +
|
||||
"<td><input type=\"radio\" class=\"att att0\" name=\"istatus" + d.lectno + "\" " + (!isnull(d.istatus) && getdb(d.istatus) == "" || getdb(d.istatus) == "1" ? "checked" : "") + " value=\"0\" /></td>"+
|
||||
"<td>" + d.udtymdhm +" {"+d.unoid+"} </td ></tr > ");
|
||||
|
||||
});
|
||||
}
|
||||
function changeatt(idx) {
|
||||
$("input.att" + idx).prop("checked", true);
|
||||
}
|
||||
function saveatt() {
|
||||
if (val("cmino") == "") { focus("cmino"); msg2("회차를 선택해주세요."); }
|
||||
else if ($("#tbodyoff tr").length < 1) { msg2("저장할 출석데이터가 없습니다."); }
|
||||
else if (confirm("출석데이터를 저장하시겠습니까?")) {
|
||||
var data = new FormData();
|
||||
data.append("cmino", val("cmino"));
|
||||
if ($("#file2").length > 0 && $("#file2")[0].files.length > 0) {
|
||||
data.append("file2", $("#file2")[0].files[0]);
|
||||
}
|
||||
var lis = "";
|
||||
$.each($("#tbodyoff tr"), function (i, r) {
|
||||
//if ($(r).find("input.att:checked").val() != $(r).attr("data-attorg")) {
|
||||
lis += ";" + $(r).attr("data-no") + ":" + $(r).find("input.att:checked").val();
|
||||
//}
|
||||
});
|
||||
//if (lis == "") {
|
||||
// msg2("저장했습니다.");
|
||||
//} else {
|
||||
data.append("lis", lis.substr(1));
|
||||
data.append("fgnooff", _fgno);
|
||||
capfile("/acommon/offattsave", data, "cboffattsave", false, null, true, true);
|
||||
//}
|
||||
}
|
||||
}
|
||||
function cboffattsave() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf2("저장했습니다.", "submit('mform', 0, true)");
|
||||
} else { msgdev(true); }
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
@ -108,7 +108,18 @@
|
|||
|
||||
}
|
||||
</ul>
|
||||
@Html.Partial("gradeall" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)
|
||||
@*Html.Partial("gradeall" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)*@
|
||||
|
||||
@{
|
||||
string callpage = "gradeall" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx);
|
||||
List<int> usernos = new List<int>() { 27460, 31049, 110, 163 };
|
||||
if (usernos.Contains(ViewBag.userno) && Model.tabidx == 0)
|
||||
{
|
||||
callpage += "_1";
|
||||
}
|
||||
}
|
||||
@Html.Partial(callpage, Model)
|
||||
|
||||
</form>
|
||||
@section styles{
|
||||
<style type="text/css">
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@
|
|||
{
|
||||
<td>@d.edate.Value.ToShortDateString()</td>
|
||||
}
|
||||
|
||||
@*진도율*@
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="link text-center"><a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td>
|
||||
|
|
@ -93,10 +95,21 @@
|
|||
<td class="link text-center">@d.attrate %</td>
|
||||
}
|
||||
@*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@
|
||||
|
||||
@*최종평가*@
|
||||
<td>@(d.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
|
||||
|
||||
@*과제*@
|
||||
<td>@(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
|
||||
|
||||
@*토론*@
|
||||
<td style="display:none;">@( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>
|
||||
<td>@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())</td>
|
||||
|
||||
@*환산점수*@
|
||||
<td>
|
||||
@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())
|
||||
<input type="hidden" id="tpointList" value="(a:@d.apoint / m:@d.mpoint / f:@d.fpoint / s:@d.spoint / d:@d.dpoint)">
|
||||
</td>
|
||||
@if (d.isoffabs == 1)
|
||||
{
|
||||
<td class="link text-center"><a href="#" onclick="save4(@d.cmno,@d.lectno);">@d.istatusname</a></td>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,384 @@
|
|||
@model NP.Model.VMLect
|
||||
@{
|
||||
}
|
||||
<form id="mform2" method="post" action="/croom/gradeall">
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 교육생 평가현황<span class=""></span></strong></header>
|
||||
<div style="padding: 5px 10px; text-align: right;">
|
||||
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
|
||||
@Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;1" : "0;0") + ";1;1;0;평가안내")
|
||||
@*<a href="#" onclick="javascript:exceldown('mform', '/croom/gradeall', 'tbody1', '성적처리전체');" class="btn btn-s-xs btn-success" style="margin-left: 5px;">엑셀다운로드</a>*@
|
||||
<a href="#" onclick="javascript:callComment('mform', '/croom/gradeall', 'tbody1', '성적처리전체');" class="btn btn-s-xs btn-success" style="margin-left: 5px;">엑셀다운로드</a>
|
||||
@if (Model.IsAdmin)
|
||||
{
|
||||
<a href="#" class="btn btn-primary" onclick="save();">수료확인</a>
|
||||
if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<a href="#" class="btn btn-danger" onclick="save2();">수료처리</a>
|
||||
<a href="#" class="btn btn-danger" onclick="save3();">수료취소</a>
|
||||
}
|
||||
}
|
||||
|
||||
</div>
|
||||
<div class="table-responsive" id="excel1">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
|
||||
<th width="20">No</th>
|
||||
<th width="30">운영기수</th>
|
||||
<th>구분</th>
|
||||
<th>고객사</th>
|
||||
<th>교육장</th>
|
||||
<th>과정명</th>
|
||||
<th>교육생</th>
|
||||
<th>ID</th>
|
||||
<th>핸드폰</th>
|
||||
<th>교육시작일</th>
|
||||
<th>교육종료일</th>
|
||||
<th>진도율</th>
|
||||
@*<th>진행평가</th>*@
|
||||
<th>최종평가</th>
|
||||
<th>과제</th>
|
||||
<th style="display:none;">토론</th>
|
||||
<th>환산점수</th>
|
||||
<th>집합교육출석여부</th>
|
||||
<th>강의평가</th>
|
||||
<th>수료여부</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="data" id="tbody1">
|
||||
@foreach (var d in Model.Lects)
|
||||
{
|
||||
<tr>
|
||||
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td>
|
||||
<td>@d.rnorvt</td>
|
||||
@if (d.cshape == 2)
|
||||
{
|
||||
<td>@d.sseq</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>-</td>
|
||||
}
|
||||
<td>@d.isrebatename</td>
|
||||
<td>@d.asname</td>
|
||||
<td>@d.studyplacename</td>
|
||||
<td>@d.cname</td>
|
||||
<td>@d.username</td>
|
||||
<td>@d.userid</td>
|
||||
<td>@d.mobile</td>
|
||||
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
|
||||
@if (d.cshape > 0)
|
||||
{
|
||||
if (d.iscomplete != 1)
|
||||
{
|
||||
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno,@d.cshape);">@d.eend.ToShortDateString()</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>@d.eend.ToShortDateString()</td>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>@d.edate.Value.ToShortDateString()</td>
|
||||
}
|
||||
|
||||
@*진도율*@
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="link text-center"><a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="link text-center">@d.attrate %</td>
|
||||
}
|
||||
|
||||
@*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@
|
||||
|
||||
@*최종평가*@
|
||||
<td>@(d.exfpoint)</td>
|
||||
|
||||
@*과제*@
|
||||
<td>@d.subjectpoint</td>
|
||||
|
||||
@*토론*@
|
||||
<td style="display:none;">@( d.sd1cnt < 1 ? "-" : d.sd1cnt > 0 && d.dblv4 < 1 ? "미제출//" : d.dblv4.ToString())</td>
|
||||
|
||||
@*환산점수*@
|
||||
<td>
|
||||
@d.tpoint
|
||||
<input type="hidden" id="tpointList" value="(a:@d.apoint / m:@d.mpoint / f:@d.fpoint / s:@d.spoint / d:@d.dpoint)">
|
||||
</td>
|
||||
|
||||
@if (d.isoffabs == 1)
|
||||
{
|
||||
<td class="link text-center"><a href="#" onclick="save4(@d.cmno,@d.lectno);">@d.istatusname</a></td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="text-center">-</td>
|
||||
}
|
||||
@*<td>@(d.rs0lectcnt) / @(d.rs0cnt)</td>*@
|
||||
<td>@d.rsCount</td>
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
{
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("<a href=\"#\" onclick=\"viewcert({0})\">{1}</a>", d.lectno, "수료") : d.iscompletename)</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
|
||||
}
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
|
||||
</section>
|
||||
</form>
|
||||
@Html.Partial("./Partial/ExcelCommentBox")
|
||||
<div id="scdbox" class="findbox draggable regbox" style="width: 400px; z-index: 1041; top: 60px; overflow: auto;">
|
||||
<h4><i class="fa fa-bars"></i> <span id="pcap">교육일정변경</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
||||
<ul id="ulScd"></ul>
|
||||
<div class="findboxbtnbox" id="btnsavelect">
|
||||
<a href="#" class="btn btn-primary" onclick="updateScd();">선택완료</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="thisbox2" class="findbox draggable regbox" style="width: 800px; z-index: 1041; top: 60px; bottom: 30px; overflow: auto;">
|
||||
<h4><i class="fa fa-bars"></i> <span id="pcap">OFF출결관리</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
||||
<br />
|
||||
<table class="regtable">
|
||||
<colgroup><col width="100" /><col /></colgroup>
|
||||
<tr style="display:none;">
|
||||
<th>회차선택</th>
|
||||
<td>
|
||||
<select id="cmino" class="form-control" onchange="getoff()">
|
||||
<option value="">-회차선택</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>근거자료</th>
|
||||
<td id="tdfile"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<select id="cmisno" class="form-control" onchange="getoff()">
|
||||
<option value="">신청교육일</option>
|
||||
@*@foreach(var d in Model.CMinningscds)
|
||||
{
|
||||
<option value="@d.cmisno">@d.estart.ToString("yyyy-MM-dd")</option>
|
||||
}*@
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<section class="panel panel-default">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<colgroup><col width="50" /><col /><col /><col /><col /><col /><col /><col /></colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>고객사</th>
|
||||
<th>교육생(ID)</th>
|
||||
<th>입실</th>
|
||||
<th>퇴실</th>
|
||||
<th>미입력 <input type="radio" name="attradio" onchange="changeatt('-1')" /></th>
|
||||
<th>출석 <input type="radio" name="attradio" onchange="changeatt('2')" /></th>
|
||||
<th>결석 <input type="radio" name="attradio" onchange="changeatt('0')" /></th>
|
||||
<th>최근수정일 {ID}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbodyoff"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
<div class="findboxbtnbox">
|
||||
<a href="#" class="btn btn-primary" onclick="saveatt();">저장</a>
|
||||
</div>
|
||||
<br /><br />
|
||||
</div>
|
||||
<script>
|
||||
|
||||
var _no = 0;
|
||||
function viewatt(no) {
|
||||
_no = no;
|
||||
showramemainlayer("/croom/atts?longval=" + no);
|
||||
}
|
||||
function save() {
|
||||
var lectnos = "";
|
||||
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
|
||||
lectnos += "," + $(this).val();
|
||||
});
|
||||
if (lectnos == "") {
|
||||
msg("수료처리할 대상자를 선택해주세요.");
|
||||
} else if (confirm("선택한 대상자를 수료처리하시겠습니까?")) {
|
||||
capp("/acommon/lectcomplete", { lectnos: lectnos.substr(1), type: 'calc' }, "cbsave");
|
||||
}
|
||||
}
|
||||
function cbsave() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf(capResult.obj.completecount + "건을 수료, " + capResult.obj.cancelcount + "건을 미수료 처리했습니다.", "submit('mform', 0, true)");
|
||||
} else {
|
||||
msgdev();
|
||||
}
|
||||
}
|
||||
function save2() {
|
||||
var lectnos = "";
|
||||
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
|
||||
lectnos += "," + $(this).val();
|
||||
});
|
||||
if (lectnos == "") {
|
||||
msg("강제수료처리할 대상자를 선택해주세요.");
|
||||
} else if (confirm("선택한 대상자를 강제 수료처리하시겠습니까?")) {
|
||||
capp("/acommon/lectcomplete", { lectnos: lectnos.substr(1), type: 'abs' }, "cbsave2");
|
||||
}
|
||||
}
|
||||
function cbsave2() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf(capResult.obj + "건을 강제 수료 처리했습니다.", "submit('mform', 0, true)");
|
||||
} else {
|
||||
msgdev();
|
||||
}
|
||||
}
|
||||
function save3() {
|
||||
var lectnos = "";
|
||||
$.each($("#tbody1 tr td input.autocheck:checked"), function () {
|
||||
lectnos += "," + $(this).val();
|
||||
});
|
||||
if (lectnos == "") {
|
||||
msg("강제수료취소할 대상자를 선택해주세요.");
|
||||
} else if (confirm("선택한 대상자를 강제 수료취소하시겠습니까?")) {
|
||||
capp("/acommon/lectcompletecancel", { lectnos: lectnos.substr(1) }, "cbsave3");
|
||||
}
|
||||
}
|
||||
function cbsave3() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf(capResult.obj.cancelcount + "건을 강제 수료 취소했습니다.", "submit('mform', 0, true)");
|
||||
} else {
|
||||
msgdev();
|
||||
}
|
||||
}
|
||||
|
||||
var _authtype = 1;
|
||||
var _lectno;
|
||||
function viewcert(lectno) {
|
||||
_lectno = lectno;
|
||||
capp("/acommon/authkey", { authtype: _authtype, jobkey: lectno }, "cbauthkey");
|
||||
}
|
||||
function cbauthkey() {
|
||||
if (capResult.code == 1000) {
|
||||
@*var pop = window.open('@ViewBag.fronturl/Open/CertPrint?userno=@ViewBag.SSUserNo&authtype=' + _authtype + '&randkey=' + capResult.obj, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");*@
|
||||
var pop = window.open('@ViewBag.reporturl/certification.aspx?lectno='+_lectno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
|
||||
if (pop == null) {
|
||||
msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var cmicmno;
|
||||
var cmilectno;
|
||||
function setcmis(){
|
||||
capp("/acommon/GetCmiForMixEdu", { cmno: cmicmno }, "renderCmi", null, null, null, true);
|
||||
}
|
||||
function renderCmi() {
|
||||
var cmi = capResult.obj.cmi;
|
||||
$("#cmino").children('option:not(:first)').remove();
|
||||
$("#cmisno").children('option:not(:first)').remove();
|
||||
$.each(capResult.obj.cmi, function (i, d) {
|
||||
if (d.cshape == 2) {
|
||||
$("#cmino").append("<option value='" + d.cmino + "'>" + d.iseq + "." + getdb(d.ititle) + "</option>");
|
||||
} else {
|
||||
$("#cmino").append("<option value='" + d.cmino + "'>" + d.iseq + "." + getdb(d.ititle) + "(" + getdb(d.idateymd2) + " "+ getdb(d.isthh)+":"+getdb(d.istmm)+"~"+getdb(d.iethh)+":"+getdb(d.ietmm)+")</option>");
|
||||
|
||||
}
|
||||
});
|
||||
var cmis = capResult.obj.cmis;
|
||||
$.each(capResult.obj.cmis, function (i,d) {
|
||||
$("#cmisno").append("<option value='" + d.cmisno + "'>" + d.estartShortDateString + "</option>");
|
||||
});
|
||||
if ($("#cmino option").length > 1) {
|
||||
setv("cmino", $("#cmino option:eq(1)").val());
|
||||
getoff();
|
||||
}
|
||||
}
|
||||
|
||||
function save4(cmno,lectno) {
|
||||
cmicmno = cmno;
|
||||
cmilectno = lectno;
|
||||
bglayer(); $("#thisbox2").slideDown("fast", function () { $("#thisbox2").scrollTop(0); });
|
||||
if (cmno != "" && cmno > 0) {
|
||||
setcmis();
|
||||
}
|
||||
}
|
||||
function getoff() {
|
||||
$("#tdfile").html("");
|
||||
$("#tbodyoff tr").remove();
|
||||
$("input[name='attradio']:checked").prop("checked", false);
|
||||
if ($("#cmino").val() != "" || $("#cmisno").val() != "") {
|
||||
capp("/acommon/cminninggetforoff", { cmino: val("cmino"), cmisno: val("cmisno") }, "cbcmiget", null, null, null, true);
|
||||
}
|
||||
}
|
||||
function cbcmiget() {
|
||||
var ci = capResult.obj.ci;
|
||||
setv("fgnooff", getdb(ci.fgnooff));
|
||||
_fgno = ci.fgnooff;
|
||||
if (ci.fileno3 > 0) {
|
||||
$("#tdfile").html("<div class=\"fileitembox\"><a href=\"/aCommon/DownFile?fno=" + ci.fileno3 + "\" title=\"다운로드\"><i class=\"fa fa-paperclip\"></i> <span class=\"fileitem\">" + ci.orgname3 + "</span></a> " +
|
||||
"<a href=\"#\" class=\"btn_txt btn btn-xxs btn-danger\" onclick=\"javascript:fnFileDeleteNew(" + ci.fileno3 + ", this, '', true, 'cbthisfiledel()');\" title=\"삭제\">삭제</a></div>");
|
||||
}
|
||||
else {
|
||||
$("#tdfile").html("<input type=\"file\" id=\"file2\" name=\"file2\" />");
|
||||
}
|
||||
$.each(capResult.obj.li, function (i, d) {
|
||||
$("#tbodyoff").append("<tr data-no=\"" + d.lectno + "\" data-attorg=\"" + getdb(d.istatus) + "\">" +
|
||||
"<td>" + d.rnorvt + "</td>" +
|
||||
"<td>" + getdb(d.asname) + "</td>" +
|
||||
"<td>" + getdb(d.username) + "(" + getdb(d.userid) + ")" + "</td>" +
|
||||
"<td>" + d.stimehm + "</td>" +
|
||||
"<td>" + d.etimehm + "</td>" +
|
||||
"<td><input type=\"radio\" class=\"att att-1\" name=\"istatus" + d.lectno + "\" " + (isnull(d.istatus) ? "checked" : "") + " value=\"\" /></td>" +
|
||||
"<td><input type=\"radio\" class=\"att att2\" name=\"istatus" + d.lectno + "\" " + (getdb(d.istatus) == "2" ? "checked" : "") + " value=\"2\" /></td>" +
|
||||
"<td><input type=\"radio\" class=\"att att0\" name=\"istatus" + d.lectno + "\" " + (!isnull(d.istatus) && getdb(d.istatus) == "" || getdb(d.istatus) == "1" ? "checked" : "") + " value=\"0\" /></td>"+
|
||||
"<td>" + d.udtymdhm +" {"+d.unoid+"} </td ></tr > ");
|
||||
|
||||
});
|
||||
}
|
||||
function changeatt(idx) {
|
||||
$("input.att" + idx).prop("checked", true);
|
||||
}
|
||||
function saveatt() {
|
||||
if (val("cmino") == "") { focus("cmino"); msg2("회차를 선택해주세요."); }
|
||||
else if ($("#tbodyoff tr").length < 1) { msg2("저장할 출석데이터가 없습니다."); }
|
||||
else if (confirm("출석데이터를 저장하시겠습니까?")) {
|
||||
var data = new FormData();
|
||||
data.append("cmino", val("cmino"));
|
||||
if ($("#file2").length > 0 && $("#file2")[0].files.length > 0) {
|
||||
data.append("file2", $("#file2")[0].files[0]);
|
||||
}
|
||||
var lis = "";
|
||||
$.each($("#tbodyoff tr"), function (i, r) {
|
||||
//if ($(r).find("input.att:checked").val() != $(r).attr("data-attorg")) {
|
||||
lis += ";" + $(r).attr("data-no") + ":" + $(r).find("input.att:checked").val();
|
||||
//}
|
||||
});
|
||||
//if (lis == "") {
|
||||
// msg2("저장했습니다.");
|
||||
//} else {
|
||||
data.append("lis", lis.substr(1));
|
||||
data.append("fgnooff", _fgno);
|
||||
capfile("/acommon/offattsave", data, "cboffattsave", false, null, true, true);
|
||||
//}
|
||||
}
|
||||
}
|
||||
function cboffattsave() {
|
||||
if (capResult.code == 1000) {
|
||||
msgf2("저장했습니다.", "submit('mform', 0, true)");
|
||||
} else { msgdev(true); }
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
@ -86,7 +86,8 @@
|
|||
<td class="link text-center">
|
||||
@if (d.estart != null)
|
||||
{
|
||||
<a style="color:#fff" onclick="reexam(@d.exno, @d.lectno)" href="#" class="btn btn-select btn-xxs">재응시</a>
|
||||
//재응시 관련 수정 #xodus 수정완료 reexam에 extype 추가
|
||||
<a style="color:#fff" onclick="reexam(@d.exno, @d.lectno, @d.extype)" href="#" class="btn btn-select btn-xxs">재응시</a>
|
||||
}
|
||||
</td>
|
||||
@if (!ViewBag.IsSubAdmin96)
|
||||
|
|
@ -223,8 +224,10 @@
|
|||
function findme() {
|
||||
bglayer(); submit();
|
||||
}
|
||||
function reexam(exno, lectno) {
|
||||
capp("/acommon/reexam", { exno: exno, lectno: lectno }, "cbreexam");
|
||||
|
||||
//재응시 관련 수정 #xodus 수정완료 reexam에 extype 추가
|
||||
function reexam(exno, lectno, extype) {
|
||||
capp("/acommon/reexam", { exno: exno, lectno: lectno, extype: extype }, "cbreexam");
|
||||
}
|
||||
function cbreexam() {
|
||||
if (capResult.code == 1000) {
|
||||
|
|
|
|||
|
|
@ -576,6 +576,8 @@
|
|||
setv("User_mobile", formatmobile(val("User_mobile")));
|
||||
setv("User_telno", formatphone(val("User_telno")));
|
||||
setv("User_birthday", makebirthday(val("userpno1") + val("userpno2")));
|
||||
setv("User_userpass", strEnConvert(val("User_userpass")));
|
||||
|
||||
if (val("User_usertype") == "0" || val("User_usertype") == "") { focus("User_usertype");msg("권한을 선택해주세요."); }
|
||||
else if (check("User_userid", null, "ID를 입력해주세요.")) { }
|
||||
else if (val("User_userid").length < 4) {focus("User_userid"); msg("ID를 4글자 이상으로 입력해주세요.");}
|
||||
|
|
@ -755,5 +757,10 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
function strEnConvert(str) {
|
||||
let rslt = str.replace(/&#/gi, "%26%23");
|
||||
|
||||
return rslt;
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -477,10 +477,12 @@ namespace NP.Base.Controllers
|
|||
{
|
||||
if (type == "all")
|
||||
{
|
||||
// 출석완료 처리
|
||||
return JsonOK(Dao.Save("att.attend.allin", new Hashtable() { { "lectnos", lectnos }, { "statusreason", "관리자 일괄승인" }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
|
||||
}
|
||||
else if (type == "abs")
|
||||
{
|
||||
// 강제 수료처리
|
||||
var Lects1 = Dao.Get<Lect>("grade.nocompletelect", lectnos).Where(w => w.iscomplete != 1 && lectnos.Contains(w.lectno.ToString())).ToList();
|
||||
if (Lects1.Count() > 0)
|
||||
{
|
||||
|
|
@ -511,6 +513,7 @@ namespace NP.Base.Controllers
|
|||
var cancelcount = 0;
|
||||
foreach (var lect in lects)
|
||||
{
|
||||
// #수료확인 #xodus 작업범위아님
|
||||
var ispass = Dao.Get<Lect>("grade.ispass", new Hashtable() { { "lectno", lect.lectno } }).FirstOrDefault().ispass;
|
||||
if (ispass == 1)
|
||||
{
|
||||
|
|
@ -543,7 +546,7 @@ namespace NP.Base.Controllers
|
|||
{
|
||||
if (lect.iscomplete == 1)
|
||||
{
|
||||
cancelcount += Dao.Save("grade.lectcomplete.cancel", new Hashtable() { { "lectno", lect.lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||
cancelcount += Dao.Save("grade.lectcomplete.cancel2", new Hashtable() { { "lectno", lect.lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||
}
|
||||
}
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "OK", obj = new { cancelcount } });
|
||||
|
|
@ -755,7 +758,7 @@ namespace NP.Base.Controllers
|
|||
/// <param name="lectno"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public JsonResult ReExam(int exno, Int64 lectno, int extype)
|
||||
public JsonResult ReExam(int exno, Int64 lectno, int extype) //재응시 관련 수정완료 #xodus 수정완료 reexam에 extype 추가
|
||||
{
|
||||
return JsonOK(Dao.Save("lect.reexam", new Hashtable() { { "exno", exno }, { "lectno", lectno }, { "extype", extype }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 1 ? 1 : 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -963,6 +963,7 @@ namespace NP.Base
|
|||
}
|
||||
private void DataExportExcel_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
|
||||
{
|
||||
string tempStr = "";
|
||||
if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Header)
|
||||
{
|
||||
//Header Text Format can be done as follows
|
||||
|
|
|
|||
|
|
@ -232,6 +232,7 @@ namespace NP.Base.Controllers
|
|||
[HttpPost]
|
||||
public JsonResult ReExamForUser(int exno, Int64 lectno, int extype)
|
||||
{
|
||||
// #xodus extype 추가
|
||||
//재응시로그추가로인해 업데이트건 3개일때부터 정상처리
|
||||
return JsonOK(Dao.Save("lect.reexam", new System.Collections.Hashtable() { { "exno", exno }, { "lectno", lectno }, { "extype", extype }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 2 ? 1 : 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -262,7 +262,6 @@
|
|||
left outer join lectinning b on b.lectno=a.lectno and b.cmino=#cmino#
|
||||
where a.lectno=#lectno# and a.status=1 and a.ischanged=0 and b.lectno is null;
|
||||
|
||||
<!--진도율, lect.apoint, 진도율 환산점수 update #xodus-->
|
||||
update lect a
|
||||
inner join (
|
||||
select a.lectno,convert(100*count(c.lectno)/count(b.cmino), int) attrate
|
||||
|
|
@ -273,10 +272,7 @@
|
|||
where a.lectno=#lectno# and a.cmino=#cmino# and a.istatus=2
|
||||
group by a.lectno
|
||||
) b on b.lectno=a.lectno
|
||||
inner join cmev ce on a.cmno = ce.cmno
|
||||
set a.attrate=b.attrate
|
||||
,a.apoint = (((b.attrate / 100) * ce.attend / 100)* 100)
|
||||
,a.tpoint = round((((b.attrate / 100) * ce.attend / 100)* 100) + ifnull(a.mpoint, 0) + ifnull(a.fpoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0),0)
|
||||
,a.stime=case when a.stime is null then <include refid="sql.now"></include> else a.stime end
|
||||
,a.etime=case when a.etime is null then <include refid="sql.now"></include> else a.etime end
|
||||
,a.sip=case when a.sip is null then #uip# else a.sip end
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@
|
|||
,a.psec=#psec#
|
||||
where a.lectno=#lectno# and a.cmino=#cmino#;
|
||||
|
||||
<!--진도율, lect.apoint, 진도율 환산점수 update #xodus-->
|
||||
<!--진도율, lect.apoint, 진도율 환산점수 update #xodus 수정완료-->
|
||||
update lect a
|
||||
inner join (
|
||||
select a.lectno,truncate(count(c.lectno) / count(b.cmino) * 100, 0) attrate
|
||||
|
|
@ -325,12 +325,11 @@
|
|||
inner join cmev ce on a.cmno = ce.cmno
|
||||
set a.attrate=b.attrate
|
||||
,a.apoint = (((b.attrate / 100) * ce.attend / 100)* 100)
|
||||
,a.tpoint = round((((b.attrate / 100) * ce.attend / 100)* 100) + ifnull(a.mpoint, 0) + ifnull(a.fpoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0),0)
|
||||
<!--,a.tpoint = round((((b.attrate / 100) * ce.attend / 100)* 100) + ifnull(a.mpoint, 0) + ifnull(a.fpoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0),0)-->
|
||||
,a.etime=now()
|
||||
,a.eip=#uip#
|
||||
,a.ispce=#ispc#
|
||||
,a.tpoint
|
||||
,udt=now(),uno=#uno#,uip=#uip#
|
||||
,a.udt=now(),a.uno=#uno#,a.uip=#uip#
|
||||
where a.lectno=#lectno# and a.userno=#userno#;
|
||||
</update>
|
||||
<select id="cr.inningchange.pre" parameterClass="hashtable" resultClass="lectinning">
|
||||
|
|
@ -624,27 +623,44 @@
|
|||
,a.cblock=#cblock#
|
||||
where a.lectno=#lectno# and a.exno=#exno# and a.eend is null;
|
||||
|
||||
<!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus-->
|
||||
<!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus 수정완료-->
|
||||
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
|
||||
|
||||
<isEqual property="extype" compareValue="1">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
|
||||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.fpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)
|
||||
,a.tpoint = (round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)) + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.mpoint, 0)
|
||||
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
update lect l
|
||||
inner join (
|
||||
select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
|
||||
from lect l
|
||||
inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
|
||||
left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
inner join cmev cv on l.cmno = cv.cmno
|
||||
set l.exfpoint = t.avgtpoint
|
||||
, l.fpoint = round((t.avgtpoint / t.tpoint * 100) * cv.final / 100,1)
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.lectno = #lectno#;
|
||||
</isEqual>
|
||||
<isEqual property="extype" compareValue="0">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
|
||||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.mpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)
|
||||
,a.tpoint = (round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)) + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.fpoint, 0)
|
||||
where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
update lect l
|
||||
inner join (
|
||||
select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
|
||||
from lect l
|
||||
inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
|
||||
left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
inner join cmev cv on l.cmno = cv.cmno
|
||||
set l.exmpoint = t.avgtpoint
|
||||
, l.mpoint = round((t.avgtpoint / t.tpoint * 100) * cv.mid / 100,1)
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.lectno = #lectno#;
|
||||
</isEqual>
|
||||
</update>
|
||||
<!--시험 임시저장-->
|
||||
|
|
@ -677,27 +693,43 @@
|
|||
<!--, a.overtime=case when #zstring20# is null then a.overtime else now() end-->
|
||||
where a.lectno=#lectno# and a.exno=#exno# and a.eend is null;
|
||||
|
||||
<!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus-->
|
||||
<!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus 수정완료-->
|
||||
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
|
||||
<isEqual property="extype" compareValue="1">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
|
||||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.fpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)
|
||||
,a.tpoint = (round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)) + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.mpoint, 0)
|
||||
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
update lect l
|
||||
inner join (
|
||||
select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
|
||||
from lect l
|
||||
inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
|
||||
left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
inner join cmev cv on l.cmno = cv.cmno
|
||||
set l.exfpoint = t.avgtpoint * -1 <!--임시저장은 -(음수)로 기록한다.-->
|
||||
, l.fpoint = round((t.avgtpoint / t.tpoint * 100) * cv.final / 100,1)
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.lectno = #lectno#;
|
||||
</isEqual>
|
||||
<isEqual property="extype" compareValue="0">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
|
||||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.mpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)
|
||||
,a.tpoint = (round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)) + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.fpoint, 0)
|
||||
where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
update lect l
|
||||
inner join (
|
||||
select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
|
||||
from lect l
|
||||
inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
|
||||
left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
inner join cmev cv on l.cmno = cv.cmno
|
||||
set l.exmpoint = t.avgtpoint * -1 <!--임시저장은 -(음수)로 기록한다.-->
|
||||
, l.mpoint = round((t.avgtpoint / t.tpoint * 100) * cv.mid / 100,1)
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.lectno = #lectno#;
|
||||
</isEqual>
|
||||
</update>
|
||||
<select id="cr.lectsd" parameterClass="hashtable" resultClass="lectsd">
|
||||
|
|
|
|||
|
|
@ -1070,7 +1070,7 @@
|
|||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
|
||||
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and (a2.cname like concat('%',#cname#,'%') or a.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
|
|
@ -1110,7 +1110,7 @@
|
|||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
|
||||
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and (a2.cname like concat('%',#cname#,'%') or a.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
|
|
@ -1141,7 +1141,8 @@
|
|||
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
|
||||
|
||||
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
|
||||
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
|
||||
<isNotNull property="edate1" prepend="and">(case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end) >= #edate1#</isNotNull>
|
||||
|
|
@ -1150,7 +1151,7 @@
|
|||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
|
||||
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and (a2.cname like concat('%',#cname#,'%') or a.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
|
|
@ -1190,7 +1191,7 @@
|
|||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
|
||||
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and (a2.cname like concat('%',#cname#,'%') or a.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
|
|
@ -1230,7 +1231,7 @@
|
|||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
|
||||
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and (a2.cname like concat('%',#cname#,'%') or a.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
|
|
@ -1270,7 +1271,7 @@
|
|||
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
|
||||
|
||||
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotNull property="cname" >and (a2.cname like concat('%',#cname#,'%') or a.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
) a
|
||||
|
|
@ -1310,7 +1311,8 @@
|
|||
<isNotNull property="est11not" prepend="and">a.sd0lectcnt < a.sd0cnt</isNotNull>
|
||||
<isNotNull property="est12not" prepend="and">a.sd1lectcnt < a.sd1cnt</isNotNull>
|
||||
<isNotNull property="est21not" prepend="and">a.rs0lectcnt < a.rs0cnt</isNotNull>
|
||||
<isNotNull property="cname" prepend="and">c2.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<!--<isNotNull property="cname" prepend="and">c2.cname like concat('%',#cname#,'%')</isNotNull>-->
|
||||
<isNotNull property="cname" prepend="and"> (c2.cname like concat('%',#cname#,'%') or c.cname like concat('%',#cname#,'%'))</isNotNull>
|
||||
<isNotNull property="cnamestr" prepend="and">c.cname like concat('%',#cnamestr#,'%')</isNotNull>
|
||||
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
|
||||
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull>
|
||||
|
|
@ -1332,7 +1334,7 @@
|
|||
|
||||
</select>
|
||||
<!--#xodus-->
|
||||
<select id="grade.lectgradesToAll2" parameterClass="hashtable" resultClass="lect">
|
||||
<select id="grade.lectgradesToAll2_old" parameterClass="hashtable" resultClass="lect">
|
||||
select *
|
||||
from (
|
||||
SELECT a.*
|
||||
|
|
@ -1418,10 +1420,10 @@
|
|||
INNER JOIN users u ON l.userno = u.userno
|
||||
INNER JOIN pay p ON p.payno = l.payno
|
||||
<!--최종평가-->
|
||||
LEFT OUTER JOIN cmex ce ON l.cmno = ce.cmno AND ce.extype = 0 AND ce.isdel = 0
|
||||
LEFT OUTER JOIN cmex ce ON l.cmno = ce.cmno AND ce.extype = 1 AND ce.isdel = 0
|
||||
LEFT OUTER JOIN lectex le ON l.lectno = le.lectno AND ce.exno = le.exno
|
||||
<!--중간평가-->
|
||||
LEFT OUTER JOIN cmex ce2 ON l.cmno = ce2.cmno AND ce2.extype = 1 AND ce2.isdel = 0
|
||||
LEFT OUTER JOIN cmex ce2 ON l.cmno = ce2.cmno AND ce2.extype = 0 AND ce2.isdel = 0
|
||||
LEFT OUTER JOIN lectex le2 ON l.lectno = le2.lectno AND ce2.exno = le2.exno
|
||||
<!--과제-->
|
||||
LEFT OUTER JOIN cmsd cs ON l.cmno = cs.cmno AND cs.sdtype = 0 AND cs.isdel = 0
|
||||
|
|
@ -1495,6 +1497,133 @@
|
|||
)a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
order by a.rno
|
||||
</select>
|
||||
<select id="grade.lectgradesToAll2" parameterClass="hashtable" resultClass="lect">
|
||||
select *
|
||||
from (
|
||||
SELECT a.*
|
||||
, (CASE WHEN ppl.asname IS NOT NULL THEN ppl.asname ELSE ua.asname END) asname
|
||||
,CAST(AES_DECRYPT(UNHEX(ppl.mphone), 'np123@!' ) AS CHAR) mphone
|
||||
,CAST(AES_DECRYPT(UNHEX(ppl.taxemail), 'np123@!' ) AS CHAR) taxemail
|
||||
,ppl.brno,ppl.ceoname,ppl.post,ppl.address1,ppl.address2,ppl.btype,ppl.bkind,ppl.eino,ppl.mname,ppl.association
|
||||
,tm.cname typemanname, te.cname typeeduname
|
||||
,tg.cname typegradename, tj.cname typejobname
|
||||
,date_format((case when a.cshape = 2 and a.eend is not null then a.eend else a.edate end),'%Y-%m-%d') edatestring
|
||||
,pi.tbankuser rbankuser,pi.rbank,pi.pino,pi.rbankamt
|
||||
,CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), 'np123@!' ) AS char) as rbankaccnum
|
||||
, date_format(f.stime, '%Y-%m-%d') zstring3
|
||||
, ROUND(a.apoint + a.mpoint + a.fpoint + a.spoint + a.dpoint,0) AS tpoint
|
||||
,row_number() over(order by ua.asname,ua.asno,a.username ) rno
|
||||
,count(a.lectno) over() pagetotalcount
|
||||
|
||||
FROM (
|
||||
SELECT a.*
|
||||
,(a.attrate / 100) * (d.attend / 100) * 100 apoint
|
||||
,d.isoffabs,t.tyear
|
||||
,cg.cgname,cg.pcgno,pcg.cgname as pcgname
|
||||
,cc.cname studyplacename
|
||||
FROM (
|
||||
SELECT l.lectno, c.cmno, c.cgno, u.userid, u.username, u.userno, u.asno,u.slevel,u.uduty
|
||||
,concat(substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),1,6),'-',substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),7,7)) userpno
|
||||
,CAST(AES_DECRYPT(UNHEX(u.mobile), 'np123@!' ) AS CHAR) mobile
|
||||
,l.attrate, ifnull(l.mpoint,0) AS mpoint, ifnull(l.fpoint,0) fpoint
|
||||
,ifnull(l.spoint,0) AS spoint,ifnull(l.dpoint,0) AS dpoint
|
||||
, ifnull(l.exmpoint,-1) as dblv1, ifnull(l.exfpoint,-1) as dblv2
|
||||
, ifnull(l.subjectpoint,-1) as dblv3, ifnull(l.discusspoint,-1) as dblv4
|
||||
, l.isrebate, l.iscomplete, l.completetime, l.completeno,l.sdate,l.edate, l.cmisno
|
||||
, c.cshape, c.sstime,c.cname,c.classno,c.studytime, c.tmno
|
||||
,cis.sseq,cis.estart,cis.eend,cis.studyplace, li.istatus, li.cmino
|
||||
, p.payno, p.payamt
|
||||
, (CASE WHEN IFNULL(ce.exno,0) = 0 THEN 0 ELSE 1 END) AS ex0cnt<!-- 중간평가-->
|
||||
, (CASE WHEN IFNULL(ce2.exno,0) = 0 THEN 0 ELSE 1 END) AS ex1cnt<!-- 최종평가-->
|
||||
, SUM(CASE WHEN IFNULL(cs.sdno,0) = 0 THEN 0 ELSE 1 END) AS sd0cnt <!-- `과제제출`-->
|
||||
, (CASE WHEN IFNULL(cs2.sdno,0) = 0 THEN 0 ELSE 1 END) AS sd1cnt <!-- `토론제출`-->
|
||||
, (CASE WHEN IFNULL(cr.rsno,0) = 0 THEN 0 ELSE 1 END) AS rs0cnt <!-- `설문제출`-->
|
||||
, SUM(CASE WHEN IFNULL(lt.lectno,0) = 0 THEN 0 ELSE 1 END) AS rs0lectcnt
|
||||
, (CASE WHEN IFNULL(lt.lectno,0) = 0 THEN 0 ELSE 1 END) AS rs0lectpoint <!-- `설문제출`-->
|
||||
,COUNT(ci.cmino) at0cnt, COUNT(li.lectno) at0lectcnt
|
||||
, p.payoktime
|
||||
, p.pplno
|
||||
FROM lect l
|
||||
INNER JOIN cm c ON l.cmno = c.cmno
|
||||
LEFT OUTER JOIN cminningscd cis ON l.cmisno = cis.cmisno
|
||||
INNER JOIN users u ON l.userno = u.userno
|
||||
INNER JOIN pay p ON p.payno = l.payno
|
||||
<!--중간평가-->
|
||||
LEFT OUTER JOIN cmex ce ON l.cmno = ce.cmno AND ce.extype = 0 AND ce.isdel = 0
|
||||
<!--최종평가-->
|
||||
LEFT OUTER JOIN cmex ce2 ON l.cmno = ce2.cmno AND ce2.extype = 1 AND ce2.isdel = 0
|
||||
<!--과제-->
|
||||
LEFT OUTER JOIN cmsd cs ON l.cmno = cs.cmno AND cs.sdtype = 0 AND cs.isdel = 0
|
||||
<!--토론-->
|
||||
LEFT OUTER JOIN cmsd cs2 ON l.cmno = cs2.cmno AND cs2.sdtype = 1 AND cs2.isdel = 0
|
||||
<!--설문-->
|
||||
LEFT OUTER JOIN cmrs cr ON l.cmno = cr.cmno AND cr.rstype = 0 AND cr.isdel = 0
|
||||
LEFT OUTER JOIN lectrs lt ON l.lectno = lt.lectno AND cr.rsno = lt.rsno
|
||||
<!--집합출석-->
|
||||
LEFT OUTER JOIN cminning ci ON l.cmno=ci.cmno AND ci.isonline =0 AND ci.isscd = 1
|
||||
LEFT OUTER JOIN lectinning li ON ci.cmino = li.cmino AND l.lectno = li.lectno AND li.istatus = 2
|
||||
|
||||
WHERE u.status = 1 AND c.ismaster=0 AND c.isdel=0 AND l.status = 1 AND l.ischanged = 0
|
||||
<isNotNull property="usernamestr" prepend="and">u.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="useridstr" prepend="and">u.userid like concat('%',#useridstr#,'%')</isNotNull>
|
||||
|
||||
|
||||
<isNotNull property="usernamestr" prepend="and">u.username like concat('%',#usernamestr#,'%')</isNotNull>
|
||||
<isNotNull property="useridstr" prepend="and">u.userid like concat('%',#useridstr#,'%')</isNotNull>
|
||||
<isNotEmpty property="usernameid" prepend="and">(u.userid like concat('%',#usernameid#,'%') or u.username like concat('%',#usernameid#,'%') or u.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
|
||||
<isNotNull property="iscomplete" prepend="and">ifnull(l.iscomplete,0)=#iscomplete#</isNotNull>
|
||||
<isNotNull property="cmisno" prepend="and">l.cmisno = #cmisno#</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when c.cshape = 0 and l.isrebate = 0 then p.payoktime else l.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when c.cshape = 2 then cis.eend else l.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
<isNotNull property="edate" prepend="and">date_format((case when c.cshape = 2 and cis.eend is not null then cis.eend else l.edate end),'%Y-%m-%d') = #edate#</isNotNull>
|
||||
<isNotNull property="edate1" prepend="and">(case when c.cshape = 2 and cis.eend is not null then cis.eend else l.edate end) >= #edate1#</isNotNull>
|
||||
<isNotNull property="edate2" prepend="and">(case when c.cshape = 2 and cis.eend is not null then cis.eend else l.edate end) <= #edate2#</isNotNull>
|
||||
<isNotNull property="studyplace" prepend="and">cis.studyplace = #studyplace#</isNotNull>
|
||||
<isNotNull property="cmno" >and l.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="cname" >and c.cname like concat('%',#cname#,'%')</isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when c.cshape = 0 and l.isrebate = 0 then p.payoktime else l.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when c.cshape = 2 then cis.eend else l.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
GROUP BY l.lectno
|
||||
) a
|
||||
INNER JOIN cmev d ON a.cmno=d.cmno
|
||||
LEFT OUTER JOIN term t ON t.tmno = a.tmno
|
||||
LEFT OUTER JOIN cg cg ON a.cgno = cg.cgno
|
||||
LEFT OUTER JOIN cg pcg ON cg.pcgno = pcg.cgno
|
||||
left outer join comcode cc on cc.ccode = a.studyplace and cc.isuse=1
|
||||
) a
|
||||
LEFT OUTER JOIN pplog ppl ON ppl.pplno = a.pplno
|
||||
LEFT OUTER JOIN assign ua ON ua.asno=a.asno
|
||||
left outer join comcode tm on tm.ccode = ppl.typeman
|
||||
left outer join comcode te on te.ccode = ppl.typeedu
|
||||
left outer join comcode tg on tg.ccode = ppl.typegrade
|
||||
left outer join comcode tj on tj.ccode = ppl.typejob
|
||||
inner join payitem pi on a.payno = pi.payno
|
||||
left outer join lectinning f on a.lectno = f.lectno and a.cmino = f.cmino
|
||||
<dynamic prepend="where">
|
||||
<isNotNull property="cshape" prepend="and">a.cshape = #cshape#</isNotNull>
|
||||
<isNotNull property="studyplace" prepend="and">a.studyplace = #studyplace#</isNotNull>
|
||||
<isNotNull property="est1not" prepend="and">a.ex0lectcnt < a.ex0cnt</isNotNull>
|
||||
<isNotNull property="est2not" prepend="and">a.ex1lectcnt < a.ex1cnt</isNotNull>
|
||||
<isNotNull property="est11not" prepend="and">a.sd0lectcnt < a.sd0cnt</isNotNull>
|
||||
<isNotNull property="est12not" prepend="and">a.sd1lectcnt < a.sd1cnt</isNotNull>
|
||||
<isNotNull property="est21not" prepend="and">a.rs0lectcnt < a.rs0cnt</isNotNull>
|
||||
<isNotNull property="cname" prepend="and">(a.pcgname like concat('%',#cname#,'%') or a.cname like concat('%',#cnamestr#,'%'))</isNotNull>
|
||||
<isNotNull property="cnamestr" prepend="and">(a.pcgname like concat('%',#cname#,'%') or a.cname like concat('%',#cnamestr#,'%'))</isNotNull>
|
||||
<isNotNull property="iscomplete" prepend="and">ifnull(a.iscomplete,0)=#iscomplete#</isNotNull>
|
||||
<isNotNull property="cmisno" prepend="and">a.cmisno = #cmisno#</isNotNull>
|
||||
<isNotNull property="ispasss" prepend="and">((a.sd0cnt > 0 and a.sd0lectcnt > 0))</isNotNull>
|
||||
<isNotNull property="ispassa" prepend="and">a.ispassa = #ispassa#</isNotNull>
|
||||
<isNotNull property="ispassex" prepend="and">(a.ispassm = #ispassex# and a.ispassf = #ispassex#) </isNotNull>
|
||||
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and a.isrebate = 0 then a.payoktime else a.sdate end) >= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
|
||||
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then a.eend else b.edate end) <= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
|
||||
<isNotNull property="asname" prepend="and">a.asname like concat('%',#asname#,'%')</isNotNull>
|
||||
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and a.eend is not null then a.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
|
||||
<isNotNull property="mobile" prepend="and">a.mobile like concat('%',#mobile#,'%')</isNotNull>
|
||||
</dynamic>
|
||||
)a
|
||||
<include refid="sql.pagedynamic"></include>
|
||||
order by a.rno
|
||||
</select>
|
||||
<update id="grade.lectcomplete.abs" parameterClass="hashtable">
|
||||
update lect set <include refid="sql.up"></include>
|
||||
|
|
@ -1572,6 +1701,7 @@
|
|||
,l.completeno=b.completeno
|
||||
where l.lectno = b.lectno
|
||||
</update>
|
||||
<!--#수료처리 #xodus-->
|
||||
<update id="grade.lectcomplete2" parameterClass="hashtable">
|
||||
update lect a
|
||||
inner join (
|
||||
|
|
@ -1595,6 +1725,7 @@
|
|||
,case when cm.cshape = 0 then now()
|
||||
when cm.cshape = 1 then cm.setime
|
||||
else cs.eend end completetime
|
||||
, l.iscomplete
|
||||
,row_number() over(partition by date_format(l.cdt,'%Y') order by l.cdt) rno
|
||||
from lect l
|
||||
inner join cm cm on cm.cmno = l.cmno
|
||||
|
|
@ -1629,18 +1760,26 @@
|
|||
,a.completetime = case when b.ispass = 1 then c.completetime else null end
|
||||
,a.completeno = c.completeno
|
||||
|
||||
where a.status=1 and a.ischanged=0 and a.lectno = c.lectno
|
||||
where a.status=1 and a.ischanged=0 and a.lectno = c.lectno and ifnull(a.iscomplete, 0) <> 1
|
||||
<isNotNull property="cmno">and a.cmno = #cmno#</isNotNull>
|
||||
<isNotNull property="lectno">and a.lectno = #lectno#</isNotNull>
|
||||
<isNotNull property="cmnos">and a.cmno in ($cmnos$)</isNotNull>
|
||||
<isNotNull property="lectnos">and a.lectno in ($lectnos$)</isNotNull>
|
||||
</update>
|
||||
<!--수료 취소 #xodus-->
|
||||
<update id="grade.lectcomplete.cancel" parameterClass="hashtable">
|
||||
update lect
|
||||
set <include refid="sql.up"></include>
|
||||
,iscomplete=0
|
||||
,completetime=null
|
||||
where lectno=#lectno#
|
||||
where lectno=#lectno# and ifnull(iscomplete,0) <> 1
|
||||
</update>
|
||||
<update id="grade.lectcomplete.cancel2" parameterClass="hashtable">
|
||||
update lect
|
||||
set <include refid="sql.up"></include>
|
||||
,iscomplete=0
|
||||
,completetime=null
|
||||
where lectno=#lectno# and ifnull(iscomplete,0)
|
||||
</update>
|
||||
<select id ="grade.nocompletelect" parameterClass="string" resultClass="lect">
|
||||
select distinct c.lectno , b.cmno
|
||||
|
|
|
|||
|
|
@ -1069,7 +1069,7 @@
|
|||
from (
|
||||
select a.lectno,a.userno,a.cmno,a.isrebate
|
||||
,p.payoktime,a.sdate,a.edate
|
||||
,b.exno,b.exname
|
||||
,b.exno,b.exname,b.extype <!--#xodus 수정완료 성적처리관련 컬럼 추가-->
|
||||
,b2.cshape,b2.cname
|
||||
,c.estart,c.eend,c.eip,c.tpoint,c.recount,c.entercount,c.cblock
|
||||
,d.username,d.userid
|
||||
|
|
@ -1136,8 +1136,9 @@
|
|||
set a.atext=null,a.qinos=null,a.cpoint=0,a.iscorrect=null
|
||||
where a.lectno=#lectno# and a.exno=#exno#;
|
||||
|
||||
<!--최종평가, lect.fpoint, 진도율 환산점수 update #xodus-->
|
||||
<!--최종평가, lect.fpoint, 진도율 환산점수 update #xodus 수정완료-->
|
||||
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
|
||||
<!--최종평가-->
|
||||
<isEqual property="extype" compareValue="1">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
|
|
@ -1145,9 +1146,11 @@
|
|||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.fpoint = 0
|
||||
,a.tpoint = round(0 + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.mpoint, 0),0)
|
||||
,a.exfpoint = null
|
||||
<!--,a.tpoint = round(0 + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.mpoint, 0),0)-->
|
||||
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
</isEqual>
|
||||
<!--중간평가-->
|
||||
<isEqual property="extype" compareValue="0">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
|
|
@ -1155,42 +1158,10 @@
|
|||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.mpoint = 0
|
||||
,a.tpoint = round(0 + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.fpoint, 0))
|
||||
,a.exmpoint = null
|
||||
<!--,a.tpoint = round(0 + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.fpoint, 0))-->
|
||||
where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
</isEqual>
|
||||
<!--delete from lectexq where lectno=#lectno# and exno=#exno# and eqno in (
|
||||
select a.eqno
|
||||
from (
|
||||
select b.eqno
|
||||
from cmex a
|
||||
inner join lectexq b on b.lectno=#lectno# and b.exno=a.exno
|
||||
where a.exno=#exno# and a.eqtype=1
|
||||
) a
|
||||
);-->
|
||||
|
||||
<!--insert into lectexq (lectno,exno,eqno,cpoint,dpoint,qseq,<include refid="sql.inc"></include>)
|
||||
select a.lectno,a.exno,a.eqno,0,a.rpoint,row_number() over(order by case when a.israndq=0 then a.qseq else rand() end),<include refid="sql.inv"></include>
|
||||
from (
|
||||
select a.*
|
||||
from (
|
||||
select a.lectno,a.exno,d.eqno,c.israndq,el.qcount,d.rpoint,d.qseq,rank() over(partition by el.qdiff,el.cc1,el.cc2,el.cc3,el.cc4,el.cc5 order by rand()) rank
|
||||
from (select #lectno# lectno, #exno# exno) a
|
||||
left outer join lectex b on b.lectno=a.lectno and b.exno=a.exno
|
||||
inner join cmex c on c.exno=a.exno and c.eqtype=1
|
||||
inner join cmexlayer el on el.exno=c.exno and el.qcount > 0
|
||||
inner join cmexq d on d.exno=el.exno
|
||||
inner join question e on e.qno=d.qno
|
||||
and e.qdiff=case when el.qdiff=0 then e.qdiff else el.qdiff end
|
||||
and e.cc1=case when el.cc1=0 then e.cc1 else el.cc1 end
|
||||
and e.cc2=case when el.cc2=0 then e.cc2 else el.cc2 end
|
||||
and e.cc3=case when el.cc3=0 then e.cc3 else el.cc3 end
|
||||
and e.cc4=case when el.cc4=0 then e.cc4 else el.cc4 end
|
||||
and e.cc5=case when el.cc5=0 then e.cc5 else el.cc5 end
|
||||
) a
|
||||
where a.rank <= a.qcount
|
||||
) a
|
||||
order by rand();-->
|
||||
|
||||
</update>
|
||||
|
||||
<update id="lect.reexam.manulset" parameterClass="hashtable">
|
||||
|
|
@ -1366,28 +1337,26 @@
|
|||
,a.rechecktime=<include refid="sql.now"></include>
|
||||
where a.lectno=#lectno# and a.exno=#exno#;
|
||||
|
||||
<!--최종평가, lect.fpoint, 진도율 환산점수 update #xodus-->
|
||||
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
|
||||
<isEqual property="extype" compareValue="1">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
|
||||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.fpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)
|
||||
,a.tpoint = (round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)) + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.mpoint, 0)
|
||||
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
</isEqual>
|
||||
<isEqual property="extype" compareValue="0">
|
||||
update lect a
|
||||
inner join lectex le on a.lectno = le.lectno
|
||||
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
|
||||
inner join cmev cv on a.cmno = cv.cmno
|
||||
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
|
||||
,a.mpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)
|
||||
,a.tpoint = (round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0)) + ifnull(a.apoint, 0) + ifnull(a.spoint, 0) + ifnull(a.dpoint, 0) + ifnull(a.fpoint, 0)
|
||||
where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#;
|
||||
</isEqual>
|
||||
<!--최종평가, lect.fpoint #xodus 수정완료-->
|
||||
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다 -->
|
||||
<!--extype 최종평가:1, 중간평가:0-->
|
||||
update lect l
|
||||
inner join (
|
||||
select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
|
||||
from lect l
|
||||
inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
|
||||
left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
inner join cmev cv on l.cmno = cv.cmno
|
||||
set l.exfpoint = t.avgtpoint
|
||||
, l.fpoint = round((t.avgtpoint / t.tpoint * 100) * cv.final / 100,1)
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.lectno = #lectno#;
|
||||
|
||||
</update>
|
||||
<select id="lect.lectsds" parameterClass="hashtable" resultClass="lectsd">
|
||||
select a.lectno,a.userno,a.cmno,a.isrebate
|
||||
|
|
@ -1570,39 +1539,41 @@
|
|||
left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno#
|
||||
where b.lectno is null;
|
||||
|
||||
<!--과제(중복시 아래 avg로 처리됨),, lect.spoint, 과제 환산점수 update #xodus-->
|
||||
<!--과제(중복시 아래 avg로 처리됨),, lect.spoint, 과제 환산점수 update #xodus 수정완료-->
|
||||
update lect l
|
||||
inner join cm c on l.cmno = c.cmno and c.isdel = 0
|
||||
inner join users u on l.userno = u.userno and u.status = 1
|
||||
left outer join cmsd cs on cs.cmno=c.cmno and cs.sdtype=0 and cs.isdel=0
|
||||
inner join cmev ce on c.cmno = ce.cmno
|
||||
left outer join (
|
||||
select lectno, avg(cpoint) as cpoint
|
||||
from lectsd ls
|
||||
INNER JOIN cmsd cs ON ls.sdno = cs.sdno AND cs.isdel = 0
|
||||
where lectno = #lectno#
|
||||
) ls on l.lectno=ls.lectno
|
||||
set l.udt = now(), l.uno=#uno#, l.uip=#uip#
|
||||
,l.spoint = round(((ifnull(ls.cpoint,0) / 100) * ce.subject),0)
|
||||
,l.tpoint = round(((ifnull(ls.cpoint,0) / 100) * ce.subject),0) + ifnull(l.apoint, 0) + ifnull(l.fpoint, 0) + ifnull(l.dpoint, 0) + ifnull(l.mpoint, 0)
|
||||
where cs.sdtype = 0 and l.lectno = #lectno#;
|
||||
inner join (
|
||||
select l.lectno, round(avg(ifnull(ls.cpoint,0)),1) as avgtpoint, round(((round(avg(ifnull(ls.cpoint,0)),1) * ce.subject / 100) ),1) spoint
|
||||
from lect l
|
||||
inner join cmsd cs on l.cmno = cs.cmno and cs.sdtype = 0 and cs.isdel = 0
|
||||
left outer join lectsd ls on l.lectno = ls.lectno and cs.sdno = ls.sdno and ls.sdno=#sdno#
|
||||
inner join cmev ce on l.cmno = ce.cmno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
set l.spoint = t.spoint
|
||||
, l.subjectpoint = t.avgtpoint
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.status = 1 and l.lectno = #lectno#;
|
||||
|
||||
<!--토론(중복시 아래 avg로 처리됨), lect.spoint, 토론 환산점수 update #xodus-->
|
||||
<!--토론(중복시 아래 avg로 처리됨),, lect.dpoint, 토론 환산점수 update #xodus 수정완료-->
|
||||
update lect l
|
||||
inner join cm c on l.cmno = c.cmno and c.isdel = 0
|
||||
inner join users u on l.userno = u.userno and u.status = 1
|
||||
left outer join cmsd cs on cs.cmno=c.cmno and cs.sdtype=1 and cs.isdel=0
|
||||
inner join cmev ce on c.cmno = ce.cmno
|
||||
left outer join (
|
||||
select lectno, avg(cpoint) as cpoint
|
||||
from lectsd ls
|
||||
INNER JOIN cmsd cs ON ls.sdno = cs.sdno AND cs.isdel = 0
|
||||
where lectno = #lectno#
|
||||
) ls on l.lectno=ls.lectno
|
||||
set l.udt = now(), l.uno=#uno#, l.uip=#uip#
|
||||
,l.spoint = round(((ifnull(ls.cpoint,0) / 100) * ce.discuss),0)
|
||||
,l.tpoint = round(((ifnull(ls.cpoint,0) / 100) * ce.discuss),0) + ifnull(l.apoint, 0) + ifnull(l.fpoint, 0) + ifnull(l.dpoint, 0) + ifnull(l.mpoint, 0)
|
||||
where cs.sdtype = 1 and l.lectno = #lectno#;
|
||||
inner join (
|
||||
select l.lectno, round(avg(ifnull(ls.cpoint,0)),1) as avgtpoint, round(((round(avg(ifnull(ls.cpoint,0)),1) * ce.discuss / 100)),1) dpoint
|
||||
from lect l
|
||||
inner join cmsd cs on l.cmno = cs.cmno and cs.sdtype = 1 and cs.isdel = 0
|
||||
left outer join lectsd ls on l.lectno = ls.lectno and cs.sdno = ls.sdno and ls.sdno=#sdno#
|
||||
inner join cmev ce on l.cmno = ce.cmno
|
||||
where l.status = 1 and l.lectno = #lectno#
|
||||
group by l.lectno
|
||||
)t on l.lectno = t.lectno
|
||||
set l.dpoint = t.dpoint
|
||||
, l.discusspoint = t.avgtpoint
|
||||
, l.udt = now()
|
||||
, l.uno = #uno#
|
||||
, l.uip=#uip#
|
||||
where l.status = 1 and l.lectno = #lectno#;
|
||||
|
||||
</update>
|
||||
<update id="lect.lectsd.savebatch" parameterClass="lectsd">
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<provider name="MySql" />
|
||||
<!--실서버 원격접속(개발자)-->
|
||||
<!--<dataSource name="mysqlcon" connectionString="Server=118.219.255.222;Database=lmsynicte;User ID=ynicteadmin;Password=ynicte@Database" />-->
|
||||
<dataSource name="mysqlcon" connectionString="Server=118.219.255.222;Database=lmsynicte;User ID=ynicteadmin;Password=ynicte@Database;Connect Timeout=30" />
|
||||
<dataSource name="mysqlcon" connectionString="Server=118.219.255.222;Database=lmsynicte;User ID=ynicteadmin;Password=ynicte@Database;Connect Timeout=40" />
|
||||
</database>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@ namespace NP.FO.Controllers
|
|||
{
|
||||
menu = new MenuPage();
|
||||
}
|
||||
if(m.pno == 16)
|
||||
if(m.pno == 16 && false)
|
||||
{
|
||||
sbmauth.Append(string.Format("<li class=\"topmenu{1}\"><a href=\"#\" onclick=\"gomenu({2}, {3}, '{4}', this)\">{0}</a><ul>", m.pagename, m.pno,menu.pno,menu.pagetype,menu.pageurl));
|
||||
}
|
||||
|
|
@ -334,7 +334,7 @@ namespace NP.FO.Controllers
|
|||
}
|
||||
if (m.usertype == 0)
|
||||
{
|
||||
if (m.pno == 16)
|
||||
if (m.pno == 16 && false)
|
||||
{
|
||||
sbm.Append(string.Format("<li class=\"topmenu{1}\"><a href=\"#\" onclick=\"msg('로그인 후 진행 할 수 있습니다.', null, null, null, 'location.href=\\'/Account/Index?ru={4}\\'')\">{0}</a><ul>", m.pagename, m.pno, menu.pno, menu.pagetype, menu.pageurl));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@
|
|||
});
|
||||
function login() {
|
||||
if (val("uid") != "" && val("upw") != "") {
|
||||
capp("/focommon/login", { uid: val("uid"), upw: val("upw"), issaveid: $("#issaveid").prop("checked") }, "cblogin");
|
||||
capp("/focommon/login", { uid: val("uid"), upw: strEnConvert(val("upw")), issaveid: $("#issaveid").prop("checked") }, "cblogin");
|
||||
}
|
||||
else if (val("uid") == "") {
|
||||
focus("uid");
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
|
||||
function login() {
|
||||
if (val("uid") != "" && val("upw") != "") {
|
||||
capp("/focommon/login", { uid: val("uid"), upw: val("upw"), issaveid: $("#issaveid").prop("checked") }, "cblogin");
|
||||
capp("/focommon/login", { uid: val("uid"), upw: strEnConvert(val("upw")), issaveid: $("#issaveid").prop("checked") }, "cblogin");
|
||||
}
|
||||
else if (val("uid") == "") {
|
||||
focus("uid");
|
||||
|
|
|
|||
|
|
@ -169,7 +169,8 @@ else
|
|||
var ismobile = '@(Model.User.authplatform == AuthPlatform.Mobile)' == 'True';
|
||||
setv("userid", val("userid").replace(/ /, '').replace(/ /, ''));
|
||||
setv("userpno", val("userpno1").replace(/ /, '').replace(/ /, '') + "" + val("userpno2").replace(/ /, '').replace(/ /, ''));
|
||||
setv("userpass", val("userpass").replace(/ /, '').replace(/ /, ''));
|
||||
setv("userpass", strEnConvert(val("userpass").replace(/ /, '').replace(/ /, '')));
|
||||
setv("userpass2", strEnConvert(val("userpass2").replace(/ /, '').replace(/ /, '')));
|
||||
setv("username", val("username").replace(/ /, '').replace(/ /, ''));
|
||||
setv("email", val("email").replace(/ /, '').replace(/ /, ''));
|
||||
setv("mobile", val("mobile").replace(/ /, '').replace(/ /, ''));
|
||||
|
|
@ -193,6 +194,7 @@ else
|
|||
else if ($("input:radio[name='slevel']:checked").val() == null) { msg("학력을 선택해주세요"); }
|
||||
else if (!$("#agree").prop("checked")) { $("#agree").focus(); msg("이용약관/개인정보처리방침에 동의해주세요."); }
|
||||
else {
|
||||
///////////////$("#userpass").val()
|
||||
cap("/focommon/join", "mform", "cbsave");
|
||||
}
|
||||
}
|
||||
|
|
@ -252,4 +254,5 @@ else
|
|||
mobilechkview('MCHK');
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
}
|
||||
@if (Model.LectEX.edate > DateTime.Now && Model.LectEX.estart != null && Model.LectEX.isreexamable == 1 && Model.LectEX.iscomplete != 1)
|
||||
{
|
||||
// #xodus extype 추가
|
||||
<li><a href="#" class="bk" onclick="javascript:reexam(@Model.LectEX.exno,@Model.LectEX.lectno,@Model.LectEX.extype)">재응시</a></li>
|
||||
}
|
||||
|
||||
|
|
@ -82,9 +83,13 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// #xodus extype 추가
|
||||
function reexam(exno, lectno, extype) {
|
||||
confirmtoggle(true, "이전 시험기록을 초기화하고 다시 시험에 응시하시겠습니까? ", "gogo(" + exno + "," + lectno + "," + extype + ")");
|
||||
}
|
||||
|
||||
// #xodus extype 추가
|
||||
function gogo(exno, lectno, extype) {
|
||||
capp("/fcommon/reexamforuser", { exno: exno, lectno: lectno, extype: extype }, "cbreexam");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,6 +101,17 @@
|
|||
|
||||
}
|
||||
@section scripts{
|
||||
<style>
|
||||
#popScd {
|
||||
top: -170px;
|
||||
}
|
||||
.mpgPopCont {
|
||||
height:550px
|
||||
}
|
||||
.mpgPopBtn {
|
||||
padding-top: 30px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function warningdate() {
|
||||
$('#layermessage')
|
||||
|
|
@ -136,6 +147,9 @@
|
|||
var divScd = $("#divScd");
|
||||
var divTitle = $("#divTitle");
|
||||
let onceCheck = false;
|
||||
let studyplaceCheck = false;
|
||||
let notContentsCheck = false;
|
||||
|
||||
divTitle.empty();
|
||||
if (cshape == 1)
|
||||
{
|
||||
|
|
@ -144,7 +158,20 @@
|
|||
else if (cshape == 2)
|
||||
{
|
||||
dateStyle = "style2";
|
||||
|
||||
if (capResult.obj.length > 0) {
|
||||
if (capResult.obj[0].studyplace == null) {
|
||||
studyplaceCheck = false;
|
||||
}
|
||||
else {
|
||||
studyplaceCheck = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
studyplaceCheck = false;
|
||||
}
|
||||
|
||||
if (!studyplaceCheck) { // capResult.obj[0].studyplace == null
|
||||
strTmp = "<h5> 교육종료일(수료일자) 변경 </ul>";
|
||||
}
|
||||
else {
|
||||
|
|
@ -235,6 +262,7 @@
|
|||
li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>");
|
||||
ulScd.append(li);
|
||||
noDisPlay = false;
|
||||
notContentsCheck = true;
|
||||
}
|
||||
|
||||
li.append(pData);
|
||||
|
|
@ -242,8 +270,19 @@
|
|||
|
||||
});
|
||||
|
||||
if (capResult.obj.length == 0) {
|
||||
var li = $("<li />");
|
||||
li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>");
|
||||
ulScd.append(li);
|
||||
notContentsCheck = true;
|
||||
}
|
||||
|
||||
|
||||
if (notContentsCheck) {
|
||||
$(".mpgPopCont").css("height", "300px")
|
||||
}
|
||||
else {
|
||||
$(".mpgPopCont").css("height", "550px")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,10 @@
|
|||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$($(".topmenu16 a")[0]).attr("onclick", "")
|
||||
$($(".topmenu16 a")[0]).css("cursor", "default")
|
||||
});
|
||||
//GNB
|
||||
$('.gnbMo').click(function(){
|
||||
if($(this).is('.on')) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
|
||||
<script type="text/javascript" src="/js/placeholders.min.js"></script>
|
||||
<script type="text/javascript" src="/js/slick.min.js"></script>
|
||||
<script type="text/javascript" src="/js/site.js?v=200320"></script>
|
||||
<script type="text/javascript" src="/js/site.js?v=230214"></script>
|
||||
<script type="text/javascript" src="/js/master.js"></script>
|
||||
<script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
|
||||
<script src="https://vjs.zencdn.net/7.7.6/video.js"></script>
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@
|
|||
<add key="daokey" value="ynictelms2020" />
|
||||
|
||||
<!--<add key="configpath" value="Product" />-->
|
||||
<add key="configpath" value="ProductDev" />
|
||||
<!--<add key="configpath" value="Staging" />-->
|
||||
<!--<add key="configpath" value="ProductDev" />-->
|
||||
<add key="configpath" value="Staging" />
|
||||
|
||||
<add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" />
|
||||
|
||||
|
|
|
|||
|
|
@ -1144,3 +1144,9 @@ function goremote() {
|
|||
function checkall(c, cssclass) {
|
||||
$("input[type=checkbox]." + cssclass).prop("checked", $(c).prop("checked"));
|
||||
}
|
||||
|
||||
function strEnConvert(str) {
|
||||
let rslt = str.replace(/&#/gi, "%26%23");
|
||||
|
||||
return rslt;
|
||||
}
|
||||
|
|
@ -170,9 +170,11 @@ namespace NP.Model
|
|||
//public Int64? longv1 { get; set; }
|
||||
//public Int64? longv2 { get; set; }
|
||||
//public Int64? longv3 { get; set; }
|
||||
//public double? dblv1 { get; set; }
|
||||
//public double? dblv2 { get; set; }
|
||||
//public double? dblv3 { get; set; }
|
||||
public double? dblv1 { get; set; }
|
||||
public double? dblv2 { get; set; }
|
||||
public double? dblv3 { get; set; }
|
||||
public double? dblv4 { get; set; }
|
||||
public double? dblv5 { get; set; }
|
||||
|
||||
public String zstring0 { get; set; }
|
||||
public String zstring1 { get; set; }
|
||||
|
|
|
|||
38
Model/CM.cs
38
Model/CM.cs
|
|
@ -1356,13 +1356,17 @@ namespace NP.Model
|
|||
|
||||
public int? scdtype { get; set; }
|
||||
public int? isoffabs { get; set; }
|
||||
|
||||
public String ex0point
|
||||
{
|
||||
get
|
||||
{
|
||||
return ex0cnt < 1 ? "-" : ex0lectcnt < 1 && ex0cnt > 0 ? "미제출" : ex0lectpoint.ToString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 최종평가(구)
|
||||
public String ex1point
|
||||
{
|
||||
get
|
||||
|
|
@ -1370,6 +1374,8 @@ namespace NP.Model
|
|||
return ex1cnt < 1 ? "-" : ex1lectcnt < 1 && ex1cnt < 0 ? "미제출" : ex1lectpoint.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
// 과제점수(구)
|
||||
public String sd0point
|
||||
{
|
||||
get
|
||||
|
|
@ -1384,6 +1390,8 @@ namespace NP.Model
|
|||
return sd1cnt < 1 ? "-" : sd1lectcnt < 1 && sd1cnt > 0 ? "미제출" : sd1lectpoint.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
// 강의평가(구)
|
||||
public String rs0point
|
||||
{
|
||||
get
|
||||
|
|
@ -1391,6 +1399,8 @@ namespace NP.Model
|
|||
return rs0lectcnt + " / " + rs0cnt;
|
||||
}
|
||||
}
|
||||
|
||||
// 총점(구)
|
||||
public String tpointstr
|
||||
{
|
||||
get
|
||||
|
|
@ -1398,6 +1408,34 @@ namespace NP.Model
|
|||
return ((apoint + mpoint + fpoint + spoint + dpoint)).ToString();
|
||||
}
|
||||
}
|
||||
|
||||
// 최종평가(신)
|
||||
public String exfpoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return ex1cnt <= 0 ? "-" : dblv2 < 0 && ex1cnt > 0 ? "미제출" : dblv2.ToString(); // 시험은 미시험/재응시는 항목이 없으므로 -1값
|
||||
}
|
||||
}
|
||||
|
||||
// 과제(신)
|
||||
public String subjectpoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return sd0cnt <= 0 ? "-" : dblv3 < 1 && sd0cnt > 0 ? "미제출" : dblv3.ToString(); // 과제는 1보다 적을 경우 미제출
|
||||
}
|
||||
}
|
||||
|
||||
// 강의평가
|
||||
public String rsCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return "( " + (rs0lectcnt > 0 ? 1 : 0) + " / " + (rs0cnt > 0 ? 1 : 0) + " )";
|
||||
}
|
||||
}
|
||||
|
||||
public String isoffabsstr
|
||||
{
|
||||
get
|
||||
|
|
|
|||
Loading…
Reference in New Issue