This commit is contained in:
kdh0120 2021-11-03 06:19:08 +00:00
parent fe916b938f
commit ad2031a0ce
72 changed files with 3748 additions and 405 deletions

View File

@ -495,6 +495,7 @@
<Content Include="Content\file\examusers.xlsx" /> <Content Include="Content\file\examusers.xlsx" />
<Content Include="Content\file\YNICTEManualaxds.pdf" /> <Content Include="Content\file\YNICTEManualaxds.pdf" />
<Content Include="Content\file\documentspast.xlsx" /> <Content Include="Content\file\documentspast.xlsx" />
<Content Include="libman.json" />
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> <None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<Content Include="js\Chart.utils.js" /> <Content Include="js\Chart.utils.js" />
<Content Include="Spring\ControllersStaging.xml" /> <Content Include="Spring\ControllersStaging.xml" />
@ -685,6 +686,11 @@
<Content Include="Views\Shared\Partial\AssignBox2.cshtml" /> <Content Include="Views\Shared\Partial\AssignBox2.cshtml" />
<Content Include="Views\croom\documentspast.cshtml" /> <Content Include="Views\croom\documentspast.cshtml" />
<Content Include="Views\Shared\Partial\CMScdBox2.cshtml" /> <Content Include="Views\Shared\Partial\CMScdBox2.cshtml" />
<Content Include="Views\croom\gradeall.cshtml" />
<Content Include="Views\croom\gradeall0.cshtml" />
<Content Include="Views\croom\gradeall2.cshtml" />
<Content Include="Views\croom\gradeall4.cshtml" />
<Content Include="Views\croom\attscds.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />

View File

@ -165,7 +165,7 @@ namespace NP.BO.Controllers
{ {
return Redirect("/"); return Redirect("/");
} }
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }); vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno },{"isscd",0 } });
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }); vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } });
vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "ismaster",1 },{ "cshapes", "0,2"},{ "orderby","a.cname"} }); vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "ismaster",1 },{ "cshapes", "0,2"},{ "orderby","a.cname"} });
ViewBag.fronturl = GetConfig("fronturl"); ViewBag.fronturl = GetConfig("fronturl");
@ -260,7 +260,7 @@ namespace NP.BO.Controllers
{ {
return Redirect("/"); return Redirect("/");
} }
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 } }); vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",1 } });
vm.CMInningscds = new List<CMinningscd>() { }; vm.CMInningscds = new List<CMinningscd>() { };
if (vm.CMInnings.Count > 0) if (vm.CMInnings.Count > 0)
{ {

View File

@ -7,6 +7,7 @@ using NP.Model;
using NP.Base.Popbill; using NP.Base.Popbill;
using Popbill.Taxinvoice; using Popbill.Taxinvoice;
using System.Collections; using System.Collections;
using Spring.Expressions;
namespace NP.BO.Controllers namespace NP.BO.Controllers
{ {
@ -485,6 +486,18 @@ namespace NP.BO.Controllers
vm.pagetotalcount = GetCount(vm.LectInnings.FirstOrDefault()); vm.pagetotalcount = GetCount(vm.LectInnings.FirstOrDefault());
return View(vm); return View(vm);
} }
public ActionResult attscds(VMLect vm)
{
vm.ComCodes = GetComCodes("studyplace");
ViewBag.reporturl = GetConfig("reporturl");
var ht = SetHash(vm);
ht.Add("edate", vm.stringval);
ht.Add("cname", vm.stringval2);
ht.Add("studyplace", vm.stringval3);
vm.Lects = Dao.Get<Lect>("lect.lectinnings.forattscd", ht);
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
return View(vm);
}
public ActionResult grades(NP.Model.VMCM vm) public ActionResult grades(NP.Model.VMCM vm)
{ {
var ht = SetHash(vm, false); var ht = SetHash(vm, false);
@ -546,14 +559,21 @@ namespace NP.BO.Controllers
{ {
vm.CMEV = new CMEV() { }; vm.CMEV = new CMEV() { };
} }
vm.Lects = Dao.Get<Lect>("grade.lectgrades", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "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.CMInnings = new List<CMInning>() { };
vm.CMinningscds = new List<CMinningscd>() { };
if(vm.CMEV.cshape ==2)
{
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",1 } });
vm.CMinningscds = Dao.Get<CMinningscd>("cm.cminningscds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } });
}
} }
break; break;
case 1: case 1:
{ {
vm.Lects = Dao.Get<Lect>("lect.atts", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "status", 1 }, { "ustatus", 1 }, { "isrebate", vm.addstringval } }); vm.Lects = Dao.Get<Lect>("lect.atts", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "status", 1 }, { "ustatus", 1 }, { "isrebate", vm.addstringval } });
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 } }); vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",0 } });
} }
break; break;
case 2: case 2:
@ -615,10 +635,79 @@ namespace NP.BO.Controllers
} }
return View(vm); return View(vm);
} }
public ActionResult gradeall(VMLect vm)
{
vm.IsAdmin = SUserInfo.IsAdmin;
vm.ComCodes = GetComCodes("studyplace");
ViewBag.fronturl = GetConfig("fronturl");
ViewBag.reporturl = GetConfig("reporturl");
if (ViewBag.IsSubAdmin97)
{
vm.tabidx = 4;
}
int pcnt = vm.pagerowcount == 0 ? 100 : vm.pagerowcount;
var ht = SetHash(vm);
if(vm.isexceldown == 1)
{
ht.Remove("pagerowsize");
ht.Add("pagerowsize",pcnt);
}
ht.Add("edate", vm.stringval);
ht.Add("cshape", vm.stringval2);
ht.Add("cname", vm.stringval3);
ht.Add("cnamestr", vm.stringval3);
ht.Add("iscomplete", vm.stringval4);
ht.Add("studyplace", vm.stringval5);
ht.Add("sdateall", vm.stringval8);
ht.Add("edateall", vm.stringval9);
ht.Add("asname", vm.stringval10);
if (!string.IsNullOrEmpty(vm.stringval6))
{
ht.Add(vm.stringval6, vm.stringval7);
}
switch (vm.tabidx)
{
case 0:
ht.Add("ustatus", 1);
ht.Add("orderby", "ua.asname,ua.asno,u.username");
vm.Lects = Dao.Get<Lect>("grade.lectgrades", ht);
if (vm.isexceldown == 1)
{
return ExportExcel(
new String[] { "No", "운영기수", "구분", "고객사", "교육장", "과정명", "교육생(ID)", "교육시작일", "교육종료일", "진도율", "진행평가", "최종평가", "과제", "환산점수", "집합교육출석여부", "강의평가", "수료여부"},
new String[] { "rno", "sseqname", "isrebatename", "asname", "studyplacename", "cname", "usernameid", "sdatestr", "edatestr", "attrate", "ex0point", "ex1point", "sd0point", "tpointstr", "isoffabsstr", "rs0point", "iscompletename" },
vm.Lects,
"성적처리전체" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day);
}
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
break;
case 2:
case 3:
{
ht.Add("extype", vm.tabidx == 2 ? 0 : 1);
vm.LectEXes = Dao.Get<LectEX>("lect.lectexes.all", ht);
vm.pagetotalcount = GetCount(vm.LectEXes.FirstOrDefault());
}
break;
case 4:
{
ht.Add("sdtype", 0);
vm.LectSDs = new List<LectSD>() { };
ht.Add("sdstate", vm.addstringval2);
vm.LectSDs = Dao.Get<LectSD>("lect.lectsds.all", ht);
vm.pagetotalcount = GetCount(vm.LectSDs.FirstOrDefault());
}
break;
default:break;
}
return View(vm);
}
public ActionResult atts(VMLect vm) public ActionResult atts(VMLect vm)
{ {
vm.Lect = Dao.Get<Lect>("lect.lects", new System.Collections.Hashtable() { { "lectno", vm.longval } }).First(); vm.Lect = Dao.Get<Lect>("lect.lects", new System.Collections.Hashtable() { { "lectno", vm.longval } }).First();
vm.LectInningPages = Dao.Get<LectInningPage>("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno } }); vm.LectInningPages = Dao.Get<LectInningPage>("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno },{"isscd", 0} });
vm.PageLogs = Dao.Get<PageLog>("lect.pagelogs", new System.Collections.Hashtable() { { "start", vm.Lect.sstime }, { "end", vm.Lect.setime.Value.ToString("yyyy-MM-dd 23:59:59") }, { "userno", vm.Lect.userno }, { "logsite", 1 } }); vm.PageLogs = Dao.Get<PageLog>("lect.pagelogs", new System.Collections.Hashtable() { { "start", vm.Lect.sstime }, { "end", vm.Lect.setime.Value.ToString("yyyy-MM-dd 23:59:59") }, { "userno", vm.Lect.userno }, { "logsite", 1 } });
return View(vm); return View(vm);
} }
@ -690,8 +779,8 @@ namespace NP.BO.Controllers
payItem.cmistudyplacename = vm.ComCodes.Where(w => w.cgroup.ToString() == "studyplace" && w.ccode == payItem.cmistudyplace).FirstOrDefault()?.cname; payItem.cmistudyplacename = vm.ComCodes.Where(w => w.cgroup.ToString() == "studyplace" && w.ccode == payItem.cmistudyplace).FirstOrDefault()?.cname;
} }
return ExportExcel( return ExportExcel(
new String[] { "결제번호", "신청자이름", "ID", "회사명", "상품유형", "환급여부", "상품명", "결제금액", "결제방법", "입금금액", "환불금액", "신청일", "입금일", "결제상태", "환급은행명", "환급계좌번호", "환급예금주", "교육장소", "강좌교육시작일", "강좌교육종료일", "신청교육장소", "교육신청일" }, new String[] { "결제번호", "신청자이름", "ID", "회사명", "상품유형", "환급여부", "상품명", "결제금액", "결제방법", "입금금액", "환불금액", "신청일", "입금일", "결제상태", "환급은행명", "환급계좌번호", "환급예금주", "교육장소", "강좌교육시작일", "강좌교육종료일", "신청교육장소", "교육신청일","등급","목적","수료여부" },
new String[] { "payno", "username", "userid", "asname", "cshapename", "isrebatename", "itemname", "payamt", "pptypename", "payamt", "refundamt", "cdtymd", "payymd", "pstatusname2", "rbank", "rbankaccnum", "tbankuser", "studyplacename", "sdateymd", "edateymd", "cmistudyplacename", "cmiestartymd" }, new String[] { "payno", "username", "userid", "asname", "cshapename", "isrebatename", "itemname", "payamt", "pptypename", "payamt", "refundamt", "cdtymd", "payymd", "pstatusname2", "rbank", "rbankaccnum", "tbankuser", "studyplacename", "sdateymd", "edateymd", "cmistudyplacename", "cmiestartymd","tgname","tename", "completename" },
vm.PayItems, vm.PayItems,
"ProductSales_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); "ProductSales_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day);
} }
@ -740,11 +829,11 @@ namespace NP.BO.Controllers
vm.PayRfds = Dao.Get<PayRfd>("cr.payrfditems2", vm.rfdno); vm.PayRfds = Dao.Get<PayRfd>("cr.payrfditems2", vm.rfdno);
vm.FileList = new List<File>() { }; vm.FileList = new List<File>() { };
vm.FileList2 = new List<File>() { }; vm.FileList2 = new List<File>() { };
if ((vm.PayRfds.First().fgnor??0) > 0) if (vm.PayRfds != null && (vm.PayRfds.First().fgnor??0) > 0)
{ {
vm.FileList = GetFiles(vm.PayRfds.First().fgnor.Value); vm.FileList = GetFiles(vm.PayRfds.First().fgnor.Value);
} }
if ((vm.PayRfds.First().fgnob??0) > 0) if (vm.PayRfds != null && (vm.PayRfds.First().fgnob??0) > 0)
{ {
vm.FileList2 = GetFiles(vm.PayRfds.First().fgnob.Value); vm.FileList2 = GetFiles(vm.PayRfds.First().fgnob.Value);
} }
@ -1040,7 +1129,7 @@ namespace NP.BO.Controllers
ht.Add("scompletetime", vm.stringval8); ht.Add("scompletetime", vm.stringval8);
ht.Add("ecompletetime", vm.stringval9); ht.Add("ecompletetime", vm.stringval9);
ht.Add("typegrade", vm.stringval10); ht.Add("typegrade", vm.stringval10);
ht.Add("typeedu", vm.stringval11); ht.Add("typeedu", vm.stringval11);
vm.Completions = Dao.Get<Completion>("cr.completions", ht); vm.Completions = Dao.Get<Completion>("cr.completions", ht);
vm.pagetotalcount = GetCount(vm.Completions.FirstOrDefault()); vm.pagetotalcount = GetCount(vm.Completions.FirstOrDefault());

View File

@ -42,7 +42,7 @@
<th width="80">회차</th> <th width="80">회차</th>
<th>학습방식</th> <th>학습방식</th>
<th>강의주제</th> <th>강의주제</th>
<th>강사</th> @*<th>강사</th>*@
<th>최근수정일</th> <th>최근수정일</th>
</tr> </tr>
</thead> </thead>
@ -53,9 +53,9 @@
{ {
<tr> <tr>
<td>@item.iseq @(item.istaste == 1 ? "(S)" : "")</td> <td>@item.iseq @(item.istaste == 1 ? "(S)" : "")</td>
<td>@item.isonlinename</td> <td>@item.scdtypename</td>
<td class="link"><a href="#" onclick="reg(@item.cmino)">@item.ititle</a></td> <td class="link"><a href="#" onclick="reg(@item.cmino)">@item.ititle</a></td>
<td>@item.username</td> @*<td>@item.username</td>*@
<td>@item.udtymd</td> <td>@item.udtymd</td>
</tr> </tr>
} }
@ -64,7 +64,7 @@
</table> </table>
</div> </div>
</section> </section>
<div class="tar buttonbox"><a href="#" onclick="regscd(0,0);" class="btn btn-s-xs btn-info">일정등록</a></div> <div class="tar buttonbox"><a href="#" onclick="regscd(0,0,@(Model.CMInnings.Count() > 0 ? Model.CMInnings.FirstOrDefault().scdtype : -1));" class="btn btn-s-xs btn-info">일정등록</a></div>
<section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;"> <section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;">
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 교육일정등록<span class=""></span></strong></header> <header class="panel-heading"><strong><i class="fa fa-bars"></i> 교육일정등록<span class=""></span></strong></header>
<div class="table-responsive" id="excel1"> <div class="table-responsive" id="excel1">
@ -72,7 +72,9 @@
<thead> <thead>
<tr> <tr>
<th width="80">순서</th> <th width="80">순서</th>
<th>교육일정</th> <th width="80">운영기수</th>
<th width="80">교육장소</th>
<th>교육종료일</th>
<th>제한인원</th> <th>제한인원</th>
<th>등록인원</th> <th>등록인원</th>
<th>최근수정일</th> <th>최근수정일</th>
@ -85,8 +87,10 @@
{ {
<tr> <tr>
<td>@item.scdseq</td> <td>@item.scdseq</td>
<td>@item.sseq</td>
<td>@item.studyplacename</td>
<td class="link"><a href="#" onclick="regscd(@item.cmino, @item.cmisno)">@item.estart ~ @item.eend</a></td> <td class="link"><a href="#" onclick="regscd(@item.cmino, @item.cmisno)">@item.estart ~ @item.eend</a></td>
<td>@item.quota</td> <td>@item.quotastr</td>
<td>@item.regmem</td> <td>@item.regmem</td>
<td>@item.udt</td> <td>@item.udt</td>
</tr> </tr>
@ -105,24 +109,12 @@
<table class="regtable"> <table class="regtable">
<colgroup><col style="width:150px;" /><col /></colgroup> <colgroup><col style="width:150px;" /><col /></colgroup>
<tr> <tr>
<th class="req">강의주제</th> <th>학습방식</th>
<td>@Html.TextBox("ititle", "", new { @class = "form-control", @style = "", @maxlength = "100" })</td> <td>@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:오프라인;1:온라인대체" },{ "checked",0}, { "name", "scdtype" } })</td>
</tr> </tr>
<tr> <tr style="display:none;">
<th>교안</th>
<td>
<input type="hidden" name="fgnotf" id="fgnotf" />
<input type="file" name="filetf" id="filetf" />
<div id="files"></div>
</td>
</tr>
<tr>
<th class="req">강사</th>
<td>@Html.Partial("./Partial/Select", Model.CMPRs, new ViewDataDictionary { { "special", "reg" }, { "name", "userno" }, { "selected", "" }, { "df", ":-강사선택" }, { "class", "disp-init" } })</td>
</tr>
<tr>
<th class="req">회차(순서)</th> <th class="req">회차(순서)</th>
<td>@Html.TextBox("iseq", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" })</td> <td>@Html.TextBox("iseq", "", new {@class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" })</td>
</tr> </tr>
</table> </table>
<div class="findboxbtnbox"> <div class="findboxbtnbox">
@ -137,17 +129,21 @@
<table class="regtable"> <table class="regtable">
<colgroup><col style="width:150px;" /><col /></colgroup> <colgroup><col style="width:150px;" /><col /></colgroup>
<tr> <tr>
<th class="req">교육일정</th> <th class="req">운영기수</th>
<td> <td>@Html.TextBox("sseq", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" }) 기</td>
@Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "idate" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "isth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init" }, { "style", "width: 80px;" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "istm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init" }, { "style", "width: 80px;" } })
~
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ieth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init" }, { "style", "width: 80px;" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ietm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init" }, { "style", "width: 80px;" } })
</td>
</tr> </tr>
<tr> <tr>
<th class="req">교육종료일</th>
<td>
@Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "idate" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "isth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "istm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
<span class="idoff">~</span>
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ieth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ietm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
</td>
</tr>
<tr class="troff">
<th class="req">교육장소</th> <th class="req">교육장소</th>
<td> <td>
@*@Html.Partial("./Partial/Radio", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary() { { "checked", Model.CM.studyplace }, { "name", "istudyplace" }, { "isreadonly", 0 } })*@ @*@Html.Partial("./Partial/Radio", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary() { { "checked", Model.CM.studyplace }, { "name", "istudyplace" }, { "isreadonly", 0 } })*@
@ -158,9 +154,9 @@
} }
</td> </td>
</tr> </tr>
<tr> <tr class="troff">
<th class="req">제한인원</th> <th class="req">제한인원</th>
<td>@Html.TextBox("iquota", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" })</td> <td>@Html.TextBox("iquota", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "5" })</td>
</tr> </tr>
</table> </table>
<div class="findboxbtnbox"> <div class="findboxbtnbox">
@ -177,23 +173,29 @@
} }
@section scripts{ @section scripts{
<script> <script>
$(document).ready(function () {
});
var _cmino = 0; var _cmino = 0;
var _cmisno = 0; var _cmisno = 0;
var _isonline = @(Model.CMInnings.Count()>0 ? Model.CMInnings.FirstOrDefault().scdtype == 1 ? "true" : "false" : "false");
$(document).ready(function () {
if (_isonline) {
$(".troff").hide();
$(".idoff").hide();
} else {
$(".troff").show();
$(".idoff").show();
}
});
function save() { function save() {
setrv("isonline", 0); //교육일정에서는 오프라인 교육만 추가 가능 setrv("isonline", 0); //교육일정에서는 오프라인 교육만 추가 가능
if (check("ititle", null, "강의주제를 입력해주세요.", true)) { } if (confirm("저장하시겠습니까?")) {
else if (check("userno", null, "강사를 선택해주세요.", true)) { }
else if (getint(val("iseq")) < 1) { focus("iseq"); msg2("회차를 입력해주세요."); }
else if (confirm("저장하시겠습니까?")) {
var data = new FormData(); var data = new FormData();
data.append("isscd", 1);
data.append("cmino", _cmino); data.append("cmino", _cmino);
data.append("cmno", @Model.CM.cmno); data.append("cmno", @Model.CM.cmno);
data.append("isonline", getrv("isonline")); data.append("isonline", getrv("isonline"));
data.append("ititle", getv("ititle")); data.append("ititle", "집체교육");
data.append("idate", null); data.append("idate", null);
data.append("iday", null); data.append("iday", null);
data.append("ist", null); data.append("ist", null);
@ -204,12 +206,8 @@
data.append("atime", 0); data.append("atime", 0);
data.append("mstime", 0); data.append("mstime", 0);
data.append("metime", 0); data.append("metime", 0);
data.append("fgnotf", val("fgnotf")); data.append("iseq", 99);
if ($("#filetf")[0].files.length > 0) { data.append("scdtype", getrv("scdtype"));
data.append("filetf", $("#filetf")[0].files[0]);
}
data.append("userno", val("userno"));
data.append("iseq", val("iseq"));
capfile("/acommon/cminningsave", data, "cbcminningsave", null, null, true); capfile("/acommon/cminningsave", data, "cbcminningsave", null, null, true);
} }
} }
@ -222,28 +220,38 @@
} }
function savescd() { function savescd() {
if (@Model.CM.ismaster == 0 && check("idate", null, "학습일자를 입력해주세요.", true)) { } if (val("sseq") == "") { focus("sseq"); msg2("운영기수를 입력해주세요."); }
else if (val("isth") == "") { focus("isth"); msg2("학습시간을 확인해주세요."); } else if (@Model.CM.ismaster == 0 && check("idate", null, "학습일자를 입력해주세요.", true)) { }
else if (val("istm") == "") { focus("istm"); msg2("학습시간을 확인해주세요."); } //오프라인일때만 체크
else if (val("ieth") == "") { focus("ieth"); msg2("학습시간을 확인해주세요."); } else if (!_isonline && val("isth") == "") { focus("isth"); msg2("학습시간을 확인해주세요."); }
else if (val("ietm") == "") { focus("ietm"); msg2("학습시간을 확인해주세요."); } else if (!_isonline && val("istm") == "") { focus("istm"); msg2("학습시간을 확인해주세요."); }
else if (getint(val("isth")) > getint(val("ieth"))) { focus("ieth"); msg2("학습시간을 확인해주세요(종료시간이 더 빠름)"); } else if (!_isonline && val("ieth") == "") { focus("ieth"); msg2("학습시간을 확인해주세요."); }
else if (getint(val("isth")) == getint(val("ieth")) && getint(val("istm")) > getint(val("ietm"))) { focus("ieth"); msg2("학습시간을 확인해주세요(종료시간이 더 빠름)"); } else if (!_isonline && val("ietm") == "") { focus("ietm"); msg2("학습시간을 확인해주세요."); }
else if (!_isonline && getint(val("isth")) > getint(val("ieth"))) { focus("ieth"); msg2("학습시간을 확인해주세요(종료시간이 더 빠름)"); }
else if (!_isonline && getint(val("isth")) == getint(val("ieth")) && getint(val("istm")) > getint(val("ietm"))) { focus("ieth"); msg2("학습시간을 확인해주세요(종료시간이 더 빠름)"); }
else if (confirm("저장하시겠습니까?")) { else if (confirm("저장하시겠습니까?")) {
var date = getv("idate"); var date = getv("idate");
var isth = getv("isth"); var isth = getv("isth");
var istm = getv("istm"); var istm = getv("istm");
var ieth = getv("ieth"); var ieth = getv("ieth");
var ietm = getv("ietm"); var ietm = getv("ietm");
var estart = (date + " " + fillzero(isth, true, 2) + ":" + fillzero(istm, true, 2) + ":00").toString(); var estart = "";
var eend = (date + " " + fillzero(ieth, true, 2) + ":" + fillzero(ietm, true, 2) + ":00").toString(); var eend = "";
if (!_isonline) {
estart = (date + " " + fillzero(isth, true, 2) + ":" + fillzero(istm, true, 2) + ":00").toString();
eend = (date + " " + fillzero(ieth, true, 2) + ":" + fillzero(ietm, true, 2) + ":59").toString();
} else {
estart = (date + " 00:00:00").toString();
eend = (date + " 00:23:59").toString();
}
capp("/acommon/cminningscdsave", { capp("/acommon/cminningscdsave", {
cmisno: _cmisno, cmisno: _cmisno,
cmino: @(Model.CMInnings.Count() > 0 ? Model.CMInnings[0].cmino : 0), cmino: @(Model.CMInnings.Count() > 0 ? Model.CMInnings[0].cmino : 0),
estart2: estart, estart2: estart,
eend2: eend, eend2: eend,
quota: getv("iquota"), quota: _isonline ? 99999 : getv("iquota"),
studyplace: $(":input:radio[name=istudyplace]:checked").val() sseq : getv("sseq"),
studyplace: _isonline ? null : $(":input:radio[name=istudyplace]:checked").val()
}, "cbcminningscdsave", null, null, null, true); }, "cbcminningscdsave", null, null, null, true);
} }
} }
@ -302,7 +310,8 @@
if (capResult.code == 1000) { if (capResult.code == 1000) {
var d = capResult.obj; var d = capResult.obj;
$("#btndel").show(); $("#btndel").show();
setrv("isonline", d.isonline); //setrv("isonline", d.isonline);
setrv("scdtype",d.scdtype)
setv("ititle", d.ititle); setv("ititle", d.ititle);
setv("userno", d.userno); setv("userno", d.userno);
setv("iseq", d.iseq); setv("iseq", d.iseq);
@ -346,7 +355,10 @@
setv("ieth", getint(endMinute)); setv("ieth", getint(endMinute));
setv("ietm", getint(endSec)); setv("ietm", getint(endSec));
setv("iquota", getint(d.quota)); setv("iquota", getint(d.quota));
$("input:radio[name=istudyplace][value=" + d.studyplace + "]").attr("checked", true); setv("sseq", getint(d.sseq));
if (d.studyplace != null) {
$("input:radio[name=istudyplace][value=" + d.studyplace + "]").attr("checked", true);
}
} }
bglayer(); $("#scdbox").slideDown("fast", function () { $("#scdbox").scrollTop(0); }); bglayer(); $("#scdbox").slideDown("fast", function () { $("#scdbox").scrollTop(0); });
} }

View File

