<기능개선>

1. PMS NO : 
2. (주요)작업내용 : 과정/강좌 환급여부 및 오프라인 교육일정 추가
    /BO/Views/cm/cmreg.cshtml
    /BO/Views/cm/cmregeduschedule.cshtml
    /BO/Views/cm/cmregest.cshtml
    /BO/Views/cm/cmreginning.cshtml
    /BO/Views/cm/cmregmenu.cshtml
    /Model/CM.cs
This commit is contained in:
shjang 2022-07-26 06:51:18 +00:00
parent 02c9d8f1cc
commit 3ecb4fca8d
6 changed files with 119 additions and 42 deletions

View File

@ -3,15 +3,18 @@
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
<li class="@(Model.tabidx == 0 ? "active" : "")" id="tab1"><a href="#" data-toggle="tab">기본정보</a></li> <li class="@(Model.tabidx == 0 ? "active" : "")" id="tab1"><a href="#" data-toggle="tab">기본정보</a></li>
<li class="@(Model.tabidx == 1 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()" : "gotab(1)");" data-toggle="tab">회차설정</a></li> <li class="@(Model.tabidx == 1 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()" : "gotab(1)");" data-toggle="tab">회차설정</a></li>
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2) @*20220725 강좌인경우 교육일정 보이도록 처리
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2)*@
@if (Model.CM.ismaster == 0)
{ {
<li class="@(Model.tabidx == 2 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()" : "gotab(2)");" data-toggle="tab">교육일정</a></li> <li class="@(Model.tabidx == 2 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()" : "gotab(2)");" data-toggle="tab">교육일정</a></li>
} }
@if (!ViewBag.IsSubAdmin96) @if (!ViewBag.IsSubAdmin96)
{ {
<li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(3)");" data-toggle="tab">평가설정</a></li> <li class="@(Model.tabidx == 3 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(3)");" data-toggle="tab">평가설정</a></li>
<li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(4)");" data-toggle="tab">메뉴설정</a></li> <li class="@(Model.tabidx == 4 ? "active" : "")"><a href="#" onclick="@(Model.CM.cmno < 1 ? "gotab()":"gotab(4)");" data-toggle="tab">메뉴설정</a></li>
} }
</ul> </ul>
</div> </div>
<div class="row mgclear"> <div class="row mgclear">
@ -108,9 +111,10 @@
<label class="col-sm-4 col-md-2 control-label req">합숙여부</label> <label class="col-sm-4 col-md-2 control-label req">합숙여부</label>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", Model.CM.isaccommodation, new ViewDataDictionary() { { "valuetext", "1:예;0:아니요" }, { "checked", Model.CM.isaccommodation }, { "name", "CM.isaccommodation" } })</div> <div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", Model.CM.isaccommodation, new ViewDataDictionary() { { "valuetext", "1:예;0:아니요" }, { "checked", Model.CM.isaccommodation }, { "name", "CM.isaccommodation" } })</div>
</div> </div>
@*20220725 환급여부 추가*@
<div class="line line-dashed line-lg pull-in isaccommodation"></div><div class="form-group isaccommodation" style="display:none"> <div class="line line-dashed line-lg pull-in isaccommodation"></div><div class="form-group isaccommodation" style="display:none">
<label class="col-sm-4 col-md-2 control-label req">환급여부</label> <label class="col-sm-4 col-md-2 control-label req">환급여부</label>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", Model.CM.isaccommodation, new ViewDataDictionary() { { "valuetext", "1:예;0:아니요" }, { "checked", Model.CM.isrefund }, { "name", "CM.isrefund" } })</div> <div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", Model.CM.isrefund, new ViewDataDictionary() { { "valuetext", "1:예;0:아니요" }, { "checked", Model.CM.isrefund }, { "name", "CM.isrefund" } })</div>
</div> </div>
<div id="divLegalEdu" style="display:none"> <div id="divLegalEdu" style="display:none">
<div class="line line-dashed line-lg pull-in"></div><div class="form-group"> <div class="line line-dashed line-lg pull-in"></div><div class="form-group">

