<단순작업>

1. 개발용으로 단순변경
2. 성적처리 관련 일괄 업로드
This commit is contained in:
jity7777 2023-02-23 05:33:05 +00:00
parent 6708f26f21
commit 2a8a402ce8
31 changed files with 1565 additions and 403 deletions

View File

@ -703,6 +703,8 @@
<Content Include="Views\cc\exelboard.cshtml" /> <Content Include="Views\cc\exelboard.cshtml" />
<Content Include="Views\cc\homer2.cshtml" /> <Content Include="Views\cc\homer2.cshtml" />
<Content Include="Views\Shared\Partial\ExcelCommentBox.cshtml" /> <Content Include="Views\Shared\Partial\ExcelCommentBox.cshtml" />
<Content Include="Views\croom\grade0_1.cshtml" />
<Content Include="Views\croom\gradeall0_1.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />

View File

@ -588,6 +588,7 @@ namespace NP.BO.Controllers
{ {
vm.tabidx = 4; vm.tabidx = 4;
} }
ViewBag.userno = SUserInfo.UserNo;
switch (vm.tabidx) switch (vm.tabidx)
{ {
case 0: case 0:
@ -626,7 +627,7 @@ namespace NP.BO.Controllers
if (searchCheck) 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.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" } }); //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,7 +784,8 @@ namespace NP.BO.Controllers
vm.excellog.userno = SUserInfo.UserNo; vm.excellog.userno = SUserInfo.UserNo;
vm.excellog.userip = GetUserIP(); vm.excellog.userip = GetUserIP();
} }
if(searchGo == "T" || vm.isexceldown == 1) ViewBag.userno = SUserInfo.UserNo;
if (searchGo == "T" || vm.isexceldown == 1)
{ {
switch (vm.tabidx) switch (vm.tabidx)
{ {
@ -791,31 +793,51 @@ namespace NP.BO.Controllers
//ht.Add("ustatus", 1); //ht.Add("ustatus", 1);
ht.Add("orderby", "ua.asname,ua.asno,u.username"); 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); vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll", ht);
}
else if (vm.isexceldown == 1)
{ {
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll2", ht); return ExportExcel(
} new String[] { "순번","결제번호", "사용자ID", "이름","주민번호","교육생연락처","교육유형","교육구분"
if (vm.isexceldown == 1)
{
return ExportExcel(
new String[] { "순번","결제번호", "사용자ID", "이름","주민번호","교육생연락처","교육유형","교육구분"
, "기술인분류", "직무분야","교육목적","등급", "교육시작일", "교육종료일", "과정명","수료번호","교육이수시간" , "기술인분류", "직무분야","교육목적","등급", "교육시작일", "교육종료일", "과정명","수료번호","교육이수시간"
, "진도율", "평가점수", "과제점수", "총점", "온라인집체교육출석여부", "강의평가" , "진도율", "평가점수", "과제점수", "총점", "온라인집체교육출석여부", "강의평가"
,"업체명","업체주소","사업자등록번호","고용보험관리번호","업태","종목","대표자","학력","직위","업체담당자","업체담당자 연락처" ,"업체명","업체주소","사업자등록번호","고용보험관리번호","업태","종목","대표자","학력","직위","업체담당자","업체담당자 연락처"
,"교육비","환급여부","환급액","환급은행명","환급계좌","환급계좌예금주","계산서이메일","소속협회" ,"교육비","환급여부","환급액","환급은행명","환급계좌","환급계좌예금주","계산서이메일","소속협회"
,"교육상위분류","교육하위분류","교육장소","교육연도", "수료여부"}, ,"교육상위분류","교육하위분류","교육장소","교육연도", "수료여부"},
new String[] { "rno","payno", "userid", "username","userpno", "mobile","cshapename","edukind" new String[] { "rno","payno", "userid", "username","userpno", "mobile","cshapename","edukind"
, "typemanname","typejobname","typeeduname","typegradename", "sdatestr", "edatestr", "cname","completeno","studytime" , "typemanname","typejobname","typeeduname","typegradename", "sdatestr", "edatestr", "cname","completeno","studytime"
, "attrate", "ex1point", "sd0point", "tpointstr", "isoffabsstr", "rs0point" , "attrate", "ex1point", "sd0point", "tpointstr", "isoffabsstr", "rs0point"
,"asname","addr","brno","eino","btype","bkind","ceoname","slevelName","uduty","mname","mphone" ,"asname","addr","brno","eino","btype","bkind","ceoname","slevelName","uduty","mname","mphone"
,"payamt","isrebatename","rbankamt","rbank","rbankaccnum","rbankuser","taxemail","association" ,"payamt","isrebatename","rbankamt","rbank","rbankaccnum","rbankuser","taxemail","association"
,"pcgname","cgname","studyplacename","tyear", "iscompletename" }, ,"pcgname","cgname","studyplacename","tyear", "iscompletename" },
vm.Lects, vm.Lects,
"성적처리전체" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day, null, ",2,4", vm.excellog); "성적처리전체" + 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()); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
break; break;

View File

@ -37,7 +37,17 @@
@*<li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="gotab(5);" data-toggle="tab">토론</a></li>*@ @*<li class="@(Model.tabidx == 5 ? "active" : "")"><a href="#" onclick="gotab(5);" data-toggle="tab">토론</a></li>*@
} }
</ul> </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> <form id="dform" method="post" action="/croom/grades">@Html.Partial("./Partial/DForm", Model, new ViewDataDictionary { { "preform", 1 } })</form>
@section styles{ @section styles{
<style type="text/css"> <style type="text/css">

View File

@ -1,5 +1,5 @@
@model NP.Model.VMLect @model NP.Model.VMLect
@{ @{
var ev = Model.Lects.FirstOrDefault() ?? new NP.Model.Lect() { }; var ev = Model.Lects.FirstOrDefault() ?? new NP.Model.Lect() { };
} }
<form id="mform" method="post"> <form id="mform" method="post">
@ -103,7 +103,7 @@
<tr> <tr>
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th> <th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="20">No</th> <th width="20">No</th>
@if(Model.CMEV.cshape == 2) @if (Model.CMEV.cshape == 2)
{ {
<th width="30">운영기수</th> <th width="30">운영기수</th>
} }
@ -118,7 +118,7 @@
<th>과제(@ev.sd0cnt)</th> <th>과제(@ev.sd0cnt)</th>
<th style="display:none;">토론(@ev.sd1cnt)</th> <th style="display:none;">토론(@ev.sd1cnt)</th>
<th>환산점수</th> <th>환산점수</th>
@if(Model.CMEV.isoffabs == 1) @if (Model.CMEV.isoffabs == 1)
{ {
<th>집합교육출석여부</th> <th>집합교육출석여부</th>
} }
@ -130,71 +130,65 @@
<tbody class="data" id="tbody1"> <tbody class="data" id="tbody1">
@foreach (var d in Model.Lects) @foreach (var d in Model.Lects)
{ {
<tr> <tr>
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td> <td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td>
<td>@d.rnorvt</td> <td>@d.rnorvt</td>
@if(Model.CMEV.cshape == 2) @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> <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"><a href="#" onclick="javascript: openScd(@Model.CM.cmno,@d.lectno,@d.cmisno);">@d.eend.ToShortDateString()</a></td>
}
else
{
<td>@d.eend.ToShortDateString()</td>
}
} }
else else
{ {
<td>[2] @d.eend.ToShortDateString()</td> <td>@d.edate.Value.ToShortDateString()</td>
} }
} @if (!ViewBag.IsSubAdmin96)
else {
{ <td class="link text-center"><a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td>
<td>[3] @d.edate.Value.ToShortDateString()</td> }
} else
@if (!ViewBag.IsSubAdmin96) {
{ <td class="link text-center">@d.attrate %</td>
<td class="link text-center">[4] <a onclick="viewatt(@d.lectno)" href="#">@d.attrate %</a></td> }
} @*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@
else <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 class="link text-center">[5] @d.attrate %</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.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.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>[6] @(d.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.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>[7] @(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.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 style="display:none;">[8] @( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.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>*@
<td> @if (Model.CMEV.isoffabs == 1)
[9] @(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString()) {
// @(d.apoint) @(d.mpoint) @(d.fpoint) @(d.spoint) @(d.dpoint) <td class="link text-center"><a href="#" onclick="save4();">@d.istatusname</a></td>
</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.rs0lectcnt) / @(d.rs0cnt)</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.rs0lectcnt > 0 ? 1 : 0) / @(d.rs0cnt > 0 ? 1 : 0)</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> @if (!ViewBag.IsSubAdmin96)
<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="@(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>
{ }
<td class="link text-center">[10] <a href="#" onclick="save4();">@d.istatusname</a></td> else
} {
<td> <td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
[11] @(d.rs0cnt == 0 ? 0 : 1) / @(d.rs0cnt == 0 ? 0 :(d.rs0cnt/ d.rs0cnt)) }
| @*<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>*@
@(d.rs0lectcnt) / @(d.rs0cnt) </tr>
</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> </tbody>
</table> </table>
@ -226,7 +220,7 @@
<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> <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 /> <br />
<table class="regtable"> <table class="regtable">
<colgroup><col width="100"/><col/></colgroup> <colgroup><col width="100" /><col /></colgroup>
<tr style="display:none;"> <tr style="display:none;">
<th>회차선택</th> <th>회차선택</th>
<td> <td>
@ -254,7 +248,7 @@
<td colspan="2"> <td colspan="2">
<select id="cmisno" class="form-control" onchange="getoff()"> <select id="cmisno" class="form-control" onchange="getoff()">
<option value="">신청교육일</option> <option value="">신청교육일</option>
@foreach(var d in Model.CMinningscds) @foreach (var d in Model.CMinningscds)
{ {
<option value="@d.cmisno">@d.estart.ToString("yyyy-MM-dd")</option> <option value="@d.cmisno">@d.estart.ToString("yyyy-MM-dd")</option>
} }
@ -396,7 +390,7 @@
msg2("수료일자를 변경했습니다.", null, null, null, true); msg2("수료일자를 변경했습니다.", null, null, null, true);
submit("mform", 500, true); submit("mform", 500, true);
} else { msgadmin2(); } } else { msgadmin2(); }
} }
function save4() { function save4() {
bglayer(); $("#thisbox2").slideDown("fast", function () { $("#thisbox2").scrollTop(0); }); bglayer(); $("#thisbox2").slideDown("fast", function () { $("#thisbox2").scrollTop(0); });
if ($("#cmino option").length > 1) { if ($("#cmino option").length > 1) {

View File

@ -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>&nbsp;&nbsp;
<label><input type="checkbox" name="addstringval5" value="1" @(Model.addstringval5 == "1" ? "checked" : "") onchange="findme()" /> 진도율조건충족</label>&nbsp;&nbsp;
<label><input type="checkbox" name="addstringval6" value="1" @(Model.addstringval6 == "1" ? "checked" : "") onchange="findme()" /> 시험기준충족</label>&nbsp;&nbsp;
@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;평가안내")
&nbsp;&nbsp;&nbsp;
@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>
}
}
&nbsp;&nbsp;&nbsp;
<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>미입력&nbsp;&nbsp;<input type="radio" name="attradio" onchange="changeatt('-1')" /></th>
<th>출석&nbsp;&nbsp;<input type="radio" name="attradio" onchange="changeatt('2')" /></th>
<th>결석&nbsp;&nbsp;<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>&nbsp;&nbsp;" +
"<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>

View File

@ -1,115 +1,126 @@
@model NP.Model.VMLect @model NP.Model.VMLect
<form id="mform" method="post"> <form id="mform" method="post">
<input type="hidden" id="mform_tabidx" name="tabidx" value="@Model.tabidx" /> <input type="hidden" id="mform_tabidx" name="tabidx" value="@Model.tabidx" />
<section class="panel panel-default clearfix devsearch" data-cleartbody="tbody1"> <section class="panel panel-default clearfix devsearch" data-cleartbody="tbody1">
@*@Html.Partial("./Partial/SearchCaption")*@ @*@Html.Partial("./Partial/SearchCaption")*@
<div class="table-responsive"> <div class="table-responsive">
<table class="table b-t b-light viewtable"> <table class="table b-t b-light viewtable">
<colgroup> <colgroup>
<col width="15%" /> <col width="15%" />
<col width="35%" /> <col width="35%" />
<col width="15%" /> <col width="15%" />
<col width="*" /> <col width="*" />
<col /> <col />
</colgroup> </colgroup>
<tbody id="searchtbody"> <tbody id="searchtbody">
<tr> <tr>
<th>교육종료일</th> <th>교육종료일</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval) ? (DateTime?)null : Convert.ToDateTime(Model.stringval), new ViewDataDictionary { { "name", "stringval" } }) @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval) ? (DateTime?)null : Convert.ToDateTime(Model.stringval), new ViewDataDictionary { { "name", "stringval" } })
~ @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval12) ? (DateTime?)null : Convert.ToDateTime(Model.stringval12), new ViewDataDictionary { { "name", "stringval12" } }) ~ @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval12) ? (DateTime?)null : Convert.ToDateTime(Model.stringval12), new ViewDataDictionary { { "name", "stringval12" } })
</div> </div>
<input type="hidden" name="searchGo" value="1" /> <input type="hidden" name="searchGo" value="1" />
</td> </td>
<th>교육유형</th> <th>교육유형</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":전체;2:온라인교육;1:교육장교육" }, { "name", "stringval2" }, { "selected", Model.stringval2 } }) @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":전체;2:온라인교육;1:교육장교육" }, { "name", "stringval2" }, { "selected", Model.stringval2 } })
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>과정명</th> <th>과정명</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval3, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval3", Value = Model.stringval3 })) @Html.Partial("./Partial/Text", Model.stringval3, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval3", Value = Model.stringval3 }))
</div> </div>
</td> </td>
<th>수료여부</th> <th>수료여부</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":수료여부;0:미수료;1:수료" }, { "name", "stringval4" }, { "selected", Model.stringval4 } }) @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":수료여부;0:미수료;1:수료" }, { "name", "stringval4" }, { "selected", Model.stringval4 } })
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>교육장</th> <th>교육장</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "style", "width: 100%" }, { "df", ":교육장선택" } }) @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "style", "width: 100%" }, { "df", ":교육장선택" } })
</div> </div>
</td> </td>
<th>교육생</th> <th>교육생</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "valuetext", "usernamestr:이름;useridstr:ID" } }) @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "valuetext", "usernamestr:이름;useridstr:ID" } })
@Html.Partial("./Partial/Text", Model.stringval7, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval7", Style = "width:70%; display:inline-block;", Value = Model.stringval7, CssClass = "ff" })) @Html.Partial("./Partial/Text", Model.stringval7, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval7", Style = "width:70%; display:inline-block;", Value = Model.stringval7, CssClass = "ff" }))
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>교육기간</th> <th>교육기간</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval8) ? (DateTime?)null : Convert.ToDateTime(Model.stringval8), new ViewDataDictionary { { "name", "stringval8" } }) ~ @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval9) ? (DateTime?)null : Convert.ToDateTime(Model.stringval9), new ViewDataDictionary { { "name", "stringval9" } }) @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval8) ? (DateTime?)null : Convert.ToDateTime(Model.stringval8), new ViewDataDictionary { { "name", "stringval8" } }) ~ @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval9) ? (DateTime?)null : Convert.ToDateTime(Model.stringval9), new ViewDataDictionary { { "name", "stringval9" } })
</div> </div>
</td> </td>
<th>고객사</th> <th>고객사</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval10, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval10", Style = "width:70%; display:inline-block;", Value = Model.stringval10, CssClass = "ff" })) @Html.Partial("./Partial/Text", Model.stringval10, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval10", Style = "width:70%; display:inline-block;", Value = Model.stringval10, CssClass = "ff" }))
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>핸드폰</th> <th>핸드폰</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval11, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval11", Style = "width:70%; display:inline-block;", Value = Model.stringval11, CssClass = "esitem" })) @Html.Partial("./Partial/Text", Model.stringval11, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval11", Style = "width:70%; display:inline-block;", Value = Model.stringval11, CssClass = "esitem" }))
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</section> </section>
<div style="text-align: right; border-bottom: 1px solid #ddd; padding-bottom: 5px;"> <div style="text-align: right; border-bottom: 1px solid #ddd; padding-bottom: 5px;">
<button class="btn btn-default btn-s-xs" type="button" onclick="listgo();"><i class="fa fa-search"></i></button> <button class="btn btn-default btn-s-xs" type="button" onclick="listgo();"><i class="fa fa-search"></i></button>
</div><br /> </div><br />
<ul class="pagination pagination-md"> <ul class="pagination pagination-md">
@if (ViewBag.IsSubAdmin96) @if (ViewBag.IsSubAdmin96)
{ {
<li class="@(Model.tabidx == 0 ? "active" : "")"><a href="#" onclick="gotab(0);" data-toggle="tab">종합</a></li> <li class="@(Model.tabidx == 0 ? "active" : "")"><a href="#" onclick="gotab(0);" data-toggle="tab">종합</a></li>
@*<li class="@(Model.tabidx == 2 ? "active" : "")"><a href="#" onclick="gotab(2);" data-toggle="tab">진행평가</a></li>*@ @*<li class="@(Model.tabidx == 2 ? "active" : "")"><a href="#" onclick="gotab(2);" data-toggle="tab">진행평가</a></li>*@
<li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="gotab(3);" data-toggle="tab">최종평가</a></li> <li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="gotab(3);" data-toggle="tab">최종평가</a></li>
<li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li> <li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li>
} }
else if (ViewBag.IsSubAdmin97) else if (ViewBag.IsSubAdmin97)
{ {
<li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li> <li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li>
} }
else else
{ {
<li class="@(Model.tabidx == 0 ? "active" : "")"><a href="#" onclick="gotab(0);" data-toggle="tab">종합</a></li> <li class="@(Model.tabidx == 0 ? "active" : "")"><a href="#" onclick="gotab(0);" data-toggle="tab">종합</a></li>
@*<li class="@(Model.tabidx == 2 ? "active" : "")"><a href="#" onclick="gotab(2);" data-toggle="tab">진행평가</a></li>*@ @*<li class="@(Model.tabidx == 2 ? "active" : "")"><a href="#" onclick="gotab(2);" data-toggle="tab">진행평가</a></li>*@
<li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="gotab(3);" data-toggle="tab">최종평가</a></li> <li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="gotab(3);" data-toggle="tab">최종평가</a></li>
<li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li> <li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li>
} }
</ul> </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)*@
</form>
@{
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{ @section styles{
<style type="text/css"> <style type="text/css">
#bglayer2 { #bglayer2 {

View File

@ -84,6 +84,8 @@
{ {
<td>@d.edate.Value.ToShortDateString()</td> <td>@d.edate.Value.ToShortDateString()</td>
} }
@*진도율*@
@if (!ViewBag.IsSubAdmin96) @if (!ViewBag.IsSubAdmin96)
{ {
<td class="link text-center"><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>
@ -93,10 +95,21 @@
<td class="link text-center">@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>@( 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>@(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 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) @if (d.isoffabs == 1)
{ {
<td class="link text-center"><a href="#" onclick="save4(@d.cmno,@d.lectno);">@d.istatusname</a></td> <td class="link text-center"><a href="#" onclick="save4(@d.cmno,@d.lectno);">@d.istatusname</a></td>

View File

@ -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>
}
}
&nbsp;&nbsp;&nbsp;
</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>미입력&nbsp;&nbsp;<input type="radio" name="attradio" onchange="changeatt('-1')" /></th>
<th>출석&nbsp;&nbsp;<input type="radio" name="attradio" onchange="changeatt('2')" /></th>
<th>결석&nbsp;&nbsp;<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>&nbsp;&nbsp;" +
"<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>

View File

@ -86,7 +86,8 @@
<td class="link text-center"> <td class="link text-center">
@if (d.estart != null) @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> </td>
@if (!ViewBag.IsSubAdmin96) @if (!ViewBag.IsSubAdmin96)
@ -223,8 +224,10 @@
function findme() { function findme() {
bglayer(); submit(); 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() { function cbreexam() {
if (capResult.code == 1000) { if (capResult.code == 1000) {

View File

@ -576,6 +576,8 @@
setv("User_mobile", formatmobile(val("User_mobile"))); setv("User_mobile", formatmobile(val("User_mobile")));
setv("User_telno", formatphone(val("User_telno"))); setv("User_telno", formatphone(val("User_telno")));
setv("User_birthday", makebirthday(val("userpno1") + val("userpno2"))); 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("권한을 선택해주세요."); } if (val("User_usertype") == "0" || val("User_usertype") == "") { focus("User_usertype");msg("권한을 선택해주세요."); }
else if (check("User_userid", null, "ID를 입력해주세요.")) { } else if (check("User_userid", null, "ID를 입력해주세요.")) { }
else if (val("User_userid").length < 4) {focus("User_userid"); msg("ID를 4글자 이상으로 입력해주세요.");} 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> </script>
} }

View File

@ -477,10 +477,12 @@ namespace NP.Base.Controllers
{ {
if (type == "all") if (type == "all")
{ {
// 출석완료 처리
return JsonOK(Dao.Save("att.attend.allin", new Hashtable() { { "lectnos", lectnos }, { "statusreason", "관리자 일괄승인" }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } })); return JsonOK(Dao.Save("att.attend.allin", new Hashtable() { { "lectnos", lectnos }, { "statusreason", "관리자 일괄승인" }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
} }
else if (type == "abs") else if (type == "abs")
{ {
// 강제 수료처리
var Lects1 = Dao.Get<Lect>("grade.nocompletelect", lectnos).Where(w => w.iscomplete != 1 && lectnos.Contains(w.lectno.ToString())).ToList(); var Lects1 = Dao.Get<Lect>("grade.nocompletelect", lectnos).Where(w => w.iscomplete != 1 && lectnos.Contains(w.lectno.ToString())).ToList();
if (Lects1.Count() > 0) if (Lects1.Count() > 0)
{ {
@ -511,6 +513,7 @@ namespace NP.Base.Controllers
var cancelcount = 0; var cancelcount = 0;
foreach (var lect in lects) foreach (var lect in lects)
{ {
// #수료확인 #xodus 작업범위아님
var ispass = Dao.Get<Lect>("grade.ispass", new Hashtable() { { "lectno", lect.lectno } }).FirstOrDefault().ispass; var ispass = Dao.Get<Lect>("grade.ispass", new Hashtable() { { "lectno", lect.lectno } }).FirstOrDefault().ispass;
if (ispass == 1) if (ispass == 1)
{ {
@ -543,7 +546,7 @@ namespace NP.Base.Controllers
{ {
if (lect.iscomplete == 1) 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 } }); return JsonBack(new JsonRtn() { code = 1000, msg = "OK", obj = new { cancelcount } });
@ -755,7 +758,7 @@ namespace NP.Base.Controllers
/// <param name="lectno"></param> /// <param name="lectno"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [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); return JsonOK(Dao.Save("lect.reexam", new Hashtable() { { "exno", exno }, { "lectno", lectno }, { "extype", extype }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 1 ? 1 : 0);
} }

View File

@ -963,6 +963,7 @@ namespace NP.Base
} }
private void DataExportExcel_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) private void DataExportExcel_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{ {
string tempStr = "";
if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Header) if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Header)
{ {
//Header Text Format can be done as follows //Header Text Format can be done as follows

View File

@ -232,6 +232,7 @@ namespace NP.Base.Controllers
[HttpPost] [HttpPost]
public JsonResult ReExamForUser(int exno, Int64 lectno, int extype) public JsonResult ReExamForUser(int exno, Int64 lectno, int extype)
{ {
// #xodus extype 추가
//재응시로그추가로인해 업데이트건 3개일때부터 정상처리 //재응시로그추가로인해 업데이트건 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); return JsonOK(Dao.Save("lect.reexam", new System.Collections.Hashtable() { { "exno", exno }, { "lectno", lectno }, { "extype", extype }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 2 ? 1 : 0);
} }

View File

@ -262,7 +262,6 @@
left outer join lectinning b on b.lectno=a.lectno and b.cmino=#cmino# 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; where a.lectno=#lectno# and a.status=1 and a.ischanged=0 and b.lectno is null;
<!--진도율, lect.apoint, 진도율 환산점수 update #xodus-->
update lect a update lect a
inner join ( inner join (
select a.lectno,convert(100*count(c.lectno)/count(b.cmino), int) attrate select a.lectno,convert(100*count(c.lectno)/count(b.cmino), int) attrate
@ -273,11 +272,8 @@
where a.lectno=#lectno# and a.cmino=#cmino# and a.istatus=2 where a.lectno=#lectno# and a.cmino=#cmino# and a.istatus=2
group by a.lectno group by a.lectno
) b on b.lectno=a.lectno ) b on b.lectno=a.lectno
inner join cmev ce on a.cmno = ce.cmno
set a.attrate=b.attrate set a.attrate=b.attrate
,a.apoint = (((b.attrate / 100) * ce.attend / 100)* 100) ,a.stime=case when a.stime is null then <include refid="sql.now"></include> else a.stime end
,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.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 ,a.sip=case when a.sip is null then #uip# else a.sip end
,a.eip=case when a.eip is null then #uip# else a.eip end ,a.eip=case when a.eip is null then #uip# else a.eip end

View File

@ -312,7 +312,7 @@
,a.psec=#psec# ,a.psec=#psec#
where a.lectno=#lectno# and a.cmino=#cmino#; where a.lectno=#lectno# and a.cmino=#cmino#;
<!--진도율, lect.apoint, 진도율 환산점수 update #xodus--> <!--진도율, lect.apoint, 진도율 환산점수 update #xodus 수정완료-->
update lect a update lect a
inner join ( inner join (
select a.lectno,truncate(count(c.lectno) / count(b.cmino) * 100, 0) attrate 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 inner join cmev ce on a.cmno = ce.cmno
set a.attrate=b.attrate set a.attrate=b.attrate
,a.apoint = (((b.attrate / 100) * ce.attend / 100)* 100) ,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.etime=now()
,a.eip=#uip# ,a.eip=#uip#
,a.ispce=#ispc# ,a.ispce=#ispc#
,a.tpoint ,a.udt=now(),a.uno=#uno#,a.uip=#uip#
,udt=now(),uno=#uno#,uip=#uip#
where a.lectno=#lectno# and a.userno=#userno#; where a.lectno=#lectno# and a.userno=#userno#;
</update> </update>
<select id="cr.inningchange.pre" parameterClass="hashtable" resultClass="lectinning"> <select id="cr.inningchange.pre" parameterClass="hashtable" resultClass="lectinning">
@ -624,27 +623,44 @@
,a.cblock=#cblock# ,a.cblock=#cblock#
where a.lectno=#lectno# and a.exno=#exno# and a.eend is null; where a.lectno=#lectno# and a.exno=#exno# and a.eend is null;
<!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus--> <!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus 수정완료-->
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 --> <!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
<isEqual property="extype" compareValue="1">
update lect a <isEqual property="extype" compareValue="1">
inner join lectex le on a.lectno = le.lectno update lect l
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 inner join (
inner join cmev cv on a.cmno = cv.cmno select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# from lect l
,a.fpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0) inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 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) left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#; where l.status = 1 and l.lectno = #lectno#
</isEqual> 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"> <isEqual property="extype" compareValue="0">
update lect a update lect l
inner join lectex le on a.lectno = le.lectno inner join (
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
inner join cmev cv on a.cmno = cv.cmno from lect l
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
,a.mpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0) left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
,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 l.status = 1 and l.lectno = #lectno#
where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#; 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> </isEqual>
</update> </update>
<!--시험 임시저장--> <!--시험 임시저장-->
@ -677,27 +693,43 @@
<!--, a.overtime=case when #zstring20# is null then a.overtime else now() end--> <!--, 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; where a.lectno=#lectno# and a.exno=#exno# and a.eend is null;
<!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus--> <!--최종평가, lect.fpoint, 최종평가 환산점수 update #xodus 수정완료-->
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 --> <!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
<isEqual property="extype" compareValue="1"> <isEqual property="extype" compareValue="1">
update lect a update lect l
inner join lectex le on a.lectno = le.lectno inner join (
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
inner join cmev cv on a.cmno = cv.cmno from lect l
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
,a.fpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0) left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
,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 l.status = 1 and l.lectno = #lectno#
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#; 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>
<isEqual property="extype" compareValue="0"> <isEqual property="extype" compareValue="0">
update lect a update lect l
inner join lectex le on a.lectno = le.lectno inner join (
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
inner join cmev cv on a.cmno = cv.cmno from lect l
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
,a.mpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0) left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
,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 l.status = 1 and l.lectno = #lectno#
where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#; 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> </isEqual>
</update> </update>
<select id="cr.lectsd" parameterClass="hashtable" resultClass="lectsd"> <select id="cr.lectsd" parameterClass="hashtable" resultClass="lectsd">

View File

@ -1070,7 +1070,7 @@
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull> <isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</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) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a ) a
@ -1110,7 +1110,7 @@
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull> <isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</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) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a ) 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> <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="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) &gt;= 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) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= 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="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> <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="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</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) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a ) a
@ -1190,7 +1191,7 @@
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull> <isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</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) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a ) a
@ -1230,7 +1231,7 @@
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull> <isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</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) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a ) a
@ -1270,7 +1271,7 @@
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull> <isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</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) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= 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) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty> <isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a ) a
@ -1310,7 +1311,8 @@
<isNotNull property="est11not" prepend="and">a.sd0lectcnt &lt; a.sd0cnt</isNotNull> <isNotNull property="est11not" prepend="and">a.sd0lectcnt &lt; a.sd0cnt</isNotNull>
<isNotNull property="est12not" prepend="and">a.sd1lectcnt &lt; a.sd1cnt</isNotNull> <isNotNull property="est12not" prepend="and">a.sd1lectcnt &lt; a.sd1cnt</isNotNull>
<isNotNull property="est21not" prepend="and">a.rs0lectcnt &lt; a.rs0cnt</isNotNull> <isNotNull property="est21not" prepend="and">a.rs0lectcnt &lt; 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="cnamestr" prepend="and">c.cname like concat('%',#cnamestr#,'%')</isNotNull>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull> <isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull>
@ -1332,7 +1334,7 @@
</select> </select>
<!--#xodus--> <!--#xodus-->
<select id="grade.lectgradesToAll2" parameterClass="hashtable" resultClass="lect"> <select id="grade.lectgradesToAll2_old" parameterClass="hashtable" resultClass="lect">
select * select *
from ( from (
SELECT a.* SELECT a.*
@ -1418,10 +1420,10 @@
INNER JOIN users u ON l.userno = u.userno INNER JOIN users u ON l.userno = u.userno
INNER JOIN pay p ON p.payno = l.payno 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 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 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 LEFT OUTER JOIN cmsd cs ON l.cmno = cs.cmno AND cs.sdtype = 0 AND cs.isdel = 0
@ -1495,6 +1497,133 @@
)a )a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
order by a.rno 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) &gt;= 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) &lt;= 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) &lt;= #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) &gt;= 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) &lt;= 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 &lt; a.ex0cnt</isNotNull>
<isNotNull property="est2not" prepend="and">a.ex1lectcnt &lt; a.ex1cnt</isNotNull>
<isNotNull property="est11not" prepend="and">a.sd0lectcnt &lt; a.sd0cnt</isNotNull>
<isNotNull property="est12not" prepend="and">a.sd1lectcnt &lt; a.sd1cnt</isNotNull>
<isNotNull property="est21not" prepend="and">a.rs0lectcnt &lt; 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 &gt; 0 and a.sd0lectcnt &gt; 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) &gt;= 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) &lt;= 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> </select>
<update id="grade.lectcomplete.abs" parameterClass="hashtable"> <update id="grade.lectcomplete.abs" parameterClass="hashtable">
update lect set <include refid="sql.up"></include> update lect set <include refid="sql.up"></include>
@ -1572,6 +1701,7 @@
,l.completeno=b.completeno ,l.completeno=b.completeno
where l.lectno = b.lectno where l.lectno = b.lectno
</update> </update>
<!--#수료처리 #xodus-->
<update id="grade.lectcomplete2" parameterClass="hashtable"> <update id="grade.lectcomplete2" parameterClass="hashtable">
update lect a update lect a
inner join ( inner join (
@ -1583,30 +1713,31 @@
select t1.* select t1.*
<!--,concat('제 ',t1.cyear,' - ',t1.code1,t1.code2,t1.code3,' - ',lpad(ifnull(t2.seqNo,0)+ t1.rno , 6, 0)) completeno--> <!--,concat('제 ',t1.cyear,' - ',t1.code1,t1.code2,t1.code3,' - ',lpad(ifnull(t2.seqNo,0)+ t1.rno , 6, 0)) completeno-->
<!--,concat('제 ',t1.cyear,t1.code1,lpad(ifnull(t2.seqNo,0)+ t1.rno , 6, 0)) completeno--> <!--,concat('제 ',t1.cyear,t1.code1,lpad(ifnull(t2.seqNo,0)+ t1.rno , 6, 0)) completeno-->
,concat('제 ',t1.cyear,t1.code1,lpad(ifnull(t2.seqNo,0) + t1.rno , 6, 0), ' 호') as completeno ,concat('제 ',t1.cyear,t1.code1,lpad(ifnull(t2.seqNo,0) + t1.rno , 6, 0), ' 호') as completeno
from ( from (
select l.lectno select l.lectno
,date_format(l.edate,'%Y') cyear ,date_format(l.edate,'%Y') cyear
,pcg.cgcode code2 ,pcg.cgcode code2
,case when cm.cshape = 1 then 'F' else 'N' end code1 ,case when cm.cshape = 1 then 'F' else 'N' end code1
,case when te.cremark = '1' then te.refcode ,case when te.cremark = '1' then te.refcode
when tm.cremark in ('1','2','3','4') then tm.refcode when tm.cremark in ('1','2','3','4') then tm.refcode
else '05' end code3 else '05' end code3
,case when cm.cshape = 0 then now() ,case when cm.cshape = 0 then now()
when cm.cshape = 1 then cm.setime when cm.cshape = 1 then cm.setime
else cs.eend end completetime else cs.eend end completetime
,row_number() over(partition by date_format(l.cdt,'%Y') order by l.cdt) rno , l.iscomplete
from lect l ,row_number() over(partition by date_format(l.cdt,'%Y') order by l.cdt) rno
inner join cm cm on cm.cmno = l.cmno from lect l
inner join pay p on p.payno = l.payno inner join cm cm on cm.cmno = l.cmno
left outer join pplog pl on pl.pplno = p.pplno inner join pay p on p.payno = l.payno
inner join cg cg on cg.cgno = cm.cgno left outer join pplog pl on pl.pplno = p.pplno
inner join cg pcg on pcg.cgno = cg.pcgno inner join cg cg on cg.cgno = cm.cgno
left outer join comcode tm on tm.isuse=1 and tm.ccode = pl.typeman inner join cg pcg on pcg.cgno = cg.pcgno
left outer join comcode te on te.isuse=1 and te.ccode = pl.typeedu left outer join comcode tm on tm.isuse=1 and tm.ccode = pl.typeman
left outer join cminningscd cs on cs.cmisno = pl.cmisno left outer join comcode te on te.isuse=1 and te.ccode = pl.typeedu
where 1=1 left outer join cminningscd cs on cs.cmisno = pl.cmisno
<isNotNull property="lectnos">and l.lectno in ($lectnos$)</isNotNull> where 1=1
<isNotNull property="lectnos">and l.lectno in ($lectnos$)</isNotNull>
<isNotNull property="lectno">and l.lectno =#lectno#</isNotNull> <isNotNull property="lectno">and l.lectno =#lectno#</isNotNull>
) t1 ) t1
left outer join ( left outer join (
@ -1619,29 +1750,37 @@
) c on c.lectno = a.lectno ) c on c.lectno = a.lectno
inner join cm d on d.cmno = a.cmno inner join cm d on d.cmno = a.cmno
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
,a.iscomplete=b.ispass ,a.iscomplete=b.ispass
,a.apoint=b.apoint ,a.apoint=b.apoint
,a.mpoint=a.mpoint ,a.mpoint=a.mpoint
,a.fpoint=b.fpoint ,a.fpoint=b.fpoint
,a.spoint=b.spoint ,a.spoint=b.spoint
,a.dpoint=b.dpoint ,a.dpoint=b.dpoint
,a.tpoint=b.apoint+b.mpoint+b.fpoint+b.spoint+b.dpoint ,a.tpoint=b.apoint+b.mpoint+b.fpoint+b.spoint+b.dpoint
,a.completetime = case when b.ispass = 1 then c.completetime else null end ,a.completetime = case when b.ispass = 1 then c.completetime else null end
,a.completeno = c.completeno ,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) &lt;> 1
<isNotNull property="cmno">and a.cmno = #cmno#</isNotNull> <isNotNull property="cmno">and a.cmno = #cmno#</isNotNull>
<isNotNull property="lectno">and a.lectno = #lectno#</isNotNull> <isNotNull property="lectno">and a.lectno = #lectno#</isNotNull>
<isNotNull property="cmnos">and a.cmno in ($cmnos$)</isNotNull> <isNotNull property="cmnos">and a.cmno in ($cmnos$)</isNotNull>
<isNotNull property="lectnos">and a.lectno in ($lectnos$)</isNotNull> <isNotNull property="lectnos">and a.lectno in ($lectnos$)</isNotNull>
</update> </update>
<!--수료 취소 #xodus-->
<update id="grade.lectcomplete.cancel" parameterClass="hashtable"> <update id="grade.lectcomplete.cancel" parameterClass="hashtable">
update lect update lect
set <include refid="sql.up"></include> set <include refid="sql.up"></include>
,iscomplete=0 ,iscomplete=0
,completetime=null ,completetime=null
where lectno=#lectno# where lectno=#lectno# and ifnull(iscomplete,0) &lt;> 1
</update> </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 id ="grade.nocompletelect" parameterClass="string" resultClass="lect">
select distinct c.lectno , b.cmno select distinct c.lectno , b.cmno
,case when c.iscomplete = 1 then 1 else 0 end iscomplete ,case when c.iscomplete = 1 then 1 else 0 end iscomplete

View File

@ -1069,7 +1069,7 @@
from ( from (
select a.lectno,a.userno,a.cmno,a.isrebate select a.lectno,a.userno,a.cmno,a.isrebate
,p.payoktime,a.sdate,a.edate ,p.payoktime,a.sdate,a.edate
,b.exno,b.exname ,b.exno,b.exname,b.extype <!--#xodus 수정완료 성적처리관련 컬럼 추가-->
,b2.cshape,b2.cname ,b2.cshape,b2.cname
,c.estart,c.eend,c.eip,c.tpoint,c.recount,c.entercount,c.cblock ,c.estart,c.eend,c.eip,c.tpoint,c.recount,c.entercount,c.cblock
,d.username,d.userid ,d.username,d.userid
@ -1136,18 +1136,21 @@
set a.atext=null,a.qinos=null,a.cpoint=0,a.iscorrect=null set a.atext=null,a.qinos=null,a.cpoint=0,a.iscorrect=null
where a.lectno=#lectno# and a.exno=#exno#; where a.lectno=#lectno# and a.exno=#exno#;
<!--최종평가, lect.fpoint, 진도율 환산점수 update #xodus--> <!--최종평가, lect.fpoint, 진도율 환산점수 update #xodus 수정완료-->
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 --> <!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 -->
<isEqual property="extype" compareValue="1"> <!--최종평가-->
<isEqual property="extype" compareValue="1">
update lect a update lect a
inner join lectex le on a.lectno = le.lectno inner join lectex le on a.lectno = le.lectno
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0
inner join cmev cv on a.cmno = cv.cmno inner join cmev cv on a.cmno = cv.cmno
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
,a.fpoint = 0 ,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#; where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#;
</isEqual> </isEqual>
<!--중간평가-->
<isEqual property="extype" compareValue="0"> <isEqual property="extype" compareValue="0">
update lect a update lect a
inner join lectex le on a.lectno = le.lectno inner join lectex le on a.lectno = le.lectno
@ -1155,42 +1158,10 @@
inner join cmev cv on a.cmno = cv.cmno inner join cmev cv on a.cmno = cv.cmno
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip#
,a.mpoint = 0 ,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#; where ce.extype = 0 and a.lectno=#lectno# and le.exno = #exno#;
</isEqual> </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 &gt; 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 &lt;= a.qcount
) a
order by rand();-->
</update> </update>
<update id="lect.reexam.manulset" parameterClass="hashtable"> <update id="lect.reexam.manulset" parameterClass="hashtable">
@ -1366,29 +1337,27 @@
,a.rechecktime=<include refid="sql.now"></include> ,a.rechecktime=<include refid="sql.now"></include>
where a.lectno=#lectno# and a.exno=#exno#; where a.lectno=#lectno# and a.exno=#exno#;
<!--최종평가, lect.fpoint, 진도율 환산점수 update #xodus--> <!--최종평가, lect.fpoint #xodus 수정완료-->
<!--최종평가 수정일 경우, 영남은 중간 평가가 없다. 중간평가는 ce.extype = 0 --> <!--최종평가 수정일 경우, 영남은 중간 평가가 없다 -->
<isEqual property="extype" compareValue="1"> <!--extype 최종평가:1, 중간평가:0-->
update lect a update lect l
inner join lectex le on a.lectno = le.lectno inner join (
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 select l.lectno, round(avg(le.tpoint),1) as avgtpoint, sum(le.tpoint) sumpoint, ce.tpoint
inner join cmev cv on a.cmno = cv.cmno from lect l
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# inner join cmex ce on l.cmno = ce.cmno and ce.extype = #extype# and ce.isdel = 0
,a.fpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0) left outer join lectex le on l.lectno = le.lectno and ce.exno = le.exno
,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 l.status = 1 and l.lectno = #lectno#
where ce.extype = 1 and a.lectno=#lectno# and le.exno = #exno#; group by l.lectno
</isEqual> )t on l.lectno = t.lectno
<isEqual property="extype" compareValue="0"> inner join cmev cv on l.cmno = cv.cmno
update lect a set l.exfpoint = t.avgtpoint
inner join lectex le on a.lectno = le.lectno , l.fpoint = round((t.avgtpoint / t.tpoint * 100) * cv.final / 100,1)
inner join cmex ce on a.cmno = ce.cmno and ce.isdel = 0 , l.udt = now()
inner join cmev cv on a.cmno = cv.cmno , l.uno = #uno#
set a.udt=<include refid="sql.now"></include>,a.uno=#uno#,a.uip=#uip# , l.uip=#uip#
,a.mpoint = round((le.tpoint / ce.tpoint * 100) * cv.final / 100,0) where l.lectno = #lectno#;
,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>
</isEqual>
</update>
<select id="lect.lectsds" parameterClass="hashtable" resultClass="lectsd"> <select id="lect.lectsds" parameterClass="hashtable" resultClass="lectsd">
select a.lectno,a.userno,a.cmno,a.isrebate select a.lectno,a.userno,a.cmno,a.isrebate
,b.sdno ,b.sdno
@ -1570,39 +1539,41 @@
left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno# left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno#
where b.lectno is null; where b.lectno is null;
<!--과제(중복시 아래 avg로 처리됨),, lect.spoint, 과제 환산점수 update #xodus--> <!--과제(중복시 아래 avg로 처리됨),, lect.spoint, 과제 환산점수 update #xodus 수정완료-->
update lect l update lect l
inner join cm c on l.cmno = c.cmno and c.isdel = 0 inner join (
inner join users u on l.userno = u.userno and u.status = 1 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
left outer join cmsd cs on cs.cmno=c.cmno and cs.sdtype=0 and cs.isdel=0 from lect l
inner join cmev ce on c.cmno = ce.cmno inner join cmsd cs on l.cmno = cs.cmno and cs.sdtype = 0 and cs.isdel = 0
left outer join ( left outer join lectsd ls on l.lectno = ls.lectno and cs.sdno = ls.sdno and ls.sdno=#sdno#
select lectno, avg(cpoint) as cpoint inner join cmev ce on l.cmno = ce.cmno
from lectsd ls where l.status = 1 and l.lectno = #lectno#
INNER JOIN cmsd cs ON ls.sdno = cs.sdno AND cs.isdel = 0 group by l.lectno
where lectno = #lectno# )t on l.lectno = t.lectno
) ls on l.lectno=ls.lectno set l.spoint = t.spoint
set l.udt = now(), l.uno=#uno#, l.uip=#uip# , l.subjectpoint = t.avgtpoint
,l.spoint = round(((ifnull(ls.cpoint,0) / 100) * ce.subject),0) , l.udt = now()
,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) , l.uno = #uno#
where cs.sdtype = 0 and l.lectno = #lectno#; , l.uip=#uip#
where l.status = 1 and l.lectno = #lectno#;
<!--토론(중복시 아래 avg로 처리됨), lect.spoint, 토론 환산점수 update #xodus--> <!--토론(중복시 아래 avg로 처리됨),, lect.dpoint, 토론 환산점수 update #xodus 수정완료-->
update lect l update lect l
inner join cm c on l.cmno = c.cmno and c.isdel = 0 inner join (
inner join users u on l.userno = u.userno and u.status = 1 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
left outer join cmsd cs on cs.cmno=c.cmno and cs.sdtype=1 and cs.isdel=0 from lect l
inner join cmev ce on c.cmno = ce.cmno inner join cmsd cs on l.cmno = cs.cmno and cs.sdtype = 1 and cs.isdel = 0
left outer join ( left outer join lectsd ls on l.lectno = ls.lectno and cs.sdno = ls.sdno and ls.sdno=#sdno#
select lectno, avg(cpoint) as cpoint inner join cmev ce on l.cmno = ce.cmno
from lectsd ls where l.status = 1 and l.lectno = #lectno#
INNER JOIN cmsd cs ON ls.sdno = cs.sdno AND cs.isdel = 0 group by l.lectno
where lectno = #lectno# )t on l.lectno = t.lectno
) ls on l.lectno=ls.lectno set l.dpoint = t.dpoint
set l.udt = now(), l.uno=#uno#, l.uip=#uip# , l.discusspoint = t.avgtpoint
,l.spoint = round(((ifnull(ls.cpoint,0) / 100) * ce.discuss),0) , l.udt = now()
,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) , l.uno = #uno#
where cs.sdtype = 1 and l.lectno = #lectno#; , l.uip=#uip#
where l.status = 1 and l.lectno = #lectno#;
</update> </update>
<update id="lect.lectsd.savebatch" parameterClass="lectsd"> <update id="lect.lectsd.savebatch" parameterClass="lectsd">

View File

@ -13,7 +13,7 @@
<provider name="MySql" /> <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" />-->
<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> </database>

View File

@ -323,7 +323,7 @@ namespace NP.FO.Controllers
{ {
menu = new MenuPage(); 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)); 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.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)); 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));
} }