@ -34,7 +34,7 @@
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 평가기준 및 비율<span class=""></span></strong></header> <header class="panel-heading"><strong><i class="fa fa-bars"></i> 평가기준 및 비율<span class=""></span></strong></header>
<table class="regtable" id="esttable"> <table class="regtable" id="esttable">
<colgroup><col style="width: 80px;display:none;" /><col style="width: 100px;" /><col /><col /><col /><col /><col /><col /><col style="display:none;" /></colgroup> <colgroup><col style="width: 80px;display:none;" /><col style="width: 100px;" /><col /><col /><col /><col /><col /><col /><col style="display:none;" /></colgroup>
<tr><th style="display:none;">기준</th><th>평가항목</th><th>출석(%)</th><th>진행평가(%)</th><th>최종평가(%)</th><th>과제(%)</th><th>토론(%)</th><th style="display:none;">기타(%)</th><th>합계(총점)</th></tr> <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>
<tr class="auto" id="trest"> <tr class="auto" id="trest">
<th rowspan="2" style="display:none;">비환급</th> <th rowspan="2" style="display:none;">비환급</th>
<th>비율(점수)</th> <th>비율(점수)</th>
@ -42,7 +42,7 @@
<td><input type="text" class="form-control int nocomma" maxlength="100" name="mid" id="mid" value="@Model.CMEV.mid" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="mid" id="mid" value="@Model.CMEV.mid" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="final" id="final" value="@Model.CMEV.final" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="final" id="final" value="@Model.CMEV.final" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="subject" id="subject" value="@Model.CMEV.subject" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="subject" id="subject" value="@Model.CMEV.subject" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="discuss" id="discuss" value="@Model.CMEV.discuss" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="discuss" id="discuss" value="@Model.CMEV.discuss" /></td>
<td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etc" id="etc" value="@Model.CMEV.etc" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etc" id="etc" value="@Model.CMEV.etc" /></td>
<td><input type="text" class="form-control int nocomma tot" maxlength="100" name="tot" id="tot" value="@(Model.CMEV.attend+Model.CMEV.mid+Model.CMEV.final+Model.CMEV.subject+Model.CMEV.discuss+Model.CMEV.etc)" readonly="readonly" /></td> <td><input type="text" class="form-control int nocomma tot" maxlength="100" name="tot" id="tot" value="@(Model.CMEV.attend+Model.CMEV.mid+Model.CMEV.final+Model.CMEV.subject+Model.CMEV.discuss+Model.CMEV.etc)" readonly="readonly" /></td>
</tr> </tr>
@ -52,7 +52,7 @@
<td><input type="text" class="form-control int nocomma" maxlength="100" name="midcut" id="midcut" value="@Model.CMEV.midcut" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="midcut" id="midcut" value="@Model.CMEV.midcut" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="finalcut" id="finalcut" value="@Model.CMEV.finalcut" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="finalcut" id="finalcut" value="@Model.CMEV.finalcut" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="subjectcut" id="subjectcut" value="@Model.CMEV.subjectcut" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="subjectcut" id="subjectcut" value="@Model.CMEV.subjectcut" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="discusscut" id="discusscut" value="@Model.CMEV.discusscut" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="discusscut" id="discusscut" value="@Model.CMEV.discusscut" /></td>
<td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etccut" id="etccut" value="@Model.CMEV.etccut" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etccut" id="etccut" value="@Model.CMEV.etccut" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="cut" id="cut" value="@Model.CMEV.cut" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="cut" id="cut" value="@Model.CMEV.cut" /></td>
</tr> </tr>
@ -63,7 +63,7 @@
<td><input type="text" class="form-control int nocomma" maxlength="100" name="midrfd" id="midrfd" value="@Model.CMEV.midrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="midrfd" id="midrfd" value="@Model.CMEV.midrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="finalrfd" id="finalrfd" value="@Model.CMEV.finalrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="finalrfd" id="finalrfd" value="@Model.CMEV.finalrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="subjectrfd" id="subjectrfd" value="@Model.CMEV.subjectrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="subjectrfd" id="subjectrfd" value="@Model.CMEV.subjectrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="discussrfd" id="discussrfd" value="@Model.CMEV.discussrfd" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="discussrfd" id="discussrfd" value="@Model.CMEV.discussrfd" /></td>
<td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etcrfd" id="etcrfd" value="@Model.CMEV.etcrfd" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etcrfd" id="etcrfd" value="@Model.CMEV.etcrfd" /></td>
<td><input type="text" class="form-control int nocomma tot" maxlength="100" name="totrfd" id="totrfd" value="@(Model.CMEV.attendrfd+Model.CMEV.midrfd+Model.CMEV.finalrfd+Model.CMEV.subjectrfd+Model.CMEV.discussrfd+Model.CMEV.etcrfd)" readonly="readonly" /></td> <td><input type="text" class="form-control int nocomma tot" maxlength="100" name="totrfd" id="totrfd" value="@(Model.CMEV.attendrfd+Model.CMEV.midrfd+Model.CMEV.finalrfd+Model.CMEV.subjectrfd+Model.CMEV.discussrfd+Model.CMEV.etcrfd)" readonly="readonly" /></td>
</tr> </tr>
@ -73,7 +73,7 @@
<td><input type="text" class="form-control int nocomma" maxlength="100" name="midcutrfd" id="midcutrfd" value="@Model.CMEV.midcutrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="midcutrfd" id="midcutrfd" value="@Model.CMEV.midcutrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="finalcutrfd" id="finalcutrfd" value="@Model.CMEV.finalcutrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="finalcutrfd" id="finalcutrfd" value="@Model.CMEV.finalcutrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="subjectcutrfd" id="subjectcutrfd" value="@Model.CMEV.subjectcutrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="subjectcutrfd" id="subjectcutrfd" value="@Model.CMEV.subjectcutrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="discusscutrfd" id="discusscutrfd" value="@Model.CMEV.discusscutrfd" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="discusscutrfd" id="discusscutrfd" value="@Model.CMEV.discusscutrfd" /></td>
<td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etccutrfd" id="etccutrfd" value="@Model.CMEV.etccutrfd" /></td> <td style="display:none;"><input type="text" class="form-control int nocomma" maxlength="100" name="etccutrfd" id="etccutrfd" value="@Model.CMEV.etccutrfd" /></td>
<td><input type="text" class="form-control int nocomma" maxlength="100" name="cutrfd" id="cutrfd" value="@Model.CMEV.cutrfd" /></td> <td><input type="text" class="form-control int nocomma" maxlength="100" name="cutrfd" id="cutrfd" value="@Model.CMEV.cutrfd" /></td>
</tr> </tr>
@ -81,7 +81,9 @@
</section> </section>
@if (Model.CM.cshape == 2)//혼합유형 @if (Model.CM.cshape == 2)//혼합유형
{ {
<label><input type="checkbox" name="isoffabs" id="isoffabs" @(Model.CMEV.isoffabs != 0 ? "checked" : "") /> 집합교육 출석 필수</label> <div id="divoffabs" style="@(Model.CMEV.scdtype == 1 ? "display:none;" : "")">
<label><input type="checkbox" @(Model.CMEV.scdtype == 1 ? "disabled" : "") name="isoffabs" id="isoffabs" @(Model.CMEV.isoffabs != 0 ? "checked" : "") /> 집합교육 출석 필수</label>
</div>
} }
<div style="padding-left: 0px; font-weight: bold;"> <div style="padding-left: 0px; font-weight: bold;">
※ 비율의 합은 100%가 되어야 하며, 합계(총점) 수료기준은 반드시 입력하셔야 합니다.<br /> ※ 비율의 합은 100%가 되어야 하며, 합계(총점) 수료기준은 반드시 입력하셔야 합니다.<br />
@ -91,7 +93,7 @@
<br /> <br />
<div class="tar buttonbox"> <div class="tar buttonbox">
<a href="#" onclick="add(0, 0);" class="btn btn-s-xs btn-primary">진행평가/최종평가추가</a> <a href="#" onclick="add(0, 0);" class="btn btn-s-xs btn-primary">진행평가/최종평가추가</a>
<a href="#" onclick="add(1, 0);" class="btn btn-s-xs btn-primary">과제/토론추가</a> <a href="#" onclick="add(1, 0);" class="btn btn-s-xs btn-primary">과제추가</a>
<a href="#" onclick="add(2, 0);" class="btn btn-s-xs btn-primary">설문추가</a> <a href="#" onclick="add(2, 0);" class="btn btn-s-xs btn-primary">설문추가</a>
</div> </div>
<section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;"> <section class="panel panel-default" style="border-top: 1px solid #ddd; margin-top: 5px;">
@ -163,8 +165,10 @@
else if (idx == 4) { $("#dform").attr("action", "/cm/@(Model.viewname)menu").submit(); } else if (idx == 4) { $("#dform").attr("action", "/cm/@(Model.viewname)menu").submit(); }
}, t); }, t);
} }
var _isonline = @(Model.CMEV.scdtype == 1 ? "true" : "false");
function save() { function save() {
var isok = true; var isok = true;
$("#isoffabs").attr("disabled", false);
$.each($("tr td input.tot"), function (i, c) { $.each($("tr td input.tot"), function (i, c) {
if (getint($(c).val()) != 100) { if (getint($(c).val()) != 100) {
isok = false; $(c).focus(); msg("평가항목의 " + ($(c).hasClass("tot") ? "합이" : "기준이") +" [100]이 되도록 입력해주세요."); return false; isok = false; $(c).focus(); msg("평가항목의 " + ($(c).hasClass("tot") ? "합이" : "기준이") +" [100]이 되도록 입력해주세요."); return false;
@ -209,6 +213,7 @@
} }
function cbsave() { function cbsave() {
$("#isoffabs").attr("disabled", _isonline);
if (capResult.code == 1000) { if (capResult.code == 1000) {
msg("평가기준/비율을 저장했습니다.", null, true, null, true); msg("평가기준/비율을 저장했습니다.", null, true, null, true);
gotab(3, 500); gotab(3, 500);

View File

@ -259,13 +259,14 @@
else if (getint(val("iseq")) < 1) { focus("iseq"); msg2("회차를 입력해주세요."); } else if (getint(val("iseq")) < 1) { focus("iseq"); msg2("회차를 입력해주세요."); }
else if (confirm("저장하시겠습니까?")) { else if (confirm("저장하시겠습니까?")) {
if (getrv("isonline") == "1") { if (getrv("isonline") == "1") {
capp("/acommon/cminningsave", { cmino: _cmino, cmno: @Model.CM.cmno, isonline: getrv("isonline"), ititle: getv("ititle"), ctno: $("#contentdatabox li").attr("data-no"), istaste: getrv("istaste"), sttime: getint(val("sttime")), atime: getint(val("atime")), mstime: getint(val("mstime")), metime: getint(val("metime")), userno: val("userno"), iseq: val("iseq") }, "cbcminningsave", null, null,null,true); capp("/acommon/cminningsave", { cmino: _cmino, cmno: @Model.CM.cmno, isonline: getrv("isonline"), ititle: getv("ititle"), ctno: $("#contentdatabox li").attr("data-no"), istaste: getrv("istaste"), sttime: getint(val("sttime")), atime: getint(val("atime")), mstime: getint(val("mstime")), metime: getint(val("metime")), userno: val("userno"), iseq: val("iseq"), isscd:0 }, "cbcminningsave", null, null,null,true);
} else { } else {
if (@Model.CM.cshape == 2) { if (@Model.CM.cshape == 2) {
msg2("온라인 교육시 교육장 회차는 등록 할 수 없습니다."); msg2("온라인 교육시 교육장 회차는 등록 할 수 없습니다.");
return; return;
} }
var data = new FormData(); var data = new FormData();
data.append("isscd", 0);
data.append("cmino", _cmino); data.append("cmino", _cmino);
data.append("cmno", @Model.CM.cmno); data.append("cmno", @Model.CM.cmno);
data.append("isonline", getrv("isonline")); data.append("isonline", getrv("isonline"));

View File

@ -19,7 +19,8 @@
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10">
@if (Model.examsavable == "") @if (Model.examsavable == "")
{ {
@Html.Partial("./Partial/Radio", "0:과제;1:토론", new ViewDataDictionary { { "special", "stringlist" }, { "name", "CMSD.sdtype" }, { "checked", Model.CMSD.sdtype } }) @Html.Partial("./Partial/Radio", "0:과제", new ViewDataDictionary { { "special", "stringlist" }, { "name", "CMSD.sdtype" }, { "checked", 0 } })
@*@Html.Partial("./Partial/Radio", "0:과제;1:토론", new ViewDataDictionary { { "special", "stringlist" }, { "name", "CMSD.sdtype" }, { "checked", Model.CMSD.sdtype } })*@
} }
else else
{ {

View File

@ -0,0 +1,269 @@
@model NP.Model.VMLect
<form id="mform" method="post">
<input type="hidden" id="mform_tabidx" name="tabidx" value="@Model.tabidx" />
<section class="panel panel-default clearfix devsearch" data-cleartbody="tbody1">
@*@Html.Partial("./Partial/SearchCaption")*@
<div class="table-responsive">
<table class="table b-t b-light viewtable">
<colgroup>
<col width="15%" />
<col width="35%" />
<col width="15%" />
<col width="*" />
<col />
</colgroup>
<tbody id="searchtbody">
<tr>
<th>교육종료일</th>
<td>
<div class="col-md-6">
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval) ? (DateTime?)null : Convert.ToDateTime(Model.stringval), new ViewDataDictionary { { "name", "stringval" } })
</div>
</td>
<th>교육생</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "name", "searchtype" }, { "selected", Model.searchtype }, { "valuetext", "usernamestr:이름;useridstr:ID" } })
@Html.Partial("./Partial/Text", Model.searchtext, Helpers.DicText(new NP.Model.TextDic() { Name = "searchtext", Style = "width:70%; display:inline-block;", Value = Model.searchtext, CssClass = "ff" }))
</div>
</td>
</tr>
<tr>
<th>과정명</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval2, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval2", Value = Model.stringval2 }))
</div>
</td>
<th>교육장</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval3" }, { "selected", Model.stringval3 }, { "style", "width: 100%" }, { "df", ":교육장선택" } })
</div>
</td>
</tr>
</table>
</div>
</section>
<div style="text-align: left; border-bottom: 1px solid #ddd; padding-bottom: 5px;">
<span style="color:red; font-weight:bold;">* 온라인 교육만 해당되며, 교육장교육은 검색되지 않습니다. 교육장교육은 <u>성적처리</u> 기능을 이용해주세요.</span>
<div style="text-align:right;">
<button class="btn btn-default btn-s-xs" type="button" onclick="javascript:submit();"><i class="fa fa-search"></i></button>
</div>
</div>
<br />
<section class="panel panel-default">
<div style="padding:5px 10px; text-align:right;">
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
<a href="#" class="btn btn-primary" onclick="save(2);">출석처리</a>
<a href="#" class="btn btn-danger" onclick="save(0);">결석처리</a>
<a href="#" class="btn btn-danger" onclick="save(-1);">미입력처리</a>
</div>
<div class="table-responsive" id="excel1">
<table class="table table-striped b-t b-light">
<thead>
<tr>
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="20">No</th>
<th width="30">운영기수</th>
<th>교육장</th>
<th>과정명</th>
<th>교육생(ID)</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-usernameid="@d.usernameid" data-userno="@d.userno" data-cmino="@d.cmino" /></td>
<td>@d.rnorvt</td>
@if (d.cshape == 2)
{
<td>@d.sseq</td>
}
else
{
<td>-</td>
}
<td>@d.studyplacename</td>
<td>@d.cname</td>
<td>@d.usernameid</td>
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
@if (d.cshape == 2)
{
if (d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart.ToShortDateString() != "0001-01-01" && d.estart >= DateTime.Now)
{
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@d.eend.ToShortDateString()</a></td>
}
else
{
<td>@d.eend.ToShortDateString()</td>
}
}
else
{
<td>@d.edate.Value.ToShortDateString()</td>
}
<td>@d.istatusname</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>
<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>
@section styles{
<style type="text/css">
</style>
}
@section scriptsHeader{
@Html.Partial("./Partial/FileScript")
@Html.Partial("./Partial/ScriptDate")
}
@section scripts{
<script>
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 selectedcmno;
var selectedLectno;
var selectedCmisno;
function setScd() {
capp("/acommon/GetScdForMixEdu", { cmno: selectedcmno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.isEnd == true) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled><span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label></label>");
}
else {
if (d.quota != 0) {
if (d.remainPeople <= 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled<span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label></label>");
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
}
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
}
}
seq++;
ulScd.append(li);
});
$("input:radio[name='rdoScds']:radio[value='" + selectedCmisno + "']").prop('checked', true);
}
function openScd(cmno, lectno, cmisno) {
selectedcmno = cmno;
selectedLectno = lectno;
selectedCmisno = cmisno;
$.when(
setScd()
).done(function () {
setTimeout(function () {
bglayer();
$("#scdbox").slideDown("fast");
}, 200);
});
}
function updateScd() {
if (confirm("교육일정을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
capp("/acommon/LectScdChange", { lectno: selectedLectno, cmisno: cmisno }, "afterUpdateScd");
}
}
function afterUpdateScd() {
if (capResult.code > 0) {
msgok(1, "", true);
submit("mform", 800, true);
}
else {
msg("관리자에게 문의하세요.");
return;
}
}
var amsg;
function save(no) {
if (no == 2) { amsg = "출석"; }
else if (no == 0) { amsg = "결석"; }
else { amsg = "미입력"; }
if ($("#tbody1 tr input.autocheck:checked").length < 1) {
msg(amsg + "처리할 교육생을 선택해주세요.");
} else if (confirm("선택한 교육생을 "+amsg+"처리하시겠습니까?")) {
var userinfos ="";
var cuis="";
$.each($("#tbody1 tr input.autocheck:checked"), function (i, c) {
if ($(c).attr("data-cmino") == "" || $(c).attr("data-cmino") < 1) {
cuis += "," + $(c).attr("data-usernameid");
} else {
userinfos += "," + $(c).attr("data-cmino") + ":" + $(c).val();
}
});
userinfos = userinfos.substr(1);
cuis = cuis.substr(1);
if (cuis != "") {
msg(cuis + "교육생들은 " + amsg + "처리가 불가능합니다.");
} else {
capp("/acommon/offattscdsave", { userinfos : userinfos,istatus:no }, "cboffattscdsave");
}
}
}
function cboffattscdsave() {
if (capResult.code == 1000) {
msgf2("저장했습니다.", "submit('mform', 0, true)");
} else { msgdev(true); }
}
</script>
}

View File

@ -103,7 +103,7 @@
<td class="link text-center"><a href="#" onclick="viewrefund(@d.payno, @d.pstatus, @d.payuserno)">@d.pstatusname</a></td> <td class="link text-center"><a href="#" onclick="viewrefund(@d.payno, @d.pstatus, @d.payuserno)">@d.pstatusname</a></td>
@if (d.cshape == 2 && d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart.ToShortDateString() != "0001-01-01" && d.estart >= DateTime.Now) //혼합모드라면 @if (d.cshape == 2 && d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart.ToShortDateString() != "0001-01-01" && d.estart >= DateTime.Now) //혼합모드라면
{ {
<td class="link text-center"><a href="#" onclick="jabscript: openScd(@d.lectno, @d.cmisno);">@d.estart.ToShortDateString()</a></td> <td class="link text-center"><a href="#" onclick="javascript: openScd(@d.lectno, @d.cmisno);">@d.estart.ToShortDateString()</a></td>
} }
else else
{ {

View File

@ -34,7 +34,7 @@
<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>
<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)

View File

@ -3,7 +3,7 @@
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">
@if(Model.CMEV.isoffabs == 1) @if (Model.CMEV.isoffabs == 1)
{ {
<span style="padding:10px; font-weight:700; color:red;">집합교육 출석 필수강좌입니다.</span> <span style="padding:10px; font-weight:700; color:red;">집합교육 출석 필수강좌입니다.</span>
} }
@ -12,7 +12,7 @@
<table class="table table-striped b-t b-light no-odd"> <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> <colgroup><col style="width: 80px;display:none;" /><col style="width: 100px;" /><col /><col /><col /><col /><col /><col /><col /></colgroup>
<thead> <thead>
<tr><th style="display:none;">기준</th><th>평가항목</th><th>출석(%)</th><th>진행평가(%)</th><th>최종평가(%)</th><th>과제(%)</th><th>토론(%)</th><th>기타(%)</th><th>합계(총점)</th></tr> <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> </thead>
<tr> <tr>
<th rowspan="2" style="display:none;">비환급</th> <th rowspan="2" style="display:none;">비환급</th>
@ -21,8 +21,8 @@
<td>@Model.CMEV.mid</td> <td>@Model.CMEV.mid</td>
<td>@Model.CMEV.final</td> <td>@Model.CMEV.final</td>
<td>@Model.CMEV.subject</td> <td>@Model.CMEV.subject</td>
<td>@Model.CMEV.discuss</td> <td style="display:none;">@Model.CMEV.discuss</td>
<td>@Model.CMEV.etc</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> <td>@(Model.CMEV.attend + Model.CMEV.mid + Model.CMEV.final + Model.CMEV.subject + Model.CMEV.discuss + Model.CMEV.etc )</td>
</tr> </tr>
<tr> <tr>
@ -31,8 +31,8 @@
<td>@Model.CMEV.midcut</td> <td>@Model.CMEV.midcut</td>
<td>@Model.CMEV.finalcut</td> <td>@Model.CMEV.finalcut</td>
<td>@Model.CMEV.subjectcut</td> <td>@Model.CMEV.subjectcut</td>
<td>@Model.CMEV.discusscut</td> <td style="display:none;">@Model.CMEV.discusscut</td>
<td>@Model.CMEV.etccut</td> <td style="display:none;">@Model.CMEV.etccut</td>
<td>@Model.CMEV.cut</td> <td>@Model.CMEV.cut</td>
</tr> </tr>
@if (Model.CM.isrefund == 1) @if (Model.CM.isrefund == 1)
@ -44,8 +44,8 @@
<td>@Model.CMEV.midrfd</td> <td>@Model.CMEV.midrfd</td>
<td>@Model.CMEV.finalrfd</td> <td>@Model.CMEV.finalrfd</td>
<td>@Model.CMEV.subjectrfd</td> <td>@Model.CMEV.subjectrfd</td>
<td>@Model.CMEV.discussrfd</td> <td style="display:none;">@Model.CMEV.discussrfd</td>
<td>@Model.CMEV.etcrfd</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> <td>@(Model.CMEV.attendrfd + Model.CMEV.midrfd + Model.CMEV.finalrfd + Model.CMEV.subjectrfd + Model.CMEV.discussrfd + Model.CMEV.etcrfd)</td>
</tr> </tr>
<tr> <tr>
@ -54,8 +54,8 @@
<td>@Model.CMEV.midcutrfd</td> <td>@Model.CMEV.midcutrfd</td>
<td>@Model.CMEV.finalcutrfd</td> <td>@Model.CMEV.finalcutrfd</td>
<td>@Model.CMEV.subjectcutrfd</td> <td>@Model.CMEV.subjectcutrfd</td>
<td>@Model.CMEV.discusscutrfd</td> <td style="display:none;">@Model.CMEV.discusscutrfd</td>
<td>@Model.CMEV.etccutrfd</td> <td style="display:none;">@Model.CMEV.etccutrfd</td>
<td>@Model.CMEV.cutrfd</td> <td>@Model.CMEV.cutrfd</td>
</tr> </tr>
} }
@ -63,6 +63,20 @@
</section> </section>
<section class="panel panel-default"> <section class="panel panel-default">
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 교육생 평가현황<span class=""></span></strong></header> <header class="panel-heading"><strong><i class="fa fa-bars"></i> 교육생 평가현황<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;"> <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/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;평가안내") @Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;1" : "0;0") + ";1;1;0;평가안내")
@ -72,8 +86,8 @@
<a href="#" class="btn btn-primary" onclick="save();">수료확인</a> <a href="#" class="btn btn-primary" onclick="save();">수료확인</a>
if (!ViewBag.IsSubAdmin96) if (!ViewBag.IsSubAdmin96)
{ {
<a href="#" class="btn btn-danger" onclick="save2();">강제수료처리</a> <a href="#" class="btn btn-danger" onclick="save2();">수료처리</a>
<a href="#" class="btn btn-danger" onclick="save3();">강제수료취소</a> <a href="#" class="btn btn-danger" onclick="save3();">수료취소</a>
} }
} }
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
@ -85,22 +99,28 @@
<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)
{
<th width="30">운영기수</th>
}
<th>구분</th> <th>구분</th>
<th>고객사</th> <th>고객사</th>
<th>교육생(ID)</th> <th>교육생(ID)</th>
<th>교육시작일</th> <th>교육시작일</th>
<th>교육종료일</th>
<th>진도율</th> <th>진도율</th>
<th>진행평가(@ev.ex0cnt)</th> <th>진행평가(@ev.ex0cnt)</th>
<th>최종평가(@ev.ex1cnt)</th> <th>최종평가(@ev.ex1cnt)</th>
<th>과제(@ev.sd0cnt)</th> <th>과제(@ev.sd0cnt)</th>
<th>토론(@ev.sd1cnt)</th> <th style="display:none;">토론(@ev.sd1cnt)</th>
<th>환산점수</th>
@if(Model.CMEV.isoffabs == 1) @if(Model.CMEV.isoffabs == 1)
{ {
<th>OFF출석</th> <th>집합교육출석여부</th>
} }
<th>환산점수</th> <th>강의평가</th>
<th>수료여부</th> <th>수료여부</th>
<th>수료일변경</th> @*<th>수료일변경</th>*@
</tr> </tr>
</thead> </thead>
<tbody class="data" id="tbody1"> <tbody class="data" id="tbody1">
@ -109,10 +129,29 @@
<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)
{
<td>@d.sseq</td>
}
<td>@d.isrebatename</td> <td>@d.isrebatename</td>
<td>@d.asname</td> <td>@d.asname</td>
<td>@d.usernameid</td> <td>@d.usernameid</td>
<td>@((Model.CM.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td> <td>@((Model.CM.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
@if(Model.CMEV.cshape == 2)
{
if(d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart.ToShortDateString() != "0001-01-01" && d.estart >= DateTime.Now)
{
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.lectno,@d.cmisno);">@d.eend.ToShortDateString()</a></td>
}
else
{
<td>@d.eend.ToShortDateString()</td>
}
}
else
{
<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>
@ -124,16 +163,17 @@
<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.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.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
<td>@( 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.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.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.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.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>*@ <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) @if (Model.CMEV.isoffabs == 1)
{ {
<th>@(d.ispassat == 1 ? "O" : "X")</th> <td class="link text-center"><a href="#" onclick="save4();">@d.istatusname</a></td>
} }
<td>@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())</td> <td>@(d.rs0lectcnt) / @(d.rs0cnt)</td>
@if (!ViewBag.IsSubAdmin96) @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> <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>
@ -142,13 +182,14 @@
{ {
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td> <td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
} }
<td><a style="@(d.iscomplete == 1 ? "":"display:none;")" href="#" class="btn btn-select btn-xxs" onclick="changecompt('@(d.completetime != null ? d.completetime.Value.ToString("yyyy-MM-dd") : "0001-01-01")','@d.username','@d.userid',@d.lectno,'@d.cshape')">변경</a></td> @*<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> </tr>
} }
</tbody> </tbody>
</table> </table>
</div> </div>
</section> </section>
@Html.Partial("./Partial/dform", Model) @Html.Partial("./Partial/dform", Model)
</form> </form>
<div id="thisbox" class="findbox draggable regbox" style="width: 600px; z-index: 1041; top: 30%; left:30%; overflow: auto;"> <div id="thisbox" class="findbox draggable regbox" style="width: 600px; z-index: 1041; top: 30%; left:30%; overflow: auto;">
@ -163,6 +204,80 @@
</div> </div>
<br /><br /> <br /><br />
</div> </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> <script>
var _no = 0; var _no = 0;
@ -271,5 +386,153 @@
submit("mform", 500, true); submit("mform", 500, true);
} else { msgadmin2(); } } else { msgadmin2(); }
} }
var selectedLectno;
var selectedCmisno;
function setScd() {
capp("/acommon/GetScdForMixEdu", { cmno: @Model.CM.cmno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.isEnd == true)
{
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled><span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label></label>");
}
else
{
if (d.quota != 0) {
if (d.remainPeople <= 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled<span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label></label>");
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
}
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
}
}
seq++;
ulScd.append(li);
});
$("input:radio[name='rdoScds']:radio[value='" + selectedCmisno + "']").prop('checked', true);
}
function openScd(lectno, cmisno) {
selectedLectno = lectno;
selectedCmisno = cmisno;
$.when(
setScd()
).done(function () {
setTimeout(function () {
bglayer();
$("#scdbox").slideDown("fast");
},200);
});
}
function updateScd() {
if (confirm("교육일정을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
capp("/acommon/LectScdChange", { lectno: selectedLectno, cmisno: cmisno }, "afterUpdateScd");
}
}
function afterUpdateScd() {
if (capResult.code > 0) {
msgok(1, "", true);
submit("mform", 800, true);
}
else {
msg("관리자에게 문의하세요.");
return;
}
}
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> </script>

View File

@ -214,7 +214,7 @@
"<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 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></tr>"); "<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></tr>");
}); });
} }
function changeatt(idx) { function changeatt(idx) {
$("input.att" + idx).prop("checked", true); $("input.att" + idx).prop("checked", true);
} }

View File

@ -1,4 +1,7 @@
@model NP.Model.VMLect @model NP.Model.VMLect
@{
int idx = 1;
}
<form id="mform" method="post"> <form id="mform" method="post">
@if (Model.CMEXes.Count() < 1) @if (Model.CMEXes.Count() < 1)
{ {
@ -50,12 +53,13 @@ else
<th>응시상태</th> <th>응시상태</th>
<th>총점</th> <th>총점</th>
<th>관리</th> <th>관리</th>
<th>응시기록</th>
</tr> </tr>
</thead> </thead>
<tbody class="data" id="tbody1"> <tbody class="data" id="tbody1">
@foreach (var d in Model.LectEXes) @foreach (var d in Model.LectEXes)
{ {
<tr> <tr data-exno="@d.exno" data-lectno="@d.lectno">
<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>
<td>@d.isrebatename</td> <td>@d.isrebatename</td>
@ -65,13 +69,16 @@ else
<td>@d.eseterm</td> <td>@d.eseterm</td>
<td>@d.eip</td> <td>@d.eip</td>
<td class="estate@(d.estate)">@d.estatename</td> <td class="estate@(d.estate)">@d.estatename</td>
<td><a class="btn btn-xxs btn-select" onclick="viewex(@d.exno, @d.lectno)" href="#">@d.tpoint</a></td> <td><a class="btn btn-xxs btn-select" onclick="viewex(@d.exno, @d.lectno,@(idx++))" href="#">@d.tpoint</a></td>
<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> <a style="color:#fff" onclick="reexam(@d.exno, @d.lectno)" href="#" class="btn btn-select btn-xxs">재응시</a>
} }
</td> </td>
<td class="link text-center">
<a style="color:#fff" onclick="viewreexam(@d.exno, @d.lectno)" href="#" class="btn btn-select btn-xxs">조회</a>
</td>
</tr> </tr>
} }
</tbody> </tbody>
@ -113,7 +120,27 @@ else
<br /><br /> <br /><br />
<div class="botfixempty">&nbsp;</div> <div class="botfixempty">&nbsp;</div>
<div style="position: fixed; bottom: 30px; left: 200px; width: 800px; height: 50px; background-color: #fff; text-align: center;"> <div style="position: fixed; bottom: 30px; left: 200px; width: 800px; height: 50px; background-color: #fff; text-align: center;">
<a href="#" class="btn btn-default btn-xs closethisbox" data-click="checkclose()">닫기</a></div> <a href="#" id="btnpre" class="btn btn-info btn-xs" onclick="gopage(-1)">◀이전</a>
<a href="#" id="btnnext" class="btn btn-info btn-xs" onclick="gopage(1)">다음▶</a>
<a href="#" class="btn btn-default btn-xs closethisbox" data-click="checkclose()">닫기</a>
</div>
</div>
<div id="thisbox2" class="findbox draggable regbox" style="width: 600px; 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>
<table class="regtable">
<colgroup><col style="width:10%" /><col/><col /><col /><col /> </colgroup>
<thead>
<tr>
<th>No</th>
<th>응시일자</th>
<th>제출일자</th>
<th>경과시간</th>
<th>IP</th>
</tr>
</thead>
<tbody id="tbody2">
</tbody>
</table>
</div> </div>
<style type="text/css"> <style type="text/css">
td.estate0{background-color: #ffd7bb !important; color: red;} td.estate0{background-color: #ffd7bb !important; color: red;}
@ -153,6 +180,23 @@ else
function findme() { function findme() {
bglayer(); submit(); bglayer(); submit();
} }
var _saveidx = 0;
function gopage(idx) {
if (idx != 0) {
_saveidx = idx;
hidelayermsg(true);
getexs(true);
}
}
var _isprenext = false;
function getexs(isprenext) {
_isprenext = isprenext;
if (isprenext) {
$("#tbody1 tr").remove();
capp("/acommon/lectexes", { cmno: @Model.CM.cmno, exno: $("#addstringval").val(), isrebate: valnull("addstringval2"), sdstate: valnull("addstringval3") }, "cblectexes", null, null, null, true);
}
}
function changeex(s) { function changeex(s) {
$("tr.extr").addClass("hidden"); $("tr.extr").addClass("hidden");
$("tr.ex" + ($(s).find("option").index($(s).find("option:selected")) + 1)).removeClass("hidden"); $("tr.ex" + ($(s).find("option").index($(s).find("option:selected")) + 1)).removeClass("hidden");
@ -161,7 +205,7 @@ else
} }
function cblectexes() { function cblectexes() {
$.each(capResult.obj, function (i, d) { $.each(capResult.obj, function (i, d) {
$("#tbody1").append(("<tr>" + $("#tbody1").append(("<tr data-exno=\"{12}\" data-lectno=\"{0}\">" +
"<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" + "<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" +
"<td>{2}</td>" + "<td>{2}</td>" +
"<td>{3}</td>" + "<td>{3}</td>" +
@ -171,13 +215,17 @@ else
"<td>{8}</td>" + "<td>{8}</td>" +
"<td>{9}</td>" + "<td>{9}</td>" +
"<td class=\"estate{10}\">{11}</td>" + "<td class=\"estate{10}\">{11}</td>" +
"<td><a class=\"btn btn-xxs btn-select\" onclick =\"viewex({12}, {0})\" href=\"#\">{13}</a></td>" + "<td><a class=\"btn btn-xxs btn-select\" onclick =\"viewex({12}, {0},{15})\" href=\"#\">{13}</a></td>" +
"<td class=\"link text-center\">{14}</td>" + "<td class=\"link text-center\">{14}</td>" +
"<td class=\"link text-center\"><a style=\"color:#fff;\" onclick=\"viewreexam({12},{0})\" href=\"#\" class=\"btn btn-select btn-xxs\">조회</a></td>" +
"</tr>").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, getdb(d.asname) "</tr>").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, getdb(d.asname)
, d.usernameid, d.estartymdhm, getdb(d.eend) == "" ? "" : "({0})".format(d.eendymdhm), d.eseterm, getdb(d.eip) , d.usernameid, d.estartymdhm, getdb(d.eend) == "" ? "" : "({0})".format(d.eendymdhm), d.eseterm, getdb(d.eip)
, d.estate, d.estatename, d.exno, d.tpoint , d.estate, d.estatename, d.exno, d.tpoint
, (getdb(d.estart) != "" && getdb(d.eend) == "") ? ("<a style=\"color:#fff;\" onclick=\"reexam({12}, {0})\" href=\"#\" class=\"btn btn-select btn-xxs\">재응시</a>") : "")); , (getdb(d.estart) != "") ? ("<a style=\"color:#fff;\" onclick=\"reexam({12}, {0})\" href=\"#\" class=\"btn btn-select btn-xxs\">재응시</a>") : "",(i+1)));
}); });
if (_isprenext) {
viewex($("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-exno"), $("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-lectno"), _ridx + _saveidx);
}
} }
function reexam(exno, lectno) { function reexam(exno, lectno) {
capp("/acommon/reexam", { exno: exno, lectno: lectno }, "cbreexam"); capp("/acommon/reexam", { exno: exno, lectno: lectno }, "cbreexam");
@ -188,11 +236,29 @@ else
submit("mform", 500); submit("mform", 500);
} }
} }
function viewreexam(exno, lectno) {
capp("/acommon/reexamlog", { exno: exno, lectno: lectno }, "cbviewreexam");
}
function cbviewreexam() {
$("#tbody2 tr").remove();
if (capResult.obj.length > 0) {
$.each(capResult.obj, function (i, d) {
$("#tbody2").append("<tr><td style=\"text-align:center;\">" + d.rnorvt + "</td><td>" + d.estartymdhm + "</td><td>" + (d.eend == null ? "" : d.eendymdhm) + "</td><td>" + d.eseterm + "</td><td>" + d.eip + "</td></tr>");
});
} else {
$("#tbody2").append("<tr><td colspan=\"5\" style=\"text-align:center; font-weight:bold;\">- 재응시 이력이 없습니다.</td></tr>");
}
setTimeout(function () {
bglayer(); $("#thisbox2").slideDown("fast", function () { $("#thisbox2").scrollTop(0); });
}, 10);
}
var _exno = 0; var _exno = 0;
var _lectno = 0; var _lectno = 0;
function viewex(exno, lectno) { var _ridx = 0;
function viewex(exno, lectno,ridx) {
_exno = exno; _exno = exno;
_lectno = lectno; _lectno = lectno;
_ridx = ridx;
$("#exdata tr").remove(); $("#exdata tr").remove();
capp("/acommon/lectex", { lectno: lectno, exno: exno }, "cblectex"); capp("/acommon/lectex", { lectno: lectno, exno: exno }, "cblectex");
} }
@ -282,8 +348,18 @@ else
} }
}); });
$("#exdata").append(html); $("#exdata").append(html);
$("#btnpre,#btnnext").show();
if (_ridx == 1) {
$("#btnpre").hide();
}
if (_ridx == $("#tbody1 tr").length) {
$("#btnnext").hide();
}
setTimeout(function () { setTimeout(function () {
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); }); bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
bglayer2(false);
}, 10); }, 10);
} }
function checkclose() { function checkclose() {

View File

@ -0,0 +1,134 @@
@model NP.Model.VMLect
<form id="mform" method="post">
<input type="hidden" id="mform_tabidx" name="tabidx" value="@Model.tabidx" />
<section class="panel panel-default clearfix devsearch" data-cleartbody="tbody1">
@*@Html.Partial("./Partial/SearchCaption")*@
<div class="table-responsive">
<table class="table b-t b-light viewtable">
<colgroup>
<col width="15%" />
<col width="35%" />
<col width="15%" />
<col width="*" />
<col />
</colgroup>
<tbody id="searchtbody">
<tr>
<th>교육종료일</th>
<td>
<div class="col-md-6">
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval) ? (DateTime?)null : Convert.ToDateTime(Model.stringval), new ViewDataDictionary { { "name", "stringval" } })
</div>
</td>
<th>교육유형</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":전체;2:온라인교육;1:교육장교육" }, { "name", "stringval2" }, { "selected", Model.stringval2 } })
</div>
</td>
</tr>
<tr>
<th>과정명</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval3, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval3", Value = Model.stringval3 }))
</div>
</td>
<th>수료여부</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":수료여부;0:미수료;1:수료" }, { "name", "stringval4" }, { "selected", Model.stringval4 } })
</div>
</td>
</tr>
<tr>
<th>교육장</th>
<td>
<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", ":교육장선택" } })
</div>
</td>
<th>교육생</th>
<td>
<div class="col-md-12">
@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" }))
</div>
</td>
</tr>
<tr>
<th>교육기간</th>
<td>
<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" } })
</div>
</td>
<th>고객사</th>
<td>
<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" }))
</div>
</td>
</tr>
</table>
</div>
</section>
<div style="text-align: right; border-bottom: 1px solid #ddd; padding-bottom: 5px;">
<button class="btn btn-default btn-s-xs" type="button" onclick="javascript:submit();"><i class="fa fa-search"></i></button>
</div><br />
<ul class="pagination pagination-md">
@if (ViewBag.IsSubAdmin96)
{
<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 == 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>
}
else if (ViewBag.IsSubAdmin97)
{
<li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="gotab(4);" data-toggle="tab">과제</a></li>
}
else
{
<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 == 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>
}
</ul>
@Html.Partial("gradeall" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)
</form>
@section styles{
<style type="text/css">
#bglayer2 {
display: block;
}
#mform2 {
display: none;
}
</style>
}
@section scriptsHeader{
@Html.Partial("./Partial/semscript")
@Html.Partial("./Partial/FileScript")
@Html.Partial("./Partial/ScriptDate")
}
@section scripts{
<script>
function gotab(idx) {
if (idx != @Model.tabidx) {
setv("mform_tabidx", idx);
bglayer();
$("#mform").attr("action", "/croom/gradeall").submit();
}
}
$(window).on("load", function () {
$("#mform2").show();
$("#bglayer2").hide();
});
</script>
}

View File

