<기능개선>

통합테스트목록 . 548
계산서수정건 개발
This commit is contained in:
kdh0120 2021-11-18 04:46:01 +00:00
parent a7a3cb8cce
commit 09edc892ee
5 changed files with 83 additions and 8 deletions

View File

@ -41,7 +41,7 @@
<tr>
<th>검색어</th>
<td class="text-left">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":발행상태;0:미발행;1:발행;2:발행취소" }, { "name", "stringval3" }, { "selected", Model.stringval3 } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":발행상태;0:미발행;3:미발행(임시저장);1:발행;2:발행취소" }, { "name", "stringval3" }, { "selected", Model.stringval3 } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":결제상태;p21:결제대기;p22:입금대기;p1:결제완료;rf1:환불요청;r1:부분환불;r2:전액환불;p41,42,43:결제취소" }, { "name", "stringval10" }, { "selected", Model.stringval10 } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":확인상태;1:확인;0:미확인" }, { "name", "stringval12" }, { "selected", Model.stringval12 } })
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":전체검색;username:신청자이름;userid:신청자ID;manname:담당자이름;itemname:상품명;cname:교육과정명;paynos:결제번호;asname:회사명" }, { "name", "stringval4" }, { "selected", Model.stringval4 } })
@ -58,6 +58,7 @@
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
@*<a href="#" onclick="javascript:exceldown('mform', '/croom/tax', 'tbody1', '계산서요청');" class="btn btn-s-xs btn-success" style="margin-left: 5px;">엑셀다운로드</a>*@
<a href="#" onclick="javascript:callexcel();" class="btn btn-s-xs btn-success" style="margin-left: 5px;">엑셀다운로드</a>
<a href="#" onclick="javascript:taxcancel();" class="btn btn-s-xs btn-danger" style="margin-left: 5px;">일괄발행취소</a>
<a href="#" onclick="javascript:taxcheck();" class="btn btn-s-xs btn-info" style="margin-left: 5px;">일괄확인</a>
<a href="#" onclick="javascript:taxuncheck();" class="btn btn-s-xs btn-danger" style="margin-left: 5px;">일괄확인취소</a>
</div>
@ -67,7 +68,7 @@
<thead>
<tr>
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="100">No</th>
<th width="20">No</th>
<th>결제번호</th>
<th>회사명</th>
<th>신청자(ID)</th>
@ -80,7 +81,7 @@
<th>실제날짜</th>
<th>발행한날</th>
<th>영수구분</th>
<th>상태</th>
<th width="100">상태</th>
<th>확인상태</th>
</tr>
</thead>
@ -88,7 +89,7 @@
@foreach (var d in Model.PayTaxes)
{
<tr>
<td><input type="checkbox" class="autocheck" value="@d.taxno" data-ischeck="@d.ischeck" data-status="@d.status" /></td>
<td><input type="checkbox" class="autocheck" value="@d.taxno" data-ischeck="@d.ischeck" data-state="@d.statecode" /></td>
<td>@d.rno</td>
<td>@d.payno</td>
<td class="left">@Html.Raw(string.Format("<span class=\"isjoin{0}\">{1}</span> {2}", d.isjoin, d.isjoin == 1 ? "정" : "비", d.asname))</td>
@ -102,7 +103,7 @@
<td>@(d.taxdate == null ? "" : d.taxdate.Value.ToString("yyyy-MM-dd"))</td>
<td>@(d.realtaxdate == null ? "" : d.realtaxdate.Value.ToString("yyyy-MM-dd"))</td>
<td>@(d.isreceipt == 0 ? "청구" : "영수")</td>
<td class="taxdate@(d.status =="미발행" ? "x" :"")" @(!string.IsNullOrEmpty(d.mgtkey) && d.statecode == 0 ? "style=color:blue;" : "" )>@(d.status)</td>
<td class="taxdate@(d.status == "미발행" || d.status == "임시저장" ? "x" :"")" @(!string.IsNullOrEmpty(d.mgtkey) && d.statecode == 0 ? "style=color:blue;" : "" )>@(d.status)</td>
<td class="taxdate@(d.ischeck == 1 ? "" : "x")">@(d.ischeckname)</td>
</tr>
}
@ -236,5 +237,45 @@
msgdev();
}
}
function taxcancel() {
if ($("#tbody1 tr td input.autocheck:checked").length < 1) {
msg("발행 취소 할 요청서가 없습니다.");
} else {
var taxnos = "";
var chk = false;
var cnt = 0;
$.each($("#tbody1 tr td input.autocheck:checked"), function (i, c) {
if ($(c).attr("data-state") == 0) {
chk = true;
cnt++;
taxnos += "," + $(c).val();
} else {
chk = false;
return false;
}
});
if (chk == false) {
msg("발행완료, 발행취소 건이 포함되어 있습니다. 다시 확인해주세요.");
} else {
if (confirm("선택한 " + cnt + "건을 일괄로 발행취소 처리 하시겠습니까?")) {
capp("/acommon/taxcancel", { taxnos: taxnos.substr(1) }, "cbtaxcancel");
}
}
}
}
function cbtaxcancel() {
if (capResult.code == 1000) {
if (capResult.obj == -1) {
msg("발행취소 할 요청서가 없습니다.");
} else if (capResult.obj == -2) {
//우연의 확률..
msg("발행완료, 발행취소 건이 포함되어 있습니다. 다시 확인해주세요.", null, null, null, null, "submit()");
} else {
msg("일괄 발행취소 처리 되었습니다.", null, null, null, null, "submit();");
}
} else {
msgdev();
}
}
</script>
}

View File

@ -49,7 +49,7 @@
<td>@(d.taxdate == null ? "" : d.taxdate.Value.ToString("yyyy-MM-dd"))</td>
<td>@(d.realtaxdate == null ? "" : d.realtaxdate.Value.ToString("yyyy-MM-dd"))</td>
<td>@(d.isreceipt == 0 ? "청구" : "영수")</td>
<td class="taxdate@(d.status =="미발행" ? "x" : "")">@(d.status)</td>
<td class="taxdate@(d.status =="미발행" || d.status == "임시저장" ? "x" : "")">@(d.status)</td>
<td class="taxdate@(d.ischeck == 1 ? "" : "x")">@(d.ischeckname)</td>
</tr>
}

View File

@ -1521,5 +1521,18 @@ namespace NP.Base.Controllers
}
return JsonOK(Dao.Save("pay.taxcheck", new Hashtable() { { "taxnos", taxnos }, { "taxno", taxno }, {"ischeck",ischeck }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
}
[HttpPost]
public JsonResult taxcancel(String taxnos, int? taxno)
{
if (string.IsNullOrEmpty(taxnos) && taxno == null)
{
return JsonBack(new JsonRtn() { code = 1000, obj = -1 });
}
if (Dao.Get<int>("cr.paytax.byisstate", new Hashtable() { { "taxnos", taxnos }, { "taxno", taxno }, { "state", 0 } }).FirstOrDefault() > 0)
{
return JsonBack(new JsonRtn() { code = 1000, obj = -2 });
}
return JsonOK(Dao.Save("pay.taxcancel", new Hashtable() { { "taxnos", taxnos }, { "taxno", taxno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
}
}
}

View File

@ -1318,8 +1318,9 @@
<isNotNull property="iscancel" prepend="and">ifnull(a.iscancel,0)=#iscancel#</isNotNull>
<isNotNull property="cdts" prepend="and">a.cdt &gt;= #cdts#</isNotNull>
<isNotNull property="cdte" prepend="and">a.cdt &lt;= #cdte#</isNotNull>
<isNotNull property="tstatus0" prepend="and">ifnull(a.statecode,0) &lt; 300</isNotNull>
<isNotNull property="tstatus0" prepend="and">ifnull(a.statecode,0) = 0</isNotNull>
<isNotNull property="tstatus1" prepend="and">a.statecode &gt;= 300</isNotNull>
<isNotNull property="tstatus3" prepend="and">a.statecode = 100</isNotNull>
<isNotNull property="username" prepend="and">u.username like concat('%',#username#,'%')</isNotNull>
<isNotNull property="userid" prepend="and">u.userid like concat('%',#userid#,'%')</isNotNull>
<isNotNull property="manname" prepend="and">a.manname like concat('%',#manname#,'%')</isNotNull>
@ -1383,6 +1384,26 @@
<isNotNull property="taxno" prepend="and">a.taxno = #taxno#</isNotNull>
</dynamic>
</update>
<select id="cr.paytax.byisstate" parameterClass="hashtable" resultClass="int">
select count(a.taxno)
from paytax a
<dynamic prepend="where">
<isNotEmpty property="taxnos" prepend="and">a.taxno in ($taxnos$)</isNotEmpty>
<isNotNull property="state" prepend="and">a.statecode = #state#</isNotNull>
<isNotNull property="taxno" prepend="and">a.taxno = #taxno#</isNotNull>
</dynamic>
</select>
<update id="pay.taxcancel" parameterClass="hashtable">
update paytax a
set a.iscancel = 1
,a.udt = now()
,a.uno = #uno#
,a.uip = #uip#
<dynamic prepend="where">
<isNotEmpty property="taxnos" prepend="and">a.taxno in ($taxnos$)</isNotEmpty>
<isNotNull property="taxno" prepend="and">a.taxno = #taxno#</isNotNull>
</dynamic>
</update>
<select id="cr.paytaxitem" parameterClass="long" resultClass="payitem">
select case pi.ptype when 2 then bk.bkname when 3 then ex.exname else cm.cname end itemname,pi.payamt,pi.pcnt,pi.ptype
,p.isgroup,p.payamt ppayamt,p.payoktime,p.ptype pptype

View File

@ -1094,7 +1094,7 @@ namespace NP.Model
returnString = "미발행";
break;
case 100:
returnString = "미발행"; //"임시저장";
returnString = "임시저장"; //"임시저장";
break;
case 300:
returnString = "발행완료";