From ad2031a0ce01f349eb2a1b9d7e6068f77127811d Mon Sep 17 00:00:00 2001 From: kdh0120 Date: Wed, 3 Nov 2021 06:19:08 +0000 Subject: [PATCH] --- BO/BO.csproj | 6 + BO/Controllers/cmController.cs | 4 +- BO/Controllers/croomController.cs | 105 ++++- BO/Views/cm/cmregeduschedule.cshtml | 132 ++++--- BO/Views/cm/cmregest.cshtml | 19 +- BO/Views/cm/cmreginning.cshtml | 3 +- BO/Views/cm/cmregsd.cshtml | 3 +- BO/Views/croom/attscds.cshtml | 269 +++++++++++++ BO/Views/croom/cmlects.cshtml | 2 +- BO/Views/croom/grade.cshtml | 2 +- BO/Views/croom/grade0.cshtml | 309 +++++++++++++-- BO/Views/croom/grade1.cshtml | 2 +- BO/Views/croom/grade2.cshtml | 92 ++++- BO/Views/croom/gradeall.cshtml | 134 +++++++ BO/Views/croom/gradeall0.cshtml | 437 +++++++++++++++++++++ BO/Views/croom/gradeall2.cshtml | 446 ++++++++++++++++++++++ BO/Views/croom/gradeall4.cshtml | 408 ++++++++++++++++++++ BO/Views/croom/refundview.cshtml | 23 +- BO/Views/user/asr.cshtml | 4 +- BO/Views/user/ur.cshtml | 2 +- BO/Web.config | 2 +- BO/css/dev.css | 2 +- BO/libman.json | 5 + Base/Controller/ACommonCM.cs | 7 + Base/Controller/ACommonCRoom.cs | 96 ++++- Base/Controller/BaseController.cs | 1 + Base/Controller/FCommonCRoom.cs | 3 +- Base/Controller/FOCommon.cs | 2 +- Dao/DB/DB1.Scheme.txt | 17 +- Dao/DB/DB1.SchemeFK.txt | 3 + Dao/MyBatis/Maps/Attend.xml | 48 ++- Dao/MyBatis/Maps/CM.xml | 127 ++++-- Dao/MyBatis/Maps/CRoom.xml | 46 ++- Dao/MyBatis/Maps/Common.xml | 8 +- Dao/MyBatis/Maps/Grade.xml | 97 +++-- Dao/MyBatis/Maps/Lect.xml | 258 +++++++++++-- Dao/MyBatis/Maps/Pay.xml | 165 ++++++-- FO/Controllers/CRoomController.cs | 2 +- FO/Controllers/FOBaseController.cs | 2 +- FO/Controllers/MyController.cs | 5 + FO/FO.csproj | 1 + FO/Views/Board/List.cshtml | 2 +- FO/Views/CRoom/Estimation.cshtml | 8 +- FO/Views/CRoom/EstimationExam.cshtml | 18 +- FO/Views/CRoom/Index.cshtml | 30 +- FO/Views/CRoom/Innings.cshtml | 4 +- FO/Views/Course/ApplyAgree.cshtml | 25 +- FO/Views/Course/ApplyComplete.cshtml | 48 +-- FO/Views/Course/ApplyEdu.cshtml | 50 ++- FO/Views/Course/ApplyPay.cshtml | 12 +- FO/Views/Course/SmartSearch.cshtml | 20 +- FO/Views/Home/Index.cshtml | 11 +- FO/Views/Home/IndexSample.cshtml | 7 +- FO/Views/My/Document.cshtml | 2 +- FO/Views/My/Index.cshtml | 3 +- FO/Views/My/Lecture.cshtml | 25 +- FO/Views/My/LectureOn.cshtml | 179 +++++++++ FO/Views/My/MyAssInfo.cshtml | 2 +- FO/Views/My/MyInfoCheck.cshtml | 4 +- FO/Views/My/PayInfo.cshtml | 2 +- FO/Views/My/Ready.cshtml | 3 +- FO/Views/Shared/Partial/Breadcrumb.cshtml | 4 +- FO/Views/Shared/_LayoutCRoom.cshtml | 4 +- FO/Views/Shared/_LayoutMy.cshtml | 2 +- FO/Views/Shared/_LayoutMyAssign.cshtml | 2 +- FO/css/dev.css | 11 +- FO/js/site.js | 2 +- Model/BaseModel.cs | 5 + Model/CM.cs | 345 ++++++++++++++++- Model/PPLog.cs | 11 + Model/Pay.cs | 12 + Model/VMLect.cs | 1 + 72 files changed, 3748 insertions(+), 405 deletions(-) create mode 100644 BO/Views/croom/attscds.cshtml create mode 100644 BO/Views/croom/gradeall.cshtml create mode 100644 BO/Views/croom/gradeall0.cshtml create mode 100644 BO/Views/croom/gradeall2.cshtml create mode 100644 BO/Views/croom/gradeall4.cshtml create mode 100644 BO/libman.json create mode 100644 FO/Views/My/LectureOn.cshtml diff --git a/BO/BO.csproj b/BO/BO.csproj index 13cf835..91cfad4 100644 --- a/BO/BO.csproj +++ b/BO/BO.csproj @@ -495,6 +495,7 @@ + @@ -685,6 +686,11 @@ + + + + + diff --git a/BO/Controllers/cmController.cs b/BO/Controllers/cmController.cs index 86b75b3..125b150 100644 --- a/BO/Controllers/cmController.cs +++ b/BO/Controllers/cmController.cs @@ -165,7 +165,7 @@ namespace NP.BO.Controllers { return Redirect("/"); } - vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }); + vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno },{"isscd",0 } }); vm.CMPRs = Dao.Get("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }); vm.CMs = Dao.Get("cm.cms", new System.Collections.Hashtable() { { "ismaster",1 },{ "cshapes", "0,2"},{ "orderby","a.cname"} }); ViewBag.fronturl = GetConfig("fronturl"); @@ -260,7 +260,7 @@ namespace NP.BO.Controllers { return Redirect("/"); } - vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 } }); + vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",1 } }); vm.CMInningscds = new List() { }; if (vm.CMInnings.Count > 0) { diff --git a/BO/Controllers/croomController.cs b/BO/Controllers/croomController.cs index a1e0992..76cb052 100644 --- a/BO/Controllers/croomController.cs +++ b/BO/Controllers/croomController.cs @@ -7,6 +7,7 @@ using NP.Model; using NP.Base.Popbill; using Popbill.Taxinvoice; using System.Collections; +using Spring.Expressions; namespace NP.BO.Controllers { @@ -485,6 +486,18 @@ namespace NP.BO.Controllers vm.pagetotalcount = GetCount(vm.LectInnings.FirstOrDefault()); 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.lectinnings.forattscd", ht); + vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); + return View(vm); + } public ActionResult grades(NP.Model.VMCM vm) { var ht = SetHash(vm, false); @@ -546,14 +559,21 @@ namespace NP.BO.Controllers { vm.CMEV = new CMEV() { }; } - vm.Lects = Dao.Get("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("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() { }; + vm.CMinningscds = new List() { }; + if(vm.CMEV.cshape ==2) + { + vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",1 } }); + vm.CMinningscds = Dao.Get("cm.cminningscds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }); + } } break; case 1: { vm.Lects = Dao.Get("lect.atts", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "status", 1 }, { "ustatus", 1 }, { "isrebate", vm.addstringval } }); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); - vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 } }); + vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",0 } }); } break; case 2: @@ -615,10 +635,79 @@ namespace NP.BO.Controllers } 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("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("lect.lectexes.all", ht); + vm.pagetotalcount = GetCount(vm.LectEXes.FirstOrDefault()); + } + break; + case 4: + { + ht.Add("sdtype", 0); + vm.LectSDs = new List() { }; + ht.Add("sdstate", vm.addstringval2); + vm.LectSDs = Dao.Get("lect.lectsds.all", ht); + vm.pagetotalcount = GetCount(vm.LectSDs.FirstOrDefault()); + } + break; + default:break; + } + return View(vm); + } + public ActionResult atts(VMLect vm) { vm.Lect = Dao.Get("lect.lects", new System.Collections.Hashtable() { { "lectno", vm.longval } }).First(); - vm.LectInningPages = Dao.Get("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno } }); + vm.LectInningPages = Dao.Get("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno },{"isscd", 0} }); vm.PageLogs = Dao.Get("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); } @@ -690,8 +779,8 @@ namespace NP.BO.Controllers payItem.cmistudyplacename = vm.ComCodes.Where(w => w.cgroup.ToString() == "studyplace" && w.ccode == payItem.cmistudyplace).FirstOrDefault()?.cname; } return ExportExcel( - 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[] { "결제번호", "신청자이름", "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","tgname","tename", "completename" }, vm.PayItems, "ProductSales_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); } @@ -740,11 +829,11 @@ namespace NP.BO.Controllers vm.PayRfds = Dao.Get("cr.payrfditems2", vm.rfdno); vm.FileList = new List() { }; vm.FileList2 = new List() { }; - 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); } - 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); } @@ -1040,7 +1129,7 @@ namespace NP.BO.Controllers ht.Add("scompletetime", vm.stringval8); ht.Add("ecompletetime", vm.stringval9); ht.Add("typegrade", vm.stringval10); - ht.Add("typeedu", vm.stringval11); + ht.Add("typeedu", vm.stringval11); vm.Completions = Dao.Get("cr.completions", ht); vm.pagetotalcount = GetCount(vm.Completions.FirstOrDefault()); diff --git a/BO/Views/cm/cmregeduschedule.cshtml b/BO/Views/cm/cmregeduschedule.cshtml index 0938746..0f8c11b 100644 --- a/BO/Views/cm/cmregeduschedule.cshtml +++ b/BO/Views/cm/cmregeduschedule.cshtml @@ -42,7 +42,7 @@ 회차 학습방식 강의주제 - 강사 + @*강사*@ 최근수정일 @@ -53,9 +53,9 @@ { @item.iseq @(item.istaste == 1 ? "(S)" : "") - @item.isonlinename + @item.scdtypename @item.ititle - @item.username + @*@item.username*@ @item.udtymd } @@ -64,7 +64,7 @@ - +
교육일정등록
@@ -72,7 +72,9 @@ 순서 - 교육일정 + 운영기수 + 교육장소 + 교육종료일 제한인원 등록인원 최근수정일 @@ -85,8 +87,10 @@ { @item.scdseq + @item.sseq + @item.studyplacename @item.estart ~ @item.eend - @item.quota + @item.quotastr @item.regmem @item.udt @@ -105,24 +109,12 @@ - - + + - - - - - - - - - + - +
강의주제@Html.TextBox("ititle", "", new { @class = "form-control", @style = "", @maxlength = "100" })학습방식@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:오프라인;1:온라인대체" },{ "checked",0}, { "name", "scdtype" } })
교안 - - -
-
강사@Html.Partial("./Partial/Select", Model.CMPRs, new ViewDataDictionary { { "special", "reg" }, { "name", "userno" }, { "selected", "" }, { "df", ":-강사선택" }, { "class", "disp-init" } })
회차(순서)@Html.TextBox("iseq", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" })@Html.TextBox("iseq", "", new {@class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" })
@@ -137,17 +129,21 @@ - - + + + + + + - + - +
교육일정 - @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;" } }) - 운영기수@Html.TextBox("sseq", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" }) 기
교육종료일 + @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;" } }) + ~ + @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;" } }) +
교육장소 @*@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 @@ }
제한인원@Html.TextBox("iquota", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "3" })@Html.TextBox("iquota", "", new { @class = "form-control disp-init int nocomma text-center", @style = "width: 80px;", @maxlength = "5" })
@@ -177,23 +173,29 @@ } @section scripts{ +} diff --git a/BO/Views/croom/cmlects.cshtml b/BO/Views/croom/cmlects.cshtml index e1faf23..4eaae82 100644 --- a/BO/Views/croom/cmlects.cshtml +++ b/BO/Views/croom/cmlects.cshtml @@ -103,7 +103,7 @@ @d.pstatusname @if (d.cshape == 2 && d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart.ToShortDateString() != "0001-01-01" && d.estart >= DateTime.Now) //혼합모드라면 { - @d.estart.ToShortDateString() + @d.estart.ToShortDateString() } else { diff --git a/BO/Views/croom/grade.cshtml b/BO/Views/croom/grade.cshtml index b210ead..8c7aba2 100644 --- a/BO/Views/croom/grade.cshtml +++ b/BO/Views/croom/grade.cshtml @@ -34,7 +34,7 @@
  • 진행평가
  • 최종평가
  • 과제
  • -
  • 토론
  • + @*
  • 토론
  • *@ } @Html.Partial("grade" + (Model.tabidx==2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model) diff --git a/BO/Views/croom/grade0.cshtml b/BO/Views/croom/grade0.cshtml index d860a60..67a44eb 100644 --- a/BO/Views/croom/grade0.cshtml +++ b/BO/Views/croom/grade0.cshtml @@ -3,7 +3,7 @@ var ev = Model.Lects.FirstOrDefault() ?? new NP.Model.Lect() { }; }
    - @if(Model.CMEV.isoffabs == 1) + @if (Model.CMEV.isoffabs == 1) { 집합교육 출석 필수강좌입니다. } @@ -12,7 +12,7 @@ - + @@ -21,8 +21,8 @@ - - + + @@ -31,8 +31,8 @@ - - + + @if (Model.CM.isrefund == 1) @@ -44,8 +44,8 @@ - - + + @@ -54,8 +54,8 @@ - - + + } @@ -63,6 +63,20 @@
    교육생 평가현황
    +
    +
    + @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()" } }) +    +    +    + @Html.Partial("./Partial/Text", Model.addstringval7, Helpers.DicText(new NP.Model.TextDic() { Name = "addstringval7", Value = Model.addstringval7, PH = "ID 또는 이름을 입력하세요.", CssClass = "ff" })) + +
    +
    @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;평가안내") @@ -72,8 +86,8 @@ 수료확인 if (!ViewBag.IsSubAdmin96) { - 강제수료처리 - 강제수료취소 + 수료처리 + 수료취소 } }     @@ -85,22 +99,28 @@
    + @if(Model.CMEV.cshape == 2) + { + + } + - + + @if(Model.CMEV.isoffabs == 1) { - + } - + - + @**@ @@ -109,10 +129,29 @@ + @if(Model.CMEV.cshape == 2) + { + + } + @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) + { + + } + else + { + + } + } + else + { + + } @if (!ViewBag.IsSubAdmin96) { @@ -124,16 +163,17 @@ - + + @* - - - *@ + + + *@ @if (Model.CMEV.isoffabs == 1) { - + } - + @if (!ViewBag.IsSubAdmin96) { @@ -142,13 +182,14 @@ { } - + @**@ }
    기준평가항목출석(%)진행평가(%)최종평가(%)과제(%)토론(%)기타(%)합계(총점)
    기준평가항목진도율진행평가(%)최종평가(%)과제(%)토론(%)기타(%)합계(총점)
    비환급@Model.CMEV.mid @Model.CMEV.final @Model.CMEV.subject@Model.CMEV.discuss@Model.CMEV.etc@Model.CMEV.discuss@Model.CMEV.etc @(Model.CMEV.attend + Model.CMEV.mid + Model.CMEV.final + Model.CMEV.subject + Model.CMEV.discuss + Model.CMEV.etc )
    @Model.CMEV.midcut @Model.CMEV.finalcut @Model.CMEV.subjectcut@Model.CMEV.discusscut@Model.CMEV.etccut@Model.CMEV.discusscut@Model.CMEV.etccut @Model.CMEV.cut
    @Model.CMEV.midrfd @Model.CMEV.finalrfd @Model.CMEV.subjectrfd@Model.CMEV.discussrfd@Model.CMEV.etcrfd@Model.CMEV.discussrfd@Model.CMEV.etcrfd @(Model.CMEV.attendrfd + Model.CMEV.midrfd + Model.CMEV.finalrfd + Model.CMEV.subjectrfd + Model.CMEV.discussrfd + Model.CMEV.etcrfd)
    @Model.CMEV.midcutrfd @Model.CMEV.finalcutrfd @Model.CMEV.subjectcutrfd@Model.CMEV.discusscutrfd@Model.CMEV.etccutrfd@Model.CMEV.discusscutrfd@Model.CMEV.etccutrfd @Model.CMEV.cutrfd
    No운영기수구분 고객사 교육생(ID) 교육시작일교육종료일 진도율 진행평가(@ev.ex0cnt) 최종평가(@ev.ex1cnt) 과제(@ev.sd0cnt)토론(@ev.sd1cnt)토론(@ev.sd1cnt)환산점수OFF출석집합교육출석여부환산점수강의평가 수료여부수료일변경수료일변경
    @d.rnorvt@d.sseq@d.isrebatename @d.asname @d.usernameid @((Model.CM.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())@d.eend.ToShortDateString()@d.edate.Value.ToShortDateString()@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString()) @(d.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString()) @(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())@( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())@( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())@((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())@((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())@((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())@((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())@((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())@((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())@((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())@(d.ispassat == 1 ? "O" : "X")@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())@(d.rs0lectcnt) / @(d.rs0cnt)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)변경변경
    + @Html.Partial("./Partial/dform", Model)
    @@ -163,6 +204,80 @@


    +
    +

    교육일정변경닫기

    +
      + +
      +
      +

      OFF출결관리닫기

      +
      + + + + + + + + + + + + + +
      회차선택 + +
      근거자료
      + +
      +
      +
      +
      + + + + + + + + + + + + + + + + +
      No고객사교육생(ID)입실퇴실미입력  출석  결석  최근수정일 {ID}
      +
      +
      +
      + 저장 +
      +

      +
      diff --git a/BO/Views/croom/grade1.cshtml b/BO/Views/croom/grade1.cshtml index 86cc567..dcb44ac 100644 --- a/BO/Views/croom/grade1.cshtml +++ b/BO/Views/croom/grade1.cshtml @@ -214,7 +214,7 @@ "" + ""); }); - } + } function changeatt(idx) { $("input.att" + idx).prop("checked", true); } diff --git a/BO/Views/croom/grade2.cshtml b/BO/Views/croom/grade2.cshtml index 9379d0d..4bb49f1 100644 --- a/BO/Views/croom/grade2.cshtml +++ b/BO/Views/croom/grade2.cshtml @@ -1,4 +1,7 @@ @model NP.Model.VMLect +@{ + int idx = 1; +}
      @if (Model.CMEXes.Count() < 1) { @@ -50,12 +53,13 @@ else 응시상태 총점 관리 + 응시기록 @foreach (var d in Model.LectEXes) { - + @d.rnorvt @d.isrebatename @@ -65,13 +69,16 @@ else @d.eseterm @d.eip @d.estatename - @d.tpoint + @d.tpoint @if (d.estart != null) { - 재응시 + 재응시 } + + 조회 + } @@ -113,7 +120,27 @@ else

       
      + ◀이전 + 다음▶ + 닫기 + + +
      +

      응시기록확인닫기

      + + + + + + + + + + + + + +
      No응시일자제출일자경과시간IP
      +} +@section scriptsHeader{ + @Html.Partial("./Partial/semscript") + @Html.Partial("./Partial/FileScript") + @Html.Partial("./Partial/ScriptDate") +} +@section scripts{ + +} diff --git a/BO/Views/croom/gradeall0.cshtml b/BO/Views/croom/gradeall0.cshtml new file mode 100644 index 0000000..ad36c55 --- /dev/null +++ b/BO/Views/croom/gradeall0.cshtml @@ -0,0 +1,437 @@ +@model NP.Model.VMLect +@{ +} + +
      +
      교육생 평가현황
      +
      + @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;평가안내") + 엑셀다운로드 + @if (Model.IsAdmin) + { + 수료확인 + if (!ViewBag.IsSubAdmin96) + { + 수료처리 + 수료취소 + } + } +     +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach (var d in Model.Lects) + { + + + + @if(d.cshape == 2) + { + + } + else + { + + } + + + + + + + @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) + { + + } + else + { + + } + } + else + { + + } + @if (!ViewBag.IsSubAdmin96) + { + + } + else + { + + } + + + + + + @if (d.isoffabs == 1) + { + + }else{ + + } + + @if (!ViewBag.IsSubAdmin96) + { + + } + else + { + + } + + } + +
      No운영기수구분고객사교육장과정명교육생(ID)교육시작일교육종료일진도율진행평가최종평가과제토론환산점수집합교육출석여부강의평가수료여부
      @d.rnorvt@d.sseq-@d.isrebatename@d.asname@d.studyplacename@d.cname@d.usernameid@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())@d.eend.ToShortDateString()@d.edate.Value.ToShortDateString()@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())@(d.ex1cnt < 1 ? "-" :d.ex1lectcnt < 1 && d.ex1cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())@(d.sd0cnt < 1 ? "-" :d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())@( d.sd1cnt < 1 ? "-" :d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())@(((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint)).ToString())-@(d.rs0lectcnt) / @(d.rs0cnt)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)
      +
      + @Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount) +
      +
      +
      +

      교육일정변경닫기

      +
        + +
        +
        +

        OFF출결관리닫기

        +
        + + + + + + + + + + + + + +
        회차선택 + +
        근거자료
        + +
        +
        +
        +
        + + + + + + + + + + + + + + + + +
        No고객사교육생(ID)입실퇴실미입력  출석  결석  최근수정일 {ID}
        +
        +
        +
        + 저장 +
        +

        +
        + + diff --git a/BO/Views/croom/gradeall2.cshtml b/BO/Views/croom/gradeall2.cshtml new file mode 100644 index 0000000..7cdb8e3 --- /dev/null +++ b/BO/Views/croom/gradeall2.cshtml @@ -0,0 +1,446 @@ +@model NP.Model.VMLect +@{ + int idx = 1; +} +
        +
        +
        +
        + @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;평가안내") +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + @foreach (var d in Model.LectEXes) + { + + + + @if (d.cshape == 2) + { + + } + else + { + + } + + + + + + + + @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) + { + + } + else + { + + } + } + else + { + + } + + + + + + + @if (!ViewBag.IsSubAdmin96) + { + + } + else + { + + } + + } + +
        No운영기수구분고객사교육장과정명시험명교육생(ID)교육시작일교육종료일응시일자
        (제출일자)
        경과시간IP응시상태총점관리수료여부
        @d.rnorvt@d.sseq-@d.isrebatename@d.asname@d.studyplacename@d.cname@d.exname@d.usernameid@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())@d.leend.ToShortDateString()@d.edate.Value.ToShortDateString()@(d.estartymdhm)
        @(d.eend == null ? "": string.Format("({0})", d.eendymdhm))
        @d.eseterm@d.eip@d.estatename@d.tpoint@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)
        +
        + @Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount) +
        +
        +
        +

        교육일정변경닫기

        +
          + +
          +
          +

          시험 상세결과닫기

          +
          +
          개요
          + + + + + + + + + + + + + + + + + +
          소속이름(ID)총점객관식단답형서술형
          +
          +
          채점결과
          +
          + + + +
          +
          +

          +
           
          + +
          + + + diff --git a/BO/Views/croom/gradeall4.cshtml b/BO/Views/croom/gradeall4.cshtml new file mode 100644 index 0000000..1bc57ae --- /dev/null +++ b/BO/Views/croom/gradeall4.cshtml @@ -0,0 +1,408 @@ +@model NP.Model.VMLect +@{ + int idx = 1; +} +
          +
          +
          + @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;평가안내") +
          +
          + + + + + + + + + + + + + + + + + + + + + + @foreach (var d in Model.LectSDs) + { + + + + @if(d.cshape== 2) + { + + } + else + { + + } + + + + + @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) + { + + } + else + { + + } + } + else + { + + } + + + + + + + @if (!ViewBag.IsSubAdmin96) + { + + } + else + { + + } + + } + +
          No운영기수교육장과정명교육생(ID)교육시작일교육종료일상태점수첨삭모사최근제출일(IP)최근평가일(IP)수료여부
          @d.rnorvt@d.sseq-@d.studyplacename@d.cname@d.usernameid@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())@d.leend.ToShortDateString()@d.edate.Value.ToShortDateString()@d.sdstatename@d.cpoint2@d.feedbox@d.copyratename@Html.Raw(d.submittimeip)@Html.Raw(d.checktimeip)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)
          +
          + @Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount) +
          +
          +
          +

          교육일정변경닫기

          +
            + +
            +
            +

            개별 과제제출 내용닫기

            +
            + + + + + + + + + + + + + + + + + + + + + +
            제출자
            제출내용
            첨부파일
            점수
            피드백
            +


            +
            + ◀이전 + 저장 + 다음▶ +    닫기 +
            +

            +
            + + + diff --git a/BO/Views/croom/refundview.cshtml b/BO/Views/croom/refundview.cshtml index d295845..7cf5edd 100644 --- a/BO/Views/croom/refundview.cshtml +++ b/BO/Views/croom/refundview.cshtml @@ -13,6 +13,7 @@
            +
            환불정보
            @@ -58,13 +59,17 @@
            검토결과
            - + +
            검토상태@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절;4:취소" }, { "checked", r.rstatus }, { "name", "rstatus" } })
            검토상태@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절" }, { "checked", r.rstatus }, { "name", "rstatus" } })
            검토상태@*@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절;4:취소" }, { "checked", r.rstatus }, { "name", "rstatus" } })*@
            검토의견
            @if (r.rstatus == 0) { - +
            + 저장 + 취소 +
            }


            @section styles{ @@ -109,5 +114,19 @@ 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(); + } + } } diff --git a/BO/Views/user/asr.cshtml b/BO/Views/user/asr.cshtml index db88fee..a3f6d26 100644 --- a/BO/Views/user/asr.cshtml +++ b/BO/Views/user/asr.cshtml @@ -73,7 +73,7 @@ 기본담당자연락처 - @Html.TextBoxFor(m => m.Assign.mphone, new { @class = "form-control telnofmt nocomma", @data_zero = "1", @maxlength = "13" }) + @Html.TextBoxFor(m => m.Assign.mphone, new { @class = "form-control telnofmt mobilefmt nocomma", @data_zero = "1", @maxlength = "13" }) 계산서이메일 @@ -131,7 +131,7 @@ setv("Assign_brno", val("Assign_brno").replace(/-/gi, '')); setv("Assign_grno", val("Assign_grno").replace(/-/gi, '')); 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("저장하시겠습니까?")) { capfileform("/acommon/assignsave", "mform", "cbsave"); } diff --git a/BO/Views/user/ur.cshtml b/BO/Views/user/ur.cshtml index 2476155..4101e36 100644 --- a/BO/Views/user/ur.cshtml +++ b/BO/Views/user/ur.cshtml @@ -508,7 +508,7 @@ setv("User_birthday", makebirthday(val("userpno1") + val("userpno2"))); if (val("User_usertype") == "0" || val("User_usertype") == "") { focus("User_usertype");msg("권한을 선택해주세요."); } else if (check("User_userid", null, "ID를 입력해주세요.")) { } - else if (val("User_userid").length < 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("userpno1") != "" && val("userpno2") == "") { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); } else if ((val("userpno1") != "" && val("userpno2") != "") && $("#User_userpno").val().length < 13) { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); } diff --git a/BO/Web.config b/BO/Web.config index 50a05ad..2976633 100644 --- a/BO/Web.config +++ b/BO/Web.config @@ -34,7 +34,7 @@ - + diff --git a/BO/css/dev.css b/BO/css/dev.css index 17ab9a8..e803ea6 100644 --- a/BO/css/dev.css +++ b/BO/css/dev.css @@ -62,7 +62,7 @@ img.wideviewable.activeon{ .form-control .searchcon{width: auto;} .searchbutton{} .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;} .devfile{margin-top: -5px;} .itemfind {margin-top: -3px;} diff --git a/BO/libman.json b/BO/libman.json new file mode 100644 index 0000000..b0b3b9a --- /dev/null +++ b/BO/libman.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "defaultProvider": "cdnjs", + "libraries": [] +} \ No newline at end of file diff --git a/Base/Controller/ACommonCM.cs b/Base/Controller/ACommonCM.cs index 2bfcee7..757019f 100644 --- a/Base/Controller/ACommonCM.cs +++ b/Base/Controller/ACommonCM.cs @@ -297,6 +297,12 @@ namespace NP.Base.Controllers { 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){ Dao.Save("cm.cminnings.istasteclear", cmi); } @@ -320,6 +326,7 @@ namespace NP.Base.Controllers else { rtn = Dao.Save("cm.cminningscd." + (cmis.cmisno > 0 ? "up" : "in"), cmis); + Dao.Save("cm.cminningscd.up.lect",cmis); } return JsonOK(rtn, true); } diff --git a/Base/Controller/ACommonCRoom.cs b/Base/Controller/ACommonCRoom.cs index f373263..90d7212 100644 --- a/Base/Controller/ACommonCRoom.cs +++ b/Base/Controller/ACommonCRoom.cs @@ -439,21 +439,25 @@ namespace NP.Base.Controllers return JsonBack(new JsonRtn() { code = 1000, msg = "OK", obj = new { cancelcount } }); } [HttpPost] - public JsonResult CMInningGetForOff(Int64 cmino) + public JsonResult CMInningGetForOff(Int64? cmino,Int64? cmisno,Int64? lectno) { var rtn = new Hashtable() { }; - rtn.Add("ci", Dao.Get("cm.cminnings", new Hashtable() { { "cmino", cmino } }).First()); - rtn.Add("li", Dao.Get("lect.lectinnings.bycmino", new Hashtable() { { "cmino", cmino } })); + rtn.Add("ci", Dao.Get("cm.cminnings", new Hashtable() { { "cmino", cmino },{"cmisno",cmisno } }).First()); + rtn.Add("li", Dao.Get("lect.lectinnings.bycmino", new Hashtable() { { "cmino", cmino }, { "cmisno", cmisno },{"lectno",lectno } })); return JsonBack(rtn); } [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() { }, uno = SUserInfo.UserNo, uip = GetUserIP() }; + var cmi = new CMInning() { cmino = cmino, fgno = fgno,fgnooff=fgnooff, Ds = new List() { }, uno = SUserInfo.UserNo, uip = GetUserIP() }; 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"); } + 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 = ""; foreach (var s in lis.Split(';')) { @@ -465,9 +469,33 @@ namespace NP.Base.Controllers { Dao.Save("cm.cminning.fgno", cmi); } + if(cmi.fgnooff != null) + { + Dao.Save("cm.cminning.fgnooff", cmi); + } return JsonOK(Dao.Save("att.off.save", cmi)); } [HttpPost] + public JsonResult offattscdsave(int istatus,String userinfos) + { + var lectnos = ""; + var cmi = new CMInning() { Ds = new List() { }, 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) { 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("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("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] 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); } [HttpPost] + public JsonResult ReExamLog(int exno, Int64 lectno) + { + return JsonBack(Dao.Get("lect.reexam.log", new System.Collections.Hashtable() { { "exno", exno }, { "lectno", lectno } })); + } + [HttpPost] public JsonResult LectEX(Int64 lectno, int exno) { var rtn = new Hashtable() { }; @@ -503,7 +543,26 @@ namespace NP.Base.Controllers [HttpPost] 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 qis = Dao.Get("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) { @@ -537,6 +596,14 @@ namespace NP.Base.Controllers return JsonBack(Dao.Get("lect.lectsds", new System.Collections.Hashtable() { { "cmno", cmno }, { "sdno", sdno }, { "isrebate", isrebate }, { "estate", sdstate } })); } [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("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) { return JsonBack(Dao.Get("lect.lectsd", new Hashtable() { { "lectno", lectno }, { "sdno", sdno } }).First()); @@ -666,6 +733,14 @@ namespace NP.Base.Controllers d.uno = SUserInfo.UserNo; d.uip = GetUserIP(); 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] public JsonResult PayRefund(Int64 payno, String sd, int isrefunddvr,bool iscancel) { @@ -1324,6 +1399,15 @@ namespace NP.Base.Controllers return JsonBack(result); } + [HttpPost] + public JsonResult GetCmiForMixEdu(int cmno) + { + var rtn = new Hashtable(); + rtn.Add("cmi", Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", cmno }, { "isonline", 0 }, { "isscd", 1 } })); + rtn.Add("cmis", Dao.Get("cm.cminningscds", new System.Collections.Hashtable() { { "cmno", cmno } })); + return JsonBack(rtn); + } + [HttpPost] public JsonResult LectScdChange(Int64 lectno, Int64 cmisno) { diff --git a/Base/Controller/BaseController.cs b/Base/Controller/BaseController.cs index d2f1e75..8967116 100644 --- a/Base/Controller/BaseController.cs +++ b/Base/Controller/BaseController.cs @@ -193,6 +193,7 @@ namespace NP.Base ViewBag.mainmenuexam = data.First().intval8; ViewBag.mainmenuresearch = data.First().intval9; ViewBag.mainmenugrade = data.First().intval10; + ViewBag.maincshape = data.First().intval12; ViewBag.maincgname = data.First().strval; ViewBag.maincname = data.First().strval2; ViewBag.mainboardmaster = data.First().strval3; diff --git a/Base/Controller/FCommonCRoom.cs b/Base/Controller/FCommonCRoom.cs index 3677c27..e92cea9 100644 --- a/Base/Controller/FCommonCRoom.cs +++ b/Base/Controller/FCommonCRoom.cs @@ -231,7 +231,8 @@ namespace NP.Base.Controllers [HttpPost] 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); } } diff --git a/Base/Controller/FOCommon.cs b/Base/Controller/FOCommon.cs index 159ef65..977fb85 100644 --- a/Base/Controller/FOCommon.cs +++ b/Base/Controller/FOCommon.cs @@ -450,7 +450,7 @@ namespace NP.Base.Controllers 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}", 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) item.isEnd = true; } diff --git a/Dao/DB/DB1.Scheme.txt b/Dao/DB/DB1.Scheme.txt index 438b99a..f9ac555 100644 --- a/Dao/DB/DB1.Scheme.txt +++ b/Dao/DB/DB1.Scheme.txt @@ -481,7 +481,10 @@ create table cminning ( ,metime smallint not null ,userno int ,fgno bigint + ,fgnooff 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 ,primary key(cmino)); @@ -490,7 +493,8 @@ create table cminningscd ( ,cmino bigint not null ,estart 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 ,primary key(cmisno)); @@ -1053,7 +1057,7 @@ create table lect ( ,completeno varchar(50) ,isattcheck tinyint(4) ,lakey varchar(6) - ,lakey varchar(6) + ,latime datetime ,sdate datetime ,edate datetime ,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 ,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 ( lectno bigint not null ,sdno int not null @@ -1570,5 +1582,4 @@ CREATE TABLE docprintpast ( ) COLLATE=utf8_general_ci ENGINE=InnoDB -AUTO_INCREMENT=181866 ; \ No newline at end of file diff --git a/Dao/DB/DB1.SchemeFK.txt b/Dao/DB/DB1.SchemeFK.txt index fca172c..39299b0 100644 --- a/Dao/DB/DB1.SchemeFK.txt +++ b/Dao/DB/DB1.SchemeFK.txt @@ -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 fkcminningfg (fgno) 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 cmev add constraint foreign key fkcmevcm (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 fklectexqcmex (exno) references cmex(exno); 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 fklectsdcmsd (sdno) references cmsd(sdno); alter table lectsd add constraint foreign key fklectsdfg (fgno) references filegroup(fgno); diff --git a/Dao/MyBatis/Maps/Attend.xml b/Dao/MyBatis/Maps/Attend.xml index c66a395..dcc3972 100644 --- a/Dao/MyBatis/Maps/Attend.xml +++ b/Dao/MyBatis/Maps/Attend.xml @@ -72,7 +72,7 @@ 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 + 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 @@ -86,6 +86,48 @@ ,a.ispce=case when a.ispce is null then 1 else a.ispce end + + update lectinning a + inner join ( + select #Ds[].lectno# lectno,#Ds[].cmino# cmino,#Ds[].istatus# istatus + ) 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,istatus,statustime,statusreason,sip,eip,ispcs,ispce,) + select a.lectno,a.cmino,0 + ,a.istatus,null,null,#uip#,#uip#,1,1, + from ( + select #Ds[].lectno# lectno,#Ds[].cmino# cmino,#Ds[].istatus# istatus + ) 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 else a.stime end + ,a.etime=case when a.etime is null then 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 lectinning set ,lectno=#lectno#,cmino=#cmino#,totstudy=0 @@ -118,7 +160,7 @@ inner join ( select a.lectno,convert(100*count(c.lectno)/count(b.cmino), int) attrate 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 where a.lectno=#lectno# and a.cmino=#cmino# and a.istatus=2 group by a.lectno @@ -151,7 +193,7 @@ select a.lectno,convert(100*count(c.lectno)/count(b.cmino), int) attrate from lectinning a 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 where a.lectno=#lectno# and a.cmino=#cmino# and a.istatus=2 group by a.lectno diff --git a/Dao/MyBatis/Maps/CM.xml b/Dao/MyBatis/Maps/CM.xml index 4559466..9b04864 100644 --- a/Dao/MyBatis/Maps/CM.xml +++ b/Dao/MyBatis/Maps/CM.xml @@ -509,23 +509,31 @@ @@ -533,14 +541,21 @@ 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 - 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 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 @@ -1826,36 +1866,40 @@ and a.studyplace=#studyplace# select diff --git a/Dao/MyBatis/Maps/CRoom.xml b/Dao/MyBatis/Maps/CRoom.xml index 23839de..c2a8650 100644 --- a/Dao/MyBatis/Maps/CRoom.xml +++ b/Dao/MyBatis/Maps/CRoom.xml @@ -38,12 +38,18 @@ ,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.discussrfd else d.discuss end dportion + ,d.isoffabs,li.istatus + ,e.estart,e.eend,f.cname studyplacename from ( ) a inner join lect b on b.lectno=a.lectno inner join users u on u.userno=b.userno 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 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.intval11) intval11 + ,sum(a.intval11) intval11,sum(a.intval12) intval12 ,max(a.strval) strval,max(a.strval2) strval2,max(a.strval3) strval3 from ( 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 intval11 + ,0 intval11,0 intval12 ,null strval,null strval2,null strval3 from users a left outer join memouser b on b.userno=a.userno and b.isread=0 and b.isdel=0 @@ -69,7 +69,7 @@ union all 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 intval11 + ,0 intval11,0 intval12 ,null strval,null strval2,null strval3 from users a left outer join alarms b on b.userno=a.userno and b.isdel=0 @@ -77,7 +77,7 @@ union all 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 - ,b.cmno intval11 + ,b.cmno intval11,b.cshape intval12 ,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 from users a0 diff --git a/Dao/MyBatis/Maps/Grade.xml b/Dao/MyBatis/Maps/Grade.xml index fe6e5d8..2aaf9c1 100644 --- a/Dao/MyBatis/Maps/Grade.xml +++ b/Dao/MyBatis/Maps/Grade.xml @@ -25,10 +25,10 @@ ,case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end <= a.ex1lectpoint then 1 else 0 end ispassf ,case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end <= a.sd0lectpoint then 1 else 0 end ispasss ,case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end <= a.sd1lectpoint then 1 else 0 end ispassd - ,case when case when d.isoffabs=1 then ifnull(a.at0cnt,0) else 0 end <= 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 <= ifnull(a.at0lectcnt,0) then 1 else 0 end ispassat ,case when - case when case when d.isoffabs=1 then ifnull(a.at0cnt,0) else 0 end <= 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 <= 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 <= b.attrate then 1 else 0 end =1 and case when case when b.isrebate=1 then d.midcutrfd else d.midcut end <= a.ex0lectpoint then 1 else 0 end =1 and case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end <= a.ex1lectpoint then 1 else 0 end =1 and @@ -232,7 +232,7 @@ and a.cshape in ($cshapes$) and a.isdel=0 ) 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 group by a.lectno ) a @@ -242,39 +242,72 @@ inner join cmev d on d.cmno=b.cmno update lect set diff --git a/Dao/MyBatis/Maps/Lect.xml b/Dao/MyBatis/Maps/Lect.xml index 540a891..96a684b 100644 --- a/Dao/MyBatis/Maps/Lect.xml +++ b/Dao/MyBatis/Maps/Lect.xml @@ -680,6 +680,40 @@ where a.cmino=#cmino# order by rno + @@ -733,6 +774,7 @@ a.lectno=#lectno# a.userno=#userno# + ifnull(b.isscd,0)=#isscd# order by b.iseq,d.stime @@ -760,36 +802,101 @@ order by cdt desc + + + + insert into lectexrelog(lectno,exno,estart,eend,eip,) + select a.lectno lectno,a.exno exno,a.estart estart,a.eend eend,a.eip eip, + 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 lectexq a - inner join cmex b on b.exno=a.exno and b.eqtype=0 + inner join cmex b on b.exno=a.exno set a.atext=null,a.qinos=null,a.cpoint=0,a.iscorrect=null where a.lectno=#lectno# and a.exno=#exno#; - delete from lectexq where lectno=#lectno# and exno=#exno# and eqno in ( + - insert into lectexq (lectno,exno,eqno,cpoint,dpoint,qseq,) + + insert into lectexq (lectno,exno,eqno,cpoint,dpoint,qseq,) 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), @@ -915,6 +1033,7 @@ update lectexq set ,rechecktime= ,cpoint=#cpoint# + ,iscorrect = #iscorrect# where lectno=#lectno# and exno=#exno# and eqno=#eqno#; update lectex a @@ -938,13 +1057,15 @@ ,row_number() over(order by $orderby$d.username) rno ,count(a.cdt) over() pagetotalcount from lect a - inner join cmsd b on b.isdel=0 and b.sdno=#sdno# + inner join cmsd b on b.isdel=0 and b.cmno = a.cmno and b.sdno=#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 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 ) - where a.cmno=#cmno# and a.status=1 and a.ischanged=0 + where a.status=1 and a.ischanged=0 + and b.sdtype=#sdtype# + and a.cmno=#cmno# and a.isrebate=#isrebate# and c.submittime is null @@ -952,6 +1073,60 @@ order by rno + select count(c.cmisno ) @@ -1662,6 +1851,19 @@ limit 1 ) a + diff --git a/Dao/MyBatis/Maps/Pay.xml b/Dao/MyBatis/Maps/Pay.xml index ea86fb3..f0dd868 100644 --- a/Dao/MyBatis/Maps/Pay.xml +++ b/Dao/MyBatis/Maps/Pay.xml @@ -47,11 +47,24 @@ update lect a inner join cm b on a.cmno = b.cmno inner join pay c on a.payno = c.payno + left outer join cminningscd d on d.cmisno = a.cmisno set - a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape <> 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') - else b.sstime end, - a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape <> 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') - else b.setime end + a.sdate = case when b.cshape <> 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00') + else + 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 <> 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# where a.payno = #payno# and c.pstatus = 1 @@ -290,11 +303,24 @@ update lect a inner join cm b on a.cmno = b.cmno inner join pay c on a.payno = c.payno + left outer join cminningscd d on a.cmisno = d.cmisno set - a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape <> 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') - else b.sstime end, - a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape <> 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') - else b.setime end + a.sdate = case when b.cshape <> 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00') + else + 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 <> 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 @@ -375,11 +401,24 @@ update lect a inner join cm b on a.cmno = b.cmno inner join pay c on a.payno = c.payno + left outer join cminningscd d on d.cmisno = a.cmisno set - a.sdate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape <> 1 then date_format(c.payoktime,'%Y-%m-%d 00:00:00') - else b.sstime end, - a.edate = case when date_format(b.retime,'%Y-%m-%d')='2099-12-31' and b.cshape <> 1 then date_format(date_add(c.payoktime,interval b.studydays day),'%Y-%m-%d 23:59:59') - else b.setime end + a.sdate = case when b.cshape <> 1 then date_format(a.cdt,'%Y-%m-%d 00:00:00') + else + 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 <> 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 + + + + +@section scriptsHeader{ + +} +@section scripts{ + +} \ No newline at end of file diff --git a/FO/Views/My/MyAssInfo.cshtml b/FO/Views/My/MyAssInfo.cshtml index 802be62..253608a 100644 --- a/FO/Views/My/MyAssInfo.cshtml +++ b/FO/Views/My/MyAssInfo.cshtml @@ -206,7 +206,7 @@ else if (check("brno", null, "사업자번호를 입력해주세요.")) { } else if (getBytes(val("brno")) != 10) { focus("brno"); msg("10자리의 사업자번호를 입력해주세요."); } 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 { capfileform("/fcommon/assignupdate", "mform", "cbsave"); diff --git a/FO/Views/My/MyInfoCheck.cshtml b/FO/Views/My/MyInfoCheck.cshtml index 38b6558..7ecfedb 100644 --- a/FO/Views/My/MyInfoCheck.cshtml +++ b/FO/Views/My/MyInfoCheck.cshtml @@ -39,9 +39,9 @@
              -
            • +
            • -
            • -
            • +
            diff --git a/FO/Views/My/PayInfo.cshtml b/FO/Views/My/PayInfo.cshtml index 5957cb5..7946e80 100644 --- a/FO/Views/My/PayInfo.cshtml +++ b/FO/Views/My/PayInfo.cshtml @@ -406,7 +406,7 @@
          • 환불 최종요청
          • 환불신청 취소
          • } - @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)) {
          • 환불신청 취소
          • } diff --git a/FO/Views/My/Ready.cshtml b/FO/Views/My/Ready.cshtml index 4c065d5..28ace16 100644 --- a/FO/Views/My/Ready.cshtml +++ b/FO/Views/My/Ready.cshtml @@ -41,7 +41,8 @@
            @(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 ? "전액환불" : "-")
            @*신청기간 : @(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) { @:| 집체교육기간 : @(d.cmisno == null ? "미정" : ("[" + d.studyplacename + "] " + string.Format("{0}", d.cmiestart.Value.ToString("yy-MM-dd")))) diff --git a/FO/Views/Shared/Partial/Breadcrumb.cshtml b/FO/Views/Shared/Partial/Breadcrumb.cshtml index 9fa0d5b..9f1b32f 100644 --- a/FO/Views/Shared/Partial/Breadcrumb.cshtml +++ b/FO/Views/Shared/Partial/Breadcrumb.cshtml @@ -19,7 +19,7 @@