From 3498031958b51a3c53ce5060799ec2eb7dff771f Mon Sep 17 00:00:00 2001 From: lch Date: Wed, 23 Jun 2021 09:11:34 +0000 Subject: [PATCH] =?UTF-8?q?=EA=B5=90=EC=9C=A1=EC=9A=B4=EC=98=81>=EC=88=98?= =?UTF-8?q?=EB=A3=8C=EA=B4=80=EB=A6=AC=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(=EC=A4=91=EA=B0=84=EC=A0=80=EC=9E=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BO/BO.csproj | 2 +- BO/Controllers/croomController.cs | 56 ++++ BO/Views/croom/completions.cshtml | 495 ++++++++++++++++++++++++++++++ Dao/DB/DB1.Scheme.txt | 8 +- Dao/MyBatis/Maps/CRoom.xml | 59 ++++ Model/CM.cs | 332 ++++++++++++++++++++ Model/VMCRoom.cs | 1 + 7 files changed, 949 insertions(+), 4 deletions(-) create mode 100644 BO/Views/croom/completions.cshtml diff --git a/BO/BO.csproj b/BO/BO.csproj index a8e8357..7953b50 100644 --- a/BO/BO.csproj +++ b/BO/BO.csproj @@ -675,12 +675,12 @@ - + diff --git a/BO/Controllers/croomController.cs b/BO/Controllers/croomController.cs index 9dd8f05..ef5c515 100644 --- a/BO/Controllers/croomController.cs +++ b/BO/Controllers/croomController.cs @@ -1003,6 +1003,62 @@ namespace NP.BO.Controllers } return View(vm); } + + public ActionResult completions(VMCRoom vm) + { + vm.Completions = InitM(); + vm.CGs = Dao.Get("cm.cgs", new System.Collections.Hashtable() { { "isuse", 1 }, { "isdel", 0 } }); + vm.ComCodes = GetComCodes("typeman,typeedu,typegrade,typejob,studyplace"); + vm.stringval8 = vm.stringval8 ?? DateTime.Now.AddMonths(-1).ToString("yyyy-MM-01"); + vm.stringval9 = vm.stringval9 ?? DateTime.Now.AddMonths(1).ToString("yyyy-MM-01"); + + var ht = SetHash(vm); + ht.Add("tyear", vm.stringval); + ht.Add("pcgno", vm.stringval2); + ht.Add("cgno", vm.stringval3); + ht.Add("cshape", vm.stringval4); + ht.Add("typeman", vm.stringval5); + ht.Add("studyplace", vm.stringval6); + ht.Add("typejob", vm.stringval7); + ht.Add("sdate", vm.stringval8); + ht.Add("edate", vm.stringval9); + ht.Add("typegrade", vm.stringval10); + ht.Add("typeedu", vm.stringval11); + + vm.Completions = Dao.Get("cr.completions", ht); + vm.pagetotalcount = GetCount(vm.Completions.FirstOrDefault()); + foreach (var completion in vm.Completions) + { + completion.typeeduName = vm.ComCodes.Where(w=> w.ccode == completion.typeedu).FirstOrDefault()?.cname; + completion.typegradeName = vm.ComCodes.Where(w => w.ccode == completion.typegrade).FirstOrDefault()?.cname; + completion.typejobName = vm.ComCodes.Where(w => w.ccode == completion.typejob).FirstOrDefault()?.cname; + completion.typemanName = vm.ComCodes.Where(w => w.ccode == completion.typeman).FirstOrDefault()?.cname; + completion.studyplaceName = vm.ComCodes.Where(w => w.ccode == completion.studyplace).FirstOrDefault()?.cname; + } + + if (vm.isexceldown == 1) + { + vm.Completions = Dao.Get("cr.completions", ht); + foreach (var completion in vm.Completions) + { + completion.typeeduName = vm.ComCodes.Where(w => w.ccode == completion.typeedu).FirstOrDefault()?.cname; + completion.typegradeName = vm.ComCodes.Where(w => w.ccode == completion.typegrade).FirstOrDefault()?.cname; + completion.typejobName = vm.ComCodes.Where(w => w.ccode == completion.typejob).FirstOrDefault()?.cname; + completion.typemanName = vm.ComCodes.Where(w => w.ccode == completion.typeman).FirstOrDefault()?.cname; + completion.studyplaceName = vm.ComCodes.Where(w => w.ccode == completion.studyplace).FirstOrDefault()?.cname; + } + return ExportExcel( + new String[] { "교육상위분류","교육하위분류","교육유형","이름","주민번호","기술인분류","교육구분","교육목적","등급","직무분야","과정명","수료번호","업체명","업체주소","사업자등록번호", + "고용보험관리번호","업태","종목","대표자","교육시작일","교육종료일","교육이수시간","소속협회","학력","직위","교육생연락처","업체담당자","업체담당당자 연락처","교육비", + "환급액","환급은행명","환급계좌" ,"환급계좌예금주","계산서이메일","교육연도","교육장"}, + new String[] { "pcgname", "cgname", "cshapename", "username", "userpnostr", "typemanName", "edukind", "typeeduName", "typegradeName", "typejobName", "cname", "completeno", "asname", + "companyaddr", "brno", "eino", "btype", "bkind", "ceoname", "sdateymd2","edateymd2","studytime","association","slevelName","uduty","mobile","mname","mphone", + "payamt","rbankamt","rbank","rbankaccnum","tbankuser","taxemail","tyear", "studyplaceName"}, + vm.Completions, + "수료관리", null, ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,"); + } + return View(vm); + } } } diff --git a/BO/Views/croom/completions.cshtml b/BO/Views/croom/completions.cshtml new file mode 100644 index 0000000..7c0b9a5 --- /dev/null +++ b/BO/Views/croom/completions.cshtml @@ -0,0 +1,495 @@ +@model NP.Model.VMCRoom +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육년도 +
+ +
+
과정분류 +
+ @Html.Partial("./Partial/Select", Model.CGs.Where(w => w.pcgno == null), new ViewDataDictionary { { "name", "stringval2" }, { "selected", Model.stringval2 }, { "style", "width: 100%" }, { "df", ":-상위분류" } }) +
+
+ @Html.Partial("./Partial/Select", Model.CGs.Where(w => w.pcgno != null && w.pcgno.ToString() == Model.stringval2), new ViewDataDictionary { { "name", "stringval3" }, { "selected", Model.stringval3 }, { "style", "width: 100%;" }, { "df", ":-분류" } }) +
+
교육유형 +
+ @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "1:교육장교육;2:온라인교육" }, { "name", "stringval4" }, { "selected", Model.stringval4 }, { "style", "width: 100%" }, { "df", ":-유형선택" } }) +
+
기술인분류 +
+ @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeman"), new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "style", "width: 100%" }, { "df", ":-기술인분류" } }) +
+
교육장 +
+ @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "style", "width: 100%" }, { "df", ":-교육장구분" } }) +
+
직무분야 +
+ @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typejob"), new ViewDataDictionary { { "name", "stringval7" }, { "selected", Model.stringval7 }, { "style", "width: 100%" }, { "df", ":-직무분야" } }) +
+
학습기간 +
+ @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval8) ? (DateTime?)null : Convert.ToDateTime(Model.stringval8), new ViewDataDictionary { { "name", "stringval8" } }) ~ + @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval9) ? (DateTime?)null : Convert.ToDateTime(Model.stringval9), new ViewDataDictionary { { "name", "stringval9" } }) +
+
등급 +
+ @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "stringval10" }, { "selected", Model.stringval10 }, { "style", "width: 100%" }, { "df", ":-등급" } }) +
+
검색단어 +
+ @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "username:이름;userpno:주민등록번호;completeno:수료번호;asname:업체명;brno:사업자등록번호" }, { "name", "searchtype" }, { "selected", Model.searchtype }, { "style", "width: 100%" }, { "df", ":-유형선택" } }) +
+ +
+ @Html.Partial("./Partial/Text", Model.stringval12, Helpers.DicText(new NP.Model.TextDic() { Name = "searchtext", Value = Model.searchtext, PH = "단어를 입력하세요.", CssClass = "ff" })) +
+
교육목적 +
+ @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "stringval11" }, { "selected", Model.stringval11 }, { "style", "width: 100%" }, { "df", ":-교육목적" } }) +
+
+
+ +
+
+
+ @Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } }) +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach (var item in Model.Completions) + { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + +
수정교육상위분류교육하위분류교육유형사용자ID이름주민번호기술인분류교육구분교육목적등급직무분야과정명수료번호업체명업체주소사업자등록번호고용보험관리번호업태종목대표자교육시작일교육종료일교육이수시간소속협회학력직위교육생연락처업체담당자업체담당자연락처교육비환급액환급은행명환급계좌환급계좌예금주계산서이메일교육연도교육장
@item.pcgname@item.cgname@item.cshapename@item.userid@item.username@item.userpnostr@item.typemanName@item.edukind@item.typeeduName@item.typegradeName@item.typejobName@item.cname@item.completeno@item.asname@item.companyaddr @item.brno@item.eino@item.btype@item.bkind@item.ceoname@Convert.ToDateTime(@item.sdate).ToShortDateString()@Convert.ToDateTime(@item.edate).ToShortDateString()@item.studytime@item.association@item.slevelName@item.uduty@item.mobile@item.mname@item.mphone@item.payamt@item.rbankamt@item.rbank@item.rbankaccnum@item.tbankuser@item.taxemail@item.tyear@item.studyplaceName
+
+ @Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount) +
+
+
+

과거 증빙서류 수정닫기

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
과정분류 + + 교육유형 + +
이름 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.username", Style = "width:100%;" })) + 주민번호 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.userpno", Style = "width:100%;" })) +
기술인분류 + + 교육구분 + +
교육목적 + + 등급 + +
직무분야 + + 과정명 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.cgname", Style = "width:100%;" })) +
수료번호 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.completeno", Style = "width:100%;" })) + 업체명 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.companyname", Style = "width:100%;" })) +
업체주소 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.companyaddr", Style = "width:100%;" })) +
사업자등록번호 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.brno", Style = "width:100%;" })) + 고용보험관리번호 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.eino", Style = "width:100%;" })) +
업태 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.btype", Style = "width:100%;" })) + 종목 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.bkind", Style = "width:100%;" })) +
대표자 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.ceoname", Style = "width:100%;" })) + 교육일시작일 + @Html.Partial("./Partial/Date", null, new ViewDataDictionary { { "name", "document.ssdate" } }) +
교육일종료일 + @Html.Partial("./Partial/Date", null, new ViewDataDictionary { { "name", "document.sedate" } }) + 교육이수시간 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.sctime", Style = "width:100%;" })) +
소속협회 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.assign", Style = "width:100%;" })) + 학력 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.slevel", Style = "width:100%;" })) +
직위 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.uduty", Style = "width:100%;" })) + 교육생연락처 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.phone", Style = "width:100%;" })) +
업체담당자 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.mname", Style = "width:100%;" })) + 업체담당자연락처 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.mphone", Style = "width:100%;" })) +
교육비 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.sprice", Style = "width:100%;" })) + 환급액 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rprice", Style = "width:100%;" })) +
환급은행명 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rbank", Style = "width:100%;" })) + 환급계좌 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rbankno", Style = "width:100%;" })) +
환급계좌예금주 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rbankuser", Style = "width:100%;" })) + 계산서이메일 + @Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.taxemail", Style = "width:100%;" })) +
교육연도 + + 구분 + +
+
+ 수정 +
+
+@section scriptsHeader{ + @Html.Partial("./Partial/ScriptDate") +} +@section scripts{ + +} \ No newline at end of file diff --git a/Dao/DB/DB1.Scheme.txt b/Dao/DB/DB1.Scheme.txt index 1f764eb..56f90c6 100644 --- a/Dao/DB/DB1.Scheme.txt +++ b/Dao/DB/DB1.Scheme.txt @@ -173,8 +173,8 @@ create table users ( ,vssn varchar(100) ,di varchar(100) ,ci varchar(100) - ,ischkat TINYINT(4) NOT NULL DEFAULT 0, - ,authplatform TINYINT(4) NOT NULL DEFAULT 0, + ,ischkat TINYINT(4) NOT NULL DEFAULT 0 + ,authplatform TINYINT(4) NOT NULL DEFAULT 0 ,primary key(userno)); create table errors ( @@ -739,7 +739,8 @@ create table pplog ( ,isassignuser tinyint not null default 1 ,uduty varchar (20) ,slevel tinyint - ,isaccommodation tinyint + ,isaccommodation tinyint + ,association VARCHAR(100) NULL 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(pplno)); @@ -889,6 +890,7 @@ create table payitem ( ,rbank varchar (50) null ,rbankaccnum varbinary (200) null ,tbankuser varchar (30) null + ,rbankamt` INT(11) NOT NULL DEFAULT '0' ,fgno bigint ,cartno bigint ,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL diff --git a/Dao/MyBatis/Maps/CRoom.xml b/Dao/MyBatis/Maps/CRoom.xml index 01fd993..ecd4d56 100644 --- a/Dao/MyBatis/Maps/CRoom.xml +++ b/Dao/MyBatis/Maps/CRoom.xml @@ -3,6 +3,7 @@ + @@ -1512,5 +1513,63 @@ from lectinningpage where lectno = #lectno# and cmino = #cmino# and cpno = #cpno# + \ No newline at end of file diff --git a/Model/CM.cs b/Model/CM.cs index 5dd3f76..2e91a99 100644 --- a/Model/CM.cs +++ b/Model/CM.cs @@ -3489,4 +3489,336 @@ namespace NP.Model public int? termend { get; set; } public int? peopleend { get; set; } } + + /// + /// 수료정보 + /// + [Serializable] + public class Completion : BaseModel + { + /// + /// 수강키 + /// + public Int64 lectno { get; set; } + /// + /// 수료여부 null:미처리,0:미수료,1:수료 + /// + public int? iscomplete { get; set; } + /// + /// 수료여부명 + /// + public String iscompletename + { + get + { + return iscomplete == 1 ? "수료" : iscomplete == 0 ? "미수료" : "-"; + } + } + /// + /// 수료시간 + /// + public DateTime? completetime { get; set; } + /// + /// 수료번호 + /// + public String completeno { get; set; } + /// + /// 과정분류키 + /// + public int cgno { get; set; } + /// + /// 과정분류명 + /// + public String cgname { get; set; } + /// + /// 상위분류키 + /// + public int pcgno { get; set; } + /// + /// 상위분류명 + /// + public String pcgname { get; set; } + /// + /// 과정명 + /// + public String cname { get; set; } + /// + /// 학습시간 단위: Hour + /// + public int studytime { get; set; } + /// + /// 학습장소 + /// + public int studyplace { get; set; } + /// + /// 학습장소 + /// + public string studyplaceName { get; set; } + /// + /// 강의유형 0: 온라인, 1: 교육장, 2: 혼합(온+오프) + /// + public int cshape { get; set; } + public String cshapename + { + get + { + return cshape == 0 ? "온라인" : cshape == 1 ? "교육장 교육" : cshape == 2 ? "온라인 교육" : "-"; + } + } + /// + /// userno + /// + public String userno { get; set; } + /// + /// userid + /// + public String userid { get; set; } + /// + /// 이름 + /// + public String username { get; set; } + /// + /// 주민번호 + /// + public String userpno { get; set; } + public String userpnostr + { + get + { + return userpno != null && userpno.Length > 7 ? userpno.Insert(6, "-") : userpno; + } + } + /// + /// 교육생연락처 + /// + public String mobile { get; set; } + /// + /// 교육생이메일 + /// + public String email { get; set; } + /// + /// 소속협회 + /// + public String association { get; set; } + /// + /// 학력 + /// + public int slevel { get; set; } + /// + /// 학력명 + /// + public String slevelName + { + get + { + string name = string.Empty; + switch (slevel) + { + case 0: + name = "기타"; + break; + case 1: + name = "고졸"; + break; + case 2: + name = "학사"; + break; + case 3: + name = "석사"; + break; + case 4: + name = "박사"; + break; + default: + break; + } + //null,0:기타;1:고졸,2:학사;3:석사;4:박사 + return name; + } + } + /// + /// 직위 + /// + public String uduty { get; set; } + /// + /// 기술인분류 + /// + public int typeman { get; set; } + /// + /// 교육구분 + /// + public String edukind + { + get + { + return typeeduName == null ? "" : typeeduName.Contains("기본교육") ? "기본" : "전문"; + } + } + /// + /// 교육목적 + /// + public int typeedu { get; set; } + /// + /// 등급 + /// + public int typegrade { get; set; } + /// + /// 직무분야 + /// + public int typejob { get; set; } + /// + /// 기술인분류 + /// + public String typemanName { get; set; } + /// + /// 교육목적 + /// + public String typeeduName { get; set; } + /// + /// 등급 + /// + public String typegradeName { get; set; } + /// + /// 직무분야 + /// + public String typejobName { get; set; } + /// + /// 업체소속키 + /// + public int asno { get; set; } + /// + /// 업체법인명 + /// + public String asname { get; set; } + /// + /// 업체대표자명 + /// + public String ceoname { get; set; } + /// + /// 업체사업자등록번호 + /// + public String brno { get; set; } + /// + /// 업체고용보험관리번호 + /// + public String eino { get; set; } + /// + /// 업체업태 + /// + public String btype { get; set; } + /// + /// 업체종목 + /// + public String bkind { get; set; } + /// + /// 업체우편번호 + /// + public String post { get; set; } + /// + /// 업체주소 + /// + public String address1 { get; set; } + /// + /// 업체상세주소 + /// + public String address2 { get; set; } + /// + /// 업체주소 + /// + public String companyaddr + { + get + { + return $"{post} {address1} {address2}"; + } + } + /// + /// 업체담당자 + /// + public String mname { get; set; } + /// + /// 업체담당자연락처 + /// + public String mphone { get; set; } + /// + /// 계산서 이메일 + /// + public String taxemail { get; set; } + /// + /// 교육시작일 + /// + public DateTime? sdate { get; set; } + public String sdateymd + { + get + { + return sdate != null ? sdate.Value.ToString("yyyy-MM-dd") : null; + } + } + public String sdateymd2 + { + get + { + return sdate != null ? sdate.Value.ToString("yyyyMMdd") : null; + } + } + /// + /// 교육시작일(엑셀매칭용) + /// + public string sdatestring { get; set; } + /// + /// 교육종료일 + /// + public DateTime? edate { get; set; } + public String edateymd + { + get + { + return edate != null ? edate.Value.ToString("yyyy-MM-dd") : null; + } + } + public String edateymd2 + { + get + { + return edate != null ? edate.Value.ToString("yyyyMMdd") : null; + } + } + /// + /// 교육종료일(엑셀매칭용) + /// + public string edatestring { get; set; } + /// + /// 교육비 + /// + public String payamt { get; set; } + /// + /// 환급은행명 + /// + public String rbank { get; set; } + /// + /// 환급계좌 + /// + public String rbankaccnum { get; set; } + /// + /// 환급계좌예금주 + /// + public String tbankuser { get; set; } + /// + /// 환급액 + /// + public int rbankamt { get; set; } + /// + /// 교육연도 + /// + public String tyear { get; set; } + /// + /// payitem.pino + /// + public Int64 pino { get; set; } + /// + /// pplog.pplno + /// + public Int64 pplno { get; set; } + } } diff --git a/Model/VMCRoom.cs b/Model/VMCRoom.cs index 69b623b..c02a56d 100644 --- a/Model/VMCRoom.cs +++ b/Model/VMCRoom.cs @@ -58,5 +58,6 @@ namespace NP.Model public IList PayTaxes2 { get; set; } public IList PayTaxItem { get; set; } public IList Lects { get; set; } + public IList Completions { get; set; } } }