<기능개선>

1. PMS NO : 7812_7813_7816_7818
2. (주요)작업내용 
(1) Base/Controller/ACommon.cs
 - 7818, 일괄업로드시 조건 수정
(2) BO/Views/croom/documentspast.cshtml
 - 7818, 저장시 데이터 검증 로직 수정
3) BO/Views/croom/grade.cshtml
 - 7813, 계정별 분기 삭제
(4)BO/Views/croom/gradeall.cshtml
 - 7813, 계정별 분기 삭제
(5) BO/Views/croom/gradeall0_1.cshtml
 - 7813, 계정별 분기 삭제
(6) Dao/MyBatis/Maps/Grade.xml
 - studydays 항목 추가
(7) Dao/MyBatis/Maps/Lect.xml
 - 7813, 종합탭에 맞춰 집합교육 조건 추가
(8) FO/Views/CRoom/Index.cshtml
 - 7812, 조건에 따른 집합교육 나오지 않게 수정
(9) FO/Views/Home/Index.cshtml
 - 7813, 스마트 검색 상위 분기 수정시 하위 영향도 수정
This commit is contained in:
jity7777 2023-05-02 05:56:34 +00:00
parent 69eff5aa75
commit 69572d81d4
11 changed files with 186 additions and 45 deletions

View File