View File

@ -9,4 +9,4 @@
{ {
@:@Html.Partial("IndexBase", Model) @:@Html.Partial("IndexBase", Model)
} }
} }

View File

@ -152,7 +152,7 @@
}); });
function login() { function login() {
if (val("uid") != "" && val("upw") != "") { 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") == "") { else if (val("uid") == "") {
focus("uid"); focus("uid");

View File

@ -87,7 +87,7 @@
function login() { function login() {
if (val("uid") != "" && val("upw") != "") { 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") == "") { else if (val("uid") == "") {
focus("uid"); focus("uid");

View File

@ -169,7 +169,8 @@ else
var ismobile = '@(Model.User.authplatform == AuthPlatform.Mobile)' == 'True'; var ismobile = '@(Model.User.authplatform == AuthPlatform.Mobile)' == 'True';
setv("userid", val("userid").replace(/ /, '').replace(/ /, '')); setv("userid", val("userid").replace(/ /, '').replace(/ /, ''));
setv("userpno", val("userpno1").replace(/ /, '').replace(/ /, '') + "" + val("userpno2").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("username", val("username").replace(/ /, '').replace(/ /, ''));
setv("email", val("email").replace(/ /, '').replace(/ /, '')); setv("email", val("email").replace(/ /, '').replace(/ /, ''));
setv("mobile", val("mobile").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 ($("input:radio[name='slevel']:checked").val() == null) { msg("학력을 선택해주세요"); }
else if (!$("#agree").prop("checked")) { $("#agree").focus(); msg("이용약관/개인정보처리방침에 동의해주세요."); } else if (!$("#agree").prop("checked")) { $("#agree").focus(); msg("이용약관/개인정보처리방침에 동의해주세요."); }
else { else {
///////////////$("#userpass").val()
cap("/focommon/join", "mform", "cbsave"); cap("/focommon/join", "mform", "cbsave");
} }
} }
@ -251,5 +253,6 @@ else
} else { } else {
mobilechkview('MCHK'); mobilechkview('MCHK');
} }
} }
</script> </script>

View File

@ -29,6 +29,7 @@
} }
@if (Model.LectEX.edate > DateTime.Now && Model.LectEX.estart != null && Model.LectEX.isreexamable == 1 && Model.LectEX.iscomplete != 1) @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> <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) { function reexam(exno, lectno, extype) {
confirmtoggle(true, "이전 시험기록을 초기화하고 다시 시험에 응시하시겠습니까? ", "gogo(" + exno + "," + lectno + "," + extype + ")"); confirmtoggle(true, "이전 시험기록을 초기화하고 다시 시험에 응시하시겠습니까? ", "gogo(" + exno + "," + lectno + "," + extype + ")");
} }
// #xodus extype 추가
function gogo(exno, lectno, extype) { function gogo(exno, lectno, extype) {
capp("/fcommon/reexamforuser", { exno: exno, lectno: lectno, extype: extype }, "cbreexam"); capp("/fcommon/reexamforuser", { exno: exno, lectno: lectno, extype: extype }, "cbreexam");
} }

View File

@ -101,6 +101,17 @@
} }
@section scripts{ @section scripts{
<style>
#popScd {
top: -170px;
}
.mpgPopCont {
height:550px
}
.mpgPopBtn {
padding-top: 30px;
}
</style>
<script> <script>
function warningdate() { function warningdate() {
$('#layermessage') $('#layermessage')
@ -136,6 +147,9 @@
var divScd = $("#divScd"); var divScd = $("#divScd");
var divTitle = $("#divTitle"); var divTitle = $("#divTitle");
let onceCheck = false; let onceCheck = false;
let studyplaceCheck = false;
let notContentsCheck = false;
divTitle.empty(); divTitle.empty();
if (cshape == 1) if (cshape == 1)
{ {
@ -144,7 +158,20 @@
else if (cshape == 2) else if (cshape == 2)
{ {
dateStyle = "style2"; dateStyle = "style2";
if (capResult.obj[0].studyplace == null) {
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>"; strTmp = "<h5> 교육종료일(수료일자) 변경 </ul>";
} }
else { else {
@ -235,6 +262,7 @@
li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>"); li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>");
ulScd.append(li); ulScd.append(li);
noDisPlay = false; noDisPlay = false;
notContentsCheck = true;
} }
li.append(pData); 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")
}
} }

View File

@ -54,6 +54,10 @@
</div> </div>
<script> <script>
$(function () {
$($(".topmenu16 a")[0]).attr("onclick", "")
$($(".topmenu16 a")[0]).css("cursor", "default")
});
//GNB //GNB
$('.gnbMo').click(function(){ $('.gnbMo').click(function(){
if($(this).is('.on')) { if($(this).is('.on')) {

View File

@ -1,7 +1,7 @@
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script> <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/placeholders.min.js"></script>
<script type="text/javascript" src="/js/slick.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 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/ie8/1.1.2/videojs-ie8.min.js"></script>
<script src="https://vjs.zencdn.net/7.7.6/video.js"></script> <script src="https://vjs.zencdn.net/7.7.6/video.js"></script>

View File

@ -41,8 +41,8 @@
<add key="daokey" value="ynictelms2020" /> <add key="daokey" value="ynictelms2020" />
<!--<add key="configpath" value="Product" />--> <!--<add key="configpath" value="Product" />-->
<add key="configpath" value="ProductDev" /> <!--<add key="configpath" value="ProductDev" />-->
<!--<add key="configpath" value="Staging" />--> <add key="configpath" value="Staging" />
<add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" /> <add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" />

View File

@ -1143,4 +1143,10 @@ function goremote() {
} }
function checkall(c, cssclass) { function checkall(c, cssclass) {
$("input[type=checkbox]." + cssclass).prop("checked", $(c).prop("checked")); $("input[type=checkbox]." + cssclass).prop("checked", $(c).prop("checked"));
}
function strEnConvert(str) {
let rslt = str.replace(/&#/gi, "%26%23");
return rslt;
} }

View File

@ -170,9 +170,11 @@ namespace NP.Model
//public Int64? longv1 { get; set; } //public Int64? longv1 { get; set; }
//public Int64? longv2 { get; set; } //public Int64? longv2 { get; set; }
//public Int64? longv3 { get; set; } //public Int64? longv3 { get; set; }
//public double? dblv1 { get; set; } public double? dblv1 { get; set; }
//public double? dblv2 { get; set; } public double? dblv2 { get; set; }
//public double? dblv3 { get; set; } public double? dblv3 { get; set; }
public double? dblv4 { get; set; }
public double? dblv5 { get; set; }
public String zstring0 { get; set; } public String zstring0 { get; set; }
public String zstring1 { get; set; } public String zstring1 { get; set; }

View File

@ -1356,13 +1356,17 @@ namespace NP.Model
public int? scdtype { get; set; } public int? scdtype { get; set; }
public int? isoffabs { get; set; } public int? isoffabs { get; set; }
public String ex0point public String ex0point
{ {
get get
{ {
return ex0cnt < 1 ? "-" : ex0lectcnt < 1 && ex0cnt > 0 ? "미제출" : ex0lectpoint.ToString(); return ex0cnt < 1 ? "-" : ex0lectcnt < 1 && ex0cnt > 0 ? "미제출" : ex0lectpoint.ToString();
} }
} }
// 최종평가(구)
public String ex1point public String ex1point
{ {
get get
@ -1370,6 +1374,8 @@ namespace NP.Model
return ex1cnt < 1 ? "-" : ex1lectcnt < 1 && ex1cnt < 0 ? "미제출" : ex1lectpoint.ToString(); return ex1cnt < 1 ? "-" : ex1lectcnt < 1 && ex1cnt < 0 ? "미제출" : ex1lectpoint.ToString();
} }
} }
// 과제점수(구)
public String sd0point public String sd0point
{ {
get get
@ -1384,6 +1390,8 @@ namespace NP.Model
return sd1cnt < 1 ? "-" : sd1lectcnt < 1 && sd1cnt > 0 ? "미제출" : sd1lectpoint.ToString(); return sd1cnt < 1 ? "-" : sd1lectcnt < 1 && sd1cnt > 0 ? "미제출" : sd1lectpoint.ToString();
} }
} }
// 강의평가(구)
public String rs0point public String rs0point
{ {
get get
@ -1391,6 +1399,8 @@ namespace NP.Model
return rs0lectcnt + " / " + rs0cnt; return rs0lectcnt + " / " + rs0cnt;
} }
} }
// 총점(구)
public String tpointstr public String tpointstr
{ {
get get
@ -1398,6 +1408,34 @@ namespace NP.Model
return ((apoint + mpoint + fpoint + spoint + dpoint)).ToString(); 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 public String isoffabsstr
{ {
get get