<기능개선>

1. PMS NO : 7146, 7149, 7152, 7158, 7179, 7181, 7184, 7187, 7202, 7210, 7214, 7215, 7218, 7220, 7224
2. (주요)작업내용 
(1) 2022년 12월 추가 개발 및 유지보수 요청건 일괄 업로드
This commit is contained in:
jity7777 2023-01-02 23:59:38 +00:00
parent ed9933718d
commit 80ee5c717d
41 changed files with 2524 additions and 222 deletions

View File

@ -512,16 +512,27 @@ namespace NP.BO.Controllers
ht.Add("cname", vm.stringval2);
ht.Add("studyplace", vm.stringval3);
ht.Add("stringval17", vm.stringval17);
vm.Lects = Dao.Get<Lect>("lect.lectinnings.forattscd", ht);
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
if (vm.intval2 == 1)
{
vm.Lects = Dao.Get<Lect>("lect.lectinnings.forattscd2", ht);
//return ExportExcel(
// new String[] { "No", "운영기수", "교육장", "과정명", "교육생(ID)", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" },
// new String[] { "rnorvt", "sseqstr", "studyplacename", "cname", "usernameid", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" },
// vm.Lects,
// "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day);
return ExportExcel(
new String[] { "No", "운영기수", "교육장", "과정명", "교육생(ID)", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" },
new String[] { "rnorvt", "sseqstr", "studyplacename", "cname", "usernameid", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" },
new String[] { "No", "아이디", "교육생이름", "교육생 전화번호", "이메일", "과정명", "기술인분류", "교육목적", "등급", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" },
new String[] { "rnorvt", "userid", "username", "mobile", "email", "cname", "zstring0", "zstring1", "zstring2", "sdatestr", "edatestr", "stimestr", "istatusname", "iscompletename" },
vm.Lects,
"attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day);
}
else
{
vm.Lects = Dao.Get<Lect>("lect.lectinnings.forattscd", ht);
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
}
return View(vm);
}
public ActionResult grades(NP.Model.VMCM vm)
@ -609,7 +620,7 @@ namespace NP.BO.Controllers
if (searchCheck)
{
vm.Lects = Dao.Get<Lect>("grade.lectgrades", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "iscomplete", vm.addstringval2 }, { "cmisno", vm.addstringval3 }, { "ispasss", vm.addstringval4 }, { "ispassa", vm.addstringval5 }, { "ispassex", vm.addstringval6 }, { "usernameid", vm.addstringval7 }, { "orderby", "ua.asname,ua.asno,u.username" } });
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "ustatus", 1 }, { "isrebate", vm.addstringval }, { "iscomplete", vm.addstringval2 }, { "cmisno", vm.addstringval3 }, { "ispasss", vm.addstringval4 }, { "ispassa", vm.addstringval5 }, { "ispassex", vm.addstringval6 }, { "usernameid", vm.addstringval7 }, { "orderby", "ua.asname,ua.asno,u.username" } });
}
else
{
@ -761,7 +772,7 @@ namespace NP.BO.Controllers
//ht.Add("ustatus", 1);
ht.Add("orderby", "ua.asname,ua.asno,u.username");
vm.Lects = Dao.Get<Lect>("grade.lectgrades", ht);
vm.Lects = Dao.Get<Lect>("grade.lectgradesToAll", ht);
if (vm.isexceldown == 1)
{
return ExportExcel(
@ -853,6 +864,12 @@ namespace NP.BO.Controllers
//vm.stringval = DateTime.Now.ToString("yyyy-MM-01");
//vm.stringval2 = Convert.ToDateTime(vm.stringval).AddMonths(1).AddSeconds(-1).ToString("yyyy-MM-dd");
}
//if (vm.stringval == null)
//{
// vm.stringval = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd");
// vm.stringval2 = DateTime.Now.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);
@ -892,6 +909,7 @@ namespace NP.BO.Controllers
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);

View File

@ -66,7 +66,7 @@
}
else
{
<input type="checkbox" id="alldays" @(isAllDays ? "checked" : string.Empty) disabled /><span>상시</span>
<input type="checkbox" id="alldays" @(isAllDays ? "checked" : string.Empty) /><span>상시</span>
}
</div>
</div>
@ -151,6 +151,7 @@
@{
Dictionary<int, string> typeJobList = new Dictionary<int, string>();
bool check = false;
foreach (var item in Model.ComCodes.Where(w => w.cgroup == "typejob"))
{
typeJobList.Add(item.ccode, item.cname);
@ -169,13 +170,17 @@
{
typeJobGroupName = "typejob" + item.Key;
var subList = Model.ComCodes.Where(w => w.cgroup == typeJobGroupName).OrderBy(c => c.corder);
if (subList.Count() > 0)
{
<div id="@(typeJobGroupName)items" style="display:none">
<font style="font-weight:bold;margin-right:10px">@item.Value : </font>
@foreach (var item2 in subList)
{
if(item2.ccode == 92)
{
check = true;
}
if (typejobitems.IndexOf(item2.ccode) > -1)
{
typejobItemCheck = true;
@ -443,12 +448,12 @@
else {
$("#spnaccommofee").hide();
}
if ($("input[name='CM.cshape']:checked").val() == '1') {
$("#alldays").prop("disabled", true);
}
else {
$("#alldays").prop("disabled", false);
}
//if ($("input[name='CM.cshape']:checked").val() == '1') {
// $("#alldays").prop("disabled", true);
//}
//else {
// $("#alldays").prop("disabled", false);
//}
if ($("#alldays").is(":checked")) {
$("#CM_cshape1").prop("disabled", true);

View File

@ -66,7 +66,7 @@
<ul>
@foreach (var d in innings)
{
<li>@string.Format("{0}분 ({1})", d.totstudymin, d.pseqname)</li>
<li>@string.Format("{0}분 ({1})", d.totstudymin, d.pseqname)<br /><br /></li>
}
</ul>
</td>

View File

@ -54,8 +54,9 @@
<br />
<section class="panel panel-default">
@Html.HiddenFor(m => m.intval2)
<div style="padding:5px 10px; text-align:right;">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "onchange", "submit()" }, { "name", "stringval17" }, { "selected", Model.stringval17 }, { "valuetext", ":출석여부;0:미입력;2:출석" } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "onchange", "submit()" }, { "name", "stringval17" }, { "selected", Model.stringval17 }, { "valuetext", ":출석여부;0:미입력;2:출석" }, { "style", "vertical-align: middle" } })
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
<a href="#" class="btn btn-primary" onclick="save(2);" style=" text-align:right">출석처리</a>
<a href="#" class="btn btn-danger" onclick="save(0);">결석처리</a>

View File

@ -14,27 +14,6 @@
<thead>
<tr><th style="display:none;">기준</th><th>평가항목</th><th>진도율</th>@*<th>진행평가(%)</th>*@<th>최종평가(%)</th><th>과제(%)</th><th style="display:none;">토론(%)</th><th style="display:none;">기타(%)</th><th>합계(총점)</th></tr>
</thead>
<tr>
<th rowspan="2" style="display:none;">비환급</th>
<th>비율(점수)</th>
<td>@Model.CMEV.attend</td>
@*<td>@Model.CMEV.mid</td>*@
<td>@Model.CMEV.final</td>
<td>@Model.CMEV.subject</td>
<td style="display:none;">@Model.CMEV.discuss</td>
<td style="display:none;">@Model.CMEV.etc</td>
<td>@(Model.CMEV.attend + Model.CMEV.mid + Model.CMEV.final + Model.CMEV.subject + Model.CMEV.discuss + Model.CMEV.etc )</td>
</tr>
<tr>
<th>수료기준</th>
<td>@Model.CMEV.attendcut</td>
@*<td>@Model.CMEV.midcut</td>*@
<td>@Model.CMEV.finalcut</td>
<td>@Model.CMEV.subjectcut</td>
<td style="display:none;">@Model.CMEV.discusscut</td>
<td style="display:none;">@Model.CMEV.etccut</td>
<td>@Model.CMEV.cut</td>
</tr>
@if (Model.CM.isrefund == 1)
{
<tr>
@ -59,6 +38,31 @@
<td>@Model.CMEV.cutrfd</td>
</tr>
}
else
{
<tr>
<th rowspan="2" style="display:none;">비환급</th>
<th>비율(점수)</th>
<td>@Model.CMEV.attend</td>
@*<td>@Model.CMEV.mid</td>*@
<td>@Model.CMEV.final</td>
<td>@Model.CMEV.subject</td>
<td style="display:none;">@Model.CMEV.discuss</td>
<td style="display:none;">@Model.CMEV.etc</td>
<td>@(Model.CMEV.attend + Model.CMEV.mid + Model.CMEV.final + Model.CMEV.subject + Model.CMEV.discuss + Model.CMEV.etc )</td>
</tr>
<tr>
<th>수료기준</th>
<td>@Model.CMEV.attendcut</td>
@*<td>@Model.CMEV.midcut</td>*@
<td>@Model.CMEV.finalcut</td>
<td>@Model.CMEV.subjectcut</td>
<td style="display:none;">@Model.CMEV.discusscut</td>
<td style="display:none;">@Model.CMEV.etccut</td>
<td>@Model.CMEV.cut</td>
</tr>
}
</table>
</section>
<section class="panel panel-default">

View File

@ -369,7 +369,7 @@
_saveidx = idx;
//capp("/acommon/lectsdsave", { lectno: _lectno, sdno: val("addstringval"), iscopy: $("#iscopy").prop("checked") ? 1 : 0, cpoint: val("cpoint"), feedb: val("feedb") }, "cbsave", null, null, null, true);
$("#iscopyVal").val($("#iscopy").prop("checked") ? 1 : 0)
capfileform("/acommon/lectsdsave", "mform2", "cbsave");
capfileform("/acommon/LectSDSaveToAdmin", "mform2", "cbsave");
}
}
}
@ -483,12 +483,20 @@
if (fileDivObj.length == 1) {
fileDivObj.remove();
$("#fileinfoDiv").css("display", "")
viewsd(_sdno, _lectno, _ridx);
let sdno = $("#sdno").val();
let lectno = $("#lectno").val();
capp("/acommon/delfileOk", { lectno: lectno, sdno: sdno }, "afterView");
}
}
else {
msg("파일을 삭제할 수 없습니다.");
}
}
function afterView() {
viewsd(_sdno, _lectno, _ridx);
}
</script>
<iframe id="ifrthis" style="display: none;"></iframe>

View File

@ -358,7 +358,7 @@
_saveidx = idx;
// capp("/acommon/lectsdsave", { lectno: _lectno, sdno: _sdno, iscopy: $("#iscopy").prop("checked") ? 1 : 0, cpoint: val("cpoint"), feedb: val("feedb"), memo: val("memo") }, "cbsave", null, null, null, true);
$("#iscopyVal").val($("#iscopy").prop("checked") ? 1 : 0)
capfileform("/acommon/lectsdsave", "mform2", "cbsave");
capfileform("/acommon/LectSDSaveToAdmin", "mform2", "cbsave");
}
}
@ -444,12 +444,19 @@
if (fileDivObj.length == 1) {
fileDivObj.remove();
$("#fileinfoDiv").css("display", "")
viewsd(_sdno, _lectno, _tpoint, _ridx);
let sdno = $("#sdno").val();
let lectno = $("#lectno").val();
capp("/acommon/delfileOk", { lectno: lectno, sdno: sdno }, "afterView");
}
}
else {
msg("파일을 삭제할 수 없습니다.");
}
}
function afterView() {
viewsd(_sdno, _lectno, _tpoint, _ridx);
}
</script>
<iframe id="ifrthis" style="display: none;"></iframe>

View File

@ -592,7 +592,7 @@
}
function cbcancelpay() {
if (capResult.code == 1000) {
msg("결제소처리되었습니다.", null, null, null, null, "location.href='/croom/payview?payno=@p.payno'");
msg("결제소처리되었습니다.", null, null, null, null, "location.href='/croom/payview?payno=@p.payno'");
opener.searchthis();
}
}

View File

@ -55,8 +55,8 @@
<!--<add key="talk" value="https://alimtalk-api.bizmsg.kr/v2/sender/send,?,?,?,?,?,023103312" />-->
<!--<add key="configpath" value="Product" />-->
<!--<add key="configpath" value="ProductDev" />-->
<add key="configpath" value="staging" />
<add key="configpath" value="ProductDev" />
<!--<add key="configpath" value="staging" />-->
<add key="lgdacomConfigPath" value="D:\3rdparti\lgdacomyicte" />

View File

@ -2222,6 +2222,14 @@ namespace NP.Base.Controllers
{
return JsonOK(Dao.Save("sys.ncs.delall", new Hashtable() { { "ndepth", ndepth }, { "ncsno", ncsno } }));
}
[HttpPost]
public JsonResult delfileOk(int sdno, Int64 lectno)
{
//재응시로그추가로인해 업데이트건 3개일때부터 정상처리
int result = Dao.Save("lect.lectsd.del", new System.Collections.Hashtable() { { "sdno", sdno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
return JsonOK(result);
}
}
}

View File

@ -866,6 +866,31 @@ namespace NP.Base.Controllers
return JsonOK(Dao.Save("lect.lectsd"+(d.ccount == 1 ? "2" : "")+".save" + (string.IsNullOrEmpty(d.lectnos) ? "" : "batch"), d));
}
/// <summary>
/// 과제제출평가(관리자등록)
/// </summary>
/// <param name="d"></param>
/// <returns></returns>
[HttpPost]
public JsonResult LectSDSaveToAdmin(LectSD d)
{
d.uno = SUserInfo.UserNo; d.uip = GetUserIP();
d.isproduct = GetConfig("isstaging") == "1" ? (int?)null : 1;
if (Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
{
//d.fgno = SetFile(Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), d.fgno ?? 0, "lectsd", "fgno");
d.fgno = SetFile(Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), d.fgno ?? 0, "lectsd", "fgno", 1, "XX", false, true, d.cmno, d.userno);
d.zstring0 = "T";
}
else
{
d.zstring0 = "";
}
return JsonOK(Dao.Save("lect.lectsd" + (d.ccount == 1 ? "2" : "") + ".save2" + (string.IsNullOrEmpty(d.lectnos) ? "" : "batch"), d));
}
/// <summary>
/// 과제이력 일괄다운로드
/// </summary>

View File

@ -235,6 +235,13 @@ namespace NP.Base.Controllers
return JsonOK(Dao.Save("lect.reexam", new System.Collections.Hashtable() { { "exno", exno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }) > 2 ? 1 : 0);
}
[HttpPost]
public JsonResult delfileOk(int sdno, Int64 lectno)
{
//재응시로그추가로인해 업데이트건 3개일때부터 정상처리
int result = Dao.Save("lect.lectsd.del", new System.Collections.Hashtable() { { "sdno", sdno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
return JsonOK(result);
}
}
}

View File

@ -534,6 +534,8 @@ namespace NP.Base.Controllers
hsData.Add("cmno", cmno);
var resultTmp = Dao.Get<CM>("cm.cms", hsData).FirstOrDefault();
//var result = Dao.Get<CMinningscd>("cm.cminningscds.applyedu"+(lectno != null ? ".lectno" : ""), new System.Collections.Hashtable() { { "cmno", cmno },{"lectno",lectno }, { "month", (month == null) ? null : month } });
DateTime now = DateTime.Now;
result = result.Where(c => c.estart > now.AddYears(-1) && c.estart < now.AddYears(1)).ToList();
foreach (var item in result)
{
//item.scdInfoSummary = string.Format("[{0}] {1}", item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm"));
@ -562,6 +564,7 @@ namespace NP.Base.Controllers
}
[HttpPost]
/// 교육신청제한
public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno)
{
// 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육

View File

@ -173,6 +173,7 @@
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<select id="cm.cm" parameterClass="hashtable" resultClass="cm">
select a.cmno,a.cshape,a.cname,a.classno,a.rstime,a.retime,a.sstime,a.setime,a.certcc,a.cgno,a.quota,a.studydays,a.isaccommodation,a.daylectinninglimit
,b.tyear,b.tseq,a.isrefund
@ -1834,13 +1835,14 @@
<isNotNull property="studyplace">and a.studyplace=#studyplace#</isNotNull>
<!--20220726 파라미터로 추가-->
<isNotNull property="cshape">and a.cshape=#cshape#</isNotNull>
<isNotNull property="isuse">and a.isuse=#isuse#</isNotNull>
<isNotNull property="typeman">and a.typeman like concat('%',#typeman#,'%')</isNotNull>
<isNotNull property="typeedu">and a.typeedu like concat('%',#typeedu#,'%')</isNotNull>
<isNotNull property="typegrade">and a.typegrade like concat('%',#typegrade#,'%')</isNotNull>
<isNotNull property="typejob">and a.typejob like concat('%',#typejob#,'%')</isNotNull>
<isNotNull property="typejobitem">and a.typejobitem like concat('%',#typejobitem#,'%')</isNotNull>
) a
<include refid="sql.pagedynamic"></include>
<!--<include refid="sql.pagedynamic"></include>-->
<isNull property="orderby">order by a.tseq, a.rstime, studyplacename</isNull>
<isNotNull property="orderby">order by #orderby#</isNotNull>
<!--20220726 파라미터로 변경-->
@ -1862,7 +1864,7 @@
,a.cdt,a.udt
,a.cmno value,a.cname text
,e.ccode, e.cname studyplacename
,g.attendcut,g.finalcut,g.subjectcut
,g.attendcut,g.finalcut,g.subjectcut, ifnull(g.isoffabs,0) isoffabs
,h.username
from cm a
inner join cg b on b.cgno=a.cgno
@ -1920,7 +1922,7 @@
select a.*
from (
select
a.cmno,a.pcmno<!--,a.cgcode-->
a.cmno,a.pcmno,a.cgcode
,a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.studyplacename,a.startmonth
,a.remainPeople
,a.isselected
@ -1937,12 +1939,12 @@
,a.studyplace,case when c.scdtype =1 then '온라인' else e.cname end studyplacename
,case when date_format(d.setime,'%Y%m%d') = date_format(a.estart,'%Y%m%d') then 1 else 0 end isselected
,c.scdtype
,d.cmno,d.pcmno<!--,cg.cgcode-->
,d.cmno,d.pcmno,cg.cgcode
,d.cshape
from cminningscd a
left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
<!--left outer join cg cg on d.cgno = cg.cgno-->
left outer join cg cg on d.cgno = cg.cgno
left outer join comcode e on e.ccode = a.studyplace
<dynamic prepend="where">
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull>
@ -1965,7 +1967,7 @@
select
a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.studyplace,a.studyplacename,a.startmonth
,a.studyplace, a.studyplacename,a.remainPeople
,a.isselected<!--, a.cmno,a.pcmno,a.cgcode-->
,a.isselected, a.cmno,a.pcmno,a.cgcode
<!--211220.통합테스트목록(644) 이미지난 교육종료일 변경불가-->
,case when a.estart &lt; date_add(date_format(now() ,'%Y-%m-%d 00:00:00'),interval -1 second)
<!--20220803
@ -1976,11 +1978,11 @@
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0)) remainPeople
,a.studyplace, e.cname studyplacename
,case when f.cmisno = a.cmisno then 1 else 0 end isselected<!--, d.cmno,d.pcmno,cg.cgcode-->
,case when f.cmisno = a.cmisno then 1 else 0 end isselected, d.cmno,d.pcmno,cg.cgcode
from cminningscd a
left outer join cminning c on c.cmino = a.cmino
left outer join cm d on d.cmno = c.cmno
<!--left outer join cg cg on d.cgno = cg.cgno-->
left outer join cg cg on d.cgno = cg.cgno
left outer join comcode e on e.ccode = a.studyplace
left outer join lect f on f.lectno = #lectno#
<dynamic prepend="where">

View File

@ -49,7 +49,7 @@
left outer join cminningscd e on e.cmisno = b.cmisno
left outer join cminning ci on ci.cmino = e.cmino
left outer join comcode f on f.ccode = e.studyplace
left outer join lectinning li on li.cmino = e.cmino
left outer join lectinning li on li.cmino = e.cmino and li.lectno = b.lectno
</select>
<select id="cr.main.boardalarm" parameterClass="hashtable" resultClass="data">
select a.*
@ -1321,7 +1321,7 @@
<isNotEmpty property="pstatus" prepend="and">
<isEqual property="pstatus" compareValue="p21">(p.pstatus in (21) and p.rstatus = 0)</isEqual>
<isEqual property="pstatus" compareValue="p22">(p.pstatus in (22) and p.rstatus = 0)</isEqual>
<isEqual property="pstatus" compareValue="p1">(p.pstatus in (1) and p.rstatus = 0)</isEqual>
<isEqual property="pstatus" compareValue="p1">(p.pstatus in (1) and p.rstatus = 0 and pri.pino is null)</isEqual>
<isEqual property="pstatus" compareValue="rf1">(pr.rfdno is not null and pr.rstatus = 0)</isEqual>
<isEqual property="pstatus" compareValue="r1">(pi.rstatus=1 and p.payamt>p.refundamt)</isEqual>
<isEqual property="pstatus" compareValue="r2">(p.rstatus > 0 and p.payamt=p.refundamt)</isEqual>

View File

@ -613,6 +613,358 @@
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<select id="grade.lectgradesToAll" parameterClass="hashtable" resultClass="lect">
select a.*
from (
select a.lectno,b.userno,b.payno
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">c.cname,c.cmno,u.username</isNull> ) rno
,count(a.lectno) over() pagetotalcount
,b.isrebate
<!--,case when ppl.asname is not null then ppl.asname else ua.asname end asname-->
<!--,ppl.brno,ppl.ceoname,ppl.post,ppl.address1,ppl.address2,ppl.btype,ppl.bkind,ppl.eino,ppl.mname,ppl.association-->
<!--,CAST(AES_DECRYPT(UNHEX(ppl.mphone), <include refid="sql.digest"></include>) AS char) mphone
,CAST(AES_DECRYPT(UNHEX(ppl.taxemail), <include refid="sql.digest"></include>) AS char) taxemail-->
,u.username,u.userid,u.slevel,u.uduty
,b.iscomplete,b.completetime,b.completeno,b.sdate,b.edate
,concat(substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),1,6),'-',substring(CAST(AES_DECRYPT(UNHEX(u.userpno),<include refid="sql.digest"></include>) as char),7,7)) userpno
,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile
,b.cmisno
,p.payoktime<!--,p.payamt-->
,c.cshape<!--,c.sstime-->,c.cmno,c.cname<!--,c.classno,c.studytime-->
<!--,t.tyear-->
<!--,cg.cgname,cg.pcgno,pcg.cgname as pcgname-->
,d.isoffabs
,b.attrate
,a.apoint
,a.ex0cnt,a.ex0lectcnt,a.ex0lectpoint,a.mpoint
,a.ex1cnt,a.ex1lectcnt,a.ex1lectpoint,a.fpoint
,a.sd0cnt,a.sd0lectcnt,a.sd0lectpoint,a.spoint
,a.sd1cnt,a.sd1lectcnt,a.sd1lectpoint,a.dpoint
,a.rs0cnt,a.rs0lectcnt,a.rs0lectpoint
<!--,a.ispassat-->
,e.sseq,e.estart,e.eend,e.studyplace
,f.istatus
,cc.cname studyplacename
<!--,tm.cname typemanname, te.cname typeeduname
,tg.cname typegradename, tj.cname typejobname-->
,date_format((case when c.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') edatestring
<!--,pi.tbankuser rbankuser,pi.rbank,pi.pino,pi.rbankamt
,CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), <include refid="sql.digest"></include>) AS char) as rbankaccnum-->
from (
select a.lectno
,(b.attrate / 100) * (case when b.isrebate=1 then d.attendrfd else d.attend end / 100) * 100 apoint
,a.ex0cnt,a.ex0lectcnt,a.ex0lectpoint,(a.ex0lectpoint / 100) * (case when b.isrebate=1 then d.midrfd else d.mid end / 100) * 100 mpoint
,a.ex1cnt,a.ex1lectcnt,a.ex1lectpoint,(a.ex1lectpoint / 100) * (case when b.isrebate=1 then d.finalrfd else d.final end / 100) * 100 fpoint
,a.sd0cnt,a.sd0lectcnt,a.sd0lectpoint,(a.sd0lectpoint / 100) * (case when b.isrebate=1 then d.subjectrfd else d.subject end / 100) * 100 spoint
,a.sd1cnt,a.sd1lectcnt,a.sd1lectpoint,(a.sd1lectpoint / 100) * (case when b.isrebate=1 then d.discussrfd else d.discuss end / 100) * 100 dpoint
,a.rs0cnt,a.rs0lectcnt,a.rs0lectpoint
<!--,case when case when b.isrebate=1 then d.attendcutrfd else d.attendcut end &lt;= b.attrate then 1 else 0 end ispassa
,case when case when b.isrebate=1 then d.midcutrfd else d.midcut end &lt;= a.ex0lectpoint then 1 else 0 end ispassm
,case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end ispassf
,case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end &lt;= a.sd0lectpoint then 1 else 0 end ispasss
,case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end &lt;= a.sd1lectpoint then 1 else 0 end ispassd
,case when case when ifnull(d.isoffabs,0)=1 then ifnull(a.at0cnt,0) else 0 end &lt;= ifnull(a.at0lectcnt,0) then 1 else 0 end ispassat
,case when
case when case when ifnull(d.isoffabs,0)=1 then ifnull(a.at0cnt,0) else 0 end &lt;= ifnull(a.at0lectcnt,0) then 1 else 0 end = 1 and
case when case when b.isrebate=1 then d.attendcutrfd else d.attendcut end &lt;= b.attrate then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.midcutrfd else d.midcut end &lt;= a.ex0lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.finalcutrfd else d.finalcut end &lt;= a.ex1lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.subjectcutrfd else d.subjectcut end &lt;= a.sd0lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.discusscutrfd else d.discusscut end &lt;= a.sd1lectpoint then 1 else 0 end =1 and
case when case when b.isrebate=1 then d.cutrfd else d.cut end &lt;=
((b.attrate / 100) * (case when b.isrebate=1 then d.attendrfd else d.attend end / 100 * 100))
+((a.ex0lectpoint / 100) * (case when b.isrebate=1 then d.midrfd else d.mid end / 100)* 100)
+((a.ex1lectpoint / 100) * (case when b.isrebate=1 then d.finalrfd else d.final end / 100)* 100)
+((a.sd0lectpoint / 100) * (case when b.isrebate=1 then d.subjectrfd else d.subject end / 100)* 100)
+((a.sd1lectpoint / 100) * (case when b.isrebate=1 then d.discussrfd else d.discuss end / 100)* 100) then 1 else 0 end = 1 then 1 else 0 end ispass-->
from (
select a.lectno
,sum(ex0cnt) ex0cnt,sum(ex0lectcnt) ex0lectcnt,sum(ex0lectpoint) ex0lectpoint
,sum(ex1cnt) ex1cnt,sum(ex1lectcnt) ex1lectcnt,sum(ex1lectpoint) ex1lectpoint
,sum(sd0cnt) sd0cnt,sum(sd0lectcnt) sd0lectcnt,sum(sd0lectpoint) sd0lectpoint
,sum(sd1cnt) sd1cnt,sum(sd1lectcnt) sd1lectcnt,sum(sd1lectpoint) sd1lectpoint
,sum(rs0cnt) rs0cnt,sum(rs0lectcnt) rs0lectcnt,sum(rs0lectpoint) rs0lectpoint
,sum(at0cnt) at0cnt,sum(at0lectcnt) at0lectcnt
from (
select a.lectno
,count(b.exno) ex0cnt,count(c.lectno) ex0lectcnt,avg(ifnull(c.tpoint,0) / b.tpoint * 100) ex0lectpoint
,0 ex1cnt,0 ex1lectcnt,0 ex1lectpoint
,0 sd0cnt,0 sd0lectcnt,0 sd0lectpoint
,0 sd1cnt,0 sd1lectcnt,0 sd1lectpoint
,0 rs0cnt,0 rs0lectcnt,0 rs0lectpoint
,0 at0cnt,0 at0lectcnt
from (
select b.lectno,a.cmno
from cm a
inner join cm a2 on a.pcmno = a2.cmno
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
inner join users c on c.userno=b.userno and c.status=1
inner join pay p on p.payno=b.payno
left outer join cminningscd e on e.cmisno = b.cmisno
where a.ismaster=0 and a.isdel=0
<isNotNull property="usernamestr" prepend="and">c.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">c.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a
left outer join cmex b on b.cmno=a.cmno and b.extype=0 and b.isdel=0
left outer join lectex c on c.lectno=a.lectno and c.exno=b.exno
group by a.lectno
union all
select a.lectno
,0,0,0
,count(b.exno),count(c.lectno),avg(ifnull(c.tpoint,0) / b.tpoint * 100)
,0,0,0
,0,0,0
,0,0,0
,0,0
from (
select b.lectno,a.cmno
from cm a
inner join cm a2 on a.pcmno = a2.cmno
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
inner join users c on c.userno=b.userno and c.status=1
inner join pay p on p.payno=b.payno
left outer join cminningscd e on e.cmisno = b.cmisno
where a.ismaster=0 and a.isdel=0
<isNotNull property="usernamestr" prepend="and">c.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">c.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a
left outer join cmex b on b.cmno=a.cmno and b.extype=1 and b.isdel=0
left outer join lectex c on c.lectno=a.lectno and c.exno=b.exno
group by a.lectno
union all
select a.lectno
,0,0,0
,0,0,0
,count(b.sdno),count(c.lectno),avg(ifnull(c.cpoint,0) / b.tpoint * 100)
,0,0,0
,0,0,0
,0,0
from (
select b.lectno,a.cmno
from cm a
inner join cm a2 on a.pcmno = a2.cmno
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
inner join users c on c.userno=b.userno and c.status=1
inner join pay p on p.payno=b.payno
left outer join cminningscd e on e.cmisno = b.cmisno
where a.ismaster=0 and a.isdel=0
<isNotNull property="usernamestr" prepend="and">c.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">c.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a
left outer join cmsd b on b.cmno=a.cmno and b.sdtype=0 and b.isdel=0
left outer join lectsd c on c.lectno=a.lectno and c.sdno=b.sdno
group by a.lectno
union all
select a.lectno
,0,0,0
,0,0,0
,0,0,0
,count(b.sdno),count(c.lectno),avg(ifnull(c.cpoint,0) / b.tpoint * 100)
,0,0,0
,0,0
from (
select b.lectno,a.cmno
from cm a
inner join cm a2 on a.pcmno = a2.cmno
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
inner join users c on c.userno=b.userno and c.status=1
inner join pay p on p.payno=b.payno
left outer join cminningscd e on e.cmisno = b.cmisno
where a.ismaster=0 and a.isdel=0
<isNotNull property="usernamestr" prepend="and">c.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">c.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a
left outer join cmsd b on b.cmno=a.cmno and b.sdtype=1 and b.isdel=0
left outer join lectsd c on c.lectno=a.lectno and c.sdno=b.sdno
group by a.lectno
union all
select a.lectno
,0,0,0
,0,0,0
,0,0,0
,0,0,0
,count(b.rsno),count(c.lectno),0
,0,0
from (
select b.lectno,a.cmno
from cm a
inner join cm a2 on a.pcmno = a2.cmno
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
inner join users c on c.userno=b.userno and c.status=1
inner join pay p on p.payno=b.payno
left outer join cminningscd e on e.cmisno = b.cmisno
where a.ismaster=0 and a.isdel=0
<isNotNull property="usernamestr" prepend="and">c.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">c.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a
left outer join cmrs b on b.cmno=a.cmno and b.rstype=0 and b.isdel=0
left outer join lectrs c on c.lectno=a.lectno and c.rsno=b.rsno
group by a.lectno
union all
select a.lectno
,0,0,0
,0,0,0
,0,0,0
,0,0,0
,0,0,0
,count(b.cmino),count(c.lectno)
from (
select b.lectno,a.cmno
from cm a
inner join cm a2 on a.pcmno = a2.cmno
inner join lect b on b.cmno=a.cmno and b.status=1 and b.ischanged=0
inner join users c on c.userno=b.userno and c.status=1
inner join pay p on p.payno=b.payno
left outer join cminningscd e on e.cmisno = b.cmisno
where a.ismaster=0 and a.isdel=0
<isNotNull property="usernamestr" prepend="and">c.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">c.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(c.userid like concat('%',#usernameid#,'%') or c.username like concat('%',#usernameid#,'%') or c.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull> <isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="edate" prepend="and">date_format((case when a.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="cmno" >and a.cmno = #cmno#</isNotNull>
<isNotNull property="cname" >and a2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotEmpty property="sdateall" prepend="and">(case when a.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when a.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
) a
left outer join cminning b on b.cmno=a.cmno and b.isonline =0 and b.isscd = 1
left outer join lectinning c on c.cmino=b.cmino and c.lectno = a.lectno and c.istatus = 2
group by a.lectno
) a
group by a.lectno
) a
inner join lect b on b.lectno=a.lectno
inner join cmev d on d.cmno=b.cmno
) a
inner join lect b on b.lectno=a.lectno
inner join pay p on p.payno=b.payno
inner join users u on u.userno=b.userno
left outer join assign ua on ua.asno=u.asno
inner join cm c on c.cmno=b.cmno
inner join cm c2 on c2.cmno=c.pcmno
inner join cmev d on d.cmno=c.cmno
left outer join term t on t.tmno = c.tmno
<!--left outer join cg cg on cg.cgno = c.cgno-->
<!--left outer join cg pcg on pcg.cgno = cg.pcgno
left outer join payitem pi on pi.payno = p.payno-->
left outer join cminningscd e on e.cmisno = b.cmisno
left outer join lectinning f on f.lectno = b.lectno and f.cmino = e.cmino
left outer join comcode cc on cc.ccode = e.studyplace and cc.isuse=1
left outer join pplog ppl on ppl.pplno = p.pplno
<!--left outer join comcode tm on tm.ccode = ppl.typeman
left outer join comcode te on te.ccode = ppl.typeedu
left outer join comcode tg on tg.ccode = ppl.typegrade
left outer join comcode tj on tj.ccode = ppl.typejob-->
<dynamic prepend="where">
<isNotNull property="cshape" prepend="and">c.cshape = #cshape#</isNotNull>
<isNotNull property="studyplace" prepend="and">e.studyplace = #studyplace#</isNotNull>
<isNotNull property="est1not" prepend="and">a.ex0lectcnt &lt; a.ex0cnt</isNotNull>
<isNotNull property="est2not" prepend="and">a.ex1lectcnt &lt; a.ex1cnt</isNotNull>
<isNotNull property="est11not" prepend="and">a.sd0lectcnt &lt; a.sd0cnt</isNotNull>
<isNotNull property="est12not" prepend="and">a.sd1lectcnt &lt; a.sd1cnt</isNotNull>
<isNotNull property="est21not" prepend="and">a.rs0lectcnt &lt; a.rs0cnt</isNotNull>
<isNotNull property="cname" prepend="and">c2.cname like concat('%',#cname#,'%')</isNotNull>
<isNotNull property="cnamestr" prepend="and">c.cname like concat('%',#cnamestr#,'%')</isNotNull>
<isNotNull property="iscomplete" prepend="and">ifnull(b.iscomplete,0)=#iscomplete#</isNotNull>
<isNotNull property="cmisno" prepend="and">b.cmisno = #cmisno#</isNotNull>
<isNotNull property="ispasss" prepend="and">((a.sd0cnt &gt; 0 and a.sd0lectcnt &gt; 0))</isNotNull>
<isNotNull property="ispassa" prepend="and">a.ispassa = #ispassa#</isNotNull>
<isNotNull property="ispassex" prepend="and">(a.ispassm = #ispassex# and a.ispassf = #ispassex#) </isNotNull>
<isNotNull property="usernamestr" prepend="and">u.username like concat('%',#usernamestr#,'%')</isNotNull>
<isNotNull property="useridstr" prepend="and">u.userid like concat('%',#useridstr#,'%')</isNotNull>
<isNotEmpty property="usernameid" prepend="and">(u.userid like concat('%',#usernameid#,'%') or u.username like concat('%',#usernameid#,'%') or u.usernameeng like concat('%',#usernameid#,'%')) </isNotEmpty>
<isNotEmpty property="sdateall" prepend="and">(case when c.cshape = 0 and b.isrebate = 0 then p.payoktime else b.sdate end) &gt;= date_format(#sdateall#,'%Y-%m-%d 00:00:00')</isNotEmpty>
<isNotEmpty property="edateall" prepend="and">(case when c.cshape = 2 then e.eend else b.edate end) &lt;= date_format(#edateall#,'%Y-%m-%d 23:59:59')</isNotEmpty>
<isNotNull property="asname" prepend="and">ua.asname like concat('%',#asname#,'%')</isNotNull>
<isNotNull property="edate" prepend="and">date_format((case when c.cshape = 2 and e.eend is not null then e.eend else b.edate end),'%Y-%m-%d') = #edate#</isNotNull>
<isNotNull property="mobile" prepend="and">cast(AES_DECRYPT(UNHEX(u.mobile), 'np123@!' ) as char) like concat('%',#mobile#,'%')</isNotNull>
</dynamic>
) a
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<update id="grade.lectcomplete.abs" parameterClass="hashtable">
update lect set <include refid="sql.up"></include>

View File

@ -730,7 +730,7 @@
where a.cmino=#cmino#
order by rno
</select>
<select id="lect.lectinnings.forattscd" parameterClass="hashtable" resultClass="lect">
<select id="lect.lectinnings.forattscd_old" parameterClass="hashtable" resultClass="lect">
select a.*
from (
select a.lectno,c.cmino,b.cmno,b.cshape,b.cname,b2.isoffabs
@ -741,7 +741,8 @@
,d.estart,d.eend
,e.userno,e.userid, e.username
,g.istatus
,row_number() over(order by a.cdt desc,e.username) rno
<!--,row_number() over(order by a.cdt desc,e.username) rno-->
,row_number() over(order by e.username) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join pay p on p.payno = a.payno
@ -768,7 +769,144 @@
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<select id="lect.lectinnings.forattscd" parameterClass="hashtable" resultClass="lect">
select a.*
from (
select a.lectno,c.cmino,c.cmno,c.cshape,c.cname,b2.isoffabs
,a.isrebate,p.payoktime,a.iscomplete, a.stime
,a.sdate,a.edate
,a.cmisno
,c.sseq,f.cname studyplacename
,c.estart,c.eend
,e.userno,e.userid, e.username
,g.istatus
,row_number() over(order by e.username) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join pay p on p.payno = a.payno
inner join (
select c.cmno, c.cshape, c.cname, ci.cmino,d.cmisno,d.sseq,d.estart,d.eend,d.studyplace
from cm c
inner join cminning ci on c.cmno = ci.cmno
inner join cminningscd d on d.cmino = ci.cmino
where c.cshape=2 and ci.isscd=1 and ci.scdtype=0
) c on c.cmno = a.cmno and c.cmisno = a.cmisno
inner join cmev b2 on b2.cmno = c.cmno
inner join users e on e.userno = a.userno
left outer join comcode f on f.ccode = c.studyplace and f.isuse =1
left outer join lectinning g on g.cmino = c.cmino and g.lectno = a.lectno
where a.status=1 and a.ischanged=0
<isNotNull property="edate">and date_format(a.edate,'%Y%m%d') = date_format(#edate#,'%Y%m%d')</isNotNull>
<isNotNull property="cname">and c.cname like concat('%',#cname#,'%')</isNotNull>
<isNotNull property="studyplace">and c.studyplace = #studyplace#</isNotNull>
<isNotNull property="stringval17">
<isEqual property="stringval17" compareValue="0">and g.istatus is null</isEqual>
<isEqual property="stringval17" compareValue="2">and g.istatus = 2 </isEqual>
</isNotNull>
<isNotEmpty property="searchtext">
<isEqual property="searchtype" compareValue="usernamestr">and e.username like concat('%',#searchtext#,'%')</isEqual>
<isEqual property="searchtype" compareValue="useridstr">and e.userid like concat('%',#searchtext#,'%')</isEqual>
</isNotEmpty>
) a
<include refid="sql.pagedynamic"></include>
order by a.rno
</select>
<select id="lect.lectinnings.forattscd2_old" parameterClass="hashtable" resultClass="lect">
select a.*
from (
select a.lectno,c.cmino,b.cmno,b.cshape,b.cname,b2.isoffabs
,a.isrebate,p.payoktime,a.iscomplete, a.stime
,a.sdate,a.edate
,a.cmisno
,d.sseq,f.cname studyplacename
,d.estart,d.eend
,e.userno,e.userid, e.username
,g.istatus
,cc.cname zstring0
,cc2.cname zstring1
,cc3.cname zstring2
,CAST(AES_DECRYPT(UNHEX(e.mobile), 'np123@!') AS CHAR) mobile
,CAST(AES_DECRYPT(UNHEX(e.email), 'np123@!') AS CHAR) email
,row_number() over(order by a.cdt desc,e.username) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join pay p on p.payno = a.payno
INNER JOIN pplog pp ON p.pplno = pp.pplno
INNER JOIN comcode cc ON pp.typeman = cc.ccode
INNER JOIN comcode cc2 ON pp.typeedu = cc2.ccode
INNER JOIN comcode cc3 ON pp.typegrade = cc3.ccode
inner join cm b on b.cmno = a.cmno
inner join cmev b2 on b2.cmno = b.cmno
inner join cminning c on c.cmno = b.cmno
left outer join cminningscd d on d.cmisno = a.cmisno and d.cmino = c.cmino
inner join users e on e.userno = a.userno
left outer join comcode f on f.ccode = d.studyplace and f.isuse =1
left outer join lectinning g on g.cmino = c.cmino and g.lectno = a.lectno
where a.status=1 and a.ischanged=0 and c.isscd=1 and c.scdtype=0 and b.cshape=2
<isNotNull property="edate">and date_format(a.edate,'%Y%m%d') = date_format(#edate#,'%Y%m%d')</isNotNull>
<isNotNull property="cname">and b.cname like concat('%',#cname#,'%')</isNotNull>
<isNotNull property="studyplace">and d.studyplace = #studyplace#</isNotNull>
<isNotNull property="stringval17">
<isEqual property="stringval17" compareValue="0">and g.istatus is null</isEqual>
<isEqual property="stringval17" compareValue="2">and g.istatus = 2 </isEqual>
</isNotNull>
<isNotEmpty property="searchtext">
<isEqual property="searchtype" compareValue="usernamestr">and e.username like concat('%',#searchtext#,'%')</isEqual>
<isEqual property="searchtype" compareValue="useridstr">and e.userid like concat('%',#searchtext#,'%')</isEqual>
</isNotEmpty>
) a
<include refid="sql.pagedynamic"></include>
order by a.username
</select>
<select id="lect.lectinnings.forattscd2" parameterClass="hashtable" resultClass="lect">
select a.*
from (
select a.lectno,c.cmino,c.cmno,c.cshape,c.cname,b2.isoffabs
,a.isrebate,p.payoktime,a.iscomplete, a.stime
,a.sdate,a.edate
,a.cmisno
,c.sseq,f.cname studyplacename
,c.estart,c.eend
,e.userno,e.userid, e.username
,g.istatus
,cc.cname zstring0
,cc2.cname zstring1
,cc3.cname zstring2
,row_number() over(order by a.cdt desc,e.username) rno
,count(a.cdt) over() pagetotalcount
from lect a
inner join pay p on p.payno = a.payno
INNER JOIN pplog pp ON p.pplno = pp.pplno
INNER JOIN comcode cc ON pp.typeman = cc.ccode
INNER JOIN comcode cc2 ON pp.typeedu = cc2.ccode
INNER JOIN comcode cc3 ON pp.typegrade = cc3.ccode
inner join (
select c.cmno, c.cshape, c.cname, ci.cmino,d.cmisno,d.sseq,d.estart,d.eend,d.studyplace
from cm c
inner join cminning ci on c.cmno = ci.cmno
inner join cminningscd d on d.cmino = ci.cmino
where c.ismaster = 0 and c.isdel = 0 and c.cshape=2 and ci.isscd=1 and ci.scdtype=0
) c on c.cmno = a.cmno and c.cmisno = a.cmisno
inner join cmev b2 on b2.cmno = c.cmno
inner join users e on e.userno = a.userno
left outer join comcode f on f.ccode = c.studyplace and f.isuse =1
left outer join lectinning g on g.cmino = c.cmino and g.lectno = a.lectno
where a.status=1 and a.ischanged=0
<isNotNull property="edate">and date_format(a.edate,'%Y%m%d') = date_format(#edate#,'%Y%m%d')</isNotNull>
<isNotNull property="cname">and c.cname like concat('%',#cname#,'%')</isNotNull>
<isNotNull property="studyplace">and c.studyplace = #studyplace#</isNotNull>
<isNotNull property="stringval17">
<isEqual property="stringval17" compareValue="0">and g.istatus is null</isEqual>
<isEqual property="stringval17" compareValue="2">and g.istatus = 2 </isEqual>
</isNotNull>
<isNotEmpty property="searchtext">
<isEqual property="searchtype" compareValue="usernamestr">and e.username like concat('%',#searchtext#,'%')</isEqual>
<isEqual property="searchtype" compareValue="useridstr">and e.userid like concat('%',#searchtext#,'%')</isEqual>
</isNotEmpty>
) a
<include refid="sql.pagedynamic"></include>
order by a.username
</select>
<select id="lect.atts" parameterClass="hashtable" resultClass="lect">
select a.lectno,a.isrebate,a.attrate,a.stime,a.sip,a.etime,a.eip
,b.username,b.userid,b.userno
@ -1288,6 +1426,29 @@
select #lectno#,#sdno#,null,#fgno#,null,#iscopy#,#cpoint#,#feedb#,#memo#,null,null
,case when #cpoint# is not null or #feedb# is not null then now() else null end
,case when #cpoint# is not null or #feedb# is not null then #uip# else null end
,<include refid="sql.inv"></include>
from (select 1 col1) a
left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno#
where b.lectno is null
</update>
<update id="lect.lectsd.save2" parameterClass="lectsd">
update lectsd set <include refid="sql.up"></include>
,iscopy=#iscopy#,cpoint=#cpoint#
,feedb=#feedb#
,memo=#memo#
,checktime=case when #cpoint# is not null or #feedb# is not null then now() else checktime end
,checkip=case when #cpoint# is not null or #feedb# is not null then #uip# else checkip end
,submittime=case when #zstring0# = 'T' then now() else submittime end
,submitip=case when #zstring0# = 'T' then #uip# else submitip end
,fgno=#fgno#
where lectno=#lectno# and sdno=#sdno#;
insert into lectsd (lectno,sdno,atext,fgno,copyrate,iscopy,cpoint,feedb,memo,submittime,submitip,checktime,checkip,<include refid="sql.inc"></include>)
select #lectno#,#sdno#,null,#fgno#,null,#iscopy#,#cpoint#,#feedb#,#memo#
,case when #zstring0# = 'T' then now() else null end
,case when #zstring0# = 'T' then #uip# else null end
,case when #cpoint# is not null or #feedb# is not null then now() else null end
,case when #cpoint# is not null or #feedb# is not null then #uip# else null end
,<include refid="sql.inv"></include>
from (select 1 col1) a
left outer join lectsd b on b.lectno=#lectno# and b.sdno=#sdno#
@ -1505,7 +1666,8 @@
LEFT OUTER JOIN cminningscd cmis ON cmis.cmisno = a.cmisno
LEFT OUTER JOIN comcode cc ON cc.ccode = cmis.studyplace and cc.cgroup ='studyplace'
where a.userno=#userno# and a.status=1 and a.ischanged=0
and (case when a.sdate is null then b.sstime else a.sdate end) &lt; <include refid="sql.now"></include>
<!--and (case when a.sdate is null then b.sstime else a.sdate end) &lt; <include refid="sql.now"></include>-->
and (case when a.sdate is null then b.setime else a.edate end) &gt;= <include refid="sql.now"></include>
order by case when time2 > now() then 1 else 0 end asc ,sortedate asc, time2 asc
) a
union all
@ -1737,6 +1899,7 @@
update alarms set isdel=1 where alno=#alno# and userno=#userno#
</update>
<select id="lect.mylectures" parameterClass="hashtable" resultClass="lect">
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete,b.studytime,b.outfee
,case when a.sdate is null then b.sstime else a.sdate end as sdate
,case when a.edate is null then b.setime else a.edate end as edate
@ -1779,6 +1942,9 @@
<!--and (date_add(scd.eend,interval +5 day) &gt; date_format(now(),'%Y-%m-%d 23:59:59'))-->
and date_add(a.cdt, interval +1 year) &gt;= date_format(now(),'%Y-%m-%d 23:59:59'))
</isNotNull>
<isNotNull property="changeDate">
<Equal property="changeDate" compareValue="1">and (case when a.sdate is null then b.sstime else a.sdate end) > DATE_ADD(NOW(), INTERVAL -1 YEAR)</Equal>
</isNotNull>
union all
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete,b.studytime,b.outfee
,case when a.sdate is null then b.sstime else a.sdate end as sdate
@ -1808,6 +1974,9 @@
where e.isgroup=1 and e.userno=#userno# and e.pstatus=1
<isNotNull property="cshape">and b.cshape=#cshape#</isNotNull>
<isNotNull property="changeDate">
<Equal property="changeDate" compareValue="1">and (case when a.sdate is null then b.sstime else a.sdate end) > DATE_ADD(NOW(), INTERVAL -1 YEAR)</Equal>
</isNotNull>
union all
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete,b.studytime,b.outfee
,case when a.sdate is null then b.sstime else a.sdate end as sdate
@ -1836,6 +2005,115 @@
LEFT OUTER JOIN comcode cc ON cc.ccode = cmis.studyplace and cc.cgroup ='studyplace'
where a0.userno=#userno# and a0.status=1 and a0.ischanged=0
<isNotNull property="cshape">and b.cshape=#cshape#</isNotNull>
<isNotNull property="changeDate">
<Equal property="changeDate" compareValue="1">and (case when a.sdate is null then b.sstime else a.sdate end) > DATE_ADD(NOW(), INTERVAL -1 YEAR)</Equal>
</isNotNull>
order by case when setime &lt; now() then 0 else 1 end desc,sortedate desc, edate desc,payno
</select>
<select id="lect.mylectures2" parameterClass="hashtable" resultClass="lect">
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete,b.studytime,b.outfee
,case when a.sdate is null then b.sstime else a.sdate end as sdate
,case when a.edate is null then b.setime else a.edate end as edate
,b.cmno,b.cname,b.cshape
<!--,case when a.ispc=1 then pc.sstime else b.sstime end sstime
,case when a.ispc=1 then pc.setime else b.setime end setime-->
,b.sstime,b.setime
,b.classno,b.isrefund
,c.tyear,c.tseq
,e.isgroup,e.payno
,u.username,null ccpositionname,CAST(AES_DECRYPT(UNHEX(u.email), <include refid="sql.digest"></include>) AS char) email,ua.asname
,1 rno
,e.cdt
,scd.estart,scd.eend
<!--,cc.ccode studyplace
,cc.cname studyplacename-->
,ccc.cname studyplacename,
cmis.studyplace
,case when scd.eend is not null then scd.eend else a.edate end as sortedate
,ci.scdtype
from lect a
inner join cm b on b.cmno=a.cmno <!--and b.sstime &lt; <include refid="sql.now"></include>-->
<!--inner join cm pc on pc.cmno=case when a.ispc=1 then a.pcno else a.cmno end and pc.sstime &lt; <include refid="sql.now"></include>-->
inner join term c on c.tmno=b.tmno
inner join cg d on d.cgno=b.cgno <isNotNull property="cgcode">and d.cgcode=#cgcode#</isNotNull>
inner join pay e on e.payno=a.payno and e.isgroup=0
inner join users u on u.userno=a.userno
left outer join assign ua on ua.asno=u.asno
left outer join cminningscd scd on scd.cmisno = a.cmisno
left outer join cminning ci on ci.cmino = scd.cmino
<!--left outer join comcode cc on cc.ccode = b.studyplace-->
LEFT OUTER JOIN cminningscd cmis ON cmis.cmisno = a.cmisno
LEFT OUTER JOIN comcode ccc ON ccc.ccode = cmis.studyplace and ccc.cgroup ='studyplace'
where a.userno=#userno# and a.status=1 and a.ischanged=0 <!-- 20220810 and a.sdate &lt; <include refid="sql.now"></include>-->
and (case when a.sdate is null then b.sstime else a.sdate end) > DATE_ADD(NOW(), INTERVAL -1 YEAR)
<!--20220810 where a.userno=#userno# and a.status=1 and a.ischanged=0 and a.sdate &lt; <include refid="sql.now"></include>-->
<isNotNull property="cshape">and b.cshape=#cshape#</isNotNull>
<isNotNull property="issubtable">
and (ifnull(a.iscomplete,0) = 0 <!-- 20220810 and b.cshape = 2 --> and scd.estart &gt; '1900-01-01' and scd.eend &gt; '1900-01-01'
<!--and scd.estart &gt; now()-->
<!--and (date_add(scd.eend,interval +5 day) &gt; date_format(now(),'%Y-%m-%d 23:59:59'))-->
and date_add(a.cdt, interval +1 year) &gt;= date_format(now(),'%Y-%m-%d 23:59:59'))
</isNotNull>
union all
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete,b.studytime,b.outfee
,case when a.sdate is null then b.sstime else a.sdate end as sdate
,case when a.edate is null then b.setime else a.edate end as edate
,b.cmno,b.cname,b.cshape,b.sstime,b.setime,b.classno,b.isrefund
,c.tyear,c.tseq
,e.isgroup,e.payno
,u.username,null ccpositionname,CAST(AES_DECRYPT(UNHEX(u.email), <include refid="sql.digest"></include>) AS char) email,ua.asname
,row_number() over(partition by e.payno) rno
,e.cdt,null estart, null eend
<!--null studyplace
,null studyplacename-->
,a.edate as sortedate
,null scdtype,
cc.cname studyplacename,
cmis.studyplace
from pay e
inner join lect a on a.payno=e.payno and a.status=1 and a.ischanged=0
inner join cm b on b.cmno=a.cmno and b.sstime &lt; <include refid="sql.now"></include>
inner join term c on c.tmno=b.tmno
inner join cg d on d.cgno=b.cgno <isNotNull property="iscover">and d.iscover=1</isNotNull>
inner join users u on u.userno=a.userno
left outer join assign ua on ua.asno=u.asno
LEFT OUTER JOIN cminningscd cmis ON cmis.cmisno = a.cmisno
LEFT OUTER JOIN comcode cc ON cc.ccode = cmis.studyplace and cc.cgroup ='studyplace'
where e.isgroup=1 and e.userno=#userno# and e.pstatus=1
and (case when a.sdate is null then b.sstime else a.sdate end) > DATE_ADD(NOW(), INTERVAL -1 YEAR)
<isNotNull property="cshape">and b.cshape=#cshape#</isNotNull>
union all
select a.lectno,a.cmno,a.userno,a.isrebate,a.iscomplete,b.studytime,b.outfee
,case when a.sdate is null then b.sstime else a.sdate end as sdate
,case when a.edate is null then b.setime else a.edate end as edate
,b.cmno,b.cname,b.cshape,b.sstime,b.setime,b.classno,b.isrefund
,c.tyear,c.tseq
,e.isgroup,e.payno
,u.username,null ccpositionname,CAST(AES_DECRYPT(UNHEX(u.email), <include refid="sql.digest"></include>) AS char) email,ua.asname
,row_number() over(partition by e.payno) rno
,e.cdt,null estart, null eend
<!--null studyplace
,null studyplacename-->
,a.edate as sortedate
,null scdtype,
cc.cname studyplacename,
cmis.studyplace
from lect a0
inner join pay e on e.payno=a0.payno and e.isgroup=1 and e.userno&lt;&gt;#userno# and e.pstatus=1
inner join lect a on a.payno=e.payno and a.status=1 and a.ischanged=0
inner join cm b on b.cmno=a.cmno and b.sstime &lt; <include refid="sql.now"></include>
inner join term c on c.tmno=b.tmno
inner join cg d on d.cgno=b.cgno <isNotNull property="iscover">and d.iscover=1</isNotNull>
inner join users u on u.userno=a.userno
left outer join assign ua on ua.asno=u.asno
LEFT OUTER JOIN cminningscd cmis ON cmis.cmisno = a0.cmisno
LEFT OUTER JOIN comcode cc ON cc.ccode = cmis.studyplace and cc.cgroup ='studyplace'
where a0.userno=#userno# and a0.status=1 and a0.ischanged=0
and (case when a.sdate is null then b.sstime else a.sdate end) > DATE_ADD(NOW(), INTERVAL -1 YEAR)
<isNotNull property="cshape">and b.cshape=#cshape#</isNotNull>
order by case when setime &lt; now() then 0 else 1 end desc,sortedate desc, edate desc,payno
</select>
<select id="lect.myexams" parameterClass="hashtable" resultClass="examuser">
@ -2211,6 +2489,28 @@
where (t1.status = 1 or t1.status = 2) and t2.isdel= 0 and t2.isuse= 1 and t2.ismaster = 0 and t1.userno = #userno# and t2.pcmno = #pcmno#
)t
</select>
<select id="lect.pplog.get" parameterClass="hashtable" resultClass="lect">
select l.lectno, l.cmno, l.payno, pp.cshape, cc.cname zstring1, cc2.cname zstring2, cc3.cname zstring3, cc4.cname zstring4, cc5.cname zstring5
from lect l
inner join pay p on l.payno = p.payno and l.userno = p.userno
inner join pplog pp on p.pplno = pp.pplno
left outer join comcode cc on cc.ccode = pp.typeman
left outer join comcode cc2 on cc2.ccode = pp.typeedu
left outer join comcode cc3 on cc3.ccode = pp.typegrade
left outer join comcode cc4 on cc4.ccode = pp.typejob
left outer join comcode cc5 on cc5.ccode = pp.typejobitem
where l.lectno = #lectno# and l.userno = #userno#
</select>
<!--과제 첨부 삭제시-->
<update id="lect.lectsd.del" parameterClass="int">
update lectsd set <include refid="sql.up"></include>
,submittime=null
,submitip=null
,fgno=null
where lectno=#lectno# and sdno=#sdno#;
</update>
</statements>
</sqlMap>

View File

@ -13,7 +13,7 @@
<provider name="MySql" />
<!--실서버 원격접속(개발자)-->
<!--<dataSource name="mysqlcon" connectionString="Server=118.219.255.222;Database=lmsynicte;User ID=ynicteadmin;Password=ynicte@Database" />-->
<dataSource name="mysqlcon" connectionString="Server=118.219.255.222;Database=lmsynicte;User ID=ynicteadmin;Password=ynicte@Database" />
<dataSource name="mysqlcon" connectionString="Server=118.219.255.222;Database=lmsynicte;User ID=ynicteadmin;Password=ynicte@Database;Connect Timeout=30" />
</database>

View File

@ -35,6 +35,14 @@ namespace NP.FO.Controllers
bmnos += "," + s.Split(':')[0];
}
}
var pplogGet = Dao.Get<Lect>("lect.pplog.get", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "lectno", vm.Lect.lectno } }).FirstOrDefault();
vm.Lect.zstring1 = pplogGet.zstring1;
vm.Lect.zstring2 = pplogGet.zstring2;
vm.Lect.zstring3 = pplogGet.zstring3;
vm.Lect.zstring4 = pplogGet.zstring4;
vm.Lect.zstring5 = pplogGet.zstring5;
vm.Datas = Dao.Get<Data>("cr.main.boardalarm", new System.Collections.Hashtable() { { "bmnos", bmnos != null ? bmnos.Substring(1) : bmnos},{ "lect", vm.croomlectno },{ "cmno", vm.croomcmno }, { "lectno", vm.croomlectno }, { "userno", SUserInfo.UserNo } });
vm.LectInnings = Dao.Get<LectInning>("cr.cminnings", new System.Collections.Hashtable() { { "lectno", vm.croomlectno },{ "userno",SUserInfo.UserNo}, { "notstudy" + (Request.IsLocal ? "x" : ""), 1 },{ "limit", 6} });
vm.intval2 = Convert.ToInt32((GetConfig("inninglimit") ?? "10"));

View File

@ -798,12 +798,13 @@ namespace NP.FO.Controllers
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).Where(w => w.isuse == 1).ToList();
vm.CMs = Dao.Get<CM>("cm.subcms", hsData).ToList();
}
else if (vm.stringval == "1") //기타교육
{
vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "ismaster", "1" }, { "cshape", vm.stringval2 }, { "cgno", vm.stringval3 } }).Where(w => w.isuse == 1).ToList();
vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "ismaster", "1" }, { "cshape", vm.stringval2 }, { "cgno", vm.stringval3 }, { "isuse", 1 } }).ToList();
}
//hsData.Clear();
@ -899,7 +900,6 @@ namespace NP.FO.Controllers
//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)

View File

@ -228,7 +228,7 @@ namespace NP.FO.Controllers
hsData.Add("cgcode", vm.intval > 0 ? TestCode3 : null);
//hsData.Add("cshape", 2);
hsData.Add("issubtable", 1);
vm.Lects = Dao.Get<Lect>("lect.mylectures", hsData);
vm.Lects = Dao.Get<Lect>("lect.mylectures2", hsData);
foreach (var item in vm.Lects)

View File

@ -704,7 +704,7 @@
<Content Include="Views\My\MyAssInfo.cshtml" />
<Content Include="Views\Course\ApplyEdu.cshtml" />
<Content Include="Views\Course\ApplyComplete.cshtml" />
<Content Include="Views\Course\ApplyPay.cshtml" />
<Content Include="Views\Course\ApplyPay_221227.cshtml" />
<Content Include="Views\Course\XpayREQ.cshtml" />
<Content Include="Views\Course\XpayReturnURL.cshtml" />
<Content Include="Views\My\Document.cshtml" />
@ -716,7 +716,7 @@
<Content Include="Views\Shared\Partial\MobileChk.cshtml" />
<Content Include="Views\Home\PrivacyPolicy.cshtml" />
<Content Include="Views\Home\UsePolicy.cshtml" />
<Content Include="Views\Course\ApplyAgree.cshtml" />
<Content Include="Views\Course\ApplyAgree_old.cshtml" />
<Content Include="Views\Open\PlayOpen.cshtml" />
</ItemGroup>
<ItemGroup>
@ -734,6 +734,12 @@
<Content Include="Views\Account\PwChange.cshtml" />
<Content Include="Views\Account\DormantCancel.cshtml" />
<Content Include="Views\Course\ApplyPay_1005.cshtml" />
<Content Include="Views\Shared\Partial\policy.cshtml" />
<Content Include="Views\Shared\Partial\privacy.cshtml" />
<Content Include="Views\Shared\Partial\Select.cshtml" />
<Content Include="Views\Course\ApplyEdu_2301대체용.cshtml" />
<Content Include="Views\Course\ApplyAgree.cshtml" />
<Content Include="Views\Course\ApplyPay.cshtml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Base\Base.csproj">

View File

@ -110,5 +110,32 @@
msg("운영자에게 문의해주세요.");
}
}
function cbfiledel() {
if (capResult.code == 1000) {
var ul = $(_filedela).closest("ul");
$(_filedela).closest("li").remove();
if ($(ul).find("li input.file").length + $(ul).find("li a.file").length < getint($(ul).attr("data-filecount"))) {
$(ul).append("<li><input type=\"file\" class=\"file\" name=\"" + $(ul).attr("data-fname") + "\" accept=\"media_type\" onchange=\"filechange(this)\" /><a href=\"#\" class=\"filedel\" onclick=\"filedel(0, this)\">삭제</a></li>");
}
var empli = false;
$.each($(ul).find("li"), function (i, li) {
if ($(li).find("input.file").val() == "") {
if (empli) {
$(li).addClass("delme");
} else {
empli = true;
}
}
});
$(ul).find("li.delme").remove();
let sdno = @(Model.LectSD.sdno);
let lectno = @(Model.LectSD.lectno);
capp("/fcommon/delfileOk", { lectno: lectno, sdno: sdno });
}
}
</script>
}

View File

@ -15,6 +15,7 @@
@*<th>진행평가</th>*@
<th>최종평가</th>
<th>과제평가</th>
<th style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">집체교육(7h)</th>
@*<th>토론평가</th>*@
<th>총점</th>
</tr>
@ -26,6 +27,7 @@
@*<td>@(Model.Lect.mportion)%</td>*@
<td>@(Model.Lect.fportion)%</td>
<td>@(Model.Lect.sportion)%</td>
<td style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">-</td>
@*<td>@(Model.Lect.dportion)%</td>*@
<td class="red">100%(점)</td>
</tr>
@ -35,6 +37,7 @@
@*<td>@(Model.Lect.mcut)%이상</td>*@
<td>@(Model.Lect.fcut)점이상</td>
<td>@(Model.Lect.scut)점이상</td>
<td style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">집체교육 참석(7h)</td>
@*<td>@(Model.Lect.dcut)%이상</td>*@
<td class="red">@(Model.Lect.cut)점이상</td>
</tr>
@ -44,6 +47,7 @@
@*<td>@(Model.Lect.ex0lectpoint)점</td>*@
<td>@(Model.Lect.ex1lectpoint)점</td>
<td>@(Model.Lect.sd0lectpoint)점</td>
<td style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">@(Model.Lect.istatus == 2 ? "출석완료" : "-")</td>
@*<td>@(Model.Lect.sd1lectpoint)점</td>*@
<td class="red">@(Model.Lect.apoint + Model.Lect.mpoint + Model.Lect.fpoint + Model.Lect.spoint + Model.Lect.dpoint)점</td>
</tr>

View File

@ -14,6 +14,7 @@
@*<th>진행평가</th>*@
<th>최종평가</th>
<th>과제평가</th>
<th style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">집체교육(7h)</th>
@*<th>토론평가</th>*@
<th>총점</th>
</tr>
@ -25,6 +26,7 @@
@*<td>@(Model.Lect.ex0lectpoint)점</td>*@
<td>@(Model.Lect.ex1lectpoint)점</td>
<td>@(Model.Lect.sd0lectpoint)점</td>
<td style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">@(Model.Lect.istatus == 2 ? "출석완료" : "-")</td>
@*<td>@(Model.Lect.sd1lectpoint)점</td>*@
<td style="color:#ff0000;">@(Model.Lect.apoint + Model.Lect.mpoint + Model.Lect.fpoint + Model.Lect.spoint + Model.Lect.dpoint)점</td>
@ -41,13 +43,14 @@
@*<td>@(Model.Lect.mcut)점이상</td>*@
<td>@(Model.Lect.fcut)점이상</td>
<td>@(Model.Lect.scut)점이상</td>
<td style="display:@(Model.Lect.isoffabs == 1 ? "" : "none")">집체교육 참석(7h)</td>
@*<td>@(Model.Lect.dcut)점이상</td>*@
<td style="color:#ff0000;">@(Model.Lect.cut)점이상</td>
</tr>
<tr style="display:none;">
@if (Model.Lect.iscomplete == null)
{
<td colspan="5" >※ 나의성적이 수료기준을 충족하였을 경우 성적 화면에서 수료요청을 해주셔야 합니다.</td>
<td colspan="6">※ 나의성적이 수료기준을 충족하였을 경우 성적 화면에서 수료요청을 해주셔야 합니다.</td>
}
</tr>
</tbody>
@ -61,28 +64,93 @@
@if (Model.Lect.isoffabs == 1)
{
<div class="lctcScore">
<div class="lctCont">
<h5>집합교육 안내</h5>
<div class="lctCont" style="padding-bottom:0">
<h5>집체교육 안내</h5>
<table>
<thead>
<tr>
<th>집체일정</th>
<th>교육장소</th>
<th>집체장소</th>
<th>준비물</th>
<th>출석여부</th>
</tr>
</thead>
<tbody>
@if (Model.Lect.istatusname == "출석")
{
<tr>
<td>-</td>
<td>-</td>
<td>-</td>
<td>@(Model.Lect.istatusname == "출석" ? "출석완료" : "-")</td>
</tr>
}
else
{
<tr>
<td>@(string.Format(Model.Lect.estart.ToString("yyyy-MM-dd")))</td>
<td>@Model.Lect.studyplacename</td>
<td>@(Model.Lect.studyplacename)교육장</td>
<td>신분증,필기도구</td>
<td>@Model.Lect.istatusname</td>
<td>-</td>
</tr>
}
</tbody>
</table>
<br />
<h5>신청내용</h5>
<table class="subTable" style="border:3px solid red;">
<tr>
<th>교육유형</th>
@if (!string.IsNullOrEmpty(Model.Lect.zstring1))
{
<th>기술인분류</th>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring2))
{
<th>교육목적</th>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring3))
{
<th>등급</th>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring4))
{
<th>직무분야</th>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring5))
{
<th>전문분야</th>
}
</tr>
<tr>
<td>@(Model.stringval2 == "0" ? "온라인교육" : Model.stringval2 == "1" ? "교육장교육" : "온라인교육")</td>
@if (!string.IsNullOrEmpty(Model.Lect.zstring1))
{
<td>@Model.Lect.zstring1</td>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring2))
{
<td>@Model.Lect.zstring2</td>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring3))
{
<td>@Model.Lect.zstring3</td>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring4))
{
<td>@Model.Lect.zstring4</td>
}
@if (!string.IsNullOrEmpty(Model.Lect.zstring5))
{
<td>@Model.Lect.zstring5</td>
}
</tr>
</table>
</div>
</div>
}
<div class="lctCont" style="padding-left:0px;">
<div class="lctcHalf">

View File

@ -63,7 +63,7 @@
</dl>
}
<dl class="lctSecCont">
<dl class="lctSecCont" style="display:none">
<dt>수료기준</dt>
<dd>
<table class="fairStand">
@ -121,7 +121,7 @@
</table>
</dd>
</dl>
<p style="color:red;">※ 수료기준은 각 항목의 백분율 기준으로 표기합니다.</p>
<p style="color: red; display: none">※ 수료기준은 각 항목의 백분율 기준으로 표기합니다.</p>
@section scriptsHeader{
}

View File

@ -42,14 +42,23 @@
}
if (Model.CM.cshape == 1)
{
strEduInfo = string.Format("교육기간 {0} | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
else
{
strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary);
strEduInfo += string.Format("<span> 교육종료일 {0} </span> | ", Model.SelectCMInningscd.eend2);
strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime);
strEduInfo += string.Format("<span class='red'> {0}과정 </span><br />", (Model.CM.isrefund == 1 ? "환급" : "비환급"));
strEduInfo += string.Format("<span style='margin-left:5px;' class='red'>집체교육 참석일 : {0}</span><br />", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일"));
strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
//strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
// Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@ -163,7 +172,7 @@
2. 총 35시간 교육 중 28시간 이상 이수
</p>*@
@*}*@
<h4 class="clsTitle">환급대상자 필수확인사항</h4>
<h4 class="clsTitle">환급과정 신청 시 환급대상자 필수확인사항</h4>
<p class="subTxt">
<span style="color:red;"> - 입교 전 출결관리를 위해 어플 설치 및 로그인(고용노동부 HRD-NET 및 출결관리 어플), 위탁계약서(회사 직인 필수) 지참</span><br />
<span style="color:red;">- 교육비 입금 시 신용카드는 반드시 법인카드로만 결제, 무통장 입금은 입금자명을 회사상호+교육생 형식으로 작성</span><br />
@ -176,14 +185,14 @@
{
<h4 class="clsTitle">교육수료조건</h4>
<p class="subTxt">
1. <span class="subTxt red">동영상강의 35시간 진도율 90% 이상</span><br />
2. <span class="subTxt red">과제물 제출(표지 제외 A4 2장 이상 분량)</span><br />
3. <span class="subTxt red">시험평가 58점 이상 득점</span><br />
4. 총점 70점 이상 득점 : 시험평가(60점) + 과제(20점) + 진도율(20점) =100%(점)<br /><br />
1. <span class="subTxt">동영상강의 진도율 90% 이상</span><br />
2. <span class="subTxt">과제물 제출(표지 제외 A4용지 2장 이상 분량)</span><br />
3. <span class="subTxt">시험평가 60점 이상 득점</span><br />
4. <span class="subTxt red">집체교육7시간 참석</span><br /><br />
<span class="subTxt red">※ 위 4가지 조건 모두 만족하셔야 수료가 가능합니다.</span><br />
<span class="subTxt red">※ 하루 최대 학습 시간은 10차시 입니다.</span><br />
<span style="font-size:15pt;">※ 현재 코로나로 인하여 기존 <span style="color:red;">(동영상강의 시청 28시간 + 현장집체7시간 참석)</span>에서 한시적으로 <span style="color:red;">(동영상강의 시청 35시간)으로 진행합니다.</span></span>
@*<span class="subTxt red">※ 하루 최대 학습 시간은 10차시 입니다.</span><br />
<span style="font-size:15pt;">※ 현재 코로나로 인하여 기존 <span style="color:red;">(동영상강의 시청 28시간 + 현장집체7시간 참석)</span>에서 한시적으로 <span style="color:red;">(동영상강의 시청 35시간)으로 진행합니다.</span></span>*@
@*※ 국토부 장관이 인정하는 사유로 집체교육을 실시 하지 못할 시 에는 동영상강의로 대체되며 7시간을 100% 이수하셔야 수료가 가능합니다.<br />*@
</p>

View File

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

View File

@ -48,8 +48,17 @@ else
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary);
strEduInfo += string.Format("<span> 교육종료일 {0} </span> | ", Model.SelectCMInningscd.eend2);
strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime);
strEduInfo += string.Format("<span class='red'> {0}과정 </span><br />", (Model.CM.isrefund == 1 ? "환급" : "비환급"));
strEduInfo += string.Format("<span style='margin-left:5px;' class='red'>집체교육 참석일 : {0}</span><br />", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일"));
strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
//strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
//Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@ -79,9 +88,8 @@ else
</li>
</ul>
<h4 class="clsTitle">신청하신 교육은 상단 메뉴의 <strong class="red">마이페이지 > 나의강의실</strong> 에서 확인 및 수강이 가능합니다.</h4>
<br />
<h4 class="clsTitle">교육비 입금기한 안내</h4>
<p class="subTxt">
<span>- 온라인교육 : 신청일로 부터 한 달 이내<br /></span>

View File

@ -61,8 +61,15 @@
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
//strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
//Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary);
strEduInfo += string.Format("<span> 교육종료일 {0} </span> | ", Model.SelectCMInningscd.eend2);
strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime);
strEduInfo += string.Format("<span class='red'> {0}과정 </span><br />", (Model.CM.isrefund == 1 ? "환급" : "비환급"));
strEduInfo += string.Format("<span style='margin-left:5px;' class='red'>집체교육 참석일 : {0}</span><br />", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일"));
strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
}
@ -515,8 +522,9 @@
$(".div-isCompany").show();
$(".uduty").hide();
} else if (model.cm.cshape == 1) {
$(".div-isCompany").hide();
$(".uduty").show();;
// Model.CM.isrefund
$(".div-isCompany").show();
$(".uduty").show();
} else if (model.cm.cshape == 2) {
$(".div-isCompany").show();
$(".uduty").hide();

View File

@ -0,0 +1,755 @@
@model NP.Model.VMCourse
@{
var isallday = Model.CM.retimeymd == "2099-12-31" ? true : false;
}
<form id="historyForm" method="post">
<input type="hidden" name="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" value="@Model.stringval7" />@*전문분야*@
<input type="hidden" name="pplno" value="@Model.pplno" />@*pplno*@
<input type="hidden" name="selMonth" value="@Model.selMonth" />@*교육일정선택(selMonth)*@
<input type="hidden" name="isCompany" value="@Model.isCompany" />@*업체/개인 선택*@
<input type="hidden" name="CM.cmino" id="becmino" value="@Model.CM.cmino" />
<input type="hidden" name="CM.cmisno" id="becmisno" value="@Model.CM.cmisno" />
</form>
<form id="applyEduForm" method="post">
<input type="hidden" name="cmno" id="cmno" value="@Model.cmno" /> @*강좌번호*@
<input type="hidden" name="stringval" id="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
<input type="hidden" name="stringval2" id="stringval2" value="@Model.stringval2" />@*교육유형*@
<input type="hidden" name="stringval3" id="stringval3" value="@Model.stringval3" />@*기술인분류*@
<input type="hidden" name="stringval4" id="stringval4" value="@Model.stringval4" />@*교육목적*@
<input type="hidden" name="stringval5" id="stringval5" value="@Model.stringval5" />@*등급*@
<input type="hidden" name="stringval6" id="stringval6" value="@Model.stringval6" />@*직무분야*@
<input type="hidden" name="stringval7" id="stringval7" value="@Model.stringval7" />@*전문분야*@
<!--<input type="hidden" name="isCompany" value="@Model.isCompany" />-->@*업체/개인 선택*@
<input type="hidden" name="cmisno" id="cmisno" />
<input type="hidden" name="applicableCM" id="applicableCM" />
<input type="hidden" name="cshape" id="cshape" value="@Model.CM.cshape" />
<h4 class="clsTitle">신청강좌</h4>
<ul class="smtList mt0" style="font-weight:500;">
<li>
<ul class="smtlChk" style="padding-left:0px;">
<li>
<p>
<span class="@(Model.CM.cshape == 0 ? "org" : Model.CM.cshape == 1 ? "nav_grn" : "nav_blu")">
@(Model.CM.cshape == 0 ? "온라인" : Model.CM.cshape == 1 ? "교육장교육" : "온라인교육")
</span>
@{
string strStudyPlaceTmp = "";
string strStudyPlaceTmp2 = "";
string strEduInfo = "";
if (Model.SelectCMInningscd.studyplace != null)
{
strStudyPlaceTmp = Model.SelectCMInningscd.studyplacename + "교육장";
strStudyPlaceTmp2 = Model.CM.cname;
}
else
{
strStudyPlaceTmp = Model.CM.cname;
}
if (Model.CM.cshape == 1)
{
strEduInfo = string.Format("교육기간 {0} | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
// 23년 1월 오픈
//strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary);
//strEduInfo += string.Format("<span> 교육종료일 {0} </span> | ", Model.SelectCMInningscd.eend2);
//strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime);
//strEduInfo += string.Format("<span class='red'> {0}과정 </span><br />", (Model.CM.isrefund == 1 ? "환급" : "비환급"));
//strEduInfo += string.Format("<span style='margin-left:5px;'>집체교육 참석일 : {0}</span><br />", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일"));
//strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
}
}
@if (Model.SelectCMInningscd.studyplace == null)
{
<span style="font-size:22px"><label><span>@strStudyPlaceTmp</span><span class="blu">@strStudyPlaceTmp2 </span></label></span><br />
}
else if (Model.SelectCMInningscd.studyplace != null)
{
<span style="font-size:22px"><label><span class="blu">[@strStudyPlaceTmp]</span><span>@strStudyPlaceTmp2 </span></label></span><br />
}
<span><label>@Html.Raw(strEduInfo)</label></span>
</p>
</li>
</ul>
<div class="apyCost">
결제금액 : <span class="red" id="spninfeecost"></span> 원
</div>
</li>
</ul>
<div id="eduArea" style="display:none">
<h4 class="clsTitle">교육종료일 선택 (운영시 가림예정) </h4>
<p style="margin-bottom: 30px; color:red;">
※ 원하는 교육종료일(수료일자)를 선택해 주세요. 입금완료시 바로 교육이 시작됩니다.<br>
※ 관련 법령에 의해 일일 최대 학습시간은 학습중인 모든 과정에 대하여 10시간(10차시)이오니 교육종료일 선택 시 꼭!참고하시기 바랍니다..<br>
※ 수료일자 까지 수료조건을 만족하시면 그 다음날 오후 3시 이후에 수료증 출력이 가능합니다.
</p>
@*<select id="selMonth">
@for (int i = 1; i <= 12; i++)
{
<option @(DateTime.Now.Month == i ? "selected" : "") value="@(i)">@(i)월</option>
}
</select>
<span>&nbsp;&nbsp;&nbsp;※원하는 수료일자(월)을 선택하세요. 지정하신 일자가 수료일자가 됩니다.</span>
<br /><br />*@
<ul id="ulScd"></ul>
</div>
@if (Model.CM.isaccommodation == 1 && Model.SelectCMInningscd.studyplace == "19")
{
<h4 class="clsTitle">합숙여부 <span style="color:red; font-weight:700;">(영천교육장만 합숙가능)</span> </h4>
<ul class="bakRadio">
<li>
<input type="radio" name="isaccommodation" id="isaccommodation1" value="1" /><label for="isaccommodation1"> 예 (<span id="spnaccommofee"></span>원 추가)</label>
</li>
<li>
<input type="radio" name="isaccommodation" id="isaccommodation2" value="0" checked /><label for="isaccommodation2"> 아니오</label>
</li>
</ul>
}
@if (Model.CM.isrefund == 1)
{
<h4 class="clsTitle">환급여부선택<span style="color:red; font-weight:700;"> (고용보험 가입자만 환급가능)</span></h4>
<table class="clsTable">
<tbody>
<tr>
<th>환급여부</th>
<td>
<ul class="bakRadio">
<li><input type="radio" name="isrebate" id="isrebate1" value="1" checked><label for="isrebate1">환급</label></li>
<li><input type="radio" name="isrebate" id="isrebate0" value="0"><label for="isrebate0">비환급</label></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p class="subDsc mt10">※ <span style="color:red;">(주의)</span> 신청중인 교육이 환급과정이라 하더라도 <span style="color:red;">고용보험 미 가입자는 교육비 환급이 되지 않습니다. </span></p>
}
<div class="div-isCompany">
<h4 class="clsTitle">소속선택</h4>
<table class="clsTable">
<tbody>
<tr>
<th>업체/개인 선택</th>
<td>
<ul class="bakRadio">
<li><input type="radio" name="isCompany" id="isCompany1" value="1" @(Model.Assign.asno != 0 ? "checked" : "") /><label for="isCompany1"> 업체</label></li>
<li><input type="radio" name="isCompany" id="isCompany0" value="0" @(Model.Assign.asno != 0 ? "" : "checked") /><label for="isCompany0"> 개인</label></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p class="subDsc mt10">
<span style="color:red;font-weight:700;font-size:20px">※계산서 발급을 원할 경우 반드시 업체로 선택해 주세요. (단 카드결제는 관련 법에 의해 계산서 발급불가) </span><br>
※수료증 소속부분에 기재될 내용으로 소속업체가 없으면 개인을 선택해 주세요.
</p>
</div>
@if (Model.CM.isrefund == 1)
{
<div class="div-rbankInfo">
<h4 class="clsTitle">환급금 수령계좌 등록<span style="color: red; font-weight: 700;"> (법인계좌만 입력가능)</span></h4>
<p class="subDsc">*는 필수 입력사항입니다.</p>
<table class="clsTable">
<tbody>
<tr>
<th class="req">은행명</th>
<td><input type="text" name="rbankname" onkeydown="checkSpacebar()" onKeypress='if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode < 128 && event.keyCode > 122)) event.returnValue = false;' id="rbankname" class="apyIpt" value="@(Model.PPLog != null ? Model.PPLog.rbankname : string.Empty)" /></td>
</tr>
<tr>
<th class="req">계좌번호</th>
<td><input type="number" name="rbankacc" onkeydown="checkSpacebar()" onKeypress='if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode < 128 && event.keyCode > 122)) event.returnValue = false;' id="rbankacc" class="apyIpt" value="@(Model.PPLog != null ? Model.PPLog.rbankacc : string.Empty)" /></td>
</tr>
<tr>
<th class="req">예금주</th>
<td><input type="text" name="rbankowner" onkeydown="checkSpacebar()" onKeypress='if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode < 128 && event.keyCode > 122)) event.returnValue = false;' id="rbankowner" class="apyIpt" value="@(Model.PPLog != null ? Model.PPLog.rbankowner : string.Empty)" /></td>
</tr>
<tr>
<th class="req">고용보험관리번호</th>
<td><input type="number" name="eino" onkeydown="checkSpacebar()" onKeypress='if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode < 128 && event.keyCode > 122)) event.returnValue = false;' id="eino" class="apyIpt" value="@(Model.PPLog != null ? Model.PPLog.eino : string.Empty)" /><button type="button" onclick="insuranceguide()" style="margin-left:10px;">고용보험관리번호 안내</button></td>
</tr>
</tbody>
</table>
<p class="subDsc mt10">※ 환급금액 지급받는 계좌이므로 반드시 소속된 사업장의 법인계좌정보만 입력하여 주시기 바랍니다. <span style="color:red;">(개인계좌 또는 사업주 개인의 계좌로는 환급이 불가합니다)</span></p>
</div>
}
<div id="postlayer" class="daumpost"><a href="#" class="btn btn-xxs btn-select closedaumpost" onclick="closeDaumPostcode();">close</a></div>
@*@if (Model.CM.isrefund == 1)
{*@
<div class="div-companyInfo">
<h4 class="clsTitle">회사정보 확인</h4>
<p class="subDsc">*는 필수 입력사항입니다.</p>
@*<p class="subDsc">계산서 발급을 원할 경우 담당자성명, 담당자연락처를 제외한 모든 사항 필수 입력을 해주세요.</p>*@
@Html.HiddenFor(x => x.Assign.asno)
@Html.HiddenFor(x => x.Assign.eino)
<table class="clsTable">
<tbody>
<tr>
<th class="onreq offreq">회사명</th>
<td>
@Html.TextBoxFor(x => x.Assign.asname, new { @class = "apylpt", @maxlength = "100", @style = "background-color:#ddd;", @readonly = true })
<a href="#" id="btnassign" class="btnassign">검색</a>
</td>
</tr>
<tr>
<th class="onreq offreq">사업자등록번호</th>
<td>@Html.TextBoxFor(x => x.Assign.brno, new { @class = "apylpt", @maxlength = "10" })</td>
</tr>
<tr>
<th class="onreq offreq">대표자성명</th>
<td>@Html.TextBoxFor(x => x.Assign.ceoname, new { @class = "apylpt", @maxlength = "50" })</td>
</tr>
<tr>
<th class="onreq offreq">주소</th>
<td>
<ul class="apyAddr postbox">
<li>
@Html.TextBoxFor(x => x.Assign.post, new { @class = "postno", @style = "background-color:#ddd;" })
</li>
<li>
@Html.TextBoxFor(x => x.Assign.address1, new { @class = "postadr", @style = "background-color:#ddd;", @placeholder = "주소입력" })
</li>
<li>
@Html.TextBoxFor(x => x.Assign.address2, new { @class = "postadrsub", @placeholder = "나머지 주소입력", @maxlength = "200" })
</li>
<li>
<a href="#" onclick="getpost2(this);">우편번호검색</a>
</li>
</ul>
</td>
</tr>
<tr>
<th class="onreq offreq">업태</th>
<td>@Html.TextBoxFor(x => x.Assign.btype, new { @class = "apylpt", @maxlength = "50" })</td>
</tr>
<tr>
<th class="onreq offreq">종목</th>
<td>@Html.TextBoxFor(x => x.Assign.bkind, new { @class = "apylpt", @maxlength = "50" })</td>
</tr>
<tr>
<th>담당자성명</th>
<td>@Html.TextBoxFor(x => x.Assign.mname, new { @class = "apylpt", @maxlength = "30" })</td>
</tr>
<tr>
<th>담당자연락처</th>
<td>
<ul class="usrPhn">
<li>@Html.TextBoxFor(x => x.Assign.mphone1, new { @maxlength = "3" })</li>
<li>-</li>
<li>@Html.TextBoxFor(x => x.Assign.mphone2, new { @maxlength = "4" })</li>
<li>-</li>
<li>@Html.TextBoxFor(x => x.Assign.mphone3, new { @maxlength = "4" })</li>
</ul>
</td>
</tr>
<tr>
<th class="onreq offreq">계산서받을 이메일</th>
<td>
<ul class="clsMail">
<li>@Html.TextBoxFor(x => x.Assign.taxemail1, new { @maxlength = "100" })</li>
<li></li>
<li>@Html.TextBoxFor(x => x.Assign.taxemail2, new { @maxlength = "30" })</li>
@Html.Partial("./Partial/Select",null,new ViewDataDictionary { { "special","email"},{ "name","taxemail3"},{"df",":직접입력" },{"onchange","emailchange()" } })
</ul>
</td>
</tr>
@*<tr>
<th>사업자등록증 <span class="red">(선택)</span></th>
<td>
@Html.Partial("./Partial/file", Model.FileList, new ViewDataDictionary { { "fgn", "fgnobno" }, { "fgv", Model.Assign.fgnobno ?? 0 }, { "filename", "file1" }, { "filecount", 1 }, { "fileext", "png,jpg,gif,pdf" }, { "datakey", "assign.fgnobno" } })
</td>
</tr>*@
</tbody>
</table>
</div>
@*}*@
<h4 class="clsTitle">개인정보 확인</h4>
<p class="subDsc">*는 필수 입력사항입니다.</p>
@Html.HiddenFor(x => x.User.userno)
<table class="clsTable">
<tbody>
<tr>
<th class="req">이름</th>
<td><p>@Html.TextBoxFor(x => x.User.username, new { @class = "apylpt", @maxlength = "10", @style = "background-color:#ddd;", @readonly = true })</p></td>
</tr>
<tr>
<th class="req">주민등록번호</th>
<td>
<ul class="usrNum">
<li>@Html.TextBoxFor(x => x.User.userpno1, new { @maxlength = "6", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
<li>-</li>
<li>@Html.TextBoxFor(x => x.User.userpno2, new { @maxlength = "7", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
</ul>
</td>
</tr>
<tr>
<th class="req">휴대전화</th>
<td>
<ul class="usrPhn">
<li>@Html.TextBoxFor(x => x.User.mobile1, new { @maxlength = "3", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
<li>-</li>
<li>@Html.TextBoxFor(x => x.User.mobile2, new { @maxlength = "4", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
<li>-</li>
<li>@Html.TextBoxFor(x => x.User.mobile3, new { @maxlength = "4", @readonly = "readonly", @style = "background-color:#ddd;" })</li>
</ul>
</td>
</tr>
<tr>
<th class="req">이메일</th>
<td>
<ul class="clsMail">
<li>@Html.TextBoxFor(x => x.User.email1, new { @maxlength = "100" })</li>
<li></li>
<li>@Html.TextBoxFor(x => x.User.email2, new { @maxlength = "30" })</li>
</ul>
</td>
</tr>
<tr>
<th class="req">주소</th>
<td>
<ul class="apyAddr postbox">
<li>
@Html.TextBoxFor(x => x.User.post, new { @class = "postno", @style = "background-color:#ddd;", @readonly = true })
</li>
<li>
@Html.TextBoxFor(x => x.User.address1, new { @class = "postadr", @style = "background-color:#ddd;", @readonly = true, @placeholder = "주소입력" })
</li>
<li>
@Html.TextBoxFor(x => x.User.address2, new { @class = "postadrsub", @placeholder = "나머지 주소입력", @maxlength = "200" })
</li>
<li>
<a href="#" onclick="getpost2(this);">우편번호검색</a>
</li>
</ul>
</td>
</tr>
<tr style="display:none;">
<th class="req">채용형태</th>
<td>
<ul class="bakRadio">
<li>
@Html.RadioButtonFor(model => model.User.isassignuser, "1", new { @name = "recruit", @checked = "checked" })정규직
</li>
<li>
@Html.RadioButtonFor(model => model.User.isassignuser, "0", new { @name = "recruit" })비정규직
</li>
</ul>
</td>
</tr>
<tr class="uduty">
<th class="req">직위</th>
<td>
@Html.TextBoxFor(x => x.User.uduty, new { @class = "apylpt", @maxlength = "20" })
</td>
</tr>
<tr>
<th class="req">학력</th>
<td>
<ul class="bakRadio">
<li>
@Html.RadioButtonFor(model => model.User.slevel, "0", new { @name = "eduGrade", @checked = "checked" })기타
</li>
<li>
@Html.RadioButtonFor(model => model.User.slevel, "1", new { @name = "eduGrade" })고졸
</li>
<li>
@Html.RadioButtonFor(model => model.User.slevel, "2", new { @name = "eduGrade" })학사
</li>
<li>
@Html.RadioButtonFor(model => model.User.slevel, "3", new { @name = "eduGrade" })석사
</li>
<li>
@Html.RadioButtonFor(model => model.User.slevel, "4", new { @name = "eduGrade" })박사
</li>
</ul>
</td>
</tr>
</tbody>
</table>
<ul class="clsBtn society">
@if (Model.CM.applicableCM == "정상접수")
{
<li><a href="#" onclick="javascript:applyEdu();">수강신청</a></li>
}
else
{
<li><a href="#" onclick="javascript:applyEdu()">수강대기 신청</a></li>
}
<li><a href="#" id="btnback">뒤로가기</a></li>
</ul>
</form>
@Html.Partial("./Partial/BoxAssign", null, new ViewDataDictionary { { "bindmethod", "bindassign" } })
@section styles{
<style type="text/css">
.btnassign {
display: inline-block;
height: 40px;
line-height: 40px;
text-align: center;
background: #878787;
color: #fff !important;
width: 120px;
vertical-align: top;
margin-left: 7px;
}
</style>
}
@section scriptsHeader{
@Html.Partial("./Partial/ScriptPost")
@Html.Partial("./Partial/filescript")
}
<script type="text/javascript">
function checkSpacebar() {
var kcode = event.keyCode;
if (kcode == 32) event.returnValue = false
}
function insuranceguide() {
msg("<span style='font-size:17pt;'>고용보험관리번호</span></br></br><span style='text-align: left; margin:auto; display: inherit;'>- 회사 마다 사업자등록번호 처럼 부여되어 있는 번호 이며 11자리 숫자로 보통 사업자등록번호 뒤에 0이나 6이 붙는 경우가 많습니다.(다른 형식인 경우도 있음)</span></br><span style='text-align: left; margin:auto; display: inherit;'>- 교육원에서 환급금 신청 목적으로 노동부 전산망에 교육생 등록을 할 때 필요한 번호 입니다. 따라서 <span style='color:red'>본인이 소속된 회사의 고용보험관리번호를 기재하시면 됩니다.</span></br></br><spanstyle='text-align: left; margin:auto; display: inherit;'> - 고용보험관리번호는 일반적으로 회사 내 고용보험 담당자가 알고 있습니다.</span>");
}
var model = {};
model.isloaded = false;
model.islogin = @(ViewBag.SSUserNo > 0 ? "true" :"false");
model.cm = @Html.Raw(Json.Encode(new List<NP.Model.CM>() { Model.CM }.Select(s => new { s.infee, s.accommofee, s.applicableCM, s.cshape, s.cmno }).First()));
model.assign = @Html.Raw(Json.Encode(new List<NP.Model.Assign>() { Model.Assign }.Select(s => new { s.asno, s.asname }).First()));;
model.pplog = @Html.Raw(Json.Encode(new List<NP.Model.PPLog>() { ( Model.PPLog != null ? Model.PPLog : new NP.Model.PPLog {}) }.Select(s => new { s.isrebate, s.isaccommodation, s.cmisno }).First()));;
//model.selMonth = @(Model.selMonth != null ? Model.selMonth.ToString() : "null");
model.iscompany = @(Model.isCompany != null ? Model.isCompany.ToString() : "null");
$(document).ready(function () {
$(".div-companyInfo").find(".clsTable").find("tr th").removeClass("req");
if ($("input:radio[name='isrebate']").val() == "1") {
$(".div-companyInfo").find(".clsTable").find("tr th.offreq").addClass("req");
} else {
$(".div-companyInfo").find(".clsTable").find("tr th.onreq").addClass("req");
}
$("#selMonth").change(function () {
setScd();
});
// 환급여부 체크하면 소속선택(div-isCompany)hide 환급금수령계좌(div-rbankInfo) show 회사정보확인(div-companyInfo) show
$("input:radio[name='isrebate']").on("click",function () {
$(".div-companyInfo").find(".clsTable").find("tr th").removeClass("req");
if ($(this).val() == "1") {
$(".div-isCompany").hide();
$(".div-rbankInfo").show();
$("input:radio[name='isCompany'][value='1']").click();
$(".uduty").show();
$(".div-companyInfo").find(".clsTable").find("tr th.offreq").addClass("req");
}// 비환급 체크하면 소속선택 show 환급금수령계좌 hide 보여진 소속선택에서 개인(val == 0) 체크하면 업체정보 hide
else {
$(".div-isCompany").show();
$(".div-rbankInfo").hide();
if ($("input:radio[name='isCompany']:checked").val() == "0") {
$(".div-companyInfo").hide();
}
$(".div-companyInfo").find(".clsTable").find("tr th.onreq").addClass("req");
$(".uduty").hide();
}
});
$("input:radio[name='isaccommodation']").on("click",function () {
var total;
if ($(this).val() == "1") {
total = model.cm.infee + model.cm.accommofee;
}
else {
total = model.cm.infee;
}
$("#spninfeecost").html(bindComma(total));
});
$("input:radio[name='isCompany']").on("click", function () {
if ($(this).val() == "0") {
$(".div-companyInfo").hide();
} else {
$(".div-companyInfo").show();
}
});
$("#btnback").on("click", function () {
$("#historyForm").attr("action", "/Course/SmartSearch");
$("#historyForm").submit();
});
$("#btnassign").on("click", function () {
boxassignview(bindassign);
});
initControl();
model.isloaded = true;
});
function initControl() {
$("#spninfee").html(bindComma(model.cm.infee));
$("#spninfeecost").html(bindComma(model.cm.infee));
$("#spnaccommofee").html(bindComma(model.cm.accommofee));
setTimeout(function () {
//if (model.cm.cshape == 2) {
// setScd();
//}
setScd();
}, 300);
if (model.cm.cshape == 0) {
$(".div-isCompany").show();
$(".uduty").hide();
} else if (model.cm.cshape == 1) {
$(".div-isCompany").hide();
$(".uduty").show();;
} else if (model.cm.cshape == 2) {
$(".div-isCompany").show();
$(".uduty").hide();
}
if (model.assign.asno == 0) {
$("#btnassign").show();
} else {
$("#btnassign").hide();
}
if ($("input:radio[name='isrebate']:checked").val() == "1") {
$(".div-companyInfo").show();
} else {
if ($("input:radio[name='isCompany']:checked").val() == "1") {
$(".div-companyInfo").show();
} else {
$(".div-companyInfo").hide();
}
}
if (model.pplog.isaccommodation != null) {
$("input:radio[name='isaccommodation'][value='" + model.pplog.isaccommodation + "']").click();
}
if (model.pplog.isrebate != null) {
$("input:radio[name='isrebate'][value='" + model.pplog.isrebate + "']").click();
}
//if (model.selMonth != null) {
// $("#selMonth").val(model.selMonth).trigger('change');
//}
if(model.iscompany != null) {
$("input:radio[name='isCompany'][value='" + model.iscompany + "']").click();
}
}
function bindassign(v) {
$("#Assign_asno").val(v.split(':')[0]);
$("#Assign_asname").val(v.split(':')[1]);
capp("/fcommon/getassign", { asno: $("#Assign_asno").val() }, "cbbindassign");
}
function cbbindassign() {
if (capResult.code == 1000) {
var mphone = String(capResult.obj.mphone).split("-");
var mphone1 = mphone.length > 0 ? mphone[0] : "";
var mphone2 = mphone.length > 1 ? mphone[1] : "";
var mphone3 = mphone.length > 2 ? mphone[2] : "";
var taxemail = String(capResult.obj.taxemail).split("@@");
var taxemail1 = taxemail.length > 0 ? taxemail[0] : "";
var taxemail2 = taxemail.length > 1 ? taxemail[1] : "";
setv("Assign_brno", capResult.obj.brno);
setv("Assign_ceoname", capResult.obj.ceoname);
setv("Assign_post", capResult.obj.post);
setv("Assign_address1", capResult.obj.address1);
setv("Assign_address2", capResult.obj.address2);
setv("Assign_btype", capResult.obj.btype);
setv("Assign_bkind", capResult.obj.bkind);
setv("Assign_eino", capResult.obj.eino);
setv("eino", capResult.obj.eino);
//setv("Assign_mname", capResult.obj.mname);
//setv("Assign_mphone1", mphone1);
//setv("Assign_mphone2", mphone2);
//setv("Assign_mphone3", mphone3);
//setv("Assign_taxemail1", taxemail1);
//setv("Assign_taxemail2", taxemail2);
}
}
function setScd() {
//capp("/focommon/GetScdForMixEdu", { cmno: model.cm.cmno, month: $("#selMonth").val() }, "renderScd");
//교육일정에 등록되어 있는 일정 중 선택이 가능한 첫번째 일정 선택으로 달 파라미터 제거
capp("/focommon/GetScdForMixEdu", { cmno: model.cm.cmno }, "renderScd");
}
function renderScd() {
var becmino = $("#becmino").val();
var becmisno = $("#becmisno").val();
var ulScd = $("#ulScd");
ulScd.empty();
//var seq = 0;
if (capResult.obj.length < 1) {
var li = $("<li />");
li.append("<label> - 선택 가능한 교육종료일이 없습니다.</label>");
ulScd.append(li);
}
$.each(capResult.obj, function (i, d) {
var strCheck = (becmisno == d.cmisno ? 'checked' : '') +" disabled";
var li = $("<li />");
if (d.isEnd == true)
{
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label></label>");
}
else
{
if (d.quota != 0) {
if (d.remainPeople <= 0) {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label></label>");
}
else {
if (d.isselected == 1) {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'" + strCheck + "> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'" + strCheck + "> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
}
//if (seq == 0) {
// li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
//}
//else {
// li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
//}
}
}
else {
if (d.isselected == 1) {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'" + strCheck + "> " + d.scdInfoSummary + "</label>");
}
else {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'" + strCheck + "> " + d.scdInfoSummary + "</label>");
}
//if (seq == 0) {
// li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "</label>");
//}
//else {
// li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "</label>");
//}
}
}
//seq++;
ulScd.append(li);
});
if (model.pplog.cmisno != null) {
$("input:radio[name='rdoScds'][value='" + model.pplog.cmisno + "']").click();
}
}
function applyEdu() {
var isrebate = $("input:radio[name='isrebate']:checked").val() == "1" ? true : false;
var isCompany = $("input:radio[name='isCompany']:checked").val() == "1" ? true : false;
var assign_taxemail = val("Assign_taxemail1") + "@@" + val("Assign_taxemail2");
var user_mobile = val("User_mobile1").replace(/ /, '').replace(/ /, '') + val("User_mobile2").replace(/ /, '').replace(/ /, '') + val("User_mobile3").replace(/ /, '').replace(/ /, '');
var user_email = val("User_email1") + "@@" + val("User_email2");
var isCompanyInfoCheck = false;
if (isrebate || isCompany) {
isCompanyInfoCheck = true;
}
if (isrebate && getBytes(val("eino")) == 11) {
setv("Assign_eino", val("eino"));
}
$("#cmisno").val($("input:radio[name=rdoScds]:checked").val());
if ($("#cmisno").val() != $("#becmisno").val()) {
msg("뒤로가기 후 교육일정을 재선택해주세요.");
return;
}
$("#applicableCM").val(model.cm.applicableCM);
/*if (model.cm.cshape == 2 && $("#cmisno").val() == "" ) {*/
// 20220801
if ($("#cmisno").val() == "") {
msg("교육일정을 선택해주세요.");
return;
}
else if (isrebate && check("rbankname", null, "은행명을 등록해주세요.")) { }
else if (isrebate && check("rbankacc", null, "계좌번호를 등록해주세요.")) { }
else if (isrebate && check("rbankowner", null, "예금주를 등록해주세요.")) { }
else if (isrebate && check("eino", null, "고용보험관리번호를 등록해주세요.")) { }
else if (isrebate && getBytes(val("eino")) != 11) { focus("eino"); msg("11자리의 고용보험관리번호를 등록해주세요."); }
else if (isCompanyInfoCheck && check("Assign_asname", null, "회사명을 등록해주세요.")) { }
else if (isCompanyInfoCheck && check("Assign_brno", null, "사업자등록번호를 등록해주세요.")) { }
else if (isCompanyInfoCheck && getBytes(val("Assign_brno")) != 10) { focus("Assign_brno"); msg("10자리의 사업자번호를 등록해주세요."); }
else if (isCompanyInfoCheck && check("Assign_ceoname", null, "대표자성명을 등록해주세요.")) { }
//else if (isrebate && (check("Assign_post", null, "우편번호를 등록해주세요.") || check("Assign_address1", null, "주소를 등록해주세요.") || check("Assign_address2", null, "상세주소를 등록해주세요."))) { }
//else if (isrebate && check("Assign_btype", null, "업태를 등록해주세요.")) { }
//else if (isrebate && check("Assign_bkind", null, "종목을 등록해주세요.")) { }
else if (isrebate && (check("Assign_taxemail1", null, "계산서받을 이메일을 등록해주세요.") || check("Assign_taxemail2", null, "계산서받을 이메일을 등록해주세요."))) { }
else if (isrebate && !isemail(assign_taxemail)) { focus("Assign_taxemail1"); msg("올바른 이메일주소를 입력해주세요."); }
else if (isCompanyInfoCheck && (check("Assign_post", null, "우편번호를 등록해주세요.") || check("Assign_address1", null, "주소를 등록해주세요.") || check("Assign_address2", null, "상세주소를 등록해주세요."))) { }
else if (isCompanyInfoCheck && check("Assign_btype", null, "업태를 등록해주세요.")) { }
else if (isCompanyInfoCheck && check("Assign_bkind", null, "종목을 등록해주세요.")) { }
else if (isCompanyInfoCheck && (check("Assign_taxemail1", null, "계산서받을 이메일을 등록해주세요.") || check("Assign_taxemail2", null, "계산서받을 이메일을 등록해주세요."))) { }
else if (isCompanyInfoCheck && !isemail(assign_taxemail)) { focus("Assign_taxemail1"); msg("올바른 이메일주소를 입력해주세요."); }
else if (check("User_userpno1", null, "주민등록번호 앞자리를 입력하십시오.") || check("User_userpno2", null, "주민등록번호 뒷자리를 입력하십시오.")) { }
else if (check("User_mobile1", null, "휴대전화를 등록해주세요.") || check("User_mobile2", null, "휴대전화를 등록해주세요.") || check("User_mobile3", null, "휴대전화를 등록해주세요.")) { }
else if (!ismobilenumber(user_mobile)) { focus("mobile"); msg("휴대전화를 확인해주세요."); }
else if (check("User_email1", null, "이메일을 등록해주세요.") || check("User_email2", null, "이메일을 등록해주세요.")) { }
else if (!isemail(user_email)) { focus("User_email1"); msg("올바른 이메일주소를 입력해주세요."); }
else if (check("User_post", null, "우편번호를 등록해주세요.") || check("User_address1", null, "주소를 등록해주세요.") || check("User_address2", null, "상세주소를 등록해주세요.")) { }
else if ($("input:radio[name='isrebate']:checked").val() == "1" && check("User_uduty", null, "직위를 등록해주세요.")) { }
else {
if (model.islogin > 0) {
capfileform('/fcommon/savePPLog', 'applyEduForm', 'saveResult');
}
else {
msg("로그인 후 신청 할 수 있습니다.");
return;
}
}
}
function saveResult() {
if (capResult.code == 1000 && capResult.obj > 0) {
$("#historyForm > input[name='pplno']").val(capResult.obj);
//$("#historyForm > input[name='selMonth']").val($("#selMonth").val());
$("#historyForm > input[name='isCompany']").val($("input:radio[name='isCompany']:checked").val());
$("#historyForm").attr("action", "/Course/ApplyAgree");
$("#historyForm").submit();
} else if (capResult.code == -1) {
msg("이미 신청된 교육 중 교육종료일이 같은 교육이 있습니다.<br/> 다른 일정으로 신청해 주시기 바랍니다.");
} else {
msg("저장을 실패하였습니다.");
}
return;
}
function emailchange() {
if ($("#taxemail3").val() != "") {
$("#Assign_taxemail2").val($("#taxemail3").val());
}
}
</script>

View File

@ -66,8 +66,16 @@
else
{
//Model.SelectCMInningscd.eend2 교육종료일
strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
strEduInfo += string.Format("교육기간 {0} |", Model.SelectCMInningscd.scdInfoSummary);
strEduInfo += string.Format("<span> 교육종료일 {0} </span> | ", Model.SelectCMInningscd.eend2);
strEduInfo += string.Format("{0}시간과정 |", Model.CM.studytime);
strEduInfo += string.Format("<span class='red'> {0}과정 </span><br />", (Model.CM.isrefund == 1 ? "환급" : "비환급"));
strEduInfo += string.Format("<span style='margin-left:5px;' class='red'>집체교육 참석일 : {0}</span><br />", Model.SelectCMInningscd.estart.ToString("yyyy년 MM월 dd일"));
strEduInfo += string.Format("<span style='margin-left:5px;'>교육비 : {0}원</span>", Model.CM.infee.ToString("#,0"));
//strEduInfo = string.Format("교육기간 {0} |<span class='red'> 교육종료일 {1} </span> | {2}시간과정 |<span class='red'> {3}과정 </span><br /><span style='margin-left:5px;'>교육비 : {4}원</span>",
// Model.SelectCMInningscd.scdInfoSummary, Model.SelectCMInningscd.eend2, Model.CM.studytime, (Model.CM.isrefund == 1 ? "환급" : "비환급"), Model.CM.infee.ToString("#,0"));
}
}
@ -98,7 +106,7 @@
</ul>
@if (Model.PPLog.cshape != 2)
{
<h4 class="clsTitle">교육비 환급대상자의 입금방법(중요)</h4>
<h4 class="clsTitle">환급과정 신청 시 환급대상자의 입금방법<span class="red" style=" font-size: 16pt;font-weight:bold">(중요)</span></h4>
<p class="subTxt">
<span>■ 카드결제 시</span><br />
- 반드시 <span style="color : red;">소속 회사의 법인카드로</span> 결제 해 주세요. <span style="color : red;"><strong>(개인카드 결제 시 환급불가)</strong></span><br />
@ -108,10 +116,14 @@
<p class="subTxt">
<span>■ 무통장입금 시</span><br />
- 계좌이체로 입금하실 경우 반드시 <span style="color : red;">법인계좌에서</span> 이체가 되어야 합니다. <span style="color : red;"><strong>(타 계좌에서 이체 시 환급불가)</strong></span><br />
- 입금자명은 반드시 <span style="color : red;">소속회사 + 교육생이름</span> 으로 기재해주세요.<br /><br />
- 입금자명은 반드시 <span style="color : red;">소속회사 + 교육생이름</span> 으로 기재해주세요.<strong style="color : red;">(소속회사명이 없는 경우 환급불가)</strong><br />
- 입교 시 <span style="color : red;">이체확인증</span>을 지참해 주세요.<br />
<span>※ 이체확인증은 입금자명이 법인이라는 것을 <strong style="color : red;">노동부에 증빙하기 위하여 필요한 서류입니다.</strong></span><br />
&nbsp;&nbsp;예) 현대건설 이지은 인 경우 -> 현대건설이지은<br /><br />
<span><strong>■ 환급대상자는 <span style="color : red;">계산서 의무 발행</span> 이므로 현금영수증 발행이 불가 합니다.</strong></span><br />
<span><strong>
■ 환급과정 신청 시 환급대상자는 <span style="color : red;">계산서 의무 발행</span> 이므로 현금영수증 발행이 불가 합니다.
</strong></span><br />
</p>
}
@ -128,7 +140,7 @@
</strong>
</p>
<h4 class="clsTitle">결제방법(신용카드 선택 시 계산서 발급불가)</h4>
<h4 class="clsTitle">결제방법<span class="red" style="font-weight:bold">(신용카드 선택 시 계산서 발급불가)</span></h4>
<ul class="apyRdo">
@if (Model.CM.infee > 0)
{
@ -141,7 +153,17 @@
}
</ul>
<div id="cashbox" style="display:none">
@if (Model.CM.cshape == 1)
{
// 교육장
if (Model.PPLog.isrebate == 1)
{
<h4 class="clsTitle">계산서 발행</h4>
}
else
{
<h4 class="clsTitle">현금영수증 / 계산서 발행여부</h4>
}
<ul class="apyRdo">
@if (Model.CM.isrefund == 0 || Model.PPLog.isrebate == 0)
{
@ -158,6 +180,34 @@
<li><p class="subTxt"><span style="color : red;">※ 계산서는 교육수료일에 발행됩니다.</span></p></li>
@*<li style="vertical-align:sub;">계산서날짜 : <input type="text" name="taxdatereq" id="taxdatereq" data-date-format="yyyy-mm-dd" class="datepicker-input" value="@(Model.PPLog.taxdatereq == null ? "" : Model.PPLog.taxdatereq.Value.ToString("yyyy-MM-dd"))" autocomplete="off" /></li>*@
</ul>
}
else
{
if (Model.PPLog.isrebate == 1)
{
<h4 class="clsTitle">계산서 발행</h4>
}
else
{
<h4 class="clsTitle">현금영수증 / 계산서 발행여부</h4>
}
<ul class="apyRdo">
@if (Model.CM.isrefund == 0 || Model.PPLog.isrebate == 0)
{
<li><input type="radio" name="iscashrct" id="pay0202" value="1"><label for="pay0202">현금영수증 발행</label></li>
}
<li>
<input type="radio" name="iscashrct" id="pay0203" value="2"><label for="pay0203">계산서 발행</label>
<input type="hidden" id="brno" value="@Model.PPLog.brno" />
</li>
</ul>
<ul class="apyRdo" id="taxinvoice_option" style="display:none;margin-top:-1px">
<li><input type="radio" name="isreceipt" id="isreceipt1" value="1" @(Model.PPLog.isreceipt == null ? "checked" : Model.PPLog.isreceipt == 1 ? "checked" : "") /><label for="isreceipt1"> 영수</label></li>
<li><input type="radio" name="isreceipt" id="isreceipt0" value="0" @(Model.PPLog.isreceipt == 0 ? "checked" : "") /><label for="isreceipt0"> 청구</label></li>
<li style="vertical-align:sub;">계산서날짜 : <input type="text" name="taxdatereq" id="taxdatereq" data-date-format="yyyy-mm-dd" class="datepicker-input" value="@(Model.PPLog.taxdatereq == null ? "" : Model.PPLog.taxdatereq.Value.ToString("yyyy-MM-dd"))" autocomplete="off" /></li>
</ul>
}
</div>
<ul class="clsBtn society">

View File

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

View File

@ -74,7 +74,8 @@
<br />
@if (Model.stringval2 == "2")
{
<p class='subDsc' style='color:red;'>※ 온라인 교육은 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다</p>
@*<p class='subDsc' style='color:red;'>※ 온라인 교육은 입금완료시 교육이 바로 시작되며 동영상 시청이 가능합니다.</p>*@
<p class='' style="font-weight: bold; font-size: 14pt;">※ 현재 신청중인 교육은 <span style='color: red; font-weight: bold'>온라인교육(동영상강의28시간 + 집체참석7시간)</span> 교육입니다.</p>
}
<input type="hidden" id="hidCmno" />
<ul class="smtList" style="margin-bottom:150px">
@ -164,7 +165,7 @@
<div class="gry">
<p>교육분류 : <span id="spnCmKind"></span></p>
<p>인정시간 : <span class="sky"><span id="spnCmStudyHour"></span></span>시간</p>
<p style="display:none;" id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상</p>
<p style="display:none;" id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상<span id="spnisoffabs"></span></p>
@*@if (Model.CM.cshape != 1)
{
<p id="completeStd">수료기준 : 진도 <span id="spnCmAttend"></span>% 이상, 시험 <span id="spnCmFinal"></span>점 이상, 과제 <span id="spnCmSubject"></span>점 이상</p>
@ -199,6 +200,11 @@
</div>
</div>
<style>
.clsPopWrap {
max-width: 655px;
}
</style>
<script type="text/javascript">
var _cmno;
@ -325,6 +331,13 @@
$("#spnCmContentHtml").html(d.contenthtml);
$(".spnCmContentHtml").show();
}
if (d.isoffabs == 1 && d.cshape == 2) {
$("#spnisoffabs").text(", 집체교육 7시간 참석")
}
else {
$("#spnisoffabs").text("")
}
});
}
@ -345,7 +358,7 @@
var divScd = $("#divScd" + cmno);
if (btnSelect.html() == '일정조회') {
btnSelect.html('조회닫기');
btnSelect.html('닫기');
//capp("/focommon/GetScdForMixEdu", { cmno: model.cm.cmno, month: $("#selMonth").val() }, "renderScd");
//교육일정에 등록되어 있는 일정 중 선택이 가능한 첫번째 일정 선택으로 달 파라미터 제거
capp("/focommon/GetScdForMixEdu", { cmno: cmno}, "renderScdInning(1," + cshape + "," + cmno + ")");
@ -382,11 +395,11 @@
}
else if (cshape == 2) //온라인
{
strTmp = "<p style='margin-bottom: 30px;'>※ 현재 신청 중인 교육은 " +
"<span style='color:red'>온라인 35시간 교육입니다.<br>" +
"※ 선택한 교육종료일까지 수료조건을 만족하시면 그 다음날 오후 3시 이후에 수료증 출력이 가능합니다.<br>" +
strTmp = "<p style='margin-bottom: 30px;font-weight: bold; font-size: 14pt;'><span style='color:red'>※ 수료조건을 모두 만족하신 후 " +
"교육종료일(집체교육 참석일)에 집체교육 7시간을 참석 하시면 됩니다.</span > <br>" +
"※ 수료조건 : 동영상강의 진도율 90% 이상 / 시험평가 60점 이상 / 과제 제출<br>" +
"※ 교육비 입금과 동시에 동영상강의 시청이 가능합니다." +
"</span></p><br><span class='clsTitle'>교육종료일을 선택하여 주세요.</span>";
"</p><br><span class='clsTitle'>교육종료일(집체교육 참석일)을 선택하여 주세요.</span>";
}
divInfo.append(strTmp);
@ -471,15 +484,17 @@
pData.html("<label>"+ "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[종료] </label>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></span>");
}
else {
/* by 인덕
if (d.quota != 0) {
if (d.remainPeople <= 0) {
// 제한인원 지정됨
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
spanApplyClassN.text("수강신청");
aApplyClass.append(spanApplyClassN);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수마감] </span>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></span>");
pData.append(spanApplyClassN);
}
else {
if (d.isselected == 1) {
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0)
spanApplyClass.text("수강신청");
aApplyClass.append(spanApplyClass);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + " checked> " + d.scdInfoSummary + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span></span>");
@ -494,14 +509,15 @@
}
}
else {
if (d.remainPeople <= 0) {
// 제한인원 무제한
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
spanApplyClassN.text("수강신청");
aApplyClass.append(spanApplyClassN);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수마감] </span>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></span>");
pData.append(spanApplyClassN);
}
else {
if (d.isselected == 1) {
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0)
spanApplyClass.text("수강신청");
aApplyClass.append(spanApplyClass);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + " checked> " + d.scdInfoSummary + "</label></label>");
@ -515,6 +531,40 @@
}
}
}
*/
d.scdInfoSummary = (d.scdInfoSummary).replace("까지", "")
if (d.remainPeople <= 0) { // remainPeople(등록가능인원수) <= 0
spanApplyClassN.text("접수마감");
aApplyClass.append(spanApplyClassN);
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수마감] </span>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></span>");
pData.append(spanApplyClassN);
}
else {
spanApplyClass.text("교육신청");
aApplyClass.append(spanApplyClass);
if (d.quota != 0) {
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0)
// 사용안하는것 추측됨
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + " checked> " + d.scdInfoSummary + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span></span>");
pData.append(aApplyClass);
}
else {
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " <span style='color: red'>[접수중] </span>" + radioEduDay + "'> " + d.scdInfoSummary + "<span style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</span> " + "</span>");
pData.append(aApplyClass);
}
}
else {
// 사용안하는것 추측됨
if (d.isselected == 1) { // isselected = (cm.setime('%Y%m%d',학습종료) == cminningscd.estart('%Y%m%d',교육시작) ? 1 : 0)
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + " checked> " + d.scdInfoSummary + "</label></label>");
pData.append(spanApplyClass);
}
else {
pData.html("<label>" + "<span style='color:blue'>" + strStudyPlacename + "</span>" + " " + radioEduDay + "'> " + d.scdInfoSummary + "</label></label>");
pData.append(aApplyClass);
}
}
}
}
li.append(pData);

View File

@ -87,7 +87,7 @@
<div id="divScd"></div>
</div><!-- clsPopCont -->
<div class="mpgpopbtn2">
<div class="mpgpopbtn2" style="margin-bottom: 20px">
<ul class="mpgPopBtn">
<li><a href="#" class="bk" onclick="selectScd()">선택완료</a></li>
<li><a href="#" onclick="mpgPopClose()">취소</a></li>
@ -134,6 +134,7 @@
let strTmp = "";
var divScd = $("#divScd");
var divTitle = $("#divTitle");
let onceCheck = false;
divTitle.empty();
if (cshape == 1)
{
@ -160,6 +161,12 @@
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (cshape == 2 && !onceCheck) {
li.append("<label> ※ 이미 <span style='color: red'>집체7시간을 참석하신 분들은</span> 변경한 교육종료일까지 부족한 수료조건을 만족하시면 됩니다. <span style='color: red'>(집체교육 재 참석 없음)</span></label><br><br>");
onceCheck = true;
}
var pData = $("<p />");
//var aApplyClass = $("<a />", { "onclick": "javascript:applyClassEdu(" + d.cmno + ", " + d.pcmno + ", " + d.cmino + ", " + d.cmisno + ");" });
/*var spanApplyClass = $("<span />", { "class": "smtlChkBtn smtlChk03", "style": "font-size:18px" });*/
@ -179,24 +186,16 @@
++displayCnt;
if (d.quota != 0) {
if (d.remainPeople <= 0) {
if (cshape == 2) {
li.append("<label> ※ 이미 <label style='color: red'>집체7시간을 참석하신 분들은</label> 변경한 교육종료일까지 부족한 수료조건을 만족하시면 됩니다. <label style='color: red'>(집체교육 재 참석 없음)</label></label><br><br><br>");
}
pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[접수마감] </label>" + radioEduDay + " disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span></label>");
}
else {
if (d.isselected == 1) {
if (cshape == 2) {
li.append("<label> ※ 이미 <label style='color: red'>집체7시간을 참석하신 분들은</label> 변경한 교육종료일까지 부족한 수료조건을 만족하시면 됩니다. <label style='color: red'>(집체교육 재 참석 없음)</label></label><br><br><br>");
}
//spanApplyClass.text("수강신청");
//aApplyClass.append(spanApplyClass);
pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[접수중]&nbsp;&nbsp;&nbsp;&nbsp; </label>" + radioEduDay + " checked> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
if (cshape == 2) {
li.append("<label> ※ 이미 <label style='color: red'>집체7시간을 참석하신 분들은</label> 변경한 교육종료일까지 부족한 수료조건을 만족하시면 됩니다. <label style='color: red'>(집체교육 재 참석 없음)</label></label><br><br><br>");
}
//spanApplyClass.text("수강신청");
//aApplyClass.append(spanApplyClass);
pData.html("<label>" + strStudyPlacename + " <label style='color: red'>[접수중] &nbsp;&nbsp;&nbsp;&nbsp;</label>" + radioEduDay + "'> " + d.scdInfoSummary + "<label style='color: red;display:none;'> (" + d.remainPeople + "명 남음)</label> " + "</label>");

View File

@ -103,18 +103,23 @@ else if (special == "reg" || name == "SearchType")
}
else if (special == "email")
{
List<string> emailList = new List<string>(){
"naver.com"
,"gmail.com"
,"kakao.com"
,"daum.net"
,"hanmail.net"
,"nate.com"
};
<select @disabled id="@(name.Replace(".", "_"))" name="@(name)" onchange="@(onchange != "" ? onchange : "")" class="form-control dev @(cssclass)" style=" @style">
@if (df != "")
{
<option value="@(df.Contains(":") ? df.Split(':')[0] : "")" data-classgrade="0">@(df.Contains(":") ? df.Split(':')[1] : df)</option>
}
<option value="hanmail.com" @("hanmail.com" == selected ? "selected" : "")>hanmail.com</option>
<option value="yahoo.co.kr" @("yahoo.co.kr" == selected ? "selected" : "")>yahoo.co.kr</option>
<option value="naver.com" @("naver.com" == selected ? "selected" : "")>naver.com</option>
<option value="empal.com" @("empal.com" == selected ? "selected" : "")>empal.com</option>
<option value="hotmail.com" @("hotmail.com" == selected ? "selected" : "")>hotmail.com</option>
<option value="dreamwiz.com" @("dreamwiz.com" == selected ? "selected" : "")>dreamwiz.com</option>
<option value="hanafos.com" @("hanafos.com" == selected ? "selected" : "")>hanafos.com</option>
@foreach (var item in emailList)
{
<option value="@item" >@item</option>
}
</select>
}
else if (valuetext.Length > 0)

View File

@ -7,7 +7,7 @@
@RenderSection("styles", required: false)
@Html.Partial("./Partial/JS")
@RenderSection("scriptsHeader", required: false)
<script type="text/javascript" src="/js/mypage.js?ver=22122101"></script>
<script type="text/javascript" src="/js/mypage.js?ver=22122701"></script>
</head>
<body id="mainbody">
@{

View File

@ -41,8 +41,8 @@
<add key="daokey" value="ynictelms2020" />
<!--<add key="configpath" value="Product" />-->
<!--<add key="configpath" value="ProductDev" />-->
<add key="configpath" value="Staging" />
<add key="configpath" value="ProductDev" />
<!--<add key="configpath" value="Staging" />-->
<add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" />

View File

@ -427,7 +427,11 @@
.mpgPopCont {padding:50px; overflow-y:auto;}
.mpgPopCont img {display:block; margin:0 auto; max-width:100%;}
.mpgPopBtn {text-align:center; margin-top:50px;}
.mpgPopBtn li {display:inline-block; margin:0 3px;}
.mpgPopBtn li {
display: inline-block;
margin: 0 3px;
margin-bottom: 50px
}
.mpgPopBtn li a {display:block; width:100px; height:50px; line-height:48px; border:solid 1px #383838; color:#383838;}
.mpgPopBtn li a.bk {background:#383838; color:#fff;}

View File

@ -86,8 +86,8 @@ $(document).ready(function () {
msg += '※ <span style="color:red;">매주 월요일 마다</span> 수료처리가 진행됩니다. (평일기준)<br><br>'
msg += '- 수료조건을 만족하지 않은 경우 : 교육일정변경 메뉴에서 <span style="color:red;">일정변경 후 </span> 수강해 주세요.<br><br>'
msg += '※ 미 수료 상태로 교육시작일 이후 <span style="color:red;">1년 경과 시 교육이 취소되어 일정변경이 불가합니다.</span><br><br>'
//msg += '<a href="#" class="mainokbutton" onclick="javascript:hidelayermsg();" style="display: inline-block;margin: 20px 5px 0 5px;">확인</a></div>'
msg += '<a href="' + href + '" class="mainokbutton" style="display: inline-block;margin: 20px 5px 0 5px;">확인</a></div>'
msg += '<a href="#" class="mainokbutton" onclick="javascript:hidelayermsg();" style="display: inline-block;margin: 20px 5px 0 5px;">확인</a></div>'
//msg += '<a href="' + href + '" class="mainokbutton" style="display: inline-block;margin: 20px 5px 0 5px;">확인</a></div>'
$("#layermessage").html(msg)
return false;

View File

@ -177,9 +177,9 @@ namespace NP.Model
public String zstring0 { get; set; }
public String zstring1 { get; set; }
public String zstring2 { get; set; }
//public String zstring3 { get; set; }
//public String zstring4 { get; set; }
//public String zstring5 { get; set; }
public String zstring3 { get; set; }
public String zstring4 { get; set; }
public String zstring5 { get; set; }
//public String zstring6 { get; set; }
//public String zstring7 { get; set; }
//public String zstring8 { get; set; }