This commit is contained in:
parent
fc371278f3
commit
858bbc1ed1
|
|
@ -383,10 +383,12 @@ namespace NP.Base.Controllers
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public JsonResult GetScdForMixEdu(int cmno, int? month)
|
public JsonResult GetScdForMixEdu(int cmno, int? month)
|
||||||
{
|
{
|
||||||
var result = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", new System.Collections.Hashtable() { { "cmno", cmno }, { "month", (month == null) ? DateTime.Now.Year : month } });
|
var result = Dao.Get<CMinningscd>("cm.cminningscds.applyedu", new System.Collections.Hashtable() { { "cmno", cmno }, { "month", (month == null) ? null : month } });
|
||||||
foreach (var item in result)
|
foreach (var item in result)
|
||||||
{
|
{
|
||||||
item.scdInfoSummary = string.Format("[{0}] {1}", item.studyplacename, item.estart.ToString("yyyy년 MM월 dd일 ddd요일 HH:mm"));
|
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);
|
return JsonBack(result);
|
||||||
|
|
@ -399,6 +401,21 @@ namespace NP.Base.Controllers
|
||||||
return JsonBack(result);
|
return JsonBack(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public JsonResult UpdateScd(int cmisno, int lectno)
|
||||||
|
{
|
||||||
|
var pass = Dao.Get<int>("cm.cminningscdcheck", new System.Collections.Hashtable() { { "cmisno", cmisno }}).First();
|
||||||
|
if (pass == 0)
|
||||||
|
return JsonBack(new JsonRtn() { code = 0, msg = "해당 일정은 마감되었습니다." });
|
||||||
|
else if(pass > 0)
|
||||||
|
{
|
||||||
|
Dao.Save("cm.lectcmisno.up" , new System.Collections.Hashtable() { { "cmisno", cmisno }, { "lectno", lectno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
||||||
|
return JsonBack(new JsonRtn() { code = 1, msg = "일정을 변경하였습니다." });
|
||||||
|
}
|
||||||
|
return JsonBack(new JsonRtn() { code = -1, msg = "개발자에게 문의하세요." });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1788,24 +1788,27 @@
|
||||||
<isNotNull property="studyplace">and a.studyplace=#studyplace#</isNotNull>
|
<isNotNull property="studyplace">and a.studyplace=#studyplace#</isNotNull>
|
||||||
</select>
|
</select>
|
||||||
<select id="cm.cminningscds.applyedu" parameterClass="hashtable" resultClass="cminningscd">
|
<select id="cm.cminningscds.applyedu" parameterClass="hashtable" resultClass="cminningscd">
|
||||||
select *
|
select
|
||||||
from(
|
a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.ccode,a.studyplacename,a.startmonth
|
||||||
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
|
,a.ccode, a.studyplacename,a.remainPeople
|
||||||
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0)) remainPeople
|
,case when a.estart < now() or a.remainPeople <= 0 then 0 else 1 end isend
|
||||||
,e.ccode, e.cname studyplacename
|
from
|
||||||
from cminningscd a
|
(
|
||||||
left outer join cminning c on c.cmino = a.cmino
|
select a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,month(a.estart) startmonth
|
||||||
left outer join cm d on d.cmno = c.cmno
|
,(a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0)) remainPeople
|
||||||
left outer join comcode e on e.ccode = d.studyplace
|
,e.ccode, e.cname studyplacename
|
||||||
|
from cminningscd a
|
||||||
<dynamic prepend="where">
|
left outer join cminning c on c.cmino = a.cmino
|
||||||
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull>
|
left outer join cm d on d.cmno = c.cmno
|
||||||
</dynamic>
|
left outer join comcode e on e.ccode = d.studyplace
|
||||||
) a
|
<dynamic prepend="where">
|
||||||
|
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull>
|
||||||
|
</dynamic>
|
||||||
|
)a
|
||||||
<dynamic prepend="where">
|
<dynamic prepend="where">
|
||||||
<isNotNull property="month" prepend="and">a.startmonth=#month#</isNotNull>
|
<isNotNull property="month" prepend="and">a.startmonth=#month#</isNotNull>
|
||||||
</dynamic>
|
</dynamic>
|
||||||
order by a.estart desc
|
order by isend desc,a.estart
|
||||||
</select>
|
</select>
|
||||||
<select id="cm.user.applyedu" parameterClass="hashtable" resultClass="users">
|
<select id="cm.user.applyedu" parameterClass="hashtable" resultClass="users">
|
||||||
select
|
select
|
||||||
|
|
@ -1888,5 +1891,16 @@
|
||||||
where a.userno = #userno#
|
where a.userno = #userno#
|
||||||
and b.cmno = #cmno# and b.iscomplete = 1
|
and b.cmno = #cmno# and b.iscomplete = 1
|
||||||
</select>
|
</select>
|
||||||
|
<select id="cm.cminningscdcheck" parameterClass="hashtable" resultClass="int">
|
||||||
|
select
|
||||||
|
a.quota - (select count(z.lectno) cnt from lect z where a.cmisno = z.cmisno and z.status =1 and z.ischanged=0)
|
||||||
|
from cminningscd a
|
||||||
|
where a.cmisno = #cmisno#
|
||||||
|
</select>
|
||||||
|
<update id="cm.lectcmisno.up" parameterClass="hashtable">
|
||||||
|
update lect set <include refid="sql.up"></include>
|
||||||
|
,cmisno =case when #cmisno# is not null then #cmisno# else cmisno end
|
||||||
|
where lectno=#lectno#
|
||||||
|
</update>
|
||||||
</statements>
|
</statements>
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
,cg.cgname
|
,cg.cgname
|
||||||
,pcg.cgcode pcgcode
|
,pcg.cgcode pcgcode
|
||||||
,c.tyear,c.tseq
|
,c.tyear,c.tseq
|
||||||
,u.username
|
,u.username,u.uduty
|
||||||
,case when uc.cname = '기타' then u.ccpositionetc else uc.cname end ccpositionname
|
,case when uc.cname = '기타' then u.ccpositionetc else uc.cname end ccpositionname
|
||||||
,ua.asname
|
,ua.asname
|
||||||
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.cdt desc</isNull>) rno
|
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.cdt desc</isNull>) rno
|
||||||
|
|
|
||||||
|
|
@ -337,29 +337,28 @@
|
||||||
function renderScd() {
|
function renderScd() {
|
||||||
var ulScd = $("#ulScd");
|
var ulScd = $("#ulScd");
|
||||||
ulScd.empty();
|
ulScd.empty();
|
||||||
var cnt = 0;
|
var seq = 0;
|
||||||
$.each(capResult.obj, function (i, d) {
|
$.each(capResult.obj, function (i, d) {
|
||||||
var li = $("<li />");
|
var li = $("<li />");
|
||||||
if (d.remainPeople <= 0)
|
if (d.isEnd == true)
|
||||||
{
|
{
|
||||||
if (cnt == 0) {
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label>");
|
||||||
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red'> (종료)</label>");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red'> (종료)</label>");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (cnt == 0) {
|
if (d.remainPeople <= 0) {
|
||||||
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label>");
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
if (seq == 0) {
|
||||||
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cnt++;
|
seq++;
|
||||||
ulScd.append(li);
|
ulScd.append(li);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,12 +61,12 @@
|
||||||
}
|
}
|
||||||
</dl>
|
</dl>
|
||||||
</a>
|
</a>
|
||||||
@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01"))
|
@if (d.cshape == 2 && d.estart > Convert.ToDateTime("1900-01-01") && d.eend > Convert.ToDateTime("1900-01-01") && d.iscomplete != 1 && Convert.ToDateTime(d.estart) > DateTime.Now)
|
||||||
{
|
{
|
||||||
<dl class="ltaDl" style="display:inline">
|
<dl class="ltaDl" style="display:inline">
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<input type="button" value="집체교육변경" />
|
<input type="button" value="집체교육변경" onclick="javscript:openScd(@d.cmno,@d.lectno);" />
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
}
|
}
|
||||||
|
|
@ -146,18 +146,19 @@
|
||||||
@Html.HiddenFor(m => m.intval)
|
@Html.HiddenFor(m => m.intval)
|
||||||
@Html.HiddenFor(m => m.stringval)
|
@Html.HiddenFor(m => m.stringval)
|
||||||
</form>
|
</form>
|
||||||
<div class="mpgPop" style="display: none" id="pop1">
|
|
||||||
|
<div class="mpgPop" style="display: none" id="popScd">
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<div class="mpgPopWrap">
|
<div class="mpgPopWrap">
|
||||||
<div class="mpgPopTitle">
|
<div class="mpgPopTitle">
|
||||||
<h5>QR코드</h5>
|
<h5>교육일정선택</h5>
|
||||||
<a href="javascript:mpgPopClose();"></a>
|
<a href="javascript:mpgPopClose();"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="mpgPopCont">
|
<div class="mpgPopCont">
|
||||||
<img id="qrcode" src="../img/mypage/lecture_attend_qrcode.jpg" alt="" />
|
<ul id="ulScd"></ul>
|
||||||
<ul class="mpgPopBtn">
|
<ul class="mpgPopBtn">
|
||||||
<li><a href="#" class="bk" onclick="getqr()">저장</a></li>
|
<li><a href="#" class="bk" onclick="selectScd()">선택완료</a></li>
|
||||||
<li><a href="#" onclick="mpgPopClose()">취소</a></li>
|
<li><a href="#" onclick="mpgPopClose()">취소</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- clsPopCont -->
|
</div><!-- clsPopCont -->
|
||||||
|
|
@ -169,59 +170,103 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
@section scripts{
|
@section scripts{
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
var vLectno;
|
||||||
$(".lctQr > span").click(function () {
|
$(document).ready(function () {
|
||||||
$(".lctQr > span").removeClass("current");
|
$(".lctQr > span").click(function () {
|
||||||
$(this).addClass("current");
|
$(".lctQr > span").removeClass("current");
|
||||||
var id = $(this).attr("id");
|
$(this).addClass("current");
|
||||||
if (id == "lblAll") { $("#stringval").val(null) }
|
var id = $(this).attr("id");
|
||||||
if (id == "lblOff") { $("#stringval").val("1") }
|
if (id == "lblAll") { $("#stringval").val(null) }
|
||||||
if (id == "lblMix") { $("#stringval").val("2") }
|
if (id == "lblOff") { $("#stringval").val("1") }
|
||||||
if (id == "lblOn") { $("#stringval").val("0") }
|
if (id == "lblMix") { $("#stringval").val("2") }
|
||||||
submit();
|
if (id == "lblOn") { $("#stringval").val("0") }
|
||||||
});
|
submit();
|
||||||
$("#lctQrChk").on("change", function () {
|
|
||||||
setv("intval", 0);
|
|
||||||
if ($(this).prop("checked")) {
|
|
||||||
setv("intval", 1);
|
|
||||||
}
|
|
||||||
submit();
|
|
||||||
});
|
|
||||||
$('.ltaOpen').click(function () {
|
|
||||||
var atdNum = $(this).attr('ltaOpen');
|
|
||||||
if ($(this).is('.on')) {
|
|
||||||
$("tr.payno" + $(this).attr("data-payno")).removeClass("on");
|
|
||||||
$(this).removeClass('on');
|
|
||||||
} else {
|
|
||||||
$("tr.payno" + $(this).attr("data-payno")).addClass("on");
|
|
||||||
$(this).addClass('on');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
function qr() {
|
$("#lctQrChk").on("change", function () {
|
||||||
capp("/fcommon/qrcode", {}, "cbqr");
|
setv("intval", 0);
|
||||||
}
|
if ($(this).prop("checked")) {
|
||||||
function cbqr() {
|
setv("intval", 1);
|
||||||
if (capResult.code == 1000) {
|
|
||||||
$('html, body').addClass('lock');
|
|
||||||
$("#qrcode").attr("src", capResult.obj);
|
|
||||||
$("#pop1").show();
|
|
||||||
}
|
}
|
||||||
}
|
submit();
|
||||||
function getqr() {
|
});
|
||||||
location.href = "/fcommon/QRCodeDown";
|
$('.ltaOpen').click(function () {
|
||||||
}
|
var atdNum = $(this).attr('ltaOpen');
|
||||||
function pc(lectno,userno) {
|
if ($(this).is('.on')) {
|
||||||
if (lectno < 1) {
|
$("tr.payno" + $(this).attr("data-payno")).removeClass("on");
|
||||||
msg('본인의 수료증만 확인할 수 있습니다.');
|
$(this).removeClass('on');
|
||||||
} else {
|
} else {
|
||||||
window.open("/My/CertPrint?lectno=" + lectno+"&intval="+userno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
|
$("tr.payno" + $(this).attr("data-payno")).addClass("on");
|
||||||
|
$(this).addClass('on');
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
function ps() {
|
});
|
||||||
window.open("/My/CertSet");
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
function pc(lectno,userno) {
|
||||||
|
if (lectno < 1) {
|
||||||
|
msg('본인의 수료증만 확인할 수 있습니다.');
|
||||||
|
} else {
|
||||||
|
window.open("/My/CertPrint?lectno=" + lectno+"&intval="+userno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function ps() {
|
||||||
|
window.open("/My/CertSet");
|
||||||
|
}
|
||||||
|
function openScd(cmno, lectno) {
|
||||||
|
vLectno = lectno
|
||||||
|
$(".mpgPop").show();
|
||||||
|
setScd(cmno);
|
||||||
|
}
|
||||||
|
function setScd(cmno) {
|
||||||
|
capp("/focommon/GetScdForMixEdu", { cmno: 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("<input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (종료)</label>");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (d.remainPeople <= 0) {
|
||||||
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' disabled> <span style='color:gray'>" + d.scdInfoSummary + "</span><label style='color: red'> (마감)</label>");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (seq == 0) {
|
||||||
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
seq++;
|
||||||
|
ulScd.append(li);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectScd() {
|
||||||
|
if (confirm("일정을 변경하시겠습니까?")) {
|
||||||
|
var cmisno = $("input:radio[name=rdoScds]:checked").val();
|
||||||
|
var lectno = vLectno;
|
||||||
|
if (cmisno == "" || cmisno == undefined || cmisno == null) {
|
||||||
|
alert("선택한 일정이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
capp("/focommon/UpdateScd", { cmisno: cmisno, lectno: lectno }, "scdSave");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function scdSave() {
|
||||||
|
alert(capResult.msg);
|
||||||
|
if (capResult.code == 1) {
|
||||||
|
submit();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
}
|
}
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
{
|
{
|
||||||
<li><span>소</span>속 : <b>@Model.Lect.asname</b></li>
|
<li><span>소</span>속 : <b>@Model.Lect.asname</b></li>
|
||||||
}
|
}
|
||||||
<li><span>직</span>위 : <b>@(string.IsNullOrEmpty(Model.Lect.ccpositionname)?"-":Model.Lect.ccpositionname )</b></li>
|
<li><span>직</span>위 : <b>@Model.Lect.uduty</b></li>
|
||||||
<li><span>성</span>명 : <b>@Model.Lect.username</b></li>
|
<li><span>성</span>명 : <b>@Model.Lect.username</b></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4>
|
<h4>
|
||||||
|
|
|
||||||
19
Model/CM.cs
19
Model/CM.cs
|
|
@ -1036,8 +1036,18 @@ namespace NP.Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public int isacceptemail { get; set; }
|
public int isacceptemail { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 교육일정시작일
|
||||||
|
/// </summary>
|
||||||
public DateTime estart { get; set; }
|
public DateTime estart { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 교육일정종료일
|
||||||
|
/// </summary>
|
||||||
public DateTime eend { get; set; }
|
public DateTime eend { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 직위
|
||||||
|
/// </summary>
|
||||||
|
public String uduty { get; set; }
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 자격검정시험
|
/// 자격검정시험
|
||||||
|
|
@ -3275,6 +3285,15 @@ namespace NP.Model
|
||||||
/// 내용요약
|
/// 내용요약
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public String scdInfoSummary { get; set; }
|
public String scdInfoSummary { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 등록가능인원수
|
||||||
|
/// </summary>
|
||||||
public int remainPeople { get; set; }
|
public int remainPeople { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 교육일자종료여부
|
||||||
|
/// </summary>
|
||||||
|
public bool isEnd { get; set; }
|
||||||
|
public int? termend { get; set; }
|
||||||
|
public int? peopleend { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue