using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Web.Mvc; using NP.Model; using NP.Base.Popbill; using Popbill.Taxinvoice; using System.Collections; namespace NP.BO.Controllers { public class croomController : BOBaseController { public ActionResult lectreg(NP.Model.VMCM vm) { vm.IsAdmin = SUserInfo.IsAdmin; vm.IsSiteAdmin = SUserInfo.IsSiteAdmin; return View(vm); } public ActionResult lectcms(VMCM vm) { if (!IsPost()) { vm.stringval5 = null; vm.stringval6 = null; } var ht = SetHash(vm, false); if (string.IsNullOrEmpty(vm.stringval)) { vm.stringval = DateTime.Now.Year.ToString(); } ht.Add("tyear", !string.IsNullOrEmpty(vm.stringval2) ? null : vm.stringval); ht.Add("tmno", vm.stringval2); ht.Add("cshape", vm.stringval3); ht.Add("cnamelike", vm.stringval4); ht.Add("islect", "1"); ht.Add("sstime", vm.stringval5); ht.Add("setime", vm.stringval6); ht.Add("isallday", "1"); vm.CMs = Dao.Get("lect.cms", ht); vm.pagetotalcount = GetCount(vm.CMs.FirstOrDefault()); vm.Terms = Dao.Get("cm.term.ys", new System.Collections.Hashtable() { }); return View(vm); } public ActionResult certs(VMCM vm) { vm.Exams = InitM(); switch (vm.tabidx) { case 0: var ht = SetHash(vm); ht.Add("status", vm.stringval); ht.Add("ename", vm.stringval2); vm.Exams = Dao.Get("exam.exams", ht); vm.pagetotalcount = GetCount(vm.Exams.FirstOrDefault()); break; case 1: break; } return View(vm); } public ActionResult certr(VMCM vm) { vm.FileList = new List() { }; if (vm.intval > 0) { vm.Exam = Dao.Get("exam.exams", new System.Collections.Hashtable() { { "exno", vm.intval } }).First(); var fgnos = ""; if (vm.Exam.fgno != null) { fgnos += "," + vm.Exam.fgno; } if (fgnos != "") { vm.FileList = GetFiles(fgnos.Substring(1)); } } else { vm.Exam = new Exam() { isopen = 1 }; } vm.CGs = Dao.Get("cm.cgs", new System.Collections.Hashtable() { { "isdel", 0 }, { "isuse", 1 } }); ViewBag.TestCode = TestCode; ViewBag.TestCode2 = TestCode2; vm.ComCodes = GetComCodes("cert,certgrade"); return View(vm); } public ActionResult certreception(VMCM vm) { vm.Exam = Dao.Get("exam.exams", new System.Collections.Hashtable() { { "exno", vm.intval } }).First(); vm.ExamUsers = Dao.Get("exam.examusers", new System.Collections.Hashtable() { { "exno", vm.intval }, { "pstatus" + (vm.addstringval == "4" ? "24" : vm.addstringval == "8" ? "89" : ""), vm.addstringval } }); vm.ComCodes = GetComCodes("cert,certgrade"); vm.Assigns = Dao.Get("users.assigns", new System.Collections.Hashtable() { { "issite", 1 } }); return View(vm); } public ActionResult certresult(VMCM vm) { vm.Exam = Dao.Get("exam.exams", new System.Collections.Hashtable() { { "exno", vm.intval } }).First(); vm.ExamUsers = Dao.Get("exam.examusers", new System.Collections.Hashtable() { { "exno", vm.intval }, { "ispass", vm.addstringval2 }, { "resultview", 1 }, { "pstatus", 1 } }); vm.ComCodes = GetComCodes("cert,certgrade"); return View(vm); } public ActionResult examdatareg(VMCM vm) { vm.Exam = Dao.Get("exam.exams", new System.Collections.Hashtable() { { "exno", vm.intval } }).First(); return View(vm); } public ActionResult certprint(VMCM vm) { vm.Exam = Dao.Get("exam.exams", new System.Collections.Hashtable() { { "exno", vm.intval } }).First(); vm.ExamUsers = Dao.Get("exam.examusers", new System.Collections.Hashtable() { { "exno", vm.intval }, { "usernos", vm.addstringval3 }, { "ispass", 1 } }); vm.ExamUserRenews = Dao.Get("exam.examuserrenews", new System.Collections.Hashtable() { { "exno", vm.intval }, { "usernos", vm.addstringval3 }, { "isprint", 1 } }); vm.ComCodes = GetComCodes("cert,certgrade"); return View(vm); } public ActionResult cddlist(VMCM vm) { vm.Exams = Dao.Get("exam.exams", new System.Collections.Hashtable() { { "status", 4 } }); vm.pagerowcount = 100; var ht = SetHash(vm); ht.Add("certcc", vm.intval2); ht.Add("certgradecc", vm.intval3); ht.Add("searchcon", vm.stringval5); ht.Add("cnamelike", vm.stringval6); ht.Add("ispass", 1); ht.Add("pstatus", 1); ht.Add("certdate", vm.stringval7); ht.Add("certindate", vm.stringval4); vm.ExamUsers = Dao.Get("exam.examusers", ht); vm.pagetotalcount = GetCount(vm.ExamUsers.FirstOrDefault()); vm.ComCodes = GetComCodes("cert,certgrade"); return View(vm); } public ActionResult cmlects(VMCM vm) { if (vm.addstringval4 == null) { vm.addstringval4 = "2099-12-31"; } //검색조건 var ht = new System.Collections.Hashtable() { { "cmno", vm.intval} }; ht.Add("isready", 0); //0:신청중; 2:수강중; 3:수강취소 //0:결제대기; 1:입금대기; 2:결제완료; 3:결제취소; 4:환불신청; 5:부분환불; 6:전액환불 if (vm.addstringval == "8") { ht.Add("statusin", "5,8,9"); }else if(vm.addstringval == "3") { ht.Add("statusin", "1,2,3,4"); } else { ht.Add("status", vm.addstringval); } ht.Add("paystatusnotin", "0,42,52,66"); switch (vm.addstringval2) { case "0": ht.Add("paystatus", 21); break; case "1": ht.Add("paystatus", 22); break; case "2": ht.Add("paystatus", 1); ht.Add("rstatus", 0); break; case "3": ht.Add("paystatus", 41); break; case "4": ht.Add("refundcall", 1); break; case "5": ht.Add("rstatus", 1); break; case "6": ht.Add("rstatus", 2); break; default: break; } if (vm.isexceldown == 1) { vm.Lects = Dao.Get("lect.lects.att",ht); return ExportExcel( new String[] { "고객사", "이름","직위", "교육생ID", "이메일", "전화번호", "휴대폰번호", "신청일", "수강상태", "결제상태" , "교육일", "기술인구분","직무분야","교육목적","등급"}, new String[] { "asname", "username", "uduty", "userid", "email", "telno", "mobile", "cdtymd", "statusname", "pstatusname", "estartstring", "typemanname", "typejobname", "typeeduname", "typegradename" }, vm.Lects, "신청자명단"); } else { if (vm.intval < 1) { return Redirect("/croom/lectcms"); } ViewBag.TestCode = TestCode; vm.CM = Dao.Get("cm.cm", new System.Collections.Hashtable() { { "cmno", vm.intval } }).First(); ht.Remove("cmno"); ht.Add("cmno", vm.CM.cmno); if (vm.addstringval4 != "2099-12-31") { ht.Add("scdestart", vm.addstringval4); } ht.Add("searchtext", vm.addstringval5); vm.Lects = Dao.Get("lect.lects", ht); } vm.ComCodes = GetComCodes("typeman,typeedu,typegrade,typejob"); return View(vm); } public ActionResult asrpop(VMCM vm) { vm.FileList = new List() { }; vm.Assign = new Assign() { isjoin = 1, status = 1 }; if (vm.intval > 0) { vm.Assign = Dao.Get("users.assigns2", new System.Collections.Hashtable() { { "asno", vm.intval }, { "excel1", ",a.post" }, { "orderby", "a.asname" } }).First(); LogSet(new ActLog() { logtype = 50, logtarget = 31, logdata = vm.Assign.asname, userno = vm.Assign.asno, uno = SUserInfo.UserNo, uip = GetUserIP() }); var fnos = ""; if ((vm.Assign.fgnobno ?? 0) > 0) { fnos += vm.Assign.fgnobno.Value.ToString(); } if ((vm.Assign.fgnobank ?? 0) > 0) { fnos += "," + vm.Assign.fgnobank.Value.ToString(); } if (fnos != "") { vm.FileList = GetFiles(fnos.StartsWith(",") ? fnos.Substring(1) : fnos); } } else { vm.Assign.ascode = Dao.Get("users.assign.newascode", 1).First(); } return View(vm); } public ActionResult cmstandbylects(VMCM vm) { //대기승인 시점으로부터 48시간이 지났음에도 '결제대기' 상태일 경우 취소처리 Dao.Save("lect.drop2day", new System.Collections.Hashtable() { { "cmno", vm.intval }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }); vm.CM = Dao.Get("cm.cm", new System.Collections.Hashtable() { { "cmno", vm.intval } }).First(); vm.pagerowcount = 100; var ht = SetHash(vm); ht.Add("cmno", vm.CM.cmno); ht.Add("isready", 1); //0:신청중; 2:수강중; 3:수강취소 //0:결제대기; 1:입금대기; 2:결제완료; 3:결제취소; 4:환불신청; 5:부분환불; 6:전액환불 if (vm.addstringval == "4") { ht.Add("statusin", "0,2,4"); } else if (vm.addstringval == "5") { ht.Add("statusin", "5,8,9"); } else if (vm.addstringval == "3") { ht.Add("statusin", "6"); } else { ht.Add("status", vm.addstringval); } ht.Add("paystatusnotin", "0,42,66"); switch (vm.addstringval2) { case "0": ht.Add("paystatus", 21); break; case "1": ht.Add("paystatus", 22); break; case "2": ht.Add("paystatus", 1); ht.Add("rstatus", 0); break; case "3": ht.Add("paystatus", 41); break; case "4": ht.Add("refundcall", 1); break; case "5": ht.Add("rstatus", 1); break; case "6": ht.Add("rstatus", 2); break; case "7": ht.Add("paystatus", 53); break; default: break; } ht.Remove("searchtext"); ht.Add("searchtext", vm.addstringval5); vm.Lects = Dao.Get("lect.lects", ht); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); vm.ComCodes = GetComCodes("typeman,typeedu,typegrade,typejob"); return View(vm); } public ActionResult cmlectattprint(VMCM vm) { ViewBag.PopupMenuName = "출석부출력"; vm.CM = Dao.Get("cm.cm", new System.Collections.Hashtable() { { "cmno", vm.intval } }).First(); vm.Lects = Dao.Get("lect.lects.att", new System.Collections.Hashtable() { { "status", 1 }, { "cmno", vm.CM.cmno } }); return View(vm); } public ActionResult encourages(VMLect vm) { vm.stringval = vm.stringval ?? DateTime.Now.Year.ToString(); vm.stringval13 = vm.stringval13 ?? "username"; vm.Lects = new List() { }; vm.CMs = new List() { }; if (IsPost()) { vm.Lects = Dao.Get("grade.lectgrades", new System.Collections.Hashtable(){ {"tmno", vm.stringval2 }, {"cgno", vm.stringval3}, {"cmno", vm.stringval4}, { "attrateunder", vm.stringval5}, { "est1not", vm.stringval6}, { "est2not", vm.stringval7}, { "est11not", vm.stringval8},{ "est12not", vm.stringval9}, { "est21not", vm.stringval10}, { "isrebate", vm.stringval11=="1"&&vm.stringval12==null?1:vm.stringval11==null&&vm.stringval12=="p1"?0:(int?)null}, {"cshapes", "0,2" }, {"cname",vm.stringval15}, {vm.stringval13, vm.stringval14}}); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); vm.CMs = Dao.Get("cm.cms", new System.Collections.Hashtable() { { "tmno", vm.stringval2 }, { "cgno", vm.stringval3 }, { "cshapes", "0,2" }, { "ismaster", 0 }}); foreach (var d in vm.CMs) { d.text = string.Format("{0}({1})", d.text, d.classno); } } vm.Terms = Dao.Get("cm.term.ys", new System.Collections.Hashtable() { }); vm.CGs = Dao.Get("cm.cgs", new System.Collections.Hashtable() { { "isdel", 0 }, { "issecond", 1 } }); vm.EmailSend = new EmailSend() { }; return View(vm); } public ActionResult encourageset(VMLect vm) { vm.SCDLects = Dao.Get("lect.scdlects", new System.Collections.Hashtable() { }); return View(vm); } public ActionResult rss(VMLect vm) { var ht = SetHash(vm, false); ht.Add("tyear", !string.IsNullOrEmpty(vm.stringval2) ? null : vm.stringval); ht.Add("tmno", vm.stringval2); ht.Add("cshape", vm.stringval3); ht.Add("rstype", vm.stringval4); ht.Add("cnamelike", vm.stringval5); vm.CMRSs = Dao.Get("lect.cmrss", ht); vm.pagetotalcount = GetCount(vm.CMRSs.FirstOrDefault()); vm.Terms = Dao.Get("cm.term.ys", new System.Collections.Hashtable() { }); return View(vm); } public ActionResult rsv(VMLect vm) { vm.CMRS = Dao.Get("lect.cmrs", vm.intval).First(); if (vm.isexceldown == 1) { vm.RSCQs = Dao.Get("lect.rscq", vm.CMRS.rscno); vm.LectRSs = Dao.Get("lect.lectrss", vm.CMRS.rsno); var ccnt = vm.RSCQs.Select(s => s.rscqno).Distinct().Count(); using (System.IO.StringWriter sw = new System.IO.StringWriter()) { using (System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw)) { // Create a form to contain the List System.Web.UI.HtmlControls.HtmlTable table = new System.Web.UI.HtmlControls.HtmlTable(); System.Web.UI.HtmlControls.HtmlTableRow row = new System.Web.UI.HtmlControls.HtmlTableRow(); System.Web.UI.HtmlControls.HtmlTableCell hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.ColSpan = ccnt + 6; hcell.InnerText = "● 과정정보 : " + string.Format("{0} | {1} | {2} | {3}반", vm.CMRS.tmname, vm.CMRS.cshapename, vm.CMRS.cname, vm.CMRS.classno); row.Cells.Add(hcell); table.Rows.Add(row); row = new System.Web.UI.HtmlControls.HtmlTableRow(); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.ColSpan = ccnt + 6; hcell.InnerText = "● 설문종류/설문지 : " + string.Format("{0} / {1}", vm.CMRS.rstypename, vm.CMRS.rscname); row.Cells.Add(hcell); table.Rows.Add(row); row = new System.Web.UI.HtmlControls.HtmlTableRow(); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.ColSpan = ccnt + 6; hcell.InnerText = "● 설문참여/대상 : " + string.Format("{0} / {1} ({2}%)", vm.CMRS.countok, vm.CMRS.countlect, (vm.CMRS.countok / (vm.CMRS.countlect * 1.0)).ToString("#,0.#")); row.Cells.Add(hcell); table.Rows.Add(row); row = new System.Web.UI.HtmlControls.HtmlTableRow(); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = "고객사"; hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = "이름"; hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = "ID"; hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = "직급"; hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = "신청구분"; hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = "설문참여일시"; hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); for (var i = 0; i < ccnt; i++) { hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = (i + 1).ToString(); hcell.BgColor = "gray"; hcell.Align = "center"; row.Cells.Add(hcell); } table.Rows.Add(row); foreach (var lectno in vm.LectRSs.Select(s => s.lectno).Distinct()) { var u = vm.LectRSs.Where(w => w.lectno == lectno).First(); row = new System.Web.UI.HtmlControls.HtmlTableRow(); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = u.asname; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = u.username; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = u.userid; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = u.ccpositionname; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = u.isrebatename; row.Cells.Add(hcell); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell.InnerText = u.cdtymdhm; row.Cells.Add(hcell); foreach (var rscqno in vm.RSCQs.Select(s => s.rscqno).Distinct()) { var q = vm.RSCQs.Where(w => w.rscqno == rscqno).First(); hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); if (q.atype == 2 && vm.LectRSs.Where(w=>w.lectno == lectno && w.rscqno == rscqno).Count() > 0) { hcell.InnerText = vm.LectRSs.Where(w => w.lectno == lectno && w.rscqno == rscqno).First().atext ?? ""; } else { if(vm.RSCQs.Where(w=>w.rscqno == rscqno).Count() > 0 && vm.LectRSs.Where(w2 => w2.lectno == lectno && w2.rscqno == rscqno).Count() > 0) { hcell.InnerHtml = string.Join(",", vm.RSCQs.Where(w => w.rscqno == rscqno && string.Format(",{0},", vm.LectRSs.Where(w2 => w2.lectno == lectno && w2.rscqno == rscqno).First().atext ?? "") .Contains(string.Format(",{0},", w.qino))).Select(s => s.rno)); } } hcell.Align = "left"; row.Cells.Add(hcell); } table.Rows.Add(row); } table.RenderControl(htw); Response.ClearContent(); Response.AddHeader("content-disposition", "attachment;filename=Research.xls"); Response.AddHeader("Content-Type", "application/vnd.ms-excel"); Response.Output.Write(sw.ToString()); Response.End(); return null; } } } else { vm.RSCQs = Dao.Get("lect.cmrscqs", vm.CMRS.rsno); return View(vm); } } public ActionResult deliveries(VMLect vm) { var ht = SetHash(vm, false); if (!IsPost()) { vm.stringval = vm.stringval2 = DateTime.Now.ToString("yyyy-MM-dd"); } ht.Add("payokstime", !string.IsNullOrEmpty(vm.stringval2) && string.IsNullOrEmpty(vm.stringval) ? "1900-01-01" : vm.stringval); ht.Add("payoketime", !string.IsNullOrEmpty(vm.stringval) && string.IsNullOrEmpty(vm.stringval2) ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : string.IsNullOrEmpty(vm.stringval2) ? null : string.Format("{0} 23:59:59", vm.stringval2)); ht.Add("isdvr", vm.stringval3); ht.Add("isdvrcode" + vm.stringval4, 1); vm.stringval5 = vm.stringval5 ?? "all"; ht.Add(vm.stringval5, vm.stringval6); vm.PayDVRs = Dao.Get("pay.paydvrs", ht); vm.pagetotalcount = GetCount(vm.PayDVRs.FirstOrDefault()); vm.stringval20 = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddDays(-14).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd"); return View(vm); } public ActionResult edub2bs(VMLect vm) { var ht = SetHash(vm, false); vm.EduB2Bs = Dao.Get("lect.edub2bs", ht); vm.pagetotalcount = GetCount(vm.EduB2Bs.FirstOrDefault()); return View(vm); } public ActionResult edub2b(VMLect vm) { vm.EduB2B = Dao.Get("lect.edub2bs", new System.Collections.Hashtable() { { "eduno", vm.intval } }).First(); vm.FileList = new List() { }; if (vm.EduB2B.fgno != null) { vm.FileList = GetFiles(vm.EduB2B.fgno.Value); } return View(vm); } public ActionResult attoffs(VMLect vm) { vm.stringval = vm.stringval ?? DateTime.Now.ToString("yyyy-MM-dd"); vm.CMInnings = Dao.Get("lect.attoffs", vm.stringval); vm.pagetotalcount = GetCount(vm.CMInnings.FirstOrDefault()); return View(vm); } public ActionResult attoff(VMLect vm) { vm.CMInning = Dao.Get("lect.cminning", vm.longval).First(); vm.LectInnings = Dao.Get("lect.lectinnings.foratt", vm.CMInning.cmino); vm.pagetotalcount = GetCount(vm.LectInnings.FirstOrDefault()); return View(vm); } public ActionResult grades(NP.Model.VMCM vm) { var ht = SetHash(vm, false); ht.Add("tyear", !string.IsNullOrEmpty(vm.stringval2) ? null : vm.stringval); ht.Add("tmno", vm.stringval2); ht.Add("cshape", vm.stringval3); if (vm.stringval4 == "0") { ht.Add("nocomplete", 1); } else if (vm.stringval4 == "1") { ht.Add("hascomplete", 1); } else if (vm.stringval4 == "3") { ht.Add("result", 1); } else if (vm.stringval4 == "4") { ht.Add("noresult", 1); } ht.Add("cnamelike", vm.stringval5); vm.IsAdmin = SUserInfo.IsAdmin; if (SUserInfo.IsTeacher) { ht.Add("profno", SUserInfo.UserNo); } ht.Add("status", 1); vm.CMs = Dao.Get("lect.cms", ht); vm.pagetotalcount = GetCount(vm.CMs.FirstOrDefault()); vm.Terms = Dao.Get("cm.term.ys", new System.Collections.Hashtable() { }); vm.IsProf = SUserInfo.IsTeacher; return View(vm); } public ActionResult grade(VMLect vm) { vm.CM = Dao.Get("cm.cms", new System.Collections.Hashtable { { "cmno", vm.intval } }).First(); vm.IsAdmin = SUserInfo.IsAdmin; switch (vm.tabidx) { case 0: { ViewBag.fronturl = GetConfig("fronturl"); ViewBag.reporturl = GetConfig("reporturl"); if (Dao.Get("cm.cmev", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }).Count > 0) { vm.CMEV = Dao.Get("cm.cmev", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }).First(); } else { vm.CMEV = new CMEV() { }; } vm.Lects = Dao.Get("grade.lectgrades", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "orderby", "ua.asname,ua.asno,u.username" } }); } break; case 1: { vm.Lects = Dao.Get("lect.atts", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "status", 1 }, { "ustatus", 1 }, { "isrebate", vm.addstringval } }); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); vm.CMInnings = Dao.Get("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 } }); } break; case 2: case 3: { vm.CMEXes = Dao.Get("cm.cmexes", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "extype", vm.tabidx == 2 ? 0 : 1 } }); vm.LectEXes = new List() { }; if (vm.CMEXes.Count() > 0) { vm.LectEXes = Dao.Get("lect.lectexes", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "exno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMEXes.First().exno }, { "isrebate", vm.addstringval2 }, { "estate", vm.addstringval3 } }); } vm.pagetotalcount = GetCount(vm.LectEXes); } break; case 4: { vm.CMSDs = Dao.Get("cm.cmsds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdtype", 0 } }); vm.LectSDs = new List() { }; vm.FileList = new List() { }; var fgnos = string.Join(",", vm.CMSDs.Where(w => w.fgno != null).Select(s => s.fgno.Value)); if (!string.IsNullOrEmpty(fgnos)) { vm.FileList = GetFiles(fgnos); } if (vm.CMSDs.Count() > 0) { vm.LectSDs = Dao.Get("lect.lectsds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMSDs.First().sdno }, { "isrebate", vm.addstringval2 }, { "sdstate", vm.addstringval3 } }); } vm.pagetotalcount = GetCount(vm.LectSDs); } break; case 5: { vm.CMSDs = Dao.Get("cm.cmsds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdtype", 1 } }); vm.LectSDs = new List() { }; vm.FileList = new List() { }; var fgnos = string.Join(",", vm.CMSDs.Where(w => w.fgno != null).Select(s => s.fgno.Value)); if (!string.IsNullOrEmpty(fgnos)) { vm.FileList = GetFiles(fgnos); } if (vm.CMSDs.Count() > 0) { var _ht = new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMSDs.First().sdno }, { "isrebate", vm.addstringval2 } }; if (!string.IsNullOrEmpty(vm.addstringval3)) { _ht.Add("dcount", "=" + vm.addstringval3); if (vm.addstringval3 == "3") { _ht["dcount"] = ">2"; } } vm.LectSDs = Dao.Get("lect.lectdiscusses", _ht); } vm.pagetotalcount = GetCount(vm.LectSDs); } break; default: break; } return View(vm); } public ActionResult atts(VMLect vm) { vm.Lect = Dao.Get("lect.lects", new System.Collections.Hashtable() { { "lectno", vm.longval } }).First(); vm.LectInningPages = Dao.Get("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno } }); vm.PageLogs = Dao.Get("lect.pagelogs", new System.Collections.Hashtable() { { "start", vm.Lect.sstime }, { "end", vm.Lect.setime.Value.ToString("yyyy-MM-dd 23:59:59") }, { "userno", vm.Lect.userno }, { "logsite", 1 } }); return View(vm); } public ActionResult pay(VMCRoom vm) { var ht = SetHash(vm, false); if (!IsPost()) { vm.pagerowcount = 50; vm.stringval = DateTime.Now.ToString("yyyy-MM-01"); vm.stringval2 = Convert.ToDateTime(vm.stringval).AddMonths(1).AddSeconds(-1).ToString("yyyy-MM-dd"); } ht.Add("cdts", vm.stringval); ht.Add("cdte", string.IsNullOrEmpty(vm.stringval2) ? null : (vm.stringval2 + " 23:59:59")); //ht.Add("pstatusin", vm.stringval3); //ht.Add("isrefundcall", string.IsNullOrEmpty(vm.stringval4) ? null : "1"); //ht.Add("rstatusin", vm.stringval5); String pstatusall = null; if (vm.stringval3 != null) { pstatusall = " and ((p.pstatus in (" +vm.stringval3+") and pr.rstatus is null and p.rstatus = 0)"; } if (vm.stringval4 != null) { pstatusall = pstatusall == null ? "and ((pr.rfdno is not null and pr.rstatus = 0)" : (pstatusall + " or (pr.rfdno is not null and pr.rstatus = 0)"); } if ((vm.stringval5??"").Contains("1")) { pstatusall = pstatusall == null ? "and ((pi.rstatus=1 and p.payamt>p.refundamt)" : (pstatusall + " or (pi.rstatus=1 and p.payamt>p.refundamt)"); } if ((vm.stringval5 ?? "").Contains("2")) { pstatusall = pstatusall == null ? "and ((p.rstatus > 0 and p.payamt=p.refundamt)" : (pstatusall + " or (p.rstatus > 0 and p.payamt=p.refundamt)"); } pstatusall = pstatusall == null ? pstatusall : pstatusall + ")"; ht.Add("isunpay", vm.stringval18); ht.Add("pstatusall", pstatusall); ht.Add("ptypein", vm.stringval7); ht.Add("isjoin", vm.stringval8); ht.Add("asname", vm.stringval9); ht.Add("brno", string.IsNullOrEmpty(vm.stringval10) ? null : vm.stringval10.Replace("-", "")); ht.Add("piptype", vm.stringval11); ht.Add("cshape", vm.stringval12); ht.Add("pcgno", vm.stringval13); ht.Add("isrebates", vm.stringval14); ht.Add("certcode", TestCode1); if (!string.IsNullOrEmpty(vm.stringval16)) { ht.Add(vm.stringval15 ?? "usernameiditemname", vm.stringval16); } ht.Add("isgroup", vm.stringval17); ht.Add("estart", vm.stringval20); ht.Add("eend", string.IsNullOrEmpty(vm.stringval21) ? null : (vm.stringval21 + " 23:59:59")); ht.Add("studyplace", vm.stringval22); vm.PayItems = Dao.Get("cr.payitems", ht); vm.pagetotalcount = GetCount(vm.PayItems.FirstOrDefault()); vm.CGs = Dao.Get("cm.cgs", new System.Collections.Hashtable() { { "istop", 1 }, { "isdel", 0 }, { "isuse", 1 } }); vm.ComCodes = GetComCodes("typeman,typeedu,typegrade,typejob,studyplace"); vm.stringval19 = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddDays(-14).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd"); if (vm.isexceldown == 1) { return ExportExcel( new String[] { "결제번호", "신청자이름", "ID", "회사명", "상품구분", "상품유형","환급여부", "상품명", /*"교육일정",*/ "결제금액", "결제방법", "입금금액", "환불금액", "신청일", "입금일", "결제상태" ,"환급은행명","환급계좌번호","환급예금주"}, new String[] { "payno", "username", "userid", "asname", "ptypename","isrebatename", "itemname", /*"stimeymd",*/ "payamt", "pptypename", "payamt", "refundamt", "cdtymd", "payymd", "pstatusname2" ,"rbankname","rbankacc","rbankowner"}, vm.PayItems, "ProductSales_"+DateTime.Now.Year+DateTime.Now.Month+DateTime.Now.Day); } return View(vm); } public ActionResult payview(VMPay vm) { if (!IsPost()) { LogSet(new ActLog() { logtype = 60, logtarget = 41, logdata = "결제번호: "+vm.payno, uno = SUserInfo.UserNo, uip = GetUserIP() }); } if (vm.isexamready == 1) { //자격증시험 승인상태의 데이터(수동결제완료처리 용도) vm.Pay = Dao.Get("cr.payforexam1", new System.Collections.Hashtable() { { "userno", vm.userno }, { "exno", vm.payno } }).First(); vm.PayItems = Dao.Get("cr.payforexam2", new System.Collections.Hashtable() { { "userno", vm.userno }, { "exno", vm.payno } }); } else { vm.Pay = Dao.Get("cr.pay1", vm.payno).First(); vm.PayItems = Dao.Get("cr.pay2", vm.payno); } return View(vm); } public ActionResult payrefund(VMPay vm) { vm.Pay = Dao.Get("cr.pay.forrfd", vm.payno).First(); vm.PayItems = Dao.Get("cr.payitem.forrfd", vm.payno); vm.PayRfds = Dao.Get("cr.payrfditems", vm.payno); return View(vm); } public ActionResult refundview(VMPay vm) { vm.Pay = Dao.Get("cr.pay.forrfd", vm.payno).First(); vm.PayItems = Dao.Get("cr.payitem.forrfd", vm.payno); vm.PayRfds = Dao.Get("cr.payrfditems2", vm.rfdno); vm.FileList = new List() { }; vm.FileList2 = new List() { }; if ((vm.PayRfds.First().fgnor??0) > 0) { vm.FileList = GetFiles(vm.PayRfds.First().fgnor.Value); } if ((vm.PayRfds.First().fgnob??0) > 0) { vm.FileList2 = GetFiles(vm.PayRfds.First().fgnob.Value); } return View(vm); } public ActionResult refundprint(VMPay vm) { vm.Pay = Dao.Get("cr.pay.forrfd", vm.payno).First(); vm.PayItems = Dao.Get("cr.payitem.forrfd", vm.payno); vm.PayRfds = Dao.Get("cr.payrfditems2", vm.rfdno); return View(vm); } public ActionResult tax(VMCRoom vm) { var ht = SetHash(vm, false); if (!IsPost()) { vm.stringval = DateTime.Now.ToString("yyyy-MM-01"); vm.stringval2 = Convert.ToDateTime(vm.stringval).AddMonths(1).AddSeconds(-1).ToString("yyyy-MM-dd"); } ht.Add("cdts", vm.stringval); ht.Add("cdte", string.IsNullOrEmpty(vm.stringval2) ? null : (vm.stringval2 + " 23:59:59")); if (!string.IsNullOrEmpty(vm.stringval3)) { if(vm.stringval3 == "2") { ht.Add("iscancel", 1); } else { ht.Add("iscancel", 0); ht.Add("tstatus" + (vm.stringval3), 1); } } if (!string.IsNullOrEmpty(vm.stringval5)) { if (!string.IsNullOrEmpty(vm.stringval4)) { ht.Add(vm.stringval4, vm.stringval5); } else { ht.Add("nimp", vm.stringval5); } } vm.PayTaxes = Dao.Get("cr.paytaxes", ht); vm.pagetotalcount = GetCount(vm.PayTaxes.FirstOrDefault()); return View(vm); } public ActionResult taxdetail(VMCRoom vm) { if (vm.longval < 1 && vm.intval < 0 ) { return Redirect("/croom/tax"); } if (vm.intval > 0) vm.PayTaxes = Dao.Get("cr.paytaxes", new System.Collections.Hashtable() { { "payno", vm.intval } }); else vm.PayTaxes = Dao.Get("cr.paytaxes", new System.Collections.Hashtable() { { "taxno", vm.longval }}); vm.FileList = new List() { }; if (vm.PayTaxes.First().fgno != null) { vm.FileList = GetFiles(vm.PayTaxes.First().fgno.Value); } vm.PayTaxes2 = Dao.Get("cr.paytaxes2", vm.PayTaxes.First().payno); if (vm.intval > 0) vm.PayTaxItem = Dao.Get("cr.paytaxitem2", new System.Collections.Hashtable() { { "payno", vm.intval } }); else vm.PayTaxItem = Dao.Get("cr.paytaxitem2", new System.Collections.Hashtable() { { "taxno", vm.longval } }); #region 세금계산서 Popbill 연동 var payTax = vm.PayTaxes.First(); if (payTax != null) { var result = PopbillService.GetTaxinvoice(payTax); if (result.IsSuccess) { ViewBag.Taxinvoice = result.Data; ViewBag.TaxinvoiceInfo = PopbillService.GetTaxinvoiceInfo(payTax).Data; } } #endregion return View(vm); } public ActionResult taxsmart(VMCRoom vm) { vm.Datas = new List() { }; vm.intval = 0; vm.intval2 = 0; var lasttime2 = CookieGet("smartbill2", ""); if (lasttime2 != "") { vm.intval2 = Convert.ToInt32((DateTime.Now - Convert.ToDateTime(lasttime2)).TotalSeconds); if (vm.intval2 < 60) { vm.intval2 = 60 - vm.intval2; } } if (IsPost() && vm.addstringval != null) { vm.addstringval = vm.addstringval ?? DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd"); vm.addstringval2 = vm.addstringval2 ?? DateTime.Now.ToString("yyyy-MM-dd"); var lasttime = CookieGet("smartbill", ""); if (lasttime != "") { vm.intval = Convert.ToInt32((DateTime.Now - Convert.ToDateTime(lasttime)).TotalSeconds); if (vm.intval < 60) { vm.intval = 60 - vm.intval; return View(vm); } } var request = new SmartRequest() { MessageId = "kfcfkfcf" + DateTime.Now.ToString("yyyyMMddHHmmss"), Signal = "DTI_STATUS_LIST", RequestTime = DateTime.Now.ToString("yyyyMMddHHmmss"), SendComRegno = "1048205661", AuthToken = "d09OaVA0VXBsMzhnTWp3WE5SamZjRm1uQ245L3VYYjc4OWM3VG1WSlRoaz0K", ServiceCode = "DTI", SearchFromDate = vm.addstringval, SearchToDate = vm.addstringval2, SearchComRegno = vm.addstringval3, RepoTypeCode = "AR" }; System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); //client.BaseAddress = new Uri("http://demoapi.smartbill.co.kr/"); client.BaseAddress = new Uri("http://api.smartbill.co.kr/"); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); var response = client.PostAsJsonAsync("sb-api/request/", request).Result; vm.addstringval10 = null; if (response.IsSuccessStatusCode) { var result = response.Content.ReadAsAsync().Result; if ("30000".Equals(result.ResultCode)) { var totalCount = result.ResultDataSet.Tables[0].Rows.Count; if (totalCount > 0) { for (var i = 0; i < totalCount; i++) { vm.Datas.Add(new Data() { strval = result.ResultDataSet.Tables[0].Rows[i].ItemArray[0].ToString(),//참조번호 strval2 = result.ResultDataSet.Tables[0].Rows[i].ItemArray[1].ToString(),//세금계산서상태 strval3 = result.ResultDataSet.Tables[0].Rows[i].ItemArray[2].ToString(),//국세청전송상태 strval4 = result.ResultDataSet.Tables[0].Rows[i].ItemArray[3].ToString(),//국세청 전송결과 strval5 = result.ResultDataSet.Tables[0].Rows[i].ItemArray[4].ToString(),//국세청 전송일자 strval6 = result.ResultDataSet.Tables[0].Rows[i].ItemArray[5].ToString()//담당자 이메일 }); } } } else { vm.addstringval10 = result.ResultMessage; } } CookieSet("smartbill", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), 1); vm.intval = 60; } vm.addstringval = vm.addstringval ?? DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd"); vm.addstringval2 = vm.addstringval2 ?? DateTime.Now.ToString("yyyy-MM-dd"); return View(vm); } public ActionResult Documents(VMCRoom vm) { ViewBag.reporturl = GetConfig("reporturl"); var ht = SetHash(vm, false); if (!IsPost()) { vm.pagerowcount = 50; vm.stringval = DateTime.Now.ToString("yyyy-MM-01"); vm.stringval2 = Convert.ToDateTime(vm.stringval).AddMonths(1).AddSeconds(-1).ToString("yyyy-MM-dd"); } if (SUserInfo.IsSiteAdmin) { ht.Add("asno", SUserInfo.ASNo); ViewBag.IsSiteAdmin = SUserInfo.IsSiteAdmin; } ht.Add("cdts", vm.stringval); ht.Add("cdte", string.IsNullOrEmpty(vm.stringval2) ? null : (vm.stringval2 + " 23:59:59")); ht.Add("asname", string.IsNullOrEmpty(vm.stringval3) ? null : vm.stringval3); ht.Add("isrebates", vm.stringval4); if (!string.IsNullOrEmpty(vm.stringval6)) { ht.Add(vm.stringval5 ?? "usernameiditemname", vm.stringval6); } vm.stringval20 = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddDays(-14).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd") + ";" + DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd"); vm.Lects = Dao.Get("lect.lecture.document", ht); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); return View(vm); } public ActionResult documentspast(Documents vm) { var ht = SetHash(vm); vm.syears = Dao.Get("cr.documnets.syear", ht).ToList(); vm.cgs = Dao.Get("cr.documnets.cg", ht).ToList(); vm.cshapes = Dao.Get("cr.documnets.cshape", ht).ToList(); vm.typemans = Dao.Get("cr.documnets.typeman", ht).ToList(); vm.edukinds = Dao.Get("cr.documnets.edukind", ht).ToList(); vm.typeedus = Dao.Get("cr.documnets.typeedu", ht).ToList(); vm.typegrades = Dao.Get("cr.documnets.typegrade", ht).ToList(); vm.typejobs = Dao.Get("cr.documnets.typejob", ht).ToList(); List words = new List(); words.Add(new textvalue { text = "이름", value = "이름"}); words.Add(new textvalue { text = "주민등록번호", value = "주민등록번호" }); words.Add(new textvalue { text = "수료번호", value = "수료번호" }); words.Add(new textvalue { text = "업체명", value = "업체명" }); words.Add(new textvalue { text = "사업자등록번호", value = "사업자등록번호" }); vm.words = words; vm.DocumentList = InitM(); ht.Add("syear", vm.stringval); ht.Add("cg", vm.stringval2); ht.Add("cshape", vm.stringval3); ht.Add("typeman", vm.stringval4); ht.Add("edukind", vm.stringval5); ht.Add("typeedu", vm.stringval6); ht.Add("typegrade", vm.stringval7); ht.Add("typejob", vm.stringval8); vm.stringval9 = vm.stringval9 == null ? vm.stringval == null ? "2019-01-01 00:00:00" : vm.stringval + "-01-01 00:00:00" : vm.stringval9; vm.stringval10 = vm.stringval10 == null ? vm.stringval == null ? "2020-12-31 23:59:59" : vm.stringval + "-12-31 23:59:59" : vm.stringval10; ht.Add("ssdate", vm.stringval9); ht.Add("sedate", vm.stringval10); switch (vm.stringval11) { case "이름": ht.Add("word", "username"); break; case "주민등록번호": ht.Add("word", "userpno"); break; case "수료번호": ht.Add("word", "completeno"); break; case "업체명": ht.Add("word", "companyname"); break; case "사업자등록번호": ht.Add("word", "brno"); break; } ht.Add("text", vm.stringval12); vm.DocumentList = Dao.Get("cr.documnetspast", ht); vm.pagetotalcount = GetCount(vm.DocumentList.FirstOrDefault()); if (vm.isexceldown == 1) { vm.DocumentList = Dao.Get("cr.documnetspast", ht); return ExportExcel( new String[] { "구분","과정분류","교육유형","아이디","이름","주민번호","기술인분류","교육구분","교육목적","등급","직무분야","과정명","수료번호","업체명","업체주소","사업자등록번호", "고용보험관리번호","업태","종목","대표자","교육시작일","교육종료일","교육이수시간","소속협회","학력","직위","교육생연락처","업체담당자","업체담당당자 연락처","교육비", "환급액","환급은행명","환급계좌" ,"환급계좌예금주","계산서이메일","교육연도"}, new String[] { "kind", "cg", "cshape","id", "username", "userpno", "typeman", "edukind", "typeedu", "typegrade", "typejob", "cgname", "completeno", "companyname", "companyaddr", "brno", "eino", "btype", "bkind", "ceoname", "ssdateymd","sedateymd","sctime","assign","slevel","uduty","phone","mname","mphone", "sprice","rprice","rbank","rbankno","rbankuser","taxemail","syear"}, vm.DocumentList, "증빙서류출력(과거)"); } return View(vm); } } }