(추가개발) 스마트검색 신규개발 되었으나 롤백 (개발된 코드는 주석처리)
This commit is contained in:
parent
de1fe9a8ce
commit
28e764a24c
|
|
@ -97,7 +97,9 @@ namespace NP.BO.Controllers
|
|||
}
|
||||
}
|
||||
//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;
|
||||
// 로그인 실패 카운트 증가
|
||||
vm.logincnt++;
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ namespace NP.Base.Controllers
|
|||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
@ -197,17 +197,10 @@ namespace NP.Base.Controllers
|
|||
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))
|
||||
{
|
||||
return JsonBack(new { code = 1000, ip = ip, mobile = u.mobile, no = u.userno });
|
||||
}
|
||||
//기타에러
|
||||
else
|
||||
{
|
||||
return JsonBack(new { code = -2 });
|
||||
|
|
|
|||
|
|
@ -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.Linq;
|
||||
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 Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace NP.Base.Controllers
|
||||
{
|
||||
|
|
@ -364,8 +365,9 @@ namespace NP.Base.Controllers
|
|||
"아래 링크를 클릭하셔서 비밀번호를 재설정해주세요.<br /><br />" +
|
||||
"<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
|
||||
{
|
||||
|
|
@ -656,16 +658,23 @@ namespace NP.Base.Controllers
|
|||
|
||||
[HttpPost]
|
||||
/// ### 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 이면 수강 가능, 그외 수강 불가
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
#region + 이건 과거로직이다 아마도 앞으로 사용하지 않을 것 같다
|
||||
// pms: 5640 적용
|
||||
//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;
|
||||
|
||||
//}
|
||||
#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)
|
||||
{
|
||||
|
|
@ -771,7 +1070,9 @@ namespace NP.Base.Controllers
|
|||
string[] cgcodes = 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년 적용!!!
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
<typeAlias alias="lectexq" type="NP.Model.LectEXQ, NP.Model" />
|
||||
<typeAlias alias="lectsd" type="NP.Model.LectSD, 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="examuser" type="NP.Model.ExamUser, NP.Model"/>
|
||||
<typeAlias alias="examuserrenew" type="NP.Model.ExamUserRenew, NP.Model"/>
|
||||
|
|
@ -2852,5 +2853,44 @@
|
|||
, l.uip=#uip#
|
||||
where l.lectno = #lectno#;
|
||||
</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>
|
||||
</sqlMap>
|
||||
|
|
@ -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.Linq;
|
||||
using System.Web;
|
||||
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 NP.Model.ENUM;
|
||||
|
||||
namespace NP.FO.Controllers
|
||||
{
|
||||
|
|
|
|||
|
|
@ -701,6 +701,7 @@ namespace NP.FO.Controllers
|
|||
/// <returns></returns>
|
||||
public ActionResult SmartSearch(VMCourse vm)
|
||||
{
|
||||
#region + 참고사항
|
||||
/*
|
||||
stringval : 0: 건설기술진흥법교육 (현재 고정됨)
|
||||
stringval2 : SKILL (1: 교육장, 2:온라인) - cshape
|
||||
|
|
@ -713,6 +714,7 @@ namespace NP.FO.Controllers
|
|||
WHERE isuse = 1
|
||||
AND cgroup IN ('typejob40','typejob41','typejob42','typejob43','typejob44','typejob45','typejob46','typejob47','typejob48','typejob49'))
|
||||
*/
|
||||
#endregion
|
||||
|
||||
var p = new Hashtable();
|
||||
|
||||
|
|
@ -753,11 +755,23 @@ namespace NP.FO.Controllers
|
|||
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.ComCodes3 = GetComCodes("typeedu");
|
||||
vm.ComCodes4 = GetComCodes("typegrade");
|
||||
vm.ComCodes5 = GetComCodes("typejob");
|
||||
vm.ComCodes6 = GetComCodes("typejobitem");
|
||||
#endregion
|
||||
|
||||
bool getComCheck = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@
|
|||
<Content Include="css\jquery-ui-1.12.1\jquery-ui.min.css" />
|
||||
<Content Include="css\lecture.css" />
|
||||
<Content Include="css\dev.css" />
|
||||
<Content Include="css\login.css" />
|
||||
<Content Include="css\mainpopup.css" />
|
||||
<Content Include="css\mypage.css" />
|
||||
<Content Include="css\slick.css" />
|
||||
|
|
@ -715,7 +716,6 @@
|
|||
<Content Include="Views\My\MyAssInfo.cshtml" />
|
||||
<Content Include="Views\Course\ApplyEdu.cshtml" />
|
||||
<Content Include="Views\Course\ApplyComplete.cshtml" />
|
||||
<Content Include="Views\Course\ApplyPay_221227.cshtml" />
|
||||
<Content Include="Views\Course\XpayREQ.cshtml" />
|
||||
<Content Include="Views\Course\XpayReturnURL.cshtml" />
|
||||
<Content Include="Views\My\Document.cshtml" />
|
||||
|
|
@ -727,7 +727,6 @@
|
|||
<Content Include="Views\Shared\Partial\MobileChk.cshtml" />
|
||||
<Content Include="Views\Home\PrivacyPolicy.cshtml" />
|
||||
<Content Include="Views\Home\UsePolicy.cshtml" />
|
||||
<Content Include="Views\Course\ApplyAgree_old.cshtml" />
|
||||
<Content Include="Views\Open\PlayOpen.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
@ -744,7 +743,6 @@
|
|||
<Content Include="Views\Home\Indexbk2.cshtml" />
|
||||
<Content Include="Views\Account\PwChange.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\privacy.cshtml" />
|
||||
<Content Include="Views\Shared\Partial\Select.cshtml" />
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
@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="schBox" style="display:none;">
|
||||
<div class="schBox" style="@firstSchBoxDisplayStyle">
|
||||
<form id="smartSearchForm" method="post">
|
||||
<input type="hidden" name="cmno" id="cmno" />
|
||||
<input type="hidden" id="cmino" name="CM.cmino" />
|
||||
|
|
@ -8,14 +18,17 @@
|
|||
<input type="hidden" name="stringval" id="stringval" value="@Model.stringval" />
|
||||
@if (Model.stringval == "0" || Model.stringval == null || Model.stringval == "")
|
||||
{
|
||||
if (isDevSite)
|
||||
{
|
||||
<h3>개발서버 테스트용</h3>
|
||||
}
|
||||
<ul class="schTab">
|
||||
<li id="liTab1" class="current" style="font-size:16pt;"><a href="#">건설기술진흥법교육</a></li>
|
||||
<li id="liTab2" style="font-size:16pt;display:none;"><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="javascript:void(0);">기타교육</a></li>
|
||||
</ul>
|
||||
<ul class="schCont">
|
||||
<li>
|
||||
<select name="stringval2" id="stringval2">
|
||||
@*<option value="0" @(Model.stringval2 == "0" ? "selected" : "")>온라인교육</option>*@
|
||||
<option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option>
|
||||
<option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option>
|
||||
</select>
|
||||
|
|
@ -38,19 +51,18 @@
|
|||
<li>
|
||||
@Html.DropDownListFor(x => x.stringval7, new SelectList(Model.ComCodes6, "ccode", "cname"), "-선택-")
|
||||
</li>
|
||||
<li><a href="#" id="btnSearch">검색</a></li>
|
||||
<li><a href="javascript:void(0);" id="btnSearch">검색</a></li>
|
||||
</ul>
|
||||
}
|
||||
else if (Model.stringval == "1")
|
||||
{
|
||||
<ul class="schTab">
|
||||
<li id="liTab1"><a href="#" style="font-size:16pt;">건설기술진흥법교육</a></li>
|
||||
<li id="liTab2" class="current" style="font-size:16pt;"><a href="#">기타교육</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="javascript:void(0);">기타교육</a></li>
|
||||
</ul>
|
||||
<ul class="schCont">
|
||||
<li>
|
||||
<select name="stringval2" id="stringval2">
|
||||
@*<option value="0" @(Model.stringval2 == "0" ? "selected" : "")>온라인교육</option>*@
|
||||
<option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option>
|
||||
<option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option>
|
||||
</select>
|
||||
|
|
@ -58,30 +70,15 @@
|
|||
<li>
|
||||
@Html.DropDownListFor(x => x.stringval3, new SelectList(Model.CMsEtc, "cgno", "cgname"), "-선택-")
|
||||
</li>
|
||||
<li><a href="#" id="btnSearch">검색</a></li>
|
||||
<li><a href="javascript:void(0);" id="btnSearch">검색</a></li>
|
||||
</ul>
|
||||
}
|
||||
|
||||
|
||||
</form>
|
||||
</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 />
|
||||
@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>
|
||||
|
||||
}
|
||||
else if (Model.stringval2 == "2")
|
||||
{
|
||||
|
|
@ -98,10 +95,11 @@
|
|||
<li>
|
||||
<div class="smtlCont">
|
||||
<h5>
|
||||
<em style="font-size:15px" class="@(item.cshape == 0 ? "org" : item.cshape == 1 ? "grn" : "blu")">
|
||||
@(item.cshape == 0 ? "온라인" : item.cshape == 1 ? "교육장교육" : "온라인교육")
|
||||
</em>
|
||||
@*<span style="font-size:22px">@($"{item.cname} | {item.studytime}시간과정 | 교육비{item.infee}")</span></h5>*@
|
||||
@if (!string.IsNullOrEmpty(item.cgcode))
|
||||
{ // cg코드를 <span style='color:green; font-weight:bold;'>[전문분야교육]</span> 형태로 변경해주는 Helper 메서드 사용
|
||||
@Html.Raw(this.GetCgLabel(item.cgcode))
|
||||
}
|
||||
|
||||
@{
|
||||
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>
|
||||
<a onclick="javascript: openIntro(@item.cmno);" class="smtlChkBtn smtlChk01" style="right:130px;">강좌소개</a>
|
||||
</li>
|
||||
@*<li style="font-size:18px;"><a href="#" class="smtlBtn02" id="btnIntro" onclick="javascript: openIntro(@item.cmno)">강좌소개</a></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">
|
||||
</li>
|
||||
</ul>
|
||||
</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온라인/오프라인 안내*@
|
||||
<div id="divInfo_@item.cmno" class="smtlChk">
|
||||
</div>
|
||||
|
|
@ -170,7 +154,7 @@
|
|||
<div class="clsPopWrap">
|
||||
<div class="clsPopTitle">
|
||||
<h5>강좌소개</h5>
|
||||
<a href="#" onclick="javascript: closeIntro();"></a>
|
||||
<a href="javascript:void(0);" onclick="javascript: closeIntro();"></a>
|
||||
</div>
|
||||
<div class="clsPopCont">
|
||||
<ul class="smtList pop">
|
||||
|
|
@ -181,14 +165,14 @@
|
|||
<p>교육분류 : <span id="spnCmKind"></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>
|
||||
@*@if (Model.CM.cshape != 1)
|
||||
{
|
||||
<p id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상</p>
|
||||
}*@
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<dl class="fairIntro spnCmEduname" style="">
|
||||
<dt>교육종류</dt>
|
||||
<dd><span id="spnCmEduname"></span></dd>
|
||||
</dl>
|
||||
<dl class="fairIntro spnCmUsername" style="display:none;">
|
||||
<dt>강사정보</dt>
|
||||
<dd><span id="spnCmUsername"></span></dd>
|
||||
|
|
@ -225,9 +209,13 @@
|
|||
var _cmno;
|
||||
$(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>');
|
||||
|
||||
$("#pageTitle h3").text("교육과정선택")
|
||||
|
||||
$("#pageTitle h3").text("교육과정선택");
|
||||
|
||||
$('#liTab1').click(function () {
|
||||
$.when(
|
||||
$("#stringval").val("0"),
|
||||
|
|
@ -237,9 +225,10 @@
|
|||
$("#stringval6").val("")
|
||||
).done(function () {
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('#liTab2').click(function () {
|
||||
$.when(
|
||||
$("#stringval").val("1"),
|
||||
|
|
@ -249,57 +238,65 @@
|
|||
$("#stringval6").val("")
|
||||
).done(function () {
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$('#btnSearch').click(function () {
|
||||
if ($("#liTab1").hasClass("current")) {
|
||||
if ($("#liTab1").hasClass("current")) {
|
||||
$("#stringval").val("0");
|
||||
}
|
||||
}
|
||||
else if ($("#liTab2").hasClass("current")) {
|
||||
$("#stringval").val("1");
|
||||
}
|
||||
setTimeout(function () {
|
||||
}
|
||||
setTimeout(function () {
|
||||
$("#smartSearchForm").submit();
|
||||
}, 1000);
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
$("#stringval").change(function () {
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
$("#stringval2").change(function () {
|
||||
$("#stringval3").val("");
|
||||
$("#stringval4").val("");
|
||||
$("#stringval5").val("");
|
||||
$("#stringval6").val("");
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
$("#stringval3").change(function () {
|
||||
$("#stringval4").val("");
|
||||
$("#stringval5").val("");
|
||||
$("#stringval6").val("");
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
$("#stringval4").change(function () {
|
||||
$("#stringval5").val("");
|
||||
$("#stringval6").val("");
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
$("#stringval5").change(function () {
|
||||
$("#stringval6").val("");
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
$("#stringval6").change(function () {
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
$("#stringval6").change(function () {
|
||||
$("#smartSearchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
function openIntro(cmno) {
|
||||
$(".spnCmEduname").hide();
|
||||
$(".spnCmUsername").hide();
|
||||
$(".spnCmIntroHtml").hide();
|
||||
$(".spnCmTargetHtml").hide();
|
||||
$(".spnCmGoalHtml").hide();
|
||||
$(".spnCmContentHtml").hide();
|
||||
$("#divIntro").show();
|
||||
|
||||
capp("/focommon/getcmuser", { cmno: cmno }, "renderCmNo");
|
||||
}
|
||||
|
||||
|
|
@ -309,17 +306,19 @@
|
|||
var typegrade = $("#stringval5").find("option:selected").text();
|
||||
var typejob = $("#stringval6").find("option:selected").text();
|
||||
var cmkind;
|
||||
|
||||
cmkind = typeman + " | " + typeedu + " | " + typegrade + " | " + typejob;
|
||||
|
||||
if ($("#stringval").val() == "1") {
|
||||
cmkind = $("#stringval3").find("option:selected").text();
|
||||
}
|
||||
|
||||
$.each(capResult.obj, function (i, d) {
|
||||
//20220729 온라인인경우 수료기준을 보여준다.
|
||||
if (@(Model.stringval2) == 1) {
|
||||
if (@(Model.stringval2 == null ? 0 : Convert.ToInt32(Model.stringval2)) == 1) {
|
||||
$("#completeStd").hide();
|
||||
}
|
||||
else if (@(Model.stringval2) == 2) {
|
||||
else if (@(Model.stringval2 == null ? 0 : Convert.ToInt32(Model.stringval2)) == 2) {
|
||||
$("#completeStd").show();
|
||||
}
|
||||
|
||||
|
|
@ -329,22 +328,57 @@
|
|||
$("#spnCmAttend").text(d.attendcut);
|
||||
$("#spnCmFinal").text(d.finalcut);
|
||||
$("#spnCmSubject").text(d.subjectcut);
|
||||
|
||||
if (d.username != null && d.username != "" && d.username != undefined) {
|
||||
$("#spnCmUsername").text(d.username);
|
||||
$(".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) {
|
||||
$("#spnCmIntroHtml").html(d.introhtml);
|
||||
$(".spnCmIntroHtml").show();
|
||||
}
|
||||
|
||||
if (d.targethtml != null && d.targethtml != "" && d.targethtml != undefined) {
|
||||
$("#spnCmTargetHtml").html(d.targethtml);
|
||||
$(".spnCmTargetHtml").show();
|
||||
}
|
||||
|
||||
if (d.goalhtml != null && d.goalhtml != "" && d.goalhtml != undefined) {
|
||||
$("#spnCmGoalHtml").html(d.goalhtml);
|
||||
$(".spnCmGoalHtml").show();
|
||||
}
|
||||
|
||||
if (d.contenthtml != null && d.contenthtml != "" && d.contenthtml != undefined) {
|
||||
$("#spnCmContentHtml").html(d.contenthtml);
|
||||
$(".spnCmContentHtml").show();
|
||||
|
|
@ -377,9 +411,12 @@
|
|||
|
||||
if (btnSelect.html() == '교육신청') {
|
||||
btnSelect.html('닫기');
|
||||
//capp("/focommon/GetScdForMixEdu", { cmno: model.cm.cmno, month: $("#selMonth").val() }, "renderScd");
|
||||
//교육일정에 등록되어 있는 일정 중 선택이 가능한 첫번째 일정 선택으로 달 파라미터 제거
|
||||
capp("/focommon/GetScdForMixEdu", { cmno: cmno}, "renderScdInning(1," + cshape + "," + cmno + ")");
|
||||
|
||||
capp(
|
||||
"/focommon/GetScdForMixEdu",
|
||||
{ cmno: cmno },
|
||||
"renderScdInning(1," + cshape + "," + cmno + ")"
|
||||
);
|
||||
}
|
||||
else {
|
||||
divInfo.empty();
|
||||
|
|
@ -453,7 +490,6 @@
|
|||
data.studyplace = d.studyplace;
|
||||
data.studyplacename = d.studyplacename;
|
||||
|
||||
// 리스트에 생성된 객체 삽입
|
||||
studyPlaceTmp.push(data);
|
||||
}
|
||||
});
|
||||
|
|
@ -465,14 +501,15 @@
|
|||
}
|
||||
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 + ");' style='font-size:20px;'>전체</a></li>";
|
||||
|
||||
$.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>";
|
||||
});
|
||||
|
|
@ -494,7 +531,7 @@
|
|||
|
||||
var ulScd = $("#ulScd" + cmno);
|
||||
ulScd.empty();
|
||||
//var seq = 0;
|
||||
|
||||
if (capResult.obj.length < 1) {
|
||||
var li = $("<li />");
|
||||
if (cshape == 1) {
|
||||
|
|
@ -509,13 +546,12 @@
|
|||
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 />", { "class": "smtlChkBtn smtlChk03" }, { "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 + "' onclick='javascript:applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ") + "' ";*/
|
||||
var strStudyPlacename = "";
|
||||
let comment = d.comment == null ? "" : "<span style='margin-left:12px'>(" + d.comment + ")</span>"
|
||||
|
||||
if (d.studyplace != null && d.studyplace != '' && d.studyplacename != null && 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>");
|
||||
}
|
||||
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("까지", "")
|
||||
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
|
||||
spanApplyClassN.text("접수마감");
|
||||
|
|
@ -584,7 +572,7 @@
|
|||
console.log("교육신청")
|
||||
aApplyClass.append(spanApplyClass);
|
||||
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.append(aApplyClass);
|
||||
|
|
@ -596,7 +584,7 @@
|
|||
}
|
||||
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.append(spanApplyClass);
|
||||
}
|
||||
|
|
@ -624,158 +612,10 @@
|
|||
}
|
||||
|
||||
if (issearchable) {
|
||||
//if (cshape == 1) {
|
||||
// $("#divPlace_" + cmno).show();
|
||||
//}
|
||||
//else {
|
||||
// $("#divPlace_" + cmno).hide();
|
||||
//}
|
||||
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 개발전
|
||||
function getSubCm(cshape, no, place) {
|
||||
var issearchable = false;
|
||||
|
|
@ -803,7 +643,6 @@
|
|||
var cmno = _cmno;
|
||||
var ulSubCm = $("#ulSubCm_" + cmno);
|
||||
ulSubCm.empty();
|
||||
//var applyClass = "<li><p class='subDsc' style='color:red;'>※ 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다</p >※ 각 기수별 <span style='color:red;'>교육종료일을 꼭 확인하시고</span> 교육신청 부탁드립니다.</li>";
|
||||
$.each(capResult.obj, function (i, d) {
|
||||
var li = $("<li />");
|
||||
var p = $("<p />");
|
||||
|
|
@ -829,19 +668,15 @@
|
|||
}
|
||||
|
||||
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>");
|
||||
}
|
||||
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>");
|
||||
}
|
||||
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>");
|
||||
}
|
||||
|
||||
spanIntro.text("강좌소개");
|
||||
li.append(p);
|
||||
a.append(spanIntro);
|
||||
|
|
@ -859,23 +694,29 @@
|
|||
}
|
||||
}
|
||||
|
||||
@*/** 수강신청 버튼 클릭 */*@
|
||||
function applyClassEdu(cmno, pcmno, cmino, cmisno) {
|
||||
//수강신청
|
||||
var uno = ('@ViewBag.SSUserNo' != '') ? parseInt(@ViewBag.SSUserNo) : 0;
|
||||
|
||||
if (@ViewBag.SSUserNo > 0) {
|
||||
////var cmino = $("#cmino");
|
||||
if (uno > 0) {
|
||||
$("#cmino").val(cmino);
|
||||
///*var cmisno = $("#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 {
|
||||
//msg("로그인 후 신청 할 수 있습니다.");
|
||||
let searchRslt = $("#smartSearchForm").serialize()
|
||||
searchRslt += "&stringval17=" + cmno + "&stringval18=" + pcmno + "&stringval19=" + cmino + "&stringval20=" + cmisno;
|
||||
searchRslt += "&stringval21=" + $("#pcmno_" + pcmno + "_cgcode").val()
|
||||
location.href = "/Account/index?" + searchRslt;
|
||||
|
||||
let searchRslt = $("#smartSearchForm").serialize();
|
||||
let url = `/Account/index?${searchRslt}
|
||||
&stringval17=${cmno}
|
||||
&stringval18=${pcmno}
|
||||
&stringval19=${cmino}
|
||||
&stringval20=${cmisno}
|
||||
&stringval21=${$("#pcmno_" + pcmno + "_cgcode").val()}`;
|
||||
|
||||
url = url.replace(/\s/g, '');
|
||||
location.href = url;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -884,7 +725,7 @@
|
|||
function applyClass(cmno, pcmno) {
|
||||
//수강신청
|
||||
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 {
|
||||
msg("로그인 후 신청 할 수 있습니다.");
|
||||
|
|
@ -896,21 +737,80 @@
|
|||
let _cgcode = 0;
|
||||
let _grade = 0;
|
||||
|
||||
function checkLectCompleteEdu(cmno, man, edu, grade, cgcode, pcmno) {
|
||||
function checkLectCompleteEdu(cmno, man, edu, grade, job, cgcode, pcmno) {
|
||||
_cmno = cmno;
|
||||
_edu = edu;
|
||||
_cgcode = cgcode;
|
||||
_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 개발전
|
||||
function checkLectComplete(cmno, man, edu, grade, cgcode, pcmno) {
|
||||
_cmno = cmno;
|
||||
capp("/focommon/GetCheckLectIs", { cmno: cmno, man: man, edu: edu, grade: grade, cgcode: cgcode, pcmno: pcmno }, "chkLect"); // 1
|
||||
@*capResult.code == code;*@
|
||||
capp(
|
||||
"/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;'>
|
||||
- 선택한 교육목적으로 인정되지 않는 경우<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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -918,6 +818,7 @@
|
|||
function chkLect() { //2 --> 4
|
||||
let chk = @(DateTime.Now > DateTime.Parse("2030-01-02 00:00") ? "true" : "false"); // ### ty 2024년 추가건 // chk == 1 ? 2024년 표시 문구 나오기
|
||||
let chkMsg = "";
|
||||
|
||||
if (capResult.code == 1000) {
|
||||
if (capResult.obj == 0) {
|
||||
|
||||
|
|
@ -932,10 +833,11 @@
|
|||
}
|
||||
|
||||
if (chk && chkMsg != "") {
|
||||
msg(chkMsg)
|
||||
msg(chkMsg);
|
||||
|
||||
$(".mainokbutton").on("click", function () {
|
||||
checkLectIsComplete(_cmno);
|
||||
})
|
||||
});
|
||||
}
|
||||
else {
|
||||
checkLectIsComplete(_cmno);
|
||||
|
|
@ -943,7 +845,6 @@
|
|||
}
|
||||
else if (capResult.obj == 1) {
|
||||
if (chk) {
|
||||
|
||||
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;'>" +
|
||||
" 이미 같은 교육목적과 등급으로 신청 또는 이수한 내역이 있습니다." +
|
||||
|
|
@ -957,7 +858,6 @@
|
|||
}
|
||||
}
|
||||
else {
|
||||
@* msg("<sapn style='font-size: 15pt;'>이미 수강/수료한 과정입니다.</span>");*@
|
||||
msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
|
||||
}
|
||||
}
|
||||
|
|
@ -965,7 +865,6 @@
|
|||
|
||||
|
||||
function checkLectIsComplete(cmno) { //3
|
||||
|
||||
capp("/focommon/GetCheckLectIsComplete", { cmno: cmno }, "check");
|
||||
}
|
||||
|
||||
|
|
@ -973,7 +872,6 @@
|
|||
var cnt = capResult.obj;
|
||||
if (cnt > 0) {
|
||||
// 강좌를 만들 수 있지만 이미 생성된 조건?
|
||||
@* msg("이미 수강/수료한 과정입니다.");*@
|
||||
msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
|
||||
return;
|
||||
}
|
||||
|
|
@ -981,5 +879,38 @@
|
|||
$("#cmno").val(_cmno);
|
||||
$("#smartSearchForm").attr("action", "/Course/ApplyEdu").submit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</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>";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -19,7 +19,6 @@
|
|||
<ul class="schCont">
|
||||
<li>
|
||||
<select name="stringval2" id="stringval2">
|
||||
@*<option value="0" @(Model.stringval2 == "0" ? "selected" : "")>온라인교육</option>*@
|
||||
<option value="1" @(Model.stringval2 == "1" ? "selected" : "")>교육장교육</option>
|
||||
<option value="2" @(Model.stringval2 == "2" ? "selected" : "")>온라인교육</option>
|
||||
</select>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -47,6 +47,7 @@
|
|||
<Compile Include="Board.cs" />
|
||||
<Compile Include="CRoom.cs" />
|
||||
<Compile Include="Documents.cs" />
|
||||
<Compile Include="Lect2.cs" />
|
||||
<Compile Include="Pay.cs" />
|
||||
<Compile Include="Common.cs" />
|
||||
<Compile Include="ENUM.cs" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue