This commit is contained in:
hyunho 2020-12-02 07:02:10 +00:00
parent 19e829f775
commit 906da8ddbd
4 changed files with 126 additions and 15 deletions

View File

@ -8,9 +8,9 @@
<div class="col-sm-8 col-md-10"><input type="text" class="form-control" disabled value="@(Model.CM.tmname) | @Model.CM.cshapename | @(Model.CM.cname) | @(Model.CM.classno)반" /></div>
</div>
<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
<label class="col-sm-4 col-md-2 control-label">신청기간/교육기간</label>
<label class="col-sm-4 col-md-2 control-label">신청기간(교육기간)</label>
<div class="col-sm-8 col-md-10">
@(Model.CM.rsrename) / @(Model.CM.sssename) (@(Model.CM.ssseterm)일)
@(Model.CM.rsrename) (@(Model.CM.sssename)) (@(Model.CM.ssseterm)일)
</div>
</div>
<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
@ -45,12 +45,8 @@
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-수강상태;3:신청중;1:수강중;8:수강취소" }, { "name", "addstringval" }, { "selected", Model.addstringval }, { "onchange", "submit()" } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-결제상태;0:결제대기;1:입금대기;2:결제완료;3:결제취소;4:환불신청;5:부분환불;6:전액환불" }, { "name", "addstringval2" }, { "selected", Model.addstringval2 }, { "onchange", "submit()" } })
&nbsp;&nbsp;
<a href="#" class="btn btn-danger" onclick="leave()">선택탈퇴</a>
<a href="#" style="display:none;" class="btn btn-danger" onclick="del()">선택삭제</a>
@Html.Partial("./Partial/sembtns", "#tbody1;0;1;0;0;0;교육생안내")
&nbsp;&nbsp;
@Html.Partial("./Partial/sembtns", "#tbody1;1;1;1;1;0;교육생안내")
&nbsp;&nbsp;
<a href="#" class="btn btn-success" onclick="winopen('/croom/cmlectattprint?intval=@Model.CM.cmno','cmlectattprint', 800, 800)">출석부출력</a>
<a href="#" class="btn btn-success" onclick="callexcel()">엑셀다운로드</a>
&nbsp;&nbsp;
<a href="#" class="btn btn-default" onclick="golist()">목록</a>
@ -67,24 +63,31 @@
<th>신청일</th>
<th>수강상태</th>
<th>결제상태</th>
<th>강좌변경</th>
<th>교육일</th>
</tr>
</thead>
<tbody class="data" id="tbody1">
@foreach (var d in Model.Lects)
{
@foreach (var d in Model.Lects)
{
<tr>
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td>
<td>@d.rnorvt</td>
<td>@d.asname</td>
<td>@(d.cnoname)(@d.cnoid)</td>
<td class="link text-center"><a href="#" onclick="viewlect(this, @d.ustatus, @d.lectno, @d.fileno, '@d.fileurl', '@d.orgname', @d.status, @d.pstatus,'@string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}",d.asname??"",d.username, d.userid??"", d.uduty??"", d.depart??"", d.email, d.telno, d.mobile,d.ckfcfyear,d.assignuser,d.edus)')">@d.username</a>@Html.Raw(string.IsNullOrEmpty(d.fileurl)?"": ("<a href=\"/aCommon/DownFile?fno="+d.fileno+"&loginfo=\"> <i class=\"fa fa-paperclip\"></i></a>"))</td>
<td class="link text-center"><a href="#" onclick="viewlect(this, @d.ustatus, @d.lectno, @d.fileno, '@d.fileurl', '@d.orgname', @d.status, @d.pstatus,'@string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}",d.asname??"",d.username, d.userid??"", d.uduty??"", d.depart??"", d.email, d.telno, d.mobile,d.ckfcfyear,d.assignuser,d.edus)')">@d.username</a>@Html.Raw(string.IsNullOrEmpty(d.fileurl) ? "" : ("<a href=\"/aCommon/DownFile?fno=" + d.fileno + "&loginfo=\"> <i class=\"fa fa-paperclip\"></i></a>"))</td>
<td>@d.cdtymd</td>
<td>@d.statusname</td>
<td class="link text-center"><a href="#" onclick="viewrefund(@d.payno, @d.pstatus, @d.payuserno)">@d.pstatusname</a></td>
<td><a style="@(d.status==1 && d.pstatus==1 && d.ustatus != 99 && Model.CM.setime > DateTime.Now ? "":"display:none;")" href="#" class="btn btn-select btn-xxs" onclick="changecm(@d.lectno)">변경</a></td>
@if (d.cshape == 2 && d.estart != null && d.estart > Convert.ToDateTime("1900-01-01") && d.estart >= DateTime.Now) //혼합모드라면
{
<td class="link text-center"><a href="#" onclick="jabscript: openScd(@d.lectno, @d.cmisno);">@d.estart.ToShortDateString()</a></td>
}
else
{
<td>-</td>
}
</tr>
}
}
</tbody>
</table>
</div>
@ -118,12 +121,21 @@
</div>
<br /><br />
</div>
<div id="changebox" class="findbox draggable regbox" style="width: 500px; z-index: 1041; top: 60px; overflow: auto;">
<h4><i class="fa fa-bars"></i> <span id="pcap">변경강좌 선택</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
<div style="padding: 20px 20px;">동일한 과정 중, 교육기간이 끝나지 않은 강좌들을 대상으로만 변경이 가능합니다.</div>
<ul id="changelist"></ul>
<br /><br />
</div>
<div id="scdbox" class="findbox draggable regbox" style="width: 400px; z-index: 1041; top: 60px; overflow: auto;">
<h4><i class="fa fa-bars"></i> <span id="pcap">교육일정변경</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
<ul id="ulScd"></ul>
<div class="findboxbtnbox" id="btnsavelect">
<a href="#" class="btn btn-primary" onclick="updateScd();">선택완료</a>
</div>
</div>
@section styles{
<style type="text/css">
#changelist {border: 1px solid #ddd; padding: 15px 20px; max-height: 250px; overflow: auto;}
@ -137,6 +149,8 @@
}
@section scripts{
<script>
var selectedLectno;
var selectedCmisno;
$(document).ready(function () {
});
@ -263,5 +277,73 @@
//capp("/acommon/userleave", { usernos: nos.substr(1) }, "cbcap(0)");
}
}
function setScd() {
capp("/acommon/GetScdForMixEdu", { cmno: @Model.CM.cmno }, "renderScd");
}
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var seq = 0;
$.each(capResult.obj, function (i, d) {
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.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 (seq == 0) {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
else {
li.append("<label><input type='radio' name='rdoScds' value='" + d.cmisno + "'>" + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label></label>");
}
}
}
seq++;
ulScd.append(li);
});
afterRenderScd();
}
function afterRenderScd() {
$("input:radio[name='rdoScds']:radio[value='" + selectedCmisno + "']").prop('checked', true);
}
function openScd(lectno, cmisno) {
selectedLectno = lectno;
selectedCmisno = cmisno;
$.when(
setScd()
).done(function () {
setTimeout(function () {
bglayer();
$("#scdbox").slideDown("fast");
},200);
});
}
function updateScd() {
if (confirm("교육일정을 변경하시겠습니까?")) {
var cmisno = $("input:radio[name=rdoScds]:checked").val();
capp("/acommon/LectScdChange", { lectno: selectedLectno, cmisno: cmisno }, "afterUpdateScd");
}
}
function afterUpdateScd() {
if (capResult.code > 0) {
msg("교육일정을 변경하였습니다.");
submit("mform", 500, true);
}
else {
msg("관리자에게 문의하세요.");
return;
}
}
</script>
}

View File

@ -931,5 +931,25 @@ namespace NP.Base.Controllers
return JsonOK(Dao.Save("lect.completetime.change", new Hashtable() { { "lectno", lectno }, { "completetime", completetime }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
}
[HttpPost]
public JsonResult GetScdForMixEdu(int cmno)
{
var result = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", new System.Collections.Hashtable() { { "cmno", cmno }});
foreach (var item in result)
{
item.scdInfoSummary = string.Format("[{0}] {1}", item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm"));
if (item.estart < DateTime.Now)
item.isEnd = true;
}
return JsonBack(result);
}
[HttpPost]
public JsonResult LectScdChange(Int64 lectno, Int64 cmisno)
{
return JsonOK(Dao.Save("lect.cmisno.up", new Hashtable() { { "lectno", lectno }, { "cmisno" , cmisno} }));
}
}
}

View File

@ -138,7 +138,7 @@
</select>
<select id="lect.lects" parameterClass="hashtable" resultClass="lect">
select a.lectno,a.cdt,a.status,a.userno,a.oktime
select a.lectno,a.cdt,a.status,a.userno,a.oktime,a.cmisno
,af.fileurl,af.fileno,af.orgname
,f.asname
,d.username cnoname,d.userid cnoid
@ -150,7 +150,8 @@
,cc.cname ccpositionname
,c.pstatus,c.payno,c.userno payuserno
,b.rstatus
,a2.rstime,a2.retime,a2.sstime,a2.setime
,a2.rstime,a2.retime,a2.sstime,a2.setime,a2.cshape
,scd.estart,scd.eend
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.payno,a.pino</isNull>) rno
,count(a.cdt) over() pagetotalcount
from lect a
@ -167,6 +168,7 @@
left outer join assign f on f.asno=e.asno
left outer join payrfditem rfdi on rfdi.pino=a.pino
left outer join payrfd rfd on rfd.rfdno=rfdi.rfdno
left outer join cminningscd scd on a.cmisno = scd.cmisno
where a.ischanged=0
<isNotNull property="isready" prepend="and">ifnull(a.isready,0)=#isready#</isNotNull>
<isNotNull property="lectno" prepend="and">a.lectno=#lectno#</isNotNull>
@ -1405,6 +1407,12 @@
latime = now()
where lectno = #lectno#
</update>
<update id="lect.cmisno.up" parameterClass="hashtable">
update lect
set cmisno = #cmisno#
where lectno = #lectno#
</update>
</statements>
</sqlMap>

View File

@ -1080,6 +1080,7 @@ namespace NP.Model
public String studyplacename { get; set; }
public int taxno { get; set; }
public DateTime taxdate { get; set; }
public Int64 cmisno { get; set; }
}
/// <summary>
/// 자격검정시험