1954 lines
106 KiB
C#
1954 lines
106 KiB
C#
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.Mvc;
|
|
using XPayClientNet;
|
|
|
|
namespace NP.FO.Controllers
|
|
{
|
|
public class CourseController : FOOpenBaseController
|
|
{
|
|
public ActionResult PayCover(VMPay vm)
|
|
{
|
|
if (string.IsNullOrEmpty(vm.items))
|
|
{
|
|
return Redirect("/Course/Covers");
|
|
}
|
|
vm.viewname4 = vm.viewname4 ?? ("https://" + Request.Url.Host + "/Course/CoverPayReturn");
|
|
//vm.viewname4 = vm.viewname4 ?? (GetConfig("fronturl") + "/Course/CoverPayReturn");
|
|
vm.viewname6 = vm.viewname6 ?? (GetConfig("pginfomobile").Split('|')[0] + "/Course/CoverPayReturn");
|
|
foreach (var d in vm.items.Split(';'))
|
|
{
|
|
var dd = d.Split(':');
|
|
if (dd[0] == "0")
|
|
{
|
|
vm.previewname = "/CoverDetail?cmno=" + dd[1];
|
|
break;
|
|
}
|
|
}
|
|
//vm.previewname = vm.previewname ?? "/Course/Ons";
|
|
base.PayAll(vm);
|
|
return View("Pay", vm);
|
|
}
|
|
public ActionResult BookPayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult PayBook(VMPay vm)
|
|
{
|
|
if (string.IsNullOrEmpty(vm.items))
|
|
{
|
|
return Redirect("/Course/Books");
|
|
}
|
|
vm.viewname4 = vm.viewname4 ?? ("https://" + Request.Url.Host + "/Course/BookPayReturn");
|
|
//vm.viewname4 = vm.viewname4 ?? (GetConfig("fronturl") + "/Course/BookPayReturn");
|
|
vm.viewname6 = vm.viewname6 ?? (GetConfig("pginfomobile").Split('|')[0] + "/Course/BookPayReturn");
|
|
foreach (var d in vm.items.Split(';'))
|
|
{
|
|
var dd = d.Split(':');
|
|
if (dd[0] == "2")
|
|
{
|
|
vm.previewname = "/Book?bkno=" + dd[1];
|
|
break;
|
|
}
|
|
}
|
|
//vm.previewname = vm.previewname ?? "/Course/Offs";
|
|
base.PayAll(vm);
|
|
return View("Pay", vm);
|
|
}
|
|
public ActionResult BookBuy(VMCourse vm)
|
|
{
|
|
if (vm.bkno < 1) { return Redirect("/"); }
|
|
vm.previewname = "/Course/Books";
|
|
vm.Book = Dao.Get<Book>("cm.books", new System.Collections.Hashtable() { { "bkno", vm.bkno } }).First();
|
|
return View(vm);
|
|
}
|
|
public ActionResult Book(int bkno)
|
|
{
|
|
var b = Dao.Get<Book>("cm.books", new System.Collections.Hashtable() { { "bkno", bkno }, { "isdetail", 1 } }).FirstOrDefault();
|
|
if (b == null)
|
|
{
|
|
return Redirect("/Course/Books");
|
|
}
|
|
b.Files = new List<File>() { };
|
|
if (b.fgno != null)
|
|
{
|
|
b.Files = GetFiles(b.fgno.Value);
|
|
}
|
|
ViewBag.Files = (new NP.Model.VMBase()).Files;
|
|
return View(b);
|
|
}
|
|
public ActionResult Books(VMCourse vm)
|
|
{
|
|
var ht = SetHash(vm);
|
|
ht.Add("isuse", 1);
|
|
vm.Books = Dao.Get<Book>("cm.books", ht);
|
|
vm.pagetotalcount = GetCount(vm.Books.FirstOrDefault());
|
|
return View(vm);
|
|
}
|
|
public ActionResult Exam(VMCourse vm)
|
|
{
|
|
vm.Exam = Dao.Get<Exam>("exam.exams", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "exno", vm.exno } }).FirstOrDefault();
|
|
if (vm.Exam == null) { return Redirect("/Course/Exams"); }
|
|
vm.FileList = new List<File>();
|
|
if (vm.Exam.fgno != null) {
|
|
vm.FileList = GetFiles(vm.Exam.fgno.Value);
|
|
}
|
|
return View(vm);
|
|
}
|
|
public ActionResult Exams()
|
|
{
|
|
return View(Dao.Get<Exam>("exam.exams", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo },{"isopen",1 } }));
|
|
}
|
|
public ActionResult CertPayReturn(VMPay vm)
|
|
{
|
|
return View(Dao.Get<Lect>("pay.paylect.get", vm.Pay.payno).First());
|
|
}
|
|
public ActionResult CertDetail(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/Certs");
|
|
}
|
|
vm.previewname = vm.previewname ?? "/Course/Certs";
|
|
|
|
//20220726
|
|
var hsData = SetHash(vm);
|
|
hsData.Add("cmno", vm.cmno);
|
|
hsData.Add("userno", SUserInfo.UserNo);
|
|
hsData.Add("contents", vm.Contents);
|
|
vm.CM = Dao.Get<CM>("cm.cms.forbuy", hsData).First();
|
|
//vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, { "contents", vm.Contents } }).First();
|
|
|
|
vm.CMEV = Dao.Get<CMEV>("cm.cmev", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "usertype", 11 } });
|
|
if (vm.CM.fgnocm != null)
|
|
{
|
|
vm.FileList = GetFiles(vm.CM.fgnocm.Value);
|
|
}
|
|
return View("CertDetail", vm);
|
|
}
|
|
public ActionResult CertBuy(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, { "contents", vm.Contents } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
vm.ComCodes = GetComCodes("jobposition,job", true);
|
|
for (int i = vm.ComCodes.Count() - 1; i > -1; i--)
|
|
{
|
|
if (vm.ComCodes[i].isuse == 0 && (vm.ComCodes[i].cgroup != "jobposition" || (vm.ComCodes[i].cgroup == "jobposition" && vm.ComCodes[i].refcode != "9")))
|
|
{
|
|
vm.ComCodes.RemoveAt(i);
|
|
}
|
|
}
|
|
return View(vm);
|
|
}
|
|
public ActionResult Certs(VMCourse vm)
|
|
{
|
|
vm.cgcode = TestCode1;
|
|
vm.pcgcode = vm.pcgcode ?? TestCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
}
|
|
return View(vm);
|
|
}
|
|
public ActionResult Covers(VMCourse vm)
|
|
{
|
|
vm.cgcode = TestCode3;
|
|
vm.pcgcode = vm.pcgcode ?? TestCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
}
|
|
return View(vm);
|
|
}
|
|
public ActionResult CoverDetail(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/Covers");
|
|
}
|
|
vm.previewname = vm.previewname ?? "/Course/Covers";
|
|
vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, { "contents", vm.Contents } }).First();
|
|
vm.CMEV = Dao.Get<CMEV>("cm.cmev", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "usertype", 11 } });
|
|
if (vm.CM.fgnocm != null)
|
|
{
|
|
vm.FileList = GetFiles(vm.CM.fgnocm.Value);
|
|
}
|
|
return View(vm);
|
|
}
|
|
public ActionResult CoverBuy(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, { "contents", vm.Contents } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
vm.ComCodes = GetComCodes("jobposition,job", true);
|
|
for (int i = vm.ComCodes.Count() - 1; i > -1; i--)
|
|
{
|
|
if (vm.ComCodes[i].isuse == 0 && (vm.ComCodes[i].cgroup != "jobposition" || (vm.ComCodes[i].cgroup == "jobposition" && vm.ComCodes[i].refcode != "9")))
|
|
{
|
|
vm.ComCodes.RemoveAt(i);
|
|
}
|
|
}
|
|
return View(vm);
|
|
}
|
|
public ActionResult PayOnBase(VMPay vm)
|
|
{
|
|
vm.viewname3 = "Base";
|
|
vm.previewname = vm.previewname ?? "/Course/OnBases";
|
|
vm.viewname4 = "https://" + Request.Url.Host + "/Course/OnBasePayReturn";
|
|
//vm.viewname4 = GetConfig("fronturl") + "/Course/OnBasePayReturn";
|
|
base.PayAll(vm);
|
|
return PayOn(vm);
|
|
}
|
|
public ActionResult PayOnCollege(VMPay vm)
|
|
{
|
|
vm.viewname3 = "College";
|
|
vm.previewname = vm.previewname ?? "/Course/OnColleges";
|
|
vm.viewname4 = "https://" + Request.Url.Host + "/Course/OnCollegePayReturn";
|
|
//vm.viewname4 = GetConfig("fronturl") + "/Course/OnCollegePayReturn";
|
|
base.PayAll(vm);
|
|
return PayOn(vm);
|
|
}
|
|
public ActionResult PayOn(VMPay vm)
|
|
{
|
|
vm.viewname4 = vm.viewname4 ?? ("https://" + Request.Url.Host + "/Course/OnPayReturn");
|
|
//vm.viewname4 = vm.viewname4 ?? (GetConfig("fronturl") + "/Course/OnPayReturn");
|
|
vm.viewname6 = vm.viewname6 ?? (GetConfig("pginfomobile").Split('|')[0] + "/Course/OnPayReturn");
|
|
foreach (var d in vm.items.Split(';'))
|
|
{
|
|
var dd = d.Split(':');
|
|
if (dd[0] == "0")
|
|
{
|
|
vm.previewname = "/OnDetail?cmno=" + dd[1];
|
|
break;
|
|
}
|
|
}
|
|
//vm.previewname = vm.previewname ?? "/Course/Ons";
|
|
base.PayAll(vm);
|
|
return View("Pay", vm);
|
|
}
|
|
public ActionResult OnBuyCollege(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.viewname3 = "College";
|
|
vm.previewname = vm.previewname ?? "/Course/OnColleges";
|
|
POnBuy(vm);
|
|
return View("OnBuy", vm);
|
|
}
|
|
public ActionResult OnBuyBase(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.viewname3 = "Base";
|
|
vm.previewname = vm.previewname ?? "/Course/OnBases";
|
|
POnBuy(vm);
|
|
return View("OnBuy", vm);
|
|
}
|
|
public ActionResult OnBuy(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
POnBuy(vm);
|
|
return View("OnBuy", vm);
|
|
}
|
|
private void POnBuy(VMCourse vm)
|
|
{
|
|
vm.viewname3 = vm.viewname3 ?? "";
|
|
vm.previewname = "/Course/Ons";
|
|
vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, { "contents", vm.Contents } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
vm.ComCodes = GetComCodes("jobposition,job", true);
|
|
for (int i = vm.ComCodes.Count() - 1; i > -1; i--)
|
|
{
|
|
if (vm.ComCodes[i].isuse == 0 && (vm.ComCodes[i].cgroup != "jobposition" || (vm.ComCodes[i].cgroup == "jobposition" && vm.ComCodes[i].refcode != "9")))
|
|
{
|
|
vm.ComCodes.RemoveAt(i);
|
|
}
|
|
}
|
|
}
|
|
public ActionResult Offs(VMCourse vm)
|
|
{
|
|
//오프라인교육만
|
|
vm.CMs = Dao.Get<CM>("cm.cms.offs", new System.Collections.Hashtable() {{ "year", DateTime.Now.Year } });
|
|
vm.viewname = vm.viewname ?? "OffList";
|
|
return View("Offs", vm);
|
|
}
|
|
public ActionResult OffDetail(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/Offs");
|
|
}
|
|
|
|
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();
|
|
vm.CMEV = Dao.Get<CMEV>("cm.cmev", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "usertype", 11 } });
|
|
if (vm.CM.fgnocm != null)
|
|
{
|
|
vm.FileList = GetFiles(vm.CM.fgnocm.Value);
|
|
}
|
|
return View("OffDetail", vm);
|
|
}
|
|
public ActionResult OffBuy(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
POffBuy(vm);
|
|
return View("OffBuy", vm);
|
|
}
|
|
|
|
public ActionResult OnDetailCollege(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/Course/OnColleges"); }
|
|
vm.viewname3 = "College";
|
|
vm.previewname = vm.previewname ?? "/Course/OnColleges";
|
|
return OnDetail(vm);
|
|
}
|
|
public ActionResult OnDetailBase(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1){return Redirect("/Course/OnBases");}
|
|
vm.viewname3 = "Base";
|
|
vm.previewname = vm.previewname ?? "/Course/OnBases";
|
|
return OnDetail(vm);
|
|
}
|
|
public ActionResult OnDetail(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/Ons");
|
|
}
|
|
vm.CM = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "userno", SUserInfo.UserNo }, {"contents", vm.Contents } }).FirstOrDefault();
|
|
if (vm.CM == null)
|
|
{
|
|
return Redirect("/Course/Ons");
|
|
}
|
|
vm.CMEV = Dao.Get<CMEV>("cm.cmev", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }).First();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.CMPRs = Dao.Get<CMPR>("cm.cmprs", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "usertype", 11 } });
|
|
if (vm.CM.fgnocm != null)
|
|
{
|
|
vm.FileList = GetFiles(vm.CM.fgnocm.Value);
|
|
}
|
|
Thumbs(vm, true, true);
|
|
return View("OnDetail", vm);
|
|
}
|
|
public ActionResult OnColleges(VMCourse vm)
|
|
{
|
|
vm.cgcode = OnCode1;
|
|
vm.pcgcode = vm.pcgcode ?? OnCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "cnamelike", vm.cname }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
Thumbs(vm, false, true);
|
|
}
|
|
vm.viewname = "OnSearch";
|
|
vm.viewname2 = "OnColleges";
|
|
vm.viewname3 = "College";
|
|
vm.previewname = "/Course/OnColleges?cname=" + (vm.cname ?? "");
|
|
return View("Ons", vm);
|
|
}
|
|
public ActionResult OnBases(VMCourse vm)
|
|
{
|
|
vm.cgcode = OnCode2;
|
|
vm.pcgcode = vm.pcgcode ?? OnCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "cnamelike", vm.cname }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
Thumbs(vm, false, true);
|
|
}
|
|
vm.viewname = "OnSearch";
|
|
vm.viewname2 = "OnBases";
|
|
vm.viewname3 = "Base";
|
|
vm.previewname = "/Course/OnBases?cname=" + (vm.cname ?? "");
|
|
return View("Ons", vm);
|
|
}
|
|
public ActionResult OnSearch(VMCourse vm)
|
|
{
|
|
vm.pcgcode = vm.pcgcode ?? OnCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cnamelike", vm.cname }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime,a.cname" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
Thumbs(vm, false, true);
|
|
}
|
|
vm.viewname = vm.viewname2 = "OnSearch";
|
|
vm.previewname = "/Course/OnSearch?cname=" + (vm.cname ?? "");
|
|
return View("Ons", vm);
|
|
}
|
|
public ActionResult Ons(VMCourse vm)
|
|
{
|
|
vm.viewname = vm.viewname ?? "OnList";
|
|
vm.viewname2 = vm.viewname2 ?? "OnSearch";
|
|
vm.pcgcode = vm.pcgcode ?? OnCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "userno", SUserInfo.UserNo }/*, { "year", DateTime.Now.Year }*/,{ "orderby", "a.retime desc"},{ "isrequestable",1 }, { "contents", vm.Contents } });
|
|
ViewBag.OnCode1 = OnCode1;
|
|
Thumbs(vm);
|
|
return View(vm);
|
|
}
|
|
private void Thumbs(VMCourse vm, bool iscm = false, bool isbig = false)
|
|
{
|
|
if (iscm)
|
|
{
|
|
vm.CM.isbig = isbig?1:0;
|
|
}
|
|
else
|
|
{
|
|
foreach(var d in vm.CMs)
|
|
{
|
|
d.isbig = isbig ? 1 : 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public ActionResult OffColleges(VMCourse vm)
|
|
{
|
|
vm.cgcode = OffCode1;
|
|
vm.pcgcode = vm.pcgcode ?? OffCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "cnamelike", vm.cname }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
}
|
|
vm.viewname = "OffSearch";
|
|
vm.viewname2 = "OffColleges";
|
|
vm.viewname3 = "College";
|
|
vm.previewname = "/Course/OffColleges?cname=" + (vm.cname??"");
|
|
return View("Offs", vm);
|
|
}
|
|
public ActionResult OffTotals(VMCourse vm)
|
|
{
|
|
vm.cgcode = OffCode2;
|
|
vm.pcgcode = vm.pcgcode ?? OffCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "cnamelike", vm.cname }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
}
|
|
vm.viewname = "OffSearch";
|
|
vm.viewname2 = "OffTotals";
|
|
vm.viewname3 = "Total";
|
|
vm.previewname = "/Course/OffTotals?cname=" + (vm.cname ?? "");
|
|
return View("Offs", vm);
|
|
}
|
|
public ActionResult OffSpecials(VMCourse vm)
|
|
{
|
|
vm.cgcode = OffCode3;
|
|
vm.pcgcode = vm.pcgcode ?? OffCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cgcode", vm.cgcode }, { "cnamelike", vm.cname }, { "userno", SUserInfo.UserNo }, { "isrequestable", 1 }/*, { "year", DateTime.Now.Year }*/, { "orderby", "a.retime desc" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s => s.cmno)));
|
|
}
|
|
vm.viewname = "OffSearch";
|
|
vm.viewname2 = "OffSpecials";
|
|
vm.viewname3 = "Special";
|
|
vm.previewname = "/Course/OffSpecials?cname=" + (vm.cname ?? "");
|
|
return View("Offs", vm);
|
|
}
|
|
public ActionResult OffSearch(VMCourse vm)
|
|
{
|
|
vm.pcgcode = vm.pcgcode ?? OffCode;
|
|
vm.CMs = Dao.Get<CM>("cm.cms.forbuy", new System.Collections.Hashtable() { { "pcgcode", vm.pcgcode }, { "cnamelike", vm.cname },{"userno",SUserInfo.UserNo },{"isrequestable",1 }/*, { "year", DateTime.Now.Year }*/,{"orderby","a.retime,a.cname" }, { "contents", vm.Contents } });
|
|
if (vm.CMs.Count() > 0)
|
|
{
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", string.Join(",", vm.CMs.Select(s=>s.cmno)));
|
|
}
|
|
vm.viewname = vm.viewname2 = "OffSearch";
|
|
vm.previewname = "/Course/OffSearch?cname=" + (vm.cname??"");
|
|
return View("Offs", vm);
|
|
}
|
|
public ActionResult CCOn1(VMCourse vm)
|
|
{
|
|
vm.viewname = vm.viewname ?? "EduBOn1";
|
|
return View(vm);
|
|
}
|
|
public ActionResult CC1(VMCourse vm)
|
|
{
|
|
vm.viewname = vm.viewname ?? "EduB1";
|
|
return View(vm);
|
|
}
|
|
public ActionResult CC2(VMCourse vm)
|
|
{
|
|
vm.viewname = vm.viewname ?? "EduB2";
|
|
return View(vm);
|
|
}
|
|
public ActionResult CC3(VMCourse vm)
|
|
{
|
|
vm.viewname = vm.viewname ?? "EduB3";
|
|
return View(vm);
|
|
}
|
|
public ActionResult EduBOn1(VMCourse vm)
|
|
{
|
|
vm.EduB2B = new EduB2B() { etype = 1 };
|
|
return EduB2B(vm);
|
|
}
|
|
public ActionResult EduB1(VMCourse vm)
|
|
{
|
|
vm.EduB2B = new EduB2B() { etype = 2 };
|
|
return EduB2B(vm);
|
|
}
|
|
public ActionResult EduB2(VMCourse vm)
|
|
{
|
|
vm.EduB2B = new EduB2B() { etype = 0 };
|
|
vm.FileList = new List<File>() { };
|
|
return EduB2B(vm);
|
|
}
|
|
public ActionResult EduB3(VMCourse vm)
|
|
{
|
|
vm.EduB2B = new EduB2B() { etype = 3 };
|
|
return EduB2B(vm);
|
|
}
|
|
public ActionResult EduB2B(VMCourse vm)
|
|
{
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
if (vm.User.asno != null)
|
|
{
|
|
var am = Dao.Get<AssignMan>("users.assignmans", new System.Collections.Hashtable() { { "asno", vm.User.asno.Value } }).Where(w => w.mtype == 1).FirstOrDefault();
|
|
if (am != null)
|
|
{
|
|
vm.User.asmanname = am.mname;
|
|
vm.User.email = am.email;
|
|
}
|
|
}
|
|
return View("EduB2B", vm);
|
|
}
|
|
|
|
public ActionResult OffDetailCollege(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/OffColleges");
|
|
}
|
|
vm.viewname3 = "College";
|
|
vm.previewname = vm.previewname ?? "/Course/OffColleges";
|
|
return OffDetail(vm);
|
|
}
|
|
public ActionResult OffDetailTotal(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/OffTotals");
|
|
}
|
|
vm.viewname3 = "Total";
|
|
vm.previewname = vm.previewname ?? "/Course/OffTotals";
|
|
return OffDetail(vm);
|
|
}
|
|
public ActionResult OffDetailSpecial(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1)
|
|
{
|
|
return Redirect("/Course/OffSpecials");
|
|
}
|
|
vm.viewname3 = "Special";
|
|
vm.previewname = vm.previewname ?? "/Course/OffSpecials";
|
|
return OffDetail(vm);
|
|
}
|
|
|
|
public ActionResult OffBuyCollege(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.viewname3 = "College";
|
|
vm.previewname = vm.previewname ?? "/Course/OffColleges";
|
|
POffBuy(vm);
|
|
return View("OffBuy", vm);
|
|
}
|
|
public ActionResult OffBuyTotal(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.viewname3 = "Total";
|
|
vm.previewname = vm.previewname ?? "/Course/OffTotals";
|
|
POffBuy(vm);
|
|
return View("OffBuy", vm);
|
|
}
|
|
public ActionResult OffBuySpecial(VMCourse vm)
|
|
{
|
|
if (vm.cmno < 1) { return Redirect("/"); }
|
|
vm.viewname3 = "Special";
|
|
vm.previewname = vm.previewname ?? "/Course/OffSpecials";
|
|
POffBuy(vm);
|
|
return View("OffBuy", vm);
|
|
}
|
|
|
|
private void POffBuy(VMCourse vm)
|
|
{
|
|
vm.viewname3 = vm.viewname3 ?? "";
|
|
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();
|
|
vm.CMBooks = Dao.Get<Book>("cm.cmbooks", vm.cmno.ToString());
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
vm.ComCodes = GetComCodes("jobposition,job", true);
|
|
for (int i = vm.ComCodes.Count() - 1; i > -1; i--)
|
|
{
|
|
if (vm.ComCodes[i].isuse == 0 && (vm.ComCodes[i].cgroup != "jobposition" || (vm.ComCodes[i].cgroup == "jobposition" && vm.ComCodes[i].refcode != "9")))
|
|
{
|
|
vm.ComCodes.RemoveAt(i);
|
|
}
|
|
}
|
|
}
|
|
public ActionResult PayOffCollege(VMPay vm)
|
|
{
|
|
vm.viewname3 = "College";
|
|
vm.previewname = "/Course/OffColleges";
|
|
vm.viewname4 = "https://" + Request.Url.Host + "/Course/OffCollegePayReturn";
|
|
//vm.viewname4 = GetConfig("fronturl") + "/Course/OffCollegePayReturn";
|
|
base.PayAll(vm);
|
|
return PayOff(vm);
|
|
}
|
|
public ActionResult PayOffTotal(VMPay vm)
|
|
{
|
|
vm.viewname3 = "Total";
|
|
vm.previewname = vm.previewname ?? "/Course/OffTotals";
|
|
vm.viewname4 = "https://" + Request.Url.Host + "/Course/OffTotalPayReturn";
|
|
//vm.viewname4 = GetConfig("fronturl") + "/Course/OffTotalPayReturn";
|
|
base.PayAll(vm);
|
|
return PayOff(vm);
|
|
}
|
|
public ActionResult PayOffSpecial(VMPay vm)
|
|
{
|
|
vm.viewname3 = "Special";
|
|
vm.previewname = vm.previewname ?? "/Course/OffSpecials";
|
|
vm.viewname4 = "https://" + Request.Url.Host + "/Course/OffDetailPayReturn";
|
|
//vm.viewname4 = GetConfig("fronturl") + "/Course/OffDetailPayReturn";
|
|
base.PayAll(vm);
|
|
return PayOff(vm);
|
|
}
|
|
public ActionResult PayOff(VMPay vm)
|
|
{
|
|
if (string.IsNullOrEmpty(vm.items) && !vm.ispayexam && !(vm.ispaycert && vm.payno > 0) && !vm.ispaycart)
|
|
{
|
|
return Redirect("/Course/Offs");
|
|
}
|
|
vm.viewname4 = vm.viewname4 ?? ("https://" + Request.Url.Host + "/Course/OffPayReturn");
|
|
//vm.viewname4 = vm.viewname4 ?? (GetConfig("fronturl") + "/Course/OffPayReturn");
|
|
vm.viewname6 = vm.viewname6 ?? (GetConfig("pginfomobile").Split('|')[0] + "/Course/OffPayReturn");
|
|
foreach (var d in vm.items.Split(';'))
|
|
{
|
|
var dd = d.Split(':');
|
|
if (dd[0] == "0")
|
|
{
|
|
vm.previewname = "/OffDetail?cmno=" + dd[1];
|
|
break;
|
|
}
|
|
}
|
|
//vm.previewname = vm.previewname ?? "/Course/Offs";
|
|
base.PayAll(vm);
|
|
return View("Pay",vm);
|
|
}
|
|
public ActionResult OffPayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult OffCollegePayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult OffTotalPayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult OffSpecialPayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult PayClose(VMPay vm)
|
|
{
|
|
vm.pginfo = GetConfig("pginfo");
|
|
return View(vm);
|
|
}
|
|
public ActionResult OnPayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult OnCollegePayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult OnBasePayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
public ActionResult CoverPayReturn(VMPay vm)
|
|
{
|
|
return PayReturn(vm);
|
|
}
|
|
|
|
#region 스마트검색 / 스마트검색 결과
|
|
// 로그인을 하지 않았읋 때 스마트검색에서 교육신청을 하면 스마트검색 결과 페이지가 나온다
|
|
// 로그인을 한 상태에서 스마트검색에서 교육신청을 하면 스마트검색 결과 페이지는 나오지 않는다.
|
|
|
|
|
|
/// <summary>
|
|
/// 스마트검색
|
|
/// </summary>
|
|
/// <param name="vm"></param>
|
|
/// <returns></returns>
|
|
public ActionResult SmartSearch(VMCourse vm)
|
|
{
|
|
/*
|
|
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");
|
|
|
|
// 아스팔트포장전문교육
|
|
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("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);
|
|
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") //기타교육
|
|
{
|
|
p.Clear();
|
|
p.Add("ismaster", "1");
|
|
p.Add("cshape", vm.stringval2);
|
|
p.Add("cgno", vm.stringval3);
|
|
p.Add("isuse", 1);
|
|
|
|
vm.CMs = Dao.Get<CM>("cm.cms", p).ToList();
|
|
}
|
|
|
|
vm.ComCodes2 = GetComCodes("typeman");
|
|
vm.ComCodes3 = GetComCodes("typeedu");
|
|
vm.ComCodes4 = GetComCodes("typegrade");
|
|
vm.ComCodes5 = GetComCodes("typejob");
|
|
vm.ComCodes6 = GetComCodes("typejobitem");
|
|
|
|
bool getComCheck = true;
|
|
|
|
// 기술인분류
|
|
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();
|
|
}
|
|
else 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("건설사업관리기술인"))
|
|
{
|
|
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("품질관리기술인"))
|
|
{
|
|
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("발주청기술인"))
|
|
{
|
|
vm.ComCodes3 = vm.ComCodes3.Where(x => x.cname == "기본교육" || x.cname == "최초교육").ToList();
|
|
vm.ComCodes5 = vm.ComCodes5.Where(x => x.cname != "품질관리").ToList();
|
|
}
|
|
else
|
|
{
|
|
vm.ComCodes3 = vm.ComCodes3.Where(x => x.ccode == 0).ToList();
|
|
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;
|
|
}
|
|
|
|
if (getComCheck)
|
|
{
|
|
vm.ComCodes6 = GetComCodes("typejob" + vm.stringval6);
|
|
}
|
|
|
|
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;
|
|
rslt += "<br>stringval3=" + vm.stringval3; // man
|
|
rslt += "<br>stringval4=" + vm.stringval4; // edu
|
|
rslt += "<br>stringval5=" + vm.stringval5; // grade
|
|
rslt += "<br>stringval6=" + vm.stringval6;
|
|
rslt += "<br>stringval7=" + vm.stringval7;
|
|
|
|
rslt += "<br>stringval17=" + vm.stringval17; // cmno
|
|
rslt += "<br>stringval18=" + vm.stringval18; // pcmno
|
|
rslt += "<br>stringval19=" + vm.stringval19; // cmino
|
|
rslt += "<br>stringval20=" + vm.stringval20; // cmisno
|
|
rslt += "<br>stringval21=" + vm.stringval21; // cgcode
|
|
|
|
rslt += "<br>userno=" + SUserInfo.UserNo;
|
|
*/
|
|
#endregion
|
|
|
|
var p = new Hashtable();
|
|
|
|
ViewBag.IsMain = true;
|
|
|
|
#region + (사용중) ViewBag.rslt 신청 제약 조건
|
|
var fOCommonController = new Base.Controllers.FOCommonController();
|
|
fOCommonController.Dao = new Dao.CommonDao();
|
|
ViewBag.rslt = fOCommonController.CheckUserLect(vm.stringval3, vm.stringval21, vm.stringval4, vm.stringval5, int.Parse(vm.stringval17), int.Parse(vm.stringval18), SUserInfo.UserNo);
|
|
|
|
#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");
|
|
|
|
#endregion
|
|
|
|
#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
|
|
|
|
return View(vm);
|
|
}
|
|
|
|
#region ++ 2025-09 (스마트검색 개발 건 미사용으로 주석처리, 필요시 복원)
|
|
|
|
// 본문에 주석이 너무많아 주석처리는 아니고 그냥 미사용 (메서드 이름이 다름)
|
|
// FO > CourseController.CheckUserLect, FOCommonController.CheckUserLect 동일한 코드 (Dao문제로 2개구현, 공통이나, 서비스로 뺴야한다)
|
|
|
|
/// <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)
|
|
{
|
|
//20220802 추가
|
|
long?[] lngTmp = new long?[2];
|
|
lngTmp[0] = vm.CM.cmino;
|
|
lngTmp[1] = vm.CM.cmisno;
|
|
|
|
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.cmno } }).FirstOrDefault();
|
|
//20220802 추가
|
|
vm.CM.cmino = lngTmp[0];
|
|
vm.CM.cmisno = lngTmp[1];
|
|
vm.CM.applicableCM = (vm.CM.quota != 0 && vm.CM.quota - vm.CM.lectcnt <= 0) ? "대기접수" : "정상접수";
|
|
vm.CMInningscds = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", new System.Collections.Hashtable() { { "cmno", vm.cmno },{"month", (vm.scdMonth == null)? DateTime.Now.Year : vm.scdMonth } });
|
|
foreach (var item in vm.CMInningscds)
|
|
{
|
|
item.scdInfoSummary = string.Format("[{0}] {1}",item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm"));
|
|
}
|
|
|
|
vm.Assign = Dao.Get<Assign>("cm.assign.applyedu", new Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if (vm.Assign != null)
|
|
{
|
|
vm.Assign.mname = null;
|
|
vm.FileList = new List<File>() { };
|
|
if (vm.Assign.fgnobno != null)
|
|
{
|
|
vm.FileList = GetFiles(vm.Assign.fgnobno.Value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
vm.Assign = new Assign() { };
|
|
}
|
|
|
|
#region 20220801 선택한 교육장 정보
|
|
Hashtable hsData = new Hashtable();
|
|
hsData.Add("cmno", vm.cmno);
|
|
var cmInningscdTmp = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", hsData).Where(w => w.cmino == lngTmp[0] && w.cmisno == lngTmp[1]);
|
|
|
|
foreach (var item in cmInningscdTmp)
|
|
{
|
|
vm.SelectCMInningscd = item;
|
|
if (vm.CM.cshape == 1)
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", item.estart.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
else
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", DateTime.Now.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
|
|
if(item.eend != null)
|
|
{
|
|
item.eend2 = item.eend.ToString("yyyy년 MM월 dd일");
|
|
}
|
|
|
|
//vm.SelectCMInningscd.scdInfoSummary = string.Format("{0}", vm.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일까지"));
|
|
if (vm.SelectCMInningscd.estart < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))
|
|
{
|
|
vm.SelectCMInningscd.isEnd = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
vm.User = Dao.Get<Users>("cm.user.applyedu", new Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if (!string.IsNullOrEmpty(vm.User.MobileFormat) && vm.User.MobileFormat.IndexOf("-") >= 0)
|
|
{
|
|
string[] mobileArr = vm.User.MobileFormat.Split('-');
|
|
vm.User.mobile1 = mobileArr.Length > 0 ? mobileArr[0] : string.Empty;
|
|
vm.User.mobile2 = mobileArr.Length > 1 ? mobileArr[1] : string.Empty;
|
|
vm.User.mobile3 = mobileArr.Length > 2 ? mobileArr[2] : string.Empty;
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(vm.User.userpno))
|
|
{
|
|
vm.User.userpno = vm.User.userpno.Replace("-","");
|
|
if (vm.User.userpno.Length == 13)
|
|
{
|
|
string userpnoString = string.Format("{0}-{1}", vm.User.userpno.Substring(0, 6), vm.User.userpno.Substring(6, 7));
|
|
string[] userpnoArr = userpnoString.Split('-');
|
|
vm.User.userpno1 = userpnoArr.Length > 0 ? userpnoArr[0] : string.Empty;
|
|
vm.User.userpno2 = userpnoArr.Length > 1 ? userpnoArr[1] : string.Empty;
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(vm.User.email) && vm.User.email.IndexOf("@") >= 0)
|
|
{
|
|
string[] emailArr = vm.User.email.Split('@');
|
|
vm.User.email1 = emailArr.Length > 0 ? emailArr[0] : string.Empty;
|
|
vm.User.email2 = emailArr.Length > 1 ? emailArr[1] : string.Empty;
|
|
}
|
|
|
|
if (vm.pplno != 0)
|
|
{
|
|
vm.PPLog = Dao.Get<PPLog>("pay.pplogs", new Hashtable() { { "pplno", vm.pplno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if(vm.Assign != null)
|
|
{
|
|
vm.Assign.mname = vm.PPLog.mname;
|
|
if (!string.IsNullOrEmpty(vm.PPLog.MphoneFormat) && vm.PPLog.MphoneFormat.IndexOf("-") >= 0)
|
|
{
|
|
string[] mphoneArr = vm.PPLog.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.PPLog.taxemail) && vm.PPLog.taxemail.IndexOf("@") >= 0)
|
|
{
|
|
string[] taxemailArr = vm.PPLog.taxemail.Split('@');
|
|
vm.Assign.taxemail1 = taxemailArr.Length > 0 ? taxemailArr[0] : string.Empty;
|
|
vm.Assign.taxemail2 = taxemailArr.Length > 1 ? taxemailArr[1] : string.Empty;
|
|
}
|
|
}
|
|
}
|
|
|
|
return View(vm);
|
|
}
|
|
[NP.Base.Auth.CFilter]
|
|
public ActionResult ApplyPay(VMCourse vm)
|
|
{
|
|
//20220802 추가
|
|
long?[] lngTmp = new long?[2];
|
|
lngTmp[0] = vm.CM.cmino;
|
|
lngTmp[1] = vm.CM.cmisno;
|
|
|
|
#region 20220801 선택한 교육장 정보
|
|
Hashtable hsData = new Hashtable();
|
|
hsData.Add("cmno", vm.cmno);
|
|
var cmInningscdTmp = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", hsData).Where(w => w.cmino == lngTmp[0] && w.cmisno == lngTmp[1]);
|
|
|
|
foreach (var item in cmInningscdTmp)
|
|
{
|
|
vm.SelectCMInningscd = item;
|
|
if (vm.CM.cshape == 1)
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", item.estart.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
else
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", DateTime.Now.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
|
|
if (item.eend != null)
|
|
{
|
|
item.eend2 = item.eend.ToString("yyyy년 MM월 dd일");
|
|
}
|
|
|
|
//vm.SelectCMInningscd.scdInfoSummary = string.Format("{0}", vm.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일까지"));
|
|
if (vm.SelectCMInningscd.estart < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))
|
|
{
|
|
vm.SelectCMInningscd.isEnd = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
if (vm.payno > 0)
|
|
{
|
|
//신청대기 => 승인 => 결제진입
|
|
//유효성 검증
|
|
vm.PPLog = Dao.Get<PPLog>("pay.pplogs.bypay", new Hashtable() { { "payno", vm.payno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if (vm.PPLog == null || vm.PPLog.pstatus != 21)
|
|
{
|
|
return Redirect("/");
|
|
}
|
|
vm.pplno = vm.PPLog.pplno;
|
|
vm.cmno = vm.PPLog.cmno;
|
|
}
|
|
else
|
|
{
|
|
if (vm.pplno < 1)
|
|
{
|
|
return Redirect("/");
|
|
}
|
|
vm.PPLog = Dao.Get<PPLog>("pay.pplogs", new Hashtable() { { "pplno", vm.pplno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if (vm.PPLog == null)
|
|
{
|
|
return Redirect("/");
|
|
}
|
|
else if (vm.PPLog.payno > 0 && vm.PPLog.pstatus > 0)
|
|
{
|
|
//새로고침?
|
|
return RedirectPermanent("/Course/ApplyComplete?payno=" + vm.PPLog.payno);
|
|
}
|
|
if (vm.PPLog.isready == 1)
|
|
{
|
|
//대기접수로 결제 및 신청데이터 생성
|
|
var payitems = new List<PayItem>() { };
|
|
var uip = GetUserIP();
|
|
payitems.Add(new PayItem()
|
|
{
|
|
itemno = vm.PPLog.cmno,
|
|
userno = SUserInfo.UserNo,
|
|
status = 6,
|
|
pstatus = 55,
|
|
pcnt = 1,
|
|
payamt = 0,
|
|
isrebate = vm.PPLog.isrebate ?? 0,
|
|
rbank = vm.PPLog.rbankname,
|
|
rbankaccnum = vm.PPLog.rbankacc,
|
|
tbankuser = vm.PPLog.rbankowner,
|
|
isready = 1,
|
|
cmisno = vm.PPLog.cmisno,
|
|
uno = SUserInfo.UserNo,
|
|
uip = uip
|
|
});
|
|
//정가확인
|
|
var cms = Dao.Get<CM>("cm.cms.forpay", new Hashtable() { { "userno", SUserInfo.UserNo }, { "cmno", vm.PPLog.cmno } });
|
|
if (cms.First().lectnocheck > 0)
|
|
{
|
|
return RedirectPermanent("/?isalreadyreq=1");
|
|
}
|
|
var pi = payitems.First();
|
|
pi.orgamt = vm.PPLog.isaccommodation == 1 ? cms.Where(w => w.cmno == pi.itemno).First().fee + cms.Where(w => w.cmno == pi.itemno).First().accommofee : cms.Where(w => w.cmno == pi.itemno).First().fee;
|
|
var pay = new Pay()
|
|
{
|
|
pplno = vm.pplno,
|
|
ispg = 1,
|
|
ptype = 0,
|
|
userno = SUserInfo.UserNo,
|
|
username = SUserInfo.UserName,
|
|
pstatus = 55,
|
|
rstatus = 0,
|
|
refunding = 0,
|
|
orgamt = vm.PPLog.isaccommodation == 1? cms.Sum(s => s.fee) + cms.Sum(s=>s.accommofee) : cms.Sum(s=>s.fee),
|
|
//isinmoney = 1,
|
|
payamt = payitems.Sum(s => s.payamt),//어차피 0 아닌지..?
|
|
PIs = payitems,
|
|
cmnos = string.Join(",", payitems.Select(s => s.itemno)),
|
|
uno = SUserInfo.UserNo,
|
|
uip = GetUserIP()
|
|
};
|
|
Dao.SavePay(pay, true);
|
|
if (pay.payno > 0)
|
|
{
|
|
return RedirectPermanent("/Course/ApplyComplete?payno=" + pay.payno);
|
|
}
|
|
return Redirect("/");
|
|
}
|
|
}
|
|
|
|
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.PPLog.cmno } }).First();
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
vm.viewname4 = "/Course/OnPayReturn";
|
|
|
|
//20220802 추가
|
|
vm.CM.cmino = lngTmp[0];
|
|
vm.CM.cmisno = lngTmp[1];
|
|
|
|
return View(vm);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 교육신청확인
|
|
/// </summary>
|
|
/// <param name="vm"></param>
|
|
/// <returns></returns>
|
|
[NP.Base.Auth.CFilter]
|
|
public ActionResult ApplyAgree(VMCourse vm)
|
|
{
|
|
//20220802 추가
|
|
long?[] lngTmp = new long?[2];
|
|
lngTmp[0] = vm.CM.cmino;
|
|
lngTmp[1] = vm.CM.cmisno;
|
|
|
|
if (vm.pplno < 1)
|
|
{
|
|
return Redirect("/");
|
|
}
|
|
vm.PPLog = Dao.Get<PPLog>("pay.pplogs", new Hashtable() { { "pplno", vm.pplno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if (vm.PPLog == null)
|
|
{
|
|
return Redirect("/");
|
|
}
|
|
else if (vm.PPLog.payno > 0 && vm.PPLog.pstatus > 0)
|
|
{
|
|
//새로고침?
|
|
return RedirectPermanent("/Course/ApplyComplete?payno=" + vm.PPLog.payno);
|
|
}
|
|
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.PPLog.cmno } }).First();
|
|
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
|
vm.ComCodes = GetComCodes("typeman,typejob,studyplace,typejob40,typejob41,typejob42,typejob43,typejob44,typejob45,typejob46,typejob47,typejob48,typejob49,typejob57");
|
|
vm.ComCodes2 = GetComCodes("typeman");
|
|
vm.ComCodes3 = GetComCodes("typeedu");
|
|
vm.ComCodes4 = GetComCodes("typegrade");
|
|
//20220802 추가
|
|
vm.CM.cmino = lngTmp[0];
|
|
vm.CM.cmisno = lngTmp[1];
|
|
|
|
#region 20220801 선택한 교육장 정보
|
|
Hashtable hsData = new Hashtable();
|
|
hsData.Add("cmno", vm.cmno);
|
|
var cmInningscdTmp = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", hsData).Where(w => w.cmino == lngTmp[0] && w.cmisno == lngTmp[1]);
|
|
|
|
foreach (var item in cmInningscdTmp)
|
|
{
|
|
vm.SelectCMInningscd = item;
|
|
if (vm.CM.cshape == 1)
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", item.estart.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
else
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", DateTime.Now.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
|
|
if (item.eend != null)
|
|
{
|
|
item.eend2 = item.eend.ToString("yyyy년 MM월 dd일");
|
|
}
|
|
|
|
//vm.SelectCMInningscd.scdInfoSummary = string.Format("{0}", vm.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일까지"));
|
|
if (vm.SelectCMInningscd.estart < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))
|
|
{
|
|
vm.SelectCMInningscd.isEnd = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
return View(vm);
|
|
}
|
|
|
|
public ActionResult ApplyComplete(VMPay vm)
|
|
{
|
|
if (vm.payno < 1)
|
|
{
|
|
return Redirect("/");
|
|
}
|
|
//20220802 추가
|
|
long?[] lngTmp = new long?[2];
|
|
lngTmp[0] = vm.CM.cmino;
|
|
lngTmp[1] = vm.CM.cmisno;
|
|
|
|
vm.PayItem = Dao.Get<PayItem>("pay.payresult", new Hashtable() { { "payno", vm.payno }, { "userno", SUserInfo.UserNo } }).First();
|
|
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.PayItem.itemno } }).FirstOrDefault();
|
|
vm.Pay = Dao.Get<Pay>("pay.pay", new System.Collections.Hashtable() { { "payno", vm.payno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
|
if (vm.Pay.isready == 1)
|
|
{
|
|
vm.Pay.ccount = Dao.Get<int?>("pay.lectready", vm.CM.cmno).FirstOrDefault() ?? 1;
|
|
}
|
|
vm.Pay.payresult = "1:결제완료";
|
|
|
|
//20220802 추가
|
|
vm.CM.cmino = lngTmp[0];
|
|
vm.CM.cmisno = lngTmp[1];
|
|
|
|
#region 20220801 선택한 교육장 정보
|
|
Hashtable hsData = new Hashtable();
|
|
hsData.Add("cmno", vm.cmno);
|
|
var cmInningscdTmp = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", hsData).Where(w => w.cmino == lngTmp[0] && w.cmisno == lngTmp[1]);
|
|
|
|
foreach (var item in cmInningscdTmp)
|
|
{
|
|
vm.SelectCMInningscd = item;
|
|
if (vm.CM.cshape == 1)
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", item.estart.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
else
|
|
{
|
|
item.scdInfoSummary = string.Format("{0} ~ {1}", DateTime.Now.ToString("yyyy년 MM월 dd일"), item.eend.ToString("MM월 dd일"));
|
|
}
|
|
|
|
if (item.eend != null)
|
|
{
|
|
item.eend2 = item.eend.ToString("yyyy년 MM월 dd일");
|
|
}
|
|
|
|
//vm.SelectCMInningscd.scdInfoSummary = string.Format("{0}", vm.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일까지"));
|
|
if (vm.SelectCMInningscd.estart < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))
|
|
{
|
|
vm.SelectCMInningscd.isEnd = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
return View(vm);
|
|
|
|
}
|
|
public ActionResult XpayREQ(VMPay vm)
|
|
{
|
|
ViewBag.ismain = true;
|
|
string configPath = GetConfig("lgdacomConfigPath");
|
|
string CST_PLATFORM = GetConfig("CST_PLATFORM");
|
|
string CST_MID = GetConfig("CST_MID");
|
|
string LGD_MID = (("test".Equals(CST_PLATFORM.Trim())) ? "t" : "") + CST_MID;
|
|
string LGD_TIMESTAMP = "";
|
|
string LGD_HASHDATA = "";
|
|
string LGD_OID = Request["LGD_OID"];
|
|
string LGD_AMOUNT = Request["LGD_AMOUNT"];
|
|
|
|
long?[] lngTmp = new long?[2];
|
|
lngTmp[0] = vm.CM.cmino;
|
|
lngTmp[1] = vm.CM.cmisno;
|
|
|
|
vm.payParams = new Hashtable();
|
|
vm.payParams.Add("CST_PLATFORM", CST_PLATFORM);
|
|
vm.payParams.Add("CST_MID", CST_MID);
|
|
vm.payParams.Add("LGD_MID", LGD_MID);
|
|
vm.payParams.Add("LGD_OID", LGD_OID);
|
|
vm.payParams.Add("LGD_BUYER", Request["LGD_BUYER"]);
|
|
vm.payParams.Add("LGD_PRODUCTINFO", Request["LGD_PRODUCTINFO"]);
|
|
vm.payParams.Add("LGD_AMOUNT", LGD_AMOUNT);
|
|
vm.payParams.Add("LGD_BUYEREMAIL", Request["LGD_BUYEREMAIL"]);
|
|
vm.payParams.Add("LGD_RETURNURL", "https://" + Request.Url.Host + "/Course/XpayReturnURL");
|
|
//vm.payParams.Add("LGD_RETURNURL", (GetConfig("fronturl") + "/Course/XpayReturnURL"));
|
|
vm.payParams.Add("LGD_ENCODING", GetConfig("LGD_ENCODING"));
|
|
vm.payParams.Add("LGD_ENCODING_NOTEURL", GetConfig("LGD_ENCODING"));
|
|
vm.payParams.Add("LGD_ENCODING_RETURNURL", GetConfig("LGD_ENCODING"));
|
|
vm.payParams.Add("LGD_BACKBTN_YN", GetConfig("LGD_BACKBTN_YN"));
|
|
vm.payParams.Add("LGD_CASNOTEURL", GetConfig("LGD_CASNOTEURL"));
|
|
vm.payParams.Add("LGD_AUTOFILLYN_BUYER", GetConfig("LGD_AUTOFILLYN_BUYER"));
|
|
vm.payParams.Add("LGD_ESCROW_USEYN", GetConfig("LGD_ESCROW_USEYN"));
|
|
|
|
vm.payParams.Add("LGD_DOMAIN_URL", "xpayvvip");
|
|
vm.payParams.Add("LGD_CUSTOM_PROCESSTYPE", "TWOTR");
|
|
//vm.payParams.Add("LGD_CASHRECEIPTYN", GetConfig("LGD_CASHRECEIPTYN"));
|
|
vm.payParams.Add("LGD_CASHRECEIPTYN", "N");
|
|
if (Request["ptype"] == "3")
|
|
{
|
|
if (Request["iscashrct"] == "1")
|
|
{
|
|
vm.payParams["LGD_CASHRECEIPTYN"] = "Y";
|
|
vm.payParams.Add("LGD_DEFAULTCASHRECEIPTUSE", "1");
|
|
vm.payParams.Add("LGD_CASHRECEIPTUSE", "1");
|
|
vm.payParams.Add("LGD_CASHRECEIPTNUM", "1");
|
|
vm.payParams.Add("LGD_CASHCARDNUM", Request["cashrcthp"]);
|
|
}
|
|
vm.payParams.Add("LGD_CLOSEDATE", Request["LGD_CLOSEDATE"]);
|
|
}
|
|
String OSTYPE = Request["LGD_OSTYPE_CHECK"];
|
|
vm.payParams.Add("LGD_OSTYPE_CHECK", OSTYPE);
|
|
vm.payParams.Add("LGD_CUSTOM_SWITCHINGTYPE", Request["LGD_CUSTOM_SWITCHINGTYPE"]);
|
|
vm.payParams.Add("LGD_VERSION", Request["LGD_VERSION"]);
|
|
vm.payParams.Add("LGD_CUSTOM_SKIN", Request["LGD_CUSTOM_SKIN"]);
|
|
if (OSTYPE == "P")
|
|
{
|
|
vm.payParams.Add("LGD_WINDOW_TYPE", Request["LGD_WINDOW_TYPE"]);
|
|
vm.payParams.Add("LGD_CUSTOM_USABLEPAY", Request["LGD_CUSTOM_USABLEPAY"]);
|
|
}
|
|
else if (OSTYPE == "M")
|
|
{
|
|
vm.payParams.Add("CST_WINDOW_TYPE", Request["CST_WINDOW_TYPE"]);
|
|
vm.payParams.Add("LGD_PCVIEWYN", Request["LGD_PCVIEWYN"]);
|
|
vm.payParams.Add("LGD_CUSTOM_FIRSTPAY", Request["LGD_CUSTOM_FIRSTPAY"]);
|
|
|
|
//iOS 연동시 필수
|
|
vm.payParams.Add("LGD_MPILOTTEAPPCARDWAPURL", ""); //iOS 롯데앱카드 스키마 등록
|
|
|
|
/*
|
|
****************************************************
|
|
* 신용카드 ISP(국민/BC)결제에만 적용 - BEGIN
|
|
****************************************************
|
|
*/
|
|
vm.payParams.Add("LGD_KVPMISPWAPURL", "");
|
|
vm.payParams.Add("LGD_KVPMISPCANCELURL", "");
|
|
|
|
/*
|
|
****************************************************
|
|
* 신용카드 ISP(국민/BC)결제에만 적용 - END
|
|
****************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************
|
|
* 계좌이체 결제에만 적용 - BEGIN
|
|
****************************************************
|
|
*/
|
|
vm.payParams.Add("LGD_MTRANSFERWAPURL", "");
|
|
vm.payParams.Add("LGD_MTRANSFERCANCELURL", "");
|
|
|
|
/*
|
|
****************************************************
|
|
* 계좌이체 결제에만 적용 - END
|
|
****************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************
|
|
* 모바일 OS별 ISP(국민/비씨), 계좌이체 결제 구분 값
|
|
****************************************************
|
|
- 안드로이드: A (디폴트)
|
|
- iOS: N
|
|
- iOS일 경우, 반드시 N으로 값을 수정
|
|
*/
|
|
vm.payParams.Add("LGD_KVPMISPAUTOAPPYN", Request["LGD_KVPMISPAUTOAPPYN"]);
|
|
vm.payParams.Add("LGD_MTRANSFERAUTOAPPYN", Request["LGD_MTRANSFERAUTOAPPYN"]);
|
|
}
|
|
|
|
// (1) XpayClient의 사용을 위한 xpay 객체 생성
|
|
XPayClient xpay = new XPayClient();
|
|
|
|
// (2) Init: XPayClient 초기화(환경설정 파일 로드)
|
|
// configPath: 설정파일
|
|
// CST_PLATFORM: - test, service 값에 따라 lgdacom.conf의 test_url(test) 또는 url(srvice) 사용
|
|
// - test, service 값에 따라 테스트용 또는 서비스용 아이디 생성
|
|
xpay.Init(configPath, CST_PLATFORM);
|
|
|
|
/*
|
|
*************************************************
|
|
* 2. MD5 해쉬암호화 (수정하지 마세요) - BEGIN
|
|
*
|
|
* MD5 해쉬암호화는 거래 위변조를 막기위한 방법입니다.
|
|
*************************************************
|
|
*/
|
|
try
|
|
{
|
|
// (3) Init_TX: 메모리에 mall.conf, lgdacom.conf 할당 및 트랜잭션의 고유한 키 TXID 생성
|
|
xpay.Init_TX(LGD_MID);
|
|
LGD_TIMESTAMP = xpay.GetTimeStamp();
|
|
LGD_HASHDATA = xpay.GetHashData(LGD_MID, LGD_OID, LGD_AMOUNT, LGD_TIMESTAMP);
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
//LGD_HASHDATA 추출 오류
|
|
SetError(err.Message);
|
|
return null;
|
|
}
|
|
|
|
/*
|
|
*************************************************
|
|
* 2. MD5 해쉬암호화 (수정하지 마세요) - END
|
|
*************************************************
|
|
*/
|
|
|
|
vm.payParams.Add("LGD_TIMESTAMP", LGD_TIMESTAMP);
|
|
vm.payParams.Add("LGD_HASHDATA", LGD_HASHDATA);
|
|
|
|
//수정 불가 ( 인증 후 자동 셋팅 )
|
|
vm.payParams.Add("LGD_RESPCODE", "");
|
|
vm.payParams.Add("LGD_RESPMSG", "");
|
|
vm.payParams.Add("LGD_PAYKEY", "");
|
|
|
|
//nptech 추가 파라미터
|
|
vm.payParams.Add("items", Request["items"]);
|
|
vm.payParams.Add("pplno", Request["pplno"]);
|
|
vm.payParams.Add("rsMsg", "");
|
|
vm.payParams.Add("cmno", Request["cmno"]);
|
|
vm.payParams.Add("cmino", Request["CM.cmino"]);
|
|
vm.payParams.Add("cmisno", Request["CM.cmisno"]);
|
|
vm.payParams.Add("stringval", Request["stringval"]);
|
|
vm.payParams.Add("stringval2", Request["stringval2"]);
|
|
vm.payParams.Add("stringval3", Request["stringval3"]);
|
|
vm.payParams.Add("stringval4", Request["stringval4"]);
|
|
vm.payParams.Add("stringval5", Request["stringval5"]);
|
|
vm.payParams.Add("stringval6", Request["stringval6"]);
|
|
vm.payParams.Add("selMonth", Request["selMonth"]);
|
|
vm.payParams.Add("isCompany", Request["isCompany"]);
|
|
|
|
Session.Add("PAYREQ_MAP", vm.payParams);
|
|
//20220802 추가
|
|
vm.CM.cmino = lngTmp[0];
|
|
vm.CM.cmisno = lngTmp[1];
|
|
return View(vm);
|
|
}
|
|
public ActionResult XpayReturnURL(VMPay vm)
|
|
{
|
|
ViewBag.ismain = true;
|
|
String LGD_RESPCODE = Request["LGD_RESPCODE"];
|
|
String LGD_RESPMSG = Request["LGD_RESPMSG"];
|
|
|
|
//S053 사용자가 결제를 취소했습니다.
|
|
vm.payParams = new Hashtable();
|
|
vm.payParams = (Hashtable)Session["PAYREQ_MAP"];
|
|
vm.payParams.Remove("LGD_RESPCODE");
|
|
vm.payParams.Remove("LGD_RESPMSG");
|
|
vm.payParams.Add("LGD_RESPCODE", LGD_RESPCODE);
|
|
vm.payParams.Add("LGD_RESPMSG", LGD_RESPMSG);
|
|
|
|
if (LGD_RESPCODE == "0000")
|
|
{
|
|
vm.payParams.Remove("LGD_PAYKEY");
|
|
vm.payParams.Add("LGD_PAYKEY", Request["LGD_PAYKEY"]);
|
|
}
|
|
else
|
|
{
|
|
vm.payParams.Remove("rsMsg");
|
|
vm.payParams.Add("rsMsg", "[" + LGD_RESPCODE + "]" + LGD_RESPMSG);
|
|
SetError("[" + LGD_RESPCODE + "]" + LGD_RESPMSG);
|
|
}
|
|
|
|
return View(vm);
|
|
}
|
|
|
|
#region 교육과정소개
|
|
/// <summary>
|
|
/// 교육과정소개
|
|
/// </summary>
|
|
/// <param name="vm"></param>
|
|
/// <returns></returns>
|
|
public ActionResult Info(VMCourse vm)
|
|
{
|
|
var courseInfos = new List<CourseInfo>();
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.건설기술인_기본교육, CourseDescription = "건설기술인이 처음 건설업무를 수행하기 전 이수하여야 하는 의무교육" });
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.설계시공기술인교육, CourseDescription = "설계 또는 시공업무를 수행하는 건설기술인이 이수하여야 하는 교육" });
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.건설사업관리기술인교육, CourseDescription = "건설사업관리 업무를 수행하는 건설기술인이 이수하여야 하는 교육" });
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.품질관리기술인교육, CourseDescription = "품질관리 업무를 수행하는 건설기술인이 이수하여야 하는 교육" });
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.건설정책역량강화교육, CourseDescription = "스마트건설기술 또는 해외시장진출지원 등의 교육내용으로 학습하는 교육<br />※ 설계시공기술인교육, 건설사업관리기술인교육으로 인정가능<br />※ 교육가점 2점 적용" });
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.특성화전문교육, CourseDescription = "특정 주제에 대하여 심도 있는 교육 내용으로 학습하는 교육<br />※ 각 기술분야별(설계시공, 건설사업관리, 품질관리)교육으로 인정가능" });
|
|
courseInfos.Add(new CourseInfo() { CourseType = CourseType.전문분야교육, CourseDescription = "각 전문분야별로 특화된 내용을 학습하는 교육" });
|
|
|
|
|
|
foreach (var courseInfo in courseInfos)
|
|
{
|
|
courseInfo.CourseInfos = new List<CourseInfo>();
|
|
|
|
switch (courseInfo.CourseType)
|
|
{
|
|
case CourseType.건설기술인_기본교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 기본교육2(기본교육)", cmno = 1004 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 기본교육(기본교육)", cmno = 859 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 기본교육(기본교육)", cmno = 818 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 기본교육(기본교육)", cmno = 955 });
|
|
}
|
|
break;
|
|
case CourseType.설계시공기술인교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공기술인 최초 전문E교육(직무분야 교육)", cmno = 1026 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문D교육(직무분야 교육)", cmno = 826 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문D교육(직무분야 교육)", cmno = 866 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "발주청기술인 최초 전문교육(건설기술 분야 교육)", cmno = 907 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문B교육(직무분야 교육)", cmno = 824 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문A교육(직무분야 교육)", cmno = 823 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문C교육(직무분야 교육)", cmno = 825 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문C교육(직무분야 교육)", cmno = 865 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "발주청기술인 최초 전문교육(건설기술 분야 교육)", cmno = 860 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문A교육(직무분야 교육)", cmno = 861 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 최초 전문B교육(직무분야 교육)", cmno = 862 });
|
|
}
|
|
break;
|
|
case CourseType.건설사업관리기술인교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문D1-4교육(직무분야 교육)", cmno = 1057 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문D1-3교육(직무분야 교육)", cmno = 1028 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속B3 교육", cmno = 1006 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속B2 교육", cmno = 995 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속A3 교육", cmno = 993 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문D1-2교육(직무분야 교육)", cmno = 991 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속A2 교육", cmno = 989 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속C1 교육", cmno = 987 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속B1 교육", cmno = 985 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 필수계속A1 교육", cmno = 984 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문D1-1교육(직무분야 교육)", cmno = 978 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-4교육(직무분야 교육)", cmno = 837 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-3교육(직무분야 교육)", cmno = 836 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-2교육(직무분야 교육)", cmno = 835 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-1교육(직무분야 교육)", cmno = 834 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-4교육(직무분야 교육)", cmno = 887 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-3교육(직무분야 교육)", cmno = 886 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-2교육(직무분야 교육)", cmno = 885 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문C1-1교육(직무분야 교육)", cmno = 884 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리기술인 안전관리 계속교육(직무분야 교육)", cmno = 945 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-4교육(직무분야 교육)", cmno = 940 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리기술인 안전관리 계속교육(직무분야 교육)", cmno = 938 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리기술인 안전관리 계속교육(직무분야 교육)", cmno = 875 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-4교육(직무분야 교육)", cmno = 832 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-3교육(직무분야 교육)", cmno = 831 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-2교육(직무분야 교육)", cmno = 830 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-1교육(직무분야 교육)", cmno = 829 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-3교육(직무분야 교육)", cmno = 933 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-2교육(직무분야 교육)", cmno = 932 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-1교육(직무분야 교육)", cmno = 833 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-3교육(직무분야 교육)", cmno = 882 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-1교육(직무분야 교육)", cmno = 880 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-3교육(직무분야 교육)", cmno = 878 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-1교육(직무분야 교육)", cmno = 876 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-2교육(직무분야 교육)", cmno = 877 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문A1-4교육(직무분야 교육)", cmno = 879 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-2교육(직무분야 교육)", cmno = 881 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리 전문B1-4교육(직무분야 교육)", cmno = 883 });
|
|
}
|
|
break;
|
|
case CourseType.품질관리기술인교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 전문교육(특급)", cmno = 1054 });
|
|
//courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 기본교육", cmno = 872 });
|
|
//courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설사업관리기술인교육", cmno = 1052 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리기술인교육", cmno = 1050 });
|
|
//courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공기술인교육", cmno = 1048 });
|
|
//courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설정책역량강화교육", cmno = 1046 });
|
|
//courseInfo.CourseInfos.Add(new CourseInfo() { cname = "전문분야교육", cmno = 870 });
|
|
//courseInfo.CourseInfos.Add(new CourseInfo() { cname = "특성화전문교육", cmno = 869 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 초급 전문교육(직무분야 교육)", cmno = 868 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 최초 전문교육(직무분야 교육)", cmno = 867 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 특급 전문교육(직무분야 교육)", cmno = 937 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 초급 전문교육(직무분야 교육)", cmno = 934 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 중급 전문교육(직무분야 교육)", cmno = 827 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 고급 전문교육(직무분야 교육)", cmno = 828 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "품질관리 최초 전문교육(직무분야 교육)", cmno = 822 });
|
|
}
|
|
break;
|
|
case CourseType.건설정책역량강화교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트건설 전문[스마트 기술 건설현장 적용]교육(스마트건설기술교육)", cmno = 1044 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트건설 전문[스마트건설 정보화]교육(스마트건설기술교육)", cmno = 1014 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트 건설기술 전문2교육(스마트건설기술교육)", cmno = 954 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트 건설기술 전문2교육(스마트건설기술교육)", cmno = 857 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트건설전문[스마트공간정보활용]교육과정(스마트건설기술교육)", cmno = 1002 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트 건설기술 전문교육1(스마트건설기술교육)", cmno = 873 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트건설 전문[스마트건설 정보화]교육(스마트건설기술교육)", cmno = 963 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트건설 전문[스마트 기술 건설현장 적용]교육(스마트건설기술교육)", cmno = 961 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "스마트 건설기술 전문1교육(스마트건설기술교육)", cmno = 820 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "해외건설 프로젝트관리 전문교육(해외시장진출지원교육)", cmno = 874 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "해외건설 계약 및 클레임 전문교육(해외시장진출지원교육)", cmno = 947 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "해외건설 공정관리 전문교육(해외시장진출지원교육)", cmno = 944 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "해외건설 프로젝트관리 전문교육(해외시장진출지원교육)", cmno = 935 });
|
|
}
|
|
break;
|
|
case CourseType.특성화전문교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "토질·지질 특성화 과정(특성화 전문교육)", cmno = 855 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "토질·지질 특성화 과정(특성화 전문교육)", cmno = 952 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "VE전문 교육(특성화 전문교육)", cmno = 888 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "VE전문 교육(특성화 전문교육)", cmno = 941 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "안전관리 전문 교육(특성화 전문교육)", cmno = 950 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "안전관리 전문 교육(특성화 전문교육)", cmno = 951 });
|
|
}
|
|
break;
|
|
case CourseType.전문분야교육:
|
|
{
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문C2교육(심화수준)(전문분야교육)", cmno = 1013 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문C1교육(심화수준)(전문분야교육)", cmno = 1010 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B3교육(심화수준)(전문분야교육)", cmno = 1040 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B3교육(일반수준)(전문분야교육)", cmno = 1038 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A4교육(심화수준)(전문분야교육)", cmno = 1036 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A4교육(일반수준)(전문분야교육)", cmno = 1034 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A3교육(심화수준)(전문분야교육)", cmno = 1032 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B2교육(일반수준)(전문분야교육)", cmno = 1021 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문D1교육(심화수준)(전문분야교육)", cmno = 1024 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B2교육(심화수준)(전문분야교육)", cmno = 1022 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A2교육(심화수준)(전문분야교육)", cmno = 1020 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A5교육(심화수준)(전문분야교육)", cmno = 1017 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A2교육(일반수준)(전문분야교육)", cmno = 1019 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A5교육(일반수준)(전문분야교육)", cmno = 1016 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A3교육(일반수준)(전문분야교육)", cmno = 1015 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문G1교육(심화수준)(전문분야교육)", cmno = 1018 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B1교육(심화수준)(전문분야교육)", cmno = 1009 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B1교육(일반수준)(전문분야교육)", cmno = 1008 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A1교육(일반수준)(전문분야교육)", cmno = 979 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A1교육(심화수준)(전문분야교육)", cmno = 1007 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A1교육(일반수준)(전문분야교육)", cmno = 839 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 전문K1교육(심화수준)(전문분야교육)", cmno = 999 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "설계시공 전문A5교육(심화수준)(전문분야교육)", cmno = 997 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A3교육(일반수준)(전문분야교육)", cmno = 847 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문D1교육(일반수준)(전문분야교육)", cmno = 851 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A2교육(일반수준)(전문분야교육)", cmno = 843 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A4교육(일반수준)(전문분야교육)", cmno = 891 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A4교육(심화수준)(전문분야교육)", cmno = 893 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문J1교육(심화수준)(전문분야교육)", cmno = 897 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B1교육(심화수준)(전문분야교육)", cmno = 901 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B2교육(심화수준)(전문분야교육)", cmno = 905 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문E1교육(일반수준)(전문분야교육)", cmno = 909 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문E1교육(심화수준)(전문분야교육)", cmno = 911 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문F1교육(일반수준)(전문분야교육)", cmno = 913 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문F1교육(심화수준)(전문분야교육)", cmno = 915 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문F2교육(일반수준)(전문분야교육)", cmno = 917 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문C1교육(일반수준)(전문분야교육)", cmno = 921 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문F2교육(심화수준)(전문분야교육)", cmno = 919 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문G1교육(일반수준)(전문분야교육)", cmno = 925 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문G1교육(심화수준)(전문분야교육)", cmno = 927 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문H1교육(일반수준)(전문분야교육)", cmno = 929 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문H1교육(심화수준)(전문분야교육)", cmno = 931 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A1교육(심화수준)(전문분야교육)", cmno = 841 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문J1교육(일반수준)(전문분야교육)", cmno = 895 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A2교육(심화수준)(전문분야교육)", cmno = 845 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A3교육(심화수준)(전문분야교육)", cmno = 849 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문C1교육(심화수준)(전문분야교육)", cmno = 923 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B1교육(일반수준)(전문분야교육)", cmno = 899 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B2교육(일반수준)(전문분야교육)", cmno = 903 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문D1교육(심화수준)(전문분야교육)", cmno = 853 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문B3교육(일반수준)(전문분야교육)", cmno = 974 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문C2교육(심화수준)(전문분야교육)", cmno = 976 });
|
|
courseInfo.CourseInfos.Add(new CourseInfo() { cname = "건설기술인 전문A5교육(일반수준)(전문분야교육)", cmno = 975 });
|
|
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
foreach (var courseInfoSub in courseInfo.CourseInfos)
|
|
{
|
|
courseInfoSub.CourseType = courseInfo.CourseType;
|
|
courseInfoSub.CourseDescription = courseInfo.CourseDescription;
|
|
}
|
|
}
|
|
|
|
vm.courseInfos = courseInfos;
|
|
|
|
if (vm.cmno > 0)
|
|
{
|
|
vm.CM = Dao.Get<CM>("cm.cm", new System.Collections.Hashtable() { { "cmno", vm.cmno }, { "htmlcolumns", ",a.introhtml,a.targethtml,a.goalhtml,a.contenthtml,a.studyplace,cc.cname studyplacename" } }).FirstOrDefault();
|
|
}
|
|
|
|
return View(vm);
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|