@ -0,0 +1,437 @@
@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>
@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>교육생(ID)</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.usernameid</td>
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
@if(d.cshape == 2)
{
if(d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart.ToShortDateString() != "0001-01-01" && d.estart >= DateTime.Now)
{
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@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.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
<td>@(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
<td style="display:none;">@( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>
<td>@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())</td>
@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>
@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>
<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 selectedcmno;
var selectedLectno;
var selectedCmisno;
function setScd() {
capp("/acommon/GetScdForMixEdu", { cmno: selectedcmno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.isEnd == true)
{
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled><span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label></label>");
}
else
{
if (d.quota != 0) {
if (d.remainPeople <= 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled<span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label></label>");
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
}
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
}
}
seq++;
ulScd.append(li);
});
$("input:radio[name='rdoScds']:radio[value='" + selectedCmisno + "']").prop('checked', true);
}
function openScd(cmno, lectno, cmisno) {
selectedcmno = cmno;
selectedLectno = lectno;
selectedCmisno = cmisno;
$.when(
setScd()
).done(function () {
setTimeout(function () {
bglayer();
$("#scdbox").slideDown("fast");
},200);
});
}
function updateScd() {
if (confirm("교육일정을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
capp("/acommon/LectScdChange", { lectno: selectedLectno, cmisno: cmisno }, "afterUpdateScd");
}
}
function afterUpdateScd() {
if (capResult.code > 0) {
msgok(1, "", true);
submit("mform", 800,true);
}
else {
msg("관리자에게 문의하세요.");
return;
}
}
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

@ -0,0 +1,446 @@
@model NP.Model.VMLect
@{
int idx = 1;
}
<form id="mform2" method="post">
<br />
<section class="panel panel-default">
<div style="padding: 10px 10px">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-응시상태;2:응시완료;1:응시중;0:미응시" }, { "name", "addstringval2" }, { "selected", Model.addstringval2 }, { "onchange", "submit()" } })
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
@Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;1;1" : "0;0;0") + ";1;right;평가안내")
</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="20">운영기수</th>
<th>구분</th>
<th>고객사</th>
<th>교육장</th>
<th>과정명</th>
<th>시험명</th>
<th>교육생(ID)</th>
<th>교육시작일</th>
<th>교육종료일</th>
<th>응시일자<br />(제출일자)</th>
<th>경과시간</th>
<th>IP</th>
<th width="30">응시상태</th>
<th>총점</th>
<th>관리</th>
<th>수료여부</th>
</tr>
</thead>
<tbody class="data" id="tbody1">
@foreach (var d in Model.LectEXes)
{
<tr data-exno="@d.exno" data-lectno="@d.lectno">
<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.exname</td>
<td>@d.usernameid</td>
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
@if (d.cshape == 2)
{
if (d.lestart != null && d.lestart > Convert.ToDateTime("1900-01-01") && d.lestart.ToShortDateString() != "0001-01-01" && d.lestart >= DateTime.Now)
{
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@d.leend.ToShortDateString()</a></td>
}
else
{
<td>@d.leend.ToShortDateString()</td>
}
}
else
{
<td>@d.edate.Value.ToShortDateString()</td>
}
<td>@(d.estartymdhm)<br />@(d.eend == null ? "": string.Format("({0})", d.eendymdhm))</td>
<td>@d.eseterm</td>
<td>@d.eip</td>
<td class="estate@(d.estate)">@d.estatename</td>
<td><a class="btn btn-xxs btn-select" onclick="viewex(@d.exno, @d.lectno,@(idx++))" href="#">@d.tpoint</a></td>
<td class="link text-center">
@if (d.estart != null)
{
<a style="color:#fff" onclick="reexam(@d.exno, @d.lectno)" href="#" class="btn btn-select btn-xxs">재응시</a>
}
</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>
<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="thisbox" 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">시험 상세결과</span><a href="#" class="btn btn-default btn-xs f-r closethisbox" data-click="checkclose()">닫기</a></h4>
<br />
<h5><i class="fa fa-bars"></i> 개요</h5>
<table class="regtable" id="exsummary">
<tr>
<th>소속</th>
<th>이름(ID)</th>
<th>총점</th>
<th>객관식</th>
<th>단답형</th>
<th>서술형</th>
</tr>
<tr>
<td id="asname"></td>
<td id="usernameid"></td>
<td id="tpoint"></td>
<td id="a0point"></td>
<td id="a1point"></td>
<td id="a2point"></td>
</tr>
</table>
<br />
<h5><i class="fa fa-bars"></i> 채점결과</h5>
<div>
<table class="regtable">
<colgroup><col width="100" /><col /></colgroup>
<tbody id="exdata"></tbody>
</table>
</div>
<br /><br />
<div class="botfixempty">&nbsp;</div>
<div style="position: fixed; bottom: 30px; left: 200px; width: 800px; height: 50px; background-color: #fff; text-align: center;">
<a href="#" id="btnpre" class="btn btn-info btn-xs" onclick="nextex(-1)">◀이전</a>
<a href="#" id="btnnext" class="btn btn-info btn-xs" onclick="nextex(1)">다음▶</a>
<a href="#" class="btn btn-default btn-xs closethisbox" data-click="checkclose()">닫기</a>
</div>
</div>
<style type="text/css">
td.estate0{background-color: #ffd7bb !important; color: red;}
.tablea0{word-break: break-all; width: 100%;}
.tablea0 tr td{text-align: center;}
.tablea0 tr td.qi{text-align: left;}
.regtable tr td .tablea0 tr td {padding: 6px 5px;}
#exsummary tr td{text-align: center;}
td.qi div.imgbox.active{position: fixed; left: 10%; top: 10%; height: 80%; width: 80%; z-index: 3000; background-color: #999; text-align: center;padding-top: 10%;}
td.qi div.imgbox.active img{height: 60%; max-width: 60%;}
</style>
<script>
$(document).ready(function () {
$("tr.ex" + ($("#addstringval").find("option").index($("#addstringval").find("option:selected")) + 1)).removeClass("hidden");
$("body").on("click", "td.qi div.imgbox", function () {
$(this).toggleClass("active");
});
$("body").on("click", "td.save a.btn-danger", function () {
var input = $(this).closest("td").find("input");
if (getint(input.val()) > getint(input.attr("data-max"))) {
$(input).focus();
msg2(input.attr("data-max") + "점 이하로 입력해주세요.");
} else if (confirm("점수를 수정하시겠습니까?")) {
capp("/acommon/lectexqpoint", { exno: _exno, lectno: _lectno, eqno: input.attr("data-eqno"), cpoint: getint(input.val()) }, "cblectexqpoint", null, null, null, true);
}
});
});
var _ispointchanged = false;
function cblectexqpoint() {
if (capResult.code == 1000) {
_ispointchanged = true;
msg2("점수를 변경하였습니다(수료처리는 별도로 진행해야합니다.)");
} else {
msgdev(true);
}
}
function findme() {
bglayer(); submit();
}
function reexam(exno, lectno) {
capp("/acommon/reexam", { exno: exno, lectno: lectno }, "cbreexam");
}
function cbreexam() {
if (capResult.code == 1000) {
msg("재응시 처리했습니다.", null, null, null, true);
submit("mform", 500);
}
}
var _exno = 0;
var _lectno = 0;
var _ridx = 0;
function viewex(exno, lectno,ridx) {
_exno = exno;
_lectno = lectno;
_ridx = ridx;
$("#exdata tr").remove();
capp("/acommon/lectex", { lectno: lectno, exno: exno }, "cblectex");
}
function cblectex() {
var lectex = capResult.obj.lectex;
var lectexq = capResult.obj.lectexq;
var lectexqs = capResult.obj.lectexqs;
var qis = capResult.obj.qis;
sett("asname", getdb(lectex.asname));
sett("usernameid", getdb(lectex.usernameid))
sett("tpoint", "{0}/{1}".format(lectex.tpoint, lectex.extpoint));
var v1 = 0;
var v2 = 0;
$.each(lectexq, function (i, d) {
if (d.atype == 0) {
v1 += d.cpoint;
v2 += d.dpoint;
}
});
sett("a0point", "{0}/{1}".format(v1, v2));
v1 = 0;
v2 = 0;
$.each(lectexq, function (i, d) {
if (d.atype == 1) {
v1 += d.cpoint;
v2 += d.dpoint;
}
});
sett("a1point", "{0}/{1}".format(v1, v2));
v1 = 0;
v2 = 0;
$.each(lectexq, function (i, d) {
if (d.atype == 2) {
v1 += d.cpoint;
v2 += d.dpoint;
}
});
sett("a2point", "{0}/{1}".format(v1, v2));
var html = "";
$.each(lectexq, function (i, d) {
if (d.atype == 0) {
html += "" +
"<tr><th>문제" + (i + 1) + "</th>" +
"<td>" + d.qtext + "</td></tr>" +
"<tr><th>보기</th>" +
"<td><table class=\"tablea0\"><colgroup><col width=\"50\" /><col width=\"50\" /><col width=\"80\" /><col /></colgroup><tr><th>정답</th><th>선택</th><th>비율</th><th>보기</th></tr>";
$.each(qis, function (i2, d2) {
if (d2.qno == d.qno) {
var tqi = null;
$.each(lectexqs, function (i3, d3) {
if (d3.qno == d2.qno) {
tqi = d3;
return false;
}
});
html += "" +
"<tr><td>" + (d2.isright == 1 ? "[정답]" : "") + "</td>" +
"<td>" + (("," + getdb(d.atext) + ",").indexOf("," + d2.qino + ",") > -1 ? "[선택]" : "") + "</td>" +
"<td>[" + (tqi == null ? 0 : tqi.countselect) + "명, " + (tqi == null ? 0 : tqi.avgselect) + "%]</td>" +
"<td class=\"qi\">" + (d2.fileurl == null ? "":"<div class=\"imgbox\"><img style='max-width: 90%;' src='@Model.Files" + getdb(d2.fileurl) + "' alt='' style=\"max-width: 50%;\" /></div>") + (d2.qitext) + "</td></tr>";
}
});
html += "</table></td></tr>" +
"<tr><th>점수</th>" +
"<td class=\"save\">선다형) <input type=\"text\" data-eqno=\"" + d.eqno + "\" data-max=\"" + d.dpoint + "\" data-org=\"" + d.cpoint + "\" class=\"form-control disp-init int text-center\" maxlength\"2\" style=\"width: 100px;\" value=\""+d.cpoint+"\" /> / " + d.dpoint + "점 <a href=\"#\" class=\"btn btn-danger\">저장</a></td></tr><tr><td colspan=\"2\">&nbsp;</td></tr>";
}
else if (d.atype == 1) {
var rights = "";
$.each(qis, function (i2, d2) {
if (d2.qno == d.qno) {
rights += "," + d2.qitext;
}
});
rights = rights == "" ? "" : rights.substr(1);
html += "<tr><th>문제" + (i + 1) + "</th><td>" + d.qtext + "</td></tr>" +
"<tr><th>정답</th><td>" + rights + "</td></tr>" +
"<tr><th>응시자답안</th><td>" + getdb(d.atext) + "</td></tr>" +
"<tr><th>점수</th>" +
"<td class=\"save\">단답형) <input type=\"text\" data-eqno=\"" + d.eqno + "\" data-max=\"" + d.dpoint + "\" data-org=\"" + d.cpoint + "\" class=\"form-control disp-init int text-center\" maxlength\"2\" style=\"width: 100px;\" value=\"" + d.cpoint +"\" /> / " + d.dpoint + "점 <a href=\"#\" class=\"btn btn-danger\">저장</a></td></tr><tr><td colspan=\"2\">&nbsp;</td></tr>";
}
else if (d.atype == 2) {
html += "<tr><th>문제" + (i + 1) + "</th><td>" + d.qtext + "</td></tr>" +
"<tr><th>응시자답안</th><td>" + getdb(d.atext) + "</td></tr>" +
"<tr><th>점수</th>" +
"<td class=\"save\">서술형) <input type=\"text\" data-eqno=\"" + d.eqno + "\" data-max=\"" + d.dpoint + "\" data-org=\"" + d.cpoint + "\" class=\"form-control disp-init int text-center\" maxlength\"2\" style=\"width: 100px;\" value=\"" + d.cpoint +"\" /> / " + d.dpoint + "점 <a href=\"#\" class=\"btn btn-danger\">저장</a></td></tr><tr><td colspan=\"2\">&nbsp;</td></tr>";
}
});
$("#exdata").append(html);
$("#btnpre,#btnnext").show();
if (_ridx == 1) {
$("#btnpre").hide();
}
if (_ridx == $("#tbody1 tr").length) {
$("#btnnext").hide();
}
setTimeout(function () {
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
bglayer2(false);
}, 10);
}
function checkclose() {
//191223.kfcf-req 점수변경시 페이지 갱신 안되도록 수정
self.close();
bglayer(false);
}
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 selectedcmno;
var selectedLectno;
var selectedCmisno;
function setScd() {
capp("/acommon/GetScdForMixEdu", { cmno: selectedcmno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.isEnd == true) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled><span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label></label>");
}
else {
if (d.quota != 0) {
if (d.remainPeople <= 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled<span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label></label>");
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
}
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
}
}
seq++;
ulScd.append(li);
});
$("input:radio[name='rdoScds']:radio[value='" + selectedCmisno + "']").prop('checked', true);
}
function openScd(cmno, lectno, cmisno) {
selectedcmno = cmno;
selectedLectno = lectno;
selectedCmisno = cmisno;
$.when(
setScd()
).done(function () {
setTimeout(function () {
bglayer();
$("#scdbox").slideDown("fast");
}, 200);
});
}
function updateScd() {
if (confirm("교육일정을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
capp("/acommon/LectScdChange", { lectno: selectedLectno, cmisno: cmisno }, "afterUpdateScd");
}
}
function afterUpdateScd() {
if (capResult.code > 0) {
msgok(1, "", true);
submit("mform", 800, true);
}
else {
msg("관리자에게 문의하세요.");
return;
}
}
var _saveidx = 0;
function nextex(idx) {
if (idx != 0) {
_saveidx = idx;
hidelayermsg(true);
getexs(true);
}
}
var _isprenext = false;
function getexs(isprenext) {
_isprenext = isprenext;
if (isprenext) {
$("#tbody1 tr").remove();
capp("/acommon/lectallexes", { pagenum: @((int)Model.pagenum), pagerowcount:@(Model.pagerowcount), sdstate: valnull("addstringval2"), edate: valnull("stringval"), cshape: valnull("stringval2"), cname: valnull("stringval3"), cnamestr: valnull("stringval3"), iscomplete: valnull("stringval4"), studyplace: valnull("stringval5"), searchtype: valnull("stringval6"), searchtext: valnull("stringval7"), extype: @(Model.tabidx == 2 ? 0 : 1), sdateall: valnull("stringval8"), edateall: valnull("stringval9"), asname: valnull("stringval10") }, "cblectexes", null, null, null, true);
}
}
function cblectexes() {
$.each(capResult.obj, function (i, d) {
$("#tbody1").append(("<tr data-exno=\"{12}\" data-lectno=\"{0}\">" +
"<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" +
"<td>{2}</td>" +
"<td>{16}</td>" +
"<td>{3}</td>" +
"<td>{4}</td>" +
"<td>{17}</td>" +
"<td>{18}</td>" +
"<td>{19}</td>" +
"<td>{5}</td>" +
"<td>{20}</td>" +
"{21}" +
"<td>{6}<br />{7}</td>" +
"<td>{8}</td>" +
"<td>{9}</td>" +
"<td class=\"estate{10}\">{11}</td>" +
"<td><a class=\"btn btn-xxs btn-select\" onclick =\"viewex({12}, {0},{15})\" href=\"#\">{13}</a></td>" +
"<td class=\"link text-center\">{14}</td>" +
"{22}</tr>").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, getdb(d.asname)
, d.usernameid, d.estartymdhm, getdb(d.eend) == "" ? "" : "({0})".format(d.eendymdhm), d.eseterm, getdb(d.eip)
, d.estate, d.estatename, d.exno, d.tpoint
, (getdb(d.estart) != "") ? ("<a style=\"color:#fff;\" onclick=\"reexam({12}, {0})\" href=\"#\" class=\"btn btn-select btn-xxs\">재응시</a>") : "", (i + 1)
, d.cshape == 2 ? d.sseq : "-",getdb(d.studyplacename), getdb(d.cname), getdb(d.exname), d.leststr, d.leestr
, '@(!ViewBag.IsSubAdmin96)' == 'True' ? d.scomplete : d.scomplete96));
});
if (_isprenext) {
viewex($("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-exno"), $("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-lectno"), _ridx + _saveidx);
}
}
</script>

View File

@ -0,0 +1,408 @@
@model NP.Model.VMLect
@{
int idx = 1;
}
<form id="mform" method="post">
<section class="panel panel-default">
<div style="padding: 10px 10px">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-응시상태;1:제출;0:미제출" }, { "name", "addstringval2" }, { "selected", Model.addstringval2}, { "onchange", "findme()" } })
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
@Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;11;" : "0;0;0") + ";1;right;평가안내")
</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>운영기수</th>
<th>교육장</th>
<th>과정명</th>
<th>교육생(ID)</th>
<th>교육시작일</th>
<th>교육종료일</th>
<th>상태</th>
<th>점수</th>
<th>첨삭</th>
<th>모사</th>
<th>최근제출일(IP)</th>
<th>최근평가일(IP)</th>
<th>수료여부</th>
</tr>
</thead>
<tbody class="data" id="tbody1">
@foreach (var d in Model.LectSDs)
{
<tr data-sdno="@d.sdno" data-lectno="@d.lectno">
<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.studyplacename</td>
<td>@d.cname</td>
<td>@d.usernameid</td>
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
@if (d.cshape == 2)
{
if (d.lestart != null && d.lestart > Convert.ToDateTime("1900-01-01") && d.lestart.ToShortDateString() != "0001-01-01" && d.lestart >= DateTime.Now)
{
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@d.leend.ToShortDateString()</a></td>
}
else
{
<td>@d.leend.ToShortDateString()</td>
}
}
else
{
<td>@d.edate.Value.ToShortDateString()</td>
}
<td class="estate@(d.sdstate)">@d.sdstatename</td>
<td><a class="btn btn-xxs btn-select" onclick="viewsd(@d.sdno, @d.lectno, @(idx++))" href="#">@d.cpoint2</a></td>
<td>@d.feedbox</td>
<td><a class="btn btn-xxs btn-select iscopy@(d.iscopy)" onclick="viewcopy(@d.sdno, @d.lectno)" href="#">@d.copyratename</a></td>
<td>@Html.Raw(d.submittimeip)</td>
<td>@Html.Raw(d.checktimeip)</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>
<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="thisbox" class="findbox draggable regbox" style="height: 850px; width: 800px; 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>
<br />
<table class="regtable" id="exsummary">
<tr>
<th>제출자</th>
<td id="userinfo"></td>
</tr>
<tr>
<th>제출내용</th>
<td id="atext"></td>
</tr>
<tr>
<th>첨부파일</th>
<td id="fileinfo"></td>
</tr>
<tr>
<th>점수</th>
<td><input type="text" class="form-control int disp-init text-center" style="width: 70px;" max="3" id="cpoint" onchange="checkmax(this)" /></td>
</tr>
<tr>
<th>피드백</th>
<td><textarea class="form-control" id="feedb" style="resize: none; height: 250px;" maxlength="800"></textarea></td>
</tr>
</table>
<br /><br /><br />
<div class="text-center">
<a href="#" id="btnpre" class="btn btn-info btn-xs" onclick="save(-1)">◀이전</a>
<a href="#" class="btn btn-primary btn-xs" onclick="save(0)">저장</a>
<a href="#" id="btnnext" class="btn btn-info btn-xs" onclick="save(1)">다음▶</a>
&nbsp;&nbsp;&nbsp;<a href="#" class="btn btn-default btn-xs closethisbox">닫기</a>
</div>
<br /><br />
</div>
<style type="text/css">
td.estate0 {
background-color: #ffd7bb !important;
color: red;
}
td a.iscopy1 {
background-color: red !important;
}
.tablea0 {
word-break: break-all;
width: 100%;
}
.tablea0 tr td {
text-align: center;
}
.tablea0 tr td.qi {
text-align: left;
}
.regtable tr td .tablea0 tr td {
padding: 6px 5px;
}
/*#exsummary tr td{text-align: center;}*/
td.qi div.imgbox.active {
position: fixed;
left: 10%;
top: 10%;
height: 80%;
width: 80%;
z-index: 3000;
background-color: #999;
text-align: center;
padding-top: 10%;
}
td.qi div.imgbox.active img {
height: 60%;
max-width: 60%;
}
</style>
<script>
var ischange = false;
$(document).ready(function () {
$("body").on("click", "td.qi div.imgbox", function () {
$(this).toggleClass("active");
});
$("#cpoint,#feedb,#feedb2").on("propertychange change keyup paste input", function () {
ischange = true;
})
});
function findme() {
bglayer(); submit();
}
var _isprenext = false;
function getsds(isprenext) {
_isprenext = isprenext;
if (isprenext) {
$("#tbody1 tr").remove();
capp("/acommon/lectallsds", { pagenum: @((int)Model.pagenum), pagerowcount:@(Model.pagerowcount), sdstate: valnull("addstringval2"), edate: valnull("stringval"), cshape: valnull("stringval2"), cname: valnull("stringval3"), cnamestr: valnull("stringval3"), iscomplete: valnull("stringval4"), studyplace: valnull("stringval5"), searchtype: valnull("stringval6"), searchtext: valnull("stringval7"), sdtype: 0, sdateall: valnull("stringval8"), edateall: valnull("stringval9"), asname: valnull("stringval10") }, "cblectsds", null, null, null, true);
} else {
capp("/acommon/lectallsds", { pagenum: @((int)Model.pagenum), pagerowcount:@(Model.pagerowcount), sdstate: valnull("addstringval2"), edate: valnull("stringval"), cshape: valnull("stringval2"), cname: valnull("stringval3"), cnamestr: valnull("stringval3"), iscomplete: valnull("stringval4"), studyplace: valnull("stringval5"), searchtype: valnull("stringval6"), searchtext: valnull("stringval7"), sdtype: 0, sdateall: valnull("stringval8"), edateall: valnull("stringval9"), asname: valnull("stringval10") }, "cblectsds");
}
}
function cblectsds() {
$.each(capResult.obj, function (i, d) {
$("#tbody1").append(("<tr data-sdno=\"{8}\" data-lectno=\"{0}\">" +
"<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" +
"<td>{2}</td>" +
"<td>{16}</td>" +
"<td>{17}</td>" +
"<td>{18}</td>" +
"<td>{5}</td>" +
"<td>{19}</td>" +
"{20}"+
"<td class=\"estate{6}\">{7}</td>" +
"<td><a class=\"btn btn-xxs btn-select viewsd\" onclick=\"viewsd({8}, {0}, {15})\" href=\"#\">{9}</a></td>" +
"<td>{10}</td>" +
"<td><a class=\"btn btn-xxs btn-select iscopy{11}\" onclick=\"viewcopy({8}, {0})\" href=\"#\">{12}</a></td>" +
"<td>{13}</td>" +
"<td>{14}</td>"+
"{21}").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, d.asname
, d.usernameid, d.sdstate, d.sdstatename, d.sdno, d.cpoint2
, d.feedbox, d.iscopy, d.copyratename, d.submittimeip, d.checktimeip, (i + 1), d.cshape == 2 ? d.sseq : '-', d.studyplacename
, d.cname, d.leststr, d.leestr, '@(!ViewBag.IsSubAdmin96)' == 'True' ? d.scomplete : d.scomplete96));
});
if (_isprenext) {
viewsd($("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-sdno"), $("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-lectno"), _ridx + _saveidx);
}
}
var _sdno = 0;
var _lectno = 0;
var _ridx=0;
function viewsd(sdno, lectno, ridx) {
ischange = false;
_sdno = sdno;
_lectno = lectno;
_ridx = ridx;
capp("/acommon/lectsd", { lectno: lectno, sdno: sdno }, "cblectsd");
}
function cblectsd() {
var d = capResult.obj;
$("#userinfo").text("[{0}]{1} | {2}".format(d.isrebatename, d.asname, d.usernameid));
if (getdb(d.atext) == "") {
$("#atext").html("- 미제출");
} else {
$("#atext").html(getdb(d.atext).replace(/\n/gi, "<br />"));
}
var _html = "- 제출파일 없음<br />";
if (getdb(d.fileurl) != "") {
_html = "<a href=\"/aCommon/DownFile?fno={0}&loginfo=&issubject=1\" title=\"다운로드\"><i class=\"fa fa-paperclip\"></i> <span class=\"fileitem\">{1}</span></a><br />".format(d.fileno, d.orgname);
}
_html += "(모사율: {0})&nbsp;&nbsp;&nbsp;".format(d.copyratename);
$("#fileinfo").html(_html + ("<label><input id=\"iscopy\" type=\"checkbox\" " + (d.iscopy == 1 ? "checked" : "") + " /> 모사답안신고</label>"));
setv("cpoint", d.cpoint);
$("#feedb").val(d.feedb);
$("#feedb").removeAttr("readonly");
//if (getdb(d.feedb) != '') {
// $("#feedb").attr("readonly", "readonly");
//}
$("#btnpre,#btnnext").show();
if (_ridx == 1) {
$("#btnpre").hide();
}
if (_ridx == $("#tbody1 tr").length) {
$("#btnnext").hide();
}
setTimeout(function () {
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
bglayer2(false);
$("#cpoint").focus();
}, 10);
}
var _saveidx = 0;
function save(idx) {
if (idx != 0 && ischange == false) {
_saveidx = idx;
hidelayermsg2(true);
getsds(true);
} else {
if (getint($("#cpoint").val()) < 0) {
$("#cpoint").focus();
msg2("0점 이상으로 입력해주세요.");
} else if (getint($("#cpoint").val()) > getint($("#addstringval").find("option:selected").attr("data-tpoint"))) {
$("#cpoint").focus();
msg2(getint($("#addstringval").find("option:selected").attr("data-tpoint")) + "점 이하으로 입력해주세요.");
} else if (confirm("저장하시겠습니까?")) {
_saveidx = idx;
capp("/acommon/lectsdsave", { lectno: _lectno, sdno: val("addstringval"), iscopy: $("#iscopy").prop("checked") ? 1 : 0, cpoint: val("cpoint"), feedb: val("feedb") }, "cbsave", null, null, null, true);
}
}
}
function cbsave() {
if (capResult.code == 1000) {
if (_saveidx == 0) {
msg2("저장했습니다.");
//submit("mform", 500);
} else {
//리스트 갱신 후 다음 또는 이전 수강생과제 표시
msg2("저장했습니다.", null, null, null, true);
setTimeout(function () {
hidelayermsg2(true);
getsds(true);
}, 300);
}
} else {
msgdev(true);
}
}
function checkmax(p) {
if (getint($(p).val()) < 0) {
$(p).focus();
msg2("0점 이상으로 입력해주세요.");
} else if (getint($(p).val()) > getint($("#addstringval").find("option:selected").attr("data-tpoint"))) {
$(p).focus();
msg2(getint($("#addstringval").find("option:selected").attr("data-tpoint"))+"점 이하으로 입력해주세요.");
}
}
function viewcopy(sdno,lectno) {
var winl = (screen.width - 840) / 2;
var wint = (screen.height - 410) / 2;
var opt = 'height=410, width=840, top=' + wint + ', left=' + winl + ',location=no, noresizable';
window.open("http://118.219.255.225:7614/memechecker/score.html?domain=v_lectsd_list&docId="+sdno+"_"+lectno, "iscopyWin", opt);
}
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 selectedcmno;
var selectedLectno;
var selectedCmisno;
function setScd() {
capp("/acommon/GetScdForMixEdu", { cmno: selectedcmno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.isEnd == true) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled><span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label></label>");
}
else {
if (d.quota != 0) {
if (d.remainPeople <= 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled<span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label></label>");
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
}
}
else {
if (seq == 0) {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
else {
li.append("<label style='cursor: pointer'><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "</label>");
}
}
}
seq++;
ulScd.append(li);
});
$("input:radio[name='rdoScds']:radio[value='" + selectedCmisno + "']").prop('checked', true);
}
function openScd(cmno, lectno, cmisno) {
selectedcmno = cmno;
selectedLectno = lectno;
selectedCmisno = cmisno;
$.when(
setScd()
).done(function () {
setTimeout(function () {
bglayer();
$("#scdbox").slideDown("fast");
}, 200);
});
}
function updateScd() {
if (confirm("교육일정을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
capp("/acommon/LectScdChange", { lectno: selectedLectno, cmisno: cmisno }, "afterUpdateScd");
}
}
function afterUpdateScd() {
if (capResult.code > 0) {
msgok(1, "", true);
submit("mform", 800, true);
}
else {
msg("관리자에게 문의하세요.");
return;
}
}
</script>
<iframe id="ifrthis" style="display: none;"></iframe>

View File

@ -13,6 +13,7 @@
<br /> <br />
<form id="mform" name="mform"> <form id="mform" name="mform">
<input type="hidden" name="rfdno" value="@r.rfdno" /> <input type="hidden" name="rfdno" value="@r.rfdno" />
<input type="hidden" name="payno" value="@r.payno" />
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 환불정보<span class=""></span></strong></header> <header class="panel-heading"><strong><i class="fa fa-bars"></i> 환불정보<span class=""></span></strong></header>
<table class="regtable" style="margin-top: 0;"> <table class="regtable" style="margin-top: 0;">
<colgroup><col style="width: 150px" /><col /></colgroup> <colgroup><col style="width: 150px" /><col /></colgroup>
@ -58,13 +59,17 @@
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 검토결과<span class=""></span></strong></header> <header class="panel-heading"><strong><i class="fa fa-bars"></i> 검토결과<span class=""></span></strong></header>
<table class="regtable" style="margin-top: 0;"> <table class="regtable" style="margin-top: 0;">
<colgroup><col style="width: 150px" /><col /></colgroup> <colgroup><col style="width: 150px" /><col /></colgroup>
<tr><th>검토상태</th><td>@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절;4:취소" }, { "checked", r.rstatus }, { "name", "rstatus" } })</td></tr> <tr><th>검토상태</th><td>@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절" }, { "checked", r.rstatus }, { "name", "rstatus" } })</td></tr>
<tr><th>검토상태</th><td>@*@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절;4:취소" }, { "checked", r.rstatus }, { "name", "rstatus" } })*@</td></tr>
<tr><th>검토의견</th><td><input type="text" class="form-control" id="rback" name="rback" value="@r.rback" /></td></tr> <tr><th>검토의견</th><td><input type="text" class="form-control" id="rback" name="rback" value="@r.rback" /></td></tr>
</table> </table>
</form> </form>
@if (r.rstatus == 0) @if (r.rstatus == 0)
{ {
<div style="padding: 5px 10px; text-align: center"><a href="#" class="btn btn-primary" onclick="save();">저장</a></div> <div style="padding: 5px 10px; text-align: center">
<a href="#" class="btn btn-primary" onclick="save();">저장</a>
<a href="#" class="btn btn-danger" onclick="cancel();">취소</a>
</div>
} }
<br /><br /><br /> <br /><br /><br />
@section styles{ @section styles{
@ -109,5 +114,19 @@
opener.thisrefresh(); opener.thisrefresh();
} }
} }
function cancel() {
if (confirm("취소 시 환불요청서가 삭제됩니다.\n취소하시겠습니까?")) {
gocancel();
}
}
function gocancel() {
cap("/acommon/payrfdcancel", "mform", "cbcancel");
}
function cbcancel() {
if (capResult.code == 1000) {
msg("취소되었습니다.", null, null, null, null, "self.close()");
opener.thisrefresh();
}
}
</script> </script>
} }

View File

@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<th>기본담당자연락처</th> <th>기본담당자연락처</th>
<td colspan="3">@Html.TextBoxFor(m => m.Assign.mphone, new { @class = "form-control telnofmt nocomma", @data_zero = "1", @maxlength = "13" })</td> <td colspan="3">@Html.TextBoxFor(m => m.Assign.mphone, new { @class = "form-control telnofmt mobilefmt nocomma", @data_zero = "1", @maxlength = "13" })</td>
</tr> </tr>
<tr> <tr>
<th>계산서이메일</th> <th>계산서이메일</th>
@ -131,7 +131,7 @@
setv("Assign_brno", val("Assign_brno").replace(/-/gi, '')); setv("Assign_brno", val("Assign_brno").replace(/-/gi, ''));
setv("Assign_grno", val("Assign_grno").replace(/-/gi, '')); setv("Assign_grno", val("Assign_grno").replace(/-/gi, ''));
if (check("Assign_asname", null, "법인명을 입력해주세요.")) { } if (check("Assign_asname", null, "법인명을 입력해주세요.")) { }
else if (val("Assign_mphone") != "" && !isphone(val("Assign_mphone"))) { msg("잘못된 연락처입니다."); } else if (val("Assign_mphone") != "" && (!isphone(val("Assign_mphone")) && !ismobile(val("Assign_mphone")))) { msg("잘못된 연락처입니다."); }
else if (confirm("저장하시겠습니까?")) { else if (confirm("저장하시겠습니까?")) {
capfileform("/acommon/assignsave", "mform", "cbsave"); capfileform("/acommon/assignsave", "mform", "cbsave");
} }

View File

@ -508,7 +508,7 @@
setv("User_birthday", makebirthday(val("userpno1") + val("userpno2"))); setv("User_birthday", makebirthday(val("userpno1") + val("userpno2")));
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 < 6) {focus("User_userid"); msg("ID를 6글자 이상으로 입력해주세요.");} else if (val("User_userid").length < 4) {focus("User_userid"); msg("ID를 4글자 이상으로 입력해주세요.");}
else if (val("User_userno") == '0' && !ispassword(val("User_userpass"))) { focus("User_userpass"); msg("6글자이상의 비밀번호를 입력해주세요."); } else if (val("User_userno") == '0' && !ispassword(val("User_userpass"))) { focus("User_userpass"); msg("6글자이상의 비밀번호를 입력해주세요."); }
else if (val("userpno1") != "" && val("userpno2") == "") { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); } else if (val("userpno1") != "" && val("userpno2") == "") { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); }
else if ((val("userpno1") != "" && val("userpno2") != "") && $("#User_userpno").val().length < 13) { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); } else if ((val("userpno1") != "" && val("userpno2") != "") && $("#User_userpno").val().length < 13) { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); }

View File

@ -34,7 +34,7 @@
<add key="adminurl" value="http://admin.ynicte.com" /> <add key="adminurl" value="http://admin.ynicte.com" />
<add key="adminips" value="118.219.255.223;118.219.255.225"/> <add key="adminips" value="118.219.255.223;118.219.255.225"/>
<add key="reporturl" value="http://ynicter.nptc.kr" /> <add key="reporturl" value="http://ynicter.nptc.kr" />
<add key="isstaging" value="0" /> <add key="isstaging" value="1" />
<!--<add key="masteremail" value="edu@ynicte.or.kr;mail.ynicte.or.kr;25;ynicte@ynicte.or.kr;k7758870!%" />--> <!--<add key="masteremail" value="edu@ynicte.or.kr;mail.ynicte.or.kr;25;ynicte@ynicte.or.kr;k7758870!%" />-->
<add key="masteremail" value="yicte@cte.or.kr;smtp.daum.net;465;yicte2020;yicte04003" /> <add key="masteremail" value="yicte@cte.or.kr;smtp.daum.net;465;yicte2020;yicte04003" />
<add key="usessl" value="Y" /> <add key="usessl" value="Y" />

View File

@ -62,7 +62,7 @@ img.wideviewable.activeon{
.form-control .searchcon{width: auto;} .form-control .searchcon{width: auto;}
.searchbutton{} .searchbutton{}
.datepicker-input.dev{width: 130px; text-align: center; display: initial;} .datepicker-input.dev{width: 130px; text-align: center; display: initial;}
.fa-calendar.dev{margin-left: -20px; margin-right: 10px;} .fa-calendar.dev{margin-left: -22px; margin-right: 10px;}
input[type="file"].fileitem{display: none;} input[type="file"].fileitem{display: none;}
.devfile{margin-top: -5px;} .devfile{margin-top: -5px;}
.itemfind {margin-top: -3px;} .itemfind {margin-top: -3px;}

5
BO/libman.json Normal file
View File

@ -0,0 +1,5 @@
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}

View File

@ -297,6 +297,12 @@ namespace NP.Base.Controllers
{ {
rtn = Dao.Save("cm.cminnings." + (cmi.cmino > 0 ? "up" : "in"), cmi); rtn = Dao.Save("cm.cminnings." + (cmi.cmino > 0 ? "up" : "in"), cmi);
} }
//집체교육일정,온라인일시
if(cmi.cmino > 0 && cmi.isscd == 1 && cmi.scdtype == 1)
{
Dao.Save("cm.cminningscd.clear", cmi);
Dao.Save("cm.cmev.clear", cmi);
}
if (cmi.istaste == 1){ if (cmi.istaste == 1){
Dao.Save("cm.cminnings.istasteclear", cmi); Dao.Save("cm.cminnings.istasteclear", cmi);
} }
@ -320,6 +326,7 @@ namespace NP.Base.Controllers
else else
{ {
rtn = Dao.Save("cm.cminningscd." + (cmis.cmisno > 0 ? "up" : "in"), cmis); rtn = Dao.Save("cm.cminningscd." + (cmis.cmisno > 0 ? "up" : "in"), cmis);
Dao.Save("cm.cminningscd.up.lect",cmis);
} }
return JsonOK(rtn, true); return JsonOK(rtn, true);
} }

View File

