(추가개발) 스마트검색 신규개발 되었으나 롤백 (개발된 코드는 주석처리)

This commit is contained in:
iyak 2025-09-25 08:05:25 +00:00
parent de1fe9a8ce
commit 28e764a24c
12 changed files with 1573 additions and 863 deletions

View File

@ -97,7 +97,9 @@ namespace NP.BO.Controllers
} }
} }
//else if (u.RetireDate != null) { LoginStatus = 5; } //else if (u.RetireDate != null) { LoginStatus = 5; }
else if (!"192.168.1.3,127.0.0.1,192.168.0.87,192.168.0.56,1.214.45.218".Contains(SUserInfo.LoginIP) && !u.userpass.Equals(NP.Base.Lib.KISA_SHA256.SHA256Hash(vm.User.userpass.Trim()))) { //else if (!"192.168.1.3,127.0.0.1,192.168.0.87,192.168.0.56,1.214.45.218".Contains(SUserInfo.LoginIP) && !u.userpass.Equals(NP.Base.Lib.KISA_SHA256.SHA256Hash(vm.User.userpass.Trim()))) {
else if (!u.userpass.Equals(NP.Base.Lib.KISA_SHA256.SHA256Hash(vm.User.userpass.Trim())))
{
LoginStatus = 2; LoginStatus = 2;
// 로그인 실패 카운트 증가 // 로그인 실패 카운트 증가
vm.logincnt++; vm.logincnt++;

View File

@ -178,7 +178,7 @@ namespace NP.Base.Controllers
} }
bool isSkip = false; bool isSkip = false;
isSkip = Helpers.IsSkipIPorHost(IpHostSkipGb.PassWord, ip, Request.ServerVariables["HTTP_HOST"]); isSkip = Helpers.IsSkipIPorHost(IpHostSkipGb.SmsAuth, ip, Request.ServerVariables["HTTP_HOST"]);
if (isSkip) if (isSkip)
{ {
@ -197,17 +197,10 @@ namespace NP.Base.Controllers
return JsonBack(new { code = -1 }); return JsonBack(new { code = -1 });
} }
//210707 eduwreq 특정ip인증허용 정책 폐지
//if (ip.StartsWith("10.10.4.") || ip.StartsWith("10.10.13.") || ip == "192.168.103.13" || ip == "192.168.0.87" || ip == "121.140.58.113")
//return JsonBack(new JsonRtn() { code = 1});
//else
//{
//정보에 모바일번호 없는 경우
if (u != null && !string.IsNullOrEmpty(u.mobile)) if (u != null && !string.IsNullOrEmpty(u.mobile))
{ {
return JsonBack(new { code = 1000, ip = ip, mobile = u.mobile, no = u.userno }); return JsonBack(new { code = 1000, ip = ip, mobile = u.mobile, no = u.userno });
} }
//기타에러
else else
{ {
return JsonBack(new { code = -2 }); return JsonBack(new { code = -2 });

View File

@ -1,16 +1,17 @@
using System; using IBatisNet.Common.Transaction;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NP.Base.Auth;
using NP.Base.ENUM;
using NP.Frame;
using NP.Model;
using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Web; using System.Web;
using System.Web.Mvc;
using NP.Model;
using System.Collections;
using NP.Base.Auth;
using NP.Base.ENUM;
using System.Web.ModelBinding; using System.Web.ModelBinding;
using Newtonsoft.Json.Linq; using System.Web.Mvc;
using Newtonsoft.Json;
namespace NP.Base.Controllers namespace NP.Base.Controllers
{ {
@ -364,8 +365,9 @@ namespace NP.Base.Controllers
"아래 링크를 클릭하셔서 비밀번호를 재설정해주세요.<br /><br />" + "아래 링크를 클릭하셔서 비밀번호를 재설정해주세요.<br /><br />" +
"<a href=\"" + fronturl + "/Account/FindMe?pwcallno=" + pwcallno + "&userno=" + user.userno + "\" target=\"_blank\" style=\"color: #0094ff;\">비밀번호 재설정</a><br /><br />이 링크는 24시간 뒤 만료됩니다."; "<a href=\"" + fronturl + "/Account/FindMe?pwcallno=" + pwcallno + "&userno=" + user.userno + "\" target=\"_blank\" style=\"color: #0094ff;\">비밀번호 재설정</a><br /><br />이 링크는 24시간 뒤 만료됩니다.";
//int mailReuslt = SendEmailNew("[영남건설기술교육원] 비밀번호 찾기 안내", MHtml, email);
return JsonOK(SendEmail(masteremail.Split(';')[1], GetInt(masteremail.Split(';')[2]), masteremail.Split(';')[3], masteremail.Split(';')[4], 999, user.email, masteremail.Split(';')[0], "영남건설기술교육원 운영자", "[영남건설기술교육원] 비밀번호 찾기 안내", MHtml, "", "0:0")); var mailResult = SendEmail(masteremail.Split(';')[1], GetInt(masteremail.Split(';')[2]), masteremail.Split(';')[3], masteremail.Split(';')[4], 999, user.email, masteremail.Split(';')[0], "영남건설기술교육원 운영자", "[영남건설기술교육원] 비밀번호 찾기 안내", MHtml, "", "0:0");
return JsonOK(mailResult);
} }
else else
{ {
@ -656,16 +658,23 @@ namespace NP.Base.Controllers
[HttpPost] [HttpPost]
/// ### ty 교육신청제한 /// ### ty 교육신청제한
public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno) public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno, string job1 = "")
{ {
int result = 0; // 0 이면 수강 가능, 그외 수강 불가 int result = 0; // 0 이면 수강 가능, 그외 수강 불가
result = CheckUserLect(man, cgcode, edu, grade, cmno, pcmno, SUserInfo.UserNo); 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);
//return JsonBack(result.Key);
#endregion
return JsonBack(result); return JsonBack(result);
} }
#region +
// pms: 5640 적용 // pms: 5640 적용
//public int CheckUserLect(string man, string cgcode, string edu, string grade, int cmno, int pcmno, long userno) //public int CheckUserLect(string man, string cgcode, string edu, string grade, int cmno, int pcmno, long userno)
//{ //{
@ -761,7 +770,297 @@ namespace NP.Base.Controllers
// return result; // return result;
//} //}
#endregion
#region + 2025-09 ( , )
// 본문에 주석이 너무많아 주석처리는 아니고 그냥 미사용
// FO > CourseController.CheckUserLect, FOCommonController.CheckUserLect 동일한 코드 (Dao문제로 2개구현, 공통이나, 서비스로 뺴야한다)
/// <summary>
/// 수강 제약조건 확인 (FO > CourseController.CheckUserLect 와 동일, 함께 수정해야함 => Dao문제로 2개구현)
/// </summary>
/// <param name="cmno">강좌키</param>
/// <param name="pcmno">연계강좌키</param>
/// <param name="userno">회원번호</param>
/// <param name="man">기술인분류</param>
/// <param name="cgcode"></param>
/// <param name="edu">교육목적</param>
/// <param name="grade">등급</param>
/// <returns> Code (0:수강가능, -2,동일한과정 재신청 제약, -10:최초교육제약, -20:승급교육제약, -100:에러) , Message </returns>
public KeyValuePair<int, string> CheckUserLectInfo(int cmno, int pcmno, long userno, string man, string cgcode, string edu, string grade, string job1 = "")
{
var result = new KeyValuePair<int, string>(0, "수강신청 가능");
#region + DB에서
/*****************************************************************************************************
* a) SELECT * FROM comcode WHERE cgroup = 'typeman' AND isUse = 1
* b) SELECT * FROM cg WHERE isUse = 1
* c) SELECT * FROM comcode WHERE cgroup = 'typeedu' AND isUse = 1
* d) SELECT * FROM comcode WHERE cgroup = 'typegrade' AND isUse = 1
* e) SELECT * FROM comcode WHERE cgroup = 'typejob' AND isUse = 1
* f) SELECT * FROM comcode WHERE cgroup LIKE 'typejob%' AND isUse = 1
*******************************************************************************************************/
#endregion
// result (0:수강가능, 이 외 수강불가)
try
{
#region + () 1. (lectEnrolls , Request ...)
// 조건: 건설사업관리기술인(28) + 초급/중급(36,37) + 역량강화(103,104) 은 신청불가
if (edu == "31")
{
bool isRestrictedContinueEdu =
man == "28"
&& (grade == "36" || grade == "37")
&& (cgcode == "103" || cgcode == "104");
if (isRestrictedContinueEdu)
{
return new KeyValuePair<int, string>(-30, "계속교육 제약");
}
}
#endregion
#region + Get: lect.enroll.get (lectEnrolls = )
var p = new Hashtable();
p.Add("uno", userno);
IList<LectEnroll> lectEnrolls = Dao.Get<LectEnroll>("lect.enroll.get", p);
#endregion
// 회원의 이전 수강신청내역이 있다면
if (lectEnrolls != null && lectEnrolls.Any())
{
#region + () 2. 1 (cm.cmno)
if (lectEnrolls.Any(l => l.cmno == cmno))
{
// -2는 동일 과정 중복
return new KeyValuePair<int, string>(-2, "동일강좌 중복제약");
}
#endregion
#region + () 3. -> (29)
if (edu == "29")
{
// 기존 신청 내역 중 기본교육(29)이 있는지 확인 (기본교육은 1개만 신청가능)
bool hasExistingBasicEdu = lectEnrolls.Any(l => l.TYPEEDU == 29);
if (hasExistingBasicEdu)
{
return new KeyValuePair<int, string>(-30, "기본교육 제약");
}
}
#endregion
#region + () 4. -> (30)
// - 최초교육(30)의 기술인분류(25,27,28)가 과정분류 역량강화(103,104)인 최초교육은 1개만 신청 가능.
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 == "103" || l.CGCODE == "104")
);
// 조건을 만족하는 기존 교육이 발견되면, 중복신청 막기 처리
if (hasExistingRestrictedFirstEdu)
{
return new KeyValuePair<int, string>(-10, "최초교육 제약");
}
}
}
//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)
// 승급교육(35) 관련 제한 조건 (A, B, C, D 그룹)
if (edu == "35")
{
// 제약의 공통 전제조건: 고급(38) 또는 특급(39) 등급인 경우에만 적용
bool isAdvancedGrade = grade == "38" || grade == "39";
if (isAdvancedGrade)
{
// A: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
// ((설계시공 또는 건설사업관리) / (역량강화 또는 전문분야))
bool isApplyingForGroupA = (man == "25" || man == "28") && (cgcode == "103" || cgcode == "104");
if (isApplyingForGroupA)
{
bool hasExistingInGroupA = 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")
)
);
if (hasExistingInGroupA)
{
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
}
}
bool isApplyingForGroupA2 = (man == "25" || man == "28") && (cgcode == "105");
if (isApplyingForGroupA)
{
bool hasExistingInGroupA = 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 (isApplyingForGroupA)
{
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 (isApplyingForGroupA2)
{
return new KeyValuePair<int, string>(-20, "승급교육 제약A");
}
}
/*
// B: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
// ((설계시공/특성화) 또는 (건설사업관리/전문분야))
bool isApplyingForGroupB = (man == "25" && cgcode == "107") || (man == "28" && cgcode == "105");
if (isApplyingForGroupB)
{
bool hasExistingInGroupB = lectEnrolls.Any(l =>
l.TYPEEDU == 35
&& l.TYPEGRADE.ToString() == grade
&& l.TYPEJOB.ToString() == job1
&& (
(l.TYPEMAN.ToString() == "25" && l.CGCODE == "107")
|| (l.TYPEMAN.ToString() == "28" && l.CGCODE == "105")
)
);
if (hasExistingInGroupB)
{
return new KeyValuePair<int, string>(-20, "승급교육 제약B");
}
}
// C: 등급, 동일 직무분야 내에서 1개만 신청 가능
// ((설계시공/특성화) 또는 (건설사업관리/역량강화))
bool isApplyingForGroupC = (man == "25" && cgcode == "107") || (man == "28" && (cgcode == "103" || cgcode == "104"));
if (isApplyingForGroupC)
{
bool hasExistingInGroupC = lectEnrolls.Any(l =>
l.TYPEEDU == 35
&& l.TYPEGRADE.ToString() == grade
&& l.TYPEJOB.ToString() == job1
&& (
(l.TYPEMAN.ToString() == "25" && l.CGCODE == "107")
|| (l.TYPEMAN.ToString() == "28" && (l.CGCODE == "103" || l.CGCODE == "104"))
)
);
if (hasExistingInGroupC)
{
return new KeyValuePair<int, string>(-20, "승급교육 제약C");
}
}
*/
// D: 동일 등급, 동일 직무분야 내에서 1개만 신청 가능
// ((건설사업관리/건설기술인 전문교육))
bool isApplyingForGroupD = man == "28" && cgcode == "102";
if (isApplyingForGroupD)
{
bool hasExistingInGroupD = lectEnrolls.Any(l =>
l.TYPEEDU == 35
&& l.TYPEGRADE.ToString() == grade
&& l.TYPEJOB.ToString() == job1
&& (l.TYPEMAN.ToString() == "28" && l.CGCODE == "102")
);
if (hasExistingInGroupD)
{
return new KeyValuePair<int, string>(-20, "승급교육 제약D");
}
}
}
}
#endregion
}
else
{
// 이전에 수강 신청한 내역이 아무것도 없기에 제약조건을 걸 필요가 없음.
result = new KeyValuePair<int, string>(0, "이전에 아무것도 수강신청한 내역이 없음");
}
}
catch (Exception ex)
{
SetError($"CheckUserLectInfo: {ex.Message}");
result = new KeyValuePair<int, string>(-100, ex.Message);
}
return result;
}
#endregion
public int CheckUserLect(string man, string cgcode, string edu, string grade, int cmno, int pcmno, long userno) public int CheckUserLect(string man, string cgcode, string edu, string grade, int cmno, int pcmno, long userno)
{ {
@ -771,7 +1070,9 @@ namespace NP.Base.Controllers
string[] cgcodes = new string[0]; string[] cgcodes = new string[0];
string[] edus = new string[0]; string[] edus = new string[0];
if (DateTime.Now > DateTime.Parse("2030-01-02 00:00"))// ### ty 2024년 추가건이나 현재 적용대기로 전달 받음 // 실제로직은 ELSE절이다.
if (DateTime.Now > DateTime.Parse("2099-01-02 00:00"))// ### ty 2024년 추가건이나 현재 적용대기로 전달 받음
{ {
// ### ty 2024년 적용!!! // ### ty 2024년 적용!!!

View File

@ -12,6 +12,7 @@
<typeAlias alias="lectexq" type="NP.Model.LectEXQ, NP.Model" /> <typeAlias alias="lectexq" type="NP.Model.LectEXQ, NP.Model" />
<typeAlias alias="lectsd" type="NP.Model.LectSD, NP.Model" /> <typeAlias alias="lectsd" type="NP.Model.LectSD, NP.Model" />
<typeAlias alias="lectsdboard" type="NP.Model.LectSDBoard, NP.Model" /> <typeAlias alias="lectsdboard" type="NP.Model.LectSDBoard, NP.Model" />
<typeAlias alias="lectenroll" type="NP.Model.LectEnroll, NP.Model" />
<typeAlias alias="exam" type="NP.Model.Exam, NP.Model"/> <typeAlias alias="exam" type="NP.Model.Exam, NP.Model"/>
<typeAlias alias="examuser" type="NP.Model.ExamUser, NP.Model"/> <typeAlias alias="examuser" type="NP.Model.ExamUser, NP.Model"/>
<typeAlias alias="examuserrenew" type="NP.Model.ExamUserRenew, NP.Model"/> <typeAlias alias="examuserrenew" type="NP.Model.ExamUserRenew, NP.Model"/>
@ -2852,5 +2853,44 @@
, l.uip=#uip# , l.uip=#uip#
where l.lectno = #lectno#; where l.lectno = #lectno#;
</update> </update>
<!-- 회원 수강신청 내역 -->
<select id="lect.enroll.get" parameterClass="hashtable" resultClass="lectenroll">
<![CDATA[
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT a.USERNO
, b.lectno
, b.ISCOMPLETE
, b.completeno
, c.cmno
, c.CNAME
, d.PCGNO
, e.PAYNO
, e.PSTATUS
, f.CSHAPE
, f.TYPEMAN
, f.TYPEEDU
, f.TYPEGRADE
, f.TYPEJOB
, d.CGCODE
, d.CGNAME
, f.CMISNO
FROM users a
INNER JOIN lect b
ON a.USERNO = b.USERNO
INNER JOIN cm c
ON b.CMNO = c.CMNO
INNER JOIN cg d
ON c.cgno = d.cgno
INNER JOIN pay e
ON b.payno = e.PAYNO
INNER JOIN pplog f
ON b.USERNO = e.USERNO AND b.CMNO = f.CMNO AND e.PPLNO = f.PPLNO
WHERE b.STATUS = 1
AND (e.PSTATUS = 1 OR e.PSTATUS = 22)
AND b.USERNO = #uno#;
]]>
</select>
</statements> </statements>
</sqlMap> </sqlMap>

View File

@ -1,19 +1,15 @@
using System; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NP.Model;
using NP.Model.ENUM;
using OkCert3Com;
using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Web; using System.Web;
using System.Web.Mvc; using System.Web.Mvc;
using NP.Model;
using System.Security.Claims;
using System.Collections;
using System.Text;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using OkCert3Com;
using XPayClientNet; using XPayClientNet;
using NP.Model.ENUM;
namespace NP.FO.Controllers namespace NP.FO.Controllers
{ {

View File

@ -701,6 +701,7 @@ namespace NP.FO.Controllers
/// <returns></returns> /// <returns></returns>
public ActionResult SmartSearch(VMCourse vm) public ActionResult SmartSearch(VMCourse vm)
{ {
#region +
/* /*
stringval : 0: ( ) stringval : 0: ( )
stringval2 : SKILL (1: , 2:) - cshape stringval2 : SKILL (1: , 2:) - cshape
@ -713,6 +714,7 @@ namespace NP.FO.Controllers
WHERE isuse = 1 WHERE isuse = 1
AND cgroup IN ('typejob40','typejob41','typejob42','typejob43','typejob44','typejob45','typejob46','typejob47','typejob48','typejob49')) AND cgroup IN ('typejob40','typejob41','typejob42','typejob43','typejob44','typejob45','typejob46','typejob47','typejob48','typejob49'))
*/ */
#endregion
var p = new Hashtable(); var p = new Hashtable();
@ -753,11 +755,23 @@ namespace NP.FO.Controllers
vm.CMs = Dao.Get<CM>("cm.cms", p).ToList(); vm.CMs = Dao.Get<CM>("cm.cms", p).ToList();
} }
// pms7301 에 따른 정렬조건
vm.CMs = vm.CMs?.OrderBy(c =>
c.cgcode == "107" ? 1 : // 1. 특성화
(c.cgcode == "103" || c.cgcode == "104") ? 2 : // 2. 역량강화
c.cgcode == "102" ? 3 : // 3. 직무
c.cgcode == "105" ? 4 : // 4. 전문
c.cgcode == "101" ? 5 : // 5. 기본
6 // 그 외
).ToList() ?? new List<CM>();
#region + ComCodes2 ~ 6
vm.ComCodes2 = GetComCodes("typeman"); vm.ComCodes2 = GetComCodes("typeman");
vm.ComCodes3 = GetComCodes("typeedu"); vm.ComCodes3 = GetComCodes("typeedu");
vm.ComCodes4 = GetComCodes("typegrade"); vm.ComCodes4 = GetComCodes("typegrade");
vm.ComCodes5 = GetComCodes("typejob"); vm.ComCodes5 = GetComCodes("typejob");
vm.ComCodes6 = GetComCodes("typejobitem"); vm.ComCodes6 = GetComCodes("typejobitem");
#endregion
bool getComCheck = true; bool getComCheck = true;

View File

@ -231,6 +231,7 @@
<Content Include="css\jquery-ui-1.12.1\jquery-ui.min.css" /> <Content Include="css\jquery-ui-1.12.1\jquery-ui.min.css" />
<Content Include="css\lecture.css" /> <Content Include="css\lecture.css" />
<Content Include="css\dev.css" /> <Content Include="css\dev.css" />
<Content Include="css\login.css" />
<Content Include="css\mainpopup.css" /> <Content Include="css\mainpopup.css" />
<Content Include="css\mypage.css" /> <Content Include="css\mypage.css" />
<Content Include="css\slick.css" /> <Content Include="css\slick.css" />
@ -715,7 +716,6 @@
<Content Include="Views\My\MyAssInfo.cshtml" /> <Content Include="Views\My\MyAssInfo.cshtml" />
<Content Include="Views\Course\ApplyEdu.cshtml" /> <Content Include="Views\Course\ApplyEdu.cshtml" />
<Content Include="Views\Course\ApplyComplete.cshtml" /> <Content Include="Views\Course\ApplyComplete.cshtml" />
<Content Include="Views\Course\ApplyPay_221227.cshtml" />
<Content Include="Views\Course\XpayREQ.cshtml" /> <Content Include="Views\Course\XpayREQ.cshtml" />
<Content Include="Views\Course\XpayReturnURL.cshtml" /> <Content Include="Views\Course\XpayReturnURL.cshtml" />
<Content Include="Views\My\Document.cshtml" /> <Content Include="Views\My\Document.cshtml" />
@ -727,7 +727,6 @@
<Content Include="Views\Shared\Partial\MobileChk.cshtml" /> <Content Include="Views\Shared\Partial\MobileChk.cshtml" />
<Content Include="Views\Home\PrivacyPolicy.cshtml" /> <Content Include="Views\Home\PrivacyPolicy.cshtml" />
<Content Include="Views\Home\UsePolicy.cshtml" /> <Content Include="Views\Home\UsePolicy.cshtml" />
<Content Include="Views\Course\ApplyAgree_old.cshtml" />
<Content Include="Views\Open\PlayOpen.cshtml" /> <Content Include="Views\Open\PlayOpen.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -744,7 +743,6 @@
<Content Include="Views\Home\Indexbk2.cshtml" /> <Content Include="Views\Home\Indexbk2.cshtml" />
<Content Include="Views\Account\PwChange.cshtml" /> <Content Include="Views\Account\PwChange.cshtml" />
<Content Include="Views\Account\DormantCancel.cshtml" /> <Content Include="Views\Account\DormantCancel.cshtml" />
<Content Include="Views\Course\ApplyPay_1005.cshtml" />
<Content Include="Views\Shared\Partial\policy.cshtml" /> <Content Include="Views\Shared\Partial\policy.cshtml" />
<Content Include="Views\Shared\Partial\privacy.cshtml" /> <Content Include="Views\Shared\Partial\privacy.cshtml" />
<Content Include="Views\Shared\Partial\Select.cshtml" /> <Content Include="Views\Shared\Partial\Select.cshtml" />

View File

@ -1,6 +1,16 @@
@model NP.Model.VMCourse @model NP.Model.VMCourse
@{
var host = Request.Url.Host;
// 개발과 로컬일 때 스마트검색 결과의 검색영역 보임 처리
bool isDevSite = (host == "www.ynicte.com" || host == "ynicte.nptc.kr");
string firstSchBoxDisplayStyle = isDevSite ? "" : "display:none;";
}
<div class="container"> <div class="container">
<div class="schBox" style="display:none;"> <div class="schBox" style="@firstSchBoxDisplayStyle">
<form id="smartSearchForm" method="post"> <form id="smartSearchForm" method="post">
<input type="hidden" name="cmno" id="cmno" /> <input type="hidden" name="cmno" id="cmno" />
<input type="hidden" id="cmino" name="CM.cmino" /> <input type="hidden" id="cmino" name="CM.cmino" />
@ -8,14 +18,17 @@
<input type="hidden" name="stringval" id="stringval" value="@Model.stringval" /> <input type="hidden" name="stringval" id="stringval" value="@Model.stringval" />
@if (Model.stringval == "0" || Model.stringval == null || Model.stringval == "") @if (Model.stringval == "0" || Model.stringval == null || Model.stringval == "")
{ {
if (isDevSite)
{
<h3>개발서버 테스트용</h3>
}
<ul class="schTab"> <ul class="schTab">
<li id="liTab1" class="current" style="font-size:16pt;"><a href="#">건설기술진흥법교육</a></li> <li id="liTab1" class="current" style="font-size:16pt;"><a href="javascript:void(0);">건설기술진흥법교육</a></li>
<li id="liTab2" style="font-size:16pt;display:none;"><a href="#">기타교육</a></li> <li id="liTab2" style="font-size:16pt;display:none;"><a href="javascript:void(0);">기타교육</a></li>
</ul> </ul>
<ul class="schCont"> <ul class="schCont">
<li> <li>
<select name="stringval2" id="stringval2"> <select name="stringval2" id="stringval2">
@*<option value="0" @(Model.stringval2 == "0" ? "selected" : "")>온라인교육</option>*@
<option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option> <option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option>
<option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option> <option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option>
</select> </select>
@ -38,19 +51,18 @@
<li> <li>
@Html.DropDownListFor(x => x.stringval7, new SelectList(Model.ComCodes6, "ccode", "cname"), "-선택-") @Html.DropDownListFor(x => x.stringval7, new SelectList(Model.ComCodes6, "ccode", "cname"), "-선택-")
</li> </li>
<li><a href="#" id="btnSearch">검색</a></li> <li><a href="javascript:void(0);" id="btnSearch">검색</a></li>
</ul> </ul>
} }
else if (Model.stringval == "1") else if (Model.stringval == "1")
{ {
<ul class="schTab"> <ul class="schTab">
<li id="liTab1"><a href="#" style="font-size:16pt;">건설기술진흥법교육</a></li> <li id="liTab1"><a href="javascript:void(0);" style="font-size:16pt;">건설기술진흥법교육</a></li>
<li id="liTab2" class="current" style="font-size:16pt;"><a href="#">기타교육</a></li> <li id="liTab2" class="current" style="font-size:16pt;"><a href="javascript:void(0);">기타교육</a></li>
</ul> </ul>
<ul class="schCont"> <ul class="schCont">
<li> <li>
<select name="stringval2" id="stringval2"> <select name="stringval2" id="stringval2">
@*<option value="0" @(Model.stringval2 == "0" ? "selected" : "")>온라인교육</option>*@
<option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option> <option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option>
<option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option> <option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option>
</select> </select>
@ -58,30 +70,15 @@
<li> <li>
@Html.DropDownListFor(x => x.stringval3, new SelectList(Model.CMsEtc, "cgno", "cgname"), "-선택-") @Html.DropDownListFor(x => x.stringval3, new SelectList(Model.CMsEtc, "cgno", "cgname"), "-선택-")
</li> </li>
<li><a href="#" id="btnSearch">검색</a></li> <li><a href="javascript:void(0);" id="btnSearch">검색</a></li>
</ul> </ul>
} }
</form> </form>
</div> </div>
@*<p class="subDsc mt15">본인의 기술인 정보를 모르실 경우에는 아래링크를 클릭하여 정보 확인 후 교육신청을 하여 주시기 바랍니다.</p>
<ul class="smtLnk">
<li><a href="https://homenet.kocea.or.kr:1443" target="_blank">한국건설기술인협회 이동</a></li>
<li><a href="https://www.kira.or.kr" target="_blank">건축사협회 이동</a></li>
</ul>*@
@*<div id="subTab01" class="tabCont" style="display: block;">
<h4 class="clsTitle" style="margin-top:7px">아래의 교육과정 중 원하시는 교육을 선택하여 주세요.</h4>
<h4 class="clsTitle" style="color: #0070C0; margin-top: 7px">아래의 모든 교육과정들이 이전단계에서 입력하신 교육목적으로 인정가능 합니다.</h4>
</div>*@
<br /> <br />
@if (Model.stringval2 == "2" && Model.stringval4 == "32") @if (Model.stringval2 == "2" && Model.stringval4 == "32")
{ {
@*<p class='subDsc' style='color:red;'>※ 온라인 교육은 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다.</p>*@
<p class='' style="font-weight: bold; font-size: 14pt;">※ 현재 신청중인 교육은 <span style='color: red; font-weight: bold'>집체교육 참석없이</span> 교육종료일까지 수료조건을 만족하시면 됩니다.</p> <p class='' style="font-weight: bold; font-size: 14pt;">※ 현재 신청중인 교육은 <span style='color: red; font-weight: bold'>집체교육 참석없이</span> 교육종료일까지 수료조건을 만족하시면 됩니다.</p>
} }
else if (Model.stringval2 == "2") else if (Model.stringval2 == "2")
{ {
@ -98,10 +95,11 @@
<li> <li>
<div class="smtlCont"> <div class="smtlCont">
<h5> <h5>
<em style="font-size:15px" class="@(item.cshape == 0 ? "org" : item.cshape == 1 ? "grn" : "blu")"> @if (!string.IsNullOrEmpty(item.cgcode))
@(item.cshape == 0 ? "온라인" : item.cshape == 1 ? "교육장교육" : "온라인교육") { // cg코드를 <span style='color:green; font-weight:bold;'>[전문분야교육]</span> 형태로 변경해주는 Helper 메서드 사용
</em> @Html.Raw(this.GetCgLabel(item.cgcode))
@*<span style="font-size:22px">@($"{item.cname} | {item.studytime}시간과정 | 교육비{item.infee}")</span></h5>*@ }
@{ @{
string strTitle = string.Format("{0} | {1}시간과정 |<span class='red' style='vertical-align: initial;'> {2}과정 </span>", item.cname, item.studytime, (item.isrefund == 1 ? "환급" : "비환급"), item.infee.ToString("#,0")); string strTitle = string.Format("{0} | {1}시간과정 |<span class='red' style='vertical-align: initial;'> {2}과정 </span>", item.cname, item.studytime, (item.isrefund == 1 ? "환급" : "비환급"), item.infee.ToString("#,0"));
} }
@ -111,27 +109,13 @@
<li> <li>
<a onclick="javascript: openIntro(@item.cmno);" class="smtlChkBtn smtlChk01" style="right:130px;">강좌소개</a> <a onclick="javascript: openIntro(@item.cmno);" class="smtlChkBtn smtlChk01" style="right:130px;">강좌소개</a>
</li> </li>
@*<li style="font-size:18px;"><a href="#" class="smtlBtn02" id="btnIntro" onclick="javascript: openIntro(@item.cmno)">강좌소개</a></li>*@
<li> <li>
<a href="#" class="smtlBtn02 smtlChkBtn" id=@("btnSelect" + item.cmno) onclick="javascript: getCmInning(@item.cshape, @item.cmno)">교육신청</a> <a href="javascript:void(0);" class="smtlBtn02 smtlChkBtn" id=@("btnSelect" + item.cmno) onclick="javascript: getCmInning(@item.cshape, @item.cmno)">교육신청</a>
<input type="hidden" id="typeedu" name="typeedu" value="@item.typeedu"> <input type="hidden" id="typeedu" name="typeedu" value="@item.typeedu">
</li> </li>
</ul> </ul>
</div> </div>
@*20220728 교육장정보 감추기*@
@*@if (item.cshape == 1 || (item.cshape == 2 && item.scdtype == 0)) //오프라인 경우 교육장 정보를 보여준다.
{
<ul class="smtlTab" id="divPlace_@item.cmno" style="display:none">
<li class="current" onclick="javascript:setStudyplace(this,@item.cmno);"><a href="javascript:getSubCm(item.cshape, @item.cmno);">전체</a></li>
@foreach (var t in Model.ComCodes)
{
<li onclick="javascript:setStudyplace(this,@item.cmno);"><a href="javascript:getCmInning(item.cshape, @item.cmno, @t.ccode);">@t.cname 교육장</a></li>
<li onclick="javascript:setStudyplace(this,@item.cmno);"><a href="javascript:getSubCm(1, @item.cmno, @t.ccode);">@t.cname 교육장</a></li>
}
</ul>
}*@
@*20220728온라인/오프라인 안내*@ @*20220728온라인/오프라인 안내*@
<div id="divInfo_@item.cmno" class="smtlChk"> <div id="divInfo_@item.cmno" class="smtlChk">
</div> </div>
@ -170,7 +154,7 @@
<div class="clsPopWrap"> <div class="clsPopWrap">
<div class="clsPopTitle"> <div class="clsPopTitle">
<h5>강좌소개</h5> <h5>강좌소개</h5>
<a href="#" onclick="javascript: closeIntro();"></a> <a href="javascript:void(0);" onclick="javascript: closeIntro();"></a>
</div> </div>
<div class="clsPopCont"> <div class="clsPopCont">
<ul class="smtList pop"> <ul class="smtList pop">
@ -181,14 +165,14 @@
<p>교육분류 : <span id="spnCmKind"></span></p> <p>교육분류 : <span id="spnCmKind"></span></p>
<p>인정시간 : <span class="sky"><span id="spnCmStudyHour"></span></span>시간</p> <p>인정시간 : <span class="sky"><span id="spnCmStudyHour"></span></span>시간</p>
<p style="display:none;" id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상<span id="spnisoffabs"></span></p> <p style="display:none;" id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상<span id="spnisoffabs"></span></p>
@*@if (Model.CM.cshape != 1)
{
<p id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상</p>
}*@
</div> </div>
</div> </div>
</li> </li>
</ul> </ul>
<dl class="fairIntro spnCmEduname" style="">
<dt>교육종류</dt>
<dd><span id="spnCmEduname"></span></dd>
</dl>
<dl class="fairIntro spnCmUsername" style="display:none;"> <dl class="fairIntro spnCmUsername" style="display:none;">
<dt>강사정보</dt> <dt>강사정보</dt>
<dd><span id="spnCmUsername"></span></dd> <dd><span id="spnCmUsername"></span></dd>
@ -225,9 +209,13 @@
var _cmno; var _cmno;
$(document).ready(function () { $(document).ready(function () {
// 페이지 접근시 보이는 문구 // 페이지 접근시 보이는 문구
var isDevSite = @isDevSite.ToString().ToLower();
msg('<b style="color:red; font-size:28px;"> ※ 안 내 ※</b><br/><br/><b style="color:blue; font-size:24px;">현재 페이지의 모든 교육과정들이 이수하고자 하는 교육목적으로 인정가능 합니다.</b>'); msg('<b style="color:red; font-size:28px;"> ※ 안 내 ※</b><br/><br/><b style="color:blue; font-size:24px;">현재 페이지의 모든 교육과정들이 이수하고자 하는 교육목적으로 인정가능 합니다.</b>');
$("#pageTitle h3").text("교육과정선택")
$("#pageTitle h3").text("교육과정선택");
$('#liTab1').click(function () { $('#liTab1').click(function () {
$.when( $.when(
$("#stringval").val("0"), $("#stringval").val("0"),
@ -240,6 +228,7 @@
}); });
}); });
$('#liTab2').click(function () { $('#liTab2').click(function () {
$.when( $.when(
$("#stringval").val("1"), $("#stringval").val("1"),
@ -251,6 +240,7 @@
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
}); });
$('#btnSearch').click(function () { $('#btnSearch').click(function () {
if ($("#liTab1").hasClass("current")) { if ($("#liTab1").hasClass("current")) {
$("#stringval").val("0"); $("#stringval").val("0");
@ -266,6 +256,7 @@
$("#stringval").change(function () { $("#stringval").change(function () {
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
$("#stringval2").change(function () { $("#stringval2").change(function () {
$("#stringval3").val(""); $("#stringval3").val("");
$("#stringval4").val(""); $("#stringval4").val("");
@ -273,33 +264,39 @@
$("#stringval6").val(""); $("#stringval6").val("");
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
$("#stringval3").change(function () { $("#stringval3").change(function () {
$("#stringval4").val(""); $("#stringval4").val("");
$("#stringval5").val(""); $("#stringval5").val("");
$("#stringval6").val(""); $("#stringval6").val("");
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
$("#stringval4").change(function () { $("#stringval4").change(function () {
$("#stringval5").val(""); $("#stringval5").val("");
$("#stringval6").val(""); $("#stringval6").val("");
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
$("#stringval5").change(function () { $("#stringval5").change(function () {
$("#stringval6").val(""); $("#stringval6").val("");
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
$("#stringval6").change(function () { $("#stringval6").change(function () {
$("#smartSearchForm").submit(); $("#smartSearchForm").submit();
}); });
}); });
function openIntro(cmno) { function openIntro(cmno) {
$(".spnCmEduname").hide();
$(".spnCmUsername").hide(); $(".spnCmUsername").hide();
$(".spnCmIntroHtml").hide(); $(".spnCmIntroHtml").hide();
$(".spnCmTargetHtml").hide(); $(".spnCmTargetHtml").hide();
$(".spnCmGoalHtml").hide(); $(".spnCmGoalHtml").hide();
$(".spnCmContentHtml").hide(); $(".spnCmContentHtml").hide();
$("#divIntro").show(); $("#divIntro").show();
capp("/focommon/getcmuser", { cmno: cmno }, "renderCmNo"); capp("/focommon/getcmuser", { cmno: cmno }, "renderCmNo");
} }
@ -309,17 +306,19 @@
var typegrade = $("#stringval5").find("option:selected").text(); var typegrade = $("#stringval5").find("option:selected").text();
var typejob = $("#stringval6").find("option:selected").text(); var typejob = $("#stringval6").find("option:selected").text();
var cmkind; var cmkind;
cmkind = typeman + " | " + typeedu + " | " + typegrade + " | " + typejob; cmkind = typeman + " | " + typeedu + " | " + typegrade + " | " + typejob;
if ($("#stringval").val() == "1") { if ($("#stringval").val() == "1") {
cmkind = $("#stringval3").find("option:selected").text(); cmkind = $("#stringval3").find("option:selected").text();
} }
$.each(capResult.obj, function (i, d) { $.each(capResult.obj, function (i, d) {
//20220729 온라인인경우 수료기준을 보여준다. //20220729 온라인인경우 수료기준을 보여준다.
if (@(Model.stringval2) == 1) { if (@(Model.stringval2 == null ? 0 : Convert.ToInt32(Model.stringval2)) == 1) {
$("#completeStd").hide(); $("#completeStd").hide();
} }
else if (@(Model.stringval2) == 2) { else if (@(Model.stringval2 == null ? 0 : Convert.ToInt32(Model.stringval2)) == 2) {
$("#completeStd").show(); $("#completeStd").show();
} }
@ -329,22 +328,57 @@
$("#spnCmAttend").text(d.attendcut); $("#spnCmAttend").text(d.attendcut);
$("#spnCmFinal").text(d.finalcut); $("#spnCmFinal").text(d.finalcut);
$("#spnCmSubject").text(d.subjectcut); $("#spnCmSubject").text(d.subjectcut);
if (d.username != null && d.username != "" && d.username != undefined) { if (d.username != null && d.username != "" && d.username != undefined) {
$("#spnCmUsername").text(d.username); $("#spnCmUsername").text(d.username);
$(".spnCmUsername").show(); $(".spnCmUsername").show();
} }
if (d.cgcode != "101") {
if (d.cgcode == "102") {
$("#spnCmEduname").html("직무분야교육");
CmEdunameChk = 1;
}
else if (d.cgcode == "103" || d.cgcode == "104") {
$("#spnCmEduname").html("역량강화교육");
CmEdunameChk = 1;
}
else if (d.cgcode == "105") {
$("#spnCmEduname").html("전문분야교육");
CmEdunameChk = 1;
}
else if (d.cgcode == "107") {
$("#spnCmEduname").html("특성화교육");
CmEdunameChk = 1;
}
else {
CmEdunameChk = 0;
}
if (CmEdunameChk == 1) {
$(".spnCmEduname").show();
}
}
else {
$(".spnCmEduname").hide();
}
if (d.introhtml != null && d.introhtml != "" && d.introhtml != undefined) { if (d.introhtml != null && d.introhtml != "" && d.introhtml != undefined) {
$("#spnCmIntroHtml").html(d.introhtml); $("#spnCmIntroHtml").html(d.introhtml);
$(".spnCmIntroHtml").show(); $(".spnCmIntroHtml").show();
} }
if (d.targethtml != null && d.targethtml != "" && d.targethtml != undefined) { if (d.targethtml != null && d.targethtml != "" && d.targethtml != undefined) {
$("#spnCmTargetHtml").html(d.targethtml); $("#spnCmTargetHtml").html(d.targethtml);
$(".spnCmTargetHtml").show(); $(".spnCmTargetHtml").show();
} }
if (d.goalhtml != null && d.goalhtml != "" && d.goalhtml != undefined) { if (d.goalhtml != null && d.goalhtml != "" && d.goalhtml != undefined) {
$("#spnCmGoalHtml").html(d.goalhtml); $("#spnCmGoalHtml").html(d.goalhtml);
$(".spnCmGoalHtml").show(); $(".spnCmGoalHtml").show();
} }
if (d.contenthtml != null && d.contenthtml != "" && d.contenthtml != undefined) { if (d.contenthtml != null && d.contenthtml != "" && d.contenthtml != undefined) {
$("#spnCmContentHtml").html(d.contenthtml); $("#spnCmContentHtml").html(d.contenthtml);
$(".spnCmContentHtml").show(); $(".spnCmContentHtml").show();
@ -377,9 +411,12 @@
if (btnSelect.html() == '교육신청') { if (btnSelect.html() == '교육신청') {
btnSelect.html('닫기'); btnSelect.html('닫기');
//capp("/focommon/GetScdForMixEdu", { cmno: model.cm.cmno, month: $("#selMonth").val() }, "renderScd");
//교육일정에 등록되어 있는 일정 중 선택이 가능한 첫번째 일정 선택으로 달 파라미터 제거 capp(
capp("/focommon/GetScdForMixEdu", { cmno: cmno}, "renderScdInning(1," + cshape + "," + cmno + ")"); "/focommon/GetScdForMixEdu",
{ cmno: cmno },
"renderScdInning(1," + cshape + "," + cmno + ")"
);
} }
else { else {
divInfo.empty(); divInfo.empty();
@ -453,7 +490,6 @@
data.studyplace = d.studyplace; data.studyplace = d.studyplace;
data.studyplacename = d.studyplacename; data.studyplacename = d.studyplacename;
// 리스트에 생성된 객체 삽입
studyPlaceTmp.push(data); studyPlaceTmp.push(data);
} }
}); });
@ -465,14 +501,15 @@
} }
return acc; return acc;
}, []); }, []);
// 오름차순 // 오름차순
studyPlace = studyPlace.sort(function (a, b) { studyPlace = studyPlace.sort(function (a, b) {
return a.studyplace < b.studyplace ? -1 : a.studyplace > b.studyplace ? 1 : 0; return a.studyplace < b.studyplace ? -1 : a.studyplace > b.studyplace ? 1 : 0;
}); });
if (studyPlace.length > 0) { if (studyPlace.length > 0) {
/*strStudyPlaceTag = "<ul class='smtlTab' id='divPlace_" + cmno + "'>";*/
strStudyPlaceTag = "<li class='current' onclick='javascript:setStudyplace(this," + cmno + ");'><a href='javascript:getCmInningPlace(" + cshape + ", " + cmno + ");' style='font-size:20px;'>전체</a></li>"; strStudyPlaceTag = "<li class='current' onclick='javascript:setStudyplace(this," + cmno + ");'><a href='javascript:getCmInningPlace(" + cshape + ", " + cmno + ");' style='font-size:20px;'>전체</a></li>";
$.each(studyPlace, function (i, d) { $.each(studyPlace, function (i, d) {
strStudyPlaceTag += "<li onclick='javascript:setStudyplace(this," + cmno + ");'><a href='javascript:getCmInningPlace(" + cshape + ", " + cmno + ", " + d.studyplace + ");'style='font-size:20px;'>" + d.studyplacename + " 교육장</a></li>"; strStudyPlaceTag += "<li onclick='javascript:setStudyplace(this," + cmno + ");'><a href='javascript:getCmInningPlace(" + cshape + ", " + cmno + ", " + d.studyplace + ");'style='font-size:20px;'>" + d.studyplacename + " 교육장</a></li>";
}); });
@ -494,7 +531,7 @@
var ulScd = $("#ulScd" + cmno); var ulScd = $("#ulScd" + cmno);
ulScd.empty(); ulScd.empty();
//var seq = 0;
if (capResult.obj.length < 1) { if (capResult.obj.length < 1) {
var li = $("<li />"); var li = $("<li />");
if (cshape == 1) { if (cshape == 1) {
@ -509,13 +546,12 @@
var li = $("<li />"); var li = $("<li />");
var pData = $("<p />"); var pData = $("<p />");
var aApplyClass = $("<a />", { "onclick": "javascript:applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ");" }); var aApplyClass = $("<a />", { "onclick": "javascript:applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ");" });
/*var spanApplyClass = $("<span />", { "class": "smtlChkBtn smtlChk03", "style": "font-size:18px" });*/
var spanApplyClass = $("<span />", { "class": "smtlChkBtn smtlChk03" }, { "style": "font-size:18px" }); var spanApplyClass = $("<span />", { "class": "smtlChkBtn smtlChk03" }, { "style": "font-size:18px" });
var spanApplyClassN = $("<span />", { "class": "smtlChkBtn smtlChk05" }, { "style": "font-size:18px" }); var spanApplyClassN = $("<span />", { "class": "smtlChkBtn smtlChk05" }, { "style": "font-size:18px" });
var radioEduDay = "<input type='radio' style='display:none' name='rdoScds' value='" + d.cmisno + "' "; var radioEduDay = "<input type='radio' style='display:none' name='rdoScds' value='" + d.cmisno + "' ";
/*var radioEduDay = "<input type='radio' style='display:none' name='rdoScds' value='" + d.cmisno + "' onclick='javascript:applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ") + "' ";*/
var strStudyPlacename = ""; var strStudyPlacename = "";
let comment = d.comment == null ? "" : "<span style='margin-left:12px'>(" + d.comment + ")</span>" let comment = d.comment == null ? "" : "<span style='margin-left:12px'>(" + d.comment + ")</span>"
if (d.studyplace != null && d.studyplace != '' && d.studyplacename != null && d.studyplacename != '') { if (d.studyplace != null && d.studyplace != '' && d.studyplacename != null && d.studyplacename != '') {
strStudyPlacename = '[' + d.studyplacename + '교육장]'; strStudyPlacename = '[' + d.studyplacename + '교육장]';
} }
@ -524,54 +560,6 @@
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[종료] </label>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + comment + "</span></span>"); pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[종료] </label>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + comment + "</span></span>");
} }
else { else {
/* by 인덕
if (d.quota != 0) {
// 제한인원 지정됨
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
spanApplyClassN.text("수강신청");
aApplyClass.append(spanApplyClassN);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수마감] </span>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></span>");
pData.append(spanApplyClassN);
}
else {
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0)
spanApplyClass.text("수강신청");
aApplyClass.append(spanApplyClass);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + " checked> " + d.scdInfoSummary + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span></span>");
pData.append(aApplyClass);
}
else {
spanApplyClass.text("수강신청");
aApplyClass.append(spanApplyClass);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + "'> " + d.scdInfoSummary + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span> " + "</span>");
pData.append(aApplyClass);
}
}
}
else {
// 제한인원 무제한
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
spanApplyClassN.text("수강신청");
aApplyClass.append(spanApplyClassN);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수마감] </span>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></span>");
pData.append(spanApplyClassN);
}
else {
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0)
spanApplyClass.text("수강신청");
aApplyClass.append(spanApplyClass);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + " checked> " + d.scdInfoSummary + "</label></label>");
pData.append(spanApplyClass);
}
else {
spanApplyClass.text("수강신청");
aApplyClass.append(spanApplyClass);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + "'> " + d.scdInfoSummary + "</label></label>");
pData.append(aApplyClass);
}
}
}
*/
d.scdInfoSummary = (d.scdInfoSummary).replace("까지", "") d.scdInfoSummary = (d.scdInfoSummary).replace("까지", "")
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0 if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
spanApplyClassN.text("접수마감"); spanApplyClassN.text("접수마감");
@ -584,7 +572,7 @@
console.log("교육신청") console.log("교육신청")
aApplyClass.append(spanApplyClass); aApplyClass.append(spanApplyClass);
if (d.quota != 0) { if (d.quota != 0) {
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0) if (d.isselected == 1) {
// 사용안하는것 추측됨 // 사용안하는것 추측됨
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + " checked> " + d.scdInfoSummary + comment + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span></span>"); pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + " checked> " + d.scdInfoSummary + comment + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span></span>");
pData.append(aApplyClass); pData.append(aApplyClass);
@ -596,7 +584,7 @@
} }
else { else {
// 사용안하는것 추측됨 // 사용안하는것 추측됨
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0) if (d.isselected == 1) {
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + " checked> " + d.scdInfoSummary + comment + "</label></label>"); pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + " checked> " + d.scdInfoSummary + comment + "</label></label>");
pData.append(spanApplyClass); pData.append(spanApplyClass);
} }
@ -624,158 +612,10 @@
} }
if (issearchable) { if (issearchable) {
//if (cshape == 1) {
// $("#divPlace_" + cmno).show();
//}
//else {
// $("#divPlace_" + cmno).hide();
//}
capp("/focommon/GetScdForMixEdu", { cmno: cmno, studyPlace: studyPlace}, "renderScdInning(0, " + cshape + "," + cmno + ")"); capp("/focommon/GetScdForMixEdu", { cmno: cmno, studyPlace: studyPlace}, "renderScdInning(0, " + cshape + "," + cmno + ")");
} }
} }
//20220729 교육장, 교육일정 정보 생성
////function renderScdPlace(cshape, cmno, place) {
//// let strTmp = "";
//// let strStudyPlaceTag = "";
//// var divInfo = $("#divInfo_" + cmno);
//// divInfo.empty();
//// var divPlace = $("#divPlace_" + cmno);
//// divPlace.empty();
//// var divScd = $("#divScd" + cmno);
//// divScd.empty();
//// //교육장 만들기
//// if (capResult.obj.length > 0) {
//// var studyPlaceTmp = new Array();
//// $.each(capResult.obj, function (i, d) {
//// var data = new Object();
//// if (d.studyplace != null) {
//// data.studyplace = d.studyplace;
//// data.studyplacename = d.studyplacename;
//// // 리스트에 생성된 객체 삽입
//// studyPlaceTmp.push(data);
//// }
//// });
//// // 교육장소코드, 교육장소명 Distinct
//// let studyPlace = studyPlaceTmp.reduce(function (acc, current) {
//// if (acc.findIndex(({ studyplace }) => studyplace === current.studyplace) === -1) {
//// acc.push(current);
//// }
//// return acc;
//// }, []);
//// // 오름차순
//// studyPlace = studyPlace.sort(function (a, b) {
//// return a.studyplace < b.studyplace ? -1 : a.studyplace > b.studyplace ? 1 : 0;
//// });
//// if (studyPlace.length > 0) {
//// /*strStudyPlaceTag = "<ul class='smtlTab' id='divPlace_" + cmno + "'>";*/
//// strStudyPlaceTag = "<li class='current' onclick='javascript:setStudyplace(this," + cmno + ");'><a href='javascript:getCmInningPlace(" + cshape + ", " + cmno + ");'>전체</a></li>";
//// $.each(studyPlace, function (i, d) {
//// strStudyPlaceTag += "<li onclick='javascript:setStudyplace(this," + cmno + ");'><a href='javascript:getCmInningPlace(" + cshape + ", " + cmno + ", " + d.studyplace + ");'>" + d.studyplacename + " 교육장</a></li>";
//// });
//// }
//// }
//// // 교육장소 생성하기
//// if (strStudyPlaceTag != '') {
//// divPlace.append(strStudyPlaceTag);
//// divPlace.show();
//// }
//// //강좌일정 태그 생성
//// strTmp = "<ul id='ulScd" + cmno + "'></ul>";
//// divScd.append(strTmp);
//// var ulScd = $("#ulScd" + cmno);
//// ulScd.empty();
//// //var seq = 0;
//// if (capResult.obj.length < 1) {
//// var li = $("<li />");
//// li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>");
//// ulScd.append(li);
//// }
//// $.each(capResult.obj, function (i, d) {
//// var li = $("<li />");
//// var pData = $("<p />");
//// var aApplyClass = $("<a />", { "onclick": "javascript:applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ");" });
//// /*var spanApplyClass = $("<span />", { "class": "smtlChkBtn smtlChk03", "style": "font-size:18px" });*/
//// var spanApplyClass = $("<span />", {"style": "font-size:18px" });
//// alert(strStudyPlacename);
//// var strStudyPlacename = "";
//// if (d.studyplacename != '') {
//// strStudyPlacename = '[' + d.studyplacename + ']';
//// }
//// if (d.isEnd == true) {
//// pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[종료] </label>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></label>");
//// }
//// else {
//// if (d.quota != 0) {
//// if (d.remainPeople <= 0) {
//// pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[접수마감] </label>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></label>");
//// }
//// else {
//// if (d.isselected == 1) {
//// spanApplyClass.text("수강신청");
//// aApplyClass.append(spanApplyClass);
//// pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[접수중] </label>" + radioEduDay + " checked> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
//// }
//// else {
//// spanApplyClass.text("수강신청");
//// aApplyClass.append(spanApplyClass);
//// pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[접수중] </label>" + radioEduDay + "'> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label> " + "</label>");
//// pData.append(aApplyClass);
//// }
//// //if (seq == 0) {
//// // li.append("<label>" + radioEduDay + " checked> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
//// //}
//// //else {
//// // li.append("<label>" + radioEduDay + "'> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
//// //}
//// }
//// }
//// else {
//// if (d.isselected == 1) {
//// pData.html("<label>" + strStudyPlacename + " " + radioEduDay + " checked> " + d.scdInfoSummary + "</label></label>");
//// }
//// else {
//// pData.html("<label>" + strStudyPlacename + " " + radioEduDay + "'> " + d.scdInfoSummary + "</label></label>");
//// }
//// //if (seq == 0) {
//// // li.append("<label>" + radioEduDay + " checked> " + d.scdInfoSummary + "</label>");
//// //}
//// //else {
//// // li.append("<label>" + radioEduDay + "'> " + d.scdInfoSummary + "</label>");
//// //}
//// }
//// }
//// //aApplyClass.append(spanApplyClass);
//// //pData.append(aApplyClass);
//// li.append(pData);
//// //li.append(aApplyClass);
//// ulScd.append(li);
//// //ulScd.append(li2);
//// });
//// //20220726
//// //alert("model.cmisno" + model.cmisno);
//// //if (model.cmisno != null) {
//// // $("input:radio[name='rdoScds'][value='" + model.cmisno + "']").click();
//// //}
////}
//20220729 개발전 //20220729 개발전
function getSubCm(cshape, no, place) { function getSubCm(cshape, no, place) {
var issearchable = false; var issearchable = false;
@ -803,7 +643,6 @@
var cmno = _cmno; var cmno = _cmno;
var ulSubCm = $("#ulSubCm_" + cmno); var ulSubCm = $("#ulSubCm_" + cmno);
ulSubCm.empty(); ulSubCm.empty();
//var applyClass = "<li><p class='subDsc' style='color:red;'>※ 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다</p >※ 각 기수별 <span style='color:red;'>교육종료일을 꼭 확인하시고</span> 교육신청 부탁드립니다.</li>";
$.each(capResult.obj, function (i, d) { $.each(capResult.obj, function (i, d) {
var li = $("<li />"); var li = $("<li />");
var p = $("<p />"); var p = $("<p />");
@ -829,19 +668,15 @@
} }
if (d.cshape == 0) { if (d.cshape == 0) {
//p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원</span></label>"); p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원</span></label>");
} }
else if (d.cshape == 1) { else if (d.cshape == 1) {
//p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | <span class='blu'>[" + d.studyplacename + "교육장]</span> " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "("+d.ssretimeToDay +"일)") + "</span> | <span class=red>" +bindComma(d.infee)+"원</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | <span class='blu'>[" + d.studyplacename + "교육장]</span> " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "("+d.ssretimeToDay +"일)") + "</span> | <span class=red>" +bindComma(d.infee)+"원</span></label>"); p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | <span class='blu'>[" + d.studyplacename + "교육장]</span> " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "("+d.ssretimeToDay +"일)") + "</span> | <span class=red>" +bindComma(d.infee)+"원</span></label>");
} }
else if (d.cshape == 2) { else if (d.cshape == 2) {
//p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='gry'>" + d.ssrename + "</span></span><span class='red'> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span> | <span class=red>" + bindComma(d.infee) + "원 ※ 집체교육 선택 필수</span></label>");
//p.html("<label style='cursor:default; font-size:18px'>" + d.tseq + "기 | " + d.cname + " | <span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'><span class='red'>교육종료일(" + d.setimeymd + "까지)</span></span><span> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>");
//p.html("<label style='cursor:default; font-size:18px'>" + d.cname + "<span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'></span><span> " + (d.retimeymd == "2099-12-31" ? "신청일로부터 " + d.studydays + "일 (" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>");
p.html("<label style='cursor:default; font-size:18px'>" + d.cname + "<span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'></span><span> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>"); p.html("<label style='cursor:default; font-size:18px'>" + d.cname + "<span style='" + ((d.retimeymd == "2099-12-31") ? 'display:none' : '') + "'></span><span> " + (d.retimeymd == "2099-12-31" ? "(" + d.studytime + " 시간)" : "(" + d.studytime + "시간)") + "</span></label>");
} }
spanIntro.text("강좌소개"); spanIntro.text("강좌소개");
li.append(p); li.append(p);
a.append(spanIntro); a.append(spanIntro);
@ -859,23 +694,29 @@
} }
} }
@*/** 수강신청 버튼 클릭 */*@
function applyClassEdu(cmno, pcmno, cmino, cmisno) { function applyClassEdu(cmno, pcmno, cmino, cmisno) {
//수강신청 var uno = ('@ViewBag.SSUserNo' != '') ? parseInt(@ViewBag.SSUserNo) : 0;
if (@ViewBag.SSUserNo > 0) { if (uno > 0) {
////var cmino = $("#cmino");
$("#cmino").val(cmino); $("#cmino").val(cmino);
///*var cmisno = $("#cmisno");*/
$("#cmisno").val(cmisno); $("#cmisno").val(cmisno);
checkLectCompleteEdu(cmno, "@Model.stringval3", "@Model.stringval4", "@Model.stringval5", $("#pcmno_" + pcmno + "_cgcode").val(), pcmno, "chkLect"); checkLectCompleteEdu(cmno, "@Model.stringval3", "@Model.stringval4", "@Model.stringval5", "@Model.stringval6", $("#pcmno_" + pcmno + "_cgcode").val(), pcmno, "chkLect");
} }
else { else {
//msg("로그인 후 신청 할 수 있습니다.");
let searchRslt = $("#smartSearchForm").serialize() let searchRslt = $("#smartSearchForm").serialize();
searchRslt += "&stringval17=" + cmno + "&stringval18=" + pcmno + "&stringval19=" + cmino + "&stringval20=" + cmisno; let url = `/Account/index?${searchRslt}
searchRslt += "&stringval21=" + $("#pcmno_" + pcmno + "_cgcode").val() &stringval17=${cmno}
location.href = "/Account/index?" + searchRslt; &stringval18=${pcmno}
&stringval19=${cmino}
&stringval20=${cmisno}
&stringval21=${$("#pcmno_" + pcmno + "_cgcode").val()}`;
url = url.replace(/\s/g, '');
location.href = url;
return; return;
} }
} }
@ -884,7 +725,7 @@
function applyClass(cmno, pcmno) { function applyClass(cmno, pcmno) {
//수강신청 //수강신청
if (@ViewBag.SSUserNo > 0) { if (@ViewBag.SSUserNo > 0) {
checkLectComplete(cmno, "@Model.stringval3", "@Model.stringval4", "@Model.stringval5", $("#pcmno_" + pcmno + "_cgcode").val(), pcmno, "chkLect"); checkLectComplete(cmno, "@Model.stringval3", "@Model.stringval4", "@Model.stringval5", "@Model.stringval6", $("#pcmno_" + pcmno + "_cgcode").val(), pcmno, "chkLect");
} }
else { else {
msg("로그인 후 신청 할 수 있습니다."); msg("로그인 후 신청 할 수 있습니다.");
@ -896,21 +737,80 @@
let _cgcode = 0; let _cgcode = 0;
let _grade = 0; let _grade = 0;
function checkLectCompleteEdu(cmno, man, edu, grade, cgcode, pcmno) { function checkLectCompleteEdu(cmno, man, edu, grade, job, cgcode, pcmno) {
_cmno = cmno; _cmno = cmno;
_edu = edu; _edu = edu;
_cgcode = cgcode; _cgcode = cgcode;
_grade = grade; _grade = grade;
capp("/focommon/GetCheckLectIs", { cmno: cmno, man: man, edu: edu, grade: grade, cgcode: cgcode, pcmno: pcmno }, "chkLect"); // 1 capp("/focommon/GetCheckLectIs",
{
cmno: cmno,
man: man,
edu: edu,
grade: grade,
job1: job,
cgcode: cgcode,
pcmno: pcmno
}, "chkLectNew"); // 1
} }
//20220729 개발전 //20220729 개발전
function checkLectComplete(cmno, man, edu, grade, cgcode, pcmno) { function checkLectComplete(cmno, man, edu, grade, cgcode, pcmno) {
_cmno = cmno; _cmno = cmno;
capp("/focommon/GetCheckLectIs", { cmno: cmno, man: man, edu: edu, grade: grade, cgcode: cgcode, pcmno: pcmno }, "chkLect"); // 1 capp(
@*capResult.code == code;*@ "/focommon/GetCheckLectIs",
{
cmno: cmno,
man: man,
edu: edu,
grade: grade,
cgcode: cgcode,
pcmno: pcmno
},
"chkLect"
); // 1
}
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;'>
&nbsp; &nbsp; - &nbsp; &nbsp;선택한 교육목적으로 인정되지 않는 경우<br>
&nbsp; &nbsp; - &nbsp; &nbsp;이미 신청 또는 수료한 교육과 함께 수료하면 인정이 되지 않는 경우
</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;
}
}
}
} }
@ -918,6 +818,7 @@
function chkLect() { //2 --> 4 function chkLect() { //2 --> 4
let chk = @(DateTime.Now > DateTime.Parse("2030-01-02 00:00") ? "true" : "false"); // ### ty 2024년 추가건 // chk == 1 ? 2024년 표시 문구 나오기 let chk = @(DateTime.Now > DateTime.Parse("2030-01-02 00:00") ? "true" : "false"); // ### ty 2024년 추가건 // chk == 1 ? 2024년 표시 문구 나오기
let chkMsg = ""; let chkMsg = "";
if (capResult.code == 1000) { if (capResult.code == 1000) {
if (capResult.obj == 0) { if (capResult.obj == 0) {
@ -932,10 +833,11 @@
} }
if (chk && chkMsg != "") { if (chk && chkMsg != "") {
msg(chkMsg) msg(chkMsg);
$(".mainokbutton").on("click", function () { $(".mainokbutton").on("click", function () {
checkLectIsComplete(_cmno); checkLectIsComplete(_cmno);
}) });
} }
else { else {
checkLectIsComplete(_cmno); checkLectIsComplete(_cmno);
@ -943,7 +845,6 @@
} }
else if (capResult.obj == 1) { else if (capResult.obj == 1) {
if (chk) { if (chk) {
msg("<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>" + msg("<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>" +
"<p class='hello' style=' color: red; text-align:left; font-size:15pt;'>" + "<p class='hello' style=' color: red; text-align:left; font-size:15pt;'>" +
"&nbsp; &nbsp; 이미 같은 교육목적과 등급으로 신청 또는 이수한 내역이 있습니다." + "&nbsp; &nbsp; 이미 같은 교육목적과 등급으로 신청 또는 이수한 내역이 있습니다." +
@ -957,7 +858,6 @@
} }
} }
else { else {
@* msg("<sapn style='font-size: 15pt;'>이미 수강/수료한 과정입니다.</span>");*@
msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>"); msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
} }
} }
@ -965,7 +865,6 @@
function checkLectIsComplete(cmno) { //3 function checkLectIsComplete(cmno) { //3
capp("/focommon/GetCheckLectIsComplete", { cmno: cmno }, "check"); capp("/focommon/GetCheckLectIsComplete", { cmno: cmno }, "check");
} }
@ -973,7 +872,6 @@
var cnt = capResult.obj; var cnt = capResult.obj;
if (cnt > 0) { if (cnt > 0) {
// 강좌를 만들 수 있지만 이미 생성된 조건? // 강좌를 만들 수 있지만 이미 생성된 조건?
@* msg("이미 수강/수료한 과정입니다.");*@
msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>"); msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
return; return;
} }
@ -982,4 +880,37 @@
$("#smartSearchForm").attr("action", "/Course/ApplyEdu").submit(); $("#smartSearchForm").attr("action", "/Course/ApplyEdu").submit();
} }
} }
</script> </script>
@functions {
/// <summary>
/// 과정 코드(cgcode)에 따라 사용자에게 보여줄 라벨(span 태그 형태)을 반환.
/// </summary>
/// <param name="code">과정 코드 (예: "107", "105" 등)</param>
/// <returns>
/// HTML span 태그 문자열.
/// 예: <span style='color:blue; font-weight:bold;'>[역량강화교육]</span>
/// </returns>
string GetCgLabel(string code)
{
switch (code)
{
case "101":
return "<span style='color:blue; font-weight:bold; font-size:22px' data-code=" + code +">[기본교육]</span>";
case "107":
return "<span style='color:blue; font-weight:bold; font-size:22px' data-code=" + code +">[특성화교육]</span>";
case "103":
case "104":
return "<span style='color:green; font-weight:bold; font-size:22px' data-code=" + code +">[역량강화교육]</span>";
case "105":
return "<span style='color:#FF6600; font-weight:bold; font-size:22px' data-code=" + code +">[전문분야교육]</span>";
case "102":
return "<span style='color:purple; font-weight:bold; font-size:22px' data-code=" + code +">[직무분야교육]</span>";
default:
return "<span style='font-weight:bold; font-size:22px' data-code=" + code +">[" + code + "]</span>";
}
}
}

View File

@ -19,7 +19,6 @@
<ul class="schCont"> <ul class="schCont">
<li> <li>
<select name="stringval2" id="stringval2"> <select name="stringval2" id="stringval2">
@*<option value="0" @(Model.stringval2 == "0" ? "selected" : "")>온라인교육</option>*@
<option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option> <option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option>
<option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option> <option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option>
</select> </select>

View File

@ -1,7 +1,10 @@
@model NP.Model.VMHome @model NP.Model.VMHome
<head> <head>
<style> <style type="text/css">
.mainTab li:after {
content: none;
}
.mainTop * { .mainTop * {
font-family: 'Noto Sans KR', sans-serif; font-family: 'Noto Sans KR', sans-serif;
font-size: 11pt; font-size: 11pt;
@ -10,6 +13,330 @@
color: #fff; color: #fff;
line-height: 1.6em; line-height: 1.6em;
} }
/* --- 교육신청 주의사항 팝업 CSS 시작 --- */
.edu-popup-container, .edu-popup-container button, .edu-popup-container input {
font-family: 'Malgun Gothic', '맑은 고딕', Dotum, '돋움', sans-serif;
}
#edu-modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.6);
display: none;
z-index: 9999;
opacity: 0;
transition: opacity 0.3s ease;
}
#edu-layer-popup {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0.95);
width: 90%;
max-width: 780px;
background-color: #fff;
border-radius: 12px;
display: none;
z-index: 10000;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
box-sizing: border-box;
overflow: hidden;
opacity: 0;
transition: opacity 0.3s ease, transform 0.3s ease;
}
#edu-modal-overlay.active, #edu-layer-popup.active {
display: block;
opacity: 1;
}
#edu-layer-popup.active {
transform: translate(-50%, -50%) scale(1);
}
.edu-popup-header {
background-color: #2c3e50;
color: #fff;
padding: 18px;
text-align: center;
}
.edu-popup-header h2 {
margin: 0;
font-size: 24px;
font-weight: 700;
color: #fff;
}
.edu-popup-content {
padding: 35px 50px;
line-height: 1.8;
}
.edu-popup-content h3 {
color: #d90429;
text-align: center;
font-size: 26px;
font-weight: 700;
margin-top: 0;
margin-bottom: 30px;
}
/* ★[수정] 중앙 정렬을 위한 컨테이너 */
.edu-popup-content .text-center {
text-align: center;
}
/* ★[수정] 리스트 기본 스타일 제거 */
.edu-popup-content .text-center ol {
padding-left: 0;
list-style-type: none;
display: inline-block; /* 컨텐츠 크기에 맞게 중앙 정렬 */
text-align: left; /* 리스트 내용은 다시 좌측 정렬 */
}
/* ★[수정] 리스트 아이템 스타일 (글자 크기 증가 및 중앙 정렬) */
.edu-popup-content .text-center li {
text-align: center; /* 텍스트 중앙 정렬 */
font-size: 20px; /* 글자 크기 증가 */
font-weight: 500;
line-height: 1.7;
margin-bottom: 20px;
}
/* ★[수정] 중요(빨간색) 텍스트 스타일 */
.edu-popup-content .text-center > .text-red {
font-size: 20px; /* 글자 크기 증가 */
font-weight: 600;
margin-top: 10px;
}
.text-red {
color: #d90429;
font-weight: 600;
}
.text-blue {
color: #1A5276;
font-weight: 600;
}
.edu-details-btn {
display: block;
width: 220px;
margin: 30px auto;
padding: 10px;
font-size: 16px;
font-weight: 600;
color: #555;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
cursor: pointer;
text-align: center;
transition: background-color 0.2s, border-color 0.2s;
}
.edu-details-btn:hover {
background-color: #f5f5f5;
border-color: #bbb;
}
.edu-popup-content .info {
font-size: 17px;
margin-top: 30px;
color: #333;
font-weight: 600;
text-align: center;
}
.edu-consent-check {
margin-top: 35px;
text-align: center;
font-size: 17px;
}
.edu-consent-check input[type="checkbox"] {
display: none;
}
.edu-consent-check label {
position: relative;
padding-left: 35px;
cursor: pointer;
line-height: 28px;
display: inline-block;
user-select: none;
}
.edu-consent-check label::before {
content: '';
position: absolute;
left: 0;
top: 1px; /* [수정] 수직 정렬 */
width: 26px;
height: 26px;
border: 2px solid #aaa;
background-color: #fff;
border-radius: 5px;
transition: all 0.2s;
}
.edu-consent-check input[type="checkbox"]:checked + label::before {
background-color: #2c3e50;
border-color: #2c3e50;
}
.edu-consent-check label::after {
content: '';
position: absolute;
left: 9px;
top: 5px; /* [수정] 수직 정렬 */
width: 8px;
height: 15px;
border: solid white;
border-width: 0 3px 3px 0;
transform: rotate(45deg);
opacity: 0;
transition: opacity 0.2s;
}
.edu-consent-check input[type="checkbox"]:checked + label::after {
opacity: 1;
}
.edu-popup-footer {
text-align: center;
padding: 25px;
background-color: #f9f9f9;
border-top: 1px solid #eee;
}
.edu-popup-footer button {
width: 130px;
padding: 12px 0;
font-size: 19px;
font-weight: 600;
cursor: pointer;
border: 1px solid #aaa;
background-color: #fff;
margin: 0 10px;
border-radius: 6px;
transition: all 0.2s;
color: #333;
}
#edu-confirm-btn {
background-color: #2c3e50;
color: #fff;
border-color: #2c3e50;
}
#edu-confirm-btn:hover {
background-color: #34495e;
}
#edu-cancel-btn:hover {
background-color: #f0f0f0;
}
@@media (max-width: 768px) {
.edu-popup-header h2 {
font-size: 22px;
}
.edu-popup-content {
padding: 30px 35px;
}
.edu-popup-content h3 {
font-size: 22px;
}
.edu-popup-content .text-center li, .edu-popup-content .text-center > .text-red {
font-size: 18px;
}
.edu-popup-content .info, .edu-consent-check {
font-size: 15px;
}
.edu-popup-footer button {
width: 120px;
font-size: 17px;
}
}
@@media (max-width: 480px) {
.edu-popup-header h2 {
font-size: 19px;
}
.edu-popup-content {
padding: 25px 20px;
}
.edu-popup-content h3 {
font-size: 19px;
margin-bottom: 25px;
}
.edu-popup-content .text-center li, .edu-popup-content .text-center > .text-red {
font-size: 16px;
line-height: 1.6;
}
.edu-details-btn {
width: 180px;
font-size: 14px;
}
.edu-popup-content .info {
font-size: 14px;
}
.edu-consent-check {
font-size: 14px;
}
.edu-consent-check label {
padding-left: 30px;
}
.edu-consent-check label::before {
width: 22px;
height: 22px;
}
.edu-consent-check label::after {
left: 8px;
top: 4px;
width: 6px;
height: 12px;
}
.edu-popup-footer {
padding: 20px;
}
.edu-popup-footer button {
width: 100%;
margin: 0;
padding: 13px 0;
}
.edu-popup-footer button:first-child {
margin-bottom: 10px;
}
}
/* --- 교육신청 주의사항 팝업 CSS 끝 --- */
</style> </style>
</head> </head>
@section main{ @section main{
@ -71,12 +398,6 @@
<div> <div>
<div> <div>
<ul> <ul>
@*<li><a href="javascript:schIpt('1', '0', '온라인교육');">온라인교육</a></li>*@
@*20220726 교육장교육 선택 활성화*@
@*@if ((ViewBag.SSUserNo == 120) && (Request.Url.Authority == "www.ynicte.com" || Request.Url.Authority == "ynicte.nptc.kr"))
{
<li><a href="javascript:schIpt('1', '1', '교육장교육');">교육장교육</a></li>
}*@
<li><a href="javascript:schIpt('1', '1', '교육장교육');">교육장교육</a></li> <li><a href="javascript:schIpt('1', '1', '교육장교육');">교육장교육</a></li>
<li><a href="javascript:schIpt('1', '2', '온라인교육');">온라인교육</a></li> <li><a href="javascript:schIpt('1', '2', '온라인교육');">온라인교육</a></li>
</ul> </ul>
@ -197,7 +518,6 @@
<div> <div>
<div> <div>
<ul> <ul>
@*<li><a href="javascript:schIpt('1', '0', '온라인교육');">온라인교육</a></li>*@
<li><a href="javascript:schIpt('1', '1', '교육장교육');">교육장교육</a></li> <li><a href="javascript:schIpt('1', '1', '교육장교육');">교육장교육</a></li>
<li><a href="javascript:schIpt('1', '2', '혼합교육');">온라인교육</a></li> <li><a href="javascript:schIpt('1', '2', '혼합교육');">온라인교육</a></li>
</ul> </ul>
@ -243,25 +563,67 @@
</div> </div>
</form> </form>
} }
@* // 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
<div class="edu-popup-container">
<div id="edu-modal-overlay"></div>
<div id="edu-layer-popup">
<header class="edu-popup-header">
<h2>교육신청 전 필수 확인</h2>
</header>
<main class="edu-popup-content">
<h3>건설사업관리(계속교육) 신청 시 주의사항</h3>
<div class="text-center">
<ol>
<li>
1. 건설사업관리의 현재 등급이 고급 또는 특급인 경우<br />
계속교육 이수 시 반드시<br />
전체 교육이수시간 중 <span class="text-red">역량강화 교육은 1개 과정만 이수하여야 합니다.</span>
</li>
<li>
2. 역량강화 교육은 교육신청 시 교육과정명 앞에 [역량강화교육]으로 표기되어 있습니다.
</li>
</ol>
<p class="text-red">※ (중요) 역량강화교육으로만 2개 과정 이수 불가</p>
</div>
<button class="edu-details-btn" onclick="goLink();">상세안내 보러가기</button>
<p class="info">※ 해당 내용에 대하여 문의하실 분은 교육원으로 연락 주시면 안내 드리겠습니다.</p>
<div class="edu-consent-check">
<input type="checkbox" id="edu-consent">
<label for="edu-consent">
<span class="text-blue">상기 내용을 이해하였으며 잘못 이수된 교육은 인정되지 않음을 확인하였습니다.</span>
</label>
</div>
</main>
<footer class="edu-popup-footer">
<button id="edu-confirm-btn" onclick="educationConfirmSubmit();">확인</button>
<button id="edu-cancel-btn" onclick="closeEducationPopup();">취소</button>
</footer>
</div>
</div>*@
<textarea style="display: none;" id="texthide01">@ViewBag.POPUPS</textarea> <textarea style="display: none;" id="texthide01">@ViewBag.POPUPS</textarea>
@section scriptsHeader{ @section scriptsHeader{
<script src="~/js/jquery-ui.min.js"></script> <script src="~/js/jquery-ui.min.js"></script>
<style>
.mainTab li:after {
content: none;
}
</style>
} }
@section scripts{ @section scripts{
<script> <script>
$(window).on("load", function () { $(window).on("load", function () {
$(".iframebox").each(function () { $(".iframebox").each(function () {
document.getElementById("ifrpop" + $(this).attr("ifrnum")).contentWindow.document.body.style.overflow = "hidden"; document.getElementById("ifrpop" + $(this).attr("ifrnum")).contentWindow.document.body.style.overflow = "hidden";
}); });
}); });
$(document).ready(function () { $(document).ready(function () {
initSearch(); initSearch();
//showEducationPopup();
if (ismobile() || window) { if (ismobile() || window) {
if ($("#texthide01").val() != '') { if ($("#texthide01").val() != '') {
$.each($($("#texthide01").val().split('nptechpopuplistseparator')), function (i, p) { $.each($($("#texthide01").val().split('nptechpopuplistseparator')), function (i, p) {
@ -272,10 +634,8 @@
"<a class=\"closepopa\" href=\"#\" onclick=\"hidepop();$('#popbox" + p[0] + "').remove();\">✖</a></div>" + "<a class=\"closepopa\" href=\"#\" onclick=\"hidepop();$('#popbox" + p[0] + "').remove();\">✖</a></div>" +
"<div class=\"iframebox\" ifrnum=\""+p[0]+"\"><iframe id=\"ifrpop" + p[0] + "\" style=\"border: 0 none; height: " + (getint(p[6]) - 4) + "px; width: " + (getint(p[5])) + "px;\"></iframe></div>" + "<div class=\"iframebox\" ifrnum=\""+p[0]+"\"><iframe id=\"ifrpop" + p[0] + "\" style=\"border: 0 none; height: " + (getint(p[6]) - 4) + "px; width: " + (getint(p[5])) + "px;\"></iframe></div>" +
"<div class=\"iframeclosebox\"></div></div></div>"); "<div class=\"iframeclosebox\"></div></div></div>");
//"<div class=\"iframeclosebox\"><a class=\"\" style=\"border: 1px solid #ddd; padding: 5px 15px;\" onclick=\"hide7('popbox" + p[0] + "', " + p[0] + ")\"> 7일간 숨기기</a></div></div></div>");
$("#ifrpop" + p[0]).attr("src", "/Home/Popup?pno=" + p[0]); $("#ifrpop" + p[0]).attr("src", "/Home/Popup?pno=" + p[0]);
$("#popbox" + p[0]).show(); $("#popbox" + p[0]).show();
//$("html").css("overflow", "hidden");
} }
}); });
$(".poptitlebox").on("click", function () { $(".poptitlebox").on("click", function () {
@ -288,11 +648,7 @@
$(".draggablethis").draggable(); $(".draggablethis").draggable();
} }
// 영남 요청으로 클릭 이벤트 제거 2024.03.14(pms:4484)
//$('#liTab1').click(function () {
// $("#stringval").val("0");
// $("#indexForm").submit();
//});
$('#liTab2').click(function () { $('#liTab2').click(function () {
$("#stringval").val("1"); $("#stringval").val("1");
$("#indexForm").submit(); $("#indexForm").submit();
@ -304,17 +660,13 @@
}) })
$(".msBtn").click(function () { $(".msBtn").click(function () {
@*// // 2024.08.07 로그인제한 해제
if (@ViewBag.SSUserNo <= 0) {
msg("로그인 후 진행 할 수 있습니다.", null, null, null, "location.href='" + '/Account/Index' + "'");
return;
}*@
if ($("#liTab1").hasClass("current")) { if ($("#liTab1").hasClass("current")) {
$("#stringval").val("0"); $("#stringval").val("0");
} }
else if ($("#liTab2").hasClass("current")) { else if ($("#liTab2").hasClass("current")) {
$("#stringval").val("1"); $("#stringval").val("1");
} }
$("#stringval2").val($("#sch1").val()); $("#stringval2").val($("#sch1").val());
$("#stringval3").val($("#sch2").val()); $("#stringval3").val($("#sch2").val());
$("#stringval4").val($("#sch3").val()); $("#stringval4").val($("#sch3").val());
@ -337,13 +689,29 @@
} }
if ($("#msSel2 > span").text() != "품질관리기술인" && $("#sch6").val() == "") { if ($("#msSel2 > span").text() != "품질관리기술인" && $("#sch6").val() == "") {
@*msg("전문분야을 입력하세요.");*@ $("#stringval2").focus(); return; $("#stringval2").focus(); return;
} }
@* // 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
// 건설사업관리(계속교육) 신청 시 주의사항
if ($("#stringval3").val() == "28"
&& $("#stringval4").val() == "31"
&& ($("#stringval5").val() == "38" || $("#stringval5").val() == "39")
) {
showEducationPopup();
}
else {
$("#indexForm").attr("action", "/Course/SmartSearch").submit(); $("#indexForm").attr("action", "/Course/SmartSearch").submit();
}
*@
$("#indexForm").attr("action", "/Course/SmartSearch").submit();
}); });
$('.msSel span').click(function () { $('.msSel span').click(function () {
if ($(this).parent().is('.active')) { if ($(this).parent().is('.active')) {
if ($(this).is('.on')) { if ($(this).is('.on')) {
@ -364,17 +732,18 @@
msg('교육목적을 선택해주세요.'); msg('교육목적을 선택해주세요.');
} else if ($(this).parent().attr('id') == 'msSel5') { } else if ($(this).parent().attr('id') == 'msSel5') {
msg('등급을 선택해주세요.'); msg('등급을 선택해주세요.');
} @*else if ($(this).parent().attr('id') == 'msSel6' ) { }
msg('전문분야를 선택해주세요.');
}*@
} }
}); });
if (@Model.isalreadyreq == 1) { if (@Model.isalreadyreq == 1) {
msg("이미 신청된 강좌입니다. 메인화면으로 이동되었습니다."); msg("이미 신청된 강좌입니다. 메인화면으로 이동되었습니다.");
} }
});
function schIpt(num, code, name) {
});
function schIpt(num, code, name) {
switch (num) { switch (num) {
case '1': case '1':
@ -453,7 +822,7 @@
$("#liedu08").css("display", "none") // 계속교육 막기 $("#liedu08").css("display", "none") // 계속교육 막기
$("#liedu09").css("display", "none") // 필수교육 막기 $("#liedu09").css("display", "none") // 필수교육 막기
@if(DateTime.Now > DateTime.Parse("2030-01-02 00:00")) // ### ty 2024년 추가건 @*@if(DateTime.Now > DateTime.Parse("2030-01-02 00:00")) // ### ty 2024년 추가건
{ {
@:if (num => 2) { @:if (num => 2) {
@: if ($("#sch1").val() == "1" && $("#sch2").val() == "28") { @: if ($("#sch1").val() == "1" && $("#sch2").val() == "28") {
@ -477,8 +846,7 @@
@: $("#liedu09").css("display", "none") // 일반계속교육 막기 @: $("#liedu09").css("display", "none") // 일반계속교육 막기
@: } @: }
@:} @:}
} }*@
if (num == 2) { if (num == 2) {
@ -571,7 +939,6 @@
} }
if ($("#msSel6").attr("class").indexOf("disable") > -1) { if ($("#msSel6").attr("class").indexOf("disable") > -1) {
//해당 div도 같이 숨김 --> javascript:schIpt('5', '57', '품질관리');">품질관리
$("#msSel6 > div").css("display", "none"); $("#msSel6 > div").css("display", "none");
} }
else { else {
@ -610,8 +977,6 @@
if (num == 5) { if (num == 5) {
$("#msSel6 li").css("display", "none") $("#msSel6 li").css("display", "none")
//msSel5Code = code;
$("[id='lijob" + code + "']").css("display", "") $("[id='lijob" + code + "']").css("display", "")
$("#msSel6 span").text("전문분야") $("#msSel6 span").text("전문분야")
$("#msSel6").removeClass("active").addClass("disable") $("#msSel6").removeClass("active").addClass("disable")
@ -656,11 +1021,6 @@
$("#ligrade3").hide(); $("#ligrade3").hide();
$("#ligrade4").hide(); $("#ligrade4").hide();
//$("#liedu03").hide();
//$("#liedu04").hide();
//$("#liedu05").hide();
//$("#liedu06").hide();
//$("#liedu07").hide();
} }
else { else {
$("#liedu2").show(); $("#liedu2").show();
@ -737,7 +1097,7 @@
}); });
} }
}// else if (num == 5 && }
} }
function initSearch() { function initSearch() {
@ -768,19 +1128,44 @@
location.href = url; location.href = url;
} }
} }
var _hide7; var _hide7;
function hide7(id, pno) { function hide7(id, pno) {
_hide7 = id; _hide7 = id;
capp("/focommon/hidepop", { pno: pno }, "cbhide7"); capp("/focommon/hidepop", { pno: pno }, "cbhide7");
} }
function cbhide7() { function cbhide7() {
hidepop(); hidepop();
$("#" + _hide7).remove(); $("#" + _hide7).remove();
} }
function hidepop() { function hidepop() {
if ($(".popupitem").length == 1) { if ($(".popupitem").length == 1) {
$("html").css("overflow", "auto"); $("html").css("overflow", "auto");
} }
} }
/** 교육신청 전 필수 확인 찹업 */
function showEducationPopup() {
$('#edu-modal-overlay, #edu-layer-popup').addClass('active');
}
function closeEducationPopup() {
$('#edu-modal-overlay, #edu-layer-popup').removeClass('active');
}
function educationConfirmSubmit() {
if ($('#edu-consent').is(':checked')) {
$("#indexForm").attr("action", "/Course/SmartSearch").submit();
}
else {
msg("내용을 확인하고 동의란에 체크해주세요.");
}
}
function goLink() {
window.open('https://www.cte.or.kr/Board/View?BNo=6781&opno=&scc=&pagenum=1&menupageno=88&pmenupageno=24');
}
</script> </script>
} }

50
Model/Lect2.cs Normal file
View File

@ -0,0 +1,50 @@
using System;
/* CM.cs 에 기존 lect들이 모여있다. */
namespace NP.Model
{
/// <summary>
/// 회원 수강신청 정보
/// </summary>
[Serializable]
public class LectEnroll
{
/* 영남 테이블명세서.xlsx 파일 내 설명*/
/// <summary>회원번호</summary>
public int USERNO { get; set; }
/// <summary>수강키 (lect.lectno) [2]</summary>
public long lectno { get; set; }
/// <summary>수료여부</summary>
public byte ISCOMPLETE { get; set; }
/// <summary>AS-IS 수료번호 (lect.completeno)</summary>
public string completeno { get; set; }
/// <summary>강좌/과정키 (cm.cmno)</summary>
public int cmno { get; set; }
/// <summary>과정명 (cm.cname)</summary>
public string CNAME { get; set; }
/// <summary>상위분류키 (cg.pcgno)</summary>
public short PCGNO { get; set; }
/// <summary>결제키 (pay.payno)</summary>
public long PAYNO { get; set; }
/// <summary>결제상태 (pay.pstatus)</summary>
public byte PSTATUS { get; set; }
/// <summary>강의유형</summary>
public byte CSHAPE { get; set; }
/// <summary>기술인분류 (cm.typeman)</summary>
public short TYPEMAN { get; set; }
/// <summary>교육목적 (cm.typeedu)</summary>
public short TYPEEDU { get; set; }
/// <summary>등급 (cm.typegrade)</summary>
public short TYPEGRADE { get; set; }
/// <summary>직무분야 (cm.typejob)</summary>
public short TYPEJOB { get; set; }
/// <summary>분류코드 (cg.cgcode)</summary>
public string CGCODE { get; set; }
/// <summary>분류명 (cg.cgname)</summary>
public string CGNAME { get; set; }
/// <summary>일정키 (cminningscd.cmisno)</summary>
public long CMISNO { get; set; }
}
}

View File

@ -47,6 +47,7 @@
<Compile Include="Board.cs" /> <Compile Include="Board.cs" />
<Compile Include="CRoom.cs" /> <Compile Include="CRoom.cs" />
<Compile Include="Documents.cs" /> <Compile Include="Documents.cs" />
<Compile Include="Lect2.cs" />
<Compile Include="Pay.cs" /> <Compile Include="Pay.cs" />
<Compile Include="Common.cs" /> <Compile Include="Common.cs" />
<Compile Include="ENUM.cs" /> <Compile Include="ENUM.cs" />