diff --git a/Base/Controller/ACommon.cs b/Base/Controller/ACommon.cs index be03788..c56e385 100644 --- a/Base/Controller/ACommon.cs +++ b/Base/Controller/ACommon.cs @@ -1789,64 +1789,93 @@ namespace NP.Base.Controllers d.sedate = Convert.ToDateTime(d.sedatestring); } - if(string.IsNullOrEmpty(d.userpno.Trim())) + if(!string.IsNullOrWhiteSpace(d.kind) && !string.IsNullOrWhiteSpace(d.cg)) { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 주민번호가 공란입니다." }); - } - else if (string.IsNullOrEmpty(d.cgname.Trim())) + if (string.IsNullOrEmpty(d.userpno.Trim())) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 주민번호가 공란입니다." }); + } + else if (string.IsNullOrEmpty(d.cgname.Trim())) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 과정명이 공란입니다." }); + } + //else if (string.IsNullOrEmpty(d.completeno.Trim())) + //{ + // return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 수료번호가 공란입니다." }); + //} + else if (string.IsNullOrEmpty(d.ssdatestring.Trim())) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육시작일이 공란입니다." }); + } + else if (string.IsNullOrEmpty(d.sedatestring.Trim())) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육종료일이 공란입니다." }); + } + /* + else if (string.IsNullOrEmpty(d.username.Trim())) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 이름이 공란입니다." }); + } + else if (!long.TryParse(d.brno.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 사업자등록번호는 숫자만 입력가능합니다." }); + } + else if (!long.TryParse(d.eino.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 고용보험관리번호는 숫자만 입력가능합니다." }); + } + else if (!long.TryParse(d.sctime.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육이수시간은 숫자만 입력가능합니다." }); + } + else if (!long.TryParse(d.sprice.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육비는 숫자만 입력가능합니다." }); + } + else if (!long.TryParse(d.rprice.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 환급액은 숫자만 입력가능합니다." }); + } + else if (!long.TryParse(d.rbankno.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 환급계좌는 숫자만 입력가능합니다." }); + } + else if (!long.TryParse(d.syear.Trim(), out tryParseResult)) + { + return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육년도는 숫자만 입력가능합니다." }); + } + */ + d.uno = SUserInfo.UserNo; + d.uip = GetUserIP(); + ++i; + } + } + + int result = 0; + int cnt = 0; + int limit = 5; // 10000; + List tempData = new List(); + + foreach(var item in data) + { + ++cnt; + tempData.Add(item); + + if (cnt > limit) { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 과정명이 공란입니다." }); + result += Dao.Save("cr.documnetspast.batch", new Hashtable() { { "Ds", tempData } }); + + cnt = 0; + tempData = new List(); } - else if (string.IsNullOrEmpty(d.completeno.Trim())) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 수료번호가 공란입니다." }); - } - else if (string.IsNullOrEmpty(d.ssdatestring.Trim())) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육시작일이 공란입니다." }); - } - else if (string.IsNullOrEmpty(d.sedatestring.Trim())) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육종료일이 공란입니다." }); - } - /* - else if (string.IsNullOrEmpty(d.username.Trim())) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 이름이 공란입니다." }); - } - else if (!long.TryParse(d.brno.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 사업자등록번호는 숫자만 입력가능합니다." }); - } - else if (!long.TryParse(d.eino.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 고용보험관리번호는 숫자만 입력가능합니다." }); - } - else if (!long.TryParse(d.sctime.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육이수시간은 숫자만 입력가능합니다." }); - } - else if (!long.TryParse(d.sprice.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육비는 숫자만 입력가능합니다." }); - } - else if (!long.TryParse(d.rprice.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 환급액은 숫자만 입력가능합니다." }); - } - else if (!long.TryParse(d.rbankno.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 환급계좌는 숫자만 입력가능합니다." }); - } - else if (!long.TryParse(d.syear.Trim(), out tryParseResult)) - { - return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육년도는 숫자만 입력가능합니다." }); - } - */ - d.uno = SUserInfo.UserNo; - d.uip = GetUserIP(); - } - return JsonOK(Dao.Save("cr.documnetspast.batch", new Hashtable() { { "Ds", data } })); + } + + if(tempData.Count > 0) + { + result += Dao.Save("cr.documnetspast.batch", new Hashtable() { { "Ds", tempData } }); + } + + return JsonOK(result); } } } diff --git a/Dao/MyBatis/Maps/CRoom.xml b/Dao/MyBatis/Maps/CRoom.xml index 178df43..9825020 100644 --- a/Dao/MyBatis/Maps/CRoom.xml +++ b/Dao/MyBatis/Maps/CRoom.xml @@ -903,13 +903,13 @@ ,count(p.payno) over() pagetotalcount ,scd.estart cmiestart, scd.eend cmieeend, scd.studyplace cmistudyplace ,pi.rbank , CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), ) AS char) rbankaccnum, pi.tbankuser - ,cc1.cname tgname,cc2.cname tename - ,cc3.cname tmname,cc4.cname tjname + ,cc1.cname tgname,cc2.cname tename, cg.cgcode + ,cc3.cname tmname,cc4.cname tjname from ( - select 0 isexamready,p.payno,max(case when pi.ptype in (0,1,3,4) then pi.pino else 0 end) pi1,min(pi.pino) pi2,count(pi.pino) ccount - from pay p - inner join payitem pi on pi.payno=p.payno - and pi.ptype=#piptype# + select 0 isexamready,p.payno,max(case when pi.ptype in (0,1,3,4) then pi.pino else 0 end) pi1,min(pi.pino) pi2,count(pi.pino) ccount + from pay p + inner join payitem pi on pi.payno=p.payno + and pi.ptype=#piptype# and pi.ptype in (0, 4) and pi.isrebate in ($isrebates$) inner join users u on u.userno=p.userno left outer join assign ua on ua.asno=u.asno @@ -970,28 +970,29 @@ and (u.username=#usernameiditemname# or u.userid=#usernameiditemname# or ex.exname like concat('%',#usernameiditemname#,'%') or ua.asname like concat('%',#usernameiditemname#,'%')) and a.exno=0 cast(AES_DECRYPT(UNHEX(u.mobile), 'np123@!' ) as char) like concat('%',#mobile#,'%') - ) a - left outer join pay p on a.isexamready=0 and p.payno=a.payno - left outer join payitem pi on a.isexamready=0 and pi.pino=case when a.pi1=0 then a.pi2 else a.pi1 end - left outer join examuser ue on a.isexamready=1 and ue.exno=a.payno and ue.userno=a.pi1 - left outer join exam uee on a.isexamready=1 and uee.exno=ue.exno - inner join users u on u.userno=case when a.isexamready=0 then p.userno else ue.userno end - left outer join pplog pp on p.pplno = pp.pplno - left outer join assign ua on ua.asno=u.asno - left outer join payrfditem pri on a.isexamready=0 and pri.pino=pi.pino - left outer join payrfd pr on a.isexamready=0 and pr.rfdno=pri.rfdno - left outer join cm cm on a.isexamready=0 and pi.ptype in (0,1,4) and cm.cmno=pi.itemno - left outer join lect le on a.isexamready=0 and le.pino=pi.pino and le.ischanged=0 - left outer join book bk on a.isexamready=0 and pi.ptype=2 and bk.bkno=pi.itemno - left outer join exam ex on a.isexamready=0 and ex.exno=pi.itemno - left outer join examuser exu on exu.exno=ex.exno and exu.userno=p.userno - left outer join pplog ppl on ppl.pplno = p.pplno - left outer join cminningscd scd on scd.cmisno = le.cmisno - left outer join comcode cc1 on cc1.ccode = ppl.typegrade - left outer join comcode cc2 on cc2.ccode = ppl.typeedu - left outer join comcode cc3 on cc3.ccode = ppl.typeman - left outer join comcode cc4 on cc4.ccode = ppl.typejob - + ) a + left outer join pay p on a.isexamready=0 and p.payno=a.payno + left outer join payitem pi on a.isexamready=0 and pi.pino=case when a.pi1=0 then a.pi2 else a.pi1 end + left outer join examuser ue on a.isexamready=1 and ue.exno=a.payno and ue.userno=a.pi1 + left outer join exam uee on a.isexamready=1 and uee.exno=ue.exno + inner join users u on u.userno=case when a.isexamready=0 then p.userno else ue.userno end + left outer join pplog pp on p.pplno = pp.pplno + left outer join assign ua on ua.asno=u.asno + left outer join payrfditem pri on a.isexamready=0 and pri.pino=pi.pino + left outer join payrfd pr on a.isexamready=0 and pr.rfdno=pri.rfdno + left outer join cm cm on a.isexamready=0 and pi.ptype in (0,1,4) and cm.cmno=pi.itemno + left outer join cg cg on cm.cgno = cg.cgno + left outer join lect le on a.isexamready=0 and le.pino=pi.pino and le.ischanged=0 + left outer join book bk on a.isexamready=0 and pi.ptype=2 and bk.bkno=pi.itemno + left outer join exam ex on a.isexamready=0 and ex.exno=pi.itemno + left outer join examuser exu on exu.exno=ex.exno and exu.userno=p.userno + left outer join pplog ppl on ppl.pplno = p.pplno + left outer join cminningscd scd on scd.cmisno = le.cmisno + left outer join comcode cc1 on cc1.ccode = ppl.typegrade + left outer join comcode cc2 on cc2.ccode = ppl.typeedu + left outer join comcode cc3 on cc3.ccode = ppl.typeman + left outer join comcode cc4 on cc4.ccode = ppl.typejob + scd.estart >= #estart# scd.eend <= #eend# scd.studyplace=#studyplace# @@ -1622,7 +1623,7 @@ where no=#no# - insert into docprintpast (kind, cg, cshape, username, userpno, typeman, edukind, typeedu, typegrade, typejob, cgname, completeno, companyname, companyaddr, brno, eino, btype, bkind, ceoname, ssdate, sedate, sctime, assign, slevel, uduty, phone, mname, mphone, sprice, rprice, rbank, rbankno, rbankuser, taxemail, syear, ) + insert into docprintpast(kind, cg, cshape, username, userpno, typeman, edukind, typeedu, typegrade, typejob, cgname, completeno, companyname, companyaddr, brno, eino, btype, bkind, ceoname, ssdate, sedate, sctime, assign, slevel, uduty, phone, mname, mphone, sprice, rprice, rbank, rbankno, rbankuser, taxemail, syear, ) select #Ds[].kind#, #Ds[].cg#, #Ds[].cshape#, #Ds[].username# , HEX(AES_ENCRYPT(#Ds[].userpno#, )) diff --git a/FO/Views/CRoom/Index.cshtml b/FO/Views/CRoom/Index.cshtml index 616e0b4..8a89ba7 100644 --- a/FO/Views/CRoom/Index.cshtml +++ b/FO/Views/CRoom/Index.cshtml @@ -298,6 +298,8 @@ viewcontents(_cmino, false,@Model.croomlectno); } else { _authplatform = capResult.msg; + + // ### 모바일 인증 처리 if(_authplatform == "0"){ msg("학습인증수단이 없는 회원입니다. 정보수정을 통해 학습인증수단을 입력해주세요."); } else if (_authplatform == "1") { @@ -305,6 +307,8 @@ } else if (_authplatform == "2") { confirmtoggle(true, "학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 회차 당 1회에 한 해 진행됩니다.
본인인증을 하시겠습니까?", "chkmobile()"); } + // ### 모바일 인증 중단 처리 + // viewcontents(_cmino, false,@Model.croomlectno); } } else { msg("휴대폰 번호가 공란입니다.
정보수정을 통해 번호를 입력해주세요."); diff --git a/FO/Views/CRoom/Innings.cshtml b/FO/Views/CRoom/Innings.cshtml index 56e7131..f7c3a48 100644 --- a/FO/Views/CRoom/Innings.cshtml +++ b/FO/Views/CRoom/Innings.cshtml @@ -202,6 +202,7 @@ //viewcontents(_cmino, false,@Model.croomlectno); } else { _authplatform = capResult.msg; + // ### 모바일 인증 처리 if(_authplatform == "0"){ msg("학습인증수단이 없는 회원입니다. 정보수정을 통해 학습인증수단을 입력해주세요."); } else if (_authplatform == "1") { @@ -209,6 +210,8 @@ } else if (_authplatform == "2") { confirmtoggle(true, "학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 회차 당 1회에 한 해 진행됩니다.
본인인증을 하시겠습니까?", "chkmobile()"); } + // ### 모바일 인증 중단 처리 + //msg("학습을 시작합니다.", null, null, null, "viewcontents("+_cmino+",false,@(Model.croomlectno))"); } } else { msg("휴대폰 번호가 공란입니다.
정보수정을 통해 번호를 입력해주세요."); diff --git a/Model/Pay.cs b/Model/Pay.cs index 894d98c..53cf341 100644 --- a/Model/Pay.cs +++ b/Model/Pay.cs @@ -620,7 +620,8 @@ namespace NP.Model { get { - return tename == null ? "" : tename.Contains("기본교육") ? "기본" : "전문"; + return cgcode == "101" ? "기본" : "전문"; + //return tename == null ? "" : tename.Contains("기본교육") ? "기본" : "전문"; } } /// @@ -640,6 +641,7 @@ namespace NP.Model public String userpno { get; set; } public string studytime { get; set; } + public string cgcode { get; set; } } ///