1. 수납 등록, 수납 취소 수정

2. viewPurpose 를 사용하던 소스 수정.
  -  viewPurpose  ->  callPurpose
main
jjh 12 months ago
parent 2caaad4e24
commit d6348037d9

@ -45,6 +45,15 @@ public interface RcvmtService {
*/
String createRcvmt(Rcvmt rcvmt);
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String updateRcvmtRtrcn(Rcvmt rcvmt);
/** .
* @param rcvmt
* @return

@ -143,8 +143,7 @@ public class RcvmtBean extends AbstractComponent {
if (!rcvmtSeCd.equals("02")) { // 이중 수납이 아니라면..
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID"));
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
levy.setRcvmtPcptax(rcvmt.getRcvmtPcptax()); // 수납 본세
levy.setRcvmtAdamt(rcvmt.getRcvmtAdamt()); // 수납 가산금
levy.setSumAmt(rcvmt.getLastPcptax() + rcvmt.getLastAdamt() - rcvmt.getRcvmtPcptax() - rcvmt.getRcvmtAdamt()); // 합계 금액
@ -156,7 +155,7 @@ public class RcvmtBean extends AbstractComponent {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 합계 금액이 0이면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 변경한다.
// 합계 금액이 0이면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 수정한다.
if (levy.getSumAmt() == 0 && (rcvmtSeCd.equals("01") || rcvmtSeCd.equals("04"))) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
@ -185,7 +184,7 @@ public class RcvmtBean extends AbstractComponent {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}
@ -195,7 +194,7 @@ public class RcvmtBean extends AbstractComponent {
return retMessage;
}
/** .
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
@ -207,16 +206,77 @@ public class RcvmtBean extends AbstractComponent {
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 수납 ID로 수납 정보 조회
DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()).setDelYn("N"));
retSuccess = rcvmtMapper.updateRcvmtRtrcn(rcvmt);
if (!retSuccess) {
throw new RuntimeException("수납 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 부과 대장 수정 ///////////////////////////////////////////////////////////
// 수납구분코드(RCVMT_SE_CD)가 이중 수납이 아니라면..
if (!rcvmtInfo.string("RCVMT_SE_CD").equals("02")) {
// 부과 ID로 단속, 부과 정보 조회
DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmtInfo.string("LEVY_ID")).setDelYn("N"));
int rcvmtPcptax = levyInfo.number("RCVMT_PCPTAX").intValue() - rcvmtInfo.number("RCVMT_PCPTAX").intValue(); // 부과 수납본세 - 수납 수납본세
int rcvmtAdamt = levyInfo.number("RCVMT_ADAMT").intValue() - rcvmtInfo.number("RCVMT_ADAMT").intValue(); // 부과 수납가산금 - 수납 수납가산금
int sumAmt = levyInfo.number("SUM_AMT").intValue()
+ rcvmtInfo.number("RCVMT_PCPTAX").intValue() + rcvmtInfo.number("RCVMT_ADAMT").intValue(); // 합계 금액
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
levy.setRcvmtPcptax(rcvmtPcptax); // 수납 본세
levy.setRcvmtAdamt(rcvmtAdamt); // 수납 가산금
levy.setSumAmt(sumAmt); // 합계 금액
// 수납 금액이 0이면서.. 완납(01) 또는 과납(04)이라면 수납 일자를 NULL로 수정한다.
if (rcvmtPcptax + rcvmtAdamt == 0 && "01,04".contains(rcvmtInfo.string("RCVMT_SE_CD"))) {
levy.setRcvmtYmd(null); // 수납 일자
levy.setPayMthdSeCd(null); // 납부 방법 구분 코드
} else {
levy.setRcvmtYmd(levyInfo.string("RCVMT_YMD")); // 수납 일자
levy.setPayMthdSeCd(levyInfo.string("PAY_MTHD_SE_CD")); // 납부 방법 구분 코드
}
// 단속 대장 수정 ///////////////////////////////////////////////////////////
retSuccess = levyMapper.updateRcvmtAmt(levy); // 부과 대장 수정
if (!retSuccess) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 대장 수정 ///////////////////////////////////////////////////////////
// 합계 금액이 0보다 크면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 수정한다.
if (levy.getSumAmt() > 0 && "01,04".contains(rcvmtInfo.string("RCVMT_SE_CD"))) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
String newCrdnSttsCd = "";
if (levyInfo.string("CRDN_STTS_CD").equals("71")) {
newCrdnSttsCd = "42"; // 사전통보 발송
} else if (levyInfo.string("CRDN_STTS_CD").equals("72")) {
newCrdnSttsCd = "51"; // 부과
} else if (levyInfo.string("CRDN_STTS_CD").equals("73")) {
newCrdnSttsCd = "52"; // 독촉
} else if (levyInfo.string("CRDN_STTS_CD").equals("74")) {
newCrdnSttsCd = "54"; // 압류대상
} else if (levyInfo.string("CRDN_STTS_CD").equals("75")) {
newCrdnSttsCd = "55"; // 압류
}
crdnSttsHstry.setCrdnId(levyInfo.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setBfrSttsCd(levyInfo.string("CRDN_STTS_CD")); // 단속 상태 코드
crdnSttsHstry.setBfrSttsChgDt(levyInfo.string("CRDN_STTS_CHG_DT")); // 단소 상태 변경 일시
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); // 단속상태코드(FIM010)
crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";

@ -60,6 +60,11 @@ public class RcvmtServiceBean extends AbstractServiceBean implements RcvmtServic
return rcvmtBean.createRcvmt(rcvmt);
}
@Override
public String updateRcvmtRtrcn(Rcvmt rcvmt) {
return rcvmtBean.updateRcvmtRtrcn(rcvmt);
}
@Override
public String removeRcvmt(Rcvmt rcvmt) {
return rcvmtBean.removeRcvmt(rcvmt);

@ -31,11 +31,12 @@ public class Rcvm01Controller extends ApplicationController {
public class METHOD_URL {
public static final String
receivingMoneyMain = "/010/main.do" // 수납 관리 메인 화면
, getReceivingMoneyList = "/010/list.do" // 수납 대장 목록 조회
, getReceivingMoneyInfo = "/020/info.do" // 수납 정보 조회
, createReceivingMoney = "/020/createRcvmt.do" // 수납 대장 등록
, removeReceivingMoney = "/010/removeRcvmt.do" // 수납 대장 삭제
receivingMoneyMain = "/010/main.do" // 수납 관리 메인 화면
, getReceivingMoneyList = "/010/list.do" // 수납 대장 목록 조회
, getReceivingMoneyInfo = "/020/info.do" // 수납 정보 조회
, createReceivingMoney = "/020/createRcvmt.do" // 수납 대장 등록
, updateReceivingMoneyRetraction = "/010/updateRcvmtRtrcn.do" // 수납 대장에 수납취소 등록
, removeReceivingMoney = "/010/removeRcvmt.do" // 수납 대장 삭제
;
}
@ -131,6 +132,30 @@ public class Rcvm01Controller extends ApplicationController {
.addObject("retMessage", retMessage);
}
/** .
* @param rcvmt
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateReceivingMoneyRetraction(Rcvmt rcvmt) {
boolean saved = false;
String retMessage = rcvmtService.updateRcvmtRtrcn(rcvmt);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param rcvmt
* @return jsonView

@ -32,8 +32,7 @@ public class SprtQuery extends CmmnQuery {
private String fyr; // 회계연도
private String levyNo; // 부과 번호
// ETC
private String viewPurpose; // 화면 호출용도. (readonly 편집불가)
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, refresh 재조회).
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String inquiryCondition; // 조회 조건
@ -209,16 +208,6 @@ public class SprtQuery extends CmmnQuery {
}
// ETC /////////////////////////////////////////////////////////////////////
public String getViewPurpose() {
return ifEmpty(viewPurpose, () -> null);
}
public <T extends SprtQuery> T setViewPurpose(String viewPurpose) {
this.viewPurpose = viewPurpose;
return self();
}
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
}

@ -34,6 +34,13 @@ public class Sprt04Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getCvlcptDscsnList(CvlcptDscsnQuery req) {
if (req.getDelYn() == null) {
req.setDelYn("N");
}
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return cvlcptDscsnMapper.selectCvlcptDscsnList(req);
}
@ -43,7 +50,7 @@ public class Sprt04Bean extends AbstractComponent {
*/
public List<DataObject> getCvlcptDscsns(CvlcptDscsnQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("CD.REG_DT DESC, CD.CVLCPT_DSCSN_ID DESC");
req.setOrderBy("CD.CVLCPT_DSCSN_ID DESC");
}
return cvlcptDscsnMapper.selectCvlcptDscsns(req);

@ -115,7 +115,7 @@ public class Sprt02Controller extends ApplicationController {
return mav
.addObject("callControlName", req.getCallControlName())
.addObject("viewPurpose", req.getViewPurpose())
.addObject("callPurpose", req.getCallPurpose())
.addObject("pageName", "sprt02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("pageNameMain", "sprt02010") // 개별총정보 메인 화면명
.addObject("totalInfo", json ? totalInfo : toJson(totalInfo)) // 개별총정보
@ -163,7 +163,8 @@ public class Sprt02Controller extends ApplicationController {
ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("viewPurpose", req.getViewPurpose())
return mav
.addObject("callPurpose", req.getCallPurpose())
.addObject("pageName", "sprt02020")
.addObject("pageNameMain", "sprt02010")
.addObject("fileList", fileList) // 파일 리스트

@ -759,7 +759,13 @@ public class DpvController {
}
@Override
@RequestMapping(name="수납 대장 등록", value=METHOD_URL.removeReceivingMoney)
@RequestMapping(name="수납 대장에 수납취소 수정", value=METHOD_URL.updateReceivingMoneyRetraction)
public ModelAndView updateReceivingMoneyRetraction(Rcvmt rcvmt) {
return super.updateReceivingMoneyRetraction(rcvmt);
}
@Override
@RequestMapping(name="수납 대장 수정", value=METHOD_URL.removeReceivingMoney)
public ModelAndView removeReceivingMoney(Rcvmt rcvmt) {
return super.removeReceivingMoney(rcvmt);
}

@ -672,10 +672,10 @@
<if test="levy.ffnlgAmt != null">
, FFNLG_AMT = #{levy.ffnlgAmt} /* 과태료 금액 */
</if>
<if test="levyPcptax != null">
<if test="levy.levyPcptax != null">
, LEVY_PCPTAX = #{levy.levyPcptax} /* 본세 금액 */
</if>
<if test="sumAmt != null">
<if test="levy.sumAmt != null">
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
</if>
, MDFCN_DT = #{levy.lastModified} /* 수정 일시 */

@ -266,6 +266,8 @@
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS LAST_PCPTAX /* 최종 본세 */
, L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS LAST_ADAMT /* 가산금 */
, C.CRDN_ID /* 단속 ID */
@ -296,13 +298,13 @@
<update id="updateRcvmtRtrcn" parameterType="map">/* 수납 대장 수납취소 정보 수정(rcvmtMapper.updateRcvmtRtrcn) */
UPDATE TB_RCVMT
SET RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} /* 수납 취소 여부 */
, RCVMT_RTRCN_DT = #{rcvmt.rcvmtRtrcnDt} /* 수납 취소 일시 */
, RCVMT_RTRCN_RSN = #{rcvmt.rcvmtRtrcnRsn} /* 수납 취소 사유 */
, MDFCN_DT = #{rcvmt.lastModified} /* 수정 일시 */
, MDFR = #{rcvmt.modifiedBy} /* 수정자 */
WHERE RCVMT_ID = #{rcvmt.rcvmtId} /* 수납 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
SET RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} /* 수납 취소 여부 */
, RCVMT_RTRCN_DT = <include refid="utility.now" /> /* 수납 취소 일시 */
, RCVMT_RTRCN_RSN = #{rcvmt.rcvmtRtrcnRsn} /* 수납 취소 사유 */
, MDFCN_DT = #{rcvmt.lastModified} /* 수정 일시 */
, MDFR = #{rcvmt.modifiedBy} /* 수정자 */
WHERE RCVMT_ID = #{rcvmt.rcvmtId} /* 수납 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<insert id="insertRcvmt" parameterType="map">/* 수납 대장 등록(rcvmtMapper.insertRcvmt) */

@ -227,7 +227,7 @@
let params = {
callControlName : "${pageName}Control"
, viewPurpose : "readonly"
, callPurpose : "view"
, crdnId : crdnId
}

@ -177,7 +177,7 @@
let params = {
callControlName : "${pageName}Control"
, viewPurpose : "readonly"
, callPurpose : "view"
, crdnId : crdnId
}

@ -223,7 +223,7 @@
let params = {
callControlName : "${pageName}Control"
, viewPurpose : "readonly"
, callPurpose : "view"
, crdnId : crdnId
}

@ -192,7 +192,7 @@
let params = {
callControlName : "${pageName}Control"
, viewPurpose : "readonly"
, callPurpose : "view"
, crdnId : crdnId
}

@ -201,7 +201,7 @@
let params = {
callControlName : "${pageName}Control"
, viewPurpose : "readonly"
, callPurpose : "view"
, crdnId : crdnId
}

@ -195,7 +195,7 @@
let params = {
callControlName : "${pageName}Control"
, viewPurpose : "readonly"
, callPurpose : "view"
, crdnId : crdnId
}

@ -29,6 +29,7 @@
<label for="crdnSttsNm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">단속상태</label>
<input type="text" class="form-control w-35" id="crdnSttsChgDt--${pageName}" name="crdnSttsChgDt" data-map="CRDN_STTS_CHG_DT" readonly />
<input type="text" class="form-control w-30 fw-bolder text-primary" id="crdnSttsNm--${pageName}" name="crdnSttsNm" data-map="CRDN_STTS_NM" readonly />
<input type="hidden" id="crdnSttsCd--${pageName}" name="crdnSttsCd" data-map="CRDN_STTS_CD" />
</div>
<!-- 자료 이동 버튼 -->
<div class="col-md-2 text-end">
@ -110,7 +111,7 @@
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
// 화면 호출
var ${pageName}ViewPurpose = "${viewPurpose}";
var ${pageName}CallPurpose = "${callPurpose}";
// 자료 이동을 위한 자료의 Index. 0부터 시작.
var curDataIndex${pageName};
// 현재 탭의 위치

@ -797,8 +797,8 @@
// 화면 초기값 셋팅
setForm${pageName} = () => {
// 화면 호출(viewPurpose)이 readonly 라면 버튼 비활성화
if (${pageNameMain}ViewPurpose == "readonly") {
// 화면 호출(callPurpose)이 view 라면 버튼 비활성화
if (${pageNameMain}CallPurpose == "view") {
$("#btnViewCvlcptOrgnl--${pageName}").prop("disabled", true);
$("#btnViewAnswerPreview--${pageName}").prop("disabled", true);
$("#btnUpdateCrdn--${pageName}").prop("disabled", true);

@ -362,8 +362,8 @@
// 화면 초기값 셋팅
setForm${pageName} = () => {
// 화면 호출(viewPurpose)이 readonly 라면 버튼 비활성화
if (${pageNameMain}ViewPurpose == "readonly") {
// 화면 호출(callPurpose)이 view 라면 버튼 비활성화
if (${pageNameMain}CallPurpose == "view") {
$("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", true);
$("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", true);
$("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", true);
@ -539,7 +539,7 @@
// 첨부파일 다운로드 버튼 이벤트
fnFileDownload${pageName} = (fileID) => {
if (${pageNameMain}ViewPurpose == "readonly") {
if (${pageNameMain}CallPurpose == "view") {
return;
}

@ -418,8 +418,8 @@
// 화면 초기값 설정
setForm${pageName} = () => {
// 화면 호출(viewPurpose)이 readonly 라면 버튼 비활성화
if (${pageNameMain}ViewPurpose == "readonly") {
// 화면 호출(callPurpose)이 view 라면 버튼 비활성화
if (${pageNameMain}CallPurpose == "view") {
$("#btnCreateSndbk--${pageName}").prop("disabled", true);
$("#btnUpdateSndbk--${pageName}").prop("disabled", true);
$("#btnRemoveSndbk--${pageName}").prop("disabled", true);

@ -440,54 +440,41 @@
// 자료 재조회
refreshDataInfo${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "refresh"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, delYn : "N"
};
ajax.get({
url : wctx.url(taskSeCd + "/sprt/sprt02/050/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
// Dataset 초기화
$("#frmEdit--${pageName}${pageDataName1}")[0].reset();
$("#frmEdit--${pageName}${pageDataName2}")[0].reset();
${pageName}${pageDataName3}Dataset.clear();
${pageName}${pageDataName4}Dataset.clear();
// 감경 정보 Data 셋팅
// Dataset 셋팅
if (resp.totalInfo) {
${pageNameMain}Control.setData([resp.totalInfo]); // 단속 정보
}
if (resp.rduct) {
${pageName}${pageDataName1}Control.setData([resp.rduct]);
} else {
$("#frmEdit--${pageName}${pageDataName1}")[0].reset();
${pageName}${pageDataName1}Control.setData([resp.rduct]); // 감경 정보
}
// 부과제외 정보 Data 셋팅
if (resp.levyExcl) {
${pageName}${pageDataName2}Control.setData([resp.levyExcl]);
} else {
$("#frmEdit--${pageName}${pageDataName2}")[0].reset();
}
// 처리 상태 이력 Data 셋팅
${pageName}${pageDataName3}Dataset.setData(resp.crdnSttsHstryList);
// 주소 변동 이력 Data 셋팅
${pageName}${pageDataName4}Dataset.setData(resp.payerHstryList);
// 최상단 단속 Data 셋팅
if (resp.totalInfo) {
${pageNameMain}Control.setData([resp.totalInfo]);
${pageName}${pageDataName2}Control.setData([resp.levyExcl]); // 부과제외 정보
}
${pageName}${pageDataName3}Dataset.setData(resp.crdnSttsHstryList); // 처리상태 이력
${pageName}${pageDataName4}Dataset.setData(resp.payerHstryList); // 주소변동 이력
}
});
}
@ -502,11 +489,8 @@
, delRsn : obj.reason // 삭제 사유
};
// 삭제 url
${pageName}${pageDataName1}Control.urls.remove = wctx.url(${pageName}${pageDataName1}Control.dataset.getValue("TASK_SE_CD") + ${pageName}${pageDataName1}PrefixUrl + "/010/remove.do")
ajax.post({
url : ${pageName}${pageDataName1}Control.urls.remove
url : wctx.url($("#taskSeCd--${pageNameMain}").val() + ${pageName}${pageDataName1}PrefixUrl + "/010/remove.do")
, data : params
, success : resp => {
let btnTitle = $("#btnRemoveRduct--${pageName}").attr("title");
@ -531,11 +515,8 @@
, delRsn : obj.reason // 삭제 사유
};
// 삭제 url
${pageName}${pageDataName2}Control.urls.remove = wctx.url(${pageName}${pageDataName2}Control.dataset.getValue("TASK_SE_CD") + ${pageName}${pageDataName2}PrefixUrl + "/010/remove.do");
ajax.post({
url : ${pageName}${pageDataName2}Control.urls.remove
url : wctx.url($("#taskSeCd--${pageNameMain}").val() + ${pageName}${pageDataName2}PrefixUrl + "/010/remove.do")
, data : params
, success : resp => {
let btnTitle = $("#btnRemoveLevyExcl--${pageName}").attr("title");
@ -568,8 +549,8 @@
// 화면 초기값 설정
setForm${pageName} = () => {
// 화면 호출(viewPurpose)이 readonly 라면 버튼 비활성화
if (${pageNameMain}ViewPurpose == "readonly") {
// 화면 호출(callPurpose)이 view 라면 버튼 비활성화
if (${pageNameMain}CallPurpose == "view") {
$("#btnCreateRduct--${pageName}").prop("disabled", true);
$("#btnUpdateRduct--${pageName}").prop("disabled", true);
$("#btnRemoveRduct--${pageName}").prop("disabled", true);
@ -593,11 +574,34 @@
**************************************************************************/
// 감경 등록
fnCreateRduct${pageName} = () => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 납부자 ID
let rtpyrId = $("#rtpyrId--${pageNameMain}").val();
// 납부자 ID 가 없다면.. return
if (typeof rtpyrId == "undefined" || rtpyrId == null || rtpyrId == "") {
dialog.alert({
content : "납부자가 등록되지 않았습니다."
, onOK : () => { }
});
return;
}
let crdnSttsCd = $("#crdnSttsCd--${pageNameMain}").val();
// 단속 상태 코드 확인
if (Number(crdnSttsCd) < 21 || Number(crdnSttsCd) > 45) {
dialog.alert({
content : "단속상태가 '" + $("#crdnSttsNm--${pageNameMain}").val() + "' 입니다."
, onOK : () => { }
});
return;
}
let params = {
callPurpose : "create"
, crdnId : crdnId
@ -610,6 +614,7 @@
// 감경 수정
fnUpdateRduct${pageName} = () => {
// 감경 ID
let rductId = ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID");
// 감경 ID 가 없다면.. return
@ -652,6 +657,7 @@
// 계고 등록
fnCreateWrng${pageName} = () => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -670,6 +676,7 @@
// 부과제외 등록
fnCreateLevyExcl${pageName} = () => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -688,6 +695,7 @@
// 부과제외 수정
fnUpdateLevyExcl${pageName} = () => {
// 부과제외 ID
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return
@ -741,22 +749,22 @@
// 화면 초기 설정
setForm${pageName}();
// 감경 정보 Data 셋팅
// 감경 정보
let rduct = ${rduct};
if (rduct) {
${pageName}${pageDataName1}Control.setData([rduct]);
}
// 부과제외 정보 Data 셋팅
// 부과제외 정보
let levyExcl = ${levyExcl};
if (levyExcl) {
${pageName}${pageDataName2}Control.setData([levyExcl]);
}
// 처리 상태 이력 Data 셋팅
// 처리상태 이력 정보
${pageName}${pageDataName3}Dataset.setData(${crdnSttsHstryList});
// 주소 변동 이력 Data 셋팅
// 주소변동 이력 정보
${pageName}${pageDataName4}Dataset.setData(${payerHstryList});
});

@ -16,6 +16,7 @@
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">부과 정보</label>
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 회계 구분 코드 -->
<div class="col-md-4">
@ -137,7 +138,7 @@
<!-- 합계 금액 -->
<div class="col-md-4">
<label for="sumAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">미납금액</label>
<input type="text" class="form-control w-30 text-end" id="sumAmt--${pageName}" name="sumAmt" data-map="SUM_AMT" readonly />
<input type="text" class="form-control w-30 text-end fw-bolder text-red" id="sumAmt--${pageName}" name="sumAmt" data-map="SUM_AMT" readonly />
</div>
<!-- 관리 항목 1 -->
<div class="col-md-4">

@ -12,13 +12,13 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">수납 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateRcvmt--${pageName}" title="수납 등록" onclick="fnCreateRcvmt${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnCreateRcvmt--${pageName}" title="수납 등록" onclick="fnCreateRcvmt${pageName}();">
수납 등록
</button>
<button type="button" class="btn btn-primary" id="btnRemoveRcvmt--${pageName}" title="수납 취소" onclick="fnUpdateRcvmtRtrcn${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateRcvmtRtrc--${pageName}" title="수납 취소" onclick="fnUpdateRcvmtRtrcn${pageName}();">
수납 취소
</button>
<button type="button" class="btn btn-primary" id="btnRemoveRcvmt--${pageName}" title="수납 삭제" onclick="fnRemoveRcvmt${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveRcvmt--${pageName}" title="수납 삭제" onclick="fnRemoveRcvmt${pageName}();">
수납 삭제
</button>
</span>
@ -235,6 +235,7 @@
, RCVMT_PCPTAX : numberFormat
, RCVMT_ADAMT : numberFormat
, RCVMT_INT : numberFormat
, RCVMT_RTRCN_DT : datetimeFormat
, REG_DT : datetimeFormat
}
});
@ -267,7 +268,7 @@
${pageName}Fields.set(item); // 화면에 자료 셋팅
};
// 등록
// 수기 수납 등록
${pageName}Control.getInfo = (params) => {
let dialogTitle = "";
@ -280,7 +281,7 @@
}
ajax.get({
url : wctx.url(params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
url : wctx.url($("#taskSeCd--${pageNameMain}").val() + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
dialog.open({
@ -295,6 +296,32 @@
});
}
// 수기 수납 취소
updateRcvmtRtrcn${pageName} = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "update"
, rcvmtId : ${pageName}Control.dataset.getValue("RCVMT_ID") // 수납 ID
, rcvmtRtrcnYn : "Y" // 수납 취소 여부
, rcvmtRtrcnRsn : obj.reason // 수납 취소 사유
};
ajax.post({
url : wctx.url($("#taskSeCd--${pageNameMain}").val() + ${pageName}PrefixUrl + "/010/updateRcvmtRtrcn.do")
, data : params
, success : resp => {
let btnTitle = $("#btnUpdateRcvmtRtrc--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); // 메시지 출력
if (resp.saved) {
refreshDataInfo${pageName}(); // 자료 재조회
}
}
});
}
// 수기 수납 삭제
removeRcvmt${pageName} = (obj) => {
// 서버에 전송할 data(파라미터) 생성
@ -305,11 +332,8 @@
, delRsn : obj.reason // 삭제 사유
};
// 삭제 url
${pageName}Control.urls.remove = wctx.url(${pageName}Control.dataset.getValue("TASK_SE_CD") + ${pageName}PrefixUrl + "/010/removeRcvmt.do");
ajax.post({
url : ${pageName}Control.urls.remove
url : wctx.url($("#taskSeCd--${pageNameMain}").val() + ${pageName}PrefixUrl + "/010/removeRcvmt.do")
, data : params
, success : resp => {
let btnTitle = $("#btnRemoveRcvmt--${pageName}").attr("title");
@ -353,18 +377,24 @@
let params = {
callPurpose : "refresh"
, crdnId : crdnId
, sggCd : sggCd = $("#sggCd--${pageNameMain}").val()
, taskSeCd : taskSeCd = $("#taskSeCd--${pageNameMain}").val()
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, delYn : "N"
};
ajax.get({
url : wctx.url(taskSeCd + "/sprt/sprt02/070/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
url : wctx.url(params.taskSeCd + "/sprt/sprt02/070/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
// Dataset 초기화
${pageName}Control.dataset.clear();
${pageName}Control.setData(resp.rcvmt); // Dataset 셋팅
// Dataset 셋팅
if (resp.totalInfo) {
${pageNameMain}Control.setData([resp.totalInfo]); // 단속 정보
}
${pageName}Control.setData(resp.rcvmt); // 수납 정보
}
});
}
@ -384,7 +414,29 @@
// 화면 초기값 설정
setForm${pageName} = () => {
// 화면 호출(callPurpose)이 view 라면 버튼 비활성화
if (${pageNameMain}CallPurpose == "view") {
$("#btnCreateRcvmt--${pageName}").prop("disabled", true);
$("#btnUpdateRcvmtRtrc--${pageName}").prop("disabled", true);
$("#btnRemoveRcvmt--${pageName}").prop("disabled", true);
} else {
$("#btnCreateRcvmt--${pageName}").prop("disabled", false);
$("#btnUpdateRcvmtRtrc--${pageName}").prop("disabled", false);
$("#btnRemoveRcvmt--${pageName}").prop("disabled", false);
}
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 주정차위반, 전용차로위반과태료 외에는 수납 등록, 취소, 삭제 기능이 없어야 한다.
// $("#btnCreateRcvmt--${pageName}").hide();
// $("#btnUpdateRcvmtRtrc--${pageName}").hide();
// $("#btnRemoveRcvmt--${pageName}").hide();
if (taskSeCd == "BPV" || taskSeCd == "PVS") {
$("#btnCreateRcvmt--${pageName}").show();
$("#btnUpdateRcvmtRtrc--${pageName}").show();
$("#btnRemoveRcvmt--${pageName}").show();
}
}
/**************************************************************************
@ -393,17 +445,15 @@
// 수기 수납 등록
fnCreateRcvmt${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let levyId = $("#levyId--${pageName}").val();
// 부과 ID 가 없다면.. return
if (typeof levyId == "undefined" || levyId == null || levyId == "") return;
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "create"
, crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, levyId : levyId
};
${pageName}Control.getInfo(params);
@ -418,7 +468,7 @@
if (typeof rcvmtId == "undefined" || rcvmtId == null || rcvmtId == "") return;
dialog.alert({
content : "수납 취소시 과오납 대장이 생성됩니다."
content : "수납 취소시 과오납 대장이 생성됩니다.<br>계속하시겠습니까?"
, onOK : () => {
let callbackFuncName = "updateRcvmtRtrcn${pageName}";
let popupWidth = 640;
@ -429,7 +479,7 @@
window.open(
wctx.url("/resources/html/inputRsnDialog.html"
+ "?callbackFuncName=" + callbackFuncName
+ "&CALL_PURPOSE=" + "remove"
+ "&CALL_PURPOSE=" + "update"
)
, "inputDelRsnDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY
@ -456,14 +506,14 @@
return;
}
// 수납 취소 여부가 "Y" 일때만 삭제 가능
// if (${pageName}Control.dataset.getValue("RCVMT_RTRCN_YN") != "Y") {
// dialog.alert({
// content : "수납이 취소된 자료만 삭제 가능합니다."
// , onOK : () => { }
// });
if (${pageName}Control.dataset.getValue("RCVMT_RTRCN_YN") != "Y") {
dialog.alert({
content : "수납이 취소된 자료만 삭제 가능합니다."
, onOK : () => { }
});
// return;
// }
return;
}
let callbackFuncName = "removeRcvmt${pageName}";
let popupWidth = 640;
@ -498,5 +548,4 @@
${pageName}Control.setData(${rcvmt});
});
// #sourceURL=sprt02070-info.jsp
</script>

@ -12,13 +12,13 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">민원상담 이력</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreate--${pageName}" title="민원상담 등록" onclick="fnCreate${pageName}();">
<button type="button" class="btn btn-primary" id="btnCreateCvlcptDscsn--${pageName}" title="민원상담 등록" onclick="fnCreateCvlcptDscsn${pageName}();">
민원상담 등록
</button>
<button type="button" class="btn btn-primary" id="btnUpdate--${pageName}" title="민원상담 수정" onclick="fnUpdate${pageName}();">
<button type="button" class="btn btn-primary" id="btnUpdateCvlcptDscsn--${pageName}" title="민원상담 수정" onclick="fnUpdateCvlcptDscsn${pageName}();">
민원상담 수정
</button>
<button type="button" class="btn btn-primary" id="btnRemove--${pageName}" title="민원상담 삭제" onclick="fnRemove${pageName}();">
<button type="button" class="btn btn-primary" id="btnRemoveCvlcptDscsn--${pageName}" title="민원상담 삭제" onclick="fnRemoveCvlcptDscsn${pageName}();">
민원상담 삭제
</button>
</span> <!-- <span class="container-window-btn-right"> -->
@ -203,30 +203,61 @@
// 자료 재조회
refreshDataInfo${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
let vhrno = $("#vhrno--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "refresh"
, inquiryCondition : "crdnId_vhrno"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, vhrno : vhrno
, delYn : "N"
callPurpose : "refresh"
, inquiryCondition : "crdnId_vhrno"
, crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, vhrno : $("#vhrno--${pageNameMain}").val()
, delYn : "N"
};
ajax.get({
url : wctx.url(taskSeCd + "/sprt/sprt02/080/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
url : wctx.url(params.taskSeCd + "/sprt/sprt02/080/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
// Dataset 초기화
${pageName}Control.dataset.clear();
${pageName}Control.setData(resp.cvlcptDscsn); // Dataset 셋팅
// Dataset 셋팅
${pageName}Control.setData(resp.cvlcptDscsn); // 민원상담 정보
}
});
}
// 민원상담 삭제
removeCvlcptDscsn${pageName} = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "remove"
, crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, cvlcptDscsnId : ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID") // 민원상담 ID
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
};
ajax.post({
url : wctx.url(params.taskSeCd + ${pageName}PrefixUrl + "/010/remove.do")
, data : params || {}
, success : resp => {
let btnTitle = $("#btnRemoveCvlcptDscsn--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); // 메시지 출력
if (resp.saved) {
$("#dscsnCn--${pageName}").val(""); // 상담내용 초기화
refreshDataInfo${pageName}(); // 자료 재조회
}
}
});
}
@ -253,7 +284,7 @@
* 버튼 clickEvent
**************************************************************************/
// 민원 상담 내용 등록
fnCreate${pageName} = () => {
fnCreateCvlcptDscsn${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -270,7 +301,7 @@
}
// 민원 상담 내용 수정
fnUpdate${pageName} = () => {
fnUpdateCvlcptDscsn${pageName} = () => {
let cvlcptDscsnId = ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID");
// 민원 상담 ID 가 없다면.. return
@ -287,27 +318,28 @@
${pageName}Control.getInfo(params);
}
// 민원 상담 내용 삭제
fnRemove${pageName} = () => {
// 민원상담 내용 삭제
fnRemoveCvlcptDscsn${pageName} = () => {
// 민원상담 ID
let cvlcptDscsnId = ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID");
// 민원 상담 ID 가 없다면.. return
// 민원상담 ID 가 없다면.. return
if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return;
let params = {
callPurpose : "remove"
, crdnId : ${pageName}Control.dataset.getValue("CRDN_ID")
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, cvlcptDscsnId : cvlcptDscsnId
};
dialog.alert({
content : "선택한 " + ${pageName}Control.prefixName + " 내용을 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.remove(params);
}
});
let callbackFuncName = "removeCvlcptDscsn${pageName}";
let popupWidth = 640;
let popupHeight = 360;
let popupX = (window.screen.width / 2) - (popupWidth / 2);
let popupY= (window.screen.height / 2) - (popupHeight / 2);
window.open(
wctx.url("/resources/html/inputRsnDialog.html"
+ "?callbackFuncName=" + callbackFuncName
+ "&CALL_PURPOSE=" + "remove"
)
, "inputDelRsnDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY
);
}
/**************************************************************************

Loading…
Cancel
Save