7331. 환급/비환급과정 문구 수정

This commit is contained in:
iyak 2025-09-24 03:50:19 +00:00
parent 8220797d63
commit 38e7787560
6 changed files with 497 additions and 1193 deletions

View File

@ -1,16 +1,12 @@
using System;
using NP.Base.Controllers;
using NP.Model;
using NP.Model.ENUM;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using NP.Model;
using NP.Base;
using System.Collections;
using XPayClientNet;
using NP.Model.ENUM;
using System.Xml.Linq;
namespace NP.FO.Controllers
{
@ -295,10 +291,7 @@ namespace NP.FO.Controllers
{
return Redirect("/Course/Offs");
}
//else if (Response.IsRequestBeingRedirected)
//{
// return RedirectToAction("OffDetail", new { cmno = vm.cmno });
//}
vm.viewname3 = vm.viewname3 ?? "";
vm.previewname = vm.previewname ?? "/Course/Offs";
vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, { "contents", vm.Contents } }).First();
@ -421,82 +414,6 @@ namespace NP.FO.Controllers
d.isbig = isbig ? 1 : 0;
}
}
//if (iscm && !string.IsNullOrEmpty(vm.CM.tasteurl))
//{
// var d = vm.CM;
// //Thumbnail 확인
// if (!System.IO.File.Exists(Server.MapPath(vm.Thumbnails + "/" + d.cmno + ".jpg")))
// {
// if (!System.IO.Directory.Exists(Server.MapPath(vm.Files + vm.Thumbnails)))
// {
// System.IO.Directory.CreateDirectory(Server.MapPath(vm.Files + vm.Thumbnails + "/"));
// }
// String thumbargs = "-i " + Server.MapPath(vm.Contents + d.tasteurl) + " -vframes 1 -ss 00:00:07 -s 150x150 " + Server.MapPath(vm.Thumbnails + "/" + d.cmno + ".jpg");
// System.Diagnostics.Process thumbproc = new System.Diagnostics.Process();
// thumbproc = new System.Diagnostics.Process();
// thumbproc.StartInfo.FileName = GetConfig("thumbnailexe");
// thumbproc.StartInfo.Arguments = thumbargs;
// thumbproc.StartInfo.UseShellExecute = false;
// thumbproc.StartInfo.CreateNoWindow = false;
// thumbproc.StartInfo.RedirectStandardOutput = false;
// try
// {
// thumbproc.Start();
// d.tasteurl = vm.Thumbnails + "/" + d.cmno + ".jpg";
// }
// catch (Exception ex)
// {
// SetError("ffmpeg: " + ex.Message);
// d.tasteurl = isbig ? "/img/online/fair_sample01.jpg" : "/img/main/main_edu_thumb01.jpg";
// }
// thumbproc.WaitForExit();
// thumbproc.Close();
// //_repository.CreateUniqueFullPath(_path);
// }
// else
// {
// d.tasteurl = vm.Thumbnails + "/" + d.cmno + ".jpg";
// }
//}
//else if (!iscm)
//{
// foreach (var d in vm.CMs.Where(w => !string.IsNullOrEmpty(w.tasteurl)))
// {
// //Thumbnail 확인
// if (!System.IO.File.Exists(Server.MapPath(vm.Thumbnails + "/" + d.cmno + ".jpg")))
// {
// if (!System.IO.Directory.Exists(Server.MapPath(vm.Files + vm.Thumbnails)))
// {
// System.IO.Directory.CreateDirectory(Server.MapPath(vm.Files + vm.Thumbnails + "/"));
// }
// String thumbargs = "-i " + Server.MapPath(vm.Contents + d.tasteurl) + " -vframes 1 -ss 00:00:07 -s 150x150 " + Server.MapPath(vm.Thumbnails + "/" + d.cmno + ".jpg");
// System.Diagnostics.Process thumbproc = new System.Diagnostics.Process();
// thumbproc = new System.Diagnostics.Process();
// thumbproc.StartInfo.FileName = GetConfig("thumbnailexe");
// thumbproc.StartInfo.Arguments = thumbargs;
// thumbproc.StartInfo.UseShellExecute = false;
// thumbproc.StartInfo.CreateNoWindow = false;
// thumbproc.StartInfo.RedirectStandardOutput = false;
// try
// {
// thumbproc.Start();
// d.tasteurl = vm.Thumbnails + "/" + d.cmno + ".jpg";
// }
// catch (Exception ex)
// {
// SetError("ffmpeg: " + ex.Message);
// d.tasteurl = "/img/main/main_edu_thumb01.jpg";
// }
// thumbproc.WaitForExit();
// thumbproc.Close();
// //_repository.CreateUniqueFullPath(_path);
// }
// else
// {
// d.tasteurl = vm.Thumbnails + "/" + d.cmno + ".jpg";
// }
// }
//}
}
@ -772,32 +689,48 @@ namespace NP.FO.Controllers
return PayReturn(vm);
}
#region /
// 로그인을 하지 않았읋 때 스마트검색에서 교육신청을 하면 스마트검색 결과 페이지가 나온다
// 로그인을 한 상태에서 스마트검색에서 교육신청을 하면 스마트검색 결과 페이지는 나오지 않는다.
/// <summary>
/// 스마트검색
/// </summary>
/// <param name="vm"></param>
/// <returns></returns>
public ActionResult SmartSearch(VMCourse vm)
{
// 2024.08.07 로그인제한 해제
//if (SUserInfo.UserNo == 0) {
// return RedirectToAction(nameof(HomeController.Index), "Home");
//}
/*
stringval : 0: ( )
stringval2 : SKILL (1: , 2:) - cshape
stringval3 : (SELECT * FROM comcode WHERE cgroup = 'typeman' AND isuse = 1)
stringval4 : (SELECT * FROM comcode WHERE cgroup = 'typeedu' AND isuse = 1)
stringval5 : (SELECT * FROM comcode WHERE cgroup = 'typegrade' AND isuse = 1 )
stringval6 : (SELECT * FROM comcode WHERE cgroup = 'typejob' AND isuse = 1)
stringval7 : (SELECT *
FROM comcode
WHERE isuse = 1
AND cgroup IN ('typejob40','typejob41','typejob42','typejob43','typejob44','typejob45','typejob46','typejob47','typejob48','typejob49'))
*/
var p = new Hashtable();
// 교육장소
vm.ComCodes = GetComCodes("studyplace");
vm.CMsEtc = Dao.Get<CM>("cm.cgetc", new System.Collections.Hashtable() { { "cgcode", "2" } });//cgcode = 기타교육 // 기타교육 cgcode 바뀌면 파라미터도 변경해야함
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable()).First();
// 아스팔트포장전문교육
p.Clear();
p.Add("cgcode", "2");
vm.CMsEtc = Dao.Get<CM>("cm.cgetc", p);
p.Clear();
vm.CM = Dao.Get<CM>("cm.cms", p).First();
var hsData = SetHash(vm);
if (vm.stringval == "0" || string.IsNullOrEmpty(vm.stringval)) //건설기술진흥법교육
{
//hsData.Add("ismaster", 1);
//hsData.Add("cshape", vm.stringval2);
//hsData.Add("typeman", vm.stringval3);
//hsData.Add("typeedu", vm.stringval4);
//hsData.Add("typegrade", vm.stringval5);
//hsData.Add("typejob", vm.stringval6);
//hsData.Add("typejobitem", vm.stringval7);
////vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "ismaster", "1" }, { "cshape", vm.stringval2 }, { "typeman", vm.stringval3 }, { "typeedu", vm.stringval4 }, { "typegrade", vm.stringval5 }, { "typejob", vm.stringval6 }, { "typejobitem", vm.stringval7 } }).Where(w=>w.isuse == 1).ToList();
//vm.CMs = Dao.Get<CM>("cm.cms", hsData).Where(w => w.isuse == 1).ToList();
// 20220726 공개+현재수강신청가능한 강좌목록 구하기
//20220726 소스 정리
//hsData = SetHash(vm);
hsData.Add("cshape", vm.stringval2);
hsData.Add("typeman", vm.stringval3);
hsData.Add("typeedu", vm.stringval4);
@ -806,17 +739,19 @@ namespace NP.FO.Controllers
hsData.Add("typejobitem", vm.stringval7);
hsData.Add("isuse", 1);
hsData.Add("orderby", " a.pcmno, a.cname");
vm.CMs = Dao.Get<CM>("cm.subcms", hsData).ToList();
}
else if (vm.stringval == "1") //기타교육
{
vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "ismaster", "1" }, { "cshape", vm.stringval2 }, { "cgno", vm.stringval3 }, { "isuse", 1 } }).ToList();
}
p.Clear();
p.Add("ismaster", "1");
p.Add("cshape", vm.stringval2);
p.Add("cgno", vm.stringval3);
p.Add("isuse", 1);
//hsData.Clear();
//hsData = SetHash(vm);
////hsData.Add("month", (vm.scdMonth == null) ? DateTime.Now.Month : vm.scdMonth);
//vm.CMInningscds = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", hsData).Where(w => w.studyplace != null).ToList();
vm.CMs = Dao.Get<CM>("cm.cms", p).ToList();
}
vm.ComCodes2 = GetComCodes("typeman");
vm.ComCodes3 = GetComCodes("typeedu");
@ -825,14 +760,19 @@ namespace NP.FO.Controllers
vm.ComCodes6 = GetComCodes("typejobitem");
bool getComCheck = true;
var typeman = vm.ComCodes2.Where(w => w.ccode == (!string.IsNullOrEmpty(vm.stringval3) ? int.Parse(vm.stringval3) : 0)).FirstOrDefault();
var typemanName = typeman != null ? typeman.cname : string.Empty;
var typeedu = vm.ComCodes3.Where(w => w.ccode == (!string.IsNullOrEmpty(vm.stringval4) ? int.Parse(vm.stringval4) : 0)).FirstOrDefault();
var typeeduName = typeedu != null ? typeedu.cname : string.Empty;
// 기술인분류
ComCode typeman = vm.ComCodes2.Where(w => w.ccode == (!string.IsNullOrEmpty(vm.stringval3) ? int.Parse(vm.stringval3) : 0)).FirstOrDefault();
string typemanName = typeman != null ? typeman.cname : string.Empty;
// 교육목적
ComCode typeedu = vm.ComCodes3.Where(w => w.ccode == (!string.IsNullOrEmpty(vm.stringval4) ? int.Parse(vm.stringval4) : 0)).FirstOrDefault();
string typeeduName = typeedu != null ? typeedu.cname : string.Empty;
if (typemanName.Contains("설계시공기술인"))
{
vm.ComCodes3 = vm.ComCodes3.Where(x => x.cname != "안전관리계속교육(16시간)").ToList();
if (typeeduName.Contains("승급교육"))
{
vm.ComCodes4 = vm.ComCodes4.Where(x => x.cname != "초급").ToList();
@ -841,6 +781,7 @@ namespace NP.FO.Controllers
{
vm.ComCodes4 = vm.ComCodes4.Where(x => x.cname == "특급").ToList();
}
vm.ComCodes5 = vm.ComCodes5.Where(x => x.cname != "품질관리").ToList();
}
else if (typemanName.Contains("건설사업관리기술인"))
@ -849,15 +790,18 @@ namespace NP.FO.Controllers
{
vm.ComCodes4 = vm.ComCodes4.Where(x => x.cname != "초급").ToList();
}
vm.ComCodes5 = vm.ComCodes5.Where(x => x.cname != "품질관리").ToList();
}
else if (typemanName.Contains("품질관리기술인"))
{
vm.ComCodes3 = vm.ComCodes3.Where(x => x.cname != "안전관리계속교육(16시간)").ToList();
if (typeeduName.Contains("승급교육"))
{
vm.ComCodes4 = vm.ComCodes4.Where(x => x.cname != "초급").ToList();
}
vm.ComCodes5 = vm.ComCodes5.Where(x => x.cname == "품질관리").ToList();
}
else if (typemanName.Contains("발주청기술인"))
@ -871,6 +815,7 @@ namespace NP.FO.Controllers
vm.ComCodes4 = vm.ComCodes4.Where(x => x.ccode == 0).ToList();
vm.ComCodes5 = vm.ComCodes5.Where(x => x.ccode == 0).ToList();
vm.ComCodes6 = vm.ComCodes6.Where(x => x.ccode == 0).ToList();
getComCheck = false;
}
@ -882,12 +827,17 @@ namespace NP.FO.Controllers
return View(vm);
}
/// <summary>
/// 스마트검색 결과
/// </summary>
/// <param name="vm"></param>
/// <returns></returns>
public ActionResult SmartSearchResult(VMCourse vm)
{
#region +
/*
* https://www.ynicte.com/Course/SmartSearchResult?stringval=&stringval2=2&stringval3=25&stringval4=29&stringval5=36&stringval6=40&stringval7=58&stringval17=859&stringval18=33&stringval19=50085&stringval20=14795&stringval21=101
*
*
string rslt = "";
rslt += "stringval=" + vm.stringval;
rslt += "<br>stringval2=" + vm.stringval2;
@ -905,48 +855,302 @@ namespace NP.FO.Controllers
rslt += "<br>userno=" + SUserInfo.UserNo;
*/
#endregion
var p = new Hashtable();
ViewBag.IsMain = true;
Base.Controllers.FOCommonController fOCommonController = new Base.Controllers.FOCommonController();
fOCommonController.Dao = new Dao.CommonDao();
#region + () ViewBag.rslt
var fOCommonController = new Base.Controllers.FOCommonController();
fOCommonController.Dao = new Dao.CommonDao();
ViewBag.rslt = fOCommonController.CheckUserLect(vm.stringval3, vm.stringval21, vm.stringval4, vm.stringval5, int.Parse(vm.stringval17), int.Parse(vm.stringval18), SUserInfo.UserNo);
//vm.ComCodes = GetComCodes("studyplace");
#endregion
#region + 2025-09 ( , )
//var result = new KeyValuePair<int, string>();
//result = CheckUserLectInfo(
// cmno: Convert.ToInt16(vm.stringval17),
// pcmno: Convert.ToInt16(vm.stringval18),
// userno: SUserInfo.UserNo,
// man: vm.stringval3,
// cgcode: vm.stringval21,
// edu: vm.stringval4,
// grade: vm.stringval5,
// job1: vm.stringval6
// );
//ViewBag.rslt = result.Key;
#endregion
#region + ComCodes2 ~ 6
vm.ComCodes2 = GetComCodes("typeman");
vm.ComCodes3 = GetComCodes("typeedu");
vm.ComCodes4 = GetComCodes("typegrade");
vm.ComCodes5 = GetComCodes("typejob");
vm.ComCodes6 = GetComCodes("typejob40,typejob41,typejob42,typejob43,typejob44,typejob45,typejob46,typejob47,typejob48,typejob49,typejob57");
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.stringval17 } }).FirstOrDefault();
#endregion
Hashtable hsData = new Hashtable();
hsData.Add("cmno", vm.stringval17);
vm.CMInningscds= Dao.Get<CMinningscd>("cm.cminningscds.applyedu" , hsData);
vm.SelectCMInningscd = vm.CMInningscds.Where(c => c.cmisno == long.Parse(vm.stringval20) && c.cmino == long.Parse(vm.stringval19)).First();
vm.intval = Dao.Get<int>("lect.count.user4", new Hashtable { { "userno", SUserInfo.UserNo }, { "pcmno", long.Parse(vm.stringval18) } }).FirstOrDefault();
vm.intval2 = Dao.Get<int>("cm.lectcheckuser", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "cmno", vm.stringval17 } }).First();
#region + Get: "cm.cms
p.Clear();
p.Add("cmno", vm.stringval17);
vm.CM = Dao.Get<CM>("cm.cms", p).FirstOrDefault();
#endregion
#region + Get: cm.cminningscds.applyedu
p.Clear();
p.Add("cmno", vm.stringval17);
vm.CMInningscds = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", p);
#endregion
vm.SelectCMInningscd = vm.CMInningscds
.Where(c => c.cmisno == long.Parse(vm.stringval20) && c.cmino == long.Parse(vm.stringval19))
.First();
#region + Get: lect.count.user4
p.Clear();
p.Add("userno", SUserInfo.UserNo);
p.Add("pcmno", long.Parse(vm.stringval18));
vm.intval = Dao.Get<int>("lect.count.user4", p).FirstOrDefault();
#endregion
#region + Get: cm.lectcheckuser
p.Clear();
p.Add("userno", SUserInfo.UserNo);
p.Add("cmno", vm.stringval17);
vm.intval2 = Dao.Get<int>("cm.lectcheckuser", p).First();
#endregion
/*
*
* applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ");" });
*
*/
return View(vm);
}
//private string GetComCode6CodeList(IList<ComCode> comCodes)
//{
// string result = "";
#region ++ 2025-09 ( , )
// foreach(var item in comCodes)
// {
// result += (result == "" ? "" : ",") + "typejob" + item.ccode;
// }
// 본문에 주석이 너무많아 주석처리는 아니고 그냥 미사용 (메서드 이름이 다름)
// FO > CourseController.CheckUserLect, FOCommonController.CheckUserLect 동일한 코드 (Dao문제로 2개구현, 공통이나, 서비스로 뺴야한다)
// return result;
//}
/// <summary>
/// 수강 제약조건 확인 (FOCommonController.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, "최초교육 제약");
}
}
}
#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" || 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 == "103" || l.CGCODE == "104" || l.CGCODE == "105")
)
);
if (hasExistingInGroupA)
{
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
#endregion
[NP.Base.Auth.CFilter]
public ActionResult ApplyEdu(VMCourse vm)
@ -971,19 +1175,6 @@ namespace NP.FO.Controllers
if (vm.Assign != null)
{
vm.Assign.mname = null;
//if (!string.IsNullOrEmpty(vm.Assign.MphoneFormat) && vm.Assign.MphoneFormat.IndexOf("-") >= 0)
//{
//string[] mphoneArr = vm.Assign.MphoneFormat.Split('-');
//vm.Assign.mphone1 = mphoneArr.Length > 0 ? mphoneArr[0] : string.Empty;
//vm.Assign.mphone2 = mphoneArr.Length > 1 ? mphoneArr[1] : string.Empty;
//vm.Assign.mphone3 = mphoneArr.Length > 2 ? mphoneArr[2] : string.Empty;
//}
//if (!string.IsNullOrEmpty(vm.Assign.taxemail) && vm.Assign.taxemail.IndexOf("@") >= 0)
//{
//string[] taxemailArr = vm.Assign.taxemail.Split('@');
//vm.Assign.taxemail1 = taxemailArr.Length > 0 ? taxemailArr[0] : string.Empty;
//vm.Assign.taxemail2 = taxemailArr.Length > 1 ? taxemailArr[1] : string.Empty;
//}
vm.FileList = new List<File>() { };
if (vm.Assign.fgnobno != null)
{
@ -1209,6 +1400,13 @@ namespace NP.FO.Controllers
return View(vm);
}
/// <summary>
/// 교육신청확인
/// </summary>
/// <param name="vm"></param>
/// <returns></returns>
[NP.Base.Auth.CFilter]
public ActionResult ApplyAgree(VMCourse vm)
{
@ -1273,6 +1471,7 @@ namespace NP.FO.Controllers
return View(vm);
}
public ActionResult ApplyComplete(VMPay vm)
{
if (vm.payno < 1)

View File

@ -59,11 +59,6 @@
}
strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
//Model.SelectCMInningscd.eend2 교육종료일
//strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
// Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@ -169,14 +164,8 @@
@if (Model.CM.cshape == 1)
{
@* if (Model.CM.cshape != 1)
{*@
@* <h4 class="clsTitle">교육수료조건</h4>
<p class="subTxt">
1. 총점 70점 이상 득점 : 시험평가(80점) + 출결점수(20점) =100점<br />
2. 총 35시간 교육 중 28시간 이상 이수
</p>*@
@*}*@
if (Model.CM != null && Model.CM.isrefund == 1)
{ // 환급과정일때만 환급 주의사항 보임
<h4 class="clsTitle">환급과정 신청 시 환급대상자 필수확인사항</h4>
<p class="subTxt">
<span style="color:red;"> - 입교 전 출결관리를 위해 어플 설치 및 로그인(고용노동부 HRD-NET 및 출결관리 어플), 위탁계약서(회사 직인 필수) 지참</span><br />
@ -184,6 +173,7 @@
예) 현대건설 이지은인 경우 → 현대이지은 으로 작성 <br />
※ 출결관리 어플 설치 방법은 홈페이지 <span style="color:red;">자료실에 있는 설치가이드를 참고</span> 부탁드립니다.
</p>
}
<h4 class="clsTitle">
교육시행 여부 관련 안내
@ -214,9 +204,6 @@
4. <span class="subTxt red">집체교육7시간 참석</span><br /><br />
<span class="subTxt red">※ 위 4가지 조건 모두 만족하셔야 수료가 가능합니다.</span><br />
@*<span class="subTxt red">※ 하루 최대 학습 시간은 10차시 입니다.</span><br />
<span style="font-size:15pt;">※ 현재 코로나로 인하여 기존 <span style="color:red;">(동영상강의 시청 28시간 + 현장집체7시간 참석)</span>에서 한시적으로 <span style="color:red;">(동영상강의 시청 35시간)으로 진행합니다.</span></span>*@
@*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.<br />*@
</p>

View File

@ -1,228 +0,0 @@
@model NP.Model.VMCourse
@{
var isallday = Model.CM.retimeymd == "2099-12-31" ? true : false;
}
<form id="historyForm" method="post">
<input type="hidden" name="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" value="@Model.stringval7" />@*전문분야*@
<input type="hidden" name="pplno" value="@Model.pplno" />@*pplno*@
<input type="hidden" name="selMonth" value="@Model.selMonth" />@*교육일정선택(selMonth)*@
<input type="hidden" name="isCompany" value="@Model.isCompany" />@*업체/개인 선택*@
<input type="hidden" name="CM.cmino" id="becmino" value="@Model.CM.cmino" />
<input type="hidden" name="CM.cmisno" id="becmisno" value="@Model.CM.cmisno" />
<input type="hidden" name="CM.cshape" id="cshape" value="@Model.CM.cshape" />
<input type="hidden" name="applicableCM" id="applicableCM" />
<h4 class="clsTitle">신청강좌</h4>
<ul class="smtList mt0" style="font-weight:500;">
<li>
<ul class="smtlChk">
<li>
<p>
<span class="@(Model.CM.cshape == 0 ? "org" : Model.CM.cshape == 1 ? "nav_grn" : "nav_blu")">
@(Model.CM.cshape == 0 ? "온라인" : Model.CM.cshape == 1 ? "교육장교육" : "온라인교육")
</span>
@{
string strStudyPlaceTmp = "";
string strStudyPlaceTmp2 = "";
string strEduInfo = "";
if (Model.SelectCMInningscd.studyplace != null)
{
strStudyPlaceTmp = Model.SelectCMInningscd.studyplacename + "교육장";
strStudyPlaceTmp2 = Model.CM.cname;
}
else
{
strStudyPlaceTmp = Model.CM.cname;
}
if (Model.CM.cshape == 1)
{
strEduInfo = string.Format("교육기간 {0} | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@if (Model.SelectCMInningscd.studyplace == null)
{
<span style="font-size:22px"><label><span>@strStudyPlaceTmp</span><span class="blu">@strStudyPlaceTmp2 </span></label></span><br />
}
else if (Model.SelectCMInningscd.studyplace != null)
{
<span style="font-size:22px"><label><span class="blu">[@strStudyPlaceTmp]</span><span>@strStudyPlaceTmp2 </span></label></span><br />
}
<span><label>@Html.Raw(strEduInfo)</label></span>
</p>
</li>
</ul>
<div class="apyCost">
@if (Model.PPLog.isaccommodation != 1)
{
<span>결제금액:<span class="red">@Model.CM.infee.ToString("#,0")</span>원</span>
}
else
{
<span>결제금액:<span class="red">@((Model.CM.infee + Model.CM.accommofee).ToString("#,0"))</span>원 (합숙 : @(Model.CM.accommofee.ToString("#,0"))원 포함)</span>
}
</div>
</li>
</ul>
@if (Model.CM.isaccommodation == 1)
{
<h4 class="clsTitle">합숙여부</h4>
<p class="subTxt">
@(Model.PPLog.isaccommodation == 1 ? string.Format("합숙 ({0}원 추가)",Model.CM.accommofee.ToString("#,0")) : "비합숙")
</p>
}
@if (Model.stringval == "0")
{
<h4 class="clsTitle">신청내용<span style="color:red;font-weight:700;"> (필수확인)</span></h4>
if (Model.CM.cshape == 2)
{
<p class="subTxt" style="padding-bottom:15px;">교육종료일 : @(Model.PPLog.eendymd)까지</p>
}
<table class="subTable" style="border:3px solid red;">
<tr>
<th>교육유형</th>
@if (!string.IsNullOrEmpty(Model.stringval3))
{
<th>기술인분류</th>
}
@if (!string.IsNullOrEmpty(Model.stringval4))
{
<th>교육목적</th>
}
@if (!string.IsNullOrEmpty(Model.stringval5))
{
<th>등급</th>
}
@if (!string.IsNullOrEmpty(Model.stringval6))
{
<th>직무분야</th>
}
@if (!string.IsNullOrEmpty(Model.stringval7))
{
<th>전문분야</th>
}
</tr>
<tr>
<td>@(Model.stringval2 == "0" ? "온라인교육" : Model.stringval2 == "1" ? "교육장교육" : "온라인교육")</td>
@if (!string.IsNullOrEmpty(Model.stringval3))
{
<td>@Model.ComCodes2.Where(w => w.cgroup.ToString() == "typeman" && w.ccode == int.Parse(Model.stringval3)).First().cname</td>
}
@if (!string.IsNullOrEmpty(Model.stringval4))
{
<td>@Model.ComCodes3.Where(w => w.cgroup.ToString() == "typeedu" && w.ccode == int.Parse(Model.stringval4)).First().cname</td>
}
@if (!string.IsNullOrEmpty(Model.stringval5))
{
<td>@Model.ComCodes4.Where(w => w.cgroup.ToString() == "typegrade" && w.ccode == int.Parse(Model.stringval5)).First().cname</td>
}
@if (!string.IsNullOrEmpty(Model.stringval6))
{
<td>@Model.ComCodes.Where(w => w.cgroup.ToString() == "typejob" && w.ccode == int.Parse(Model.stringval6)).First().cname</td>
}
@if (!string.IsNullOrEmpty(Model.stringval7))
{
<td>@Model.ComCodes.Where(w => w.ccode == int.Parse(Model.stringval7)).First().cname</td>
}
</tr>
</table>
}
<p class="subTxt">
<strong>
<br />
<span style="color:red; font-size:18px;"><strong>※ 반드시 확인하세요</strong></span><br />
- 실제 이수해야 할 내용과 신청내용이 다른 경우 <span style="color:red;">교육인정 및 수정이 불가능</span> 하오니 정확하게 확인 해주세요.<br />
- 상기 신청내용의 등급이 <span style="color:red;">직무분야의 등급으로 맞게 기재되어 있는지 확인해주세요.</span>(전문분야 등급 아님)<br />
- 건설사업관리기술인은 <span style="color:red;">감리업무를 수행하는 기술인</span>을 말합니다.<br />
- 승급교육일 경우 등급은 <span style="color:red;">승급 후 등급이 기재되어야</span> 하며 승급대상 여부 등을 반드시 협회로 확인 해주세요.<br />
- 승급교육 또는 계속교육을 인정받으려면 <span style="color:red;">기본교육 및 최초교육을 먼저 이수하여야 합니다.</span><br />
- 모든 최초,승급,계속 교육 등은 직무분야 교육이며 <span style="color:red;">전문분야 관련으로 따로 이수하여야 할 교육은 없습니다.
</strong>
</p>
@if (Model.CM.cshape == 1)
{
@* if (Model.CM.cshape != 1)
{*@
@* <h4 class="clsTitle">교육수료조건</h4>
<p class="subTxt">
1. 총점 70점 이상 득점 : 시험평가(80점) + 출결점수(20점) =100점<br />
2. 총 35시간 교육 중 28시간 이상 이수
</p>*@
@*}*@
<h4 class="clsTitle">환급과정 신청 시 환급대상자 필수확인사항</h4>
<p class="subTxt">
<span style="color:red;"> - 입교 전 출결관리를 위해 어플 설치 및 로그인(고용노동부 HRD-NET 및 출결관리 어플), 위탁계약서(회사 직인 필수) 지참</span><br />
<span style="color:red;">- 교육비 입금 시 신용카드는 반드시 법인카드로만 결제, 무통장 입금은 입금자명을 회사상호+교육생 형식으로 작성</span><br />
예) 현대건설 이지은인 경우 → 현대이지은 으로 작성 <br />
※ 출결관리 어플 설치 방법은 홈페이지 <span style="color:red;">자료실에 있는 설치가이드를 참고</span> 부탁드립니다.
</p>
}
else
{
<h4 class="clsTitle">교육수료조건</h4>
<p class="subTxt">
1. <span class="subTxt red">동영상강의 35시간 진도율 90% 이상</span><br />
2. <span class="subTxt red">과제물 제출(표지 제외 A4 2장 이상 분량)</span><br />
3. <span class="subTxt red">시험평가 58점 이상 득점</span><br />
4. 총점 70점 이상 득점 : 시험평가(60점) + 과제(20점) + 진도율(20점) =100%(점)<br /><br />
<span class="subTxt red">※ 위 4가지 조건 모두 만족하셔야 수료가 가능합니다.</span><br />
<span class="subTxt red">※ 하루 최대 학습 시간은 10차시 입니다.</span><br />
<span style="font-size:15pt;">※ 현재 코로나로 인하여 기존 <span style="color:red;">(동영상강의 시청 28시간 + 현장집체7시간 참석)</span>에서 한시적으로 <span style="color:red;">(동영상강의 시청 35시간)으로 진행합니다.</span></span>
@*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.<br />*@
</p>
<h4 class="clsTitle">교육수강기한</h4>
<p class="subTxt">
온라인교육은 신청일로 부터 <span class="subTxt red">최대 1년 이내</span>에 수료하셔야 하며 <span class="subTxt red">1년 이내</span>에 교육수료가 되지 않으면 수료 및 환불이 불가능합니다.
</p>
}
<h4 class="clsTitle">주의사항</h4>
<p class="subTxt" style="border: 3px solid red; padding: 5px; margin: 10px;">
교육생이 이수하여야 할 교육은 소속된 협회에서만 조회가 가능합니다. <br />
따라서 협회 확인 없이 잘못된 내용으로 교육수료 시 그 책임은 교육생 본인에게 있으므로<br />
저희 교육원과 상담을 하셨더라도 교육신청 전에 반드시 협회를 통하여 한 번 더 확인을 하시고 신청해 주시기 바랍니다.<br />
<span class="subTxt red"> ※ 신청내용(필수확인)부분의 내용을 반드시 협회에 확인해 보시기 바랍니다.</span>
</p>
<p class="subTxt" style="text-align:center;margin-top:30px;">
<input type="checkbox" id="agree" /> <label for="agree">위 내용을 모두 확인하였으며 이에 동의합니다.</label>
</p>
<ul class="clsBtn society">
<li><a href="#" id="btnagree">수강신청</a></li>
<li><a href="#" id="btnback" style="background-color: #fff;border: solid 1px #0047a7;color:#0047a7;">뒤로가기</a></li>
</ul>
</form>
<script type="text/javascript">
$(document).ready(function () {
$("#btnagree").on("click", function () {
if ($('input:checkbox[id="agree"]').is(":checked")) {
$("#historyForm").attr("action", "/Course/ApplyPay");
$("#historyForm").submit();
} else {
msg("신청 내용 확인 후 동의를 체크해주세요.");
return false;
}
});
$("#btnback").on("click", function () {
$("#historyForm").attr("action", "/Course/ApplyEdu");
$("#historyForm").submit();
});
});
</script>

View File

@ -65,8 +65,6 @@
}
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary);
strEduInfo += string.Format("<span> 교육종료일 {0} </span> | ", Model.SelectCMInningscd.eend2);
strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime);
@ -78,9 +76,6 @@
}
strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
//strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
// Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@ -111,6 +106,8 @@
</ul>
@if (Model.PPLog.cshape != 2)
{
if (Model.CM != null && Model.CM.isrefund == 1)
{ // 환급과정일때만 환급 주의사항 보임
<h4 class="clsTitle">환급과정 신청 시 환급대상자의 입금방법<span class="red" style=" font-size: 16pt;font-weight:bold">(중요)</span></h4>
<p class="subTxt">
<span>■ 카드결제 시</span><br />
@ -126,18 +123,18 @@
<span>※ 이체확인증은 입금자명이 법인이라는 것을 <strong style="color : red;">노동부에 증빙하기 위하여 필요한 서류입니다.</strong></span><br />
&nbsp;&nbsp;예) 현대건설 이지은 인 경우 -> 현대건설이지은<br /><br />
<span><strong>
<span>
<strong>
■ 환급과정 신청 시 환급대상자는 <span style="color : red;">계산서 의무 발행</span> 이므로 현금영수증 발행이 불가 합니다.
</strong></span><br />
</strong>
</span><br />
</p>
}
}
<h4 class="clsTitle" style="color:red">결제 시 주의사항</h4>
<p class="subTxt"><strong>
@*- 개인카드 결제 시 <span style="color : red;">법인으로 증빙서류 발급이</span> 되지 않습니다.<br />
- 계산서 발급을 원하시는 경우 반드시 <span style="color : red;">업체로 신청해주세요</span>.<br />
- 카드결제의 경우 <span style="color : red;">계산서 발급이 불가능하며 </span>카드 영수증이 발행 됩니다.<br />
- 교육신청이 완료된 이후 에는 <span style="color : red;">결제방식 변경이 불가능</span> 하므로 다시 한번 확인해 주세요.<br />*@
<p class="subTxt">
<strong>
- 개인카드 결제 시 법인으로 증빙서류 발급이 되지 않습니다.<br />
- 계산서 발급을 원하시는 경우 반드시 업체로 신청해주세요.<br />
- 카드결제의 경우 계산서 발급이 불가능하며 카드 영수증이 발행 됩니다.<br />
@ -183,7 +180,6 @@
<li><input type="radio" name="isreceipt" id="isreceipt1" value="1" @(Model.PPLog.isreceipt == null ? "checked" : Model.PPLog.isreceipt == 1 ? "checked" : "") /><label for="isreceipt1"> 영수</label></li>
<li><input type="radio" name="isreceipt" id="isreceipt0" value="0" @(Model.PPLog.isreceipt == 0 ? "checked" : "") /><label for="isreceipt0"> 청구</label></li>
<li><p class="subTxt"><span style="color : red;">※ 계산서는 교육수료일에 발행됩니다.</span></p></li>
@*<li style="vertical-align:sub;">계산서날짜 : <input type="text" name="taxdatereq" id="taxdatereq" data-date-format="yyyy-mm-dd" class="datepicker-input" value="@(Model.PPLog.taxdatereq == null ? "" : Model.PPLog.taxdatereq.Value.ToString("yyyy-MM-dd"))" autocomplete="off" /></li>*@
</ul>
}
else
@ -340,7 +336,6 @@
if (capResult.obj == 0) {
var resultmsg = capResult.msg;
if (resultmsg.indexOf("buyertel")) {
//msg("개인정보에 휴대폰 번호를 입력해주세요.");
msg(capResult.msg || "이미 신청한 강좌인지 확인해주세요.");
} else {
msg(capResult.msg);

View File

@ -1,316 +0,0 @@
@model NP.Model.VMCourse
@{
var isallday = Model.CM.retimeymd == "2099-12-31" ? true : false;
}
<form id="historyForm" method="post">
<input type="hidden" name="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" value="@Model.stringval7" />@*전문분야*@
<input type="hidden" name="pplno" value="@Model.pplno" />@*pplno*@
<input type="hidden" name="selMonth" value="@Model.selMonth" />@*교육일정선택(selMonth)*@
<input type="hidden" name="isCompany" value="@Model.isCompany" />@*업체/개인 선택*@
<input type="hidden" name="CM.cmino" id="becmino" value="@Model.CM.cmino" />
<input type="hidden" name="CM.cmisno" id="becmisno" value="@Model.CM.cmisno" />
<input type="hidden" name="CM.cshape" id="cshape" value="@Model.CM.cshape" />
<input type="hidden" name="isrebate" id="isrebate" />
</form>
<form id="mform" name="mform" method="post" action="/Course/XpayREQ">
@Html.HiddenFor(m => m.payno)
<input type="hidden" name="cmno" id="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" id="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" id="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" id="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" id="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" id="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" id="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" id="stringval7" value="@Model.stringval7" />@*직무분야*@
<input type="hidden" name="cmisno" id="cmisno" />
<input type="hidden" name="isrebate" id="isrebate" />
<input type="hidden" name="applicableCM" id="applicableCM" />
<input type="hidden" name="isCompany" value="@Model.isCompany" />@*업체/개인 선택*@
<input type="hidden" name="CM.cmino" id="becmino" value="@Model.CM.cmino" />
<input type="hidden" name="CM.cmisno" id="becmisno" value="@Model.CM.cmisno" />
<h4 class="clsTitle">신청강좌</h4>
<ul class="smtList mt0" style="font-weight:500;">
<li>
<ul class="smtlChk">
<li>
<p>
<span class="@(Model.CM.cshape == 0 ? "org" : Model.CM.cshape == 1 ? "nav_grn" : "nav_blu")">
@(Model.CM.cshape == 0 ? "온라인" : Model.CM.cshape == 1 ? "교육장교육" : "온라인교육")
</span>
@{
string strStudyPlaceTmp = "";
string strStudyPlaceTmp2 = "";
string strEduInfo = "";
if (Model.SelectCMInningscd.studyplace != null)
{
strStudyPlaceTmp = Model.SelectCMInningscd.studyplacename + "교육장";
strStudyPlaceTmp2 = Model.CM.cname;
}
else
{
strStudyPlaceTmp = Model.CM.cname;
}
if (Model.CM.cshape == 1)
{
strEduInfo = string.Format("교육기간 {0} | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@if (Model.SelectCMInningscd.studyplace == null)
{
<span style="font-size:22px"><label><span>@strStudyPlaceTmp</span><span class="blu">@strStudyPlaceTmp2 </span></label></span><br />
}
else if (Model.SelectCMInningscd.studyplace != null)
{
<span style="font-size:22px"><label><span class="blu">[@strStudyPlaceTmp]</span><span>@strStudyPlaceTmp2 </span></label></span><br />
}
<span><label>@Html.Raw(strEduInfo)</label></span>
</p>
</li>
</ul>
<div class="apyCost">
@if (Model.PPLog.isaccommodation != 1)
{
<span>결제금액:<span class="red">@Model.CM.infee.ToString("#,0")</span>원</span>
}
else
{
<span>결제금액:<span class="red">@((Model.CM.infee + Model.CM.accommofee).ToString("#,0"))</span>원 (합숙 : @(Model.CM.accommofee.ToString("#,0"))원 포함)</span>
}
</div>
</li>
</ul>
@if (Model.PPLog.cshape != 2) {
<h4 class="clsTitle">교육비 환급대상자의 입금방법(중요)</h4>
<p class="subTxt">
<span>■ 카드결제 시</span><br />
- 반드시 <span style="color : red;">소속 회사의 법인카드로</span> 결제 해 주세요. <span style="color : red;"><strong>(개인카드 결제 시 환급불가)</strong></span><br />
- 카드결제 후 <span style="color : red;">결제한 카드 앞면을 복사하여</span> 입교 시 지참해 주세요.<br />
<span>※ 결제 한 카드가 법인명의라는 것을 <span style="color : red;">노동부에 증빙하기 위하여 필요한 서류</span> 이며 회사 명이 잘 보이도록 <span style="color : red;">앞면 만 복사하시면</span> 됩니다.</span><br /><br />
</p>
<p class="subTxt">
<span>■ 무통장입금 시</span><br />
- 계좌이체로 입금하실 경우 반드시 <span style="color : red;">법인계좌에서</span> 이체가 되어야 합니다. <span style="color : red;"><strong>(타 계좌에서 이체 시 환급불가)</strong></span><br />
- 입금자명은 반드시 <span style="color : red;">소속회사 + 교육생이름</span> 으로 기재해주세요.<br /><br />
&nbsp;&nbsp;예) 현대건설 이지은 인 경우 -> 현대건설이지은<br /><br />
<span><strong>■ 환급대상자는 <span style="color : red;">계산서 의무 발행</span> 이므로 현금영수증 발행이 불가 합니다.</strong></span><br />
</p>
}
<h4 class="clsTitle">결제방법(신용카드 선택 시 계산서 발급불가)</h4>
<ul class="apyRdo">
@if (Model.CM.infee > 0)
{
<li><input type="radio" name="ptype" id="pay0101" value="1"><label for="pay0101">신용카드</label></li>
<li><input type="radio" name="ptype" id="pay0102" value="3"><label for="pay0102">무통장입금(가상계좌)</label></li>
}
else
{
<li><input type="radio" name="ptype" id="pay0101" value="6" checked><label for="pay0101">무료</label></li>
}
</ul>
<div id="cashbox" style="display:none">
<h4 class="clsTitle">현금영수증 / 계산서 발행여부</h4>
<ul class="apyRdo">
@if ((Model.PPLog.cshape != 1) || (Model.PPLog.cshape == 1 && Model.PPLog.isrebate == 0))
{
<li><input type="radio" name="iscashrct" id="pay0202" value="1"><label for="pay0202">현금영수증 발행</label></li>
}
@* @if ((Model.PPLog.cshape == 1 && Model.PPLog.isrebate == 1) || (Model.PPLog.cshape == 1 && Model.PPLog.isrebate == 0 && !String.IsNullOrEmpty(Model.PPLog.asname)) || (Model.PPLog.cshape != 1 && !String.IsNullOrEmpty(Model.PPLog.asname)))*@
@* @if ((Model.PPLog.cshape == 1 || Model.PPLog.cshape != 1)@*&& Model.PPLog.isrebate == 1 && Model.isCompany == 1)*@
@if(Model.isCompany == 1 || Model.PPLog.isrebate == 1 )
{
<li>
<input type="radio" name="iscashrct" id="pay0203" value="2"><label for="pay0203">계산서 발행</label>
</li>
}
</ul>
<ul class="apyRdo" id="taxinvoice_option" style="display:none;margin-top:-1px">
<li><input type="radio" name="isreceipt" id="isreceipt1" value="1" @(Model.PPLog.isreceipt == null ? "checked" : Model.PPLog.isreceipt == 1 ? "checked" : "") /><label for="isreceipt1"> 영수</label></li>
<li><input type="radio" name="isreceipt" id="isreceipt0" value="0" @(Model.PPLog.isreceipt == 0 ? "checked" : "") /><label for="isreceipt0"> 청구</label></li>
<li style="vertical-align:sub;">계산서날짜 : <input type="text" name="taxdatereq" id="taxdatereq" data-date-format="yyyy-mm-dd" class="datepicker-input" value="@(Model.PPLog.taxdatereq == null ? "" : Model.PPLog.taxdatereq.Value.ToString("yyyy-MM-dd"))" autocomplete="off" /></li>
</ul>
</div>
<ul class="clsBtn society">
<li><a href="#" onclick="save()">수강신청</a></li>
<li><a href="/">취소</a></li>
<li><a href="#" id="btnback" style="background-color: #fff;border: solid 1px #0047a7;color:#0047a7;">뒤로가기</a></li>
</ul>
@Html.HiddenFor(m => m.payno)
@Html.HiddenFor(m => m.exno)
@Html.Hidden("pplno", Model.PPLog.pplno)
<input type="hidden" name="cashrcthp" id="cashrcthp" />
<input type="hidden" name="isbill" id="isbill">
<input type="hidden" name="items" value="@string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}", 0, Model.CM.cmno, 1, ViewBag.SSUserNo, Model.PPLog.isrebate, 0, "")" />
<!-- Xpay 결제 start -->
<input type="hidden" name="LGD_CLOSEDATE" id="LGD_CLOSEDATE" value="">
<input type="hidden" name="LGD_OID" id="LGD_OID" value="">
<input type="hidden" name="LGD_AMOUNT" id="LGD_AMOUNT" value="">
<input type="hidden" name="LGD_OSTYPE_CHECK" id="LGD_OSTYPE_CHECK" value="">
<input type="hidden" name="LGD_CUSTOM_SWITCHINGTYPE" id="LGD_CUSTOM_SWITCHINGTYPE" value="">
<input type="hidden" name="LGD_VERSION" id="LGD_VERSION" value="">
<input type="hidden" name="LGD_CUSTOM_SKIN" id="LGD_CUSTOM_SKIN" value="">
<input type="hidden" name="CST_WINDOW_TYPE" id="CST_WINDOW_TYPE" value="">
<input type="hidden" name="LGD_PCVIEWYN" id="LGD_PCVIEWYN" value="">
<input type="hidden" name="LGD_CUSTOM_FIRSTPAY" id="LGD_CUSTOM_FIRSTPAY" value="">
<input type="hidden" name="LGD_KVPMISPAUTOAPPYN" id="LGD_KVPMISPAUTOAPPYN" value="">
<input type="hidden" name="LGD_MTRANSFERAUTOAPPYN" id="LGD_MTRANSFERAUTOAPPYN" value="">
<input type="hidden" name="LGD_WINDOW_TYPE" id="LGD_WINDOW_TYPE" value="">
<input type="hidden" name="LGD_CUSTOM_USABLEPAY" id="LGD_CUSTOM_USABLEPAY" value="">
<input type="hidden" name="LGD_BUYER" id="LGD_BUYER" value="@Model.User.username">
<input type="hidden" name="LGD_PRODUCTINFO" id="LGD_PRODUCTINFO" value="@(Model.CM.cname.Replace(",", " "))">
<input type="hidden" name="LGD_BUYEREMAIL" id="LGD_BUYEREMAIL" value="@Model.User.email">
<!-- Xpay 결제 end -->
</form>
@section scriptsHeader{
<style type="text/css">
.hide {
display: none;
}
</style>
@Html.Partial("./Partial/ScriptDate")
}
<script type="text/javascript">
var model = {};
model.pplog = @Html.Raw(Json.Encode(new List<NP.Model.PPLog>() { ( Model.PPLog != null ? Model.PPLog : new NP.Model.PPLog {}) }.Select(s => new { s.asname, s.brno, s.ceoname, s.post, s.address1, s.address2, s.rbankacc, s.bkind, s.btype, s.taxemail}).First()));;
$(document).ready(function () {
$("input[name='ptype']").on("change", function () {
$("#cashbox").hide();
if ($(this).val() == 3) {
$("#cashbox").show();
if ($("input[name='iscashrct']").length == 1) {
$("input[name='iscashrct']").click();
}
}
});
$("input[name='iscashrct']").on("change", function () {
if ($(this).val() == 2) {
$("#taxinvoice_option").show();
} else {
$("#taxinvoice_option").hide();
}
});
$("#btnback").on("click", function () {
$("#historyForm").attr("action", "/Course/ApplyAgree");
$("#historyForm").submit();
});
});
function save() {
var isCompanyInfo = true;
$.each(model.pplog, function (key, value) {
if (key == "rbankacc") {
if (value == "") {
isCompanyInfo = false;
return;
}
}
});
$("#cashrcthp").val("");
$("#isbill").val("");
if ($("input[name='ptype']:checked").length > 0 && $("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").length == 1 && $("input[name='iscashrct']:checked").val() == 2) {
$("#isbill").val("1");
}
if ($("input[name='ptype']:checked").length < 1) {
msg("결제방법을 선택해주세요.");
} else if ($("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").length < 1) {
msg("현금영수증 / 계산서 발행여부를 선택해주세요.");
} else if ($("#isbill").val() == 1 && !isCompanyInfo) {
msg("계산서 발급 시 회사정보가 필요합니다. 뒤로가기를 클릭하여 회사정보를 입력해주세요.");
} else if ($("#isbill").val() == 1 && $("#taxdatereq").val() == "") {
msg("계산서날짜를 입력해주세요.");
}else {
capp("/focommon/CheckQtyScd", { cmisno: $("#becmisno").val()}, "CheckQtyScdResult");
}
}
/*20220803 수강인원체크*/
function CheckQtyScdResult() {
if (capResult.code == 1000) {
cap("/fcommon/paystart", "mform", "cbsave");
}
else if (capResult.code == 0) {
msg(capResult.msg, null, null, null, '$("#historyForm").attr("action", "/Course/SmartSearch").submit()');
}
else {
msgadmin();
}
}
function cbsave() {
if (capResult.code == 1000) {
if (capResult.obj == 0) {
var resultmsg = capResult.msg;
if (resultmsg.indexOf("buyertel")) {
//msg("개인정보에 휴대폰 번호를 입력해주세요.");
msg(capResult.msg || "이미 신청한 강좌인지 확인해주세요.");
} else {
msg(capResult.msg);
}
}
else {
if (capResult.obj.ptype == 6 || capResult.obj.ptype == 7) {
location.href = "@Model.viewname4?payno=" + capResult.obj.payno + "&absptype=" + capResult.obj.ptype;
return;
}
else {
setv("LGD_OID", capResult.obj.oid2 + capResult.obj.payno);
setv("LGD_CLOSEDATE", capResult.obj.paylimityyyyMMddHHmmss);
setv("LGD_AMOUNT", capResult.obj.payamt);
setv("LGD_OSTYPE_CHECK", ismobile() ? "M" : "P");
setv("LGD_CUSTOM_SWITCHINGTYPE", ismobile() ? "SUBMIT" : "IFRAME");
setv("LGD_VERSION", ismobile() ? "ASPNET_Non-ActiveX_SmartXPay" : "ASPNET_Non-ActiveX_Standard");
setv("LGD_CUSTOM_SKIN", ismobile() ? "SMART_XPAY2" : "red");
var paymentMethod = $(':radio[name="ptype"]:checked').val() == 1 ? "SC0010" : $(':radio[name="ptype"]:checked').val() == 2 ? "SC0030" : $(':radio[name="ptype"]:checked').val() == 3 ? "SC0040" : "-";
if (ismobile()) {
setv("CST_WINDOW_TYPE", "submit");
setv("LGD_PCVIEWYN", "N");
setv("LGD_CUSTOM_FIRSTPAY", paymentMethod);
setv("LGD_KVPMISPAUTOAPPYN", checkMobile());
setv("LGD_MTRANSFERAUTOAPPYN", checkMobile());
} else {
setv("LGD_WINDOW_TYPE", "iframe");
setv("LGD_CUSTOM_USABLEPAY", paymentMethod);
}
document.getElementById('mform').submit();
}
}
} else {
msgadmin();
}
}
function checkMobile() {
var varUA = navigator.userAgent.toLowerCase();
if (varUA.indexOf('android') > -1) {
return "A";
} else if (varUA.indexOf("iphone") > -1 || varUA.indexOf("ipad") > -1 || varUA.indexOf("ipod") > -1) {
return "N";
}
}
</script>

View File

@ -1,333 +0,0 @@
@model NP.Model.VMCourse
@{
var isallday = Model.CM.retimeymd == "2099-12-31" ? true : false;
}
<form id="historyForm" method="post">
<input type="hidden" name="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" value="@Model.stringval7" />@*전문분야*@
<input type="hidden" name="pplno" value="@Model.pplno" />@*pplno*@
<input type="hidden" name="selMonth" value="@Model.selMonth" />@*교육일정선택(selMonth)*@
<input type="hidden" name="isCompany" value="@Model.isCompany" />@*업체/개인 선택*@
<input type="hidden" name="CM.cmino" id="becmino" value="@Model.CM.cmino" />
<input type="hidden" name="CM.cmisno" id="becmisno" value="@Model.CM.cmisno" />
<input type="hidden" name="CM.cshape" id="cshape" value="@Model.CM.cshape" />
<input type="hidden" name="isrebate" id="isrebate" />
</form>
<form id="mform" name="mform" method="post" action="/Course/XpayREQ">
@Html.HiddenFor(m => m.payno)
<input type="hidden" name="cmno" id="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" id="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" id="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" id="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" id="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" id="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" id="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" id="stringval7" value="@Model.stringval7" />@*직무분야*@
<input type="hidden" name="cmisno" id="cmisno" />
<input type="hidden" name="isrebate" id="isrebate" />
<input type="hidden" name="applicableCM" id="applicableCM" />
<input type="hidden" name="isCompany" value="@Model.isCompany" />@*업체/개인 선택*@
<input type="hidden" name="CM.cmino" id="becmino" value="@Model.CM.cmino" />
<input type="hidden" name="CM.cmisno" id="becmisno" value="@Model.CM.cmisno" />
<h4 class="clsTitle">신청강좌</h4>
<ul class="smtList mt0" style="font-weight:500;">
<li>
<ul class="smtlChk">
<li>
<p>
<span class="@(Model.CM.cshape == 0 ? "org" : Model.CM.cshape == 1 ? "nav_grn" : "nav_blu")">
@(Model.CM.cshape == 0 ? "온라인" : Model.CM.cshape == 1 ? "교육장교육" : "온라인교육")
</span>
@{
string strStudyPlaceTmp = "";
string strStudyPlaceTmp2 = "";
string strEduInfo = "";
if (Model.SelectCMInningscd.studyplace != null)
{
strStudyPlaceTmp = Model.SelectCMInningscd.studyplacename + "교육장";
strStudyPlaceTmp2 = Model.CM.cname;
}
else
{
strStudyPlaceTmp = Model.CM.cname;
}
if (Model.CM.cshape == 1)
{
strEduInfo = string.Format("교육기간 {0} | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@if (Model.SelectCMInningscd.studyplace == null)
{
<span style="font-size:22px"><label><span>@strStudyPlaceTmp</span><span class="blu">@strStudyPlaceTmp2 </span></label></span><br />
}
else if (Model.SelectCMInningscd.studyplace != null)
{
<span style="font-size:22px"><label><span class="blu">[@strStudyPlaceTmp]</span><span>@strStudyPlaceTmp2 </span></label></span><br />
}
<span><label>@Html.Raw(strEduInfo)</label></span>
</p>
</li>
</ul>
<div class="apyCost">
@if (Model.PPLog.isaccommodation != 1)
{
<span>결제금액:<span class="red">@Model.CM.infee.ToString("#,0")</span>원</span>
}
else
{
<span>결제금액:<span class="red">@((Model.CM.infee + Model.CM.accommofee).ToString("#,0"))</span>원 (합숙 : @(Model.CM.accommofee.ToString("#,0"))원 포함)</span>
}
</div>
</li>
</ul>
@if (Model.PPLog.cshape != 2)
{
<h4 class="clsTitle">환급과정 신청 시 환급대상자의 입금방법<span class="red" style="font-weight:bold">(중요)</span></h4>
<p class="subTxt">
<span>■ 카드결제 시</span><br />
- 반드시 <span style="color : red;">소속 회사의 법인카드로</span> 결제 해 주세요. <span style="color : red;"><strong>(개인카드 결제 시 환급불가)</strong></span><br />
- 카드결제 후 <span style="color : red;">결제한 카드 앞면을 복사하여</span> 입교 시 지참해 주세요.<br />
<span>※ 결제 한 카드가 법인명의라는 것을 <span style="color : red;">노동부에 증빙하기 위하여 필요한 서류</span> 이며 회사 명이 잘 보이도록 <span style="color : red;">앞면 만 복사하시면</span> 됩니다.</span><br /><br />
</p>
<p class="subTxt">
<span>■ 무통장입금 시</span><br />
- 계좌이체로 입금하실 경우 반드시 <span style="color : red;">법인계좌에서</span> 이체가 되어야 합니다. <span style="color : red;"><strong>(타 계좌에서 이체 시 환급불가)</strong></span><br />
- 입금자명은 반드시 <span style="color : red;">소속회사 + 교육생이름</span> 으로 기재해주세요.<br /><br />
&nbsp;&nbsp;예) 현대건설 이지은 인 경우 -> 현대건설이지은<br /><br />
<span><strong>■ 환급과정 신청 시 환급대상자는 <span style="color : red;">계산서 의무 발행</span> 이므로 현금영수증 발행이 불가 합니다.</strong></span><br />
</p>
}
<h4 class="clsTitle" style="color:red">결제 시 주의사항</h4>
<p class="subTxt"><strong>
@*- 개인카드 결제 시 <span style="color : red;">법인으로 증빙서류 발급이</span> 되지 않습니다.<br />
- 계산서 발급을 원하시는 경우 반드시 <span style="color : red;">업체로 신청해주세요</span>.<br />
- 카드결제의 경우 <span style="color : red;">계산서 발급이 불가능하며 </span>카드 영수증이 발행 됩니다.<br />
- 교육신청이 완료된 이후 에는 <span style="color : red;">결제방식 변경이 불가능</span> 하므로 다시 한번 확인해 주세요.<br />*@
- 개인카드 결제 시 법인으로 증빙서류 발급이 되지 않습니다.<br />
- 계산서 발급을 원하시는 경우 반드시 업체로 신청해주세요.<br />
- 카드결제의 경우 계산서 발급이 불가능하며 카드 영수증이 발행 됩니다.<br />
- 교육신청이 완료된 이후 에는 결제방식 변경이 불가능 하므로 다시 한번 확인해 주세요.<br />
</strong>
</p>
<h4 class="clsTitle">결제방법(신용카드 선택 시 계산서 발급불가)</h4>
<ul class="apyRdo">
@if (Model.CM.infee > 0)
{
<li><input type="radio" name="ptype" id="pay0101" value="1"><label for="pay0101">신용카드</label></li>
<li><input type="radio" name="ptype" id="pay0102" value="3"><label for="pay0102">무통장입금(가상계좌)</label></li>
}
else
{
<li><input type="radio" name="ptype" id="pay0101" value="6" checked><label for="pay0101">무료</label></li>
}
</ul>
<div id="cashbox" style="display:none">
<h4 class="clsTitle">현금영수증 / 계산서 발행여부</h4>
<ul class="apyRdo">
@if (Model.CM.isrefund == 0 || Model.PPLog.isrebate == 0)
{
<li><input type="radio" name="iscashrct" id="pay0202" value="1"><label for="pay0202">현금영수증 발행</label></li>
}
<li>
<input type="radio" name="iscashrct" id="pay0203" value="2"><label for="pay0203">계산서 발행</label>
<input type="hidden" id="brno" value="@Model.PPLog.brno" />
</li>
</ul>
<ul class="apyRdo" id="taxinvoice_option" style="display:none;margin-top:-1px">
<li><input type="radio" name="isreceipt" id="isreceipt1" value="1" @(Model.PPLog.isreceipt == null ? "checked" : Model.PPLog.isreceipt == 1 ? "checked" : "") /><label for="isreceipt1"> 영수</label></li>
<li><input type="radio" name="isreceipt" id="isreceipt0" value="0" @(Model.PPLog.isreceipt == 0 ? "checked" : "") /><label for="isreceipt0"> 청구</label></li>
<li style="vertical-align:sub;">계산서날짜 : <input type="text" name="taxdatereq" id="taxdatereq" data-date-format="yyyy-mm-dd" class="datepicker-input" value="@(Model.PPLog.taxdatereq == null ? "" : Model.PPLog.taxdatereq.Value.ToString("yyyy-MM-dd"))" autocomplete="off" /></li>
</ul>
</div>
<ul class="clsBtn society">
<li><a href="#" onclick="save()">수강신청</a></li>
<li><a href="/">취소</a></li>
<li><a href="#" id="btnback" style="background-color: #fff;border: solid 1px #0047a7;color:#0047a7;">뒤로가기</a></li>
</ul>
@Html.HiddenFor(m => m.payno)
@Html.HiddenFor(m => m.exno)
@Html.Hidden("pplno", Model.PPLog.pplno)
<input type="hidden" name="cashrcthp" id="cashrcthp" />
<input type="hidden" name="isbill" id="isbill">
<input type="hidden" name="items" value="@string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}", 0, Model.CM.cmno, 1, ViewBag.SSUserNo, Model.PPLog.isrebate, 0, "")" />
<!-- Xpay 결제 start -->
<input type="hidden" name="LGD_CLOSEDATE" id="LGD_CLOSEDATE" value="">
<input type="hidden" name="LGD_OID" id="LGD_OID" value="">
<input type="hidden" name="LGD_AMOUNT" id="LGD_AMOUNT" value="">
<input type="hidden" name="LGD_OSTYPE_CHECK" id="LGD_OSTYPE_CHECK" value="">
<input type="hidden" name="LGD_CUSTOM_SWITCHINGTYPE" id="LGD_CUSTOM_SWITCHINGTYPE" value="">
<input type="hidden" name="LGD_VERSION" id="LGD_VERSION" value="">
<input type="hidden" name="LGD_CUSTOM_SKIN" id="LGD_CUSTOM_SKIN" value="">
<input type="hidden" name="CST_WINDOW_TYPE" id="CST_WINDOW_TYPE" value="">
<input type="hidden" name="LGD_PCVIEWYN" id="LGD_PCVIEWYN" value="">
<input type="hidden" name="LGD_CUSTOM_FIRSTPAY" id="LGD_CUSTOM_FIRSTPAY" value="">
<input type="hidden" name="LGD_KVPMISPAUTOAPPYN" id="LGD_KVPMISPAUTOAPPYN" value="">
<input type="hidden" name="LGD_MTRANSFERAUTOAPPYN" id="LGD_MTRANSFERAUTOAPPYN" value="">
<input type="hidden" name="LGD_WINDOW_TYPE" id="LGD_WINDOW_TYPE" value="">
<input type="hidden" name="LGD_CUSTOM_USABLEPAY" id="LGD_CUSTOM_USABLEPAY" value="">
<input type="hidden" name="LGD_BUYER" id="LGD_BUYER" value="@Model.User.username">
<input type="hidden" name="LGD_PRODUCTINFO" id="LGD_PRODUCTINFO" value="@(Model.CM.cname.Replace(",", " "))">
<input type="hidden" name="LGD_BUYEREMAIL" id="LGD_BUYEREMAIL" value="@Model.User.email">
<!-- Xpay 결제 end -->
</form>
@section scriptsHeader{
<style type="text/css">
.hide {
display: none;
}
</style>
@Html.Partial("./Partial/ScriptDate")
}
<script type="text/javascript">
var model = {};
model.pplog = @Html.Raw(Json.Encode(new List<NP.Model.PPLog>() { ( Model.PPLog != null ? Model.PPLog : new NP.Model.PPLog {}) }.Select(s => new { s.asname, s.brno, s.ceoname, s.post, s.address1, s.address2, s.rbankacc, s.bkind, s.btype, s.taxemail}).First()));;
$(document).ready(function () {
$("input[name='ptype']").on("change", function () {
$("#cashbox").hide();
if ($(this).val() == 3) {
$("#cashbox").show();
if ($("input[name='iscashrct']").length == 1) {
$("input[name='iscashrct']").click();
}
}
});
$("input[name='iscashrct']").on("change", function () {
let brno = $("#brno").val();
if ($(this).val() == 2) {
if (brno == "") {
msg("계산서 발행에 필요한 업체정보가 없습니다.<br>하단의 <font color='red'>뒤로가기 버튼</font>을 눌러 업체정보 입력 페이지에서 업체로 변경 후 신청해 주시기 바랍니다.");
$("#pay0203").prop("checked", false)
}
else {
$("#taxinvoice_option").show();
}
} else {
$("#taxinvoice_option").hide();
}
});
$("#btnback").on("click", function () {
$("#historyForm").attr("action", "/Course/ApplyAgree");
$("#historyForm").submit();
});
});
function save() {
var isCompanyInfo = true;
$.each(model.pplog, function (key, value) {
if (key == "rbankacc") {
if (value == "") {
isCompanyInfo = false;
return;
}
}
});
$("#cashrcthp").val("");
$("#isbill").val("");
if ($("input[name='ptype']:checked").length > 0 && $("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").length == 1 && $("input[name='iscashrct']:checked").val() == 2) {
$("#isbill").val("1");
}
if ($("input[name='ptype']:checked").length < 1) {
msg("결제방법을 선택해주세요.");
} else if ($("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").length < 1) {
msg("현금영수증 / 계산서 발행여부를 선택해주세요.");
} else if ($("#isbill").val() == 1 && !isCompanyInfo) {
msg("계산서 발급 시 회사정보가 필요합니다. 뒤로가기를 클릭하여 회사정보를 입력해주세요.");
} else if ($("#isbill").val() == 1 && $("#taxdatereq").val() == "") {
msg("계산서날짜를 입력해주세요.");
}else {
capp("/focommon/CheckQtyScd", { cmisno: $("#becmisno").val()}, "CheckQtyScdResult");
}
}
/*20220803 수강인원체크*/
function CheckQtyScdResult() {
if (capResult.code == 1000) {
cap("/fcommon/paystart", "mform", "cbsave");
}
else if (capResult.code == 0) {
msg(capResult.msg, null, null, null, '$("#historyForm").attr("action", "/Course/SmartSearch").submit()');
}
else {
msgadmin();
}
}
function cbsave() {
if (capResult.code == 1000) {
if (capResult.obj == 0) {
var resultmsg = capResult.msg;
if (resultmsg.indexOf("buyertel")) {
//msg("개인정보에 휴대폰 번호를 입력해주세요.");
msg(capResult.msg || "이미 신청한 강좌인지 확인해주세요.");
} else {
msg(capResult.msg);
}
}
else {
if (capResult.obj.ptype == 6 || capResult.obj.ptype == 7) {
location.href = "@Model.viewname4?payno=" + capResult.obj.payno + "&absptype=" + capResult.obj.ptype;
return;
}
else {
setv("LGD_OID", capResult.obj.oid2 + capResult.obj.payno);
setv("LGD_CLOSEDATE", capResult.obj.paylimityyyyMMddHHmmss);
setv("LGD_AMOUNT", capResult.obj.payamt);
setv("LGD_OSTYPE_CHECK", ismobile() ? "M" : "P");
setv("LGD_CUSTOM_SWITCHINGTYPE", ismobile() ? "SUBMIT" : "IFRAME");
setv("LGD_VERSION", ismobile() ? "ASPNET_Non-ActiveX_SmartXPay" : "ASPNET_Non-ActiveX_Standard");
setv("LGD_CUSTOM_SKIN", ismobile() ? "SMART_XPAY2" : "red");
var paymentMethod = $(':radio[name="ptype"]:checked').val() == 1 ? "SC0010" : $(':radio[name="ptype"]:checked').val() == 2 ? "SC0030" : $(':radio[name="ptype"]:checked').val() == 3 ? "SC0040" : "-";
if (ismobile()) {
setv("CST_WINDOW_TYPE", "submit");
setv("LGD_PCVIEWYN", "N");
setv("LGD_CUSTOM_FIRSTPAY", paymentMethod);
setv("LGD_KVPMISPAUTOAPPYN", checkMobile());
setv("LGD_MTRANSFERAUTOAPPYN", checkMobile());
} else {
setv("LGD_WINDOW_TYPE", "iframe");
setv("LGD_CUSTOM_USABLEPAY", paymentMethod);
}
document.getElementById('mform').submit();
}
}
} else {
msgadmin();
}
}
function checkMobile() {
var varUA = navigator.userAgent.toLowerCase();
if (varUA.indexOf('android') > -1) {
return "A";
} else if (varUA.indexOf("iphone") > -1 || varUA.indexOf("ipad") > -1 || varUA.indexOf("ipod") > -1) {
return "N";
}
}
</script>