This commit is contained in:
hyunho 2020-10-21 08:23:55 +00:00
parent d5fccf7a61
commit 838cd45e38
5 changed files with 276 additions and 122 deletions

View File

@ -59,15 +59,24 @@ namespace NP.BO.Controllers
//{
// vm.CGs2 = Dao.Get<CG>("cm.cgs", new System.Collections.Hashtable() { { "isuse", 1 }, { "pcgno", vm.stringval },{ "isdel", 0 } });
//}
if (vm.viewidx == 0 && !IsPost() && string.IsNullOrEmpty(vm.stringval5))
if (vm.viewidx == 0 && !IsPost() && string.IsNullOrEmpty(vm.stringval12))
{
vm.stringval5 = DateTime.Now.Year.ToString();
vm.stringval12 = DateTime.Now.Year.ToString();
}
if (vm.viewidx == 0 && !IsPost() && string.IsNullOrEmpty(vm.stringval10))
{
vm.stringval10 = vm.stringval10 ?? DateTime.Now.ToString("yyyy-MM-01");
}
if (vm.viewidx == 0 && !IsPost() && string.IsNullOrEmpty(vm.stringval11))
{
vm.stringval11 = vm.stringval11 ?? DateTime.Now.AddMonths(1).ToString("yyyy-MM-01");
}
vm.Terms = Dao.Get<Term>("cm.terms", new System.Collections.Hashtable() { /*{ "tyear", DateTime.Now.Year }*/ });
var ht = SetHash(vm);
ht.Add("pcgno", vm.stringval);
ht.Add("tyear", vm.stringval5);
ht.Add("tseq", vm.stringval6);
ht.Add("cgno", vm.stringval2);
ht.Add("cshape", vm.stringval3);
@ -78,6 +87,10 @@ namespace NP.BO.Controllers
ht.Add("studyplace", vm.stringval8);
ht.Add("cname", vm.stringval9);
ht.Add("sstime", vm.stringval10);
ht.Add("setime", vm.stringval11);
ht.Add("tyear", vm.stringval12);
ht.Add("tseq", vm.stringval13);
ht.Add("ismaster", vm.viewidx);
ht.Add("listcolumn", 1);
vm.CMs = Dao.Get<CM>("cm.cms", ht);
@ -104,7 +117,7 @@ namespace NP.BO.Controllers
}
public ActionResult cmmasterreg(NP.Model.VMCM vm)
{
vm.CM = new CM() { isuse = 1, ismaster = 1 , isseq=1 };
vm.CM = new CM() { isuse = 1, ismaster = 1 , isseq=1 , iscertificate=1};
return cmreg(vm);
}

View File

@ -171,6 +171,22 @@
시간
</div>
</div>
@if (Model.CM.ismaster == 0)
{
<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>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", Model.CM.iscertificate, new ViewDataDictionary() { { "valuetext", "1:발행;0:미발행" }, { "checked", Model.CM.iscertificate }, { "name", "CM.iscertificate" } })</div>
</div>
}
else
{
<div style="display:none">
<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>
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", Model.CM.iscertificate, new ViewDataDictionary() { { "valuetext", "1:발행;0:미발행" }, { "checked", Model.CM.iscertificate }, { "name", "CM.iscertificate" } })</div>
</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>
<div class="col-sm-8 col-md-10">
@ -210,7 +226,7 @@
<form id="dform" method="post" action="/cm/@Model.listviewname">
@Html.Partial("./Partial/DForm", Model, new ViewDataDictionary { { "preform", 1 } })
</form>
@Html.Partial("./Partial/UserBox", "bindUser;강사/담당자 선택;999_1", new ViewDataDictionary { { "assigns", Model.Assigns } ,{"userauths",Model.userauths } })
@Html.Partial("./Partial/UserBox", "bindUser;강사/담당자 선택;999_1", new ViewDataDictionary { { "assigns", Model.Assigns }, { "userauths", Model.userauths } })
@Html.Partial("./Partial/BookBox", "bindBook;교재선택 선택")
@Html.Partial("./Partial/CMBox", "bindCM;과정 선택;1")
@Html.Partial("./Partial/NCSBox", "bindNCS;NCS 세분류(직무) 선택;3")

View File

@ -1,44 +1,142 @@
@model NP.Model.VMCM
<form id="mform" method="post">
<section class="panel panel-default clearfix devsearch" data-cleartbody="tbody1">
@Html.Partial("./Partial/SearchCaption")
<div class="step-content">
<div class="step-pane active form-inline">
<div class="form-group">
@*@Html.Partial("./Partial/SearchCaption")*@
<div class="table-responsive">
<table class="table b-t b-light viewtable">
<colgroup>
<col width="15%" />
<col width="35%" />
<col width="15%" />
<col width="*" />
<col />
</colgroup>
<tbody id="searchtbody">
@if (Model.viewidx == 0)
{
<select id="stringval5" name="stringval5" class="form-control">
<tr>
<th>년도</th>
<td>
<div class="col-md-12">
<select id="stringval12" name="stringval12" class="form-control">
<option value="">-년도선택</option>
@foreach (var t in Model.Terms.Select(s => s.tyear).Distinct())
{
<option value="@t" @(Model.stringval5 == t.ToString() ? "selected" : "")>@t 년</option>
<option value="@t" @(Model.stringval12 == t.ToString() ? "selected" : "")>@t 년</option>
}
</select>
<select id="stringval6" name="stringval6" class="form-control">
</div>
</td>
<th>기수</th>
<td>
<div class="col-md-12">
<select id="stringval13" name="stringval13" class="form-control">
<option value="">-기수선택</option>
@foreach (var t in Model.Terms.Where(w => w.tyear.ToString() == Model.stringval5))
@foreach (var t in Model.Terms.Where(w => w.tyear.ToString() == Model.stringval13))
{
<option value="@t.tseq" @(Model.stringval6 == t.tseq.ToString() ? "selected" : "")>@t.tseq 기</option>
<option value="@t.tseq" @(Model.stringval13 == t.tseq.ToString() ? "selected" : "")>@t.tseq 기</option>
}
</select>
</div>
</td>
</tr>
}
@Html.Partial("./Partial/Select", Model.CGs.Where(w => w.pcgno == null), new ViewDataDictionary { { "name", "stringval" }, { "selected", Model.stringval }, { "df", ":-상위분류" } })
@Html.Partial("./Partial/Select", Model.CGs.Where(w => w.pcgno != null && w.pcgno.ToString() == Model.stringval), new ViewDataDictionary { { "name", "stringval2" }, { "selected", Model.stringval2 }, { "df", ":-분류" } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "0:온라인;1:오프라인;2:혼합" }, { "name", "stringval3" }, { "selected", Model.stringval3 }, { "df", ":-유형선택" } })
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeman"), new ViewDataDictionary { { "name", "stringval4" }, { "selected", Model.stringval4 }, { "df", ":-기술인분류" } })
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "df", ":-교육목적" } })
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "df", ":-등급" } })
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typejob"), new ViewDataDictionary { { "name", "stringval7" }, { "selected", Model.stringval7 }, { "df", ":-직무분야" } })
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval8" }, { "selected", Model.stringval8 }, { "df", ":-교육장구분" } })
@Html.Partial("./Partial/Text", Model.stringval9, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval4", Value = Model.stringval9, PH = Model.viewidxname + "명을 입력하세요.", CssClass = "ff" }))
@Html.Partial("./Partial/Button", new NP.Model.Button() { Special = "search" })
<tr>
<th>과정분류</th>
<td>
<div class="col-md-6">
@Html.Partial("./Partial/Select", Model.CGs.Where(w => w.pcgno == null), new ViewDataDictionary { { "name", "stringval" }, { "selected", Model.stringval }, { "style", "width: 100%" }, { "df", ":-상위분류" } })
</div>
<div class="col-md-6">
@Html.Partial("./Partial/Select", Model.CGs.Where(w => w.pcgno != null && w.pcgno.ToString() == Model.stringval), new ViewDataDictionary { { "name", "stringval2" }, { "selected", Model.stringval2 }, { "style", "width: 100%;" }, { "df", ":-분류" } })
</div>
</td>
<th>교육유형</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "0:온라인;1:오프라인;2:혼합" }, { "name", "stringval3" }, { "selected", Model.stringval3 }, { "style", "width: 100%" }, { "df", ":-유형선택" } })
</div>
</td>
</tr>
<tr>
<th>기술인분류</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeman"), new ViewDataDictionary { { "name", "stringval4" }, { "selected", Model.stringval4 }, { "style", "width: 100%" }, { "df", ":-기술인분류" } })
</div>
</td>
<th>교육목적</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "style", "width: 100%" }, { "df", ":-교육목적" } })
</div>
</td>
</tr>
<tr>
<th>등급</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "style", "width: 100%" }, { "df", ":-등급" } })
</div>
</td>
<th>직무분야</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typejob"), new ViewDataDictionary { { "name", "stringval7" }, { "selected", Model.stringval7 }, { "style", "width: 100%" }, { "df", ":-직무분야" } })
</div>
</td>
</tr>
@if (Model.viewidx == 1)
{
<tr>
<th>교육장구분</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval8" }, { "selected", Model.stringval8 }, { "style", "width: 100%" }, { "df", ":-교육장구분" } })
</div>
</td>
<th>@(Model.viewidxname)명</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval9, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval9", Value = Model.stringval9, PH = Model.viewidxname + "명을 입력하세요.", CssClass = "ff" }))
</div>
</td>
</tr>
}
else
{
<tr>
<th>교육장구분</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval8" }, { "selected", Model.stringval8 }, { "style", "width: 100%" }, { "df", ":-교육장구분" } })
</div>
</td>
<th>학습기간</th>
<td>
<div class="col-md-12">
@Html.Partial("./Partial/Date", Convert.ToDateTime(Model.stringval10), new ViewDataDictionary { { "name", "stringval10" } })~
@Html.Partial("./Partial/Date", Convert.ToDateTime(Model.stringval11), new ViewDataDictionary { { "name", "stringval11" } })
</div>
</td>
</tr>
<tr>
<th>@(Model.viewidxname)명</th>
<td colspan="3">
<div class="col-md-12">
@Html.Partial("./Partial/Text", Model.stringval9, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval9", Value = Model.stringval9, PH = Model.viewidxname + "명을 입력하세요.", CssClass = "ff" }))
</div>
</td>
</tr>
}
</table>
</div>
</section>
<div style="text-align: right; border-bottom: 1px solid #ddd; padding-bottom: 5px;">
<button class="btn btn-default btn-s-xs" type="button" onclick="javascript:submit();"><i class="fa fa-search"></i></button>
</div><br />
<div class="tar buttonbox">
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
@*@if (Model.viewidx == 0)
@ -70,8 +168,8 @@
</tr>
</thead>
<tbody class="data" id="tbody1">
@if (Model.viewidx == 0)
{
@if (Model.viewidx == 0)
{
foreach (var item in Model.CMs)
{
<tr>
@ -87,13 +185,13 @@
<td>@item.cgname</td>
<td>@item.cshapename</td>
<td class="link cname"><a href="#" onclick="reg(@item.cmno)">@item.cname (@item.classno)</a></td>
<td class="link text-center"><a href="#" onclick="golect(@item.cmno)">@Model.Datas.Where(w => w.intval == item.cmno).Select(w=>w.intval2).FirstOrDefault()</a></td>
<td class="link text-center"><a href="#" onclick="golect(@item.cmno)">@Model.Datas.Where(w => w.intval == item.cmno).Select(w => w.intval2).FirstOrDefault()</a></td>
<td class="link text-center"><a href="#" onclick="copycm(@item.cmno, '@item.cname', @item.pcgno, @item.cgno, @item.pcmno, this)">[복제]</a></td>
</tr>
}
}
else
{
}
else
{
foreach (var item in Model.CMs)
{
<tr>
@ -107,7 +205,7 @@ else
<td class="link text-center"><a href="#" onclick="createcm('r',@item.cmno, @item.pcgno, @item.cgno)">[추가]</a></td>
</tr>
}
}
}
</tbody>
</table>
</div>
@ -160,6 +258,7 @@ else
</div>
@section scriptsHeader{
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
@Html.Partial("./Partial/ScriptDate")
}
@section scripts{
<script>
@ -167,14 +266,14 @@ else
var _terms = '@(string.Join(";", Model.Terms.Select(s=>string.Format("{0}:{1}:{2}", s.tmno, s.tyear, s.tseq))))';
var _cgs = '@(string.Join(";", Model.CGs.Select(s=>string.Format("{0}:{1}:{2}", s.pcgno??0, s.cgno, s.cgname))))';
$(document).ready(function () {
$("#stringval5").on("change", function () {
$("#stringval6").val("");
$("#stringval6 option:gt(0)").remove();
$("#stringval12").on("change", function () {
$("#stringval13").val("");
$("#stringval13 option:gt(0)").remove();
if ($(this).val() != "") {
var _y = $(this).val();
$.each(_terms.split(';'), function (i, t) {
if (t.split(':')[1] == _y) {
$("#stringval6").append("<option value=\"" + t.split(':')[2]+"\">" + t.split(':')[2]+" 기</option>")
$("#stringval13").append("<option value=\"" + t.split(':')[2]+"\">" + t.split(':')[2]+" 기</option>")
}
});
}

View File

@ -121,7 +121,7 @@
,a.cshape,a.infee,a.outfee,a.quota
,a.introhtml,a.targethtml,a.goalhtml,a.contenthtml
,a.studytime,a.studyplace,a.certcc,a.certgradecc,a.jobcc,a.jobpositiongrade,a.difficulty,a.isrefund,a.isuse,a.isseq,a.fgnocm
,a.typeman,a.typeedu,a.typegrade,a.typejob
,a.typeman,a.typeedu,a.typegrade,a.typejob,a.iscertificate
,b.pcgno,b.cgcode cgcode
,b.cgname,c.cgname pcgname
,c.cgcode pcgcode
@ -143,11 +143,11 @@
<isNotNull property="pcgno">and b.pcgno=#pcgno#</isNotNull>
<isNotNull property="cgno">and a.cgno=#cgno#</isNotNull>
<isNotNull property="cshape">and a.cshape=#cshape#</isNotNull>
<isNotNull property="typeman">and a.cshape=#typeman#</isNotNull>
<isNotNull property="typeedu">and a.cshape=#typeedu#</isNotNull>
<isNotNull property="typegrade">and a.cshape=#typegrade#</isNotNull>
<isNotNull property="typejob">and a.cshape=#typejob#</isNotNull>
<isNotNull property="studyplace">and a.cshape=#studyplace#</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="studyplace">and a.studyplace=#studyplace#</isNotNull>
<isNotNull property="cshapes">and a.cshape in ($cshapes$)</isNotNull>
<isNotEmpty property="cname">and a.cname like concat('%',#cname#,'%')</isNotEmpty>
<isNotNull property="ismaster">and a.ismaster=#ismaster#</isNotNull>
@ -157,6 +157,8 @@
<isNotNull property="tseq" prepend="and">t.tseq=#tseq#</isNotNull>
<isNotNull property="tmno" prepend="and">a.tmno=#tmno#</isNotNull>
<isNotNull property="iscurrent" prepend="and">a.setime &gt; now()</isNotNull>
<isNotNull property="sstime" prepend="and">t.sstime &gt;= #sstime#</isNotNull>
<isNotNull property="setime" prepend="and">t.setime &lt;= #setime#</isNotNull>
) a
<include refid="sql.pagedynamic"></include>
order by a.rno
@ -218,11 +220,11 @@
insert into cm(ismaster,cgno,pcmno,cname,kname,tmno,classno,rstime,retime,sstime,setime,gstime,getime,cshape
,infee,outfee,quota
,introhtml,targethtml,goalhtml,contenthtml,studyplace,studytime
,certcc,certgradecc,jobcc,jobpositiongrade,difficulty,isrefund,isuse,isdel,isseq,fgnocm,typeman,typeedu,typegrade,typejob,<include refid="sql.inc"></include>)
,certcc,certgradecc,jobcc,jobpositiongrade,difficulty,isrefund,isuse,isdel,isseq,fgnocm,typeman,typeedu,typegrade,typejob,iscertificate,<include refid="sql.inc"></include>)
values (#ismaster#,#cgno#,#pcmno#,#cname#,#kname#,#tmno#,#classno#,#rstime#,#retime#,#sstime#,#setime#,#gstime#,#getime#,#cshape#
,#infee#,#outfee#,#quota#
,#introhtml#,#targethtml#,#goalhtml#,#contenthtml#
,#studyplace#,#studytime#,#certcc#,#certgradecc#,#jobcc#,#jobpositiongrade#,#difficulty#,#isrefund#,#isuse#,0,#isseq#,#fgnocm#,#typeman#,#typeedu#,#typegrade#,#typejob#,<include refid="sql.inv"></include>);
,#studyplace#,#studytime#,#certcc#,#certgradecc#,#jobcc#,#jobpositiongrade#,#difficulty#,#isrefund#,#isuse#,0,#isseq#,#fgnocm#,#typeman#,#typeedu#,#typegrade#,#typejob#,#iscertificate#,<include refid="sql.inv"></include>);
<selectKey type="post" property="cmno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert>
<update id="cm.cmup" parameterClass="hashtable">
@ -255,6 +257,11 @@
,isrefund =#isrefund#
,isuse =#isuse#
,fgnocm =#fgnocm#
,typeman =#typeman#
,typeedu =#typeedu#
,typegrade =#typegrade#
,typejob =#typejob#
,iscertificate =case when #iscertificate# is not null then #iscertificate# else iscertificate end
where cmno=#cmno#
</update>
<update id="cm.data.delete" parameterClass="hashtable">

View File

@ -393,11 +393,30 @@ namespace NP.Model
public int countstanbypay { get; set; }
public int countstanbydraw { get; set; }
/// <summary>
/// 기술인분류
/// </summary>
public String typeman { get; set; }
/// <summary>
/// 교육목적
/// </summary>
public String typeedu { get; set; }
/// <summary>
/// 등급
/// </summary>
public String typegrade { get; set; }
/// <summary>
/// 직무분야
/// </summary>
public String typejob { get; set; }
/// <summary>
/// 집합교육출석필수
/// </summary>
public int? isoffabs { get; set; }
/// <summary>
/// 이수증발급여부
/// </summary>
public int? iscertificate { get; set; }
}
[Serializable]