View File

@ -6,7 +6,9 @@
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
<li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li> <li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li>
<li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">회차설정</a></li> <li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">회차설정</a></li>
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2) @*20220725 강좌인경우 교육일정 보이도록 처리
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2)*@
@if (Model.CM.ismaster == 0)
{ {
<li class="active"><a href="#" data-toggle="tab">교육일정</a></li> <li class="active"><a href="#" data-toggle="tab">교육일정</a></li>
} }
@ -110,7 +112,15 @@
<colgroup><col style="width:150px;" /><col /></colgroup> <colgroup><col style="width:150px;" /><col /></colgroup>
<tr> <tr>
<th>학습방식</th> <th>학습방식</th>
<td>@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:오프라인;1:온라인대체" },{ "checked",0}, { "name", "scdtype" } })</td> @*20220725 교육유형이 오프라인인 경우 학습방식 변경 불가*@
@if (Model.CM.cshape == 1)
{
<td>@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:오프라인;1:온라인대체" }, { "disabled", "disabled" }, { "checked", 0 }, { "name", "scdtype" } })</td>
}
else
{
<td>@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:오프라인;1:온라인대체" }, { "checked", 0 }, { "name", "scdtype" } })</td>
}
</tr> </tr>
<tr style="display:none;"> <tr style="display:none;">
<th class="req">회차(순서)</th> <th class="req">회차(순서)</th>
@ -134,14 +144,27 @@
</tr> </tr>
<tr> <tr>
<th class="req">교육종료일</th> <th class="req">교육종료일</th>
<td> @*20220725 교육유형이 오프라인인 경우 From~To 형태로 기재*@
@Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "idate" } }) @if (Model.CM.cshape == 1)
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "isth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } }) {
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "istm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } }) <td>
<span class="idoff">~</span> @Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "iestart" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ieth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } }) <span class="idoff">~</span>
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ietm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } }) @Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "ieend" } })
</td> </td>
}
else
{
<td>
@Html.Partial("./Partial/Date", (DateTime?)null, new ViewDataDictionary { { "name", "idate" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "isth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "istm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
<span class="idoff">~</span>
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ieth" }, { "start", 0 }, { "end", 23 }, { "textadd", "시" }, { "df", ":-시" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
@Html.Partial("./Partial/Select", "", new ViewDataDictionary { { "special", "fromto" }, { "name", "ietm" }, { "start", 0 }, { "end", 59 }, { "textadd", "분" }, { "df", ":-분" }, { "class", "disp-init idoff" }, { "style", "width: 80px;" } })
</td>
}
</tr> </tr>
<tr class="troff"> <tr class="troff">
<th class="req">교육장소</th> <th class="req">교육장소</th>
@ -172,7 +195,7 @@
@Html.Partial("./Partial/ScriptDate") @Html.Partial("./Partial/ScriptDate")
} }
@section scripts{ @section scripts{
<script> <script>
var _cmino = 0; var _cmino = 0;
var _cmisno = 0; var _cmisno = 0;
var _isonline = @(Model.CMInnings.Count()>0 ? Model.CMInnings.FirstOrDefault().scdtype == 1 ? "true" : "false" : "false"); var _isonline = @(Model.CMInnings.Count()>0 ? Model.CMInnings.FirstOrDefault().scdtype == 1 ? "true" : "false" : "false");
@ -220,23 +243,39 @@
} }
function savescd() { function savescd() {
if (val("sseq") == "") { focus("sseq"); msg2("운영기수를 입력해주세요."); } var estart = "";
else if (@Model.CM.ismaster == 0 && check("idate", null, "학습일자를 입력해주세요.", true)) { } var eend = "";
//오프라인일때만 체크 if (val("sseq") == "") {
else if (!_isonline && val("isth") == "") { focus("isth"); msg2("학습시간을 확인해주세요."); } focus("sseq"); msg2("운영기수를 입력해주세요.");
else if (!_isonline && val("istm") == "") { focus("istm"); msg2("학습시간을 확인해주세요."); } return;
else if (!_isonline && val("ieth") == "") { focus("ieth"); msg2("학습시간을 확인해주세요."); } }
else if (!_isonline && val("ietm") == "") { focus("ietm"); msg2("학습시간을 확인해주세요."); }
else if (!_isonline && getint(val("isth")) > getint(val("ieth"))) { focus("ieth"); msg2("학습시간을 확인해주세요(종료시간이 더 빠름)"); } if (@Model.CM.cshape == 1) {//20220726 오프라인100%
else if (!_isonline && getint(val("isth")) == getint(val("ieth")) && getint(val("istm")) > getint(val("ietm"))) { focus("ieth"); msg2("학습시간을 확인해주세요(종료시간이 더 빠름)"); } if (check("iestart", null, "교육종료일(시작)을 입력해주세요.", true)) { return; }
else if (confirm("저장하시겠습니까?")) { else if (check("ieend", null, "교육종료일(종료)을 입력해주세요.", true)) { return; }
else if (val("iestart") > val("ieend")) { focus("ieend"); msg2("교육종료일(종료)을 확인해주세요(종료일이 더 빠름)"); return; }
estart = (getv("iestart") + " 00:00:00").toString();
eend = (getv("ieend") + " 23:59:59").toString();
} else if (@Model.CM.cshape == 2) {//20220726 온라인
if (check("idate", null, "교육종료일을 입력해주세요.", true)) { return;}
else {
if (!_isonline) { // 혼합교육
if (val("isth") == "") { focus("isth"); msg2("교육종료시간을 확인해주세요."); return; }
else if (val("istm") == "") { focus("istm"); msg2("교육종료시간을 확인해주세요."); return; }
else if (val("ieth") == "") { focus("ieth"); msg2("교육종료시간을 확인해주세요."); return;}
else if (val("ietm") == "") { focus("ietm"); msg2("교육종료시간을 확인해주세요."); return; }
else if (getint(val("isth")) > getint(val("ieth"))) { focus("ieth"); msg2("교육종료시간을 확인해주세요(종료시간이 더 빠름)"); return;}
else if (getint(val("isth")) == getint(val("ieth")) && getint(val("istm")) > getint(val("ietm"))) { focus("ieth"); msg2("교육종료시간을 확인해주세요(종료시간이 더 빠름)"); return;}
}
}
var date = getv("idate"); var date = getv("idate");
var isth = getv("isth"); var isth = getv("isth");
var istm = getv("istm"); var istm = getv("istm");
var ieth = getv("ieth"); var ieth = getv("ieth");
var ietm = getv("ietm"); var ietm = getv("ietm");
var estart = "";
var eend = "";
if (!_isonline) { if (!_isonline) {
estart = (date + " " + fillzero(isth, true, 2) + ":" + fillzero(istm, true, 2) + ":00").toString(); estart = (date + " " + fillzero(isth, true, 2) + ":" + fillzero(istm, true, 2) + ":00").toString();
eend = (date + " " + fillzero(ieth, true, 2) + ":" + fillzero(ietm, true, 2) + ":59").toString(); eend = (date + " " + fillzero(ieth, true, 2) + ":" + fillzero(ietm, true, 2) + ":59").toString();
@ -244,14 +283,22 @@
estart = (date + " 00:00:00").toString(); estart = (date + " 00:00:00").toString();
eend = (date + " 23:59:59").toString(); eend = (date + " 23:59:59").toString();
} }
}
if (!_isonline && !$.isNumeric(getv("iquota"))) {
focus("iquota"); msg2("모집인원을 입력해주세요.");
return;
}
if (confirm("저장하시겠습니까?")) {
capp("/acommon/cminningscdsave", { capp("/acommon/cminningscdsave", {
cmisno: _cmisno, cmisno: _cmisno,
cmino: @(Model.CMInnings.Count() > 0 ? Model.CMInnings[0].cmino : 0), cmino: @(Model.CMInnings.Count() > 0 ? Model.CMInnings[0].cmino : 0),
estart2: estart, estart2: estart,
eend2: eend, eend2: eend,
quota: _isonline ? 99999 : getv("iquota"), quota: _isonline ? 99999 : getv("iquota"),
sseq : getv("sseq"), sseq : getv("sseq"),
studyplace: _isonline ? null : $(":input:radio[name=istudyplace]:checked").val() studyplace: _isonline ? null : $(":input:radio[name=istudyplace]:checked").val()
}, "cbcminningscdsave", null, null, null, true); }, "cbcminningscdsave", null, null, null, true);
} }
} }
@ -348,12 +395,18 @@
var startSec = start.split(':')[1]; var startSec = start.split(':')[1];
var endMinute = end.split(':')[0]; var endMinute = end.split(':')[0];
var endSec = end.split(':')[1]; var endSec = end.split(':')[1];
if (@Model.CM.cshape == 1) { //20220726 오프라인100%
setv("iestart", d.estartShortDateString);
setv("ieend", d.eendShortDateString);
}
else {
setv("idate", date);
setv("isth", getint(startMinute));
setv("istm", getint(startSec));
setv("ieth", getint(endMinute));
setv("ietm", getint(endSec));
}
setv("idate", date);
setv("isth", getint(startMinute));
setv("istm", getint(startSec));
setv("ieth", getint(endMinute));
setv("ietm", getint(endSec));
setv("iquota", getint(d.quota)); setv("iquota", getint(d.quota));
setv("sseq", getint(d.sseq)); setv("sseq", getint(d.sseq));
if (d.studyplace != null) { if (d.studyplace != null) {
@ -431,5 +484,5 @@
} }
} }
} }
</script> </script>
} }

View File

@ -3,7 +3,9 @@
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
<li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li> <li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li>
<li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">회차설정</a></li> <li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">회차설정</a></li>
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2) @*20220725 강좌인경우 교육일정 보이도록 처리
@if(Model.CM.ismaster == 0 && Model.CM.cshape == 2) *@
@if (Model.CM.ismaster == 0)
{ {
<li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li> <li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
} }

View File

@ -3,7 +3,9 @@
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
<li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li> <li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li>
<li class="active"><a href="#" data-toggle="tab">회차설정</a></li> <li class="active"><a href="#" data-toggle="tab">회차설정</a></li>
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2) @*20220725 강좌인경우 교육일정 보이도록 처리
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2)*@
@if (Model.CM.ismaster == 0)
{ {
<li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li> <li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
} }

View File

@ -3,7 +3,9 @@
<ul class="pagination pagination-md" style="margin: 0;"> <ul class="pagination pagination-md" style="margin: 0;">
<li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li> <li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">기본정보</a></li>
<li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">회차설정</a></li> <li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">회차설정</a></li>
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2) @*20220725 강좌인경우 교육일정 보이도록 처리
@if (Model.CM.ismaster == 0 && Model.CM.cshape == 2)*@
@if (Model.CM.ismaster == 0)
{ {
<li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li> <li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">교육일정</a></li>
} }

View File

@ -4003,6 +4003,7 @@ namespace NP.Model
return estart.ToShortDateString(); return estart.ToShortDateString();
} }
} }
public int estartday public int estartday
{ {
get { get {
@ -4016,6 +4017,19 @@ namespace NP.Model
/// </summary> /// </summary>
public DateTime eend { get; set; } public DateTime eend { get; set; }
public string eend2 { get; set; } public string eend2 { get; set; }
/// <summary>
/// 종료일
/// 20220726
/// </summary>
public string eendShortDateString
{
get
{
return eend.ToShortDateString();
}
}
/// <summary> /// <summary>
/// 0:오프라인,1:온라인대체 /// 0:오프라인,1:온라인대체
/// </summary> /// </summary>