@ -439,21 +439,25 @@ namespace NP.Base.Controllers
return JsonBack(new JsonRtn() { code = 1000, msg = "OK", obj = new { cancelcount } }); return JsonBack(new JsonRtn() { code = 1000, msg = "OK", obj = new { cancelcount } });
} }
[HttpPost] [HttpPost]
public JsonResult CMInningGetForOff(Int64 cmino) public JsonResult CMInningGetForOff(Int64? cmino,Int64? cmisno,Int64? lectno)
{ {
var rtn = new Hashtable() { }; var rtn = new Hashtable() { };
rtn.Add("ci", Dao.Get<CMInning>("cm.cminnings", new Hashtable() { { "cmino", cmino } }).First()); rtn.Add("ci", Dao.Get<CMInning>("cm.cminnings", new Hashtable() { { "cmino", cmino },{"cmisno",cmisno } }).First());
rtn.Add("li", Dao.Get<LectInning>("lect.lectinnings.bycmino", new Hashtable() { { "cmino", cmino } })); rtn.Add("li", Dao.Get<LectInning>("lect.lectinnings.bycmino", new Hashtable() { { "cmino", cmino }, { "cmisno", cmisno },{"lectno",lectno } }));
return JsonBack(rtn); return JsonBack(rtn);
} }
[HttpPost] [HttpPost]
public JsonResult OffAttSave(Int64 cmino, String lis, Int64? fgno) public JsonResult OffAttSave(Int64 cmino, String lis, Int64? fgno,Int64? fgnooff)
{ {
var cmi = new CMInning() { cmino = cmino, fgno = fgno, Ds = new List<CMInning>() { }, uno = SUserInfo.UserNo, uip = GetUserIP() }; var cmi = new CMInning() { cmino = cmino, fgno = fgno,fgnooff=fgnooff, Ds = new List<CMInning>() { }, uno = SUserInfo.UserNo, uip = GetUserIP() };
if (Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0) if (Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
{ {
cmi.fgno = SetFile(Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), cmi.fgno ?? 0, "cminning", "fgno"); cmi.fgno = SetFile(Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), cmi.fgno ?? 0, "cminning", "fgno");
} }
if (Request.Files.GetMultiple("file2").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
{
cmi.fgnooff = SetFile(Request.Files.GetMultiple("file2").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), cmi.fgnooff ?? 0, "cminning", "fgnooff");
}
var lectnos = ""; var lectnos = "";
foreach (var s in lis.Split(';')) foreach (var s in lis.Split(';'))
{ {
@ -465,9 +469,33 @@ namespace NP.Base.Controllers
{ {
Dao.Save("cm.cminning.fgno", cmi); Dao.Save("cm.cminning.fgno", cmi);
} }
if(cmi.fgnooff != null)
{
Dao.Save("cm.cminning.fgnooff", cmi);
}
return JsonOK(Dao.Save("att.off.save", cmi)); return JsonOK(Dao.Save("att.off.save", cmi));
} }
[HttpPost] [HttpPost]
public JsonResult offattscdsave(int istatus,String userinfos)
{
var lectnos = "";
var cmi = new CMInning() { Ds = new List<CMInning>() { }, uno = SUserInfo.UserNo, uip = GetUserIP() };
if (string.IsNullOrEmpty(userinfos))
{
return JsonOK(-1);
}
else
{
foreach(var s in userinfos.Split(','))
{
lectnos += "," + s.Split(':')[1];
cmi.Ds.Add(new CMInning() { cmino = GetInt64(s.Split(':')[0]), lectno = GetInt64(s.Split(':')[1]), istatus = istatus < 0 ? (Int32?)null : istatus });
}
cmi.lectnos = lectnos.Substring(1);
}
return JsonOK(Dao.Save("att.scd.save", cmi));
}
[HttpPost]
public JsonResult AttABS(Int64 lectno, Int64 cmino, String reason) public JsonResult AttABS(Int64 lectno, Int64 cmino, String reason)
{ {
return JsonOK(Dao.Save("att.abs", new Hashtable() { { "lectno", lectno }, { "cmino", cmino }, { "statusreason", reason }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) == 2 ? 1 : 0); return JsonOK(Dao.Save("att.abs", new Hashtable() { { "lectno", lectno }, { "cmino", cmino }, { "statusreason", reason }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) == 2 ? 1 : 0);
@ -482,12 +510,24 @@ namespace NP.Base.Controllers
{ {
return JsonBack(Dao.Get<LectEX>("lect.lectexes", new System.Collections.Hashtable() { { "cmno", cmno }, { "exno", exno }, { "isrebate", isrebate }, { "estate", estate } })); return JsonBack(Dao.Get<LectEX>("lect.lectexes", new System.Collections.Hashtable() { { "cmno", cmno }, { "exno", exno }, { "isrebate", isrebate }, { "estate", estate } }));
} }
public JsonResult LectAllEXes(int pagenum, int pagerowcount,int extype, String edate, String cname, String cnamestr, String searchtype, String searchtext,String sdateall,String edateall,String asname, int? studyplace = null, int? iscomplete = null, int? cshape = null, int? sdstate = null)
{
pagenum = pagenum < 1 ? 1 : pagenum;
pagerowcount = pagerowcount < 1 ? PageRowCount : pagerowcount;
return JsonBack(Dao.Get<LectEX>("lect.lectexes.all", new System.Collections.Hashtable() { {"extype",extype },{ "estate", sdstate }, { "pagenum", pagenum }, { "pagerowsize", pagerowcount }, { "edate", edate },{"sdateall",sdateall },{"edateall",edateall }, { "cshape", cshape }, { "cname", cname }, { "cnamestr", cnamestr }, { "iscomplete", iscomplete }, { "studyplace", studyplace }, { "searchtype", searchtype }, { "searchtext", searchtext },{"asname",asname } }));
}
[HttpPost] [HttpPost]
public JsonResult ReExam(int exno, Int64 lectno) public JsonResult ReExam(int exno, Int64 lectno)
{ {
return JsonOK(Dao.Save("lect.reexam", new Hashtable() { { "exno", exno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 1 ? 1 : 0); return JsonOK(Dao.Save("lect.reexam", new Hashtable() { { "exno", exno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 1 ? 1 : 0);
} }
[HttpPost] [HttpPost]
public JsonResult ReExamLog(int exno, Int64 lectno)
{
return JsonBack(Dao.Get<LectEX>("lect.reexam.log", new System.Collections.Hashtable() { { "exno", exno }, { "lectno", lectno } }));
}
[HttpPost]
public JsonResult LectEX(Int64 lectno, int exno) public JsonResult LectEX(Int64 lectno, int exno)
{ {
var rtn = new Hashtable() { }; var rtn = new Hashtable() { };
@ -503,7 +543,26 @@ namespace NP.Base.Controllers
[HttpPost] [HttpPost]
public JsonResult LectEXQPoint(int exno, Int64 lectno, int eqno, int cpoint) public JsonResult LectEXQPoint(int exno, Int64 lectno, int eqno, int cpoint)
{ {
return JsonOK(Dao.Save("lect.lectexq.point", new Hashtable() { { "lectno", lectno }, { "exno", exno }, { "eqno", eqno }, { "cpoint", cpoint }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } })); IList<QuestionItem> qis = Dao.Get<QuestionItem>("lect.eqno.listforcheck", new Hashtable() { { "lectno", lectno }, { "eqno", eqno }, { "exno", exno } });
int? iscorrect = null;
if(qis.Count() > 0)
{
var qi = qis.FirstOrDefault();
if(qi.atype == 0)
{
iscorrect = string.Join(",", qis.Where(w => w.eqno == eqno).ToList().Select(s => s.qino)) == qi.atext ? 1 : 0;
}
else if (qi.isignorecase == 0)
{
iscorrect = qis.Where(w => w.eqno == eqno).Where(w => (w.qitext ?? "").Replace(qi.ispassspace == 1 ? " " : "박건박건박효동", "") == (qi.atext.Replace("$$$PHDPHD$$$", ";").Replace("$$$PHD$$$", ":") ?? "").Replace(qi.ispassspace == 1 ? " " : "박건박건박효동", "")).Count() > 0 ? 1 : 0;
}
else
{
iscorrect = qis.Where(w => w.eqno == eqno).Where(w => (w.qitext ?? "").Replace(qi.ispassspace == 1 ? " " : "박건박건박효동", "").ToLower() == (qi.atext.Replace("$$$PHDPHD$$$", ";").Replace("$$$PHD$$$", ":") ?? "").Replace(qi.ispassspace == 1 ? " " : "박건박건박효동", "").ToLower()).Count() > 0 ? 1 : 0;
}
}
return JsonOK(Dao.Save("lect.lectexq.point", new Hashtable() { { "lectno", lectno }, { "exno", exno }, { "eqno", eqno },{"iscorrect"+(iscorrect == null ? "x" : ""),iscorrect }, { "cpoint", cpoint }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
} }
public JsonResult ExamUserBatch(int intval, String datas) public JsonResult ExamUserBatch(int intval, String datas)
{ {
@ -537,6 +596,14 @@ namespace NP.Base.Controllers
return JsonBack(Dao.Get<LectSD>("lect.lectsds", new System.Collections.Hashtable() { { "cmno", cmno }, { "sdno", sdno }, { "isrebate", isrebate }, { "estate", sdstate } })); return JsonBack(Dao.Get<LectSD>("lect.lectsds", new System.Collections.Hashtable() { { "cmno", cmno }, { "sdno", sdno }, { "isrebate", isrebate }, { "estate", sdstate } }));
} }
[HttpPost] [HttpPost]
public JsonResult LectAllSDs(int pagenum,int pagerowcount,String edate,String cname,String cnamestr,String searchtype,String searchtext,String sdateall,String edateall,String asname, int? studyplace = null, int? iscomplete = null, int? cshape = null, int? sdstate = null,int? sdtype = 0)
{
pagenum = pagenum < 1 ? 1 : pagenum;
pagerowcount = pagerowcount < 1 ? PageRowCount : pagerowcount;
return JsonBack(Dao.Get<LectSD>("lect.lectsds.all", new System.Collections.Hashtable() { { "estate", sdstate }, { "pagenum", pagenum }, { "pagerowsize", pagerowcount }, { "edate", edate },{"sdateall",sdateall },{"edateall",edateall }, { "cshape", cshape }, { "cname", cname }, { "cnamestr", cnamestr }, { "iscomplete", iscomplete }, { "studyplace", studyplace }, { "searchtype", searchtype }, {"searchtext",searchtext } ,{"sdtype",sdtype },{"asname",asname } }));
}
[HttpPost]
public JsonResult LectSD(Int64 lectno, int sdno) public JsonResult LectSD(Int64 lectno, int sdno)
{ {
return JsonBack(Dao.Get<LectSD>("lect.lectsd", new Hashtable() { { "lectno", lectno }, { "sdno", sdno } }).First()); return JsonBack(Dao.Get<LectSD>("lect.lectsd", new Hashtable() { { "lectno", lectno }, { "sdno", sdno } }).First());
@ -666,6 +733,14 @@ namespace NP.Base.Controllers
d.uno = SUserInfo.UserNo; d.uip = GetUserIP(); d.uno = SUserInfo.UserNo; d.uip = GetUserIP();
return JsonOK(Dao.Save("cr.payrfd.save", d)); return JsonOK(Dao.Save("cr.payrfd.save", d));
} }
[HttpPost]
public JsonResult PayRfdCancel(PayRfd d)
{
d.uno = SUserInfo.UserNo; d.uip = GetUserIP();
d.rstatus = 4;
return JsonOK(Dao.Save("pay.payrfdcancel.up", d));
}
[HttpPost] [HttpPost]
public JsonResult PayRefund(Int64 payno, String sd, int isrefunddvr,bool iscancel) public JsonResult PayRefund(Int64 payno, String sd, int isrefunddvr,bool iscancel)
{ {
@ -1324,6 +1399,15 @@ namespace NP.Base.Controllers
return JsonBack(result); return JsonBack(result);
} }
[HttpPost]
public JsonResult GetCmiForMixEdu(int cmno)
{
var rtn = new Hashtable();
rtn.Add("cmi", Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", cmno }, { "isonline", 0 }, { "isscd", 1 } }));
rtn.Add("cmis", Dao.Get<CMinningscd>("cm.cminningscds", new System.Collections.Hashtable() { { "cmno", cmno } }));
return JsonBack(rtn);
}
[HttpPost] [HttpPost]
public JsonResult LectScdChange(Int64 lectno, Int64 cmisno) public JsonResult LectScdChange(Int64 lectno, Int64 cmisno)
{ {

View File

@ -193,6 +193,7 @@ namespace NP.Base
ViewBag.mainmenuexam = data.First().intval8; ViewBag.mainmenuexam = data.First().intval8;
ViewBag.mainmenuresearch = data.First().intval9; ViewBag.mainmenuresearch = data.First().intval9;
ViewBag.mainmenugrade = data.First().intval10; ViewBag.mainmenugrade = data.First().intval10;
ViewBag.maincshape = data.First().intval12;
ViewBag.maincgname = data.First().strval; ViewBag.maincgname = data.First().strval;
ViewBag.maincname = data.First().strval2; ViewBag.maincname = data.First().strval2;
ViewBag.mainboardmaster = data.First().strval3; ViewBag.mainboardmaster = data.First().strval3;

View File

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

View File

@ -450,7 +450,7 @@ namespace NP.Base.Controllers
foreach (var item in result) foreach (var item in result)
{ {
//item.scdInfoSummary = string.Format("[{0}] {1}", item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm")); //item.scdInfoSummary = string.Format("[{0}] {1}", item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm"));
item.scdInfoSummary = string.Format("{0}", item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm")); item.scdInfoSummary = string.Format("{0}", item.estart.ToString("yyyy년 MM월 dd일까지"));
if (item.estart < DateTime.Now) if (item.estart < DateTime.Now)
item.isEnd = true; item.isEnd = true;
} }

View File

@ -481,7 +481,10 @@ create table cminning (
,metime smallint not null ,metime smallint not null
,userno int ,userno int
,fgno bigint ,fgno bigint
,fgnooff bigint
,orgcmino bigint ,orgcmino bigint
,isscd tinyint not null default 0
,scdtype tinyint DEFAULT NULL
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL ,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL
,primary key(cmino)); ,primary key(cmino));
@ -490,7 +493,8 @@ create table cminningscd (
,cmino bigint not null ,cmino bigint not null
,estart datetime not null ,estart datetime not null
,eend datetime not null ,eend datetime not null
,quota smallint not null ,quota int(5) not null
,sseq int(11) not null default 0
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL ,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL
,primary key(cmisno)); ,primary key(cmisno));
@ -1053,7 +1057,7 @@ create table lect (
,completeno varchar(50) ,completeno varchar(50)
,isattcheck tinyint(4) ,isattcheck tinyint(4)
,lakey varchar(6) ,lakey varchar(6)
,lakey varchar(6) ,latime datetime
,sdate datetime ,sdate datetime
,edate datetime ,edate datetime
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL ,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL
@ -1124,6 +1128,14 @@ create table lectexq (
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL ,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL
,primary key(lectno,exno,eqno)); ,primary key(lectno,exno,eqno));
create table lectexrelog (
lectno bigint not null
,exno int not null
,estart datetime
,eend datetime
,eip varchar(50)
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL);
create table lectsd ( create table lectsd (
lectno bigint not null lectno bigint not null
,sdno int not null ,sdno int not null
@ -1570,5 +1582,4 @@ CREATE TABLE docprintpast (
) )
COLLATE=utf8_general_ci COLLATE=utf8_general_ci
ENGINE=InnoDB ENGINE=InnoDB
AUTO_INCREMENT=181866
; ;

View File

@ -57,6 +57,7 @@ alter table cminning add constraint foreign key fkcminningct (ctno) references c
alter table cminning add constraint foreign key fkcminningu (userno) references users(userno); alter table cminning add constraint foreign key fkcminningu (userno) references users(userno);
alter table cminning add constraint foreign key fkcminningfg (fgno) references filegroup(fgno); alter table cminning add constraint foreign key fkcminningfg (fgno) references filegroup(fgno);
alter table cminning add constraint foreign key fkcminningfg2 (fgnotf) references filegroup(fgno); alter table cminning add constraint foreign key fkcminningfg2 (fgnotf) references filegroup(fgno);
alter table cminning add constraint foreign key fkcminningfgoff (fgnooff) references filegroup(fgno);
alter table cminningscd add constraint foreign key fkcmiscmi (cmino) references cminning(cmino); alter table cminningscd add constraint foreign key fkcmiscmi (cmino) references cminning(cmino);
alter table cmev add constraint foreign key fkcmevcm (cmno) references cm(cmno); alter table cmev add constraint foreign key fkcmevcm (cmno) references cm(cmno);
alter table cmex add constraint foreign key fkcmexcm (cmno) references cm(cmno); alter table cmex add constraint foreign key fkcmexcm (cmno) references cm(cmno);
@ -155,6 +156,8 @@ alter table lectex add constraint foreign key fklectexcmex (exno) references cme
alter table lectexq add constraint foreign key fklectexqlect (lectno) references lect(lectno); alter table lectexq add constraint foreign key fklectexqlect (lectno) references lect(lectno);
alter table lectexq add constraint foreign key fklectexqcmex (exno) references cmex(exno); alter table lectexq add constraint foreign key fklectexqcmex (exno) references cmex(exno);
alter table lectexq add constraint foreign key fklectexqcmexq (eqno) references cmexq(eqno); alter table lectexq add constraint foreign key fklectexqcmexq (eqno) references cmexq(eqno);
alter table lectexrelog add constraint foreign key fklectexreloglect (lectno) references lect(lectno);
alter table lectexrelog add constraint foreign key fklectexrelogcmex (exno) references cmex(exno);
alter table lectsd add constraint foreign key fklectsdlect (lectno) references lect(lectno); alter table lectsd add constraint foreign key fklectsdlect (lectno) references lect(lectno);
alter table lectsd add constraint foreign key fklectsdcmsd (sdno) references cmsd(sdno); alter table lectsd add constraint foreign key fklectsdcmsd (sdno) references cmsd(sdno);
alter table lectsd add constraint foreign key fklectsdfg (fgno) references filegroup(fgno); alter table lectsd add constraint foreign key fklectsdfg (fgno) references filegroup(fgno);

View File

@ -72,7 +72,7 @@
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
from lect a from lect a
inner join cminning b on b.cmno=a.cmno inner join cminning b on b.cmno=a.cmno and ifnull(b.isscd,0)=0
left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus in (1,2) left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus in (1,2)
where a.lectno in ($lectnos$) where a.lectno in ($lectnos$)
group by a.lectno group by a.lectno
@ -86,6 +86,48 @@
,a.ispce=case when a.ispce is null then 1 else a.ispce end ,a.ispce=case when a.ispce is null then 1 else a.ispce end
</update> </update>
<update id="att.scd.save" parameterClass="cminning">
update lectinning a
inner join (
<iterate property="Ds" open="" conjunction="union all" close=""> select #Ds[].lectno# lectno,#Ds[].cmino# cmino,#Ds[].istatus# istatus </iterate>
) b on b.lectno=a.lectno and b.cmino = a.cmino
set a.uip=#uip#,a.uno=#uno#
,a.istatus=b.istatus
,a.stime = a.stime
,a.etime = a.etime
,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.ispcs = case when a.ispcs is null then 1 else a.ispcs end
,a.ispce = case when a.ispce is null then 1 else a.ispce end;
insert into lectinning (lectno,cmino,totstudy<!--,stime,etime-->,istatus,statustime,statusreason,sip,eip,ispcs,ispce,<include refid="sql.inc"></include>)
select a.lectno,a.cmino,0
,a.istatus,null,null,#uip#,#uip#,1,1,<include refid="sql.inv"></include>
from (
<iterate property="Ds" open="" conjunction="union all" close=""> select #Ds[].lectno# lectno,#Ds[].cmino# cmino,#Ds[].istatus# istatus </iterate>
) a
left outer join lectinning b on b.cmino=a.cmino and b.lectno=a.lectno
where b.lectno is null;
update lect a
inner join (
select a.lectno,convert(100*count(c.lectno)/count(b.cmino), int) attrate
from lect a
inner join cminning b on b.cmno=a.cmno and ifnull(b.isscd,0)=0
left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus in (1,2)
where a.lectno in ($lectnos$)
group by a.lectno
) b on b.lectno=a.lectno
set a.attrate=b.attrate
,a.stime=case when a.stime is null then <include refid="sql.now"></include> else a.stime end
,a.etime=case when a.etime is null then <include refid="sql.now"></include> else a.etime end
,a.sip=case when a.sip is null then #uip# else a.sip end
,a.eip=case when a.eip is null then #uip# else a.eip end
,a.ispcs=case when a.ispcs is null then 1 else a.ispcs end
,a.ispce=case when a.ispce is null then 1 else a.ispce end;
</update>
<update id="att.att.in" parameterClass="hashtable"> <update id="att.att.in" parameterClass="hashtable">
update lectinning set <include refid="sql.up"></include> update lectinning set <include refid="sql.up"></include>
,lectno=#lectno#,cmino=#cmino#,totstudy=0 ,lectno=#lectno#,cmino=#cmino#,totstudy=0
@ -118,7 +160,7 @@
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
from lectinning a from lectinning a
inner join cminning b on b.cmino=a.cmino inner join cminning b on b.cmino=a.cmino and ifnull(b.isscd,0)=0
left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2 left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2
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
@ -151,7 +193,7 @@
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
from lectinning a from lectinning a
inner join lect a2 on a2.lectno=a.lectno inner join lect a2 on a2.lectno=a.lectno
inner join cminning b on b.cmno=a2.cmno inner join cminning b on b.cmno=a2.cmno and ifnull(b.isscd,0)=0
left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2 left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2
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

View File

@ -509,23 +509,31 @@
</update> </update>
<select id="cm.cminnings" parameterClass="hashtable" resultClass="cminning"> <select id="cm.cminnings" parameterClass="hashtable" resultClass="cminning">
select distinct cmino,a.cmno,a.week,a.iseq,a.isonline,a.ititle,a.icontent,a.idate,a.iday,a.ist,a.iet,a.ctno,a.istaste,a.sttime,a.atime,a.mstime,a.metime,a.fgnotf select distinct a.cmino,a.cmno,a2.cshape,a.week,a.iseq,a.isonline,a.ititle,a.icontent,a.idate,a.iday,a.ist,a.iet,a.ctno,a.istaste,a.sttime,a.atime,a.mstime,a.metime,a.fgnotf
,a.userno,a.fgno,a.cdt,a.udt ,a.userno,a.fgno,a.fgnotf,a.fgnooff,a.scdtype,a.isscd,a.cdt,a.udt
,b.ctname,b.ccode,b.ctype,b.ismenu ,b.ctname,b.ccode,b.ctype,b.ismenu
,b2.srcp,b2.srcm ,b2.srcp,b2.srcm
,c.username ,c.username
,d.fileno,d.fileurl,d.orgname ,d.fileno,d.fileurl,d.orgname
,e.fileno fileno2,e.fileurl fileurl2,e.orgname orgname2 ,e.fileno fileno2,e.fileurl fileurl2,e.orgname orgname2
,g.fileno fileno3,g.fileurl fileulr3,g.orgname orgname3
from cminning a from cminning a
inner join cm a2 on a2.cmno = a.cmno
left outer join ct b on b.ctno=a.ctno and b.isdel=0 left outer join ct b on b.ctno=a.ctno and b.isdel=0
left outer join ctpage b2 on b2.ctno=b.ctno and b2.pseq=1 left outer join ctpage b2 on b2.ctno=b.ctno and b2.pseq=1
left outer join users c on c.userno=a.userno and c.status = 1 left outer join users c on c.userno=a.userno and c.status = 1
left outer join fileinfo d on d.fgno=a.fgno and d.isdel=0 left outer join fileinfo d on d.fgno=a.fgno and d.isdel=0
left outer join fileinfo e on e.fgno=a.fgnotf and e.isdel=0 left outer join fileinfo e on e.fgno=a.fgnotf and e.isdel=0
left outer join fileinfo g on g.fgno=a.fgnooff and g.isdel=0
<isNotNull property="cmisno">
left outer join cminningscd f on f.cmino = a.cmino
</isNotNull>
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull> <isNotNull property="cmno" prepend="and">a.cmno=#cmno#</isNotNull>
<isNotNull property="cmino" prepend="and">a.cmino=#cmino#</isNotNull> <isNotNull property="cmino" prepend="and">a.cmino=#cmino#</isNotNull>
<isNotNull property="cmisno" prepend="and">f.cmisno=#cmisno#</isNotNull>
<isNotNull property="isonline" prepend="and">a.isonline=#isonline#</isNotNull> <isNotNull property="isonline" prepend="and">a.isonline=#isonline#</isNotNull>
<isNotNull property="isscd" prepend="and">a.isscd=#isscd#</isNotNull>
</dynamic> </dynamic>
order by a.week,a.iseq order by a.week,a.iseq
</select> </select>
@ -533,14 +541,21 @@
<select id="cm.cminningscds" parameterClass="hashtable" resultClass="cminningscd"> <select id="cm.cminningscds" parameterClass="hashtable" resultClass="cminningscd">
select a.* select a.*
from ( from (
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.sseq
,a.cmisno value,date_format(a.estart,'%Y-%m-%d') text
,b.scdtype
,case when b.scdtype =1 then '온라인' else c.cname end studyplacename
,(select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0) regmem ,(select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0) regmem
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.estart</isNull>) scdseq ,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.estart</isNull>) scdseq
,count(a.cmisno) over() totalnum ,count(a.cmisno) over() totalnum
from cminningscd a from cminningscd a
inner join cminning b on b.cmino = a.cmino
inner join cm d on d.cmno = b.cmno
left outer join comcode c on c.ccode = a.studyplace
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmino" prepend="and">a.cmino=#cmino#</isNotNull> <isNotNull property="cmino" prepend="and">a.cmino=#cmino#</isNotNull>
<isNotNull property="cmisno" prepend="and">a.cmisno=#cmisno#</isNotNull> <isNotNull property="cmisno" prepend="and">a.cmisno=#cmisno#</isNotNull>
<isNotNull property="cmno" prepend="and">d.cmno=#cmno#</isNotNull>
</dynamic> </dynamic>
) a ) a
order by a.scdseq order by a.scdseq
@ -555,8 +570,8 @@
</update> </update>
<insert id="cm.cminnings.in" parameterClass="cminning"> <insert id="cm.cminnings.in" parameterClass="cminning">
SELECT * FROM (SELECT LAST_INSERT_ID(0) col1) a WHERE col1 > 0; SELECT * FROM (SELECT LAST_INSERT_ID(0) col1) a WHERE col1 > 0;
insert into cminning (cmno,week,iseq,isonline,ititle,icontent,idate,iday,ist,iet,fgnotf,ctno,istaste,sttime,atime,mstime,metime,userno,<include refid="sql.inc"></include>) insert into cminning (cmno,week,iseq,isonline,ititle,icontent,idate,iday,ist,iet,fgnotf,ctno,istaste,sttime,atime,mstime,metime,userno,isscd,scdtype,<include refid="sql.inc"></include>)
select #cmno#,#week#,#iseq#,#isonline#,#ititle#,#icontent#,#idate#,#iday#,#ist#,#iet#,#fgnotf#,#ctno#,#istaste#,#sttime#,#atime#,#mstime#,#metime#,#userno#,<include refid="sql.inv"></include> select #cmno#,#week#,#iseq#,#isonline#,#ititle#,#icontent#,#idate#,#iday#,#ist#,#iet#,#fgnotf#,#ctno#,#istaste#,#sttime#,#atime#,#mstime#,#metime#,#userno#,#isscd#,#scdtype#,<include refid="sql.inv"></include>
from (select 1 col1) a from (select 1 col1) a
left outer join cminning b on b.cmno=#cmno# and b.iseq=#iseq# left outer join cminning b on b.cmno=#cmno# and b.iseq=#iseq#
where b.cmino is null where b.cmino is null
@ -564,8 +579,8 @@
</insert> </insert>
<insert id="cm.cminningscd.in" parameterClass="cminningscd"> <insert id="cm.cminningscd.in" parameterClass="cminningscd">
SELECT * FROM (SELECT LAST_INSERT_ID(0) col1) a WHERE col1 > 0; SELECT * FROM (SELECT LAST_INSERT_ID(0) col1) a WHERE col1 > 0;
insert into cminningscd(cmino,estart,eend,quota,studyplace,<include refid="sql.inc"></include>) insert into cminningscd(cmino,estart,eend,quota,studyplace,sseq,<include refid="sql.inc"></include>)
values(#cmino#,#estart#,#eend#,#quota#,#studyplace#,<include refid="sql.inv"></include>) values(#cmino#,#estart#,#eend#,#quota#,#studyplace#,#sseq#,<include refid="sql.inv"></include>)
<selectKey type="post" property="cmisno" resultClass="long">SELECT last_insert_id()</selectKey> <selectKey type="post" property="cmisno" resultClass="long">SELECT last_insert_id()</selectKey>
</insert> </insert>
<update id="cm.cminnings.up" parameterClass="cminning"> <update id="cm.cminnings.up" parameterClass="cminning">
@ -577,13 +592,30 @@
,week =#week#,iseq =#iseq#,isonline =#isonline#,ititle =#ititle#,icontent =#icontent# ,week =#week#,iseq =#iseq#,isonline =#isonline#,ititle =#ititle#,icontent =#icontent#
,idate=#idate#,iday =#iday#,ist =#ist#,iet =#iet#,fgnotf=#fgnotf# ,idate=#idate#,iday =#iday#,ist =#ist#,iet =#iet#,fgnotf=#fgnotf#
,ctno =#ctno#,istaste =#istaste#,sttime=#sttime#,atime =#atime#,mstime =#mstime#,metime =#metime#,userno =#userno# ,ctno =#ctno#,istaste =#istaste#,sttime=#sttime#,atime =#atime#,mstime =#mstime#,metime =#metime#,userno =#userno#
,isscd = #isscd#,scdtype=#scdtype#
where a.cmino=#cmino# and b.cmino is null where a.cmino=#cmino# and b.cmino is null
</update> </update>
<update id="cm.cminningscd.up" parameterClass="cminningscd"> <update id="cm.cminningscd.up" parameterClass="cminningscd">
update cminningscd a update cminningscd a
set <include refid="sql.up"></include>,cmino=#cmino#,estart=#estart#,eend=#eend#,quota=#quota#,studyplace=#studyplace# set <include refid="sql.up"></include>,cmino=#cmino#,estart=#estart#,eend=#eend#,quota=#quota#,studyplace=#studyplace#,sseq=#sseq#
where a.cmisno=#cmisno# where a.cmisno=#cmisno#
</update> </update>
<update id="cm.cminningscd.clear" parameterClass="cminning">
update cminningscd a
set <include refid="sql.up"></include>,quota=99999,studyplace=null
where a.cmino = #cmino#
</update>
<update id="cm.cminningscd.up.lect" parameterClass="cminningscd">
update lect a
left outer join cminningscd b on b.cmisno = a.cmisno
set a.edate = b.eend
where a.cmisno = #cmisno#;
</update>
<update id="cm.cmev.clear" parameterClass="cminning">
update cmev a
set <include refid="sql.up"></include>,isoffabs=null
where a.cmno = #cmno#
</update>
<update id="cm.cminnings.istasteclear" parameterClass="hashtable"> <update id="cm.cminnings.istasteclear" parameterClass="hashtable">
update cminning set istaste=0 where cmno=#cmno# and cmino &lt;&gt; #cmino# update cminning set istaste=0 where cmno=#cmno# and cmino &lt;&gt; #cmino#
</update> </update>
@ -637,7 +669,12 @@
<select id="cm.cmev" parameterClass="int" resultClass="cmev"> <select id="cm.cmev" parameterClass="int" resultClass="cmev">
select a.cmno,a.attend,a.attendcut,a.attendrfd,a.attendcutrfd,a.mid,a.midcut,a.midrfd,a.midcutrfd,a.final,a.finalcut,a.finalrfd,a.finalcutrfd,a.subject,a.subjectcut,a.subjectrfd select a.cmno,a.attend,a.attendcut,a.attendrfd,a.attendcutrfd,a.mid,a.midcut,a.midrfd,a.midcutrfd,a.final,a.finalcut,a.finalrfd,a.finalcutrfd,a.subject,a.subjectcut,a.subjectrfd
,a.subjectcutrfd,a.discuss,a.discusscut,a.discussrfd,a.discusscutrfd,a.etc,a.etccut,a.etcrfd,a.etccutrfd,a.cut,a.cutrfd,a.isoffabs ,a.subjectcutrfd,a.discuss,a.discusscut,a.discussrfd,a.discusscutrfd,a.etc,a.etccut,a.etcrfd,a.etccutrfd,a.cut,a.cutrfd,a.isoffabs
from cmev a where a.cmno=#cmno# ,b.scdtype
,c.cshape
from cmev a
inner join cm c on c.cmno = a.cmno
left outer join cminning b on b.cmno = a.cmno and b.isscd = 1
where a.cmno=#cmno#
</select> </select>
<select id="cm.est" parameterClass="int" resultClass="est"> <select id="cm.est" parameterClass="int" resultClass="est">
select 0 gubun,case when a.extype = 0 then 1 else 2 end estkind select 0 gubun,case when a.extype = 0 then 1 else 2 end estkind
@ -1339,8 +1376,8 @@
inner join cm b on b.cmno=#cmno# inner join cm b on b.cmno=#cmno#
where a.cmno=#orgcmno#; where a.cmno=#orgcmno#;
insert into cminningscd(cmino,estart,eend,quota,studyplace,<include refid="sql.inc"></include>) insert into cminningscd(cmino,estart,eend,quota,studyplace,sseq,<include refid="sql.inc"></include>)
select c.cmino,b.estart,b.eend,b.quota,b.studyplace,<include refid="sql.inv"></include> select c.cmino,b.estart,b.eend,b.quota,b.studyplace,sseq,<include refid="sql.inv"></include>
from cminning a from cminning a
inner join cminningscd b on b.cmino=a.cmino inner join cminningscd b on b.cmino=a.cmino
inner join cminning c on c.cmno=#cmno# and c.isonline=0 inner join cminning c on c.cmno=#cmno# and c.isonline=0
@ -1636,6 +1673,9 @@
<update id="cm.cminning.fgno" parameterClass="hashtable"> <update id="cm.cminning.fgno" parameterClass="hashtable">
update cminning set fgno=#fgno# where cmino=#cmino# update cminning set fgno=#fgno# where cmino=#cmino#
</update> </update>
<update id="cm.cminning.fgnooff" parameterClass="hashtable">
update cminning set fgnooff=#fgnooff# where cmino=#cmino#
</update>
<select id="cm.cms.forbuy" parameterClass="hashtable" resultClass="cm"> <select id="cm.cms.forbuy" parameterClass="hashtable" resultClass="cm">
select a.cmno,a.cname,a.cshape,a.studyplace,a.studytime,a.infee,a.outfee,a.rstime,a.retime,a.sstime,a.setime,a.quota,a.difficulty,a.isrefund,a.fgnocm select a.cmno,a.cname,a.cshape,a.studyplace,a.studytime,a.infee,a.outfee,a.rstime,a.retime,a.sstime,a.setime,a.quota,a.difficulty,a.isrefund,a.fgnocm
,a.introhtml,a.targethtml,a.goalhtml,a.contenthtml,a.fgnocm ,a.introhtml,a.targethtml,a.goalhtml,a.contenthtml,a.fgnocm
@ -1826,36 +1866,40 @@
<isNotNull property="studyplace">and a.studyplace=#studyplace#</isNotNull> <isNotNull property="studyplace">and a.studyplace=#studyplace#</isNotNull>
</select> </select>
<select id="cm.cminningscds.applyedu" parameterClass="hashtable" resultClass="cminningscd"> <select id="cm.cminningscds.applyedu" parameterClass="hashtable" resultClass="cminningscd">
select select a.*
a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.studyplacename,a.startmonth from (
,a.studyplace, a.studyplacename,a.remainPeople select
,a.isselected a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.studyplacename,a.startmonth
,case when a.estart &lt; now() or a.remainPeople &lt;= 0 then 0 else 1 end isend ,a.remainPeople
from ,a.isselected
( ,case when a.estart &lt; date_add(date_add(date_format(now() ,'%Y-%m-%d 00:00:00'),interval 6 day ),interval -1 second) or a.remainPeople &lt;= 0 then 0 else 1 end isend
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth from
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0)) remainPeople (
,a.studyplace, e.cname studyplacename select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected ,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0)) remainPeople
from cminningscd a ,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename
left outer join cminning c on c.cmino = a.cmino ,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected
left outer join cm d on d.cmno = c.cmno from cminningscd a
left outer join comcode e on e.ccode = a.studyplace left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
left outer join comcode e on e.ccode = a.studyplace
<dynamic prepend="where">
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull>
</dynamic>
)a
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull> <isNotNull property="month" prepend="and">a.startmonth=#month#</isNotNull>
</dynamic> </dynamic>
)a ) a
<dynamic prepend="where"> where a.isend = 1 and a.remainPeople &gt; 0
<isNotNull property="month" prepend="and">a.startmonth=#month#</isNotNull> order by a.estart
</dynamic>
order by isend desc,a.estart
</select> </select>
<select id="cm.cminningscds.applyedu.lectno" parameterClass="hashtable" resultClass="cminningscd"> <select id="cm.cminningscds.applyedu.lectno" parameterClass="hashtable" resultClass="cminningscd">
select select
a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.studyplacename,a.startmonth a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.studyplacename,a.startmonth
,a.studyplace, a.studyplacename,a.remainPeople ,a.studyplace, a.studyplacename,a.remainPeople
,a.isselected ,a.isselected
,case when a.estart &lt; now() or a.remainPeople &lt;= 0 then 0 else 1 end isend ,case when a.estart &lt; date_add(date_add(date_format(now() ,'%Y-%m-%d 00:00:00'),interval 6 day ),interval -1 second) or a.remainPeople &lt;= 0 then 0 else 1 end isend
from from
( (
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
@ -1983,16 +2027,21 @@
update lect set <include refid="sql.up"></include> update lect set <include refid="sql.up"></include>
,cmisno =case when #cmisno# is not null then #cmisno# else cmisno end ,cmisno =case when #cmisno# is not null then #cmisno# else cmisno end
where lectno=#lectno#; where lectno=#lectno#;
update pplog a update pplog a
left outer join ( left outer join (
select a.lectno,a.payno,b.pplno,a.cmisno select a.lectno,a.payno,b.pplno,a.cmisno
from lect a from lect a
inner join pay b on b.payno = a.payno inner join pay b on b.payno = a.payno
where a.lectno = #lectno# where a.lectno = #lectno#
) b on b.pplno = a.pplno ) b on b.pplno = a.pplno
set a.cmisno = case when b.cmisno is not null then b.cmisno else a.cmisno end set a.cmisno = case when b.cmisno is not null then b.cmisno else a.cmisno end
where b.lectno = #lectno#; where b.lectno = #lectno#;
update lect a
left outer join cminningscd b on b.cmisno = a.cmisno
set a.edate = case when b.eend is not null then b.eend else a.edate end
where a.lectno = #lectno#;
</update> </update>
<select id="cm.cms.offs" parameterClass="hashtable" resultClass="cm"> <select id="cm.cms.offs" parameterClass="hashtable" resultClass="cm">
select select

View File

@ -38,12 +38,18 @@
,case when b.isrebate = 1 then d.finalrfd else d.final end fportion ,case when b.isrebate = 1 then d.finalrfd else d.final end fportion
,case when b.isrebate = 1 then d.subjectrfd else d.subject end sportion ,case when b.isrebate = 1 then d.subjectrfd else d.subject end sportion
,case when b.isrebate = 1 then d.discussrfd else d.discuss end dportion ,case when b.isrebate = 1 then d.discussrfd else d.discuss end dportion
,d.isoffabs,li.istatus
,e.estart,e.eend,f.cname studyplacename
from ( from (
<include refid="grade.query"></include> <include refid="grade.query"></include>
) a ) a
inner join lect b on b.lectno=a.lectno inner join lect b on b.lectno=a.lectno
inner join users u on u.userno=b.userno inner join users u on u.userno=b.userno
inner join cmev d on d.cmno=b.cmno inner join cmev d on d.cmno=b.cmno
left outer join cminningscd e on e.cmisno = b.cmisno
left outer join cminning ci on ci.cmino = e.cmino
left outer join comcode f on f.ccode = e.studyplace
left outer join lectinning li on li.cmino = e.cmino
</select> </select>
<select id="cr.main.boardalarm" parameterClass="hashtable" resultClass="data"> <select id="cr.main.boardalarm" parameterClass="hashtable" resultClass="data">
select a.* select a.*
@ -187,7 +193,7 @@
left outer join ctpage e on e.ctno=d.ctno and e.pseq=1 left outer join ctpage e on e.ctno=d.ctno and e.pseq=1
left outer join cminningscd scd on a.cmisno = scd.cmisno left outer join cminningscd scd on a.cmisno = scd.cmisno
left outer join comcode com on scd.studyplace = com.ccode left outer join comcode com on scd.studyplace = com.ccode
where a.lectno=#lectno# and a.userno=#userno# where a.lectno=#lectno# and a.userno=#userno# and ifnull(b.isscd,0) = 0
<isNotNull property="notstudy">and ifnull(c.istatus,0) &lt; 2 and a.sdate &lt; now() and a.edate &gt; now()</isNotNull> <isNotNull property="notstudy">and ifnull(c.istatus,0) &lt; 2 and a.sdate &lt; now() and a.edate &gt; now()</isNotNull>
order by b.iseq order by b.iseq
<isNotNull property="limit">limit $limit$</isNotNull> <isNotNull property="limit">limit $limit$</isNotNull>
@ -230,7 +236,7 @@
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
from lect a from lect a
inner join cminning b on b.cmno=a.cmno inner join cminning b on b.cmno=a.cmno and ifnull(b.isscd,0)=0
left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2 left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2
where a.lectno=#lectno# and a.userno=#userno# where a.lectno=#lectno# and a.userno=#userno#
group by a.lectno group by a.lectno
@ -310,7 +316,7 @@
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
from lect a from lect a
inner join cminning b on b.cmno=a.cmno inner join cminning b on b.cmno=a.cmno and ifnull(b.isscd,0)=0
left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2 left outer join lectinning c on c.lectno=a.lectno and c.cmino=b.cmino and c.istatus=2
where a.lectno=#lectno# and a.userno=#userno# where a.lectno=#lectno# and a.userno=#userno#
group by a.lectno group by a.lectno
@ -491,15 +497,30 @@
</select> </select>
<select id="cr.lectex" parameterClass="hashtable" resultClass="lectex"> <select id="cr.lectex" parameterClass="hashtable" resultClass="lectex">
select a.lectno,a.attrate,a.iscomplete,a.sdate,a.edate select a.lectno,a.attrate,a.iscomplete,a.sdate,a.edate
,b.sstime,b.setime ,b.sstime,b.setime
,c.exno,c.exname,c.extype,c.edesc,c.econdition,c.etime,c.evtype,c.eqtype,c.israndq,c.israndqi,c.qcount,c.isblur,c.tpoint,ifnull(c.relaylimit,999) relaylimit,c.isusebackup,c.isseq,c.isreexamable,c.isresultopen ,c.exno,c.exname,c.extype,c.edesc,c.econdition,c.etime,c.evtype,c.eqtype,c.israndq,c.israndqi,c.qcount,c.isblur,c.tpoint,ifnull(c.relaylimit,999) relaylimit,c.isusebackup,c.isseq,c.isreexamable,c.isresultopen
,d.lectno exlectno,d.estart,d.eend,d.tpoint,d.recount,d.rechecktime,ifnull(d.entercount,0) entercount,d.cblock ,d.lectno exlectno,d.estart,d.eend,d.tpoint,d.recount,d.rechecktime,ifnull(d.entercount,0) entercount,d.cblock
,case when a.etime = 0 then 99999999 else TIMESTAMPDIFF(MINUTE, now(), date_add(ifnull(d.estart, now()), interval c.etime MINUTE)) end rtime ,case when a.etime = 0 then 99999999 else TIMESTAMPDIFF(MINUTE, now(), date_add(ifnull(d.estart, now()), interval c.etime MINUTE)) end rtime
,d.recount ,d.recount
,case when
case when case when a.isrebate = 1 then f.midcutrfd else f.midcut end &lt;= ifnull(e.ex0lectpoint,0) then 1 else 0 end = 1 and case when case when a.isrebate = 1 then f.finalcutrfd else f.finalcut end &lt;= ifnull(e.ex1lectpoint,0) then 1 else 0 end = 1
then 1 else 0 end ispass
from lect a from lect a
inner join cm b on b.cmno=a.cmno inner join cm b on b.cmno=a.cmno
inner join cmex c on c.exno=#exno# inner join cmex c on c.exno=#exno#
inner join cmev f on f.cmno = b.cmno
left outer join lectex d on d.lectno=a.lectno and d.exno=c.exno left outer join lectex d on d.lectno=a.lectno and d.exno=c.exno
left outer join (
select a.lectno
,count(b1.exno) ex0cnt,count(c1.lectno) ex0lectcnt,avg(ifnull(c1.tpoint,0) / b1.tpoint * 100) ex0lectpoint
,count(b2.exno) ex1cnt,count(c2.lectno) ex1lectcnt,avg(ifnull(c2.tpoint,0) / b2.tpoint * 100) ex1lectpoint
from lect a
left outer join cmex b1 on b1.cmno = a.cmno and b1.extype = 0 and b1.isdel=0
left outer join lectex c1 on c1.exno = b1.exno and c1.lectno = a.lectno
left outer join cmex b2 on b2.cmno = a.cmno and b2.extype = 1 and b2.isdel=0
left outer join lectex c2 on c2.exno = b2.exno and c2.lectno = a.lectno
where a.lectno = #lectno#
) e on e.lectno = a.lectno
where a.lectno=#lectno# and a.userno=#userno# where a.lectno=#lectno# and a.userno=#userno#
</select> </select>
<select id="cr.userexamdata.start" parameterClass="hashtable" resultClass="lectexq"> <select id="cr.userexamdata.start" parameterClass="hashtable" resultClass="lectexq">
@ -777,13 +798,14 @@
,u.userno,u.userid,u.username ,u.userno,u.userid,u.username
,ua.asname,ua.isjoin ,ua.asname,ua.isjoin
,cm.cshape,cm.sstime,cm.setime,cm.studyplace ,cm.cshape,cm.sstime,cm.setime,cm.studyplace
,le.sdate,le.edate ,le.sdate,le.edate,le.iscomplete
,case when a.isexamready=1 then uee.exname else case pi.ptype when 2 then bk.bkname when 3 then ex.exname else cm.cname end end itemname ,case when a.isexamready=1 then uee.exname else case pi.ptype when 2 then bk.bkname when 3 then ex.exname else cm.cname end end itemname
,ppl.rbankname,CAST(AES_DECRYPT(UNHEX(ppl.rbankacc), <include refid="sql.digest"></include>) AS char) rbankacc,ppl.rbankowner ,ppl.rbankname,CAST(AES_DECRYPT(UNHEX(ppl.rbankacc), <include refid="sql.digest"></include>) AS char) rbankacc,ppl.rbankowner
,row_number() over(order by case when pr.rstatus=0 and pri.rfdno is not null then 0 else 1 end, case when a.isexamready=1 then ue.cdt else p.cdt end desc) rno ,row_number() over(order by case when pr.rstatus=0 and pri.rfdno is not null then 0 else 1 end, case when a.isexamready=1 then ue.cdt else p.cdt end desc) rno
,count(p.payno) over() pagetotalcount ,count(p.payno) over() pagetotalcount
,scd.estart cmiestart, scd.eend cmieeend, scd.studyplace cmistudyplace ,scd.estart cmiestart, scd.eend cmieeend, scd.studyplace cmistudyplace
,pi.rbank , CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), <include refid="sql.digest"></include>) AS char) rbankaccnum, pi.tbankuser ,pi.rbank , CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), <include refid="sql.digest"></include>) AS char) rbankaccnum, pi.tbankuser
,cc1.cname tgname,cc2.cname tename
from ( from (
select 0 isexamready,p.payno,max(case when pi.ptype in (0,1,3,4) then pi.pino else 0 end) pi1,min(pi.pino) pi2,count(pi.pino) ccount select 0 isexamready,p.payno,max(case when pi.ptype in (0,1,3,4) then pi.pino else 0 end) pi1,min(pi.pino) pi2,count(pi.pino) ccount
from pay p from pay p
@ -863,6 +885,8 @@
left outer join examuser exu on exu.exno=ex.exno and exu.userno=p.userno left outer join examuser exu on exu.exno=ex.exno and exu.userno=p.userno
left outer join pplog ppl on ppl.pplno = p.pplno left outer join pplog ppl on ppl.pplno = p.pplno
left outer join cminningscd scd on scd.cmisno = le.cmisno left outer join cminningscd scd on scd.cmisno = le.cmisno
left outer join comcode cc1 on cc1.ccode = ppl.typegrade
left outer join comcode cc2 on cc2.ccode = ppl.typeedu
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="estart" prepend="and">scd.estart &gt;= #estart#</isNotNull> <isNotNull property="estart" prepend="and">scd.estart &gt;= #estart#</isNotNull>
<isNotNull property="eend" prepend="and">scd.eend &lt;= #eend#</isNotNull> <isNotNull property="eend" prepend="and">scd.eend &lt;= #eend#</isNotNull>
@ -1108,7 +1132,7 @@
,CAST(AES_DECRYPT(UNHEX(b.rphone), <include refid="sql.digest"></include>) AS char) rphone ,CAST(AES_DECRYPT(UNHEX(b.rphone), <include refid="sql.digest"></include>) AS char) rphone
,b.rback ,b.rback
,CAST(AES_DECRYPT(UNHEX(b.bankno), <include refid="sql.digest"></include>) AS char) bankno ,CAST(AES_DECRYPT(UNHEX(b.bankno), <include refid="sql.digest"></include>) AS char) bankno
,p.isgroup ,p.isgroup,p.payno
,pi.payamt ,pi.payamt
,case pi.ptype when 2 then bk.bkname when 3 then ex.exname else cm.cname end itemname ,case pi.ptype when 2 then bk.bkname when 3 then ex.exname else cm.cname end itemname
,u.username,u.userid ,u.username,u.userid
@ -1531,7 +1555,7 @@
select a.* select a.*
from ( from (
select select
l.lectno,l.iscomplete,l.completetime,l.completeno,l.cmisno l.lectno,l.iscomplete,l.completetime,replace(replace(l.completeno,' ',''),'제','제 ') completeno,l.cmisno
,l.sdate ,l.sdate
,l.edate ,l.edate
,l.cmno,l.payno ,l.cmno,l.payno

View File

@ -55,12 +55,12 @@
<select id="common.check.frontcroom" parameterClass="hashtable" resultClass="data"> <select id="common.check.frontcroom" parameterClass="hashtable" resultClass="data">
select a.dtype,sum(a.intval) intval,sum(a.intval2) intval2,sum(a.intval3) intval3,sum(a.intval4) intval4,sum(a.intval5) intval5 select a.dtype,sum(a.intval) intval,sum(a.intval2) intval2,sum(a.intval3) intval3,sum(a.intval4) intval4,sum(a.intval5) intval5
,sum(a.intval6) intval6,sum(a.intval7) intval7,sum(a.intval8) intval8,sum(a.intval9) intval9,sum(a.intval10) intval10 ,sum(a.intval6) intval6,sum(a.intval7) intval7,sum(a.intval8) intval8,sum(a.intval9) intval9,sum(a.intval10) intval10
,sum(a.intval11) intval11 ,sum(a.intval11) intval11,sum(a.intval12) intval12
,max(a.strval) strval,max(a.strval2) strval2,max(a.strval3) strval3 ,max(a.strval) strval,max(a.strval2) strval2,max(a.strval3) strval3
from ( from (
select a.userno dtype,count(b.mno) intval,0 intval2,0 intval3,0 intval4,0 intval5 select a.userno dtype,count(b.mno) intval,0 intval2,0 intval3,0 intval4,0 intval5
,0 intval6,0 intval7,0 intval8,0 intval9,0 intval10 ,0 intval6,0 intval7,0 intval8,0 intval9,0 intval10
,0 intval11 ,0 intval11,0 intval12
,null strval,null strval2,null strval3 ,null strval,null strval2,null strval3
from users a from users a
left outer join memouser b on b.userno=a.userno and b.isread=0 and b.isdel=0 left outer join memouser b on b.userno=a.userno and b.isread=0 and b.isdel=0
@ -69,7 +69,7 @@
union all union all
select a.userno dtype,0 intval,count(b.userno) intval2,0 intval3,0 intval4,0 intval5 select a.userno dtype,0 intval,count(b.userno) intval2,0 intval3,0 intval4,0 intval5
,0 intval6,0 intval7,0 intval8,0 intval9,0 intval10 ,0 intval6,0 intval7,0 intval8,0 intval9,0 intval10
,0 intval11 ,0 intval11,0 intval12
,null strval,null strval2,null strval3 ,null strval,null strval2,null strval3
from users a from users a
left outer join alarms b on b.userno=a.userno and b.isdel=0 left outer join alarms b on b.userno=a.userno and b.isdel=0
@ -77,7 +77,7 @@
union all union all
select a.userno dtype,0 intval,0 intval2,c.tyear intval3,c.tseq intval4,b.classno intval5 select a.userno dtype,0 intval,0 intval2,c.tyear intval3,c.tseq intval4,b.classno intval5
,b2.isplan intval6,b2.iscontent intval7,b2.isev intval8,b2.isrs intval9,b2.isgrade intval10 ,b2.isplan intval6,b2.iscontent intval7,b2.isev intval8,b2.isrs intval9,b2.isgrade intval10
,b.cmno intval11 ,b.cmno intval11,b.cshape intval12
,d.cgname strval,b.cname strval2 ,d.cgname strval,b.cname strval2
,group_concat(case when f.bmno is null then null else concat(f.bmno,':',f.bmname,':',f.bmtype) end separator ';') strval3 ,group_concat(case when f.bmno is null then null else concat(f.bmno,':',f.bmname,':',f.bmtype) end separator ';') strval3
from users a0 from users a0

View File

@ -25,10 +25,10 @@
,case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end ispassf ,case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end ispassf
,case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end &lt;= a.sd0lectpoint then 1 else 0 end ispasss ,case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end &lt;= a.sd0lectpoint then 1 else 0 end ispasss
,case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end &lt;= a.sd1lectpoint then 1 else 0 end ispassd ,case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end &lt;= a.sd1lectpoint then 1 else 0 end ispassd
,case when case when d.isoffabs=1 then ifnull(a.at0cnt,0) else 0 end &lt;= ifnull(a.at0lectcnt,0) then 1 else 0 end ispassat ,case when case when ifnull(d.isoffabs,0)=1 then ifnull(a.at0cnt,0) else 0 end &lt;= ifnull(a.at0lectcnt,0) then 1 else 0 end ispassat
,case when ,case when
case when case when d.isoffabs=1 then ifnull(a.at0cnt,0) else 0 end &lt;= ifnull(a.at0lectcnt,0) then 1 else 0 end = 1 and case when case when ifnull(d.isoffabs,0)=1 then ifnull(a.at0cnt,0) else 0 end &lt;= ifnull(a.at0lectcnt,0) then 1 else 0 end = 1 and
case when case when b.isrebate=1 then d.attendcutrfd else d.attendcut end &lt;= b.attrate then 1 else 0 end =1 and case when case when b.isrebate=1 then d.attendcutrfd else d.attendcut end &lt;= b.attrate then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.midcutrfd else d.midcut end &lt;= a.ex0lectpoint then 1 else 0 end =1 and case when case when b.isrebate=1 then d.midcutrfd else d.midcut end &lt;= a.ex0lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end =1 and case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end =1 and
@ -232,7 +232,7 @@
<isNotNull property="cshapes">and a.cshape in ($cshapes$)</isNotNull> <isNotNull property="cshapes">and a.cshape in ($cshapes$)</isNotNull>
<!--and a.isuse=1--> and a.isdel=0 <!--and a.isuse=1--> and a.isdel=0
) a ) a
left outer join cminning b on b.cmno=a.cmno and b.isonline =0 left outer join cminning b on b.cmno=a.cmno and b.isonline =0 and b.isscd = 1
left outer join lectinning c on c.cmino=b.cmino and c.lectno = a.lectno and c.istatus = 2 left outer join lectinning c on c.cmino=b.cmino and c.lectno = a.lectno and c.istatus = 2
group by a.lectno group by a.lectno
) a ) a
@ -242,39 +242,72 @@
inner join cmev d on d.cmno=b.cmno inner join cmev d on d.cmno=b.cmno
</sql> </sql>
<select id="grade.lectgrades" parameterClass="hashtable" resultClass="lect"> <select id="grade.lectgrades" parameterClass="hashtable" resultClass="lect">
select a.lectno,b.userno select a.*
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">c.cname,c.cmno,u.username</isNull> ) rno from (
,count(a.lectno) over() pagetotalcount select a.*
,b.isrebate,ua.asname,u.username,u.userid,b.iscomplete,b.completetime,b.sdate
,p.payoktime
,c.sstime,c.cmno,c.cname,c.classno
,b.attrate
,a.apoint
,a.ex0cnt,a.ex0lectcnt,a.ex0lectpoint,a.mpoint
,a.ex1cnt,a.ex1lectcnt,a.ex1lectpoint,a.fpoint
,a.sd0cnt,a.sd0lectcnt,a.sd0lectpoint,a.spoint
,a.sd1cnt,a.sd1lectcnt,a.sd1lectpoint,a.dpoint
,a.rs0cnt,a.rs0lectcnt,a.rs0lectpoint
,a.ispassat
from ( from (
<include refid="grade.query"></include> select a.lectno,b.userno
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">c.cname,c.cmno,u.username</isNull> ) rno
,count(a.lectno) over() pagetotalcount
,b.isrebate,ua.asname,u.username,u.userid,b.iscomplete,b.completetime,b.sdate,b.edate
,b.cmisno
,p.payoktime
,c.cshape,c.sstime,c.cmno,c.cname,c.classno
,d.isoffabs
,b.attrate
,a.apoint
,a.ex0cnt,a.ex0lectcnt,a.ex0lectpoint,a.mpoint
,a.ex1cnt,a.ex1lectcnt,a.ex1lectpoint,a.fpoint
,a.sd0cnt,a.sd0lectcnt,a.sd0lectpoint,a.spoint
,a.sd1cnt,a.sd1lectcnt,a.sd1lectpoint,a.dpoint
,a.rs0cnt,a.rs0lectcnt,a.rs0lectpoint
,a.ispassat
,e.sseq,e.estart,e.eend,e.studyplace
,f.istatus
,cc.cname studyplacename
,date_format((case when c.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') edatestring
from (
<include refid="grade.query"></include>
) a
inner join lect b on b.lectno=a.lectno
inner join pay p on p.payno=b.payno
inner join users u on u.userno=b.userno <isNotNull property="ustatus">and u.status=#ustatus#</isNotNull>
left outer join assign ua on ua.asno=u.asno
inner join cm c on c.cmno=b.cmno
inner join cm c2 on c2.cmno=c.pcmno
inner join cmev d on d.cmno=c.cmno
left outer join cminningscd e on e.cmisno = b.cmisno
left outer join lectinning f on f.lectno = b.lectno and f.cmino = e.cmino
left outer join comcode cc on cc.ccode = e.studyplace and cc.isuse=1
<dynamic prepend="where">
<isNotNull property="cshape" prepend="and">c.cshape = #cshape#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.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">c2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotNull property="cnamestr" prepend="and">c.cname like concat('%',#cnamestr#,'%')</isNotNull>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull>
<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>
<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>
<isNotEmpty property="sdateall" prepend="and">(case when c.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 c.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="asname" prepend="and">ua.asname like concat('%',#asname#,'%')</isNotNull>
</dynamic>
) a ) a
inner join lect b on b.lectno=a.lectno
inner join pay p on p.payno=b.payno
inner join users u on u.userno=b.userno <isNotNull property="ustatus">and u.status=#ustatus#</isNotNull>
left outer join assign ua on ua.asno=u.asno
inner join cm c on c.cmno=b.cmno
inner join cm c2 on c2.cmno=c.pcmno
inner join cmev d on d.cmno=c.cmno
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="est1not" prepend="and">a.ex0lectcnt &lt; a.ex0cnt</isNotNull> <isNotNull property="edate" prepend="and">a.edatestring = #edate#</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">c2.cname like concat('%',#cname#,'%')</isNotNull>
</dynamic> </dynamic>
order by rno ) 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>

View File

@ -680,6 +680,40 @@
where a.cmino=#cmino# where a.cmino=#cmino#
order by rno order by rno
</select> </select>
<select id="lect.lectinnings.forattscd" parameterClass="hashtable" resultClass="lect">
select a.*
from (
select a.lectno,c.cmino,b.cmno,b.cshape,b.cname,b2.isoffabs
,a.isrebate,p.payoktime,a.iscomplete
,a.sdate,a.edate
,a.cmisno
,d.sseq,f.cname studyplacename
,d.estart,d.eend
,e.userno,e.userid, e.username
,g.istatus
,row_number() over(order by a.cdt desc,e.username) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join pay p on p.payno = a.payno
inner join cm b on b.cmno = a.cmno
inner join cmev b2 on b2.cmno = b.cmno
inner join cminning c on c.cmno = b.cmno
left outer join cminningscd d on d.cmisno = a.cmisno and d.cmino = c.cmino
inner join users e on e.userno = a.userno
left outer join comcode f on f.ccode = d.studyplace and f.isuse =1
left outer join lectinning g on g.cmino = c.cmino and g.lectno = a.lectno
where a.status=1 and a.ischanged=0 and c.isscd=1 and c.scdtype=0 and b.cshape=2
<isNotNull property="edate">and date_format(a.edate,'%Y%m%d') = date_format(#edate#,'%Y%m%d')</isNotNull>
<isNotNull property="cname">and b.cname like concat('%',#cname#,'%')</isNotNull>
<isNotNull property="studyplace">and d.studyplace = #studyplace#</isNotNull>
<isNotEmpty property="searchtext">
<isEqual property="searchtype" compareValue="usernamestr">and e.username like concat('%',#searchtext#,'%')</isEqual>
<isEqual property="searchtype" compareValue="useridstr">and e.userid like concat('%',#searchtext#,'%')</isEqual>
</isNotEmpty>
) a
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<select id="lect.atts" parameterClass="hashtable" resultClass="lect"> <select id="lect.atts" parameterClass="hashtable" resultClass="lect">
select a.lectno,a.isrebate,a.attrate,a.stime,a.sip,a.etime,a.eip select a.lectno,a.isrebate,a.attrate,a.stime,a.sip,a.etime,a.eip
@ -705,6 +739,7 @@
,u.userno,u.userid,u.username ,u.userno,u.userid,u.username
,ua.asname ,ua.asname
,c.stime,c.etime,c.istatus ,c.stime,c.etime,c.istatus
,c.udt,d.userid unoid
,row_number() over(order by u.username) rno ,row_number() over(order by u.username) rno
,count(b.lectno) over() pagetotalcount ,count(b.lectno) over() pagetotalcount
from cminning a from cminning a
@ -712,7 +747,13 @@
inner join users u on u.userno=b.userno and u.status=1 inner join users u on u.userno=b.userno and u.status=1
left outer join assign ua on ua.asno=u.asno left outer join assign ua on ua.asno=u.asno
left outer join lectinning c on c.lectno=b.lectno and c.cmino=a.cmino left outer join lectinning c on c.lectno=b.lectno and c.cmino=a.cmino
where a.cmino=#cmino# left outer join users d on d.userno = c.uno
left outer join cminningscd e on e.cmisno = b.cmisno
<dynamic prepend="where">
<isNotNull property="cmino" prepend="and">a.cmino=#cmino#</isNotNull>
<isNotNull property="cmisno" prepend="and">e.cmisno=#cmisno#</isNotNull>
<isNotNull property="lectno" prepend="and">b.lectno=#lectno#</isNotNull>
</dynamic>
group by b.lectno,a.cmino,u.userno,u.userid,u.username,ua.asname,c.stime,c.etime,c.istatus group by b.lectno,a.cmino,u.userno,u.userid,u.username,ua.asname,c.stime,c.etime,c.istatus
order by u.username order by u.username
</select> </select>
@ -733,6 +774,7 @@
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="lectno" prepend="and">a.lectno=#lectno#</isNotNull> <isNotNull property="lectno" prepend="and">a.lectno=#lectno#</isNotNull>
<isNotNull property="userno" prepend="and">a.userno=#userno#</isNotNull> <isNotNull property="userno" prepend="and">a.userno=#userno#</isNotNull>
<isNotNull property="isscd" prepend="and">ifnull(b.isscd,0)=#isscd#</isNotNull>
</dynamic> </dynamic>
order by b.iseq,d.stime order by b.iseq,d.stime
</select> </select>
@ -760,36 +802,101 @@
order by cdt desc order by cdt desc
</select> </select>
<select id="lect.lectexes" parameterClass="hashtable" resultClass="lectex"> <select id="lect.lectexes" parameterClass="hashtable" resultClass="lectex">
select a.lectno,a.userno,a.cmno,a.isrebate select a.*
,b.exno from (
,c.estart,c.eend,c.eip,c.tpoint,c.recount,c.entercount,c.cblock select a.lectno,a.userno,a.cmno,a.isrebate
,d.username,d.userid ,b.exno
,e.asname ,c.estart,c.eend,c.eip,c.tpoint,c.recount,c.entercount,c.cblock
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno ,d.username,d.userid
,count(a.cdt) over() pagetotalcount ,e.asname
from lect a ,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno
inner join cmex b on b.isdel=0 <isNotNull property="exno">and b.exno=#exno#</isNotNull> ,count(a.cdt) over() pagetotalcount
left outer join lectex c on c.lectno=a.lectno and c.exno=b.exno from lect a
inner join users d on d.userno=a.userno inner join cmex b on b.isdel=0 <isNotNull property="exno">and b.exno=#exno#</isNotNull>
left outer join assign e on e.asno=d.asno left outer join lectex c on c.lectno=a.lectno and c.exno=b.exno
where a.cmno=#cmno# and a.status=1 and a.ischanged=0 inner join users d on d.userno=a.userno
<isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull> left outer join assign e on e.asno=d.asno
<isNotNull property="estate"> where a.status=1 and a.ischanged=0
<isEqual property="estate" compareValue="0">and c.estart is null</isEqual> <isNotNull property="extype">and b.extype = #extype#</isNotNull>
<isEqual property="estate" compareValue="1">and c.estart is not null and c.eend is null</isEqual> <isNotNull property="cmno">and a.cmno = #cmno#</isNotNull>
<isEqual property="estate" compareValue="2">and c.eend is not null</isEqual> <isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull>
</isNotNull> <isNotNull property="estate">
order by rno <isEqual property="estate" compareValue="0">and c.estart is null</isEqual>
<isEqual property="estate" compareValue="1">and c.estart is not null and c.eend is null</isEqual>
<isEqual property="estate" compareValue="2">and c.eend is not null</isEqual>
</isNotNull>
) a
<include refid="sql.pagedynamic"></include>
order by a.rno
</select> </select>
<select id="lect.lectexes.all" parameterClass="hashtable" resultClass="lectex">
select a.*
from (
select a.lectno,a.userno,a.cmno,a.isrebate
,p.payoktime,a.sdate,edate
,b.exno,b.exname
,b2.cshape,b2.cname
,c.estart,c.eend,c.eip,c.tpoint,c.recount,c.entercount,c.cblock
,d.username,d.userid
,e.asname
,f.estart lestart,f.eend leend,f.sseq
,g.cname studyplacename
,a.iscomplete
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join cmex b on b.isdel=0 and b.cmno = a.cmno
inner join cm b2 on b2.cmno = b.cmno
inner join pay p on p.payno = a.payno
left outer join lectex c on c.lectno = a.lectno and c.exno =b.exno
inner join users d on d.userno = a.userno
left outer join assign e on e.asno = d.asno
left outer join cminningscd f on f.cmisno = a.cmisno
left outer join comcode g on g.ccode = f.studyplace and g.isuse =1
where a.status=1 and a.ischanged=0
<isNotNull property="extype">and b.extype = #extype#</isNotNull>
<isNotNull property="cmno">and a.cmno = #cmno#</isNotNull>
<isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull>
<isNotEmpty property="edate">and date_format(a.edate,'%Y%m%d')=date_format(#edate#,'%Y%m%d')</isNotEmpty>
<isNotNull property="cshape">and b2.cshape = #cshape#</isNotNull>
<isNotEmpty property="cname">and b2.cname like concat('%',#cname#,'%')</isNotEmpty>
<isNotEmpty property="cnamestr">and b2.cname like concat('%',#cname#,'%')</isNotEmpty>
<isNotNull property="iscomplete">and ifnull(a.iscomplete,0) = #iscomplete#</isNotNull>
<isNotNull property="studyplace">and f.studyplace = #studyplace#</isNotNull>
<isNotEmpty property="usernamestr">and d.username like concat('%',#usernamestr#,'%')</isNotEmpty>
<isNotEmpty property="useridstr">and d.userid like concat('%',#useridstr#,'%')</isNotEmpty>
<isNotEmpty property="searchtext">
<isEqual property="searchtype" compareValue="usernamestr">and d.username like concat('%',#usernamestr#,'%')</isEqual>
<isEqual property="searchtype" compareValue="useridstr">and d.userid like concat('%',#useridstr#,'%')</isEqual>
</isNotEmpty>
<isNotNull property="estate">
<isEqual property="estate" compareValue="0">and c.estart is null</isEqual>
<isEqual property="estate" compareValue="1">and c.estart is not null and c.eend is null</isEqual>
<isEqual property="estate" compareValue="2">and c.eend is not null</isEqual>
</isNotNull>
<isNotEmpty property="sdateall">and (case when b2.cshape = 0 and a.isrebate = 0 then p.payoktime else a.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall">and (case when b2.cshape = 2 then f.eend else a.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotEmpty property="asname">and e.asname like concat('%',#asname#,'%')</isNotEmpty>
) a
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<!--문제 점수만 변경, 문제 재설정변경-->
<update id="lect.reexam" parameterClass="hashtable"> <update id="lect.reexam" parameterClass="hashtable">
insert into lectexrelog(lectno,exno,estart,eend,eip,<include refid="sql.inc"></include>)
select a.lectno lectno,a.exno exno,a.estart estart,a.eend eend,a.eip eip,<include refid="sql.inv"></include>
from lectex a
where a.lectno=#lectno# and a.exno=#exno#;
update lectex set estart=null,eend=null,eip=null,tpoint=0,recount=recount+1,entercount=0,cblock=0 where lectno=#lectno# and exno=#exno#; update lectex set estart=null,eend=null,eip=null,tpoint=0,recount=recount+1,entercount=0,cblock=0 where lectno=#lectno# and exno=#exno#;
update lectexq a update lectexq a
inner join cmex b on b.exno=a.exno and b.eqtype=0 inner join cmex b on b.exno=a.exno <!--and b.eqtype=0-->
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#;
delete from lectexq where lectno=#lectno# and exno=#exno# and eqno in ( <!--delete from lectexq where lectno=#lectno# and exno=#exno# and eqno in (
select a.eqno select a.eqno
from ( from (
select b.eqno select b.eqno
@ -797,9 +904,9 @@
inner join lectexq b on b.lectno=#lectno# and b.exno=a.exno inner join lectexq b on b.lectno=#lectno# and b.exno=a.exno
where a.exno=#exno# and a.eqtype=1 where a.exno=#exno# and a.eqtype=1
) a ) a
); );-->
insert into lectexq (lectno,exno,eqno,cpoint,dpoint,qseq,<include refid="sql.inc"></include>) <!--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> 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 ( from (
select a.* select a.*
@ -820,9 +927,20 @@
) a ) a
where a.rank &lt;= a.qcount where a.rank &lt;= a.qcount
) a ) a
order by rand(); order by rand();-->
</update> </update>
<select id="lect.reexam.log" parameterClass="hashtable" resultClass="lectex">
select a.*
from (
select a.estart,eend,eip
,row_number() over(order by a.cdt desc) rno
,count(a.cno) over() pagetotalcount
from lectexrelog a
where a.lectno=#lectno# and a.exno=#exno#
) a
order by a.rno
</select>
<sql id="lectexcreate"> <sql id="lectexcreate">
insert into lectexq (lectno,exno,eqno,cpoint,dpoint,qseq,<include refid="sql.inc"></include>) insert into lectexq (lectno,exno,eqno,cpoint,dpoint,qseq,<include refid="sql.inc"></include>)
select a.lectno,a.exno,d.eqno,0,d.rpoint,row_number() over(order by case when c.israndq=0 then d.qseq else rand() * d.qseq end),<include refid="sql.inv"></include> select a.lectno,a.exno,d.eqno,0,d.rpoint,row_number() over(order by case when c.israndq=0 then d.qseq else rand() * d.qseq end),<include refid="sql.inv"></include>
@ -915,6 +1033,7 @@
update lectexq set <include refid="sql.up"></include> update lectexq set <include refid="sql.up"></include>
,rechecktime=<include refid="sql.now"></include> ,rechecktime=<include refid="sql.now"></include>
,cpoint=#cpoint# ,cpoint=#cpoint#
<isNotNull property="iscorrect">,iscorrect = #iscorrect#</isNotNull>
where lectno=#lectno# and exno=#exno# and eqno=#eqno#; where lectno=#lectno# and exno=#exno# and eqno=#eqno#;
update lectex a update lectex a
@ -938,13 +1057,15 @@
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno ,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno
,count(a.cdt) over() pagetotalcount ,count(a.cdt) over() pagetotalcount
from lect a from lect a
inner join cmsd b on b.isdel=0 <isNotNull property="sdno">and b.sdno=#sdno#</isNotNull> inner join cmsd b on b.isdel=0 and b.cmno = a.cmno <isNotNull property="sdno">and b.sdno=#sdno#</isNotNull>
left outer join lectsd c on c.lectno=a.lectno and c.sdno=b.sdno left outer join lectsd c on c.lectno=a.lectno and c.sdno=b.sdno
left outer join fileinfo cf on cf.fgno=c.fgno and cf.isdel=0 left outer join fileinfo cf on cf.fgno=c.fgno and cf.isdel=0
inner join users d on d.userno=a.userno inner join users d on d.userno=a.userno
left outer join assign e on e.asno=d.asno left outer join assign e on e.asno=d.asno
left outer join mch_source_v_lectsd_list f on f.DOC_ID = concat(b.sdno ,'_',a.lectno ) left outer join mch_source_v_lectsd_list f on f.DOC_ID = concat(b.sdno ,'_',a.lectno )
where a.cmno=#cmno# and a.status=1 and a.ischanged=0 where a.status=1 and a.ischanged=0
<isNotNull property="sdtype">and b.sdtype=#sdtype#</isNotNull>
<isNotNull property="cmno">and a.cmno=#cmno# </isNotNull>
<isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull> <isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull>
<isNotNull property="sdstate"> <isNotNull property="sdstate">
<isEqual property="sdstate" compareValue="0">and c.submittime is null</isEqual> <isEqual property="sdstate" compareValue="0">and c.submittime is null</isEqual>
@ -952,6 +1073,60 @@
</isNotNull> </isNotNull>
order by rno order by rno
</select> </select>
<select id="lect.lectsds.all" parameterClass="hashtable" resultClass="lectsd">
select a.*
from (
select a.lectno,a.userno,a.cmno,a.isrebate
,p.payoktime,a.sdate,a.edate
,g.cname,g.cshape
,b.sdno
,c.atext,round((f.MAX_SCORE/100)) copyrate,c.iscopy,c.cpoint,c.feedb,c.submittime,c.submitip,c.checktime,c.checkip
,d.username,d.userid,d.usertype
,e.asname
,h.estart lestart,h.eend leend,h.sseq
,i.cname studyplacename
,a.iscomplete
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join pay p on p.payno = a.payno
inner join cm g on g.cmno = a.cmno
inner join cmsd b on b.isdel=0 and b.cmno = a.cmno
left outer join lectsd c on c.lectno = a.lectno and c.sdno = b.sdno
inner join users d on d.userno = a.userno
left outer join assign e on e.asno = d.asno
left outer join mch_source_v_lectsd_list f on f.DOC_ID = concat(b.sdno ,'_',a.lectno )
left outer join cminningscd h on h.cmisno = a.cmisno
left outer join comcode i on i.ccode = h.studyplace and i.isuse=1
where a.status=1 and a.ischanged=0
<isNotEmpty property="edate">and date_format(a.edate,'%Y%m%d')=date_format(#edate#,'%Y%m%d')</isNotEmpty>
<isNotNull property="cshape">and g.cshape = #cshape#</isNotNull>
<isNotEmpty property="cname">and g.cname like concat('%',#cname#,'%')</isNotEmpty>
<isNotEmpty property="cnamestr">and g.cname like concat('%',#cname#,'%')</isNotEmpty>
<isNotNull property="iscomplete">and ifnull(a.iscomplete,0) = #iscomplete#</isNotNull>
<isNotNull property="studyplace">and h.studyplace = #studyplace#</isNotNull>
<isNotNull property="usernamestr">and d.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr">and d.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotNull property="sdtype">and b.sdtype=#sdtype#</isNotNull>
<isNotNull property="cmno">and a.cmno=#cmno# </isNotNull>
<isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull>
<isNotNull property="sdstate">
<isEqual property="sdstate" compareValue="0">and c.submittime is null</isEqual>
<isEqual property="sdstate" compareValue="1">and c.submittime is not null</isEqual>
</isNotNull>
<isNotEmpty property="searchtype">
<isNotEmpty property="searchtext">
<isEqual property="searchtype" compareValue="usernamestr">and d.username like concat('%',#searchtext#,'%')</isEqual>
<isEqual property="searchtype" compareValue="useridstr">and d.userid like concat('%',#searchtext#,'%')</isEqual>
</isNotEmpty>
</isNotEmpty>
<isNotEmpty property="sdateall">and (case when g.cshape = 0 and a.isrebate = 0 then p.payoktime else a.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall">and (case when g.cshape = 2 then h.eend else a.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="asname">and e.asname like concat('%',#asname#,'%')</isNotNull>
) a
<include refid="sql.pagedynamic"></include>
order by rno
</select>
<select id="lect.lectsd" parameterClass="hashtable" resultClass="lectsd"> <select id="lect.lectsd" parameterClass="hashtable" resultClass="lectsd">
select a.sdno,a.tpoint sdtpoint select a.sdno,a.tpoint sdtpoint
,b.lectno,b.atext,b.fgno,round((g.MAX_SCORE/100)) copyrate,b.iscopy,b.cpoint,b.feedb,b.submittime,b.checktime ,b.lectno,b.atext,b.fgno,round((g.MAX_SCORE/100)) copyrate,b.iscopy,b.cpoint,b.feedb,b.submittime,b.checktime
@ -1314,6 +1489,7 @@
,cc.ccode studyplace ,cc.ccode studyplace
,cc.cname studyplacename ,cc.cname studyplacename
,case when scd.eend is not null then scd.eend else a.edate end as sortedate ,case when scd.eend is not null then scd.eend else a.edate end as sortedate
,ci.scdtype
from lect a from lect a
inner join cm b on b.cmno=a.cmno <!--and b.sstime &lt; <include refid="sql.now"></include>--> inner join cm b on b.cmno=a.cmno <!--and b.sstime &lt; <include refid="sql.now"></include>-->
<!--inner join cm pc on pc.cmno=case when a.ispc=1 then a.pcno else a.cmno end and pc.sstime &lt; <include refid="sql.now"></include>--> <!--inner join cm pc on pc.cmno=case when a.ispc=1 then a.pcno else a.cmno end and pc.sstime &lt; <include refid="sql.now"></include>-->
@ -1323,9 +1499,15 @@
inner join users u on u.userno=a.userno inner join users u on u.userno=a.userno
left outer join assign ua on ua.asno=u.asno left outer join assign ua on ua.asno=u.asno
left outer join cminningscd scd on scd.cmisno = a.cmisno left outer join cminningscd scd on scd.cmisno = a.cmisno
left outer join cminning ci on ci.cmino = scd.cmino
left outer join comcode cc on cc.ccode = b.studyplace left outer join comcode cc on cc.ccode = b.studyplace
where a.userno=#userno# and a.status=1 and a.ischanged=0 and a.sdate &lt; <include refid="sql.now"></include> where a.userno=#userno# and a.status=1 and a.ischanged=0 and a.sdate &lt; <include refid="sql.now"></include>
<isNotNull property="cshape">and b.cshape=#cshape#</isNotNull> <isNotNull property="cshape">and b.cshape=#cshape#</isNotNull>
<isNotNull property="issubtable">
and (b.cshape = 2 and scd.estart &gt; '1900-01-01' and scd.eend &gt; '1900-01-01' and ifnull(a.iscomplete,0) = 0 and scd.estart &gt; now()
and (date_add(scd.eend,interval +5 day) &gt; date_format(now(),'%Y-%m-%d 23:59:59'))
and date_add(a.cdt, interval +1 year) &gt;= date_format(now(),'%Y-%m-%d 23:59:59'))
</isNotNull>
union all union all
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete
,case when a.sdate is null then b.sstime else a.sdate end as sdate ,case when a.sdate is null then b.sstime else a.sdate end as sdate
@ -1339,6 +1521,7 @@
,null studyplace ,null studyplace
,null studyplacename ,null studyplacename
,a.edate as sortedate ,a.edate as sortedate
,null scdtype
from pay e from pay e
inner join lect a on a.payno=e.payno and a.status=1 and a.ischanged=0 inner join lect a on a.payno=e.payno and a.status=1 and a.ischanged=0
inner join cm b on b.cmno=a.cmno and b.sstime &lt; <include refid="sql.now"></include> inner join cm b on b.cmno=a.cmno and b.sstime &lt; <include refid="sql.now"></include>
@ -1361,6 +1544,7 @@
,null studyplace ,null studyplace
,null studyplacename ,null studyplacename
,a.edate as sortedate ,a.edate as sortedate
,null scdtype
from lect a0 from lect a0
inner join pay e on e.payno=a0.payno and e.isgroup=1 and e.userno&lt;&gt;#userno# and e.pstatus=1 inner join pay e on e.payno=a0.payno and e.isgroup=1 and e.userno&lt;&gt;#userno# and e.pstatus=1
inner join lect a on a.payno=e.payno and a.status=1 and a.ischanged=0 inner join lect a on a.payno=e.payno and a.status=1 and a.ischanged=0
@ -1635,6 +1819,11 @@
) b on b.pplno = a.pplno ) b on b.pplno = a.pplno
set a.cmisno = b.cmisno set a.cmisno = b.cmisno
where b.lectno = #lectno#; where b.lectno = #lectno#;
update lect a
left outer join cminningscd b on b.cmisno = a.cmisno
set a.edate = case when b.eend is not null then b.eend else a.edate end
where a.lectno = #lectno#;
</update> </update>
<select id="lect.checkuser.cmisno" parameterClass="hashtable" resultClass="int"> <select id="lect.checkuser.cmisno" parameterClass="hashtable" resultClass="int">
select count(c.cmisno ) select count(c.cmisno )
@ -1662,6 +1851,19 @@
limit 1 limit 1
) a ) a
</select> </select>
<select id="lect.eqno.listforcheck" parameterClass="string" resultClass="questionitem">
select e.qno,b.eqno,e.qino,e.qitext,d.atype,c.atext,d.ispassspace,d.isignorecase
from cmex a
inner join cmexq b on b.exno = a.exno
inner join lectexq c on c.eqno = b.eqno
inner join question d on d.qno = b.qno
inner join questionitem e on e.qno = d.qno
where e.isright =1 and e.isdel=0
<isNotNull property="exno">and a.exno = #exno#</isNotNull>
<isNotNull property="lectno">and c.lectno = #lectno#</isNotNull>
<isNotEmpty property="eqnos">and b.eqno in ($eqnos$)</isNotEmpty>
order by e.qno,e.qino
</select>
</statements> </statements>
</sqlMap> </sqlMap>

View File

@ -47,11 +47,24 @@
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
left outer join cminningscd d on d.cmisno = a.cmisno
set set
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
else b.sstime end, else
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.setime end else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
,a.udt=now(),a.uno=#uno#,a.uip=#uip# ,a.udt=now(),a.uno=#uno#,a.uip=#uip#
where a.payno = #payno# and c.pstatus = 1 where a.payno = #payno# and c.pstatus = 1
</update> </update>
@ -290,11 +303,24 @@
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
left outer join cminningscd d on a.cmisno = d.cmisno
set set
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
else b.sstime end, else
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.setime end else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
where a.payno = #payno# and c.pstatus = 1 where a.payno = #payno# and c.pstatus = 1
</update> </update>
<update id="pay.paydvr.save" parameterClass="hashtable"> <update id="pay.paydvr.save" parameterClass="hashtable">
@ -375,11 +401,24 @@
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
left outer join cminningscd d on d.cmisno = a.cmisno
set set
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
else b.sstime end, else
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.setime end else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
where a.payno = #payno# and c.pstatus = 1 where a.payno = #payno# and c.pstatus = 1
<!--update examuser a <!--update examuser a
@ -425,11 +464,24 @@
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
left outer join cminningscd d on d.cmisno = a.cmisno
set set
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
else b.sstime end, else
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.setime end else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
where a.payno = #payno# and c.pstatus = 1; where a.payno = #payno# and c.pstatus = 1;
<!--update examuser a <!--update examuser a
@ -896,11 +948,24 @@
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
left outer join cminningscd d on d.cmisno = a.cmisno
set set
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(<include refid="sql.now"></include>,'%Y-%m-%d 00:00:00') a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
else b.sstime end, else
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(<include refid="sql.now"></include>,interval b.studydays day),'%Y-%m-%d 23:59:59') case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.setime end else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
where a.payno = #payno# and c.pstatus = 1; where a.payno = #payno# and c.pstatus = 1;
</update> </update>
<update id="pay.abspay" parameterClass="hashtable"> <update id="pay.abspay" parameterClass="hashtable">
@ -929,26 +994,52 @@
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
left outer join cminningscd d on d.cmisno = a.cmisno
set set
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
else b.sstime end, else
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.setime end else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
where a.payno = #payno# and c.pstatus = 1 where a.payno = #payno# and c.pstatus = 1
</update> </update>
<update id="pay.unpaymoney" parameterClass="hashtable"> <update id="pay.unpaymoney" parameterClass="hashtable">
update pay update pay
set isunpay=2,payoktime=#payoktime#,udt=now(),uno=#uno#,uip=#uip# set isunpay=2,payoktime=#payoktime#,udt=now(),uno=#uno#,uip=#uip#
where payno=#payno# and isunpay=1; where payno=#payno# and isunpay=1;
update lect a update lect a
inner join cm b on a.cmno = b.cmno inner join cm b on a.cmno = b.cmno
inner join pay c on a.payno = c.payno inner join pay c on a.payno = c.payno
set left outer join cminningscd d on d.cmisno = a.cmisno
a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') set
else b.sstime end, a.sdate = case when b.cshape &lt;&gt; 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00')
a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape &lt;&gt; 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') else
else b.setime end case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(c.payoktime,'%Y-%m-%d 00:00:00')
else b.sstime end
end,
a.edate = case when b.cshape &lt;&gt; 1 then
case when d.eend is not null then date_format(d.eend,'%Y-%m-%d 23:59:59')
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime end
end
else
case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59')
else b.setime
end
end
where a.payno = #payno# and c.pstatus = 1; where a.payno = #payno# and c.pstatus = 1;
</update> </update>
<select id="pay.pplogs" parameterClass="hashtable" resultClass="pplog"> <select id="pay.pplogs" parameterClass="hashtable" resultClass="pplog">
@ -960,9 +1051,11 @@
,CAST(AES_DECRYPT(UNHEX(a.mphone), <include refid="sql.digest"></include>) AS char) mphone ,CAST(AES_DECRYPT(UNHEX(a.mphone), <include refid="sql.digest"></include>) AS char) mphone
,CAST(AES_DECRYPT(UNHEX(a.taxemail), <include refid="sql.digest"></include>) AS char) taxemail ,CAST(AES_DECRYPT(UNHEX(a.taxemail), <include refid="sql.digest"></include>) AS char) taxemail
,b.cdt ,b.cdt
,c.eend
from pplog a from pplog a
inner join cm a2 on a2.cmno=a.cmno inner join cm a2 on a2.cmno=a.cmno
left outer join pay b on b.pplno=a.pplno left outer join pay b on b.pplno=a.pplno
left outer join cminningscd c on c.cmisno = a.cmisno
<dynamic prepend="where"> <dynamic prepend="where">
<isNotNull property="pplno" prepend="and">a.pplno=#pplno#</isNotNull> <isNotNull property="pplno" prepend="and">a.pplno=#pplno#</isNotNull>
<isNotNull property="userno" prepend="and">a.userno=#userno#</isNotNull> <isNotNull property="userno" prepend="and">a.userno=#userno#</isNotNull>

View File

@ -43,7 +43,7 @@ namespace NP.FO.Controllers
//lectInning.daylectinninglimit = lectInning.daylectinninglimit == 0 ? 9999 : lectInning.daylectinninglimit; //lectInning.daylectinninglimit = lectInning.daylectinninglimit == 0 ? 9999 : lectInning.daylectinninglimit;
lectInning.daylectinninglimit = vm.intval2; lectInning.daylectinninglimit = vm.intval2;
} }
if (vm.LectInnings.Count() > 0 && !string.IsNullOrEmpty(vm.LectInnings.FirstOrDefault().existslectinning) ) if (vm.LectInnings.Count() > 0 /*&& !string.IsNullOrEmpty(vm.LectInnings.FirstOrDefault().existslectinning)*/ )
{ {
vm.intval = Dao.Get<LectInning>("cr.lectinnings", new System.Collections.Hashtable() { /*{ "lectno", vm.croomlectno }*/ {"userno",SUserInfo.UserNo }, { "isfinishtoday", 1 } }).Count(); vm.intval = Dao.Get<LectInning>("cr.lectinnings", new System.Collections.Hashtable() { /*{ "lectno", vm.croomlectno }*/ {"userno",SUserInfo.UserNo }, { "isfinishtoday", 1 } }).Count();
} }

View File

@ -178,7 +178,7 @@ namespace NP.FO.Controllers
if (GetPOPUPS.Count() > 0) if (GetPOPUPS.Count() > 0)
{ {
POPUP = string.Join("nptechpopuplistseparator", GetPOPUPS.Select(s => string.Format("{0}nptechpopupseparator{1}nptechpopupseparator{2}nptechpopupseparator{3}nptechpopupseparator{4}nptechpopupseparator{5}nptechpopupseparator{6}nptechpopupseparator{7}nptechpopupseparator{8}" POPUP = string.Join("nptechpopuplistseparator", GetPOPUPS.Select(s => string.Format("{0}nptechpopupseparator{1}nptechpopupseparator{2}nptechpopupseparator{3}nptechpopupseparator{4}nptechpopupseparator{5}nptechpopupseparator{6}nptechpopupseparator{7}nptechpopupseparator{8}"
, s.pno, s.ptitle, "", s.toppx, s.leftpx, s.pwidth, s.pheight+37, s.purl, s.zindex + 100))); , s.pno, s.ptitle, "", s.toppx, s.leftpx, s.pwidth, s.pheight+4, s.purl, s.zindex + 100)));
} }
} }
return POPUP; return POPUP;

View File

@ -161,6 +161,11 @@ namespace NP.FO.Controllers
vm.Lects = Dao.Get<Lect>("lect.mylectures", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "cgcode", vm.intval > 0 ? TestCode3 : null }, { "cshape", vm.stringval } }); vm.Lects = Dao.Get<Lect>("lect.mylectures", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "cgcode", vm.intval > 0 ? TestCode3 : null }, { "cshape", vm.stringval } });
return View(vm); return View(vm);
} }
public ActionResult LectureOn(VMMy vm)
{
vm.Lects = Dao.Get<Lect>("lect.mylectures", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "cgcode", vm.intval > 0 ? TestCode3 : null }, { "cshape", 2 },{"issubtable" ,1} });
return View(vm);
}
public ActionResult CertPrint(VMMy vm) public ActionResult CertPrint(VMMy vm)
{ {
ViewBag.TestCode = TestCode; ViewBag.TestCode = TestCode;

View File

@ -728,6 +728,7 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
</None> </None>
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> <None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<Content Include="Views\My\LectureOn.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Base\Base.csproj"> <ProjectReference Include="..\Base\Base.csproj">

View File

@ -52,7 +52,7 @@
else else
{ {
<div class="brdSch"><div> <div class="brdSch"><div>
<input type="text" value="@Model.scc" id="subcon" placeholder="제목이나 내용을 입력하세요"><input type="button" onclick="$('#scc').val($('#subcon').val());findme(1)" value="검색"></div></div> <input type="text" value="@Model.scc" id="subcon" placeholder="제목/내용/작성자 이름을 입력하세요"><input type="button" onclick="$('#scc').val($('#subcon').val());findme(1)" value="검색"></div></div>
if (Model.BM.bmtype > 0) if (Model.BM.bmtype > 0)
{ {
<div class="notiBtn top"><a href="#" onclick="gow()">게시글 등록</a></div> <div class="notiBtn top"><a href="#" onclick="gow()">게시글 등록</a></div>

View File

@ -2,16 +2,16 @@
@{ @{
} }
<ul class="lctpTab col4"> <ul class="lctpTab col3">
<li class="@(Model.tabidx == 0 ? "current":"")"><a onclick="gotab(0, this)" style="@(Model.tabidx == 0 ? "cursor: default;":"")" href="#;">전체</a></li> <li class="@(Model.tabidx == 0 ? "current":"")"><a onclick="gotab(0, this)" style="@(Model.tabidx == 0 ? "cursor: default;":"")" href="#;">전체</a></li>
<li class="@(Model.tabidx == 1 ? "current":"")"><a onclick="gotab(1, this)" style="@(Model.tabidx == 1 ? "cursor: default;":"")" href="#">시험</a></li> <li class="@(Model.tabidx == 1 ? "current":"")"><a onclick="gotab(1, this)" style="@(Model.tabidx == 1 ? "cursor: default;":"")" href="#">시험</a></li>
<li class="@(Model.tabidx == 2 ? "current":"")"><a onclick="gotab(2, this)" style="@(Model.tabidx == 2 ? "cursor: default;":"")" href="#">과제</a></li> <li class="@(Model.tabidx == 2 ? "current":"")"><a onclick="gotab(2, this)" style="@(Model.tabidx == 2 ? "cursor: default;":"")" href="#">과제</a></li>
<li class="@(Model.tabidx == 3 ? "current":"")"><a onclick="gotab(3, this)" style="@(Model.tabidx == 3 ? "cursor: default;":"")" href="#">토론</a></li> @*<li class="@(Model.tabidx == 3 ? "current":"")"><a onclick="gotab(3, this)" style="@(Model.tabidx == 3 ? "cursor: default;":"")" href="#">토론</a></li>*@
</ul> </ul>
@if (Model.tabidx == 0 || Model.tabidx == 3) @*@if (Model.tabidx == 0 || Model.tabidx == 3)
{ {
<div style="color: #0094ff; text-align: right;">※ 토론은 참여완료 후에도 추가로 참여할 수 있습니다.</div> <div style="color: #0094ff; text-align: right;">※ 토론은 참여완료 후에도 추가로 참여할 수 있습니다.</div>
} }*@
<div class="evaList"> <div class="evaList">
<table> <table>
<tbody> <tbody>

View File

@ -7,8 +7,9 @@
<tr><th>시험종류</th><td>@Model.LectEX.exname</td></tr> <tr><th>시험종류</th><td>@Model.LectEX.exname</td></tr>
<tr><th>시험제목</th><td>@Model.LectEX.exname</td></tr> <tr><th>시험제목</th><td>@Model.LectEX.exname</td></tr>
<tr><th>시험내용</th><td>@Html.Raw((Model.LectEX.edesc??"").Replace(System.Environment.NewLine, "<br />"))</td></tr> <tr><th>시험내용</th><td>@Html.Raw((Model.LectEX.edesc??"").Replace(System.Environment.NewLine, "<br />"))</td></tr>
<tr><th>평가점수</th><td>@(Model.LectEX.tpoint+"점")</td></tr>
<tr><th>제한시간</th><td>@(Model.LectEX.etime == 0 ? "제한없음" : string.Format("{0} 분", Model.LectEX.etime))</td></tr> <tr><th>제한시간</th><td>@(Model.LectEX.etime == 0 ? "제한없음" : string.Format("{0} 분", Model.LectEX.etime))</td></tr>
<tr><th>응시시간</th><td>수강 종료일 (@Model.LectEX.edate.Value.ToString("yyyy-MM-dd")) 이내</td></tr> <tr><th>응시기간</th><td>@(Model.LectEX.sdate.Value.ToString("yy-MM-dd hh:mm")) ~ @(Model.LectEX.edate.Value.ToString("yy-MM-dd hh:mm"))까지(진도율 @(Model.LectEX.econdition)%이상 응시가능)</td></tr>
<tr><th>재응시여부</th><td>@(Model.LectEX.isreexamable == 0 ? "불가능" : "가능")</td></tr> <tr><th>재응시여부</th><td>@(Model.LectEX.isreexamable == 0 ? "불가능" : "가능")</td></tr>
<tr><th>응시상태</th><td>@(Model.LectEX.estart == null ? ("응시전"+(Model.LectEX.recount > 0 ? string.Format(" (재응시승인 {0}회)", Model.LectEX.recount):"")) : Model.LectEX.eend != null ? "응시완료" : Model.LectEX.rtime < 1 ? "응시시간초과":("응시시작 (남은시간 " + Model.LectEX.rtime + "분)" +(Model.LectEX.relaylimit.Value <= Model.LectEX.entercount?", [이어보기 초과]":"")))</td></tr> <tr><th>응시상태</th><td>@(Model.LectEX.estart == null ? ("응시전"+(Model.LectEX.recount > 0 ? string.Format(" (재응시승인 {0}회)", Model.LectEX.recount):"")) : Model.LectEX.eend != null ? "응시완료" : Model.LectEX.rtime < 1 ? "응시시간초과":("응시시작 (남은시간 " + Model.LectEX.rtime + "분)" +(Model.LectEX.relaylimit.Value <= Model.LectEX.entercount?", [이어보기 초과]":"")))</td></tr>
@if (Model.LectEX.estart != null) @if (Model.LectEX.estart != null)
@ -17,7 +18,15 @@
} }
</table> </table>
<ul class="lctBtn col1"> <ul class="lctBtn col1">
<li><a href="#" class="bk" onclick="goexam()">@(Model.LectEX.eend == null && (Model.LectEX.estart == null || Model.LectEX.relaylimit.Value >= Model.LectEX.entercount) ? "응시하기" : "결과보기")</a></li> @if(Model.LectEX.eend == null && (Model.LectEX.estart == null || Model.LectEX.relaylimit.Value >= Model.LectEX.entercount))
{
<li><a href="#" class="bk" onclick="goexam()">응시하기</a></li>
}
@if (Model.LectEX.ispass == 1)
{
<li><a href="#" class="bk" onclick="showexam()">결과보기</a></li>
}
@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)
{ {
<li><a href="#" class="bk" onclick="javascript:reexam(@Model.LectEX.exno,@Model.LectEX.lectno)">재응시</a></li> <li><a href="#" class="bk" onclick="javascript:reexam(@Model.LectEX.exno,@Model.LectEX.lectno)">재응시</a></li>
@ -58,6 +67,11 @@
} }
} }
} }
}
}
function showexam() {
if (@Model.LectEX.ispass == 1) {
msg("수료기준을 통과하지 못하여 비공개처리되었습니다.");
} else { } else {
//응시결과창 //응시결과창
if (@Model.LectEX.isresultopen == 1) { if (@Model.LectEX.isresultopen == 1) {

View File

@ -4,7 +4,7 @@
} }
<div class="lctcScore"> <div class="lctcScore">
<input type="hidden" id="mobile" name="mobile" value="@(ViewBag.Mobile)" /> <input type="hidden" id="mobile" name="mobile" value="@(ViewBag.Mobile)" />
<div class="lctCont"> <div class="lctCont" style="padding-bottom:0px;">
<h5>나의성적</h5> <h5>나의성적</h5>
<table> <table>
<thead> <thead>
@ -57,6 +57,32 @@
<span style="color:red;">※ 관련 규정에 의거 동시접속방지 기능으로 인해 다른 환경에서 접속 시 기존 환경에서는 로그아웃 되어 동영상 시청 진도율이 반영되지 않습니다.</span> <span style="color:red;">※ 관련 규정에 의거 동시접속방지 기능으로 인해 다른 환경에서 접속 시 기존 환경에서는 로그아웃 되어 동영상 시청 진도율이 반영되지 않습니다.</span>
</div> </div>
</div> </div>
@if(Model.Lect.isoffabs == 1)
{
<div class="lctcScore">
<div class="lctCont">
<h5>집합교육 안내</h5>
<table>
<thead>
<tr>
<th>집체일정</th>
<th>교육장소</th>
<th>준비물</th>
<th>출석여부</th>
</tr>
</thead>
<tbody>
<tr>
<td>@(string.Format("{0} {1}"+":"+"{2} ~ {3}"+":"+"{4}",Model.Lect.estart.ToString("yyyy-MM-dd"),Model.Lect.estart.ToString("HH"), Model.Lect.estart.ToString("mm"), Model.Lect.eend.ToString("HH"), Model.Lect.eend.ToString("mm")))</td>
<td>@Model.Lect.studyplacename</td>
<td>신분증,필기도구,과제</td>
<td>@Model.Lect.istatusname</td>
</tr>
</tbody>
</table>
</div>
</div>
}
<div class="lctCont" style="padding-left:0px;"> <div class="lctCont" style="padding-left:0px;">
<div class="lctcHalf"> <div class="lctcHalf">
<div> <div>
@ -180,7 +206,7 @@
} else if (preflag < 1) { } else if (preflag < 1) {
msg("이전 회차 학습을 완료한 이후 학습이 가능합니다."); msg("이전 회차 학습을 완료한 이후 학습이 가능합니다.");
} else if (notoverflag < 1) { } else if (notoverflag < 1) {
msg("일일 최대 학습회차는 10시간(10차시)입니다."); msg("관련 법령에 의해 일일 최대 학습가능한 시간은 10시간(10차시)입니다.");
} else { } else {
_cmino = cmino; _cmino = cmino;
chkcontent(); chkcontent();

View File

@ -6,7 +6,7 @@
<a href="#" onclick="showatt()">출결이력조회</a> <a href="#" onclick="showatt()">출결이력조회</a>
</div>*@ </div>*@
<div class="lctcScore" style="text-align:center; background:#ffdfdf;"> <div class="lctcScore" style="text-align:center; background:#ffdfdf;">
<span>현재 오늘 학습 가능한 10차시 중 (@(Model.intval2 - Model.intval))차시가 학습가능 합니다.</span><br /> <span>현재 오늘 학습 가능한 10차시 중 <span style="color:red;">@(Model.intval2 - Model.intval)</span>차시가 학습가능 합니다.</span><br />
<span>※ 관련 법령에 의해 일일 최대 학습시간은 학습중인 모든 과정에 대하여 10시간(10차시)입니다.</span> <span>※ 관련 법령에 의해 일일 최대 학습시간은 학습중인 모든 과정에 대하여 10시간(10차시)입니다.</span>
</div> </div>
@*<h3>오늘의 학습회차(@Model.intval/@Model.intval2)</h3>*@ @*<h3>오늘의 학습회차(@Model.intval/@Model.intval2)</h3>*@
@ -179,7 +179,7 @@
} else if (preflag < 1) { } else if (preflag < 1) {
msg("이전 회차 학습을 완료한 이후 학습이 가능합니다."); msg("이전 회차 학습을 완료한 이후 학습이 가능합니다.");
} else if (notoverflag < 1) { } else if (notoverflag < 1) {
msg("일일 최대 학습회차는 10시간(10차시)입니다."); msg("관련 법령에 의해 일일 최대 학습가능한 시간은 10시간(10차시)입니다.");
} else { } else {
_cmino = cmino; _cmino = cmino;
chkcontent(); chkcontent();

View File

@ -27,29 +27,31 @@
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p>
} }
} }
else if (Model.CM.cshape == 1) else if (Model.CM.cshape == 1)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.ssretimeToDay)일) | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.ssretimeToDay)일) | @Model.CM.cname</label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname</label></p>
} }
} }
else if (Model.CM.cshape == 2) else if (Model.CM.cshape == 2)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.studytime)시간) | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.studytime)시간) | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p>*@
<p><label>@Model.CM.cname (@(Model.CM.studytime)시간)</label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p>*@
<p><label>@Model.CM.cname <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span></label></p>
} }
} }
</li> </li>
@ -74,8 +76,12 @@
</p> </p>
} }
@if (Model.stringval == "0" ) { @if (Model.stringval == "0" ) {
<h4 class="clsTitle">신청내용</h4> <h4 class="clsTitle">신청내용<span style="color:red;font-weight:700;"> (필수확인)</span></h4>
<table class="subTable"> if(Model.CM.cshape == 2)
{
<p class="subTxt" style="padding-bottom:15px;">교육종료일 : @(Model.PPLog.eendymd)까지</p>
}
<table class="subTable" style="border:3px solid red;">
<tr> <tr>
<th>교육유형</th> <th>교육유형</th>
@if (!string.IsNullOrEmpty(Model.stringval3)){<th>기술인분류</th>} @if (!string.IsNullOrEmpty(Model.stringval3)){<th>기술인분류</th>}
@ -118,18 +124,19 @@
{ {
<h4 class="clsTitle">교육수료조건</h4> <h4 class="clsTitle">교육수료조건</h4>
<p class="subTxt"> <p class="subTxt">
1. <span class="subTxt red">동영상강의 28시간 진도율 90% 이상 및 집체교육 7시간 이수</span><br /> 1. <span class="subTxt red">동영상강의 35시간 진도율 90% 이상</span><br />
2. <span class="subTxt red">과제물 제출(표지 제외 A4 2장 이상 분량)</span><br /> 2. <span class="subTxt red">과제물 제출(표지 제외 A4 2장 이상 분량)</span><br />
3. 총점 70점 이상 득점 : 시험평가(60점) + 과제(20점) + 진도율(20점) =100점<br /><br /> 3. 총점 70점 이상 득점 : 시험평가(60점) + 과제(20점) + 진도율(20점) =100점<br /><br />
<span class="subTxt red">※ 위 3가지 조건 모두 만족하셔야 수료가 가능합니다.</span><br /> <span class="subTxt red">※ 위 3가지 조건 모두 만족하셔야 수료가 가능합니다.</span><br />
<span class="subTxt red">※ 하루 최대 학습 시간은 10차시 입니다.</span><br />
<span style="font-size:15pt;color:#0047a7;">※ 현재는 집체교육 참석없이 온라인교육으로만 35시간 수강이 가능합니다.</span> <span style="font-size:15pt;color:#0047a7;">※ 현재는 집체교육 참석없이 온라인교육으로만 35시간 수강이 가능합니다.</span>
@*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.<br />*@ @*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.<br />*@
</p> </p>
<h4 class="clsTitle">교육수강기한</h4> <h4 class="clsTitle">교육수강기한</h4>
<p class="subTxt"> <p class="subTxt">
온라인교육은 신청일로 부터 한달 내에 28시간(집체교육을 제외한 시간)을 수강하셔야 하며 <span class="subTxt red">1년 이내</span> 교육수료가 되지 않으면 수료 및 환불이 불가능합니다. 온라인교육은 신청일로 부터 <span class="subTxt red">최대 1년 이내</span>에 수료하셔야 하며 <span class="subTxt red">1년 이내</span> 교육수료가 되지 않으면 수료 및 환불이 불가능합니다.
</p> </p>
} }
<p class="subTxt" style="text-align:center;margin-top:30px;"> <p class="subTxt" style="text-align:center;margin-top:30px;">

View File

@ -24,17 +24,17 @@ else
<ul class="smtlChk"> <ul class="smtlChk">
<li> <li>
@*@if (Model.CM.cshape == 0) @*@if (Model.CM.cshape == 0)
{ {
<p><label>@(Model.CM.tseq)기 <span class='gry'>@(Model.CM.ssrename) (@(Model.CM.ssretimeToDay)일) </span> @Model.CM.cname</label></p> <p><label>@(Model.CM.tseq)기 <span class='gry'>@(Model.CM.ssrename) (@(Model.CM.ssretimeToDay)일) </span> @Model.CM.cname</label></p>
} }
else if (Model.CM.cshape == 1) else if (Model.CM.cshape == 1)
{ {
<p><label>@(Model.CM.tseq)기 <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@Model.CM.ssrename (@(Model.CM.ssretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원</span></label></p> <p><label>@(Model.CM.tseq)기 <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@Model.CM.ssrename (@(Model.CM.ssretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원</span></label></p>
} }
else if (Model.CM.cshape == 2) else if (Model.CM.cshape == 2)
{ {
<p><label>@(Model.CM.tseq)기 <span class='gry'>@(Model.CM.ssrename) (@(Model.CM.ssretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원 ※ 집체교육 선택 필수</span></label></p> <p><label>@(Model.CM.tseq)기 <span class='gry'>@(Model.CM.ssrename) (@(Model.CM.ssretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원 ※ 집체교육 선택 필수</span></label></p>
}*@ }*@
@if (Model.CM.cshape == 0) @if (Model.CM.cshape == 0)
{ {
@ -44,40 +44,42 @@ else
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p>
} }
} }
else if (Model.CM.cshape == 1) else if (Model.CM.cshape == 1)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@Model.CM.ssrename (@(Model.CM.ssretimeToDay)일) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@Model.CM.ssrename (@(Model.CM.ssretimeToDay)일) </span> | @Model.CM.cname </label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname </label></p>
} }
} }
else if (Model.CM.cshape == 2) else if (Model.CM.cshape == 2)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>@(Model.CM.ssrename) (@(Convert.ToInt32(Model.CM.ssretimeToDay) * 24)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='gry'>@(Model.CM.ssrename) (@(Convert.ToInt32(Model.CM.ssretimeToDay) * 24)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p>*@
<p><label><span class='gry'>@Model.CM.cname @(Model.CM.ssrename) (@(Model.CM.studytime)시간) </span></label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p>*@
<p><label><span class='gry'>@Model.CM.cname @*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | </label></p>
} }
} }
@*@if (Model.CM.applicableCM == "정상접수") @*@if (Model.CM.applicableCM == "정상접수")
{ {
<span class="smtlChkBtn smtlChk01">정상접수</span> <span class="smtlChkBtn smtlChk01">정상접수</span>
} }
else else
{ {
<span class="smtlChkBtn smtlChk02">대기접수</span> <span class="smtlChkBtn smtlChk02">대기접수</span>
}*@ }*@
</li> </li>
</ul> </ul>
<div class="apyCost"> <div class="apyCost">

View File

@ -38,30 +38,34 @@
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원</span></label></p>
} }
} }
else if (Model.CM.cshape == 1) else if (Model.CM.cshape == 1)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.ssretimeToDay)일) | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.ssretimeToDay)일) | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원</span></label></p>*@
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.ssretimeToDay)일) | @Model.CM.cname </label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원</span></label></p>*@
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname </label></p>
} }
} }
else if (Model.CM.cshape == 2) else if (Model.CM.cshape == 2)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.studytime)시간) | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원 @*※ 집체교육 선택 필수*@</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.studytime)시간) | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원 @*※ 집체교육 선택 필수</span></label></p>*@
<p><label>@Model.CM.cname (@(Model.CM.studytime)시간)</label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원 @*※ 집체교육 선택 필수*@</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studydays * 24)시간) </span> | @Model.CM.cname | <span class='red'><span id="spninfee"></span>원 @*※ 집체교육 선택 필수</span></label></p>*@
} <p><label>@Model.CM.cname <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span></label></p>
}
} }
@if (Model.CM.applicableCM == "정상접수") @if (Model.CM.applicableCM == "정상접수")
@ -82,16 +86,16 @@
@if (Model.CM.cshape == 2 && Model.CM.applicableCM == "정상접수") @if (Model.CM.cshape == 2 && Model.CM.applicableCM == "정상접수")
{ {
<div style="display:none;"> <div>
<h4 class="clsTitle">교육일정선택</h4> <h4 class="clsTitle">교육종료일 선택 <span style="font-size:12pt; font-weight:400;">&nbsp;&nbsp;&nbsp;※ 교육종료일까지 수료조건을 만족하시면 교육수료가 됩니다.</span></h4>
<select id="selMonth"> @*<select id="selMonth">
@for (int i = 1; i <= 12; i++) @for (int i = 1; i <= 12; i++)
{ {
<option @(DateTime.Now.Month == i ? "selected" : "") value="@(i)">@(i)월</option> <option @(DateTime.Now.Month == i ? "selected" : "") value="@(i)">@(i)월</option>
} }
</select> </select>
<span>&nbsp;&nbsp;&nbsp;※원하는 수료일자(월)을 선택하세요. 지정하신 일자가 수료일자가 됩니다.</span> <span>&nbsp;&nbsp;&nbsp;※원하는 수료일자(월)을 선택하세요. 지정하신 일자가 수료일자가 됩니다.</span>
<br /><br /> <br /><br />*@
<ul id="ulScd"></ul> <ul id="ulScd"></ul>
</div> </div>
} }
@ -144,6 +148,7 @@
</tbody> </tbody>
</table> </table>
<p class="subDsc mt10"> <p class="subDsc mt10">
<span style="color:red">※계산서 발급을 원할 경우 반드시 업체로 선택해 주세요. </span><br>
※수료증 소속부분에 기재될 내용으로 소속업체가 없으면 개인을 선택해 주세요. ※수료증 소속부분에 기재될 내용으로 소속업체가 없으면 개인을 선택해 주세요.
</p> </p>
</div> </div>
@ -276,9 +281,9 @@
<th class="req">주민등록번호</th> <th class="req">주민등록번호</th>
<td> <td>
<ul class="usrNum"> <ul class="usrNum">
<li>@Html.TextBoxFor(x => x.User.userpno1, new { @maxlength = "6" })</li> <li>@Html.TextBoxFor(x => x.User.userpno1, new { @maxlength = "6", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
<li>-</li> <li>-</li>
<li>@Html.TextBoxFor(x => x.User.userpno2, new { @maxlength = "7" })</li> <li>@Html.TextBoxFor(x => x.User.userpno2, new { @maxlength = "7", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
</ul> </ul>
</td> </td>
</tr> </tr>
@ -286,11 +291,11 @@
<th class="req">휴대전화</th> <th class="req">휴대전화</th>
<td> <td>
<ul class="usrPhn"> <ul class="usrPhn">
<li>@Html.TextBoxFor(x => x.User.mobile1, new { @maxlength = "3" })</li> <li>@Html.TextBoxFor(x => x.User.mobile1, new { @maxlength = "3", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
<li>-</li> <li>-</li>
<li>@Html.TextBoxFor(x => x.User.mobile2, new { @maxlength = "4" })</li> <li>@Html.TextBoxFor(x => x.User.mobile2, new { @maxlength = "4", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
<li>-</li> <li>-</li>
<li>@Html.TextBoxFor(x => x.User.mobile3, new { @maxlength = "4" })</li> <li>@Html.TextBoxFor(x => x.User.mobile3, new { @maxlength = "4", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
</ul> </ul>
</td> </td>
</tr> </tr>
@ -407,7 +412,7 @@
model.cm = @Html.Raw(Json.Encode(new List<NP.Model.CM>() { Model.CM }.Select(s => new { s.infee, s.accommofee, s.applicableCM, s.cshape, s.cmno }).First())); model.cm = @Html.Raw(Json.Encode(new List<NP.Model.CM>() { Model.CM }.Select(s => new { s.infee, s.accommofee, s.applicableCM, s.cshape, s.cmno }).First()));
model.assign = @Html.Raw(Json.Encode(new List<NP.Model.Assign>() { Model.Assign }.Select(s => new { s.asno, s.asname }).First()));; model.assign = @Html.Raw(Json.Encode(new List<NP.Model.Assign>() { Model.Assign }.Select(s => new { s.asno, s.asname }).First()));;
model.pplog = @Html.Raw(Json.Encode(new List<NP.Model.PPLog>() { ( Model.PPLog != null ? Model.PPLog : new NP.Model.PPLog {}) }.Select(s => new { s.isrebate, s.isaccommodation, s.cmisno }).First()));; model.pplog = @Html.Raw(Json.Encode(new List<NP.Model.PPLog>() { ( Model.PPLog != null ? Model.PPLog : new NP.Model.PPLog {}) }.Select(s => new { s.isrebate, s.isaccommodation, s.cmisno }).First()));;
model.selMonth = @(Model.selMonth != null ? Model.selMonth.ToString() : "null"); //model.selMonth = @(Model.selMonth != null ? Model.selMonth.ToString() : "null");
model.iscompany = @(Model.isCompany != null ? Model.isCompany.ToString() : "null"); model.iscompany = @(Model.isCompany != null ? Model.isCompany.ToString() : "null");
$(document).ready(function () { $(document).ready(function () {
@ -519,9 +524,9 @@
$("input:radio[name='isrebate'][value='" + model.pplog.isrebate + "']").click(); $("input:radio[name='isrebate'][value='" + model.pplog.isrebate + "']").click();
} }
if (model.selMonth != null) { //if (model.selMonth != null) {
$("#selMonth").val(model.selMonth).trigger('change'); // $("#selMonth").val(model.selMonth).trigger('change');
} //}
if(model.iscompany != null) { if(model.iscompany != null) {
$("input:radio[name='isCompany'][value='" + model.iscompany + "']").click(); $("input:radio[name='isCompany'][value='" + model.iscompany + "']").click();
@ -570,6 +575,11 @@
var ulScd = $("#ulScd"); var ulScd = $("#ulScd");
ulScd.empty(); ulScd.empty();
//var seq = 0; //var seq = 0;
if (capResult.obj.length < 1) {
var li = $("<li />");
li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>");
ulScd.append(li);
}
$.each(capResult.obj, function (i, d) { $.each(capResult.obj, function (i, d) {
var li = $("<li />"); var li = $("<li />");
if (d.isEnd == true) if (d.isEnd == true)
@ -677,7 +687,7 @@
function saveResult() { function saveResult() {
if (capResult.code == 1000 && capResult.obj > 0) { if (capResult.code == 1000 && capResult.obj > 0) {
$("#historyForm > input[name='pplno']").val(capResult.obj); $("#historyForm > input[name='pplno']").val(capResult.obj);
$("#historyForm > input[name='selMonth']").val($("#selMonth").val()); //$("#historyForm > input[name='selMonth']").val($("#selMonth").val());
$("#historyForm > input[name='isCompany']").val($("input:radio[name='isCompany']:checked").val()); $("#historyForm > input[name='isCompany']").val($("input:radio[name='isCompany']:checked").val());
$("#historyForm").attr("action", "/Course/ApplyAgree"); $("#historyForm").attr("action", "/Course/ApplyAgree");
$("#historyForm").submit(); $("#historyForm").submit();

View File

@ -40,29 +40,31 @@
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p>
} }
} }
else if (Model.CM.cshape == 1) else if (Model.CM.cshape == 1)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> | @Model.CM.cname</label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원</span></label></p> <p><label>@(Model.CM.tseq)기 | <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span> | @Model.CM.cname</label></p>
} }
} }
else if (Model.CM.cshape == 2) else if (Model.CM.cshape == 2)
{ {
if (!isallday) if (!isallday)
{ {
<p><label>@(Model.CM.tseq)기 | <span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.studytime)시간) | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='red'>교육종료일(@(Model.CM.setimeymd)까지)</span> (@(Model.CM.studytime)시간) | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p>*@
<p><label>@Model.CM.cname (@(Model.CM.studytime)시간)</label></p>
} }
else else
{ {
<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p> @*<p><label>@(Model.CM.tseq)기 | <span class='gry'>신청일로부터 @(Model.CM.studydays)일 (@(Model.CM.studytime)시간) </span> | @Model.CM.cname | <span class='red'>@(Model.CM.infee.ToString("#,0"))원 ※ 집체교육 선택 필수</span></label></p>*@
<p><label>@Model.CM.cname | <span class='gry'>@*신청일로부터 @(Model.CM.studydays)일*@ (@(Model.CM.studytime)시간) </span></label></p>
} }
} }
</li> </li>

View File

@ -66,6 +66,12 @@
<li><a href="https://homenet.kocea.or.kr:1443" target="_blank">한국건설기술인협회 이동</a></li> <li><a href="https://homenet.kocea.or.kr:1443" target="_blank">한국건설기술인협회 이동</a></li>
<li><a href="https://www.kira.or.kr" target="_blank">건축사협회 이동</a></li> <li><a href="https://www.kira.or.kr" target="_blank">건축사협회 이동</a></li>
</ul> </ul>
<br/>
@if(Model.stringval2 == "2")
{
<p class='subDsc' style='color:red;'>※ 온라인 교육은 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다</p>
@:※ 각 기수별 <span style='color:red;'>교육종료일을 꼭 확인하시고</span> 교육신청 부탁드립니다.
}
<input type="hidden" id="hidCmno" /> <input type="hidden" id="hidCmno" />
<ul class="smtList" style="margin-bottom:150px"> <ul class="smtList" style="margin-bottom:150px">
@foreach (var item in Model.CMs) @foreach (var item in Model.CMs)
@ -272,7 +278,7 @@
var cmno = _cmno; var cmno = _cmno;
var ulSubCm = $("#ulSubCm_" + cmno); var ulSubCm = $("#ulSubCm_" + cmno);
ulSubCm.empty(); ulSubCm.empty();
var applyClass = "<li><p class='subDsc' style='color:red;'>※ 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다</p >※ 각 기수별 <span style='color:red;'>교육종료일을 꼭 확인하시고</span> 교육신청 부탁드립니다.</li>"; //var applyClass = "<li><p class='subDsc' style='color:red;'>※ 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다</p >※ 각 기수별 <span style='color:red;'>교육종료일을 꼭 확인하시고</span> 교육신청 부탁드립니다.</li>";
$.each(capResult.obj, function (i, d) { $.each(capResult.obj, function (i, d) {
var li = $("<li />"); var li = $("<li />");
var p = $("<p />"); var p = $("<p />");
@ -296,14 +302,18 @@
} }
if (d.cshape == 0) { if (d.cshape == 0) {
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원</span></label>"); //p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원</span></label>");
} }
else if (d.cshape == 1) { else if (d.cshape == 1) {
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | <span class='blu'>[" + d.studyplacename + "교육장]</span> " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "("+d.ssretimeToDay +"일)") + "</span> | <span class=red>" +bindComma(d.infee)+"원</span></label>"); //p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | <span class='blu'>[" + d.studyplacename + "교육장]</span> " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "("+d.ssretimeToDay +"일)") + "</span> | <span class=red>" +bindComma(d.infee)+"원</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | <span class='blu'>[" + d.studyplacename + "교육장]</span> " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "("+d.ssretimeToDay +"일)") + "</span> | <span class=red>" +bindComma(d.infee)+"원</span></label>");
} }
else if (d.cshape == 2) { else if (d.cshape == 2) {
//p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원 ※ 집체교육 선택 필수</span></label>"); //p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원 ※ 집체교육 선택 필수</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='red'>교육종료일(" + d.setimeymd + "까지)</span></span><span> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>"); //p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='red'>교육종료일(" + d.setimeymd + "까지)</span></span><span> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>");
//p.html("<label style='cursor:default; font-size:18px'>" + d.cname + "<span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'></span><span> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.cname + "<span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'></span><span> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>");
} }
spanIntro.text("강좌소개"); spanIntro.text("강좌소개");
li.append(p); li.append(p);
@ -314,7 +324,7 @@
ulSubCm.append(li); ulSubCm.append(li);
}); });
if (ulSubCm.html() != "") { if (ulSubCm.html() != "") {
ulSubCm.append(applyClass); //ulSubCm.append(applyClass);
} }
if (capResult.obj.length <= 0) { if (capResult.obj.length <= 0) {
ulSubCm.append("<p class='subDsc' style='margin-top:30px; margin-bottom:30px'>※ 강좌가 없습니다.</p >"); ulSubCm.append("<p class='subDsc' style='margin-top:30px; margin-bottom:30px'>※ 강좌가 없습니다.</p >");

View File

@ -194,6 +194,11 @@
} }
@section scripts{ @section scripts{
<script> <script>
$(window).on("load", function () {
$(".iframebox").each(function () {
document.getElementById("ifrpop" + $(this).attr("ifrnum")).contentWindow.document.body.style.overflow = "hidden";
});
});
$(document).ready(function () { $(document).ready(function () {
initSearch(); initSearch();
@ -202,10 +207,10 @@
$.each($($("#texthide01").val().split('nptechpopuplistseparator')), function (i, p) { $.each($($("#texthide01").val().split('nptechpopuplistseparator')), function (i, p) {
var p = p.split('nptechpopupseparator'); var p = p.split('nptechpopupseparator');
if ('p@(ViewBag.POPUPXS)p'.indexOf('p' + p[0] + 'p') < 0) { if ('p@(ViewBag.POPUPXS)p'.indexOf('p' + p[0] + 'p') < 0) {
$("body").append("<div data-zindex=\"" + p[8] + "\" style=\"z-index: " + p[8] + "; left: " + p[4] + "px; top: " + p[3] + "px; width: " + (getint(p[5]) + 45) + "px; height: " + (getint(p[6]) + 105) + "px;\" class=\"draggablethis ui-widget-content popupitem\" id=\"popbox" + p[0] + "\">" + $("body").append("<div data-zindex=\"" + p[8] + "\" style=\"z-index: " + p[8] + "; left: " + p[4] + "px; top: " + p[3] + "px; width: " + (getint(p[5])) + "px; height: " + (getint(p[6])) + "px;\" class=\"draggablethis ui-widget-content popupitem\" id=\"popbox" + p[0] + "\">" +
"<div class=\"inner\"><div class=\"poptitlebox\"><span>" + p[1] + "</span>" + "<div class=\"inner\"><div class=\"poptitlebox\"><span>" + p[1] + "</span>" +
"<a class=\"closepopa\" href=\"#\" onclick=\"hidepop();$('#popbox" + p[0] + "').remove();\">x</a></div>" + "<a class=\"closepopa\" href=\"#\" onclick=\"hidepop();$('#popbox" + p[0] + "').remove();\"></a></div>" +
"<div class=\"iframebox\"><iframe id=\"ifrpop" + p[0] + "\" style=\"border: 0 none; height: " + p[6] + "px; width: " + (getint(p[5])) + "px;\"></iframe></div>" + "<div class=\"iframebox\" ifrnum=\""+p[0]+"\"><iframe id=\"ifrpop" + p[0] + "\" style=\"border: 0 none; height: " + (getint(p[6]) - 4) + "px; width: " + (getint(p[5])) + "px;\"></iframe></div>" +
"<div class=\"iframeclosebox\"></div></div></div>"); "<div class=\"iframeclosebox\"></div></div></div>");
//"<div class=\"iframeclosebox\"><a class=\"\" style=\"border: 1px solid #ddd; padding: 5px 15px;\" onclick=\"hide7('popbox" + p[0] + "', " + p[0] + ")\"> 7일간 숨기기</a></div></div></div>"); //"<div class=\"iframeclosebox\"><a class=\"\" style=\"border: 1px solid #ddd; padding: 5px 15px;\" onclick=\"hide7('popbox" + p[0] + "', " + p[0] + ")\"> 7일간 숨기기</a></div></div></div>");
$("#ifrpop" + p[0]).attr("src", "/Home/Popup?pno=" + p[0]); $("#ifrpop" + p[0]).attr("src", "/Home/Popup?pno=" + p[0]);

View File

@ -121,11 +121,12 @@
$.each($($("#texthide01").val().split('nptechpopuplistseparator')), function (i, p) { $.each($($("#texthide01").val().split('nptechpopuplistseparator')), function (i, p) {
var p = p.split('nptechpopupseparator'); var p = p.split('nptechpopupseparator');
if ('p@(ViewBag.POPUPXS)p'.indexOf('p' + p[0] + 'p') < 0) { if ('p@(ViewBag.POPUPXS)p'.indexOf('p' + p[0] + 'p') < 0) {
$("body").append("<div data-zindex=\"" + p[8] + "\" style=\"z-index: " + p[8] + "; left: " + p[4] + "px; top: " + p[3] + "px; width: " + (getint(p[5]) + 45) + "px; height: " + (getint(p[6]) + 105) + "px;\" class=\"draggablethis ui-widget-content popupitem\" id=\"popbox" + p[0] + "\">" + $("body").append("<div data-zindex=\"" + p[8] + "\" style=\"z-index: " + p[8] + "; left: " + p[4] + "px; top: " + p[3] + "px; width: " + (getint(p[5])) + "px; height: " + (getint(p[6])) + "px;\" class=\"draggablethis ui-widget-content popupitem\" id=\"popbox" + p[0] + "\">" +
"<div class=\"inner\"><div class=\"poptitlebox\"><span>" + p[1] + "</span>" + "<div class=\"inner\"><div class=\"poptitlebox\"><span>" + p[1] + "</span>" +
"<a class=\"closepopa\" href=\"#\" onclick=\"hidepop();$('#popbox" + p[0] + "').remove();\">x</a></div>" + "<a class=\"closepopa\" href=\"#\" onclick=\"hidepop();$('#popbox" + p[0] + "').remove();\"></a></div>" +
"<div class=\"iframebox\"><iframe id=\"ifrpop" + p[0] + "\" style=\"border: 0 none; height: " + p[6] + "px; width: " + (getint(p[5])) + "px;\"></iframe></div>" + "<div class=\"iframebox\"><iframe id=\"ifrpop" + p[0] + "\" style=\"border: 0 none; height: " + p[6] + "px; width: " + (getint(p[5])) + "px;\"></iframe></div>" +
"<div class=\"iframeclosebox\"><a class=\"\" style=\"border: 1px solid #ddd; padding: 5px 15px;\" onclick=\"hide7('popbox" + p[0] + "', " + p[0] + ")\"> 7일간 숨기기</a></div></div></div>"); "<div class=\"iframeclosebox\"></div></div></div>");
//"<div class=\"iframeclosebox\"><a class=\"\" style=\"border: 1px solid #ddd; padding: 5px 15px;\" onclick=\"hide7('popbox" + p[0] + "', " + p[0] + ")\"> 7일간 숨기기</a></div></div></div>");
$("#ifrpop" + p[0]).attr("src", "/Home/Popup?pno=" + p[0]); $("#ifrpop" + p[0]).attr("src", "/Home/Popup?pno=" + p[0]);
$("#popbox" + p[0]).show(); $("#popbox" + p[0]).show();
//$("html").css("overflow", "hidden"); //$("html").css("overflow", "hidden");

View File

@ -25,7 +25,7 @@
</form> </form>
<div class="lctQr"> <div class="lctQr">
<span class="@(Model.tabidx == 0 ? "current" : "" )" onclick="tabChange(0);" id="lblAll">신규과정</span>&nbsp;|&nbsp; <span class="@(Model.tabidx == 0 ? "current" : "" )" onclick="tabChange(0);" id="lblAll">신규과정</span>&nbsp;|&nbsp;
<span class="@(Model.tabidx == 1 ? "current" : "" )" onclick="tabChange(1);" id="lblOff">2021년 이전과정</span>&nbsp; <span class="@(Model.tabidx == 1 ? "current" : "" )" onclick="tabChange(1);" id="lblOff">이전과정</span>&nbsp;
</div> </div>
@if (Model.tabidx == 0) @if (Model.tabidx == 0)
{ {

View File

@ -129,7 +129,8 @@
</h5> </h5>
<dl> <dl>
<dt class="mpglSta@(d.intval5 == 0 && d.intval4 == 1 ? 3 : 1)">@(d.intval5 == 1 ? "환불요청" : d.intval4 == 1 ? "결제완료" : d.intval4 == 21 ? "결제대기" : d.intval4 == 22 ? "입금대기" : d.intval4 == 51 ? "심사중" : d.intval4 == 55 ? "승인대기" : "")</dt> <dt class="mpglSta@(d.intval5 == 0 && d.intval4 == 1 ? 3 : 1)">@(d.intval5 == 1 ? "환불요청" : d.intval4 == 1 ? "결제완료" : d.intval4 == 21 ? "결제대기" : d.intval4 == 22 ? "입금대기" : d.intval4 == 51 ? "심사중" : d.intval4 == 55 ? "승인대기" : "")</dt>
<dd>교육기간 : @(d.time2.Year == 2099 ? "결제완료일로부터 "+d.intval9+"일" : (d.intval3 == 1 ? d.time5.ToString("yy-MM-dd") : d.time3.ToString("yy-MM-dd"))+ " ~ "+ (d.intval3 == 1 ? d.time6.ToString("yy-MM-dd") : d.time4.ToString("yy-MM-dd")))</dd> @*<dd>교육기간 : @(d.time2.Year == 2099 ? "결제완료일로부터 "+d.intval9+"일" : (d.intval3 == 1 ? d.time5.ToString("yy-MM-dd") : d.time3.ToString("yy-MM-dd"))+ " ~ "+ (d.intval3 == 1 ? d.time6.ToString("yy-MM-dd") : d.time4.ToString("yy-MM-dd")))</dd>*@
<dd>교육기간 : @(d.time2.Year == 2099 ? "신청일부터 선택한 교육종료일까지" : (d.intval3 == 1 ? d.time5.ToString("yy-MM-dd") : d.time3.ToString("yy-MM-dd"))+ " ~ "+ (d.intval3 == 1 ? d.time6.ToString("yy-MM-dd") : d.time4.ToString("yy-MM-dd")))</dd>
</dl> </dl>
</a> </a>
</li> </li>

View File

@ -46,35 +46,38 @@
<div class="ltaList"> <div class="ltaList">
<a href="@(d.isgroup == 0 || (d.isgroup == 1 && Model.Lects.Where(w=>w.payno == d.payno && w.userno==ViewBag.SSUserNo).Count() > 0) ? string.Format("/CRoom/Index?croomlectno={0}", d.isgroup == 0 ? d.lectno : Model.Lects.Where(w=>w.payno == d.payno && w.userno==ViewBag.SSUserNo).First().lectno, d.cmno) : "#")" class="gocroom"> <a href="@(d.isgroup == 0 || (d.isgroup == 1 && Model.Lects.Where(w=>w.payno == d.payno && w.userno==ViewBag.SSUserNo).Count() > 0) ? string.Format("/CRoom/Index?croomlectno={0}", d.isgroup == 0 ? d.lectno : Model.Lects.Where(w=>w.payno == d.payno && w.userno==ViewBag.SSUserNo).First().lectno, d.cmno) : "#")" class="gocroom">
<h5> <h5>
<em>@d.tyear-@(d.tseq)기</em> @if(d.cshape == 1)
{
<em>@d.tyear-@(d.tseq)기</em>
}
<span class="nav">@d.cshapename</span> <span class="nav">@d.cshapename</span>
@Html.Raw(d.isrebate == 1 ? "<span class=\"grn\">환급</span>" : "") @Html.Raw(d.isrebate == 1 ? "<span class=\"grn\">환급</span>" : "")
<b>@d.cname (@(d.classno))</b> <b>@d.cname (@(d.classno))</b>
</h5> </h5>
<dl class="ltaDl"> <dl class="ltaDl">
<dt class="@(d.edate > DateTime.Now ? "ltaDlbk" : "ltaDlred")">@(d.edate > DateTime.Now ? "교육기간 학습중" : "종료")</dt> <dt class="@(d.edate > DateTime.Now ? "ltaDlblue" : d.edate.Value.AddYears(1) > DateTime.Now ? "ltaDlblue" : "ltaDlred")">@(d.edate > DateTime.Now ? "교육기간 학습중" : d.edate.Value.AddYears(1) > DateTime.Now ? "복습가능" : "종료")</dt>
<dt style="color:#888888"> <dt style="color:#888888">
교육기간 : @(string.Format("{0} ~ {1}", d.cshape == 1 ? d.sdate.Value.ToString("yy-MM-dd") : d.cdt.ToString("yy-MM-dd") , d.cshape == 1 ? d.edate.Value.ToString("yy-MM-dd") : d.estart.ToString("yy-MM-dd"))) 교육기간 : @(string.Format("{0} ~ {1}", d.cshape == 1 ? d.sdate.Value.ToString("yy-MM-dd") : d.cdt.ToString("yy-MM-dd") , d.edate.Value.ToString("yy-MM-dd")))
@if (false && d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01"))
{
@:| 집체교육기간 : @("[" + d.studyplacename + "] " + string.Format("{0}", d.estart.ToString("yy-MM-dd")))
}
</dt> </dt>
@if(d.cshape != 1) @if(d.cshape != 1)
{ {
<dd>복습기간 : @(d.edate.Value.AddYears(1).ToString("yy-MM-dd"))까지</dd> <dt style="color:#888888">복습기간 : @(d.edate.Value.AddYears(1).ToString("yy-MM-dd"))까지</dt>
}
@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01"))
{
<dd>@(d.scdtype == 1 ? "교육종료일" : "집체교육일") : @(string.Format("{0}", d.estart.ToString("yy-MM-dd")))</dd>
} }
</dl> </dl>
</a> </a>
@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01") && d.iscomplete != 1 && Convert.ToDateTime(d.estart) > DateTime.Now) @*@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01") && d.iscomplete != 1 && Convert.ToDateTime(d.estart) > DateTime.Now)
{ {
<dl class="ltaDl" style="display:none;"> <dl class="ltaDl" style="display:none;">
<dd> <dd>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<input type="button" value="수료일정변경" onclick="javscript:openScd(@d.cmno,@d.lectno);" /> <input type="button" value="교육일정변경" onclick="javscript:openScd(@d.cmno,@d.lectno);" />
</dd> </dd>
</dl> </dl>
} }*@
</div> </div>
</th> </th>
<td class="ltaBtn" data-th="강의실 : "> <td class="ltaBtn" data-th="강의실 : ">

View File

@ -0,0 +1,179 @@
@model NP.Model.VMMy
@{
}
<table class="lctAply">
<thead>
<tr>
<th>강좌명</th>
<td>교육일정변경</td>
</tr>
</thead>
<tbody>
@foreach (var d in Model.Lects.Where(w=>w.rno == 1))
{
<tr>
<th>
<div class="ltaList">
<h5>
@if(d.cshape == 1)
{
<em>@d.tyear-@(d.tseq)기</em>
}
<span class="nav">@d.cshapename</span>
@Html.Raw(d.isrebate == 1 ? "<span class=\"grn\">환급</span>" : "")
<b>@d.cname (@(d.classno))</b>
</h5>
<dl class="ltaDl">
<dt class="@(d.edate > DateTime.Now ? "ltaDlblue" : d.edate.Value.AddYears(1) > DateTime.Now ? "ltaDlblue" : "ltaDlred")">@(d.edate > DateTime.Now ? "교육기간 학습중" : d.edate.Value.AddYears(1) > DateTime.Now ? "복습가능" : "종료")</dt>
<dt style="color:#888888">
교육기간 : @(string.Format("{0} ~ {1}", d.cshape == 1 ? d.sdate.Value.ToString("yy-MM-dd") : d.cdt.ToString("yy-MM-dd") , d.edate.Value.ToString("yy-MM-dd")))
</dt>
@if(d.cshape != 1)
{
<dt style="color:#888888">복습기간 : @(d.edate.Value.AddYears(1).ToString("yy-MM-dd"))까지</dt>
}
@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01"))
{
<dd>@(d.scdtype == 1 ? "교육종료일" : "집체교육일") : @(string.Format("{0}", d.estart.ToString("yy-MM-dd")))</dd>
}
</dl>
</div>
</th>
<td class="ltaBtn" data-th="교육일정변경 : ">
@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01") && d.iscomplete != 1 && Convert.ToDateTime(d.estart) > DateTime.Now)
{
<dl><dd class="blu"><a href="#" onclick="javscript:openScd(@d.cmno,@d.lectno);">변경</a></dd></dl>
}
else
{
<span>-</span>
}
</td>
</tr>
}
</tbody>
</table>
@if (Model.Lects.Count() < 1)
{
<div style="text-align: center; padding: 20px;">- 수강중인 강좌가 없습니다.</div>
}
<form id="mform" method="post" action="">
@Html.HiddenFor(m => m.intval)
@Html.HiddenFor(m => m.stringval)
</form>
<div class="mpgPop" style="display: none" id="popScd">
<div>
<div>
<div class="mpgPopWrap">
<div class="mpgPopTitle">
<h5>교육일정변경</h5>
<a href="javascript:mpgPopClose();"></a>
</div>
<div class="mpgPopCont">
<ul id="ulScd"></ul>
<ul class="mpgPopBtn">
<li><a href="#" class="bk" onclick="selectScd()">선택완료</a></li>
<li><a href="#" onclick="mpgPopClose()">취소</a></li>
</ul>
</div><!-- clsPopCont -->
</div><!-- clsPopWrap -->
</div>
</div>
</div>
@section scriptsHeader{
}
@section scripts{
<script>
var vLectno;
function pc(lectno,userno) {
if (lectno < 1) {
msg('본인의 수료증만 확인할 수 있습니다.');
} else {
window.open("/My/CertPrint?lectno=" + lectno+"&intval="+userno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
}
}
function ps() {
window.open("/My/CertSet");
}
function openScd(cmno, lectno) {
vLectno = lectno
$(".mpgPop").show();
setScd(cmno);
}
function setScd(cmno) {
capp("/focommon/GetScdForMixEdu", { cmno: cmno, lectno: vLectno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
//var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.isEnd == true) {
//li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label>");
}
else {
if (d.quota != 0) {
if (d.remainPeople <= 0) {
//li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label>");
}
else {
if (d.isselected == 1) {
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label>");
} else {
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label>");
}
//if (seq == 0) {
// li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label>");
//}
//else {
// li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label>");
//}
}
}
else {
if (d.isselected == 1) {
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "</label>");
} else {
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "</label>");
}
//if (seq == 0) {
// li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "</label>");
//}
//else {
// li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "</label>");
//}
}
}
//seq++;
ulScd.append(li);
});
}
function selectScd() {
if (confirm("교육종료일을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
var lectno = vLectno;
if (cmisno == "" || cmisno == undefined || cmisno == null) {
msg("선택한 일정이 없습니다.");
return;
}
capp("/focommon/UpdateScd", { cmisno: cmisno, lectno: lectno }, "scdSave");
}
}
function scdSave() {
msg(capResult.msg);
if (capResult.code == 1) {
submit();
}
else {
return;
}
}
</script>
}

View File

@ -206,7 +206,7 @@
else if (check("brno", null, "사업자번호를 입력해주세요.")) { } else if (check("brno", null, "사업자번호를 입력해주세요.")) { }
else if (getBytes(val("brno")) != 10) { focus("brno"); msg("10자리의 사업자번호를 입력해주세요."); } else if (getBytes(val("brno")) != 10) { focus("brno"); msg("10자리의 사업자번호를 입력해주세요."); }
else if (check("asname", null, "회사명을 입력해주세요.")) { } else if (check("asname", null, "회사명을 입력해주세요.")) { }
else if (val("mphone") != "" && !istelnumber(val("mphone"))) { focus("mphone2"); msg("올바른 휴대전화번호를 입력해주세요."); } else if (val("mphone") != "" && (!istelnumber(val("mphone")) && !ismobilenumber(val("mphone")))) { focus("mphone2"); msg("올바른 휴대전화번호를 입력해주세요."); }
else if (val("taxemail") != "" && !isemail(val("taxemail"))) { focus("taxemail1"); msg("올바른 이메일주소를 입력해주세요."); } else if (val("taxemail") != "" && !isemail(val("taxemail"))) { focus("taxemail1"); msg("올바른 이메일주소를 입력해주세요."); }
else { else {
capfileform("/fcommon/assignupdate", "mform", "cbsave"); capfileform("/fcommon/assignupdate", "mform", "cbsave");

View File

@ -39,9 +39,9 @@
<td> <td>
<input type="hidden" name="userpno" id="userpno" value="@u.userpno" /> <input type="hidden" name="userpno" id="userpno" value="@u.userpno" />
<ul class="clsMail mdfy"> <ul class="clsMail mdfy">
<li><input type="text" name="userpno1" id="userpno1" maxlength="6" value="@u.userpno.Substring(0,6)" readonly="" style="background-color:#ddd;"></li> <li><input type="text" name="userpno1" id="userpno1" maxlength="6" value="@u.userpno.Substring(0,6)" readonly="readonly" style="background-color:#ddd;"></li>
<li>-</li> <li>-</li>
<li><input type="text" name="userpno2" id="userpno2" maxlength="7" value="@u.userpno.Substring(6)"></li> <li><input type="text" name="userpno2" id="userpno2" maxlength="7" value="@u.userpno.Substring(6)" readonly="readonly" style="background-color:#ddd;"></li>
</ul> </ul>
</td> </td>
</tr> </tr>

View File

@ -406,7 +406,7 @@
<li><a href="#" class="bk" onclick="save3()">환불 최종요청</a></li> <li><a href="#" class="bk" onclick="save3()">환불 최종요청</a></li>
<li><a href="#" class="bk" onclick="cancelRfd()">환불신청 취소</a></li> <li><a href="#" class="bk" onclick="cancelRfd()">환불신청 취소</a></li>
} }
@if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob != null || Model.PayRfd.fgnor != null)) @if (Model.PayRfd.rstatus == 1 && (Model.PayRfd.fgnob != null || Model.PayRfd.fgnor != null))
{ {
<li><a href="#" class="bk" onclick="cancelRfd()">환불신청 취소</a></li> <li><a href="#" class="bk" onclick="cancelRfd()">환불신청 취소</a></li>
} }

View File

@ -41,7 +41,8 @@
<dt class="@(d.pstatus == 1 && d.rfdstatus < 1 ? "ltaDlbk":"ltaDlred")">@(d.pstatus == 55 ? "승인대기" : d.pstatus == 51 ? "심사중" : d.pstatus == 21 ? "결제대기" : d.pstatus == 22 ? "입금대기" : d.pstatus == 1 && d.rfdstatus > 0 ? "환불요청" : d.pstatus == 1 ? "결제완료" : d.rstatus == 1 ? "부분환불" : d.rstatus == 2 ? "전액환불" : "-")</dt> <dt class="@(d.pstatus == 1 && d.rfdstatus < 1 ? "ltaDlbk":"ltaDlred")">@(d.pstatus == 55 ? "승인대기" : d.pstatus == 51 ? "심사중" : d.pstatus == 21 ? "결제대기" : d.pstatus == 22 ? "입금대기" : d.pstatus == 1 && d.rfdstatus > 0 ? "환불요청" : d.pstatus == 1 ? "결제완료" : d.rstatus == 1 ? "부분환불" : d.rstatus == 2 ? "전액환불" : "-")</dt>
<dd> <dd>
@*신청기간 : @(d.retime.Value.Year == 2099 ? "상시운영" : d.rstime.Value.ToString("yy/MM/dd") + " ~ " + d.retime.Value.ToString("yy/MM/dd"))*@ @*신청기간 : @(d.retime.Value.Year == 2099 ? "상시운영" : d.rstime.Value.ToString("yy/MM/dd") + " ~ " + d.retime.Value.ToString("yy/MM/dd"))*@
교육기간 : @(d.retime.Value.Year == 2099 ? "결제완료일로부터 "+d.studydays+"일" : (d.cshape != 1 ? d.cdt.ToString("yy-MM-dd") : d.sdate.Value.ToString("yy-MM-dd")) +" ~ "+ (d.cshape != 1 ? d.cmiestart != null ? d.cmiestart.Value.ToString("yy-MM-dd") : "" : d.edate.Value.ToString("yy-MM-dd"))) @*교육기간 : @(d.retime.Value.Year == 2099 ? "결제완료일로부터 "+d.studydays+"일" : (d.cshape != 1 ? d.cdt.ToString("yy-MM-dd") : d.sdate.Value.ToString("yy-MM-dd")) +" ~ "+ (d.cshape != 1 ? d.cmiestart != null ? d.cmiestart.Value.ToString("yy-MM-dd") : "" : d.edate.Value.ToString("yy-MM-dd")))*@
교육기간 : @(d.retime.Value.Year == 2099 ? "신청일부터 선택한 교육종료일까지" : (d.cshape != 1 ? d.cdt.ToString("yy-MM-dd") : d.sdate.Value.ToString("yy-MM-dd")) +" ~ "+ (d.cshape != 1 ? d.cmiestart != null ? d.cmiestart.Value.ToString("yy-MM-dd") : "" : d.edate.Value.ToString("yy-MM-dd")))
@if (false && d.cshape == 2) @if (false && d.cshape == 2)
{ {
@:| 집체교육기간 : @(d.cmisno == null ? "미정" : ("[" + d.studyplacename + "] " + string.Format("{0}", d.cmiestart.Value.ToString("yy-MM-dd")))) @:| 집체교육기간 : @(d.cmisno == null ? "미정" : ("[" + d.studyplacename + "] " + string.Format("{0}", d.cmiestart.Value.ToString("yy-MM-dd"))))

View File

@ -19,7 +19,7 @@
<ul id="ulm1"> <ul id="ulm1">
@if (ViewBag.SSUserNo == 0) @if (ViewBag.SSUserNo == 0)
{ {
foreach (var m1 in menus.Where(w => w.pdepth == 1 && !(w.refcode ?? "").Contains("menu.authmenu"))) foreach (var m1 in menus.Where(w => w.pdepth == 1 && w.isopen < 6 && !(w.refcode ?? "").Contains("menu.authmenu")))
{ {
var mp = m1.pagetype == 0 ? menus.Where(w => w.pagetype > 0 && (w.m1 == m1.pno || w.m2 == m1.pno || w.m3 == m1.pno || w.m4 == m1.pno)).FirstOrDefault() ?? new NP.Model.MenuPage() { } : m1; var mp = m1.pagetype == 0 ? menus.Where(w => w.pagetype > 0 && (w.m1 == m1.pno || w.m2 == m1.pno || w.m3 == m1.pno || w.m4 == m1.pno)).FirstOrDefault() ?? new NP.Model.MenuPage() { } : m1;
<li data-ppno="@m1.m0" class="m@(m1.m0) @(((NP.Model.MenuPage)ViewBag.MenuPage).m0 == m1.m0 ? "" : "hidden") @(((NP.Model.MenuPage)ViewBag.MenuPage).m1 == m1.pno ? "current" : "")"><a onclick="gomenu(@mp.pno, @mp.pagetype, '@(mp.pageurl ?? "")', this)" href="#" data-refcode="@(m1.refcode ?? "")">@m1.pagename</a></li> <li data-ppno="@m1.m0" class="m@(m1.m0) @(((NP.Model.MenuPage)ViewBag.MenuPage).m0 == m1.m0 ? "" : "hidden") @(((NP.Model.MenuPage)ViewBag.MenuPage).m1 == m1.pno ? "current" : "")"><a onclick="gomenu(@mp.pno, @mp.pagetype, '@(mp.pageurl ?? "")', this)" href="#" data-refcode="@(m1.refcode ?? "")">@m1.pagename</a></li>
@ -27,7 +27,7 @@
} }
else else
{ {
foreach (var m1 in menus.Where(w => w.pdepth == 1 && !(w.refcode ?? "").Contains("menu.offmenu"))) foreach (var m1 in menus.Where(w => w.pdepth == 1 && w.isopen < 6 && !(w.refcode ?? "").Contains("menu.offmenu")))
{ {
var mp = m1.pagetype == 0 ? menus.Where(w => w.pagetype > 0 && (w.m1 == m1.pno || w.m2 == m1.pno || w.m3 == m1.pno || w.m4 == m1.pno)).FirstOrDefault() ?? new NP.Model.MenuPage() { } : m1; var mp = m1.pagetype == 0 ? menus.Where(w => w.pagetype > 0 && (w.m1 == m1.pno || w.m2 == m1.pno || w.m3 == m1.pno || w.m4 == m1.pno)).FirstOrDefault() ?? new NP.Model.MenuPage() { } : m1;
<li data-ppno="@m1.m0" class="m@(m1.m0) @(((NP.Model.MenuPage)ViewBag.MenuPage).m0 == m1.m0 ? "" : "hidden") @(((NP.Model.MenuPage)ViewBag.menupage).m1 == m1.pno ? "current" : "")"><a onclick="gomenu(@mp.pno, @mp.pagetype, '@(mp.pageurl ?? "")', this)" href="#" data-refcode="@(m1.refcode ?? "")">@m1.pagename</a></li> <li data-ppno="@m1.m0" class="m@(m1.m0) @(((NP.Model.MenuPage)ViewBag.MenuPage).m0 == m1.m0 ? "" : "hidden") @(((NP.Model.MenuPage)ViewBag.menupage).m1 == m1.pno ? "current" : "")"><a onclick="gomenu(@mp.pno, @mp.pagetype, '@(mp.pageurl ?? "")', this)" href="#" data-refcode="@(m1.refcode ?? "")">@m1.pagename</a></li>

View File

@ -29,7 +29,7 @@
<div id="lctmbBtn"><span class="slice1"></span><span class="slice2"></span><span class="slice3"></span></div> <div id="lctmbBtn"><span class="slice1"></span><span class="slice2"></span><span class="slice3"></span></div>
<a href="#" onclick="outcroom(false)" id="lctMypg">마이페이지</a> <a href="#" onclick="outcroom(false)" id="lctMypg">마이페이지</a>
<div id="lctInfo"> <div id="lctInfo">
<h3><a href="/CRoom/Index?@ViewBag.croomparam"><span class="hidepc">@(ViewBag.maintyear)-@(ViewBag.maintseq)기 [ @ViewBag.maincgname ]</span> @ViewBag.maincname (@(ViewBag.mainclassno)반)</a></h3> <h3><a href="/CRoom/Index?@ViewBag.croomparam"><span class="hidepc">@(ViewBag.maincshape != 1 ? "" : ViewBag.maintyear+"-"+ ViewBag.maintseq+"기") [ @ViewBag.maincgname ]</span> @ViewBag.maincname (@(ViewBag.mainclassno)반)</a></h3>
<a href="#" onclick="outcroom(false)">나가기</a> <a href="#" onclick="outcroom(false)">나가기</a>
</div> </div>
</div> </div>
@ -64,7 +64,7 @@
<dd><a href="#" onclick="$('#lctWrap').stop().animate({scrollTop : 0}, 1000)">up</a></dd> <dd><a href="#" onclick="$('#lctWrap').stop().animate({scrollTop : 0}, 1000)">up</a></dd>
<dd><a href="#" onclick="$('#lctWrap').stop().animate({scrollTop: 10000}, 3000);">down</a></dd> <dd><a href="#" onclick="$('#lctWrap').stop().animate({scrollTop: 10000}, 3000);">down</a></dd>
</dl> </dl>
<span id="lctmBtn">On/lct</span> @*<span id="lctmBtn">On/lct</span>*@
</div><!-- lctMenu --> </div><!-- lctMenu -->
</div> </div>
<div id="lctWrap"> <div id="lctWrap">

View File

@ -55,7 +55,7 @@
<dd><a href="#" onclick="$('html, body').stop().animate({scrollTop : 0}, 1000)">up</a></dd> <dd><a href="#" onclick="$('html, body').stop().animate({scrollTop : 0}, 1000)">up</a></dd>
<dd><a href="#" onclick="$('html, body').stop().animate({scrollTop: 10000}, 3000);">down</a></dd> <dd><a href="#" onclick="$('html, body').stop().animate({scrollTop: 10000}, 3000);">down</a></dd>
</dl> </dl>
<span id="lctmBtn">On/lct</span> @*<span id="lctmBtn">On/lct</span>*@
</div> </div>
</div> </div>
<div id="mpgWrap"> <div id="mpgWrap">

View File

@ -45,7 +45,7 @@
<dd><a href="#" onclick="$('html, body').stop().animate({scrollTop : 0}, 1000)">up</a></dd> <dd><a href="#" onclick="$('html, body').stop().animate({scrollTop : 0}, 1000)">up</a></dd>
<dd><a href="#" onclick="$('html, body').stop().animate({scrollTop: 10000}, 3000);">down</a></dd> <dd><a href="#" onclick="$('html, body').stop().animate({scrollTop: 10000}, 3000);">down</a></dd>
</dl> </dl>
<span id="lctmBtn">On/lct</span> @*<span id="lctmBtn">On/lct</span>*@
</div> </div>
</div> </div>
<div id="mpgWrap"> <div id="mpgWrap">

View File

@ -1,10 +1,11 @@
@charset "utf-8"; @charset "utf-8";
.popupitem{position: absolute; display: none; border-radius: 10px; text-align: center; padding: 8px 8px; background-color: #fff; border: 1px solid #ddd;} .popupitem{position: absolute; display: none; border-radius: 10px; text-align: center; background-color: #fff;}
.popupitem .inner{padding: 5px 10px; background-color: #fff; border-radius: 10px; } .popupitem .inner{background-color: #fff; border-radius: 10px; }
.popupitem .inner .poptitlebox{height: 30px; line-height: 30px; cursor: pointer;} .popupitem .inner .poptitlebox{height: 30px; line-height: 30px; cursor: pointer;}
.popupitem .inner .poptitlebox span{display: block; margin-right: 50px; overflow: hidden; white-space: nowrap; text-align: left; text-overflow: ellipsis;} .popupitem .inner .poptitlebox span{display: block;margin-right: 50px;overflow: hidden;white-space: nowrap;text-align: left;text-overflow: ellipsis; margin-left:10px}
.closepopa{float: right; margin-top: -25px; font-size: 20px; padding: 5px 10px;} .closepopa{font-size: 20px;padding: 5px 10px;position:absolute;top: 0px;right: 0px;line-height: 20px;color: #666666 !important;}
.iframeclosebox{height: 30px; line-height: 30px; font-weight: bold; text-align: right;} .closepopa:hover {color: #fff !important; background-color: #e81123; border-top-right-radius: 10px;}
.iframeclosebox{height: 30px; line-height: 30px; font-weight: bold; text-align: right; display:none;}
.req:before{color:#666;content:'*'} .req:before{color:#666;content:'*'}
/*.req:after{color: red;content:'*'}*/ /*.req:after{color: red;content:'*'}*/
@media (max-width:1000px) { @media (max-width:1000px) {

View File

@ -1,5 +1,5 @@
$(window).on("keydown", function (e) { $(window).on("keydown", function (e) {
if (e.keyCode == 116 || e.keyCode == 123) { if (e.keyCode == 116 /*|| e.keyCode == 123*/) {
prv(); return false; prv(); return false;
} }
if (e.keyCode == 119 && typeof (save) == "function" && $("#layermessage:visible").length < 1) { if (e.keyCode == 119 && typeof (save) == "function" && $("#layermessage:visible").length < 1) {

View File

@ -23,6 +23,7 @@ namespace NP.Model
} }
public Int64 fileno { get; set; } public Int64 fileno { get; set; }
public Int64 fileno2 { get; set; } public Int64 fileno2 { get; set; }
public Int64 fileno3 { get; set; }
public Int64 filesize { get; set; } public Int64 filesize { get; set; }
public String filesizename public String filesizename
{ {
@ -34,8 +35,10 @@ namespace NP.Model
public DateTime filecdt { get; set; } public DateTime filecdt { get; set; }
public String fileurl { get; set; } public String fileurl { get; set; }
public String fileurl2 { get; set; } public String fileurl2 { get; set; }
public String fileurl3 { get; set; }
public String orgname { get; set; } public String orgname { get; set; }
public String orgname2 { get; set; } public String orgname2 { get; set; }
public String orgname3 { get; set; }
public bool isfileext public bool isfileext
{ {
get get
@ -128,6 +131,8 @@ namespace NP.Model
/// </summary> /// </summary>
public String udtymdwd{get{return this.udt.ToString("yyyy-MM-dd(ddd)", System.Globalization.CultureInfo.CreateSpecificCulture("ko-KR"));}} public String udtymdwd{get{return this.udt.ToString("yyyy-MM-dd(ddd)", System.Globalization.CultureInfo.CreateSpecificCulture("ko-KR"));}}
public Int64 uno { get; set; } public Int64 uno { get; set; }
public String unoname { get; set; }
public String unoid { get; set; }
public String uip { get; set; } public String uip { get; set; }
public int pagetotalcount { get; set; } public int pagetotalcount { get; set; }
public Int32 rno { get; set; } public Int32 rno { get; set; }

View File

@ -553,10 +553,38 @@ namespace NP.Model
/// 시작시간 오프라인전용, 0011 0시11분 /// 시작시간 오프라인전용, 0011 0시11분
/// </summary> /// </summary>
public String ist {get;set;} public String ist {get;set;}
public String isthh
{
get
{
return String.IsNullOrEmpty(ist) ? null : ist.Length > 2 ? ist.Substring(0, 2) : null;
}
}
public String istmm
{
get
{
return String.IsNullOrEmpty(ist) ? null : ist.Length > 4 ? ist.Substring(0, 2) : null;
}
}
/// <summary> /// <summary>
/// 종료시간 오프라인전용, 0930 9시30분 /// 종료시간 오프라인전용, 0930 9시30분
/// </summary> /// </summary>
public String iet {get;set;} public String iet {get;set;}
public String iethh
{
get
{
return String.IsNullOrEmpty(iet) ? null : iet.Length > 2 ? iet.Substring(0, 2) : null;
}
}
public String ietmm
{
get
{
return String.IsNullOrEmpty(iet) ? null : iet.Length > 4 ? iet.Substring(2, 2) : null;
}
}
public Int64? fgnotf { get; set; } public Int64? fgnotf { get; set; }
/// <summary> /// <summary>
/// fkcminningct 강의콘텐츠 ct.ctno /// fkcminningct 강의콘텐츠 ct.ctno
@ -592,12 +620,16 @@ namespace NP.Model
/// <summary> /// <summary>
/// fkcminningu 강사 users.userno cmprofessor /// fkcminningu 강사 users.userno cmprofessor
/// </summary> /// </summary>
public int userno {get;set;} public int? userno {get;set;}
public String username { get; set; } public String username { get; set; }
/// <summary> /// <summary>
/// fkcminningfg 오프라인출결근거자료 filegroup.fgno /// fkcminningfg 오프라인출결근거자료 filegroup.fgno
/// </summary> /// </summary>
public Int64? fgno {get;set;} public Int64? fgno {get;set;}
/// <summary>
/// fkcminningscdfg 집체교육출결근거자료 filegroup.fgnoaff
/// </summary>
public Int64? fgnooff {get;set;}
public IList<CMInning> Ds { get; set; } public IList<CMInning> Ds { get; set; }
/// <summary> /// <summary>
@ -639,6 +671,13 @@ namespace NP.Model
return idate.ToString("yyyy-MM-dd"); return idate.ToString("yyyy-MM-dd");
} }
} }
public String idateymd2
{
get
{
return idate.ToString("yy-MM-dd");
}
}
/// <summary> /// <summary>
/// 강의유형 0: 온라인, 1: 오프라인, 2: 혼합(온+오프) /// 강의유형 0: 온라인, 1: 오프라인, 2: 혼합(온+오프)
/// </summary> /// </summary>
@ -675,6 +714,18 @@ namespace NP.Model
public int isoversize { get; set; } public int isoversize { get; set; }
public int ismenu { get; set; } public int ismenu { get; set; }
public int mtime { get; set; } public int mtime { get; set; }
public int isscd { get; set; }
/// <summary>
/// 0:교육장;1:온라인대체;
/// </summary>
public int? scdtype { get; set; }
public String scdtypename
{
get
{
return scdtype == null ? "-" : scdtype == 0 ? "교육장" : "온라인대체";
}
}
} }
/// <summary> /// <summary>
@ -1049,15 +1100,29 @@ namespace NP.Model
public DateTime? stime { get; set; } public DateTime? stime { get; set; }
public DateTime? etime { get; set; } public DateTime? etime { get; set; }
public DateTime? sdate { get; set; } public DateTime? sdate { get; set; }
public DateTime? edate { get; set; }
public String sdateymd public String sdateymd
{ {
get { return sdate != null ? Convert.ToDateTime(sdate).ToShortDateString() : null; } get { return sdate != null ? Convert.ToDateTime(sdate).ToShortDateString() : null; }
} }
public String sdatestr
{
get
{
return cshape == 0 && isrebate == 0 ? payoktime.ToShortDateString() : sdate != null ? Convert.ToDateTime(sdate).ToShortDateString() : null;
}
}
public DateTime? edate { get; set; }
public String edateymd public String edateymd
{ {
get { return edate != null ? Convert.ToDateTime(edate).ToShortDateString() : null; } get { return edate != null ? Convert.ToDateTime(edate).ToShortDateString() : null; }
} }
public String edatestr
{
get
{
return cshape == 2 && eend != null ? eend.ToShortDateString() : edate != null ? Convert.ToDateTime(edate).ToShortDateString() : null;
}
}
public String sip { get; set; } public String sip { get; set; }
public String eip { get; set; } public String eip { get; set; }
public int ispaied { get; set; } public int ispaied { get; set; }
@ -1226,6 +1291,75 @@ namespace NP.Model
/// </summary> /// </summary>
public int statecode { get; set; } public int statecode { get; set; }
public DateTime paycdt { get; set; } public DateTime paycdt { get; set; }
public int sseq { get; set; }
public String sseqname
{
get
{
return cshape == 2 ? sseq.ToString() : "-";
}
}
public int? istatus { get; set; }
public String istatusname
{
get
{
return istatus == null ? "미입력" : istatus == 2 ? "출석" : istatus == 0 ? "결석" : "입실";
}
}
public int? scdtype { get; set; }
public int isoffabs { get; set; }
public String ex0point
{
get
{
return ex0cnt < 1 ? "-" : ex0lectcnt < 1 && ex0cnt > 0 ? "미제출" : ex0lectpoint.ToString();
}
}
public String ex1point
{
get
{
return ex1cnt < 1 ? "-" : ex1lectcnt < 1 && ex1cnt < 0 ? "미제출" : ex1lectpoint.ToString();
}
}
public String sd0point
{
get
{
return sd0cnt < 1 ? "-" : sd0lectcnt < 1 && sd0cnt > 0 ? "미제출" : sd0lectpoint.ToString();
}
}
public String sd1point
{
get
{
return sd1cnt < 1 ? "-" : sd1lectcnt < 1 && sd1cnt > 0 ? "미제출" : sd1lectpoint.ToString();
}
}
public String rs0point
{
get
{
return rs0lectcnt + " / " + rs0cnt;
}
}
public String tpointstr
{
get
{
return ((apoint + mpoint + fpoint + spoint + dpoint)).ToString();
}
}
public String isoffabsstr
{
get
{
return isoffabs == 1 ? istatusname : "-";
}
}
public int? cmino { get; set; }
} }
/// <summary> /// <summary>
/// 자격검정시험 /// 자격검정시험
@ -1334,6 +1468,7 @@ namespace NP.Model
public String pcgname { get; set; } public String pcgname { get; set; }
public String cgname { get; set; } public String cgname { get; set; }
public String gradename { get; set; } public String gradename { get; set; }
} }
@ -1643,6 +1778,8 @@ namespace NP.Model
return rtn == "" ? "" : rtn.Substring(2); return rtn == "" ? "" : rtn.Substring(2);
} }
} }
public int scdtype { get; set; }
public int cshape { get; set; }
} }
@ -2082,6 +2219,11 @@ namespace NP.Model
public int selectcount { get; set; } public int selectcount { get; set; }
public int countselect { get; set; } public int countselect { get; set; }
public int avgselect { get; set; } public int avgselect { get; set; }
public int? iscorrect { get; set; }
public int? eqno { get; set; }
public String atext { get; set; }
public int isignorecase { get; set; }
public int ispassspace { get; set; }
} }
/// <summary> /// <summary>
@ -3096,7 +3238,7 @@ namespace NP.Model
/// <summary> /// <summary>
/// fklectexlect 수강키 lect.lectno /// fklectexlect 수강키 lect.lectno
/// </summary> /// </summary>
public Int64 lectno {get;set;} public Int64 lectno { get; set; }
/// <summary> /// <summary>
/// fklectexcmex 과정시험키 cmex.exno /// fklectexcmex 과정시험키 cmex.exno
/// </summary> /// </summary>
@ -3104,7 +3246,7 @@ namespace NP.Model
/// <summary> /// <summary>
/// 응시시작 /// 응시시작
/// </summary> /// </summary>
public DateTime? estart {get;set;} public DateTime? estart { get; set; }
public String estartymdhm public String estartymdhm
{ {
get get
@ -3115,7 +3257,7 @@ namespace NP.Model
/// <summary> /// <summary>
/// 응시종료 /// 응시종료
/// </summary> /// </summary>
public DateTime? eend {get;set;} public DateTime? eend { get; set; }
public String eendymdhm public String eendymdhm
{ {
get get
@ -3137,19 +3279,19 @@ namespace NP.Model
/// <summary> /// <summary>
/// 제출횟수 /// 제출횟수
/// </summary> /// </summary>
public int recount {get;set;} public int recount { get; set; }
/// <summary> /// <summary>
/// 재채점시간 /// 재채점시간
/// </summary> /// </summary>
public DateTime? rechecktime {get;set;} public DateTime? rechecktime { get; set; }
/// <summary> /// <summary>
/// cmex.relaylimit연계 이어보기필터, 접근기준 /// cmex.relaylimit연계 이어보기필터, 접근기준
/// </summary> /// </summary>
public int entercount {get;set;} public int entercount { get; set; }
/// <summary> /// <summary>
/// 이어보기 포커스용 /// 이어보기 포커스용
/// </summary> /// </summary>
public int cblock {get;set;} public int cblock { get; set; }
public int userno { get; set; } public int userno { get; set; }
/// <summary> /// <summary>
/// 환급신청여부 환급강좌 기준 /// 환급신청여부 환급강좌 기준
@ -3194,6 +3336,13 @@ namespace NP.Model
public IList<LectEXQ> UED { get; set; } public IList<LectEXQ> UED { get; set; }
public int issubmit { get; set; } public int issubmit { get; set; }
public int? iscomplete { get; set; } public int? iscomplete { get; set; }
public String iscompletename
{
get
{
return iscomplete == 1 ? "수료" : iscomplete == 0 ? "미수료" : "-";
}
}
/// <summary> /// <summary>
/// 온라인강좌 수강시작일 /// 온라인강좌 수강시작일
/// </summary> /// </summary>
@ -3202,6 +3351,85 @@ namespace NP.Model
/// 온라인강좌 수강종료일 /// 온라인강좌 수강종료일
/// </summary> /// </summary>
public DateTime? edate { get; set; } public DateTime? edate { get; set; }
public int cshape { get; set; }
/// <summary>
/// 교육일정시작일
/// </summary>
public DateTime lestart { get; set; }
/// <summary>
/// 교육일정종료일
/// </summary>
public DateTime leend { get; set; }
public int sseq { get; set; }
public String studyplacename{get; set;}
public String cname { get; set; }
public DateTime payoktime { get; set; }
public Int64 cmisno { get; set; }
public String leststr
{
get
{
return (cshape == 0 && isrebate == 0 ? payoktime : sdate).Value.ToShortDateString();
}
}
public String leestr
{
get
{
if (cshape == 2)
{
if (lestart != null && lestart > Convert.ToDateTime("1900-01-01") && lestart.ToShortDateString() != "0001-01-01" && lestart >= DateTime.Now)
{
return "<td class=\"link text-center\"><a href=\"#\" onclick=\"javascript: openScd(" + cmno + "," + lectno + "," + cmisno + ");\">" + leend.ToShortDateString() + "</a></td>";
}
else
{
return "<td>" + leend.ToShortDateString() + "</td>";
}
}
else
{
if (edate != null)
{
return "<td>" + edate.Value.ToShortDateString() + "</td>";
}
else
{
return "<td>-</td>";
}
}
}
}
public int usertype { get; set; }
public String scomplete
{
get
{
if (iscomplete == 1)
{
return "<td class=\"link text-center\"><a href=\"#\" onclick=\"viewcert(" + lectno + ")\">수료</td>";
}
else
{
return "<td class=\"\">" + iscompletename + "</td>";
}
}
}
public String scomplete96
{
get
{
if (iscomplete == 1)
{
return "<td class=\"link text-center\">수료</td>";
}
else
{
return "<td class=\"\">" + iscompletename + "</td>";
}
}
}
public int ispass { get; set; }
} }
[Serializable] [Serializable]
public class LectEXQ : LectEX public class LectEXQ : LectEX
@ -3406,6 +3634,92 @@ namespace NP.Model
/// 온라인강좌 수강종료일 /// 온라인강좌 수강종료일
/// </summary> /// </summary>
public DateTime? edate { get; set; } public DateTime? edate { get; set; }
public int cshape { get; set; }
public int sseq { get; set; }
public String studyplacename { get; set; }
public String cname { get; set; }
public DateTime payoktime { get; set; }
/// <summary>
/// 교육일정시작일
/// </summary>
public DateTime lestart { get; set; }
/// <summary>
/// 교육일정종료일
/// </summary>
public DateTime leend { get; set; }
public Int64 cmisno { get; set; }
public int? iscomplete { get; set; }
public String iscompletename
{
get
{
return iscomplete == 1 ? "수료" : iscomplete == 0 ? "미수료" : "-";
}
}
public String leststr
{
get
{
return (cshape == 0 && isrebate == 0 ? payoktime : sdate).Value.ToShortDateString();
}
}
public String leestr
{
get
{
if(cshape == 2)
{
if(lestart != null && lestart > Convert.ToDateTime("1900-01-01") && lestart.ToShortDateString() != "0001-01-01" && lestart >= DateTime.Now)
{
return "<td class=\"link text-center\"><a href=\"#\" onclick=\"javascript: openScd(" + cmno + "," + lectno + "," + cmisno + ");\">" + leend.ToShortDateString() + "</a></td>";
}
else
{
return "<td>" + leend.ToShortDateString() + "</td>";
}
}
else
{
if(edate != null)
{
return "<td>" + edate.Value.ToShortDateString() + "</td>";
}
else
{
return "<td>-</td>";
}
}
}
}
public int usertype { get; set; }
public String scomplete
{
get
{
if(iscomplete == 1)
{
return "<td class=\"link text-center\"><a href=\"#\" onclick=\"viewcert("+lectno+")\">수료</td>";
}
else
{
return "<td class=\"\">" + iscompletename + "</td>";
}
}
}
public String scomplete96
{
get
{
if (iscomplete == 1)
{
return "<td class=\"link text-center\">수료</td>";
}
else
{
return "<td class=\"\">" + iscompletename + "</td>";
}
}
}
} }
/// <summary> /// <summary>
/// 토론글 /// 토론글
@ -3488,10 +3802,20 @@ namespace NP.Model
public DateTime eend { get; set; } public DateTime eend { get; set; }
public string eend2 { get; set; } public string eend2 { get; set; }
/// <summary> /// <summary>
/// 0:오프라인,1:온라인대체
/// </summary>
public int? scdtype { get; set; }
/// <summary>
/// 제한인원 /// 제한인원
/// </summary> /// </summary>
public int quota { get; set; } public int quota { get; set; }
public String quotastr
{
get
{
return scdtype == 1 ? "-" : quota.ToString();
}
}
/// <summary> /// <summary>
/// 순서 /// 순서
/// </summary> /// </summary>
@ -3523,6 +3847,7 @@ namespace NP.Model
public int? termend { get; set; } public int? termend { get; set; }
public int? peopleend { get; set; } public int? peopleend { get; set; }
public int? isselected { get; set; } public int? isselected { get; set; }
public int sseq { get; set; }
} }
/// <summary> /// <summary>

View File

@ -71,5 +71,16 @@ namespace NP.Model
/// 계산서날짜 /// 계산서날짜
/// </summary> /// </summary>
public DateTime? taxdatereq { get; set; } public DateTime? taxdatereq { get; set; }
/// <summary>
/// 집체교육종료일
/// </summary>
public DateTime? eend { get; set; }
public String eendymd
{
get
{
return eend == null ? "" : eend.Value.ToString("yyyy-MM-dd");
}
}
} }
} }

View File

@ -574,6 +574,18 @@ namespace NP.Model
/// </summary> /// </summary>
public int studydays { get; set; } public int studydays { get; set; }
public DateTime? estart { get; set; } public DateTime? estart { get; set; }
public String tgname { get; set; }
public String tename { get; set; }
/// <summary>
/// 수료여부
/// </summary>
public int? iscomplete { get; set; }
public String completename {
get
{
return iscomplete == null ? "미수료" : iscomplete == 0 ? "미수료" : "수료";
}
}
} }
/// <summary> /// <summary>

View File

@ -35,5 +35,6 @@ namespace NP.Model
public IList<LectSD> LectSDs { get; set; } public IList<LectSD> LectSDs { get; set; }
public EmailSend EmailSend { get; set; } public EmailSend EmailSend { get; set; }
public IList<EmailSend> EmailBans { get; set; } public IList<EmailSend> EmailBans { get; set; }
public IList<CMinningscd> CMinningscds { get; set; }
} }
} }