@ -400,6 +400,36 @@
} }
} }
function update() { function update() {
if ($("#document_userpno").val() == "") {
$("#document_userpno").focus();
msg2("주민번호를 입력해주세요.");
} else if (!$.isNumeric($("#document_userpno").val().replace(/-/gi, "")) || $("#document_userpno").val().replace(/-/gi, "").length != 13) {
$("#document_userpno").focus();
msg2("잘못된 주민번호입니다.");
} else if ($("#document_ssdate").val() == "") {
$("#document_ssdate").focus();
msg2("교육일시작일 입력해주세요.");
} else if ($("#document_sedate").val() == "") {
$("#document_sedate").focus();
msg2("교육일종료일 입력해주세요.");
} else if ($("#document_completeno").val() == "") {
$("#document_completeno").focus();
msg2("수료번호를 입력해주세요.");
} else if ($("#document_cgname").val() == "") {
$("#document_cgname").focus();
msg2("과정명을 입력해주세요.");
}else {
if (confirm("과거 증빙서류를 수정하시겠습니까??")) {
var data = {};
$.each($("#documentbox input, #documentbox select"), function () {
data[this.name.replace(/document./gi, "")] = this.value;
});
capp("/acommon/DocumnetsPastUpdate", data, "cbupdate");
}
}
}
function updateOld() {
if ($("#document_username").val() == "") { if ($("#document_username").val() == "") {
$("#document_username").focus(); $("#document_username").focus();
msg2("이름을 입력해주세요."); msg2("이름을 입력해주세요.");

View File

@ -40,11 +40,11 @@
@*Html.Partial("grade" + (Model.tabidx==2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)*@ @*Html.Partial("grade" + (Model.tabidx==2 || Model.tabidx == 3 ? 2 : Model.tabidx), Model)*@
@{ @{
string callpage = "grade" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx); string callpage = "grade" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx);
List<int> usernos = new List<int>() { 27460, 31049, 110, 163 }; //List<int> usernos = new List<int>() { 27460, 31049, 110, 163 };
if(usernos.Contains(ViewBag.userno) && Model.tabidx == 0) //if(usernos.Contains(ViewBag.userno) && Model.tabidx == 0)
{ //{
callpage += "_1"; // callpage += "_1";
} // }
} }
@Html.Partial(callpage, Model) @Html.Partial(callpage, Model)

View File

@ -134,11 +134,11 @@
@{ @{
string callpage = "gradeall" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx); string callpage = "gradeall" + (Model.tabidx == 2 || Model.tabidx == 3 ? 2 : Model.tabidx);
List<int> usernos = new List<int>() { 27460, 31049, 110, 163 }; //List<int> usernos = new List<int>() { 27460, 31049, 110, 163 };
if (usernos.Contains(ViewBag.userno) && Model.tabidx == 0) //if (usernos.Contains(ViewBag.userno) && Model.tabidx == 0)
{ //{
callpage += "_1"; // callpage += "_1";
} //}
} }
@Html.Partial(callpage, Model) @Html.Partial(callpage, Model)

View File

@ -82,7 +82,9 @@
} }
else else
{ {
<td>@d.edate.Value.ToShortDateString()</td> <td>
@((d.cshape == 0 && d.isrebate == 0 ? (d.payoktime).AddDays((double)d.studydays) : d.edate).Value.ToShortDateString())
</td>
} }
@*진도율*@ @*진도율*@
@ -98,19 +100,19 @@
@*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@ @*<td>@( d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>*@
@*최종평가*@ @*최종평가*@
<td>@(d.exfpoint)</td> <td>@(d.exfpoint)</td>
@*과제*@ @*과제*@
<td>@d.subjectpoint</td> <td>@d.subjectpoint</td>
@*토론*@ @*토론*@
<td style="display:none;">@( d.sd1cnt < 1 ? "-" : d.sd1cnt > 0 && d.dblv4 < 1 ? "미제출//" : d.dblv4.ToString())</td> <td style="display:none;">@( d.sd1cnt < 1 ? "-" : d.sd1cnt > 0 && d.dblv4 < 1 ? "미제출//" : d.dblv4.ToString())</td>
@*환산점수*@ @*환산점수*@
<td> <td>
@d.tpoint @d.tpoint
<input type="hidden" id="tpointList" value="(a:@d.apoint / m:@d.mpoint / f:@d.fpoint / s:@d.spoint / d:@d.dpoint)"> <input type="hidden" id="tpointList" value="(a:@d.apoint / m:@d.mpoint / f:@d.fpoint / s:@d.spoint / d:@d.dpoint)">
</td> </td>
@if (d.isoffabs == 1) @if (d.isoffabs == 1)
{ {

View File

@ -55,8 +55,8 @@
<!--<add key="talk" value="https://alimtalk-api.bizmsg.kr/v2/sender/send,?,?,?,?,?,023103312" />--> <!--<add key="talk" value="https://alimtalk-api.bizmsg.kr/v2/sender/send,?,?,?,?,?,023103312" />-->
<!--<add key="configpath" value="Product" />--> <!--<add key="configpath" value="Product" />-->
<!--<add key="configpath" value="ProductDev" />--> <add key="configpath" value="ProductDev" />
<add key="configpath" value="staging" /> <!--<add key="configpath" value="staging" />-->
<add key="lgdacomConfigPath" value="D:\3rdparti\lgdacomyicte" /> <add key="lgdacomConfigPath" value="D:\3rdparti\lgdacomyicte" />

View File

@ -1788,14 +1788,32 @@ namespace NP.Base.Controllers
d.sedatestring = string.Format("{0}-{1}-{2}", d.sedatestring.Substring(0, 4), d.sedatestring.Substring(4, 2), d.sedatestring.Substring(6, 2)); d.sedatestring = string.Format("{0}-{1}-{2}", d.sedatestring.Substring(0, 4), d.sedatestring.Substring(4, 2), d.sedatestring.Substring(6, 2));
d.sedate = Convert.ToDateTime(d.sedatestring); d.sedate = Convert.ToDateTime(d.sedatestring);
} }
if (string.IsNullOrEmpty(d.username.Trim()))
{ if(string.IsNullOrEmpty(d.userpno.Trim()))
return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 이름이 공란입니다." });
}
else if(string.IsNullOrEmpty(d.userpno.Trim()))
{ {
return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 주민번호가 공란입니다." }); 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)) else if (!long.TryParse(d.brno.Trim(), out tryParseResult))
{ {
return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 사업자등록번호는 숫자만 입력가능합니다." }); return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 사업자등록번호는 숫자만 입력가능합니다." });
@ -1824,6 +1842,7 @@ namespace NP.Base.Controllers
{ {
return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육년도는 숫자만 입력가능합니다." }); return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 교육년도는 숫자만 입력가능합니다." });
} }
*/
d.uno = SUserInfo.UserNo; d.uno = SUserInfo.UserNo;
d.uip = GetUserIP(); d.uip = GetUserIP();
} }

View File

@ -978,7 +978,7 @@
,CAST(AES_DECRYPT(UNHEX(ppl.mphone), <include refid="sql.digest"></include>) AS char) mphone ,CAST(AES_DECRYPT(UNHEX(ppl.mphone), <include refid="sql.digest"></include>) AS char) mphone
,CAST(AES_DECRYPT(UNHEX(ppl.taxemail), <include refid="sql.digest"></include>) AS char) taxemail ,CAST(AES_DECRYPT(UNHEX(ppl.taxemail), <include refid="sql.digest"></include>) AS char) taxemail
,u.username,u.userid,u.slevel,u.uduty ,u.username,u.userid,u.slevel,u.uduty
,b.iscomplete,b.completetime,b.completeno,b.sdate,b.edate ,b.iscomplete,b.completetime,b.completeno,b.sdate,b.edate, c.studydays
,concat(substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),1,6),'-',substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),7,7)) userpno ,concat(substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),1,6),'-',substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),7,7)) userpno
,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile ,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile
,b.cmisno ,b.cmisno

View File

@ -1078,19 +1078,25 @@
,g.cname studyplacename ,g.cname studyplacename
,a.iscomplete ,a.iscomplete
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno ,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">d.username</isNull>) rno
,count(a.cdt) over() pagetotalcount ,count(a.cdt) over() pagetotalcount
,cast(AES_DECRYPT(UNHEX(d.mobile), 'np123@!' ) as char) as mobile ,cast(AES_DECRYPT(UNHEX(d.mobile), 'np123@!' ) as char) as mobile
from lect a from lect a
inner join cmex b on b.isdel=0 and b.cmno = a.cmno inner join cmex b on b.isdel=0 and b.cmno = a.cmno
inner join cm b2 on b2.cmno = b.cmno inner join cm b2 on b2.cmno = b.cmno
inner join pay p on p.payno = a.payno inner join pay p on p.payno = a.payno
left outer join lectex c on c.lectno = a.lectno and c.exno =b.exno left outer join lectex c on c.lectno = a.lectno and c.exno =b.exno
inner join users d on d.userno = a.userno inner join users d on d.userno = a.userno
left outer join assign e on e.asno = d.asno left outer join assign e on e.asno = d.asno
left outer join cminningscd f on f.cmisno = a.cmisno left outer join cminningscd f on f.cmisno = a.cmisno
left outer join comcode g on g.ccode = f.studyplace and g.isuse =1 left outer join comcode g on g.ccode = f.studyplace and g.isuse =1
where a.status=1 and a.ischanged=0
<isNotNull property="extype">and b.extype = #extype#</isNotNull> left outer join cmev ce on b2.cmno=ce.cmno
left outer join lect l on a.lectno = l.lectno
left outer join cminningscd cis on l.cmisno = cis.cmisno
left outer join lectinning li on a.lectno = li.lectno and cis.cmino = li.cmino
where a.status=1 and a.ischanged=0
<isNotNull property="extype">and b.extype = #extype#</isNotNull>
<isNotNull property="cmno">and a.cmno = #cmno#</isNotNull> <isNotNull property="cmno">and a.cmno = #cmno#</isNotNull>
<isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull> <isNotNull property="isrebate">and a.isrebate=#isrebate#</isNotNull>
<isNotNull property="edate">and (date_format((case when b2.cshape = 2 and f.eend is not null then f.eend else a.edate end),'%Y-%m-%d') = #edate#)</isNotNull> <isNotNull property="edate">and (date_format((case when b2.cshape = 2 and f.eend is not null then f.eend else a.edate end),'%Y-%m-%d') = #edate#)</isNotNull>
@ -1117,6 +1123,19 @@
<isNotEmpty property="asname">and e.asname like concat('%',#asname#,'%')</isNotEmpty> <isNotEmpty property="asname">and e.asname like concat('%',#asname#,'%')</isNotEmpty>
<isNotNull property="mobile">and (cast(AES_DECRYPT(UNHEX(d.mobile), 'np123@!' ) as char) like concat('%',#mobile#,'%'))</isNotNull> <isNotNull property="mobile">and (cast(AES_DECRYPT(UNHEX(d.mobile), 'np123@!' ) as char) like concat('%',#mobile#,'%'))</isNotNull>
<isNotNull property="ustatus">and d.status = #ustatus#</isNotNull> <isNotNull property="ustatus">and d.status = #ustatus#</isNotNull>
<isNotNull property="attendance" >
<!--해당없음-->
<isEqual property="attendance" compareValue="1" prepend="and"> ifnull(ce.isoffabs,0) = 0</isEqual>
<!--대상자(미입력/출석/결석)-->
<isEqual property="attendance" compareValue="2" prepend="and"> ifnull(ce.isoffabs,0) = 1</isEqual>
<!--미입력-->
<isEqual property="attendance" compareValue="3" prepend="and">ifnull(ce.isoffabs,0) = 1 and li.istatus is null </isEqual>
<!--출석-->
<isEqual property="attendance" compareValue="4" prepend="and">ifnull(ce.isoffabs,0) = 1 and ifnull(li.istatus,-1) = 2</isEqual>
<!--결석-->
<isEqual property="attendance" compareValue="5" prepend="and">ifnull(ce.isoffabs,0) = 1 and ifnull(li.istatus,-1) = 0</isEqual>
</isNotNull>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
order by a.rno order by a.rno
@ -1408,10 +1427,16 @@
inner join users d on d.userno = a.userno inner join users d on d.userno = a.userno
left outer join assign e on e.asno = d.asno left outer join assign e on e.asno = d.asno
<isNotNull property="isproduct">left outer join mch_source_v_lectsd_list f on f.DOC_ID = concat(b.sdno ,'_',a.lectno )</isNotNull> <isNotNull property="isproduct">left outer join mch_source_v_lectsd_list f on f.DOC_ID = concat(b.sdno ,'_',a.lectno )</isNotNull>
left outer join cminningscd h on h.cmisno = a.cmisno left outer join cminningscd h on h.cmisno = a.cmisno
left outer join comcode i on i.ccode = h.studyplace and i.isuse=1 left outer join comcode i on i.ccode = h.studyplace and i.isuse=1
where a.status=1 and a.ischanged=0
<isNotNull property="edate"> left outer join cmev ce on a.cmno=ce.cmno
<!--left outer join lect l on a.lectno = l.lectno-->
<!--left outer join cminningscd cis on a.cmisno = cis.cmisno-->
left outer join lectinning li on a.lectno = li.lectno and h.cmino = li.cmino
where a.status=1 and a.ischanged=0
<isNotNull property="edate">
<isNotEmpty property="edate">and date_format((case when g.cshape = 2 and h.eend is not null then h.eend else a.edate end),'%Y-%m-%d') = #edate#</isNotEmpty> <isNotEmpty property="edate">and date_format((case when g.cshape = 2 and h.eend is not null then h.eend else a.edate end),'%Y-%m-%d') = #edate#</isNotEmpty>
</isNotNull> </isNotNull>
<isNotNull property="edate1"> <isNotNull property="edate1">
@ -1477,7 +1502,20 @@
<isNotNull property="ustatus"> <isNotNull property="ustatus">
<isNotEmpty property="ustatus">and d.status = #ustatus#</isNotEmpty> <isNotEmpty property="ustatus">and d.status = #ustatus#</isNotEmpty>
</isNotNull> </isNotNull>
<isNotNull property="attendance" >
<!--해당없음-->
<isEqual property="attendance" compareValue="1" prepend="and"> ifnull(ce.isoffabs,0) = 0</isEqual>
<!--대상자(미입력/출석/결석)-->
<isEqual property="attendance" compareValue="2" prepend="and"> ifnull(ce.isoffabs,0) = 1</isEqual>
<!--미입력-->
<isEqual property="attendance" compareValue="3" prepend="and">ifnull(ce.isoffabs,0) = 1 and li.istatus is null </isEqual>
<!--출석-->
<isEqual property="attendance" compareValue="4" prepend="and">ifnull(ce.isoffabs,0) = 1 and ifnull(li.istatus,-1) = 2</isEqual>
<!--결석-->
<isEqual property="attendance" compareValue="5" prepend="and">ifnull(ce.isoffabs,0) = 1 and ifnull(li.istatus,-1) = 0</isEqual>
</isNotNull>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
order by rno order by rno

View File

@ -65,7 +65,7 @@
{ {
<div class="lctcScore"> <div class="lctcScore">
<div class="lctCont" style="padding-bottom:0"> <div class="lctCont" style="padding-bottom:0">
@if (Model.Lect.isoffabs != null && Model.Lect.typeedu != 32) @if (Model.Lect.isoffabs != null && Model.Lect.isoffabs == 1)
{ {
<h5>집체교육 안내</h5> <h5>집체교육 안내</h5>
<table> <table>

View File

@ -297,6 +297,11 @@
$("#indexForm").submit(); $("#indexForm").submit();
}); });
$("#msSel6 span").on("change", function () {
$("#msSel6 span").text("전문분야")
$("#msSel6").removeClass("active").addClass("disable")
})
$(".msBtn").click(function () { $(".msBtn").click(function () {
if (@ViewBag.SSUserNo <= 0) { if (@ViewBag.SSUserNo <= 0) {
msg("로그인 후 진행 할 수 있습니다.", null, null, null, "location.href='" + '/Account/Index' + "'"); msg("로그인 후 진행 할 수 있습니다.", null, null, null, "location.href='" + '/Account/Index' + "'");
@ -368,6 +373,45 @@
}); });
function schIpt(num, code, name) { function schIpt(num, code, name) {
switch (num) {
case '1':
$('#msSel2 > span').text("기술인분류");
$('#msSel2').removeClass('active');
$('#msSel2').addClass('disable');
$("#sch2").val("")
$("#sch3").val("")
$("#sch4").val("")
$("#sch5").val("")
$("#sch6").val("")
case '2':
$('#msSel3 > span').text("교육목적");
$('#msSel3').removeClass('active');
$('#msSel3').addClass('disable');
$("#sch3").val("")
$("#sch4").val("")
$("#sch5").val("")
$("#sch6").val("")
case '3':
$('#msSel4 > span').text("현재등급");
$('#msSel4').removeClass('active');
$('#msSel4').addClass('disable');
$("#sch4").val("")
$("#sch5").val("")
$("#sch6").val("")
case '4':
$('#msSel5 > span').text("직무분야");
$('#msSel5').removeClass('active');
$('#msSel5').addClass('disable');
$("#sch5").val("")
$("#sch6").val("")
case '5':
$('#msSel6 > span').text("전문분야");
$('#msSel6').removeClass('active');
$('#msSel6').addClass('disable');
$("#sch6").val("")
}
$('#sch' + num).val(code); $('#sch' + num).val(code);
$('#msSel' + num + '>span').text(name); $('#msSel' + num + '>span').text(name);
$('.msSel > div').slideUp(300); $('.msSel > div').slideUp(300);
@ -375,7 +419,6 @@
$('#msSel' + (Number(num) + 1)).removeClass('disable'); $('#msSel' + (Number(num) + 1)).removeClass('disable');
$('#msSel' + (Number(num) + 1)).addClass('active'); $('#msSel' + (Number(num) + 1)).addClass('active');
let tempCnt = 0; let tempCnt = 0;
$('#msSel' + (Number(num) + 1) + ' div ul li').each(function () { $('#msSel' + (Number(num) + 1) + ' div ul li').each(function () {
if ($(this).css("display") != 'none') { if ($(this).css("display") != 'none') {
@ -474,6 +517,12 @@
if (num == 5) { if (num == 5) {
$("#msSel6 > div > div > ul > li").hide(); $("#msSel6 > div > div > ul > li").hide();
$("[id='lijob" + code + "']").css("display", "")
if ($("#msSel6 span").text() != "전문분야") {
$("#msSel6 span").text("전문분야")
}
if ($("#msSel6").attr("class").indexOf("disable") > -1) { if ($("#msSel6").attr("class").indexOf("disable") > -1) {
//해당 div도 같이 숨김 --> javascript:schIpt('5', '57', '품질관리');">품질관리 //해당 div도 같이 숨김 --> javascript:schIpt('5', '57', '품질관리');">품질관리
$("#msSel6 > div").css("display", "none"); $("#msSel6 > div").css("display", "none");
@ -517,6 +566,8 @@
//msSel5Code = code; //msSel5Code = code;
$("[id='lijob" + code + "']").css("display", "") $("[id='lijob" + code + "']").css("display", "")
$("#msSel6 span").text("전문분야")
$("#msSel6").removeClass("active").addClass("disable")
} }
$('#sch' + num).val(code); $('#sch' + num).val(code);

View File

@ -1135,6 +1135,7 @@ namespace NP.Model
} }
} }
public DateTime? edate { get; set; } public DateTime? edate { get; set; }
public Double? studydays { get; set; }
public String edateymd public String edateymd
{ {
get { return edate != null ? Convert.ToDateTime(edate).ToShortDateString() : null; } get { return edate != null ? Convert.ToDateTime(edate).ToShortDateString() : null; }