승급교육 예외처리 개발
This commit is contained in:
parent
7134e500dc
commit
b296fe29c1
|
|
@ -624,17 +624,17 @@ namespace NP.Base.Controllers
|
|||
/// ### ty 교육신청제한
|
||||
public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno, string job1 = "")
|
||||
{
|
||||
int result = 0; // 0 이면 수강 가능, 그외 수강 불가
|
||||
result = CheckUserLect(man, cgcode, edu, grade, cmno, pcmno, SUserInfo.UserNo);
|
||||
//int result = 0; // 0 이면 수강 가능, 그외 수강 불가
|
||||
//result = CheckUserLect(man, cgcode, edu, grade, cmno, pcmno, SUserInfo.UserNo);
|
||||
|
||||
#region + // 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
|
||||
//var result = new KeyValuePair<int, string>();
|
||||
//result = CheckUserLectInfo(cmno, pcmno, SUserInfo.UserNo, man, cgcode, edu, grade, job1);
|
||||
var result = new KeyValuePair<int, string>();
|
||||
result = CheckUserLectInfo(cmno, pcmno, SUserInfo.UserNo, man, cgcode, edu, grade, job1);
|
||||
|
||||
//return JsonBack(result.Key);
|
||||
return JsonBack(result.Key);
|
||||
#endregion
|
||||
|
||||
return JsonBack(result);
|
||||
//return JsonBack(result);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -872,7 +872,7 @@ namespace NP.Base.Controllers
|
|||
|
||||
#region + (탈출) 5. 교육목적 -> 승급교육(35) 관련 제한 조건
|
||||
// 승급교육(35) 관련 제한 조건 (A, B, C, D 그룹)
|
||||
if (edu == "35")
|
||||
if (edu == "35") //교육목적
|
||||
{
|
||||
// 제약의 공통 전제조건: 고급(38) 또는 특급(39) 등급인 경우에만 적용
|
||||
bool isAdvancedGrade = grade == "38" || grade == "39";
|
||||
|
|
@ -880,30 +880,46 @@ namespace NP.Base.Controllers
|
|||
if (isAdvancedGrade)
|
||||
{
|
||||
// A: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
|
||||
// ((설계시공 또는 건설사업관리) / (역량강화 또는 전문분야))
|
||||
bool isApplyingForGroupA = (man == "25" || man == "28") && (cgcode == "103" || cgcode == "104");
|
||||
// ((설계시공 또는 건설사업관리) / (역량강화(103,104) 또는 전문분야(105)))
|
||||
bool isApplyingForGroupA = (man == "25" || man == "28") && (cgcode == "103" || cgcode == "104" || cgcode == "105");
|
||||
if (isApplyingForGroupA)
|
||||
{
|
||||
bool hasExistingInGroupA = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35
|
||||
&& l.TYPEGRADE.ToString() == grade
|
||||
//설계시공기술인
|
||||
bool hasExistingInGroupA25 = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35 //승급교육
|
||||
&& (l.TYPEGRADE.ToString() == grade)
|
||||
&& l.TYPEJOB.ToString() == job1
|
||||
&& (
|
||||
(l.TYPEMAN.ToString() == "25" || l.TYPEMAN.ToString() == "28")
|
||||
&& (l.CGCODE == "103" || l.CGCODE == "104")
|
||||
(l.TYPEMAN.ToString() == "25")
|
||||
&& (l.CGCODE == "103" || l.CGCODE == "104" || l.CGCODE == "105")
|
||||
)
|
||||
);
|
||||
|
||||
if (hasExistingInGroupA)
|
||||
if (hasExistingInGroupA25)
|
||||
{
|
||||
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
|
||||
}
|
||||
|
||||
//건설사업관리기술인
|
||||
bool hasExistingInGroupA28 = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35 //승급교육
|
||||
&& (l.TYPEGRADE.ToString() == grade)
|
||||
&& l.TYPEJOB.ToString() == job1
|
||||
&& (
|
||||
(l.TYPEMAN.ToString() == "28")
|
||||
&& (l.CGCODE == "103" || l.CGCODE == "104" || l.CGCODE == "105")
|
||||
)
|
||||
);
|
||||
|
||||
if (hasExistingInGroupA28) {
|
||||
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
|
||||
}
|
||||
}
|
||||
|
||||
bool isApplyingForGroupA2 = (man == "25" || man == "28") && (cgcode == "105");
|
||||
if (isApplyingForGroupA)
|
||||
if (isApplyingForGroupA2)
|
||||
{
|
||||
bool hasExistingInGroupA = lectEnrolls.Any(l =>
|
||||
bool hasExistingInGroupA2 = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35
|
||||
&& l.TYPEGRADE.ToString() == grade
|
||||
&& l.TYPEJOB.ToString() == job1
|
||||
|
|
@ -913,14 +929,14 @@ namespace NP.Base.Controllers
|
|||
)
|
||||
);
|
||||
|
||||
if (isApplyingForGroupA2)
|
||||
if (hasExistingInGroupA2)
|
||||
{
|
||||
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
|
||||
}
|
||||
}
|
||||
|
||||
bool isApplyingForGroupA3 = (man == "25" || man == "28") && (cgcode == "107");
|
||||
if (isApplyingForGroupA)
|
||||
if (isApplyingForGroupA3)
|
||||
{
|
||||
bool hasExistingInGroupA3 = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35
|
||||
|
|
@ -932,14 +948,12 @@ namespace NP.Base.Controllers
|
|||
)
|
||||
);
|
||||
|
||||
if (isApplyingForGroupA2)
|
||||
if (hasExistingInGroupA3)
|
||||
{
|
||||
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
// B: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
|
||||
// ((설계시공/특성화) 또는 (건설사업관리/전문분야))
|
||||
bool isApplyingForGroupB = (man == "25" && cgcode == "107") || (man == "28" && cgcode == "105");
|
||||
|
|
@ -981,7 +995,6 @@ namespace NP.Base.Controllers
|
|||
return new KeyValuePair<int, string>(-20, "승급교육 제약C");
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// D: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
|
||||
// ((건설사업관리/건설기술인 전문교육))
|
||||
|
|
@ -1003,7 +1016,6 @@ namespace NP.Base.Controllers
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -876,26 +876,26 @@ namespace NP.FO.Controllers
|
|||
ViewBag.IsMain = true;
|
||||
|
||||
#region + (사용중) ViewBag.rslt 신청 제약 조건
|
||||
var fOCommonController = new Base.Controllers.FOCommonController();
|
||||
fOCommonController.Dao = new Dao.CommonDao();
|
||||
ViewBag.rslt = fOCommonController.CheckUserLect(vm.stringval3, vm.stringval21, vm.stringval4, vm.stringval5, int.Parse(vm.stringval17), int.Parse(vm.stringval18), SUserInfo.UserNo);
|
||||
//var fOCommonController = new Base.Controllers.FOCommonController();
|
||||
//fOCommonController.Dao = new Dao.CommonDao();
|
||||
//ViewBag.rslt = fOCommonController.CheckUserLect(vm.stringval3, vm.stringval21, vm.stringval4, vm.stringval5, int.Parse(vm.stringval17), int.Parse(vm.stringval18), SUserInfo.UserNo);
|
||||
|
||||
#endregion
|
||||
|
||||
#region + 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
|
||||
//var result = new KeyValuePair<int, string>();
|
||||
//result = CheckUserLectInfo(
|
||||
// cmno: Convert.ToInt16(vm.stringval17),
|
||||
// pcmno: Convert.ToInt16(vm.stringval18),
|
||||
// userno: SUserInfo.UserNo,
|
||||
// man: vm.stringval3,
|
||||
// cgcode: vm.stringval21,
|
||||
// edu: vm.stringval4,
|
||||
// grade: vm.stringval5,
|
||||
// job1: vm.stringval6
|
||||
// );
|
||||
var result = new KeyValuePair<int, string>();
|
||||
result = CheckUserLectInfo(
|
||||
cmno: Convert.ToInt16(vm.stringval17),
|
||||
pcmno: Convert.ToInt16(vm.stringval18),
|
||||
userno: SUserInfo.UserNo,
|
||||
man: vm.stringval3,
|
||||
cgcode: vm.stringval21,
|
||||
edu: vm.stringval4,
|
||||
grade: vm.stringval5,
|
||||
job1: vm.stringval6
|
||||
);
|
||||
|
||||
//ViewBag.rslt = result.Key;
|
||||
ViewBag.rslt = result.Key;
|
||||
#endregion
|
||||
|
||||
#region + ComCodes2 ~ 6 까지 설정
|
||||
|
|
@ -1048,6 +1048,30 @@ namespace NP.FO.Controllers
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if (edu == "30")
|
||||
//{
|
||||
// // 1) 현재 신청하는 교육이 제한 대상인지 확인
|
||||
// bool isApplyingForRestrictedFirstEdu =
|
||||
// (man == "25" || man == "27" || man == "28")
|
||||
// && (cgcode == "103" || cgcode == "104");
|
||||
|
||||
// if (isApplyingForRestrictedFirstEdu)
|
||||
// {
|
||||
// // 2) 이미 신청 내역 중에 제한 대상에 해당하는 최초교육이 있는지 확인
|
||||
// bool hasExistingRestrictedFirstEdu = lectEnrolls.Any(l =>
|
||||
// l.TYPEEDU == 30
|
||||
// && (l.TYPEMAN == 25 || l.TYPEMAN == 27 || l.TYPEMAN == 28)
|
||||
// && (l.CGCODE == "107")
|
||||
// );
|
||||
|
||||
// // 조건을 만족하는 기존 교육이 발견되면, 중복신청 막기 처리
|
||||
// if (hasExistingRestrictedFirstEdu)
|
||||
// {
|
||||
// return new KeyValuePair<int, string>(-10, "최초교육 제약");
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
#endregion
|
||||
|
||||
#region + (탈출) 5. 교육목적 -> 승급교육(35) 관련 제한 조건
|
||||
|
|
@ -1061,7 +1085,7 @@ namespace NP.FO.Controllers
|
|||
{
|
||||
// A: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
|
||||
// ((설계시공 또는 건설사업관리) / (역량강화 또는 전문분야))
|
||||
bool isApplyingForGroupA = (man == "25" || man == "28") && (cgcode == "103" || cgcode == "104" || cgcode == "105");
|
||||
bool isApplyingForGroupA = (man == "25" || man == "28") && (cgcode == "103" || cgcode == "104");
|
||||
if (isApplyingForGroupA)
|
||||
{
|
||||
bool hasExistingInGroupA = lectEnrolls.Any(l =>
|
||||
|
|
@ -1070,7 +1094,7 @@ namespace NP.FO.Controllers
|
|||
&& l.TYPEJOB.ToString() == job1
|
||||
&& (
|
||||
(l.TYPEMAN.ToString() == "25" || l.TYPEMAN.ToString() == "28")
|
||||
&& (l.CGCODE == "103" || l.CGCODE == "104" || l.CGCODE == "105")
|
||||
&& (l.CGCODE == "103" || l.CGCODE == "104")
|
||||
)
|
||||
);
|
||||
|
||||
|
|
@ -1080,6 +1104,44 @@ namespace NP.FO.Controllers
|
|||
}
|
||||
}
|
||||
|
||||
bool isApplyingForGroupA2 = (man == "25" || man == "28") && (cgcode == "105");
|
||||
if (isApplyingForGroupA2)
|
||||
{
|
||||
bool hasExistingInGroupA2 = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35
|
||||
&& l.TYPEGRADE.ToString() == grade
|
||||
&& l.TYPEJOB.ToString() == job1
|
||||
&& (
|
||||
(l.TYPEMAN.ToString() == "25" || l.TYPEMAN.ToString() == "28")
|
||||
&& (l.CGCODE == "105")
|
||||
)
|
||||
);
|
||||
|
||||
if (isApplyingForGroupA2)
|
||||
{
|
||||
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
|
||||
}
|
||||
}
|
||||
|
||||
bool isApplyingForGroupA3 = (man == "25" || man == "28") && (cgcode == "107");
|
||||
if (isApplyingForGroupA3)
|
||||
{
|
||||
bool hasExistingInGroupA3 = lectEnrolls.Any(l =>
|
||||
l.TYPEEDU == 35
|
||||
&& l.TYPEGRADE.ToString() == grade
|
||||
&& l.TYPEJOB.ToString() == job1
|
||||
&& (
|
||||
(l.TYPEMAN.ToString() == "25" || l.TYPEMAN.ToString() == "28")
|
||||
&& (l.CGCODE == "107")
|
||||
)
|
||||
);
|
||||
|
||||
if (isApplyingForGroupA3)
|
||||
{
|
||||
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
|
||||
}
|
||||
}
|
||||
|
||||
// B: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
|
||||
// ((설계시공/특성화) 또는 (건설사업관리/전문분야))
|
||||
bool isApplyingForGroupB = (man == "25" && cgcode == "107") || (man == "28" && cgcode == "105");
|
||||
|
|
@ -1142,7 +1204,6 @@ namespace NP.FO.Controllers
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
|
@ -1161,6 +1222,7 @@ namespace NP.FO.Controllers
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -699,10 +699,11 @@
|
|||
var uno = ('@ViewBag.SSUserNo' != '') ? parseInt(@ViewBag.SSUserNo) : 0;
|
||||
|
||||
if (uno > 0) {
|
||||
|
||||
$("#cmino").val(cmino);
|
||||
$("#cmisno").val(cmisno);
|
||||
|
||||
checkLectCompleteEdu(cmno, "@Model.stringval3", "@Model.stringval4", "@Model.stringval5", "@Model.stringval6", $("#pcmno_" + pcmno + "_cgcode").val(), pcmno, "chkLect");
|
||||
checkLectCompleteEdu(cmno, "@Model.stringval3", "@Model.stringval4", "@Model.stringval5", "@Model.stringval6", $("#pcmno_" + pcmno + "_cgcode").val(), pcmno, "chkLectNew");
|
||||
}
|
||||
else {
|
||||
|
||||
|
|
@ -743,6 +744,16 @@
|
|||
_cgcode = cgcode;
|
||||
_grade = grade;
|
||||
|
||||
//capp("/focommon/GetCheckLectIs",
|
||||
// {
|
||||
// cmno: cmno,
|
||||
// man: man,
|
||||
// edu: edu,
|
||||
// grade: grade,
|
||||
// job1: job,
|
||||
// cgcode: cgcode,
|
||||
// pcmno: pcmno
|
||||
// }, "chkLect"); // 1
|
||||
capp("/focommon/GetCheckLectIs",
|
||||
{
|
||||
cmno: cmno,
|
||||
|
|
@ -752,7 +763,7 @@
|
|||
job1: job,
|
||||
cgcode: cgcode,
|
||||
pcmno: pcmno
|
||||
}, "chkLect"); // 1
|
||||
}, "chkLectNew"); // 1
|
||||
}
|
||||
|
||||
//20220729 개발전
|
||||
|
|
@ -773,46 +784,46 @@
|
|||
}
|
||||
|
||||
//
|
||||
//function chkLectNew() {
|
||||
// if (capResult.code == 1000) {
|
||||
// var resultCode = capResult.obj;
|
||||
function chkLectNew() {
|
||||
if (capResult.code == 1000) {
|
||||
var resultCode = capResult.obj;
|
||||
|
||||
// if (resultCode == 0) {
|
||||
// checkLectIsComplete(_cmno);
|
||||
// }
|
||||
// else {
|
||||
// switch (resultCode) {
|
||||
// case -2:
|
||||
// msg("<span style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
|
||||
// break;
|
||||
// case -10:
|
||||
// case -20:
|
||||
// case -30:
|
||||
// msg(`
|
||||
// <span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>
|
||||
// 이 교육은 아래의 사유 중 하나에 해당되어 신청되지 않는 교육입니다.<br><br>
|
||||
// <p class='hello' style=' color: red; text-align:left; font-size:13pt;'>
|
||||
// - 선택한 교육목적으로 인정되지 않는 경우<br>
|
||||
// - 이미 신청 또는 수료한 교육과 함께 수료하면 인정이 되지 않는 경우
|
||||
// </p><br>
|
||||
// 따라서 현재 화면에 나와있는 다른 교육으로 신청하여 주시기 바랍니다.<br><br>
|
||||
// <span style='display: block; margin - left: calc(50 % - 77px);'>
|
||||
// 문의 : 1544 - 7660
|
||||
// </span>
|
||||
// </span>
|
||||
// `);
|
||||
// break;
|
||||
// case -100:
|
||||
// msg("<span style='font-size: 15pt;'>잠시 후 다시 시도해주세요.</span>");
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
if (resultCode == 0) {
|
||||
checkLectIsComplete(_cmno);
|
||||
}
|
||||
else {
|
||||
switch (resultCode) {
|
||||
case -2:
|
||||
msg("<span style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
|
||||
break;
|
||||
case -10:
|
||||
case -20:
|
||||
case -30:
|
||||
msg(`
|
||||
<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>
|
||||
이 교육은 아래의 사유 중 하나에 해당되어 신청되지 않는 교육입니다.<br><br>
|
||||
<p class='hello' style=' color: red; text-align:left; font-size:13pt;'>
|
||||
- 선택한 교육목적으로 인정되지 않는 경우<br>
|
||||
- 이미 신청 또는 수료한 교육과 함께 수료하면 인정이 되지 않는 경우
|
||||
</p><br>
|
||||
따라서 현재 화면에 나와있는 다른 교육으로 신청하여 주시기 바랍니다.<br><br>
|
||||
<span style='display: block; margin - left: calc(50 % - 77px);'>
|
||||
문의 : 1544 - 7660
|
||||
</span>
|
||||
</span>
|
||||
`);
|
||||
break;
|
||||
case -100:
|
||||
msg("<span style='font-size: 15pt;'>잠시 후 다시 시도해주세요.</span>");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// }
|
||||
}
|
||||
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -564,7 +564,7 @@
|
|||
</form>
|
||||
}
|
||||
|
||||
@* // 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
|
||||
|
||||
<div class="edu-popup-container">
|
||||
<div id="edu-modal-overlay"></div>
|
||||
<div id="edu-layer-popup">
|
||||
|
|
@ -602,7 +602,7 @@
|
|||
<button id="edu-cancel-btn" onclick="closeEducationPopup();">취소</button>
|
||||
</footer>
|
||||
</div>
|
||||
</div>*@
|
||||
</div>
|
||||
|
||||
<textarea style="display: none;" id="texthide01">@ViewBag.POPUPS</textarea>
|
||||
|
||||
|
|
@ -693,20 +693,19 @@
|
|||
}
|
||||
|
||||
|
||||
@* // 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
|
||||
// 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
|
||||
// 건설사업관리(계속교육) 신청 시 주의사항
|
||||
if ($("#stringval3").val() == "28"
|
||||
&& $("#stringval4").val() == "31"
|
||||
&& ($("#stringval5").val() == "38" || $("#stringval5").val() == "39")
|
||||
) {
|
||||
showEducationPopup();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$("#indexForm").attr("action", "/Course/SmartSearch").submit();
|
||||
}
|
||||
*@
|
||||
|
||||
$("#indexForm").attr("action", "/Course/SmartSearch").submit();
|
||||
|
||||
//$("#indexForm").attr("action", "/Course/SmartSearch").submit();
|
||||
|
||||
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue