This commit is contained in:
hyunho 2020-10-20 06:42:40 +00:00
parent ee9252904e
commit 2b6a4036c3
7 changed files with 108 additions and 92 deletions

View File

@ -53,6 +53,7 @@ namespace NP.BO.Controllers
vm.listviewname = vm.listviewname ?? "cms";
vm.CMs = InitM<CM>();
vm.CGs = Dao.Get<CG>("cm.cgs", new System.Collections.Hashtable() { { "isuse", 1 }, { "isdel", 0 } });
vm.ComCodes = GetComCodes("typeman,typeedu,typegrade,typejob,studyplace");
//vm.CGs2 = new List<CG>() { };
//if (!string.IsNullOrEmpty(vm.stringval))
//{
@ -69,7 +70,14 @@ namespace NP.BO.Controllers
ht.Add("tseq", vm.stringval6);
ht.Add("cgno", vm.stringval2);
ht.Add("cshape", vm.stringval3);
ht.Add("cname", vm.stringval4);
ht.Add("typeman", vm.stringval4);
ht.Add("typeedu", vm.stringval5);
ht.Add("typegrade", vm.stringval6);
ht.Add("typejob", vm.stringval7);
ht.Add("studyplace", vm.stringval8);
ht.Add("cname", vm.stringval9);
ht.Add("ismaster", vm.viewidx);
ht.Add("listcolumn", 1);
vm.CMs = Dao.Get<CM>("cm.cms", ht);
@ -128,7 +136,7 @@ namespace NP.BO.Controllers
vm.CGs = Dao.Get<CG>("cm.cgs", new System.Collections.Hashtable() { { "istop", 1 }, { "isdel", 0 }, { "isuse", 1 } });
}
vm.Assigns = Dao.Get<Assign>("users.assigns", new System.Collections.Hashtable() { { "status", 1 }, { "ismain", 1 } });
vm.ComCodes = GetComCodes("cert,certgrade,job,studyplace");
vm.ComCodes = GetComCodes("cert,certgrade,job,typeman,typeedu,typegrade,typejob,studyplace");
vm.userauths = Dao.Get<NP.Model.UserAuth>("sys.menu.auths",new System.Collections.Hashtable() { {"isadminprof", 1 } });
return View("cmreg", vm);
}

View File

@ -34,7 +34,7 @@
<input type="text" value="@(Model.CM.classno) 반" class="form-control disp-init" style="width: 100px; text-align: center" disabled />
</div>
</div>
<div id="keyword" style="@(Model.CM.pcgno==Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).First() ? "":"display:none;")">
<div id="keyword" style="@(Model.CM.pcgno==Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).FirstOrDefault() ? "":"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">
@ -62,7 +62,7 @@
<label class="col-sm-4 col-md-2 control-label req">@(Model.viewidxname)명</label>
<div class="col-sm-8 col-md-10">@Html.TextBoxFor(m => m.CM.cname, new { @class = "form-control disp-init ff", @style = "width: 50%", @maxlength = "100", @placeholder = Model.viewidxname + "명을 입력하세요." })</div>
</div>
<div id="keyword" style=" @(Model.CM.pcgno==Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).First() ? "":"display:none;")">
<div id="keyword" style=" @(Model.CM.pcgno==Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).FirstOrDefault() ? "":"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">
@ -73,9 +73,40 @@
</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 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.cshape, new ViewDataDictionary() { { "valuetext", "0:온라인;1:오프라인;2:혼합(온라인+오프라인)" }, { "checked", Model.CM.cshape }, { "name", "CM.cshape" } })</div>
</div>
<div id="divLegalEdu" 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.HiddenFor(m => m.CM.typeman)
@Html.Partial("./Partial/Checkbox", Model.ComCodes.Where(w => w.cgroup == "typeman"), new ViewDataDictionary { { "name", "typeman" }, {"autobind", "CM_typeman" }, { "checked", Model.CM.typeman }@*, { "fixwidth", "100px" }*@ })
</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">
@Html.HiddenFor(m => m.CM.typeedu)
@Html.Partial("./Partial/Checkbox", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "typeedu" }, {"autobind", "CM_typeedu" }, { "checked", Model.CM.typeedu }@*, { "fixwidth", "100px" }*@ })
</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">
@Html.HiddenFor(m => m.CM.typegrade)
@Html.Partial("./Partial/Checkbox", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "typegrade" }, {"autobind", "CM_typegrade" }, { "checked", Model.CM.typegrade }@*, { "fixwidth", "100px" }*@ })
</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">
@Html.HiddenFor(m => m.CM.typejob)
@Html.Partial("./Partial/Checkbox", Model.ComCodes.Where(w => w.cgroup == "typejob"), new ViewDataDictionary { { "name", "typejob" }, {"autobind", "CM_typejob" }, { "checked", Model.CM.typejob }@*, { "fixwidth", "100px" }*@ })
</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 req">수강료/정원</label>
<div class="col-sm-8 col-md-10">
@ -140,72 +171,6 @@
시간
</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">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "cert"), new ViewDataDictionary { { "special", "reg" }, { "name", "CM.certcc" }, { "selected", Model.CM.certcc }, { "df", ":-자격증선택" }, { "class", "disp-init" } })
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "certgrade"), new ViewDataDictionary { { "special", "reg" }, { "name", "CM.certgradecc" }, { "selected", Model.CM.certgradecc }, { "df", ":-급수선택" }, { "class", "disp-init" } })
* 자격증/급수 선택시 운영자 승인이 있어야 결제 가능
</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">
@Html.HiddenFor(m => m.CM.jobcc)
@Html.Partial("./Partial/Checkbox", Model.ComCodes.Where(w => w.cgroup == "job"), new ViewDataDictionary { { "name", "jobcc" }, {"autobind", "CM_jobcc" }, { "checked", Model.CM.jobcc }@*, { "fixwidth", "100px" }*@ })
</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">
@Html.HiddenFor(m => m.CM.jobpositiongrade)
@Html.Partial("./Partial/Checkbox", null, new ViewDataDictionary { { "valuetext", "0:사원;1:대리급;2:과차장급;3:부장;4:임원" }, { "name", "jobpositiongrade" }, { "autobind", "CM_jobpositiongrade" }, { "checked", Model.CM.jobpositiongrade } })
</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">@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:입문;1:기초;2:중급;3:고급" }, { "checked", Model.CM.difficulty }, { "name", "CM.difficulty" } })</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">
<a href="#" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="cmpre = 1;findcmshow(0)"><i class="fa fa-search"></i></a>
<ul class="selectgroupul" id="cmpredatabox">
@foreach (var d in Model.Datas.Where(w => w.dtype == 3 && w.intval2 == 1))
{
<li class="no@(d.intval)" data-no="@d.intval"><label>@d.strval</label><a href="#" class="adel" onclick="ullidel(this)">X</a></li>
}
</ul>
</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">
<a href="#" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="cmpre = 0;findcmshow()"><i class="fa fa-search"></i></a>
<ul class="selectgroupul" id="cmnextdatabox">
@foreach (var d in Model.Datas.Where(w => w.dtype == 3 && w.intval2 == 0))
{
<li class="no@(d.intval)" data-no="@d.intval"><label>@d.strval</label><a href="#" class="adel" onclick="ullidel(this)">X</a></li>
}
</ul>
</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">@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "checked", Model.CM.isrefund }, { "name", "CM.isrefund" } })</div>
</div>
<div class="line line-dashed line-lg pull-in ncsconbox"></div><div class="form-group ncsconbox">
<label class="col-sm-4 col-md-2 control-label">NCS코드(직무)</label>
<div class="col-sm-8 col-md-10">
<a href="#" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="findncsshow()"><i class="fa fa-search"></i></a>
<ul class="selectgroupul" id="ncsdatabox">
@foreach (var d in Model.Datas.Where(w => w.dtype == 4))
{
<li class="no@(d.intval)" data-no="@d.intval"><label>@d.strval (@d.strval2)</label><a href="#" class="adel" onclick="ullidel(this)">X</a></li>
}
</ul>
</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">
@ -326,6 +291,7 @@
if ($(this).val() != "") {
capp("/acommon/cgget", { pcgno: $(this).val() }, "cbcgget");
}
loadlegal();
});
if ('@Model.CM.isrefund' == '0') {
$(".ncsconbox").hide();
@ -339,10 +305,19 @@
if ('@(Model.CM.ismaster)' == '0') {
$("#pcgno,#CM_cgno").hide();
}
loadlegal();
});
function loadlegal() {
if ($("#pcgno option:checked").text() == "법정교육") {
$("#divLegalEdu").show();
}
else {
$("#divLegalEdu").hide();
}
}
function cbcgget() {
binddatacheck("CM_cgno");
if ($("#pcgno").val() == "@(Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).First())") {
if ($("#pcgno").val() == "@(Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).FirstOrDefault())") {
$("#keyword").attr("style", "");
} else {
$("#keyword").attr("style", "display:none;");

View File

@ -166,6 +166,7 @@
<script>
$(document).ready(function () {
$("input[name='isonline']").on("change", function () {
$(".troffline,.tronline").hide();
if ($(this).val() == "1") {
$(".tronline").show();
@ -220,6 +221,10 @@
if (getrv("isonline") == "1") {
capp("/acommon/cminningsave", { cmino: _cmino, cmno: @Model.CM.cmno, isonline: getrv("isonline"), ititle: getv("ititle"), ctno: $("#contentdatabox li").attr("data-no"), istaste: getrv("istaste"), sttime: getint(val("sttime")), atime: getint(val("atime")), mstime: getint(val("mstime")), metime: getint(val("metime")), userno: val("userno"), iseq: val("iseq") }, "cbcminningsave", null, null,null,true);
} else {
if (@Model.CM.cshape == 2) {
alert("혼합(온라인 + 오프라인)교육시 오프라인 회차는 등록 할 수 없습니다.");
return;
}
var data = new FormData();
data.append("cmino", _cmino);
data.append("cmno", @Model.CM.cmno);

View File

@ -9,23 +9,31 @@
{
<select id="stringval5" name="stringval5" class="form-control">
<option value="">-년도선택</option>
@foreach (var t in Model.Terms.Select(s=>s.tyear).Distinct())
@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.stringval5 == t.ToString() ? "selected" : "")>@t 년</option>
}
</select>
<select id="stringval6" name="stringval6" class="form-control">
<option value="">-기수선택</option>
@foreach (var t in Model.Terms.Where(w => w.tyear.ToString() == Model.stringval5))
{
<option value="@t.tseq" @(Model.stringval6 == t.tseq.ToString() ? "selected" :"")>@t.tseq 기</option>
<option value="@t.tseq" @(Model.stringval6 == t.tseq.ToString() ? "selected" : "")>@t.tseq 기</option>
}
</select>
}
@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", 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/Text", Model.stringval4, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval4", Value = Model.stringval4, PH = Model.viewidxname + "명을 입력하세요.", CssClass = "ff" }))
@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" })
</div>
</div>

View File

@ -1194,6 +1194,7 @@ namespace NP.Base.Controllers
//검증용데이터(강사아이디)
var cd = Dao.Get<Data>("cm.datafor.cminningcheck", new Hashtable() { { "cmno", intval }, { "ccode",string.IsNullOrEmpty(string.Join(",", data.Where(w => !string.IsNullOrEmpty(w.col11)).Select(s => "'" + s.col11 + "'"))) ? "'박효동박건'" : string.Join(",", data.Where(w => !string.IsNullOrEmpty(w.col11)).Select(s => "'" + s.col11 + "'")) },{"isuse",1} });
var cmseq = "";
var cshape = Dao.Get<CM>("cm.cmcshape", new Hashtable() { { "cmno", intval } }).FirstOrDefault();
foreach(var d in data)
{
i++;
@ -1210,11 +1211,12 @@ namespace NP.Base.Controllers
d.col16 = "";
}
}
if (intval2 == 1 && d.col2 == "오프라인" && cshape.cshape == 2) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 학습방식을 확인해주세요. 혼합(온라인 + 오프라인)교육시 오프라인 회차는 등록 할 수 없습니다." }); }
if (data.Where(w => w.col1 == cmseq).Count() > 1) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 회차가 중복됩니다." }); }
if (GetInt(d.col1) < 1) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 회차를 확인해주세요." }); }
if (d.col2 != "온라인" && d.col2 != "오프라인") { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 학습방식을 확인해주세요." }); }
if (string.IsNullOrEmpty(d.col3)) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 강의주제를 확인해주세요." }); }
if (cd.Where(w=>w.dtype == 1 && w.strval == d.col4).Count() < 1) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 강사ID를 확인해주세요." }); }
if (cd.Where(w=>w.dtype == 1 && w.strval == d.col4).Count() < 1) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 강사ID를 확인해주세요. 등록되지 않은 강사입니다." }); }
if (d.col2 == "오프라인" && string.IsNullOrEmpty(d.col5)) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 강의내용을 확인해주세요." }); }
if ((intval2 == 1 || intval2 == 0) && d.col2 == "오프라인" && GetInt(d.col6) < 1) { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 학습시점을 확인해주세요." }); }
if ((intval2 == 1 || intval2 == 0) && d.col2 == "오프라인" && d.col16 == "") { return JsonBack(new JsonRtn() { code = 1, msg = i + "번째 데이터의 학습시점을 확인해주세요." }); }

View File

@ -121,6 +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
,b.pcgno,b.cgcode cgcode
,b.cgname,c.cgname pcgname
,c.cgcode pcgcode
@ -142,6 +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="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>
@ -212,11 +218,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,<include refid="sql.inc"></include>)
,certcc,certgradecc,jobcc,jobpositiongrade,difficulty,isrefund,isuse,isdel,isseq,fgnocm,typeman,typeedu,typegrade,typejob,<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#,<include refid="sql.inv"></include>);
,#studyplace#,#studytime#,#certcc#,#certgradecc#,#jobcc#,#jobpositiongrade#,#difficulty#,#isrefund#,#isuse#,0,#isseq#,#fgnocm#,#typeman#,#typeedu#,#typegrade#,#typejob#,<include refid="sql.inv"></include>);
<selectKey type="post" property="cmno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert>
<update id="cm.cmup" parameterClass="hashtable">
@ -1635,5 +1641,12 @@
</dynamic>
order by a.ispre desc, b.cname
</select>
<select id="cm.cmcshape" parameterClass="hashtable" resultClass="cm">
select cshape
from cm
<dynamic prepend="where">
<isNotNull property="cmno" prepend="and">cmno=#cmno#</isNotNull>
</dynamic>
</select>
</statements>
</sqlMap>

View File

@ -392,6 +392,11 @@ namespace NP.Model
public int countsuccess { get; set; }
public int countstanbypay { get; set; }
public int countstanbydraw { get; set; }
public String typeman { get; set; }
public String typeedu { get; set; }
public String typegrade { get; set; }
public String typejob { get; set; }
}
[Serializable]