From 80ee5c717d4b2c93ce867594258b1f76c0d47cea Mon Sep 17 00:00:00 2001 From: jity7777 Date: Mon, 2 Jan 2023 23:59:38 +0000 Subject: [PATCH] =?UTF-8?q?<=EA=B8=B0=EB=8A=A5=EA=B0=9C=EC=84=A0>=201.=20P?= =?UTF-8?q?MS=20NO=20:=207146,=207149,=207152,=207158,=207179,=207181,=207?= =?UTF-8?q?184,=207187,=207202,=207210,=207214,=207215,=207218,=207220,=20?= =?UTF-8?q?7224=202.=20(=EC=A3=BC=EC=9A=94)=EC=9E=91=EC=97=85=EB=82=B4?= =?UTF-8?q?=EC=9A=A9=20(1)=202022=EB=85=84=2012=EC=9B=94=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EA=B0=9C=EB=B0=9C=20=EB=B0=8F=20=EC=9C=A0=EC=A7=80?= =?UTF-8?q?=EB=B3=B4=EC=88=98=20=EC=9A=94=EC=B2=AD=EA=B1=B4=20=EC=9D=BC?= =?UTF-8?q?=EA=B4=84=20=EC=97=85=EB=A1=9C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BO/Controllers/croomController.cs | 34 +- BO/Views/cm/cmreg.cshtml | 37 +- BO/Views/croom/atts.cshtml | 2 +- BO/Views/croom/attscds.cshtml | 3 +- BO/Views/croom/grade0.cshtml | 50 +- BO/Views/croom/grade4.cshtml | 12 +- BO/Views/croom/gradeall4.cshtml | 11 +- BO/Views/croom/payview.cshtml | 2 +- BO/Web.config | 4 +- Base/Controller/ACommon.cs | 8 + Base/Controller/ACommonCRoom.cs | 25 + Base/Controller/FCommonCRoom.cs | 7 + Base/Controller/FOCommon.cs | 3 + Dao/MyBatis/Maps/CM.xml | 32 +- Dao/MyBatis/Maps/CRoom.xml | 18 +- Dao/MyBatis/Maps/Grade.xml | 352 ++++++++++ Dao/MyBatis/Maps/Lect.xml | 314 ++++++++- Dao/MyBatis/SqlMapProductDev.config | 2 +- FO/Controllers/CRoomController.cs | 8 + FO/Controllers/CourseController.cs | 6 +- FO/Controllers/MyController.cs | 2 +- FO/FO.csproj | 10 +- FO/Views/CRoom/EstimationSubject.cshtml | 27 + FO/Views/CRoom/Grade.cshtml | 6 +- FO/Views/CRoom/Index.cshtml | 112 ++- FO/Views/CRoom/Plan.cshtml | 4 +- FO/Views/Course/ApplyAgree.cshtml | 27 +- FO/Views/Course/ApplyAgree_old.cshtml | 228 +++++++ FO/Views/Course/ApplyComplete.cshtml | 16 +- FO/Views/Course/ApplyEdu.cshtml | 48 +- FO/Views/Course/ApplyEdu_2301대체용.cshtml | 755 +++++++++++++++++++++ FO/Views/Course/ApplyPay.cshtml | 96 ++- FO/Views/Course/ApplyPay_221227.cshtml | 333 +++++++++ FO/Views/Course/SmartSearch.cshtml | 80 ++- FO/Views/My/LectureOn.cshtml | 19 +- FO/Views/Shared/Partial/Select.cshtml | 31 +- FO/Views/Shared/_LayoutMy.cshtml | 2 +- FO/Web.config | 4 +- FO/css/mypage.css | 6 +- FO/js/mypage.js | 4 +- Model/BaseModel.cs | 6 +- 41 files changed, 2524 insertions(+), 222 deletions(-) create mode 100644 FO/Views/Course/ApplyAgree_old.cshtml create mode 100644 FO/Views/Course/ApplyEdu_2301대체용.cshtml create mode 100644 FO/Views/Course/ApplyPay_221227.cshtml diff --git a/BO/Controllers/croomController.cs b/BO/Controllers/croomController.cs index 18fbe7d..fc9e340 100644 --- a/BO/Controllers/croomController.cs +++ b/BO/Controllers/croomController.cs @@ -512,15 +512,26 @@ namespace NP.BO.Controllers ht.Add("cname", vm.stringval2); ht.Add("studyplace", vm.stringval3); ht.Add("stringval17", vm.stringval17); - vm.Lects = Dao.Get("lect.lectinnings.forattscd", ht); - vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); if (vm.intval2 == 1) { + vm.Lects = Dao.Get("lect.lectinnings.forattscd2", ht); + //return ExportExcel( + // new String[] { "No", "운영기수", "교육장", "과정명", "교육생(ID)", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, + // new String[] { "rnorvt", "sseqstr", "studyplacename", "cname", "usernameid", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" }, + // vm.Lects, + // "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); + return ExportExcel( - new String[] { "No", "운영기수", "교육장", "과정명", "교육생(ID)", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, - new String[] { "rnorvt", "sseqstr", "studyplacename", "cname", "usernameid", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" }, - vm.Lects, - "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); + new String[] { "No", "아이디", "교육생이름", "교육생 전화번호", "이메일", "과정명", "기술인분류", "교육목적", "등급", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, + new String[] { "rnorvt", "userid", "username", "mobile", "email", "cname", "zstring0", "zstring1", "zstring2", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" }, + vm.Lects, + "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); + } + else + { + + vm.Lects = Dao.Get("lect.lectinnings.forattscd", ht); + vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); } return View(vm); } @@ -609,7 +620,7 @@ namespace NP.BO.Controllers if (searchCheck) { - 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.Lects = Dao.Get("grade.lectgradesToAll", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "iscomplete", vm.addstringval2 }, { "cmisno", vm.addstringval3 }, { "ispasss", vm.addstringval4 }, { "ispassa", vm.addstringval5 }, { "ispassex", vm.addstringval6 }, { "usernameid", vm.addstringval7 }, { "orderby", "ua.asname,ua.asno,u.username" } }); } else { @@ -761,7 +772,7 @@ namespace NP.BO.Controllers //ht.Add("ustatus", 1); ht.Add("orderby", "ua.asname,ua.asno,u.username"); - vm.Lects = Dao.Get("grade.lectgrades", ht); + vm.Lects = Dao.Get("grade.lectgradesToAll", ht); if (vm.isexceldown == 1) { return ExportExcel( @@ -853,6 +864,12 @@ namespace NP.BO.Controllers //vm.stringval = DateTime.Now.ToString("yyyy-MM-01"); //vm.stringval2 = Convert.ToDateTime(vm.stringval).AddMonths(1).AddSeconds(-1).ToString("yyyy-MM-dd"); } + + //if (vm.stringval == null) + //{ + // vm.stringval = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd"); + // vm.stringval2 = DateTime.Now.ToString("yyyy-MM-dd"); + //} ht.Add("cdts", vm.stringval); ht.Add("cdte", string.IsNullOrEmpty(vm.stringval2) ? null : (vm.stringval2 + " 23:59:59")); //ht.Add("pstatusin", vm.stringval3); @@ -892,6 +909,7 @@ namespace NP.BO.Controllers ht.Add(vm.stringval15 ?? "usernameiditemname", vm.stringval16); } ht.Add("isgroup", vm.stringval17); + ht.Add("estart", vm.stringval20); ht.Add("eend", string.IsNullOrEmpty(vm.stringval21) ? null : (vm.stringval21 + " 23:59:59")); ht.Add("studyplace", vm.stringval22); diff --git a/BO/Views/cm/cmreg.cshtml b/BO/Views/cm/cmreg.cshtml index 36631dd..cd4d508 100644 --- a/BO/Views/cm/cmreg.cshtml +++ b/BO/Views/cm/cmreg.cshtml @@ -66,7 +66,7 @@ } else { - 상시 + 상시 } @@ -151,6 +151,7 @@ @{ Dictionary typeJobList = new Dictionary(); + bool check = false; foreach (var item in Model.ComCodes.Where(w => w.cgroup == "typejob")) { typeJobList.Add(item.ccode, item.cname); @@ -169,21 +170,25 @@ { typeJobGroupName = "typejob" + item.Key; var subList = Model.ComCodes.Where(w => w.cgroup == typeJobGroupName).OrderBy(c => c.corder); - if (subList.Count() > 0) { @@ -443,12 +448,12 @@ else { $("#spnaccommofee").hide(); } - if ($("input[name='CM.cshape']:checked").val() == '1') { - $("#alldays").prop("disabled", true); - } - else { - $("#alldays").prop("disabled", false); - } + //if ($("input[name='CM.cshape']:checked").val() == '1') { + // $("#alldays").prop("disabled", true); + //} + //else { + // $("#alldays").prop("disabled", false); + //} if ($("#alldays").is(":checked")) { $("#CM_cshape1").prop("disabled", true); diff --git a/BO/Views/croom/atts.cshtml b/BO/Views/croom/atts.cshtml index 9b7ef7f..83642d2 100644 --- a/BO/Views/croom/atts.cshtml +++ b/BO/Views/croom/atts.cshtml @@ -66,7 +66,7 @@
    @foreach (var d in innings) { -
  • @string.Format("{0}분 ({1})", d.totstudymin, d.pseqname)
  • +
  • @string.Format("{0}분 ({1})", d.totstudymin, d.pseqname)

  • }
diff --git a/BO/Views/croom/attscds.cshtml b/BO/Views/croom/attscds.cshtml index 21a2a40..c50c517 100644 --- a/BO/Views/croom/attscds.cshtml +++ b/BO/Views/croom/attscds.cshtml @@ -54,8 +54,9 @@
@Html.HiddenFor(m => m.intval2) +
- @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "onchange", "submit()" }, { "name", "stringval17" }, { "selected", Model.stringval17 }, { "valuetext", ":출석여부;0:미입력;2:출석" } }) + @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "onchange", "submit()" }, { "name", "stringval17" }, { "selected", Model.stringval17 }, { "valuetext", ":출석여부;0:미입력;2:출석" }, { "style", "vertical-align: middle" } }) @Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } }) 출석처리 결석처리 diff --git a/BO/Views/croom/grade0.cshtml b/BO/Views/croom/grade0.cshtml index 731df1a..f26e769 100644 --- a/BO/Views/croom/grade0.cshtml +++ b/BO/Views/croom/grade0.cshtml @@ -12,33 +12,12 @@ - @**@ + @**@ - - - - - @**@ - - - - - - - - - - @**@ - - - - - - @if (Model.CM.isrefund == 1) { - + @**@ @@ -59,6 +38,31 @@ } + else + { + + + + + + @**@ + + + + + + + + + + @**@ + + + + + + + }
기준평가항목진도율진행평가(%)최종평가(%)과제(%)토론(%)기타(%)합계(총점)
기준평가항목진도율진행평가(%)최종평가(%)과제(%)토론(%)기타(%)합계(총점)
비환급비율(점수)@Model.CMEV.attend@Model.CMEV.mid@Model.CMEV.final@Model.CMEV.subject@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.attendcut@Model.CMEV.midcut@Model.CMEV.finalcut@Model.CMEV.subjectcut@Model.CMEV.discusscut@Model.CMEV.etccut@Model.CMEV.cut
환급환급 비율(점수) @Model.CMEV.attendrfd@Model.CMEV.midrfd@Model.CMEV.cutrfd
비환급비율(점수)@Model.CMEV.attend@Model.CMEV.mid@Model.CMEV.final@Model.CMEV.subject@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.attendcut@Model.CMEV.midcut@Model.CMEV.finalcut@Model.CMEV.subjectcut@Model.CMEV.discusscut@Model.CMEV.etccut@Model.CMEV.cut
diff --git a/BO/Views/croom/grade4.cshtml b/BO/Views/croom/grade4.cshtml index 16dd93c..4a45d21 100644 --- a/BO/Views/croom/grade4.cshtml +++ b/BO/Views/croom/grade4.cshtml @@ -369,7 +369,7 @@ _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); $("#iscopyVal").val($("#iscopy").prop("checked") ? 1 : 0) - capfileform("/acommon/lectsdsave", "mform2", "cbsave"); + capfileform("/acommon/LectSDSaveToAdmin", "mform2", "cbsave"); } } } @@ -483,12 +483,20 @@ if (fileDivObj.length == 1) { fileDivObj.remove(); $("#fileinfoDiv").css("display", "") - viewsd(_sdno, _lectno, _ridx); + + let sdno = $("#sdno").val(); + let lectno = $("#lectno").val(); + capp("/acommon/delfileOk", { lectno: lectno, sdno: sdno }, "afterView"); + } } else { msg("파일을 삭제할 수 없습니다."); } } + + function afterView() { + viewsd(_sdno, _lectno, _ridx); + } diff --git a/BO/Views/croom/gradeall4.cshtml b/BO/Views/croom/gradeall4.cshtml index 037a7e4..98f3792 100644 --- a/BO/Views/croom/gradeall4.cshtml +++ b/BO/Views/croom/gradeall4.cshtml @@ -358,7 +358,7 @@ _saveidx = idx; // capp("/acommon/lectsdsave", { lectno: _lectno, sdno: _sdno, iscopy: $("#iscopy").prop("checked") ? 1 : 0, cpoint: val("cpoint"), feedb: val("feedb"), memo: val("memo") }, "cbsave", null, null, null, true); $("#iscopyVal").val($("#iscopy").prop("checked") ? 1 : 0) - capfileform("/acommon/lectsdsave", "mform2", "cbsave"); + capfileform("/acommon/LectSDSaveToAdmin", "mform2", "cbsave"); } } @@ -444,12 +444,19 @@ if (fileDivObj.length == 1) { fileDivObj.remove(); $("#fileinfoDiv").css("display", "") - viewsd(_sdno, _lectno, _tpoint, _ridx); + + let sdno = $("#sdno").val(); + let lectno = $("#lectno").val(); + capp("/acommon/delfileOk", { lectno: lectno, sdno: sdno }, "afterView"); } } else { msg("파일을 삭제할 수 없습니다."); } } + + function afterView() { + viewsd(_sdno, _lectno, _tpoint, _ridx); + } diff --git a/BO/Views/croom/payview.cshtml b/BO/Views/croom/payview.cshtml index bcbbe11..e6189ee 100644 --- a/BO/Views/croom/payview.cshtml +++ b/BO/Views/croom/payview.cshtml @@ -592,7 +592,7 @@ } function cbcancelpay() { if (capResult.code == 1000) { - msg("결제최소처리되었습니다.", null, null, null, null, "location.href='/croom/payview?payno=@p.payno'"); + msg("결제취소처리되었습니다.", null, null, null, null, "location.href='/croom/payview?payno=@p.payno'"); opener.searchthis(); } } diff --git a/BO/Web.config b/BO/Web.config index 4eec37f..9b979cd 100644 --- a/BO/Web.config +++ b/BO/Web.config @@ -55,8 +55,8 @@ - - + + diff --git a/Base/Controller/ACommon.cs b/Base/Controller/ACommon.cs index dbff3c2..7a6cf16 100644 --- a/Base/Controller/ACommon.cs +++ b/Base/Controller/ACommon.cs @@ -2222,6 +2222,14 @@ namespace NP.Base.Controllers { return JsonOK(Dao.Save("sys.ncs.delall", new Hashtable() { { "ndepth", ndepth }, { "ncsno", ncsno } })); } + + [HttpPost] + public JsonResult delfileOk(int sdno, Int64 lectno) + { + //재응시로그추가로인해 업데이트건 3개일때부터 정상처리 + int result = Dao.Save("lect.lectsd.del", new System.Collections.Hashtable() { { "sdno", sdno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }); + return JsonOK(result); + } } } \ No newline at end of file diff --git a/Base/Controller/ACommonCRoom.cs b/Base/Controller/ACommonCRoom.cs index 5c8896e..b986ee2 100644 --- a/Base/Controller/ACommonCRoom.cs +++ b/Base/Controller/ACommonCRoom.cs @@ -866,6 +866,31 @@ namespace NP.Base.Controllers return JsonOK(Dao.Save("lect.lectsd"+(d.ccount == 1 ? "2" : "")+".save" + (string.IsNullOrEmpty(d.lectnos) ? "" : "batch"), d)); } + /// + /// 과제제출평가(관리자등록) + /// + /// + /// + [HttpPost] + public JsonResult LectSDSaveToAdmin(LectSD d) + { + d.uno = SUserInfo.UserNo; d.uip = GetUserIP(); + d.isproduct = GetConfig("isstaging") == "1" ? (int?)null : 1; + if (Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0) + { + //d.fgno = SetFile(Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), d.fgno ?? 0, "lectsd", "fgno"); + d.fgno = SetFile(Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), d.fgno ?? 0, "lectsd", "fgno", 1, "XX", false, true, d.cmno, d.userno); + d.zstring0 = "T"; + } + else + { + d.zstring0 = ""; + } + + + return JsonOK(Dao.Save("lect.lectsd" + (d.ccount == 1 ? "2" : "") + ".save2" + (string.IsNullOrEmpty(d.lectnos) ? "" : "batch"), d)); + } + /// /// 과제이력 일괄다운로드 /// diff --git a/Base/Controller/FCommonCRoom.cs b/Base/Controller/FCommonCRoom.cs index e92cea9..4bf3f4f 100644 --- a/Base/Controller/FCommonCRoom.cs +++ b/Base/Controller/FCommonCRoom.cs @@ -235,6 +235,13 @@ namespace NP.Base.Controllers return JsonOK(Dao.Save("lect.reexam", new System.Collections.Hashtable() { { "exno", exno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 2 ? 1 : 0); } + [HttpPost] + public JsonResult delfileOk(int sdno, Int64 lectno) + { + //재응시로그추가로인해 업데이트건 3개일때부터 정상처리 + int result = Dao.Save("lect.lectsd.del", new System.Collections.Hashtable() { { "sdno", sdno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }); + return JsonOK(result); + } } } \ No newline at end of file diff --git a/Base/Controller/FOCommon.cs b/Base/Controller/FOCommon.cs index ecfdf5e..ece8f6b 100644 --- a/Base/Controller/FOCommon.cs +++ b/Base/Controller/FOCommon.cs @@ -534,6 +534,8 @@ namespace NP.Base.Controllers hsData.Add("cmno", cmno); var resultTmp = Dao.Get("cm.cms", hsData).FirstOrDefault(); //var result = Dao.Get("cm.cminningscds.applyedu"+(lectno != null ? ".lectno" : ""), new System.Collections.Hashtable() { { "cmno", cmno },{"lectno",lectno }, { "month", (month == null) ? null : month } }); + DateTime now = DateTime.Now; + result = result.Where(c => c.estart > now.AddYears(-1) && c.estart < now.AddYears(1)).ToList(); foreach (var item in result) { //item.scdInfoSummary = string.Format("[{0}] {1}", item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm")); @@ -562,6 +564,7 @@ namespace NP.Base.Controllers } [HttpPost] + /// 교육신청제한 public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno) { // 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육 diff --git a/Dao/MyBatis/Maps/CM.xml b/Dao/MyBatis/Maps/CM.xml index e5327d6..c601bcf 100644 --- a/Dao/MyBatis/Maps/CM.xml +++ b/Dao/MyBatis/Maps/CM.xml @@ -173,6 +173,7 @@ order by a.rno + + update lect set diff --git a/Dao/MyBatis/Maps/Lect.xml b/Dao/MyBatis/Maps/Lect.xml index 92a0aed..a942f7e 100644 --- a/Dao/MyBatis/Maps/Lect.xml +++ b/Dao/MyBatis/Maps/Lect.xml @@ -730,7 +730,7 @@ where a.cmino=#cmino# order by rno - select a.* from ( select a.lectno,c.cmino,b.cmno,b.cshape,b.cname,b2.isoffabs @@ -741,7 +741,8 @@ ,d.estart,d.eend ,e.userno,e.userid, e.username ,g.istatus - ,row_number() over(order by a.cdt desc,e.username) rno + + ,row_number() over(order by e.username) rno ,count(a.cdt) over() pagetotalcount from lect a inner join pay p on p.payno = a.payno @@ -768,8 +769,145 @@ order by a.rno - - + select a.* + from ( + select a.lectno,c.cmino,c.cmno,c.cshape,c.cname,b2.isoffabs + ,a.isrebate,p.payoktime,a.iscomplete, a.stime + ,a.sdate,a.edate + ,a.cmisno + ,c.sseq,f.cname studyplacename + ,c.estart,c.eend + ,e.userno,e.userid, e.username + ,g.istatus + ,row_number() over(order by e.username) rno + ,count(a.cdt) over() pagetotalcount + from lect a + inner join pay p on p.payno = a.payno + inner join ( + select c.cmno, c.cshape, c.cname, ci.cmino,d.cmisno,d.sseq,d.estart,d.eend,d.studyplace + from cm c + inner join cminning ci on c.cmno = ci.cmno + inner join cminningscd d on d.cmino = ci.cmino + where c.cshape=2 and ci.isscd=1 and ci.scdtype=0 + ) c on c.cmno = a.cmno and c.cmisno = a.cmisno + inner join cmev b2 on b2.cmno = c.cmno + inner join users e on e.userno = a.userno + left outer join comcode f on f.ccode = c.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 date_format(a.edate,'%Y%m%d') = date_format(#edate#,'%Y%m%d') + and c.cname like concat('%',#cname#,'%') + and c.studyplace = #studyplace# + + and g.istatus is null + and g.istatus = 2 + + + and e.username like concat('%',#searchtext#,'%') + and e.userid like concat('%',#searchtext#,'%') + + ) a + + order by a.rno + + + + - + insert into lectexrelog(lectno,exno,estart,eend,eip,) @@ -1293,6 +1431,29 @@ left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno# where b.lectno is null + + update lectsd set + ,iscopy=#iscopy#,cpoint=#cpoint# + ,feedb=#feedb# + ,memo=#memo# + ,checktime=case when #cpoint# is not null or #feedb# is not null then now() else checktime end + ,checkip=case when #cpoint# is not null or #feedb# is not null then #uip# else checkip end + ,submittime=case when #zstring0# = 'T' then now() else submittime end + ,submitip=case when #zstring0# = 'T' then #uip# else submitip end + ,fgno=#fgno# + where lectno=#lectno# and sdno=#sdno#; + + insert into lectsd (lectno,sdno,atext,fgno,copyrate,iscopy,cpoint,feedb,memo,submittime,submitip,checktime,checkip,) + select #lectno#,#sdno#,null,#fgno#,null,#iscopy#,#cpoint#,#feedb#,#memo# + ,case when #zstring0# = 'T' then now() else null end + ,case when #zstring0# = 'T' then #uip# else null end + ,case when #cpoint# is not null or #feedb# is not null then now() else null end + ,case when #cpoint# is not null or #feedb# is not null then #uip# else null end + , + from (select 1 col1) a + left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno# + where b.lectno is null + update lectsd set ,iscopy=#iscopy#,cpoint=#cpoint#,feedb=#feedb# @@ -1505,7 +1666,8 @@ LEFT OUTER JOIN cminningscd cmis ON cmis.cmisno = a.cmisno LEFT OUTER JOIN comcode cc ON cc.ccode = cmis.studyplace and cc.cgroup ='studyplace' where a.userno=#userno# and a.status=1 and a.ischanged=0 - and (case when a.sdate is null then b.sstime else a.sdate end) < + + and (case when a.sdate is null then b.setime else a.edate end) >= order by case when time2 > now() then 1 else 0 end asc ,sortedate asc, time2 asc ) a union all @@ -1737,6 +1899,7 @@ update alarms set isdel=1 where alno=#alno# and userno=#userno# + + + + + + + update lectsd set + ,submittime=null + ,submitip=null + ,fgno=null + where lectno=#lectno# and sdno=#sdno#; + diff --git a/Dao/MyBatis/SqlMapProductDev.config b/Dao/MyBatis/SqlMapProductDev.config index a105e9f..28228ee 100644 --- a/Dao/MyBatis/SqlMapProductDev.config +++ b/Dao/MyBatis/SqlMapProductDev.config @@ -13,7 +13,7 @@ - + diff --git a/FO/Controllers/CRoomController.cs b/FO/Controllers/CRoomController.cs index 5582a81..5dc7aae 100644 --- a/FO/Controllers/CRoomController.cs +++ b/FO/Controllers/CRoomController.cs @@ -35,6 +35,14 @@ namespace NP.FO.Controllers bmnos += "," + s.Split(':')[0]; } } + var pplogGet = Dao.Get("lect.pplog.get", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "lectno", vm.Lect.lectno } }).FirstOrDefault(); + vm.Lect.zstring1 = pplogGet.zstring1; + vm.Lect.zstring2 = pplogGet.zstring2; + vm.Lect.zstring3 = pplogGet.zstring3; + vm.Lect.zstring4 = pplogGet.zstring4; + vm.Lect.zstring5 = pplogGet.zstring5; + + vm.Datas = Dao.Get("cr.main.boardalarm", new System.Collections.Hashtable() { { "bmnos", bmnos != null ? bmnos.Substring(1) : bmnos},{ "lect", vm.croomlectno },{ "cmno", vm.croomcmno }, { "lectno", vm.croomlectno }, { "userno", SUserInfo.UserNo } }); vm.LectInnings = Dao.Get("cr.cminnings", new System.Collections.Hashtable() { { "lectno", vm.croomlectno },{ "userno",SUserInfo.UserNo}, { "notstudy" + (Request.IsLocal ? "x" : ""), 1 },{ "limit", 6} }); vm.intval2 = Convert.ToInt32((GetConfig("inninglimit") ?? "10")); diff --git a/FO/Controllers/CourseController.cs b/FO/Controllers/CourseController.cs index 7dc5f06..d13d96a 100644 --- a/FO/Controllers/CourseController.cs +++ b/FO/Controllers/CourseController.cs @@ -798,12 +798,13 @@ namespace NP.FO.Controllers hsData.Add("typegrade", vm.stringval5); hsData.Add("typejob", vm.stringval6); hsData.Add("typejobitem", vm.stringval7); + hsData.Add("isuse", 1); hsData.Add("orderby", " a.pcmno, a.cname"); - vm.CMs = Dao.Get("cm.subcms", hsData).Where(w => w.isuse == 1).ToList(); + vm.CMs = Dao.Get("cm.subcms", hsData).ToList(); } else if (vm.stringval == "1") //기타교육 { - vm.CMs = Dao.Get("cm.cms", new System.Collections.Hashtable() { { "ismaster", "1" }, { "cshape", vm.stringval2 }, { "cgno", vm.stringval3 } }).Where(w => w.isuse == 1).ToList(); + vm.CMs = Dao.Get("cm.cms", new System.Collections.Hashtable() { { "ismaster", "1" }, { "cshape", vm.stringval2 }, { "cgno", vm.stringval3 }, { "isuse", 1 } }).ToList(); } //hsData.Clear(); @@ -899,7 +900,6 @@ namespace NP.FO.Controllers //20220802 추가 vm.CM.cmino = lngTmp[0]; vm.CM.cmisno = lngTmp[1]; - vm.CM.applicableCM = (vm.CM.quota != 0 && vm.CM.quota - vm.CM.lectcnt <= 0) ? "대기접수" : "정상접수"; vm.CMInningscds = Dao.Get("cm.cminningscds.applyedu", new System.Collections.Hashtable() { { "cmno", vm.cmno },{"month", (vm.scdMonth == null)? DateTime.Now.Year : vm.scdMonth } }); foreach (var item in vm.CMInningscds) diff --git a/FO/Controllers/MyController.cs b/FO/Controllers/MyController.cs index 43198c4..f90e853 100644 --- a/FO/Controllers/MyController.cs +++ b/FO/Controllers/MyController.cs @@ -228,7 +228,7 @@ namespace NP.FO.Controllers hsData.Add("cgcode", vm.intval > 0 ? TestCode3 : null); //hsData.Add("cshape", 2); hsData.Add("issubtable", 1); - vm.Lects = Dao.Get("lect.mylectures", hsData); + vm.Lects = Dao.Get("lect.mylectures2", hsData); foreach (var item in vm.Lects) diff --git a/FO/FO.csproj b/FO/FO.csproj index 367126b..4401464 100644 --- a/FO/FO.csproj +++ b/FO/FO.csproj @@ -704,7 +704,7 @@ - + @@ -716,7 +716,7 @@ - + @@ -734,6 +734,12 @@ + + + + + + diff --git a/FO/Views/CRoom/EstimationSubject.cshtml b/FO/Views/CRoom/EstimationSubject.cshtml index ea398a5..8586659 100644 --- a/FO/Views/CRoom/EstimationSubject.cshtml +++ b/FO/Views/CRoom/EstimationSubject.cshtml @@ -110,5 +110,32 @@ msg("운영자에게 문의해주세요."); } } + + function cbfiledel() { + if (capResult.code == 1000) { + var ul = $(_filedela).closest("ul"); + $(_filedela).closest("li").remove(); + if ($(ul).find("li input.file").length + $(ul).find("li a.file").length < getint($(ul).attr("data-filecount"))) { + $(ul).append("
  • 삭제
  • "); + } + var empli = false; + $.each($(ul).find("li"), function (i, li) { + if ($(li).find("input.file").val() == "") { + if (empli) { + $(li).addClass("delme"); + } else { + empli = true; + } + } + }); + $(ul).find("li.delme").remove(); + + let sdno = @(Model.LectSD.sdno); + let lectno = @(Model.LectSD.lectno); + capp("/fcommon/delfileOk", { lectno: lectno, sdno: sdno }); + } + } + + } \ No newline at end of file diff --git a/FO/Views/CRoom/Grade.cshtml b/FO/Views/CRoom/Grade.cshtml index bfdaadb..e40ae3b 100644 --- a/FO/Views/CRoom/Grade.cshtml +++ b/FO/Views/CRoom/Grade.cshtml @@ -15,6 +15,7 @@ @*진행평가*@ 최종평가 과제평가 + 집체교육(7h) @*토론평가*@ 총점 @@ -26,8 +27,9 @@ @*@(Model.Lect.mportion)%*@ @(Model.Lect.fportion)% @(Model.Lect.sportion)% + - @*@(Model.Lect.dportion)%*@ - 100%(점) + 100%(점) 수료기준 @@ -35,6 +37,7 @@ @*@(Model.Lect.mcut)%이상*@ @(Model.Lect.fcut)점이상 @(Model.Lect.scut)점이상 + 집체교육 참석(7h) @*@(Model.Lect.dcut)%이상*@ @(Model.Lect.cut)점이상 @@ -44,6 +47,7 @@ @*@(Model.Lect.ex0lectpoint)점*@ @(Model.Lect.ex1lectpoint)점 @(Model.Lect.sd0lectpoint)점 + @(Model.Lect.istatus == 2 ? "출석완료" : "-") @*@(Model.Lect.sd1lectpoint)점*@ @(Model.Lect.apoint + Model.Lect.mpoint + Model.Lect.fpoint + Model.Lect.spoint + Model.Lect.dpoint)점 diff --git a/FO/Views/CRoom/Index.cshtml b/FO/Views/CRoom/Index.cshtml index 7044aee..c855388 100644 --- a/FO/Views/CRoom/Index.cshtml +++ b/FO/Views/CRoom/Index.cshtml @@ -14,6 +14,7 @@ @*진행평가*@ 최종평가 과제평가 + 집체교육(7h) @*토론평가*@ 총점 @@ -25,6 +26,7 @@ @*@(Model.Lect.ex0lectpoint)점*@ @(Model.Lect.ex1lectpoint)점 @(Model.Lect.sd0lectpoint)점 + @(Model.Lect.istatus == 2 ? "출석완료" : "-") @*@(Model.Lect.sd1lectpoint)점*@ @(Model.Lect.apoint + Model.Lect.mpoint + Model.Lect.fpoint + Model.Lect.spoint + Model.Lect.dpoint)점 @@ -41,48 +43,114 @@ @*@(Model.Lect.mcut)점이상*@ @(Model.Lect.fcut)점이상 @(Model.Lect.scut)점이상 + 집체교육 참석(7h) @*@(Model.Lect.dcut)점이상*@ @(Model.Lect.cut)점이상 @if (Model.Lect.iscomplete == null) { - ※ 나의성적이 수료기준을 충족하였을 경우 성적 화면에서 수료요청을 해주셔야 합니다. + ※ 나의성적이 수료기준을 충족하였을 경우 성적 화면에서 수료요청을 해주셔야 합니다. }
    - ※ 관련 규정에 의거 동시접속방지 기능으로 인해 다른 환경에서 접속 시 기존 환경에서는 로그아웃 되어 동영상 시청 진도율이 반영되지 않습니다.
    + ※ 관련 규정에 의거 동시접속방지 기능으로 인해 다른 환경에서 접속 시 기존 환경에서는 로그아웃 되어 동영상 시청 진도율이 반영되지 않습니다.
    ※ 관련 법령에 의해 일일 최대 학습시간은 학습중인 모든 과정에 대하여 10시간(10차시)입니다.
    -@if(Model.Lect.isoffabs == 1) +@if (Model.Lect.isoffabs == 1) { -
    -
    -
    집합교육 안내
    - - +
    +
    +
    집체교육 안내
    +
    + + + + + + + + + + @if (Model.Lect.istatusname == "출석") + { - - - - + + + + - - + } + else + { - + - + - -
    집체일정집체장소준비물출석여부
    집체일정교육장소준비물출석여부---@(Model.Lect.istatusname == "출석" ? "출석완료" : "-")
    @(string.Format(Model.Lect.estart.ToString("yyyy-MM-dd")))@Model.Lect.studyplacename@(Model.Lect.studyplacename)교육장 신분증,필기도구@Model.Lect.istatusname-
    -
    + } + + + +
    +
    신청내용
    + + + + @if (!string.IsNullOrEmpty(Model.Lect.zstring1)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring2)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring3)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring4)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring5)) + { + + } + + + + @if (!string.IsNullOrEmpty(Model.Lect.zstring1)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring2)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring3)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring4)) + { + + } + @if (!string.IsNullOrEmpty(Model.Lect.zstring5)) + { + + } + +
    교육유형기술인분류교육목적등급직무분야전문분야
    @(Model.stringval2 == "0" ? "온라인교육" : Model.stringval2 == "1" ? "교육장교육" : "온라인교육")@Model.Lect.zstring1@Model.Lect.zstring2@Model.Lect.zstring3@Model.Lect.zstring4@Model.Lect.zstring5
    + + + }
    @@ -144,7 +212,7 @@
    @(d.edate < DateTime.Now ? "학습기간종료" : d.isonline == 0 && d.istatus == 2 ? "출석완료" : d.isonline == 0 && d.idate < DateTime.Now ? "결석" : d.isonline == 0 ? "출석전" : d.stime == null ? "학습전(0%)" : d.istatus == 2 ? "학습완료" : string.Format("학습중({0}%)", d.sttime > 0 ? (d.totstudy * 100 / (d.sttime * 60)) : 0))
    @*
    @(d.isonline == 0 ? (d.cshape != 2 ? "강의시작일" : "집체교육") : "교육기간") : @(d.isonline == 0 ? (d.cshape != 2 ? string.Format("{0} {1}:{2}", d.idate.ToString("MM/dd"), d.ist.Substring(0, 2), d.ist.Substring(2, 2)) : d.eend.ToString("MM/dd")) :d.cshape != 1 ? d.cdt.ToString("MM/dd")+" ~ "+d.estart.ToString("MM/dd") : (d.sdate.ToString("MM/dd") + " ~ " + d.edate.ToString("MM/dd")))
    *@
    @(d.isonline == 0 ? (d.cshape != 2 ? "강의시작일" : "집체교육") : "교육기간") : @(d.isonline == 0 ? (d.cshape != 2 ? string.Format("{0} {1}:{2}", d.idate.ToString("MM/dd"), d.ist.Substring(0, 2), d.ist.Substring(2, 2)) : d.eend.ToString("MM/dd")) :(d.sdate.ToString("MM/dd") + " ~ " + d.edate.ToString("MM/dd")))
    - @if(d.cshape != 1 && d.isonline == 1) + @if (d.cshape != 1 && d.isonline == 1) {
    복습기간 : @(d.edate.AddYears(1).ToString("yy-MM-dd"))
    } @@ -207,7 +275,7 @@ msg("학습기간이 아닙니다."); } else if (preflag < 1) { msg("이전 회차 학습을 완료한 이후 학습이 가능합니다."); - } else if (notoverflag < 1) { + } else if (notoverflag < 1) { msg("관련 법령에 의해 일일 최대 학습가능한 시간은 10시간(10차시)입니다."); } else { _cmino = cmino; @@ -232,7 +300,7 @@ confirmtoggle(true, "학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 회차 당 1회에 한 해 진행됩니다.
    본인인증을 하시겠습니까?", "chkipin()"); } else if (_authplatform == "2") { confirmtoggle(true, "학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 회차 당 1회에 한 해 진행됩니다.
    본인인증을 하시겠습니까?", "chkmobile()"); - } + } } } else { msg("휴대폰 번호가 공란입니다.
    정보수정을 통해 번호를 입력해주세요."); diff --git a/FO/Views/CRoom/Plan.cshtml b/FO/Views/CRoom/Plan.cshtml index 06d3fb7..5444b39 100644 --- a/FO/Views/CRoom/Plan.cshtml +++ b/FO/Views/CRoom/Plan.cshtml @@ -63,7 +63,7 @@ } -
    + -

    ※ 수료기준은 각 항목의 백분율 기준으로 표기합니다.

    +

    ※ 수료기준은 각 항목의 백분율 기준으로 표기합니다.

    @section scriptsHeader{ } diff --git a/FO/Views/Course/ApplyAgree.cshtml b/FO/Views/Course/ApplyAgree.cshtml index 59be0e8..4a7dc17 100644 --- a/FO/Views/Course/ApplyAgree.cshtml +++ b/FO/Views/Course/ApplyAgree.cshtml @@ -42,14 +42,23 @@ } if (Model.CM.cshape == 1) { + strEduInfo = string.Format("교육기간 {0} | {2}시간과정 | {3}과정
    교육비 : {4}원", Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); } else { + strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary); + strEduInfo += string.Format(" 교육종료일 {0} | ", Model.SelectCMInningscd.eend2); + strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime); + strEduInfo += string.Format(" {0}과정
    ", (Model.CM.isrefund == 1 ? "환급" : "비환급")); + strEduInfo += string.Format("집체교육 참석일 : {0}
    ", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일")); + strEduInfo += string.Format("교육비 : {0}원", Model.CM.infee.ToString("#,0")); + + //Model.SelectCMInningscd.eend2 교육종료일 - strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", - Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + //strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", + // Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); } } @@ -163,7 +172,7 @@ 2. 총 35시간 교육 중 28시간 이상 이수

    *@ @*}*@ -

    환급대상자 필수확인사항

    +

    환급과정 신청 시 환급대상자 필수확인사항

    - 입교 전 출결관리를 위해 어플 설치 및 로그인(고용노동부 HRD-NET 및 출결관리 어플), 위탁계약서(회사 직인 필수) 지참
    - 교육비 입금 시 신용카드는 반드시 법인카드로만 결제, 무통장 입금은 입금자명을 회사상호+교육생 형식으로 작성
    @@ -176,14 +185,14 @@ {

    교육수료조건

    - 1. 동영상강의 35시간 진도율 90% 이상
    - 2. 과제물 제출(표지 제외 A4 2장 이상 분량)
    - 3. 시험평가 58점 이상 득점
    - 4. 총점 70점 이상 득점 : 시험평가(60점) + 과제(20점) + 진도율(20점) =100%(점)

    + 1. 동영상강의 진도율 90% 이상
    + 2. 과제물 제출(표지 제외 A4용지 2장 이상 분량)
    + 3. 시험평가 60점 이상 득점
    + 4. 집체교육7시간 참석

    ※ 위 4가지 조건 모두 만족하셔야 수료가 가능합니다.
    - ※ 하루 최대 학습 시간은 10차시 입니다.
    - ※ 현재 코로나로 인하여 기존 (동영상강의 시청 28시간 + 현장집체7시간 참석)에서 한시적으로 (동영상강의 시청 35시간)으로 진행합니다. + @*※ 하루 최대 학습 시간은 10차시 입니다.
    + ※ 현재 코로나로 인하여 기존 (동영상강의 시청 28시간 + 현장집체7시간 참석)에서 한시적으로 (동영상강의 시청 35시간)으로 진행합니다.*@ @*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.
    *@

    diff --git a/FO/Views/Course/ApplyAgree_old.cshtml b/FO/Views/Course/ApplyAgree_old.cshtml new file mode 100644 index 0000000..584de9f --- /dev/null +++ b/FO/Views/Course/ApplyAgree_old.cshtml @@ -0,0 +1,228 @@ +@model NP.Model.VMCourse +@{ + var isallday = Model.CM.retimeymd == "2099-12-31" ? true : false; +} +
    + @*강좌번호*@ + @*법정교육/기타교육*@ + @*교육유형*@ + @*기술인분류*@ + @*교육목적*@ + @*등급*@ + @*직무분야*@ + @*전문분야*@ + @*pplno*@ + @*교육일정선택(selMonth)*@ + @*업체/개인 선택*@ + + + + +

    신청강좌

    +
      +
    • +
        +
      • +

        + + @(Model.CM.cshape == 0 ? "온라인" : Model.CM.cshape == 1 ? "교육장교육" : "온라인교육") + + @{ + string strStudyPlaceTmp = ""; + string strStudyPlaceTmp2 = ""; + string strEduInfo = ""; + if (Model.SelectCMInningscd.studyplace != null) + { + strStudyPlaceTmp = Model.SelectCMInningscd.studyplacename + "교육장"; + strStudyPlaceTmp2 = Model.CM.cname; + } + else + { + strStudyPlaceTmp = Model.CM.cname; + } + if (Model.CM.cshape == 1) + { + strEduInfo = string.Format("교육기간 {0} | {2}시간과정 | {3}과정
        교육비 : {4}원", + Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + } + else + { + //Model.SelectCMInningscd.eend2 교육종료일 + strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
        교육비 : {4}원", + Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + } + } + + @if (Model.SelectCMInningscd.studyplace == null) + { +
        + } + else if (Model.SelectCMInningscd.studyplace != null) + { +
        + } + +

        +
      • +
      +
      + @if (Model.PPLog.isaccommodation != 1) + { + 결제금액:@Model.CM.infee.ToString("#,0") + } + else + { + 결제금액:@((Model.CM.infee + Model.CM.accommofee).ToString("#,0"))원 (합숙 : @(Model.CM.accommofee.ToString("#,0"))원 포함) + } +
      +
    • +
    + @if (Model.CM.isaccommodation == 1) + { +

    합숙여부

    +

    + @(Model.PPLog.isaccommodation == 1 ? string.Format("합숙 ({0}원 추가)",Model.CM.accommofee.ToString("#,0")) : "비합숙") +

    + } + @if (Model.stringval == "0") + { +

    신청내용 (필수확인)

    + if (Model.CM.cshape == 2) + { +

    교육종료일 : @(Model.PPLog.eendymd)까지

    + } + + + + @if (!string.IsNullOrEmpty(Model.stringval3)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval4)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval5)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval6)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval7)) + { + + } + + + + @if (!string.IsNullOrEmpty(Model.stringval3)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval4)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval5)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval6)) + { + + } + @if (!string.IsNullOrEmpty(Model.stringval7)) + { + + } + +
    교육유형기술인분류교육목적등급직무분야전문분야
    @(Model.stringval2 == "0" ? "온라인교육" : Model.stringval2 == "1" ? "교육장교육" : "온라인교육")@Model.ComCodes2.Where(w => w.cgroup.ToString() == "typeman" && w.ccode == int.Parse(Model.stringval3)).First().cname@Model.ComCodes3.Where(w => w.cgroup.ToString() == "typeedu" && w.ccode == int.Parse(Model.stringval4)).First().cname@Model.ComCodes4.Where(w => w.cgroup.ToString() == "typegrade" && w.ccode == int.Parse(Model.stringval5)).First().cname@Model.ComCodes.Where(w => w.cgroup.ToString() == "typejob" && w.ccode == int.Parse(Model.stringval6)).First().cname@Model.ComCodes.Where(w => w.ccode == int.Parse(Model.stringval7)).First().cname
    + } +

    + +
    + ※ 반드시 확인하세요
    + - 실제 이수해야 할 내용과 신청내용이 다른 경우 교육인정 및 수정이 불가능 하오니 정확하게 확인 해주세요.
    + - 상기 신청내용의 등급이 직무분야의 등급으로 맞게 기재되어 있는지 확인해주세요.(전문분야 등급 아님)
    + - 건설사업관리기술인은 감리업무를 수행하는 기술인을 말합니다.
    + - 승급교육일 경우 등급은 승급 후 등급이 기재되어야 하며 승급대상 여부 등을 반드시 협회로 확인 해주세요.
    + - 승급교육 또는 계속교육을 인정받으려면 기본교육 및 최초교육을 먼저 이수하여야 합니다.
    + - 모든 최초,승급,계속 교육 등은 직무분야 교육이며 전문분야 관련으로 따로 이수하여야 할 교육은 없습니다. +
    +

    + + @if (Model.CM.cshape == 1) + { + @* if (Model.CM.cshape != 1) + {*@ + @*

    교육수료조건

    +

    + 1. 총점 70점 이상 득점 : 시험평가(80점) + 출결점수(20점) =100점
    + 2. 총 35시간 교육 중 28시간 이상 이수 +

    *@ + @*}*@ +

    환급과정 신청 시 환급대상자 필수확인사항

    +

    + - 입교 전 출결관리를 위해 어플 설치 및 로그인(고용노동부 HRD-NET 및 출결관리 어플), 위탁계약서(회사 직인 필수) 지참
    + - 교육비 입금 시 신용카드는 반드시 법인카드로만 결제, 무통장 입금은 입금자명을 회사상호+교육생 형식으로 작성
    + 예) 현대건설 이지은인 경우 → 현대이지은 으로 작성
    + ※ 출결관리 어플 설치 방법은 홈페이지 자료실에 있는 설치가이드를 참고 부탁드립니다. +

    + + } + else + { +

    교육수료조건

    +

    + 1. 동영상강의 35시간 진도율 90% 이상
    + 2. 과제물 제출(표지 제외 A4 2장 이상 분량)
    + 3. 시험평가 58점 이상 득점
    + 4. 총점 70점 이상 득점 : 시험평가(60점) + 과제(20점) + 진도율(20점) =100%(점)

    + + ※ 위 4가지 조건 모두 만족하셔야 수료가 가능합니다.
    + ※ 하루 최대 학습 시간은 10차시 입니다.
    + ※ 현재 코로나로 인하여 기존 (동영상강의 시청 28시간 + 현장집체7시간 참석)에서 한시적으로 (동영상강의 시청 35시간)으로 진행합니다. + @*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.
    *@ +

    + +

    교육수강기한

    +

    + 온라인교육은 신청일로 부터 최대 1년 이내에 수료하셔야 하며 1년 이내에 교육수료가 되지 않으면 수료 및 환불이 불가능합니다. +

    + + + } +

    주의사항

    +

    + 교육생이 이수하여야 할 교육은 소속된 협회에서만 조회가 가능합니다.
    + 따라서 협회 확인 없이 잘못된 내용으로 교육수료 시 그 책임은 교육생 본인에게 있으므로
    + 저희 교육원과 상담을 하셨더라도 교육신청 전에 반드시 협회를 통하여 한 번 더 확인을 하시고 신청해 주시기 바랍니다.
    + ※ 신청내용(필수확인)부분의 내용을 반드시 협회에 확인해 보시기 바랍니다. +

    +

    + +

    + +
    + diff --git a/FO/Views/Course/ApplyComplete.cshtml b/FO/Views/Course/ApplyComplete.cshtml index c12e2a7..93caf99 100644 --- a/FO/Views/Course/ApplyComplete.cshtml +++ b/FO/Views/Course/ApplyComplete.cshtml @@ -48,8 +48,17 @@ else else { //Model.SelectCMInningscd.eend2 교육종료일 - strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", - Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + + strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary); + strEduInfo += string.Format(" 교육종료일 {0} | ", Model.SelectCMInningscd.eend2); + strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime); + strEduInfo += string.Format(" {0}과정
    ", (Model.CM.isrefund == 1 ? "환급" : "비환급")); + strEduInfo += string.Format("집체교육 참석일 : {0}
    ", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일")); + strEduInfo += string.Format("교육비 : {0}원", Model.CM.infee.ToString("#,0")); + + + //strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", + //Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); } } @@ -79,9 +88,8 @@ else +

    신청하신 교육은 상단 메뉴의 마이페이지 > 나의강의실 에서 확인 및 수강이 가능합니다.

    - -

    교육비 입금기한 안내

    - 온라인교육 : 신청일로 부터 한 달 이내
    diff --git a/FO/Views/Course/ApplyEdu.cshtml b/FO/Views/Course/ApplyEdu.cshtml index 9c940ef..2792e38 100644 --- a/FO/Views/Course/ApplyEdu.cshtml +++ b/FO/Views/Course/ApplyEdu.cshtml @@ -61,8 +61,15 @@ else { //Model.SelectCMInningscd.eend2 교육종료일 - strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", - Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + //strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", + //Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + + strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary); + strEduInfo += string.Format(" 교육종료일 {0} | ", Model.SelectCMInningscd.eend2); + strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime); + strEduInfo += string.Format(" {0}과정
    ", (Model.CM.isrefund == 1 ? "환급" : "비환급")); + strEduInfo += string.Format("집체교육 참석일 : {0}
    ", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일")); + strEduInfo += string.Format("교육비 : {0}원", Model.CM.infee.ToString("#,0")); } @@ -254,7 +261,7 @@

  • -
  • @Html.TextBoxFor(x => x.Assign.mphone3, new { @maxlength = "4" })
  • - + 계산서받을 이메일 @@ -263,7 +270,7 @@
  • @Html.TextBoxFor(x => x.Assign.taxemail1, new { @maxlength = "100" })
  • @Html.TextBoxFor(x => x.Assign.taxemail2, new { @maxlength = "30" })
  • - @Html.Partial("./Partial/Select",null,new ViewDataDictionary { { "special","email"},{ "name","taxemail3"},{"df",":직접입력" },{"onchange","emailchange()" } }) + @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "special", "email" }, { "name", "taxemail3" }, { "df", ":직접입력" }, { "onchange", "emailchange()" } }) @@ -415,13 +422,13 @@ @Html.Partial("./Partial/filescript") } + diff --git a/FO/Views/Course/ApplyPay.cshtml b/FO/Views/Course/ApplyPay.cshtml index fb5c787..011cced 100644 --- a/FO/Views/Course/ApplyPay.cshtml +++ b/FO/Views/Course/ApplyPay.cshtml @@ -66,8 +66,16 @@ else { //Model.SelectCMInningscd.eend2 교육종료일 - strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", - Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + + strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary); + strEduInfo += string.Format(" 교육종료일 {0} | ", Model.SelectCMInningscd.eend2); + strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime); + strEduInfo += string.Format(" {0}과정
    ", (Model.CM.isrefund == 1 ? "환급" : "비환급")); + strEduInfo += string.Format("집체교육 참석일 : {0}
    ", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일")); + strEduInfo += string.Format("교육비 : {0}원", Model.CM.infee.ToString("#,0")); + + //strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
    교육비 : {4}원", + // Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); } } @@ -98,7 +106,7 @@ @if (Model.PPLog.cshape != 2) { -

    교육비 환급대상자의 입금방법(중요)

    +

    환급과정 신청 시 환급대상자의 입금방법(중요)

    ■ 카드결제 시
    - 반드시 소속 회사의 법인카드로 결제 해 주세요. (개인카드 결제 시 환급불가)
    @@ -108,11 +116,15 @@

    ■ 무통장입금 시
    - 계좌이체로 입금하실 경우 반드시 법인계좌에서 이체가 되어야 합니다. (타 계좌에서 이체 시 환급불가)
    - - 입금자명은 반드시 소속회사 + 교육생이름 으로 기재해주세요.

    + - 입금자명은 반드시 소속회사 + 교육생이름 으로 기재해주세요.(소속회사명이 없는 경우 환급불가)
    + - 입교 시 이체확인증을 지참해 주세요.
    + ※ 이체확인증은 입금자명이 법인이라는 것을 노동부에 증빙하기 위하여 필요한 서류입니다.
      예) 현대건설 이지은 인 경우 -> 현대건설이지은

    - - ■ 환급대상자는 계산서 의무 발행 이므로 현금영수증 발행이 불가 합니다.
    -

    + + + ■ 환급과정 신청 시 환급대상자는 계산서 의무 발행 이므로 현금영수증 발행이 불가 합니다. +
    +

    }

    결제 시 주의사항

    @@ -128,7 +140,7 @@

    -

    결제방법(신용카드 선택 시 계산서 발급불가)

    +

    결제방법(신용카드 선택 시 계산서 발급불가)

      @if (Model.CM.infee > 0) { @@ -141,23 +153,61 @@ }
      diff --git a/FO/Views/Course/ApplyPay_221227.cshtml b/FO/Views/Course/ApplyPay_221227.cshtml new file mode 100644 index 0000000..ceda34b --- /dev/null +++ b/FO/Views/Course/ApplyPay_221227.cshtml @@ -0,0 +1,333 @@ +@model NP.Model.VMCourse +@{ + var isallday = Model.CM.retimeymd == "2099-12-31" ? true : false; +} +
      + @*강좌번호*@ + @*법정교육/기타교육*@ + @*교육유형*@ + @*기술인분류*@ + @*교육목적*@ + @*등급*@ + @*직무분야*@ + @*전문분야*@ + @*pplno*@ + @*교육일정선택(selMonth)*@ + @*업체/개인 선택*@ + + + + +
      + +
      + @Html.HiddenFor(m => m.payno) + @*강좌번호*@ + @*법정교육/기타교육*@ + @*교육유형*@ + @*기술인분류*@ + @*교육목적*@ + @*등급*@ + @*직무분야*@ + @*직무분야*@ + + + + @*업체/개인 선택*@ + + +

      신청강좌

      +
        +
      • +
          +
        • +

          + + @(Model.CM.cshape == 0 ? "온라인" : Model.CM.cshape == 1 ? "교육장교육" : "온라인교육") + + @{ + string strStudyPlaceTmp = ""; + string strStudyPlaceTmp2 = ""; + string strEduInfo = ""; + if (Model.SelectCMInningscd.studyplace != null) + { + strStudyPlaceTmp = Model.SelectCMInningscd.studyplacename + "교육장"; + strStudyPlaceTmp2 = Model.CM.cname; + } + else + { + strStudyPlaceTmp = Model.CM.cname; + } + if (Model.CM.cshape == 1) + { + strEduInfo = string.Format("교육기간 {0} | {2}시간과정 | {3}과정
          교육비 : {4}원", + Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + } + else + { + //Model.SelectCMInningscd.eend2 교육종료일 + strEduInfo = string.Format("교육기간 {0} | 교육종료일 {1} | {2}시간과정 | {3}과정
          교육비 : {4}원", + Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0")); + } + } + + + @if (Model.SelectCMInningscd.studyplace == null) + { +
          + } + else if (Model.SelectCMInningscd.studyplace != null) + { +
          + } + +

          +
        • +
        +
        + @if (Model.PPLog.isaccommodation != 1) + { + 결제금액:@Model.CM.infee.ToString("#,0") + } + else + { + 결제금액:@((Model.CM.infee + Model.CM.accommofee).ToString("#,0"))원 (합숙 : @(Model.CM.accommofee.ToString("#,0"))원 포함) + } +
        +
      • +
      + @if (Model.PPLog.cshape != 2) + { +

      환급과정 신청 시 환급대상자의 입금방법(중요)

      +

      + ■ 카드결제 시
      + - 반드시 소속 회사의 법인카드로 결제 해 주세요. (개인카드 결제 시 환급불가)
      + - 카드결제 후 결제한 카드 앞면을 복사하여 입교 시 지참해 주세요.
      + ※ 결제 한 카드가 법인명의라는 것을 노동부에 증빙하기 위하여 필요한 서류 이며 회사 명이 잘 보이도록 앞면 만 복사하시면 됩니다.

      +

      +

      + ■ 무통장입금 시
      + - 계좌이체로 입금하실 경우 반드시 법인계좌에서 이체가 되어야 합니다. (타 계좌에서 이체 시 환급불가)
      + - 입금자명은 반드시 소속회사 + 교육생이름 으로 기재해주세요.

      +   예) 현대건설 이지은 인 경우 -> 현대건설이지은

      + + ■ 환급과정 신청 시 환급대상자는 계산서 의무 발행 이므로 현금영수증 발행이 불가 합니다.
      +

      + } + +

      결제 시 주의사항

      +

      + @*- 개인카드 결제 시 법인으로 증빙서류 발급이 되지 않습니다.
      + - 계산서 발급을 원하시는 경우 반드시 업체로 신청해주세요.
      + - 카드결제의 경우 계산서 발급이 불가능하며 카드 영수증이 발행 됩니다.
      + - 교육신청이 완료된 이후 에는 결제방식 변경이 불가능 하므로 다시 한번 확인해 주세요.
      *@ + - 개인카드 결제 시 법인으로 증빙서류 발급이 되지 않습니다.
      + - 계산서 발급을 원하시는 경우 반드시 업체로 신청해주세요.
      + - 카드결제의 경우 계산서 발급이 불가능하며 카드 영수증이 발행 됩니다.
      + - 교육신청이 완료된 이후 에는 결제방식 변경이 불가능 하므로 다시 한번 확인해 주세요.
      +
      +

      + +

      결제방법(신용카드 선택 시 계산서 발급불가)

      +
        + @if (Model.CM.infee > 0) + { +
      • +
      • + } + else + { +
      • + } +
      + + + + @Html.HiddenFor(m => m.payno) + @Html.HiddenFor(m => m.exno) + @Html.Hidden("pplno", Model.PPLog.pplno) + + + + + + + + + + + + + + + + + + + + + + + + +
      + @section scriptsHeader{ + + @Html.Partial("./Partial/ScriptDate") + } + diff --git a/FO/Views/Course/SmartSearch.cshtml b/FO/Views/Course/SmartSearch.cshtml index 353840d..3d7c087 100644 --- a/FO/Views/Course/SmartSearch.cshtml +++ b/FO/Views/Course/SmartSearch.cshtml @@ -74,7 +74,8 @@
      @if (Model.stringval2 == "2") { -

      ※ 온라인 교육은 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다

      + @*

      ※ 온라인 교육은 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다.

      *@ +

      ※ 현재 신청중인 교육은 온라인교육(동영상강의28시간 + 집체참석7시간) 교육입니다.

      }
        @@ -88,15 +89,15 @@ @*@($"{item.cname} | {item.studytime}시간과정 | 교육비{item.infee}")*@ @{ - string strTitle =string.Format("{0} | {1}시간과정 | {2}과정 ", item.cname, item.studytime, (item.isrefund == 1 ? "환급" : "비환급"), item.infee.ToString("#,0")); + string strTitle = string.Format("{0} | {1}시간과정 | {2}과정 ", item.cname, item.studytime, (item.isrefund == 1 ? "환급" : "비환급"), item.infee.ToString("#,0")); } @Html.Raw(strTitle)
        • 강좌소개 -
        • - @*
        • 강좌소개
        • *@ + + @*
        • 강좌소개
        • *@
        • 일정조회
        • @@ -117,7 +118,7 @@ }*@ @*20220728온라인/오프라인 안내*@ -
          +
          @*20220728교육 영역*@ @@ -164,7 +165,7 @@

          교육분류 :

          인정시간 : 시간

          - + @*@if (Model.CM.cshape != 1) {

          수료기준 : 진도 % 이상, 시험 점 이상, 과제 점 이상

          @@ -199,6 +200,11 @@
          + + @{ diff --git a/FO/Web.config b/FO/Web.config index edcdb65..17520dd 100644 --- a/FO/Web.config +++ b/FO/Web.config @@ -41,8 +41,8 @@ - - + + diff --git a/FO/css/mypage.css b/FO/css/mypage.css index 49d35a7..692f2fb 100644 --- a/FO/css/mypage.css +++ b/FO/css/mypage.css @@ -427,7 +427,11 @@ .mpgPopCont {padding:50px; overflow-y:auto;} .mpgPopCont img {display:block; margin:0 auto; max-width:100%;} .mpgPopBtn {text-align:center; margin-top:50px;} -.mpgPopBtn li {display:inline-block; margin:0 3px;} + .mpgPopBtn li { + display: inline-block; + margin: 0 3px; + margin-bottom: 50px + } .mpgPopBtn li a {display:block; width:100px; height:50px; line-height:48px; border:solid 1px #383838; color:#383838;} .mpgPopBtn li a.bk {background:#383838; color:#fff;} diff --git a/FO/js/mypage.js b/FO/js/mypage.js index b42628c..c1b8f1b 100644 --- a/FO/js/mypage.js +++ b/FO/js/mypage.js @@ -86,8 +86,8 @@ $(document).ready(function () { msg += '※ 매주 월요일 마다 수료처리가 진행됩니다. (평일기준)

          ' msg += '- 수료조건을 만족하지 않은 경우 : 교육일정변경 메뉴에서 일정변경 후 수강해 주세요.

          ' msg += '※ 미 수료 상태로 교육시작일 이후 1년 경과 시 교육이 취소되어 일정변경이 불가합니다.

          ' - //msg += '확인
    ' - msg += '확인
    ' + msg += '확인' + //msg += '확인' $("#layermessage").html(msg) return false; diff --git a/Model/BaseModel.cs b/Model/BaseModel.cs index 1b6bf66..279daed 100644 --- a/Model/BaseModel.cs +++ b/Model/BaseModel.cs @@ -177,9 +177,9 @@ namespace NP.Model public String zstring0 { get; set; } public String zstring1 { get; set; } public String zstring2 { get; set; } - //public String zstring3 { get; set; } - //public String zstring4 { get; set; } - //public String zstring5 { get; set; } + public String zstring3 { get; set; } + public String zstring4 { get; set; } + public String zstring5 { get; set; } //public String zstring6 { get; set; } //public String zstring7 { get; set; } //public String zstring8 { get; set; }