This commit is contained in:
hyunho 2020-11-11 07:26:18 +00:00
parent fc371278f3
commit 858bbc1ed1
7 changed files with 182 additions and 88 deletions

View File

@ -383,10 +383,12 @@ namespace NP.Base.Controllers
[HttpPost]
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)
{
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);
@ -399,6 +401,21 @@ namespace NP.Base.Controllers
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 = "개발자에게 문의하세요." });
}
}
}

View File

@ -1788,24 +1788,27 @@
<isNotNull property="studyplace">and a.studyplace=#studyplace#</isNotNull>
</select>
<select id="cm.cminningscds.applyedu" parameterClass="hashtable" resultClass="cminningscd">
select *
from(
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
,e.ccode, e.cname studyplacename
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 comcode e on e.ccode = d.studyplace
<dynamic prepend="where">
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull>
</dynamic>
) a
select
a.cmisno,a.cmino,a.estart,a.eend,a.quota,a.cdt,a.udt,a.ccode,a.studyplacename,a.startmonth
,a.ccode, a.studyplacename,a.remainPeople
,case when a.estart &lt; now() or a.remainPeople &lt;= 0 then 0 else 1 end isend
from
(
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
,e.ccode, e.cname studyplacename
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 comcode e on e.ccode = d.studyplace
<dynamic prepend="where">
<isNotNull property="cmno" prepend="and">c.cmno=#cmno#</isNotNull>
</dynamic>
)a
<dynamic prepend="where">
<isNotNull property="month" prepend="and">a.startmonth=#month#</isNotNull>
</dynamic>
order by a.estart desc
order by isend desc,a.estart
</select>
<select id="cm.user.applyedu" parameterClass="hashtable" resultClass="users">
select
@ -1888,5 +1891,16 @@
where a.userno = #userno#
and b.cmno = #cmno# and b.iscomplete = 1
</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>
</sqlMap>

View File

@ -34,7 +34,7 @@
,cg.cgname
,pcg.cgcode pcgcode
,c.tyear,c.tseq
,u.username
,u.username,u.uduty
,case when uc.cname = '기타' then u.ccpositionetc else uc.cname end ccpositionname
,ua.asname
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.cdt desc</isNull>) rno

View File

@ -337,29 +337,28 @@
function renderScd() {
var ulScd = $("#ulScd");
ulScd.empty();
var cnt = 0;
var seq = 0;
$.each(capResult.obj, function (i, d) {
var li = $("<li />");
if (d.remainPeople <= 0)
if (d.isEnd == true)
{
if (cnt == 0) {
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>");
}
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 (cnt == 0) {
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "' checked> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</label>");
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
{
li.append("<input type='radio' name='rdoScds' value='" + d.cmisno + "'> " + d.scdInfoSummary + "<label style='color: red'> (" + d.remainPeople + "명 남음)</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>");
}
}
}
cnt++;
seq++;
ulScd.append(li);
});
}

View File

@ -61,12 +61,12 @@
}
</dl>
</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">
<dd>
&nbsp;&nbsp;&nbsp;
<input type="button" value="집체교육변경" />
<input type="button" value="집체교육변경" onclick="javscript:openScd(@d.cmno,@d.lectno);" />
</dd>
</dl>
}
@ -146,18 +146,19 @@
@Html.HiddenFor(m => m.intval)
@Html.HiddenFor(m => m.stringval)
</form>
<div class="mpgPop" style="display: none" id="pop1">
<div class="mpgPop" style="display: none" id="popScd">
<div>
<div>
<div class="mpgPopWrap">
<div class="mpgPopTitle">
<h5>QR코드</h5>
<h5>교육일정선택</h5>
<a href="javascript:mpgPopClose();"></a>
</div>
<div class="mpgPopCont">
<img id="qrcode" src="../img/mypage/lecture_attend_qrcode.jpg" alt="" />
<ul id="ulScd"></ul>
<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>
</ul>
</div><!-- clsPopCont -->
@ -169,59 +170,103 @@
}
@section scripts{
<script>
$(document).ready(function () {
$(".lctQr > span").click(function () {
$(".lctQr > span").removeClass("current");
$(this).addClass("current");
var id = $(this).attr("id");
if (id == "lblAll") { $("#stringval").val(null) }
if (id == "lblOff") { $("#stringval").val("1") }
if (id == "lblMix") { $("#stringval").val("2") }
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');
}
});
<script>
var vLectno;
$(document).ready(function () {
$(".lctQr > span").click(function () {
$(".lctQr > span").removeClass("current");
$(this).addClass("current");
var id = $(this).attr("id");
if (id == "lblAll") { $("#stringval").val(null) }
if (id == "lblOff") { $("#stringval").val("1") }
if (id == "lblMix") { $("#stringval").val("2") }
if (id == "lblOn") { $("#stringval").val("0") }
submit();
});
function qr() {
capp("/fcommon/qrcode", {}, "cbqr");
}
function cbqr() {
if (capResult.code == 1000) {
$('html, body').addClass('lock');
$("#qrcode").attr("src", capResult.obj);
$("#pop1").show();
$("#lctQrChk").on("change", function () {
setv("intval", 0);
if ($(this).prop("checked")) {
setv("intval", 1);
}
}
function getqr() {
location.href = "/fcommon/QRCodeDown";
}
function pc(lectno,userno) {
if (lectno < 1) {
msg('본인의 수료증만 확인할 수 있습니다.');
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 {
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>
}

View File

@ -10,7 +10,7 @@
{
<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>
</ul>
<h4>

View File

@ -1036,8 +1036,18 @@ namespace NP.Model
}
}
public int isacceptemail { get; set; }
/// <summary>
/// 교육일정시작일
/// </summary>
public DateTime estart { get; set; }
/// <summary>
/// 교육일정종료일
/// </summary>
public DateTime eend { get; set; }
/// <summary>
/// 직위
/// </summary>
public String uduty { get; set; }
}
/// <summary>
/// 자격검정시험
@ -3275,6 +3285,15 @@ namespace NP.Model
/// 내용요약
/// </summary>
public String scdInfoSummary { get; set; }
/// <summary>
/// 등록가능인원수
/// </summary>
public int remainPeople { get; set; }
/// <summary>
/// 교육일자종료여부
/// </summary>
public bool isEnd { get; set; }
public int? termend { get; set; }
public int? peopleend { get; set; }
}
}