mjkhan21 5 months ago
commit 8df4760d2b

@ -5,8 +5,8 @@ import java.util.List;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;

@ -10,8 +10,8 @@ import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.dao.LevyExclMapper;
import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.rdca.Rdcamt;

@ -83,7 +83,7 @@ public class Excl01Controller extends ApplicationController {
return mav
.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "levyExcl") // prefix
.addObject("infoPrefixUrl", "/excl/excl01") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
@ -201,7 +201,7 @@ public class Excl01Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "excl01020") // jsp pageName
.addObject("infoPrefix", "levyExcl") // prefix
.addObject("infoPrefixUrl", "/excl/excl01") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보

@ -110,7 +110,7 @@ public class Excl02Controller extends ApplicationController {
return mav
.addObject("pageName", "excl02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "opnnSbmsn") // prefix
.addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 답변 결과(OPNN_SBMSN_STTS_CD)
@ -232,7 +232,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "excl02020") // jsp pageName
.addObject("infoPrefix", "opnnSbmsn") // prefix
.addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
.addObject("FIM029List", commonCodes.get("FIM029")) // 접수 구분 코드(RCPT_SE_CD)
.addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD)
@ -331,7 +331,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "excl02030") // jsp pageName
.addObject("infoPrefix", "opnnSbmsn") // prefix
.addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
.addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD)
.addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 상태 코드(OPNN_SBMSN_STTS_CD)
@ -454,7 +454,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "excl02040") // jsp pageName
.addObject("infoPrefix", "opnnDlbrMbr") // prefix
.addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("opnnDlbrMbrInfo", json ? info : toJson(info))
;
}

@ -78,7 +78,7 @@ public class Excl03Controller extends ApplicationController {
return mav
.addObject("pageName", "excl03010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "crdnReReg") // prefix
.addObject("infoPrefixUrl", "/excl/excl03") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
;

@ -87,7 +87,7 @@ public class Levy01Controller extends ApplicationController {
return mav
.addObject("pageName", "levy01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "rductLevyTrgt") // prefix
.addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
;
@ -190,7 +190,7 @@ public class Levy01Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "levy01020") // jsp pageName
.addObject("infoPrefix", "rductLevyTrgt") // prefix
.addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("mainQuery", json ? req : toJson(req)) // 검색 조건
.addObject("rductLevyTrgtInfo", json ? info : toJson(info))
;
@ -233,9 +233,10 @@ public class Levy01Controller extends ApplicationController {
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010", "FIM046", "FIM054");
return mav.addObject("pageName", "levy01050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
return mav
.addObject("pageName", "levy01050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "levy") // prefix
.addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM010List", commonCodes.get("FIM010")) // 단속 상태 코드(CRDN_STTS_CD)

@ -85,7 +85,7 @@ public class Levy02Controller extends ApplicationController {
return mav
.addObject("pageName", "levy02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "rduct") // prefix
.addObject("infoPrefixUrl", "/levy/levy02") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
@ -195,7 +195,7 @@ public class Levy02Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "levy02020") // jsp pageName
.addObject("infoPrefix", "rduct") // prefix
.addObject("infoPrefixUrl", "/levy/levy02") // prefixUrl
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
.addObject("rductInfo", json ? info : toJson(info))
;

@ -87,11 +87,26 @@ public class Rcvmt extends AbstractEntity {
*/
private String rcvmtSn;
/**
*
*/
private String rcvmtSeCd;
/**
*
*/
private String rcvmtYmd;
/**
*
*/
private String acntgYmd;
/**
*
*/
private String tsfYmd;
/**
*
*/
@ -122,16 +137,6 @@ public class Rcvmt extends AbstractEntity {
*/
private String payMthdSeCd;
/**
*
*/
private String pstmrkYmd;
/**
*
*/
private String acntgYmd;
/**
*
*/
@ -142,16 +147,6 @@ public class Rcvmt extends AbstractEntity {
*/
private String epayno;
/**
*
*/
private String rcvmtSeCd;
/**
*
*/
private String nxrpLevyKey;
/**
*
*/

@ -20,16 +20,21 @@ public class RcvmtQuery extends CmmnQuery {
// ID
private String crdnId; // 단속 ID
private String levyId; // 부과 ID
private String[] rcvmtIDs; // 수납 IDs
private String[] rcvmtIds; // 수납 IDs
private String rcvmtId; // 수납 ID
// 검색 조건
private String schPstmrkYmdFrom; // 수납(TB_RCVMT)_소인 일자 시작
private String schPstmrkYmdTo; // 수납(TB_RCVMT)_소인 일자 종료
private String schAcntgYmdFrom; // 수납(TB_RCVMT)_회계 일자 시작
private String schAcntgYmdTo; // 수납(TB_RCVMT)_회계 일자 종료
private String schRcvmtYmdFrom; // 수납(TB_RCVMT)_수납 일자 시작
private String schRcvmtYmdTo; // 수납(TB_RCVMT)_수납 일자 종료
private String schTsfYmdFrom; // 수납(TB_RCVMT)_이체 일자 시작
private String schTsfYmdTo; // 수납(TB_RCVMT)_이체 일자 종료
private String schRcvmtSeCd; // 수납(TB_RCVMT)_수납 구분 코드
private String schPayMthdSeCd; // 수납(TB_RCVMT)_납부 방법 구분 코드
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schRtpyrNo; // 납부자(TB_PAYER)_납부자 번호
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
// 상세 검색 조건
@ -44,7 +49,7 @@ public class RcvmtQuery extends CmmnQuery {
private String levyNo; // 수납(TB_RCVMT)_부과 번호
private String inspyNo; // 수납(TB_RCVMT)_분납 번호
private String rcvmtSn; // 수납(TB_RCVMT)_수납 일련번호
private String pstmrkYmd; // 수납(TB_RCVMT)_소인 일자
private String tsfYmd; // 수납(TB_RCVMT)_이체 일자
private String acntgYmd; // 수납(TB_RCVMT)_회계 일자
private String rcvmtYmd; // 수납(TB_RCVMT)_수납 일자
private String rcvmtAmt; // 수납(TB_RCVMT)_수납 금액
@ -98,12 +103,12 @@ public class RcvmtQuery extends CmmnQuery {
return self();
}
public String[] getRcvmtIDs() {
return ifEmpty(rcvmtIDs, () -> null);
public String[] getRcvmtIds() {
return ifEmpty(rcvmtIds, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtIDs(String... rcvmtIDs) {
this.rcvmtIDs = rcvmtIDs;
public <T extends RcvmtQuery> T setRcvmtIds(String... rcvmtIds) {
this.rcvmtIds = rcvmtIds;
return self();
}
@ -116,22 +121,21 @@ public class RcvmtQuery extends CmmnQuery {
return self();
}
//
public String getSchPstmrkYmdFrom() {
return ifEmpty(schPstmrkYmdFrom, () -> null);
public String getSchAcntgYmdFrom() {
return ifEmpty(schAcntgYmdFrom, () -> null);
}
public <T extends RcvmtQuery> T setSchPstmrkYmdFrom(String schPstmrkYmdFrom) {
this.schPstmrkYmdFrom = schPstmrkYmdFrom;
public <T extends RcvmtQuery> T setSchAcntgYmdFrom(String schAcntgYmdFrom) {
this.schAcntgYmdFrom = schAcntgYmdFrom;
return self();
}
public String getSchPstmrkYmdTo() {
return ifEmpty(schPstmrkYmdTo, () -> null);
public String getSchAcntgYmdTo() {
return ifEmpty(schAcntgYmdTo, () -> null);
}
public <T extends RcvmtQuery> T setSchPstmrkYmdTo(String schPstmrkYmdTo) {
this.schPstmrkYmdTo = schPstmrkYmdTo;
public <T extends RcvmtQuery> T setSchAcntgYmdTo(String schAcntgYmdTo) {
this.schAcntgYmdTo = schAcntgYmdTo;
return self();
}
@ -153,6 +157,42 @@ public class RcvmtQuery extends CmmnQuery {
return self();
}
public String getSchTsfYmdFrom() {
return ifEmpty(schTsfYmdFrom, () -> null);
}
public <T extends RcvmtQuery> T setSchTsfYmdFrom(String schTsfYmdFrom) {
this.schTsfYmdFrom = schTsfYmdFrom;
return self();
}
public String getSchTsfYmdTo() {
return ifEmpty(schTsfYmdTo, () -> null);
}
public <T extends RcvmtQuery> T setSchTsfYmdTo(String schTsfYmdTo) {
this.schTsfYmdTo = schTsfYmdTo;
return self();
}
public String getSchRcvmtSeCd() {
return ifEmpty(schRcvmtSeCd, () -> null);
}
public <T extends RcvmtQuery> T setSchRcvmtSeCd(String schRcvmtSeCd) {
this.schRcvmtSeCd = schRcvmtSeCd;
return self();
}
public String getSchPayMthdSeCd() {
return ifEmpty(schPayMthdSeCd, () -> null);
}
public <T extends RcvmtQuery> T setSchPayMthdSeCd(String schPayMthdSeCd) {
this.schPayMthdSeCd = schPayMthdSeCd;
return self();
}
public String getSchCrdnYmdFrom() {
return ifEmpty(schCrdnYmdFrom, () -> null);
}
@ -180,6 +220,15 @@ public class RcvmtQuery extends CmmnQuery {
return self();
}
public String getSchRtpyrNo() {
return ifEmpty(schRtpyrNo, () -> null);
}
public <T extends RcvmtQuery> T setSchRtpyrNo(String schRtpyrNo) {
this.schRtpyrNo = schRtpyrNo;
return self();
}
public String getSchRtpyrNm() {
return ifEmpty(schRtpyrNm, () -> null);
}
@ -284,12 +333,12 @@ public class RcvmtQuery extends CmmnQuery {
return self();
}
public String getPstmrkYmd() {
return ifEmpty(pstmrkYmd, () -> null);
public String getTsfYmd() {
return ifEmpty(tsfYmd, () -> null);
}
public <T extends RcvmtQuery> T setPstmrkYmd(String pstmrkYmd) {
this.pstmrkYmd = pstmrkYmd;
public <T extends RcvmtQuery> T setTsfYmd(String tsfYmd) {
this.tsfYmd = tsfYmd;
return self();
}

@ -1,15 +1,13 @@
package cokr.xit.fims.rcvm.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.rcvm.Rcvmt;
import cokr.xit.fims.rcvm.RcvmtQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
/** DAO
*
@ -41,22 +39,18 @@ public interface RcvmtMapper extends AbstractMapper {
* @return
*/
default DataObject selectRcvmtInfo(RcvmtQuery req) {
List<DataObject> rcvmts = selectRcvmts(req);
return !rcvmts.isEmpty() ? rcvmts.get(0) : null;
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");
}
// 기본 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("R.RCVMT_ID DESC");
}
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
int updateRcvmtRtrcn(Map<String, Object> params);
List<DataObject> rcvmts = selectRcvmts(req);
default boolean updateRcvmtRtrcn(Rcvmt rcvmt) {
return rcvmt != null && updateRcvmtRtrcn(params().set("rcvmt", rcvmt)) == 1;
return !rcvmts.isEmpty() ? rcvmts.get(0) : null;
}
/** .
@ -66,18 +60,7 @@ public interface RcvmtMapper extends AbstractMapper {
* </ul>
* @return
*/
int insertRcvmt(Map<String, Object> params);
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(Rcvmt rcvmt) {
return rcvmt != null && insertRcvmt(params().set("rcvmt", rcvmt)) == 1;
}
int insertRcvmt(Rcvmt rcvmt);
/** .
* @param params
@ -86,18 +69,16 @@ public interface RcvmtMapper extends AbstractMapper {
* </ul>
* @return
*/
int updateRcvmt(Map<String, Object> params);
int updateRcvmt(Rcvmt rcvmt);
/** .
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(Rcvmt rcvmt) {
return rcvmt != null && updateRcvmt(params().set("rcvmt", rcvmt)) == 1;
}
int updateRcvmtRtrcn(Rcvmt rcvmt);
/** .
* @param params
@ -106,18 +87,7 @@ public interface RcvmtMapper extends AbstractMapper {
* </ul>
* @return
*/
int deleteRcvmt(Map<String, ?> params);
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(Rcvmt rcvmt) {
return rcvmt != null && deleteRcvmt(params().set("rcvmt", rcvmt)) == 1;
}
int deleteRcvmt(Rcvmt rcvmt);
/** .
* @param req

@ -78,20 +78,20 @@ public class RcvmtBean extends AbstractBean {
return rcvmtMapper.selectRcvmts(req);
}
/** ID .<br />
/** ID .<br />
* @param req
* @return
*/
public DataObject getLevyInfo(RcvmtQuery req) {
return rcvmtMapper.selectLevyInfo(req);
public DataObject getRcvmtInfo(RcvmtQuery req) {
return rcvmtMapper.selectRcvmtInfo(req);
}
/** ID .<br />
/** ID .<br />
* @param req
* @return
*/
public DataObject getRcvmtInfo(RcvmtQuery req) {
return rcvmtMapper.selectRcvmtInfo(req);
public DataObject getLevyInfo(RcvmtQuery req) {
return rcvmtMapper.selectLevyInfo(req);
}
/** .
@ -103,9 +103,8 @@ public class RcvmtBean extends AbstractBean {
*/
public String createRcvmt(Rcvmt rcvmt) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = ""; // 처리 결과 메시지
// 부과 ID로 부과 정보 조회
DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rcvmt.getLevyId()));
@ -139,7 +138,8 @@ public class RcvmtBean extends AbstractBean {
}
rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납
} else {
throw new RuntimeException("수납 등록 중 수납금액 계산에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
rtnMsg = "[F] 수납 등록 중 수납금액 계산에 실패하였습니다."; // 예외를 발생시켜서 DB Rollback
return rtnMsg;
}
// 수납 구분 코드가 입력 되지 않았다면..
@ -147,15 +147,14 @@ public class RcvmtBean extends AbstractBean {
rcvmt.setRcvmtSeCd(rcvmtSeCd);
}
rtnScs = rcvmtMapper.insert(rcvmt); // 수납 대장 등록
if (!rtnScs) {
// 수납(TB_RCVMT) 대장을 등록 한다.
rtnNocs = rcvmtMapper.insertRcvmt(rcvmt);
if (rtnNocs != 1) {
throw new RuntimeException("수납 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 부과(TB_LEVY) 대장을 수정한다.
if (!rcvmtSeCd.equals("02")) { // 이중 수납이 아니라면..
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
levy.setRcvmtPcptax(rcvmt.getRcvmtPcptax()); // 수납 본세
levy.setRcvmtAdamt(rcvmt.getRcvmtAdamt()); // 수납 가산금
@ -163,7 +162,8 @@ public class RcvmtBean extends AbstractBean {
levy.setRcvmtYmd(rcvmt.getRcvmtYmd()); // 수납 일자
levy.setPayMthdSeCd(rcvmt.getPayMthdSeCd()); // 납부 방법 구분 코드
rtnNocs = levyMapper.updateRcvmt(levy); // 부과 대장 수정
// 부과(TB_LEVY) 대장에 수납금액을 수정한다.
rtnNocs = levyMapper.updateRcvmt(levy);
if (rtnNocs != 1) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
@ -171,9 +171,7 @@ public class RcvmtBean extends AbstractBean {
// 합계 금액이 0이면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 수정한다.
if (levy.getSumAmt() == 0 && (rcvmtSeCd.equals("01") || rcvmtSeCd.equals("04"))) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
String newCrdnSttsCd = "";
if (levyInfo.number("CRDN_STTS_CD").intValue() >= 11 && levyInfo.number("CRDN_STTS_CD").intValue() <= 45) {
newCrdnSttsCd = "71"; // 사전통보수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("51")) {
@ -188,6 +186,7 @@ public class RcvmtBean extends AbstractBean {
newCrdnSttsCd = "75"; // 압류수납
}
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(levyInfo.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setBfrSttsCd(levyInfo.string("CRDN_STTS_CD")); // 단속 상태 코드
crdnSttsHstry.setBfrSttsChgDt(levyInfo.string("CRDN_STTS_CHG_DT")); // 단소 상태 변경 일시
@ -195,7 +194,7 @@ public class RcvmtBean extends AbstractBean {
crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
@ -214,29 +213,7 @@ public class RcvmtBean extends AbstractBean {
*/
public String updateRcvmtRtrcn(Rcvmt rcvmt) {
// 변수 선언
// boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// 수납 취소
rtnMsg = updateRcvmtCancle(rcvmt);
if (rtnMsg.contains("[F]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
/** , .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeRcvmt(Rcvmt rcvmt) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = "";
// 수납 취소
rtnMsg = updateRcvmtCancle(rcvmt);
@ -244,15 +221,10 @@ public class RcvmtBean extends AbstractBean {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
// 수납 삭제
rtnScs = rcvmtMapper.delete(rcvmt);
if (!rtnScs) {
throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 과오납 등록
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
return "[S] 작업이 정상 처리 되었습니다.";
}
/** .
@ -264,16 +236,15 @@ public class RcvmtBean extends AbstractBean {
*/
public String updateRcvmtCancle(Rcvmt rcvmt) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = "[F] "; // 처리 결과 메시지
// 수납 ID로 수납 정보 조회
DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()).setDelYn("N"));
rtnScs = rcvmtMapper.updateRcvmtRtrcn(rcvmt);
if (!rtnScs) {
throw new RuntimeException("수납 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
// 수납(TB_RCVMT) 대장에 수납취소 정보를 수정 한다.
rtnNocs = rcvmtMapper.updateRcvmtRtrcn(rcvmt);
if (rtnNocs != 1) {
throw new RuntimeException("수납 대장에 수납취소 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 수납구분코드(RCVMT_SE_CD)가 이중 수납이 아니라면..
@ -287,7 +258,6 @@ public class RcvmtBean extends AbstractBean {
+ 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); // 수납 가산금
@ -302,7 +272,8 @@ public class RcvmtBean extends AbstractBean {
levy.setPayMthdSeCd(levyInfo.string("PAY_MTHD_SE_CD")); // 납부 방법 구분 코드
}
rtnNocs = levyMapper.updateRcvmt(levy); // 부과 대장 수정
// 부과(TB_LEVY) 대장에 수납금액 정보를 수정 한다.
rtnNocs = levyMapper.updateRcvmt(levy);
if (rtnNocs != 1) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
@ -333,7 +304,7 @@ public class RcvmtBean extends AbstractBean {
crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
@ -343,4 +314,27 @@ public class RcvmtBean extends AbstractBean {
return "[S] 작업이 정상 처리 되었습니다.";
}
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeRcvmt(Rcvmt rcvmt) {
// 수납 ID로 수납 정보 조회
DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()));
if (rcvmtInfo.string("RCVMT_INPT_SE_CD").equals("03")) {
throw new RuntimeException("수납입력구분이 수기등록 자료만 삭제가 가능합니다."); // 예외를 발생시켜서 DB Rollback
}
// 수납(TB_RCVMT) 대장을 삭제 한다.
int rtnNocs = rcvmtMapper.deleteRcvmt(rcvmt);
if (rtnNocs != 1) {
throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
}

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.stereotype.Controller;
@ -76,14 +77,16 @@ public class Rcvm01Controller extends ApplicationController {
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM041", "FIM045", "FIM054");
return mav
.addObject("pageName", "rcvm01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "rcvmt") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054")))
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM041List", commonCodes.get("FIM041")) // 수납 구분 코드(RCVMT_SE_CD)
.addObject("FIM045List", commonCodes.get("FIM045")) // 납부 방법 구분 코드(PAY_MTHD_SE_CD)
;
}
@ -129,24 +132,24 @@ public class Rcvm01Controller extends ApplicationController {
valueMap.put("세목코드", format.of("TXITM_CD").style(center));
valueMap.put("세목명", format.of("TXITM_NM"));
valueMap.put("부과번호", format.of("LEVY_NO").style(center));
valueMap.put("분납일련번호", format.of("INSPY_SN").style(center));
valueMap.put("최종본세", format.of("LAST_PCPTAX").style(numeric));
valueMap.put("최종가산금", format.of("LAST_ADAMT").style(numeric));
valueMap.put("수납일련번호", format.of("RCVMT_SN").style(center));
valueMap.put("회계일자", FormatMaker.yyyy_mm_dd(format, "ACNTG_YMD").style(dateYMD));
valueMap.put("소인일자", FormatMaker.yyyy_mm_dd(format, "PSTMRK_YMD").style(dateYMD));
valueMap.put("수납구분", format.of("RCVMT_SE_NM").style(center));
valueMap.put("수납일자", FormatMaker.yyyy_mm_dd(format, "RCVMT_YMD").style(dateYMD));
valueMap.put("회계일자", FormatMaker.yyyy_mm_dd(format, "ACNTG_YMD").style(dateYMD));
valueMap.put("이체일자", FormatMaker.yyyy_mm_dd(format, "TSF_YMD").style(dateYMD));
valueMap.put("수납금액", format.of("RCVMT_AMT").style(numeric));
valueMap.put("수납본세", format.of("RCVMT_PCPTAX").style(numeric));
valueMap.put("수납가산금", format.of("RCVMT_ADAMT").style(numeric));
valueMap.put("수납이자", format.of("RCVMT_INT").style(numeric));
valueMap.put("수납은행", format.of("RCVMT_BANK_NM"));
valueMap.put("납부방법", format.of("PAY_MTHD_SE_NM"));
valueMap.put("수납구분", format.of("RCVMT_SE_NM").style(center));
valueMap.put("수납상태", format.of("RCVMT_STTS_NM").style(center));
valueMap.put("부과일자", FormatMaker.yyyy_mm_dd(format, "LEVY_YMD").style(dateYMD));
valueMap.put("최초납기일자", FormatMaker.yyyy_mm_dd(format, "FRST_DUDT_YMD").style(dateYMD));
valueMap.put("납기일자", FormatMaker.yyyy_mm_dd(format, "DUDT_YMD").style(dateYMD));
valueMap.put("부과본세", format.of("LEVY_PCPTAX").style(numeric));
valueMap.put("부과가산금", format.of("LEVY_ADAMT").style(numeric));
valueMap.put("분납이자", format.of("INSPY_INT").style(numeric));
valueMap.put("압류일자", FormatMaker.yyyy_mm_dd(format, "SZR_YMD").style(dateYMD));
valueMap.put("압류물건", format.of("SZR_THING"));
valueMap.put("대체압류차량", format.of("RPM_SZR_VHRNO"));
@ -184,8 +187,7 @@ public class Rcvm01Controller extends ApplicationController {
*/
@Task
@RequestMapping(name="수납 정보 조회", value=METHOD_URL.getReceivingMoneyInfo)
public ModelAndView getReceivingMoneyInfo(RcvmtQuery req) {
// 수납 정보 조회
public ModelAndView getReceivingMoneyInfo(HttpServletRequest hReq, RcvmtQuery req) {
DataObject info = rcvmtService.getRcvmtInfo(req);
boolean json = jsonResponse();
@ -196,8 +198,11 @@ public class Rcvm01Controller extends ApplicationController {
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM041", "FIM045", "FIM054");
return mav
.addObject("pageName", "rcvm01020")
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "rcvm01020") // jsp pageName
.addObject("infoPrefix", "rcvmt") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM041List", commonCodes.get("FIM041")) // 수납 구분 코드(RCVMT_SE_CD)
.addObject("FIM045List", commonCodes.get("FIM045")) // 납부 방법 구분 코드(PAY_MTHD_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)

@ -9,6 +9,8 @@
<resultMap id="rcvmtRow" type="cokr.xit.fims.rcvm.Rcvmt">
<result property="rcvmtId" column="RCVMT_ID" /> <!-- 수납 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
<result property="rcvmtInptSeCd" column="RCVMT_INPT_SE_CD" /> <!-- 수납 입력 구분 코드 -->
<result property="deptCd" column="DEPT_CD" /> <!-- 부서 코드 -->
@ -21,19 +23,18 @@
<result property="lastPcptax" column="LAST_PCPTAX" /> <!-- 최종 본세 -->
<result property="lastAdamt" column="LAST_ADAMT" /> <!-- 최종 가산금 -->
<result property="rcvmtSn" column="RCVMT_SN" /> <!-- 수납 일련번호 -->
<result property="rcvmtSeCd" column="RCVMT_SE_CD" /> <!-- 수납 구분 코드 -->
<result property="rcvmtYmd" column="RCVMT_YMD" /> <!-- 수납 일자 -->
<result property="acntgYmd" column="ACNTG_YMD" /> <!-- 회계 일자 -->
<result property="tsfYmd" column="TSF_YMD" /> <!-- 이체 일자 -->
<result property="rcvmtAmt" column="RCVMT_AMT" /> <!-- 수납 금액 -->
<result property="rcvmtPcptax" column="RCVMT_PCPTAX" /> <!-- 수납 본세 -->
<result property="rcvmtAdamt" column="RCVMT_ADAMT" /> <!-- 수납 가산금 -->
<result property="rcvmtInt" column="RCVMT_INT" /> <!-- 수납 이자 -->
<result property="rcvmtBankNm" column="RCVMT_BANK_NM" /> <!-- 수납 은행 명 -->
<result property="payMthdSeCd" column="PAY_MTHD_SE_CD" /> <!-- 납부 방법 구분 코드 -->
<result property="pstmrkYmd" column="PSTMRK_YMD" /> <!-- 소인 일자 -->
<result property="acntgYmd" column="ACNTG_YMD" /> <!-- 회계 일자 -->
<result property="vractno" column="VRACTNO" /> <!-- 가상계좌번호 -->
<result property="epayno" column="EPAYNO" /> <!-- 전자납부번호 -->
<result property="rcvmtSeCd" column="RCVMT_SE_CD" /> <!-- 수납 구분 코드 -->
<result property="nxrpLevyKey" column="NXRP_LEVY_KEY" /> <!-- 세외수입 부과 키 -->
<result property="rcvmtRtrcnYn" column="RCVMT_RTRCN_YN" /> <!-- 수납 취소 여부 -->
<result property="rcvmtRtrcnDt" column="RCVMT_RTRCN_DT" /> <!-- 수납 취소 일시 -->
<result property="rcvmtRtrcnRsn" column="RCVMT_RTRCN_RSN" /> <!-- 수납 취소 사유 -->
@ -50,58 +51,52 @@
<sql id="selectList">
SELECT R.RCVMT_ID <!-- 수납 ID -->
, R.SGG_CD <!-- 시군구 코드 -->
, R.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, R.RCVMT_INPT_SE_CD <!-- 수납 입력 구분 코드 -->
, (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM <!-- 수납 입력 구분 명 -->
, R.DEPT_CD <!-- 부서 코드 -->
, R.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, R.FYR <!-- 회계연도 -->
, R.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM <!-- 회계 구분 명 -->
, R.TXITM_CD <!-- 세목 코드 -->
, (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM <!-- 세목 코드 명 -->
, R.LEVY_NO <!-- 부과 번호 -->
, R.INSPY_SN <!-- 분납 일련번호 -->
, R.LAST_PCPTAX <!-- 최종 본세 -->
, R.LAST_ADAMT <!-- 최종 가산금 -->
, R.RCVMT_SN <!-- 수납 일련번호 -->
, R.RCVMT_SE_CD <!-- 수납 구분 코드 -->
, (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM <!-- 수납 구분 명 -->
, R.RCVMT_YMD <!-- 수납 일자 -->
, R.ACNTG_YMD <!-- 회계 일자 -->
, R.TSF_YMD <!-- 이체 일자 -->
, R.RCVMT_AMT <!-- 수납 금액 -->
, R.RCVMT_PCPTAX <!-- 수납 본세 -->
, R.RCVMT_ADAMT <!-- 수납 가산금 -->
, R.RCVMT_INT <!-- 수납 이자 -->
, R.RCVMT_BANK_NM <!-- 수납 은행 명 -->
, R.PAY_MTHD_SE_CD <!-- 납부 방법 구분 코드 -->
, R.PSTMRK_YMD <!-- 소인 일자 -->
, R.ACNTG_YMD <!-- 회계 일자 -->
, (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM <!-- 납부 방법 구분 명 -->
, R.VRACTNO <!-- 가상계좌번호 -->
, R.EPAYNO <!-- 전자납부번호 -->
, R.RCVMT_SE_CD <!-- 수납 구분 코드 -->
, R.NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
, R.RCVMT_RTRCN_YN <!-- 수납 취소 여부 -->
, (SELECT GET_CODE_NM('CMN005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM <!-- 수납 취소 여부 명 -->
, R.RCVMT_RTRCN_DT <!-- 수납 취소 일시 -->
, R.RCVMT_RTRCN_RSN <!-- 수납 취소 사유 -->
, R.RCVMT_STTS_CD <!-- 수납 상태 코드 -->
, (SELECT GET_CODE_NM('FIM020', R.RCVMT_STTS_CD) FROM DUAL) AS RCVMT_STTS_NM <!-- 수납 상태 명 -->
, R.DEL_YN <!-- 삭제 여부 -->
, R.REG_DT <!-- 등록 일시 -->
, R.MDFCN_DT <!-- 수정 일시 -->
, R.DEL_DT <!-- 삭제 일시 -->
, R.DEL_RSN <!-- 삭제 사유 -->
, (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM <!-- 수납 입력 구분 명 -->
, (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM <!-- 회계 구분 명 -->
, (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM <!-- 세목 코드 명 -->
, (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM <!-- 납부 방법 구분 명 -->
, (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM <!-- 수납 구분 명 -->
, (SELECT GET_CODE_NM('CMN005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM <!-- 수납 취소 여부 명 -->
, (SELECT GET_CODE_NM('FIM020', R.RCVMT_STTS_CD) FROM DUAL) AS RCVMT_STTS_NM <!-- 수납 상태 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, R.MDFCN_DT <!-- 수정 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, L.LEVY_ID <!-- 부과 ID -->
, L.LEVY_YMD <!-- 부과 일자 -->
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.FFNLG_AMT <!-- 과태료 금액 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
, L.SZR_YMD <!-- 압류 일자 -->
, L.SZR_THING <!-- 압류 물건 -->
, L.RPM_SZR_VHRNO <!-- 대체 압류 자동차등록번호 -->
@ -109,21 +104,20 @@
, L.SZR_RMV_RSN <!-- 압류 해제 사유 -->
, C.CRDN_ID <!-- 단속 ID -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK <!-- 납부자 생년월일 마스크 -->
, PA.ADDR_SN <!-- 주소 일련번호 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 -->
@ -138,17 +132,32 @@
<include refid="utility.paging-prefix" />
<include refid="selectList" />
<where>
<if test="schPstmrkYmdFrom != null">
AND R.PSTMRK_YMD <![CDATA[ >= ]]> #{schPstmrkYmdFrom} <!-- 소인 일자 시작 -->
</if>
<if test="schPstmrkYmdTo != null">
AND R.PSTMRK_YMD <![CDATA[ <= ]]> #{schPstmrkYmdTo} <!-- 소인 일자 종료 -->
</if>
<if test="schRcvmtYmdFrom != null">
AND R.PSTMRK_YMD <![CDATA[ >= ]]> #{schRcvmtYmdFrom} <!-- 소인 일자 시작 -->
AND R.RCVMT_YMD <![CDATA[ >= ]]> #{schRcvmtYmdFrom} <!-- 수납 일자 시작 -->
</if>
<if test="schRcvmtYmdTo != null">
AND R.RCVMT_YMD <![CDATA[ <= ]]> #{schRcvmtYmdTo} <!-- 소인 일자 종료 -->
AND R.RCVMT_YMD <![CDATA[ <= ]]> #{schRcvmtYmdTo} <!-- 수납 일자 종료 -->
</if>
<if test="schAcntgYmdFrom != null">
AND R.ACNTG_YMD <![CDATA[ >= ]]> #{schAcntgYmdFrom} <!-- 회계 일자 시작 -->
</if>
<if test="schAcntgYmdTo != null">
AND R.ACNTG_YMD <![CDATA[ <= ]]> #{schAcntgYmdTo} <!-- 회계 일자 종료 -->
</if>
<if test="schTsfYmdFrom != null">
AND R.TSF_YMD <![CDATA[ >= ]]> #{schTsfYmdFrom} <!-- 이체 일자 시작 -->
</if>
<if test="schTsfYmdTo != null">
AND R.TSF_YMD <![CDATA[ <= ]]> #{schTsfYmdTo} <!-- 이체 일자 종료 -->
</if>
<if test="schRcvmtSeCd != null">
AND R.RCVMT_SE_CD = #{schRcvmtSeCd} <!-- 수납 구분 코드 -->
</if>
<if test="schPayMthdSeCd != null">
AND R.PAY_MTHD_SE_CD = #{schPayMthdSeCd} <!-- 납부 방법 구분 코드 -->
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
@ -158,13 +167,13 @@
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
</if>
<if test="schRtpyrNo != null">
AND P.RTPYR_NO = #{schRtpyrNo} <!-- 납부자 번호 -->
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
<choose>
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
@ -210,10 +219,14 @@
<when test="by == 'acntgSeCd'"> R.ACNTG_SE_CD </when>
<when test="by == 'txitmCd'"> R.TXITM_CD </when>
<when test="by == 'levyNo'"> R.LEVY_NO</when>
<when test="by == 'inspySn'"> R.INSPY_SN</when>
<when test="by == 'lastPcptax'"> R.LAST_PCPTAX </when>
<when test="by == 'lastAdamt'"> R.LAST_ADAMT </when>
<when test="by == 'rcvmtSn'"> R.RCVMT_SN </when>
<when test="by == 'pstmrkYmd'"> R.PSTMRK_YMD </when>
<when test="by == 'acntgYmd'"> R.ACNTG_YMD </when>
<when test="by == 'rcvmtYmd'"> R.RCVMT_YMD </when>
<when test="by == 'rcvmtAmt'"> R.RCVMT_AMT </when>
<when test="by == 'rcvmtPcptax'"> R.RCVMT_PCPTAX </when>
<when test="by == 'rcvmtAdamt'"> R.RCVMT_ADAMT </when>
<when test="by == 'rcvmtInt'"> R.RCVMT_INT </when>
@ -224,9 +237,6 @@
<when test="by == 'levyYmd'"> L.LEVY_YMD </when>
<when test="by == 'frstDudtYmd'"> L.FRST_DUDT_YMD </when>
<when test="by == 'dudtYmd'"> L.DUDT_YMD </when>
<when test="by == 'levyPcptax'"> L.LEVY_PCPTAX </when>
<when test="by == 'levyAdamt'"> L.LEVY_ADAMT </when>
<when test="by == 'inspyInt'"> L.INSPY_INT </when>
<when test="by == 'szrYmd'"> L.SZR_YMD </when>
<when test="by == 'szrThing'"> L.SZR_THING </when>
<when test="by == 'rpmSzrVhrno'"> L.RPM_SZR_VHRNO </when>
@ -236,9 +246,12 @@
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrSeCd'"> P.RTPYR_SE_CD </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'zip'"> PA.ZIP </when>
<when test="by == 'addr'"> PA.ADDR </when>
<when test="by == 'dtlAddr'"> PA.DTL_ADDR </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
@ -246,6 +259,8 @@
</otherwise>
</choose>
</if>
AND R.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND R.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
@ -253,50 +268,48 @@
<sql id="select">
SELECT R.RCVMT_ID <!-- 수납 ID -->
, R.SGG_CD <!-- 시군구 코드 -->
, R.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, R.RCVMT_INPT_SE_CD <!-- 수납 입력 구분 코드 -->
, (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM <!-- 수납 입력 구분 명 -->
, R.DEPT_CD <!-- 부서 코드 -->
, R.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, R.FYR <!-- 회계연도 -->
, R.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM <!-- 회계 구분 명 -->
, R.TXITM_CD <!-- 세목 코드 -->
, (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM <!-- 세목 코드 명 -->
, R.LEVY_NO <!-- 부과 번호 -->
, R.INSPY_SN <!-- 분납 일련번호 -->
, R.LAST_PCPTAX <!-- 최종 본세 -->
, R.LAST_ADAMT <!-- 최종 가산금 -->
, R.RCVMT_SN <!-- 수납 일련번호 -->
, R.RCVMT_SE_CD <!-- 수납 구분 코드 -->
, (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM <!-- 수납 구분 명 -->
, R.RCVMT_YMD <!-- 수납 일자 -->
, R.ACNTG_YMD <!-- 회계 일자 -->
, R.TSF_YMD <!-- 이체 일자 -->
, R.RCVMT_AMT <!-- 수납 금액 -->
, R.RCVMT_PCPTAX <!-- 수납 본세 -->
, R.RCVMT_ADAMT <!-- 수납 가산금 -->
, R.RCVMT_INT <!-- 수납 이자 -->
, R.RCVMT_BANK_NM <!-- 수납 은행 명 -->
, R.PAY_MTHD_SE_CD <!-- 납부 방법 구분 코드 -->
, R.PSTMRK_YMD <!-- 소인 일자 -->
, R.ACNTG_YMD <!-- 회계 일자 -->
, (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM <!-- 납부 방법 구분 명 -->
, R.VRACTNO <!-- 가상계좌번호 -->
, R.EPAYNO <!-- 전자납부번호 -->
, R.RCVMT_SE_CD <!-- 수납 구분 코드 -->
, R.NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
, R.RCVMT_RTRCN_YN <!-- 수납 취소 여부 -->
, R.RCVMT_RTRCN_DT <!-- 수납 취소 일시 -->
, R.RCVMT_RTRCN_RSN <!-- 수납 취소 사유 -->
, (SELECT GET_CODE_NM('CMN005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM <!-- 수납 취소 여부 명 -->
, R.RCVMT_STTS_CD <!-- 수납 상태 코드 -->
, (SELECT GET_CODE_NM('FIM020', R.RCVMT_STTS_CD) FROM DUAL) AS RCVMT_STTS_NM <!-- 수납 상태 명 -->
, R.DEL_YN <!-- 삭제 여부 -->
, R.REG_DT <!-- 등록 일시 -->
, R.MDFCN_DT <!-- 수정 일시 -->
, R.DEL_DT <!-- 삭제 일시 -->
, R.DEL_RSN <!-- 삭제 사유 -->
, (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM <!-- 수납 입력 구분 명 -->
, (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM <!-- 회계 구분 명 -->
, (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM <!-- 세목 코드 명 -->
, (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM <!-- 납부 방법 구분 명 -->
, (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM <!-- 수납 구분 명 -->
, (SELECT GET_CODE_NM('CMN005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM <!-- 수납 취소 여부 명 -->
, (SELECT GET_CODE_NM('FIM020', R.RCVMT_STTS_CD) FROM DUAL) AS RCVMT_STTS_NM <!-- 수납 상태 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, L.LEVY_ID <!-- 부과 ID -->
, C.CRDN_ID <!-- 단속 ID -->
FROM TB_RCVMT R
@ -307,6 +320,11 @@
<select id="selectRcvmts" parameterType="map" resultType="dataobject">/* 수납 대장 객체 가져오기(rcvmtMapper.selectRcvmts) */
<include refid="select" />
<where>
<if test="rcvmtIds != null">
AND R.RCVMT_ID IN ( <!-- 수납 Ids -->
<foreach collection="rcvmtIds" item="rcvmtId" separator=","> #{rcvmtId} </foreach>
)
</if>
<if test="rcvmtId != null">
AND R.RCVMT_ID = #{rcvmtId} <!-- 수납 ID -->
</if>
@ -323,27 +341,29 @@
<include refid="utility.orderBy" />
</select>
<update id="updateRcvmtRtrcn" parameterType="map">/* 수납 대장 수납취소 정보 수정(rcvmtMapper.updateRcvmtRtrcn) */
<update id="updateRcvmtRtrcn" parameterType="cokr.xit.fims.rcvm.Rcvmt">/* 수납 대장 수납취소 정보 수정(rcvmtMapper.updateRcvmtRtrcn) */
UPDATE TB_RCVMT
SET RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
SET RCVMT_RTRCN_YN = #{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 -->
, RCVMT_RTRCN_RSN = #{rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
, MDFCN_DT = #{lastModified} <!-- 수정 일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE RCVMT_ID = #{rcvmtId} <!-- 수납 ID -->
AND DEL_YN = 'N' <!-- 삭제 여부 -->
</update>
<insert id="insertRcvmt" parameterType="map">/* 수납 대장 등록(rcvmtMapper.insertRcvmt) */
<selectKey resultType="map" keyProperty="rcvmt.rcvmtId,rcvmt.rcvmtSn" keyColumn="NEW_ID,NEW_RCVMT_SN" order="BEFORE">
SELECT CONCAT(#{rcvmt.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCVMT_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID
, (SELECT LPAD(CAST(IFNULL(MAX(RCVMT_SN) + 1, 1) AS INT), 2, '0') FROM TB_RCVMT WHERE LEVY_ID = #{rcvmt.levyId}) AS NEW_RCVMT_SN
<insert id="insertRcvmt" parameterType="cokr.xit.fims.rcvm.Rcvmt">/* 수납 대장 등록(rcvmtMapper.insertRcvmt) */
<selectKey resultType="map" keyProperty="rcvmtId,rcvmtSn" keyColumn="NEW_ID,NEW_RCVMT_SN" order="BEFORE">
SELECT CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCVMT_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID
, (SELECT LPAD(CAST(IFNULL(MAX(RCVMT_SN) + 1, 1) AS INT), 2, '0') FROM TB_RCVMT WHERE LEVY_ID = #{levyId}) AS NEW_RCVMT_SN
FROM TB_RCVMT
WHERE RCVMT_ID LIKE CONCAT(#{rcvmt.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
WHERE RCVMT_ID LIKE CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_RCVMT (
RCVMT_ID <!-- 수납 ID -->
, SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, LEVY_ID <!-- 부과 ID -->
, RCVMT_INPT_SE_CD <!-- 수납 입력 구분 코드 -->
, DEPT_CD <!-- 부서 코드 -->
@ -356,19 +376,18 @@
, LAST_PCPTAX <!-- 최종 본세 -->
, LAST_ADAMT <!-- 최종 가산금 -->
, RCVMT_SN <!-- 수납 일련번호 -->
, RCVMT_SE_CD <!-- 수납 구분 코드 -->
, RCVMT_YMD <!-- 수납 일자 -->
, ACNTG_YMD <!-- 회계 일자 -->
, TSF_YMD <!-- 이체 일자 -->
, RCVMT_AMT <!-- 수납 금액 -->
, RCVMT_PCPTAX <!-- 수납 본세 -->
, RCVMT_ADAMT <!-- 수납 가산금 -->
, RCVMT_INT <!-- 수납 이자 -->
, RCVMT_BANK_NM <!-- 수납 은행 명 -->
, PAY_MTHD_SE_CD <!-- 납부 방법 구분 코드 -->
, PSTMRK_YMD <!-- 소인 일자 -->
, ACNTG_YMD <!-- 회계 일자 -->
, VRACTNO <!-- 가상계좌번호 -->
, EPAYNO <!-- 전자납부번호 -->
, RCVMT_SE_CD <!-- 수납 구분 코드 -->
, NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
, VRACTNO <!-- 가상계좌번호 -->
, RCVMT_RTRCN_YN <!-- 수납 취소 여부 -->
, RCVMT_RTRCN_DT <!-- 수납 취소 일시 -->
, RCVMT_RTRCN_RSN <!-- 수납 취소 사유 -->
@ -380,86 +399,79 @@
, MDFR <!-- 수정자 -->
)
VALUES (
#{rcvmt.rcvmtId} <!-- 수납 ID -->
, #{rcvmt.levyId} <!-- 부과 ID -->
, #{rcvmt.rcvmtInptSeCd} <!-- 수납 입력 구분 코드 -->
, #{rcvmt.deptCd} <!-- 부서 코드 -->
, #{rcvmt.spclBizCd} <!-- 특별회계 사업 코드 -->
, #{rcvmt.fyr} <!-- 회계 연도 -->
, #{rcvmt.acntgSeCd} <!-- 회계 구분 코드 -->
, #{rcvmt.txitmCd} <!-- 세목 코드 -->
, #{rcvmt.levyNo} <!-- 부과 번호 -->
, #{rcvmt.inspySn} <!-- 분납 일련번호 -->
, #{rcvmt.lastPcptax} <!-- 최종 본세 -->
, #{rcvmt.lastAdamt} <!-- 최종 가산금 -->
, #{rcvmt.rcvmtSn} <!-- 수납 일련번호 -->
, #{rcvmt.rcvmtYmd} <!-- 수납 일자 -->
, #{rcvmt.rcvmtAmt} <!-- 수납 금액 -->
, #{rcvmt.rcvmtPcptax} <!-- 수납 본세 -->
, #{rcvmt.rcvmtAdamt} <!-- 수납 가산금 -->
, #{rcvmt.rcvmtInt} <!-- 수납 이자 -->
, #{rcvmt.rcvmtBankNm} <!-- 수납 은행 명 -->
, #{rcvmt.payMthdSeCd} <!-- 납부 방법 구분 코드 -->
, #{rcvmt.pstmrkYmd} <!-- 소인 일자 -->
, #{rcvmt.acntgYmd} <!-- 회계 일자 -->
, #{rcvmt.vractno} <!-- 가상계좌번호 -->
, #{rcvmt.epayno} <!-- 전자납부번호 -->
, #{rcvmt.rcvmtSeCd} <!-- 수납 구분 코드 -->
, #{rcvmt.nxrpLevyKey} <!-- 세외수입 부과 키 -->
, #{rcvmt.rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
, #{rcvmt.rcvmtRtrcnDt} <!-- 수납 취소 일시 -->
, #{rcvmt.rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
, #{rcvmt.rcvmtSttsCd} <!-- 수납 상태 코드 -->
#{rcvmtId} <!-- 수납 ID -->
, #{sggCd} <!-- 시군구 코드 -->
, #{taskSeCd} <!-- 업무 구분 코드 -->
, #{levyId} <!-- 부과 ID -->
, #{rcvmtInptSeCd} <!-- 수납 입력 구분 코드 -->
, #{deptCd} <!-- 부서 코드 -->
, #{spclBizCd} <!-- 특별회계 사업 코드 -->
, #{fyr} <!-- 회계 연도 -->
, #{acntgSeCd} <!-- 회계 구분 코드 -->
, #{txitmCd} <!-- 세목 코드 -->
, #{levyNo} <!-- 부과 번호 -->
, #{inspySn} <!-- 분납 일련번호 -->
, #{lastPcptax} <!-- 최종 본세 -->
, #{lastAdamt} <!-- 최종 가산금 -->
, #{rcvmtSn} <!-- 수납 일련번호 -->
, #{rcvmtSeCd} <!-- 수납 구분 코드 -->
, #{rcvmtYmd} <!-- 수납 일자 -->
, #{acntgYmd} <!-- 회계 일자 -->
, #{tsfYmd} <!-- 이체 일자 -->
, #{rcvmtAmt} <!-- 수납 금액 -->
, #{rcvmtPcptax} <!-- 수납 본세 -->
, #{rcvmtAdamt} <!-- 수납 가산금 -->
, #{rcvmtInt} <!-- 수납 이자 -->
, #{rcvmtBankNm} <!-- 수납 은행 명 -->
, #{payMthdSeCd} <!-- 납부 방법 구분 코드 -->
, #{epayno} <!-- 전자납부번호 -->
, #{vractno} <!-- 가상계좌번호 -->
, #{rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
, #{rcvmtRtrcnDt} <!-- 수납 취소 일시 -->
, #{rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
, #{rcvmtSttsCd} <!-- 수납 상태 코드 -->
, 'N' <!-- 삭제 여부 -->
, #{rcvmt.createdAt} <!-- 등록 일시 -->
, #{rcvmt.createdBy} <!-- 등록자 -->
, #{rcvmt.lastModified} <!-- 수정 일시 -->
, #{rcvmt.modifiedBy} <!-- 수정자 -->
, #{createdAt} <!-- 등록 일시 -->
, #{createdBy} <!-- 등록자 -->
, #{lastModified} <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
)
</insert>
<update id="updateRcvmt" parameterType="map">/* 수납 대장 수정(rcvmtMapper.updateRcvmt) */
<update id="updateRcvmt" parameterType="cokr.xit.fims.rcvm.Rcvmt">/* 수납 대장 수정(rcvmtMapper.updateRcvmt) */
UPDATE TB_RCVMT
SET DEPT_CD = #{rcvmt.deptCd} <!-- 부서 코드 -->
, SPCL_BIZ_CD = #{rcvmt.spclBizCd} <!-- 특별회계 사업 코드 -->
, FYR = #{rcvmt.fyr} <!-- 회계연도 -->
, ACNTG_SE_CD = #{rcvmt.acntgSeCd} <!-- 회계 구분 코드 -->
, TXITM_CD = #{rcvmt.txitmCd} <!-- 세목 코드 -->
, LEVY_NO = #{rcvmt.levyNo} <!-- 부과 번호 -->
, INSPY_SN = #{rcvmt.inspySn} <!-- 분납 일련번호 -->
, LAST_PCPTAX = #{rcvmt.lastPcptax} <!-- 최종 본세 -->
, LAST_ADAMT = #{rcvmt.lastAdamt} <!-- 최종 가산금 -->
, RCVMT_SN = #{rcvmt.rcvmtSn} <!-- 수납 일련번호 -->
, RCVMT_YMD = #{rcvmt.rcvmtYmd} <!-- 수납 일자 -->
, RCVMT_AMT = #{rcvmt.rcvmtAmt} <!-- 수납 금액 -->
, RCVMT_PCPTAX = #{rcvmt.rcvmtPcptax} <!-- 수납 본세 -->
, RCVMT_ADAMT = #{rcvmt.rcvmtAdamt} <!-- 수납 가산금 -->
, RCVMT_INT = #{rcvmt.rcvmtInt} <!-- 수납 이자 -->
, RCVMT_BANK_NM = #{rcvmt.rcvmtBankNm} <!-- 수납 은행 명 -->
, PAY_MTHD_SE_CD = #{rcvmt.payMthdSeCd} <!-- 납부 방법 구분 코드 -->
, PSTMRK_YMD = #{rcvmt.pstmrkYmd} <!-- 소인 일자 -->
, ACNTG_YMD = #{rcvmt.acntgYmd} <!-- 회계 일자 -->
, VRACTNO = #{rcvmt.vractno} <!-- 가상계좌번호 -->
, EPAYNO = #{rcvmt.epayno} <!-- 전자납부번호 -->
, RCVMT_SE_CD = #{rcvmt.rcvmtSeCd} <!-- 수납 구분 코드 -->
, NXRP_LEVY_KEY = #{rcvmt.nxrpLevyKey} <!-- 세외수입 부과 키 -->
, RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
, RCVMT_RTRCN_DT = #{rcvmt.rcvmtRtrcnDt} <!-- 수납 취소 일시 -->
, RCVMT_RTRCN_RSN = #{rcvmt.rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
, RCVMT_STTS_CD = #{rcvmt.rcvmtSttsCd} <!-- 수납 상태 코드 -->
, MDFCN_DT = #{rcvmt.lastModified} <!-- 수정 일시 -->
, MDFR = #{rcvmt.modifiedBy} <!-- 수정자 -->
WHERE RCVMT_ID = #{rcvmt.rcvmtId} <!-- 수납 ID -->
SET LAST_PCPTAX = #{lastPcptax} <!-- 최종 본세 -->
, LAST_ADAMT = #{lastAdamt} <!-- 최종 가산금 -->
, RCVMT_SN = #{rcvmtSn} <!-- 수납 일련번호 -->
, RCVMT_SE_CD = #{rcvmtSeCd} <!-- 수납 구분 코드 -->
, RCVMT_YMD = #{rcvmtYmd} <!-- 수납 일자 -->
, ACNTG_YMD = #{acntgYmd} <!-- 회계 일자 -->
, TSF_YMD = #{tsfYmd} <!-- 이체 일자 -->
, RCVMT_AMT = #{rcvmtAmt} <!-- 수납 금액 -->
, RCVMT_PCPTAX = #{rcvmtPcptax} <!-- 수납 본세 -->
, RCVMT_ADAMT = #{rcvmtAdamt} <!-- 수납 가산금 -->
, RCVMT_INT = #{rcvmtInt} <!-- 수납 이자 -->
, RCVMT_BANK_NM = #{rcvmtBankNm} <!-- 수납 은행 명 -->
, PAY_MTHD_SE_CD = #{payMthdSeCd} <!-- 납부 방법 구분 코드 -->
, EPAYNO = #{epayno} <!-- 전자납부번호 -->
, VRACTNO = #{vractno} <!-- 가상계좌번호 -->
, RCVMT_RTRCN_YN = #{rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
, RCVMT_RTRCN_DT = #{rcvmtRtrcnDt} <!-- 수납 취소 일시 -->
, RCVMT_RTRCN_RSN = #{rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
, RCVMT_STTS_CD = #{rcvmtSttsCd} <!-- 수납 상태 코드 -->
, MDFCN_DT = #{lastModified} <!-- 수정 일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE RCVMT_ID = #{rcvmtId} <!-- 수납 ID -->
AND DEL_YN = 'N' <!-- 삭제 여부 -->
</update>
<update id="deleteRcvmt" parameterType="map">/* 수납 대장 삭제(rcvmtMapper.deleteRcvmt) */
<update id="deleteRcvmt" parameterType="cokr.xit.fims.rcvm.Rcvmt">/* 수납 대장 삭제(rcvmtMapper.deleteRcvmt) */
UPDATE TB_RCVMT
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = #{rcvmt.lastModified} <!-- 삭제 일시 -->
, DLTR = #{rcvmt.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{rcvmt.delRsn} <!-- 삭제 사유 -->
WHERE RCVMT_ID = #{rcvmt.rcvmtId} <!-- 수납 ID -->
, DEL_DT = #{lastModified} <!-- 삭제 일시 -->
, DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE RCVMT_ID = #{rcvmtId} <!-- 수납 ID -->
AND DEL_YN = 'N'
</update>
@ -490,9 +502,6 @@
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, <include refid="utility.today" /> AS RCVMT_YMD <!-- 수납 일자 -->
, <include refid="utility.today" /> AS PSTMRK_YMD <!-- 소인 일자 -->
, <include refid="utility.today" /> AS ACNTG_YMD <!-- 회계 일자 -->
FROM TB_LEVY L
INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
<choose>

@ -636,7 +636,7 @@
if (selected.length < 1) {
dialog.alert({
content: "선택하신 부과제외 정보가 없습니다."
content: "선택하신 " + $P.control.prefixName + " 정보가 없습니다."
, onOK: () => { }
});
return;

@ -1,14 +1,15 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">수납 관리</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">수납 관리</c:set>
<!-- Page Body -->
<div class="card">
<div class="wrapper-list">
<!-- 상단 버튼 -->
<div class="container-page-btn">
@ -36,7 +37,7 @@
<div class="row g-1">
<!-- 업무구분 -->
<div class="col-12">
<span class="form-label fw-bold form-search-title text-end">업무구분</span>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<span class="form-search-linebox">
<c:forEach items="${taskListForSgg}" var="item">
<label>
@ -47,22 +48,22 @@
</c:forEach>
</span>
</div>
<!-- 소인일자 -->
<!-- 회계 일자 -->
<div class="col-6">
<span class="form-label fw-bold form-search-title text-end">소인일자</span>
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schAcntgYmdFrom--${pageName}">회계일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schPstmrkYmdFrom--${pageName}" name="schPstmrkYmdFrom"
<input type="text" class="form-control form-date" id="schAcntgYmdFrom--${pageName}" name="schAcntgYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schPstmrkYmdTo--${pageName}" name="schPstmrkYmdTo"
<input type="text" class="form-control form-date" id="schAcntgYmdTo--${pageName}" name="schAcntgYmdTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 수납 일자 -->
<div class="col-6">
<span class="form-label fw-bold form-search-title text-end">수납일자</span>
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRcvmtYmdFrom--${pageName}">수납일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRcvmtYmdFrom--${pageName}" name="schRcvmtYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
@ -73,36 +74,46 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 단속일자 -->
<!-- 이체 일자 -->
<div class="col-6">
<span class="form-label fw-bold form-search-title text-end">단속일자</span>
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schTsfYmdFrom--${pageName}">이체일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
<input type="text" class="form-control form-date" id="schTsfYmdFrom--${pageName}" name="schTsfYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
<input type="text" class="form-control form-date" id="schTsfYmdTo--${pageName}" name="schTsfYmdTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<!-- 수납 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end" for="schVhrno--${pageName}">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRcvmtSeCd--${pageName}">수납구분</label>
<select class="form-select w-px-120" id="schRcvmtSeCd--${pageName}" name="schRcvmtSeCd">
<option value="">전체</option>
<c:forEach items="${FIM041List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 납부자명 -->
<!-- 납부 방법 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end" for="schRtpyrNm--${pageName}">납부자명</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm"autocomplete="off" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schPayMthdSeCd--${pageName}">납부방법</label>
<select class="form-select w-px-200" id="schPayMthdSeCd--${pageName}" name="schPayMthdSeCd">
<option value="">전체</option>
<c:forEach items="${FIM045List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-320" id="term--${pageName}" name="term" autocomplete="off" />
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
@ -113,12 +124,41 @@
</div>
</div>
</div> <!-- / 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 단속일자 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schCrdnYmdFrom--${pageName}">단속일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schVhrno--${pageName}">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div>
<!-- 납부자번호 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNm--${pageName}">납부자번호</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm" autocomplete="off" />
</div>
<!-- 납부자명 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNo--${pageName}">납부자명</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNo--${pageName}" name="schRtpyrNo" autocomplete="off" />
</div>
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
@ -133,16 +173,14 @@
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">
검색
</button>
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div>
</div>
@ -190,24 +228,24 @@
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('TXITM_CD', this.innerText, 'codeValue', 'FIM075');">세목코드</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('TXITM_CD', this.innerText, 'codeValue', 'FIM075');">세목명</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('LEVY_NO', this.innerText, 'match', 'part');">부과번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('INSPY_SN', this.innerText, 'match', 'part');">분납일련번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LAST_PCPTAX', this.innerText, 'match', 'part');">최종본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LAST_ADAMT', this.innerText, 'match', 'part');">최종가산금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_SN', this.innerText, 'match', 'part');">수납일련번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ACNTG_YMD', this.innerText, 'ymd', '');">회계일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('PSTMRK_YMD', this.innerText, 'ymd', '');">소인일자</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCVMT_SE_CD', this.innerText, 'codeValue', 'FIM041');">수납구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_YMD', this.innerText, 'ymd', '');">수납일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ACNTG_YMD', this.innerText, 'ymd', '');">회계일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('TSF_YMD', this.innerText, 'ymd', '');">이체일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_AMT', this.innerText, 'match', 'part');">수납금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_PCPTAX', this.innerText, 'match', 'part');">수납본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_ADAMT', this.innerText, 'match', 'part');">수납가산금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_INT', this.innerText, 'match', 'part');">수납이자</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RCVMT_BANK_NM', this.innerText, 'match', 'part');">수납은행</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('PAY_MTHD_SE_CD', this.innerText, 'codeValue', 'FIM045');">납부방법</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCVMT_SE_CD', this.innerText, 'codeValue', 'FIM041');">수납구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RCVMT_STTS_CD', this.innerText, 'codeValue', 'FIM020');">수납상태</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_YMD', this.innerText, 'ymd', '');">부과일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FRST_DUDT_YMD', this.innerText, 'ymd', '');">최초납기일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('DUDT_YMD', this.innerText, 'ymd', '');">납기일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_PCPTAX', this.innerText, 'match', 'part');">부과본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_ADAMT', this.innerText, 'match', 'part');">부과가산금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('INSPY_INT', this.innerText, 'match', 'part');">분납이자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SZR_YMD', this.innerText, 'ymd', '');">압류일자</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('SZR_THING', this.innerText, 'match', 'part');">압류물건</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RPM_SZR_VHRNO', this.innerText, 'match', 'part');">대체압류차량</th>
@ -216,7 +254,7 @@
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NO', this.innerText, 'ymd', '');">납부자번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
@ -232,30 +270,30 @@
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{RCVMT_ID}" onchange="pageObject['${pageName}'].control.select('{RCVMT_ID}', this.checked);"></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_INPT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_RTRCN_NM}</td>
<td class="cmn text-center text-red" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_RTRCN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{FYR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ACNTG_SE_CD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TXITM_CD}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{TXITM_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{INSPY_SN}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{LAST_PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{LAST_ADAMT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_SN}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ACNTG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PSTMRK_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_AMT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ACNTG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TSF_YMD}</td>
<td class="cmn text-end fw-bold text-blue" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_ADAMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_INT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_BANK_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{PAY_MTHD_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_STTS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{FRST_DUDT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DUDT_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_ADAMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{INSPY_INT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SZR_YMD}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{SZR_THING}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RPM_SZR_VHRNO}</td>
@ -317,10 +355,8 @@
**************************************************************************/
$(document).ready(function() {
// pageObject
var $P = pageObject["${pageName}"];
let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/rcvm/rcvm01";
// FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}");
@ -330,15 +366,17 @@
$P.control = new DatasetControl({
prefix: "rcvmt"
, prefixName: "수납"
, infoSize : "lg"
, keymapper: info => info ? info.RCVMT_ID : ""
, dataGetter : obj => obj.rcvmtList
, dataGetter: obj => obj.${infoPrefix}List
, appendData: true
, infoSize: "lg"
, formats: {
RCVMT_YMD: dateFormat
, ACNTG_YMD: dateFormat
, PSTMRK_YMD: dateFormat
, RCVMT_AMT: numberFormat
, LAST_PCPTAX: numberFormat
, LAST_ADAMT: numberFormat
, RCVMT_PCPTAX: numberFormat
, RCVMT_ADAMT: numberFormat
, RCVMT_INT: numberFormat
@ -346,8 +384,6 @@
, FRST_DUDT_YMD: dateFormat
, DUDT_YMD: dateFormat
, FFNLG_AMT: numberFormat
, LEVY_PCPTAX : numberFormat
, LEVY_ADAMT : numberFormat
, SZR_YMD: dateFormat
, CRDN_YMD_TM: datetimeFormat
, REG_DT: datetimeFormat
@ -357,14 +393,14 @@
// $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null;
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
$P.control.onDatasetChange = obj => {
$P.control.onDatasetChange = (obj) => {
$P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({
@ -373,14 +409,14 @@
, start: obj.${infoPrefix}Start
, totalSize: obj.${infoPrefix}Total
, fetchSize: obj.${infoPrefix}Fetch
, func : "$P.control.load({index})"
, func: "pageObject['${pageName}'].control.load({index})"
});
$P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
};
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.control.onCurrentChange = (item) => {
if (!item) return;
let key = item.data.RCVMT_ID;
@ -395,13 +431,47 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
// 삭제 버튼
// $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제
} else if (keys.length == ${infoPrefix}List.length) {
$("th input[type='checkbox']").prop("checked", true); // 체크 설정
} else {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제
}
};
// 삭제 callback
$P.control.onRemove = (resp) => {
let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, onOK: () => { }
});
if (resp.saved) { $P.fnRefreshList(); } // 자료 재조회
}
// 삭제
$P.control.remove = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/010/remove.do")
, data: params || {}
, success: resp => $P.control.onRemove(resp)
});
}
/**************************************************************************
* DataTables 이벤트
**************************************************************************/
@ -422,7 +492,7 @@
//
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
.replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("RCVMT_ID") + "');")
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');");
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
@ -453,44 +523,14 @@
$P.control.load($P.control.query.pageNum + 1);
}
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// callback 사용자 검색
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
$P.getFindUser = () => {
let params = {
openerPageName : "${pageName}"
, callbackFuncName : "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url : wctx.url("/user/user02/010/main.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "userDialog"
, title : "사용자 검색"
, content : resp
, size : "lg"
});
}
});
}
// 개별총정보 dialog
// DataTables에 더블 클릭시 개별총정보 dialog
$P.getTotalInfo = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callControlName: "pageObject['${pageName}'].control"
, sggCd : $("#sggCd--${pageName}").val()
, taskSeCd : $("input[name=taskSeCd]:checked").val()
, sggCd: $P.control.dataset.getValue("SGG_CD")
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD")
, crdnId: crdnId
}
@ -508,14 +548,37 @@
});
}
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 검색 자료 재조회
$P.refreshList = () => {
$P.fnRefreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1);
}
// 사용자검색 callback
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 삭제사유 callback
$P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {};
let selected = $P.control.dataset.getKeys("selected");
params[$P.control.prefixed("Ids")] = selected.join(","); // IDs
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params);
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
@ -527,9 +590,7 @@
}
// 초기 기본 설정
$P.initForm();
// 기본 데이터 설정
$P.initData(taskSeCd);
$P.initForm(taskSeCd);
// 업무 구분별 설정
$P.setTask(taskSeCd);
@ -537,10 +598,32 @@
$P.control.dataset.clear();
}
// 사용자검색 버튼 클릭 이벤트
$P.fnGetFindUser = () => {
let params = {
openerPageName: "${pageName}"
, callbackFuncName: "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url: wctx.url("/user/user02/010/main.do")
, data: params || {}
, success: resp => {
dialog.open({
id: "userDialog"
, title: "사용자 검색"
, content: resp
, size: "lg"
, init: () => { setDialogZindex(); }
});
}
});
}
// 검색 버튼 이벤트
$P.fnSearchList = () => {
// 검색조건
$P.control.query = $P.formFields.get();
$P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부
@ -554,7 +637,6 @@
content : "검색된 자료가 없습니다."
, onOK : () => { }
});
return;
}
@ -566,9 +648,39 @@
$P.control.download();
}
// 사용자 조회 버튼 이벤트
$P.fnFindUser = () => {
$P.getFindUser();
// 부과제외 삭제 버튼 클릭 이벤트
$P.fnRemove = (title) => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) {
dialog.alert({
content: "선택하신 " + $P.control.prefixName + " 정보가 없습니다."
, onOK: () => { }
});
return;
}
// 삭제 메세지 확인
dialog.alert({
content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: async() => {
// 삭제 사유 입력
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
let template = await resp.text();
dialog.open({
id: "inputDelRsnDialog"
, title: title
, size: "lg"
, content: template
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.callbackRsn({ reason : $("#reason").val() });
}
});
}
});
}
/**************************************************************************
@ -610,7 +722,7 @@
}
// 초기 화면 설정
$P.initForm = () => {
$P.initForm = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
@ -627,54 +739,33 @@
$(this).prop("disabled", "true");
});
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schPstmrkYmdFrom--${pageName}").datepicker("setDate", new Date());
$("#schPstmrkYmdTo--${pageName}").datepicker("setDate", new Date());
// 동적 검색
$("#byOutput--${pageName}").val("동적 검색");
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// 기본 데이터 설정
$P.initData = (taskSeCd) => {
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
$("#schPstmrkYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schPstmrkYmdTo--${pageName}").datepicker("setDate", new Date());
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schAcntgYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 회계 일자 시작
$("#schAcntgYmdTo--${pageName}").datepicker("setDate", new Date()); // 회계 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
}
// 업무 구분별 설정
$P.setTask = (taskSeCd) => {
let clsForTask = taskSeCd.toLowerCase();
// 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 검색
// 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask);
renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn");
let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = "";
cols.each(function() {
colsOuterHTML += this.outerHTML;
});
$("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML);
// URL 설정
$P.setURL(taskSeCd);
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
}
/**************************************************************************

@ -12,11 +12,11 @@
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="levyId--${pageName}" name="levyId" data-map="LEVY_ID" />
<input type="hidden" id="rcvmtId--${pageName}" name="rcvmtId" data-map="RCVMT_ID" />
<input type="hidden" id="levyId--${pageName}" name="levyId" data-map="LEVY_ID" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<div class="row g-1">
<!-- 단속일시 -->
@ -34,19 +34,22 @@
<label for="crdnSttsNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속상태</label>
<input type="text" class="form-control w-50" id="crdnSttsNm--${pageName}" name="crdnSttsNm" data-map="CRDN_STTS_NM" />
</div>
<!-- 부서 코드 -->
<div class="col-md-4">
<label for="deptCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부서코드</label>
<input type="text" class="form-control w-30" id="deptCd--${pageName}" name="deptCd" data-map="DEPT_CD" />
<input type="text" class="form-control w-20" id="spclBizCd--${pageName}" name="spclBizCd" data-map="SPCL_BIZ_CD" />
</div>
<!-- 회계 구분 코드 -->
<div class="col-md-4">
<label for="acntgSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계구분</label>
<label for="acntgSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계구분코드</label>
<input type="text" class="form-control w-15" id="acntgSeCd--${pageName}" name="acntgSeCd" data-map="ACNTG_SE_CD" />
</div>
<!-- 세목 코드 -->
<div class="col-md-4">
<label for="txitmCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">세목</label>
<label for="txitmCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">세목코드</label>
<input type="text" class="form-control w-30" id="txitmCd--${pageName}" name="txitmCd" data-map="TXITM_CD" />
</div>
<!-- -->
<div class="col-md-4">
</div>
<!-- 회계연도 -->
<div class="col-md-4">
<label for="fyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계연도</label>
@ -59,8 +62,8 @@
</div>
<!-- 분납 번호 -->
<div class="col-md-4">
<label for="inspyNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">분납번호</label>
<input type="text" class="form-control w-15" id="inspyNo--${pageName}" name="inspyNo" data-map="INSPY_NO" />
<label for="inspySn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">분납일련번호</label>
<input type="text" class="form-control w-15" id="inspySn--${pageName}" name="inspySn" data-map="INSPY_SN" />
</div>
<!-- 부과 본세 -->
<div class="col-md-4">
@ -87,13 +90,6 @@
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 소인 일자 -->
<div class="col-md-4">
<label for="pstmrkYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">소인일자</label>
<input type="text" class="form-control form-date" id="pstmrkYmd--${pageName}" name="pstmrkYmd" data-map="PSTMRK_YMD"
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 회계 일자 -->
<div class="col-md-4">
<label for="acntgYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계일자</label>
@ -101,6 +97,13 @@
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 이체 일자 -->
<div class="col-md-4">
<label for="tsfYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">이체일자</label>
<input type="text" class="form-control form-date" id="tsfYmd--${pageName}" name="tsfYmd" data-map="TSF_YMD"
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 수납 구분 코드 -->
<div class="col-md-4">
<label for="rcvmtSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">수납구분</label>
@ -116,8 +119,11 @@
<input type="text" class="form-control w-35 text-end" id="rcvmtAmt--${pageName}" name="rcvmtAmt" data-map="RCVMT_AMT"
data-fmt-type="number" autocomplete="off" required />
</div>
<!-- -->
<!-- 수납 이자 -->
<div class="col-md-4">
<label for="rcvmtInt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">수납이자</label>
<input type="text" class="form-control w-35 text-end" id="rcvmtInt--${pageName}" name="rcvmtInt" data-map="RCVMT_INT"
data-fmt-type="number" autocomplete="off" required />
</div>
<!-- 수납 은행 -->
<div class="col-md-4">
@ -157,21 +163,28 @@
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/rcvm/rcvm01";
pageObject["${pageName}"] = {};
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
let $P = pageObject["${pageName}"];
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
var ${pageName}CallPurpose = "${callPurpose}";
$P.callPurpose = "${callPurpose}";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
$P.control = new DatasetControl({
prefix: "rcvmt"
, prefixName: "수납"
, keymapper: info => info ? info.RCVMT_ID : ""
, dataGetter : obj => obj.rcvmtInfo
, dataGetter: obj => obj.${infoPrefix}Info
, formats: {
CRDN_YMD_TM: datetimeFormat
, LEVY_PCPTAX: numberFormat
@ -183,81 +196,94 @@
}
});
${pageName}Control.onCurrentChange = item => {
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = (item) => {
if (!item) return;
// Dataset 셋팅
${pageName}Fields.set(${pageName}Control,item);
$P.formFields.set($P.control, item);
// 납부 방법 구분 코드(PAY_MTHD_SE_CD)
if (typeof item.data.PAY_MTHD_SE_CD == "undefined" || item.data.PAY_MTHD_SE_CD == null || item.data.PAY_MTHD_SE_CD == "") {
$("#payMthdSeCd--${pageName}").val("81");
}
// 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD);
// 업무구분에 따른 url 변경
${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/create.do");
${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/update.do");
// 호출용도가 등록 이라면..
if ($P.callPurpose == "create") {
$("#rcvmtYmd--${pageName}").datepicker("setDate", new Date()); // 수납 일자
$("#acntgYmd--${pageName}").datepicker("setDate", new Date()); // 회계 일자
$("#tsfYmd--${pageName}").datepicker("setDate", new Date()); // 이체 일자
$("#rcvmtInt--${pageName}").val("0"); // 수납 이자
}
}
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 저장 callback
${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html();
$P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog");
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
}
}
// 저장
${pageName}Control.save = (info) => {
$P.control.save = (info) => {
if (!info) return;
info.rcvmtInptSeCd = "03"; // 수납 입력 구분 코드(FIM044) : 03 수기
let create = ($P.callPurpose == "create");
let create = (${pageName}CallPurpose == "create");
if (create) {
info.rcvmtInptSeCd = "03"; // 수납 입력 구분 코드(FIM044) : 03 수기
}
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
, data : info
, success : resp => ${pageName}Control.onSave(resp)
url: !create ? $P.control.urls.update : $P.control.urls.create
, data: info || {}
, success: resp => $P.control.onSave(resp)
});
}
/**************************************************************************
* 사용자 함수
**************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 저장 버튼 클릭 이벤트
fnSave${pageName} = () => {
$P.fnSave = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 수납금액 확인
let rcvmtAmt = $("#rcvmtAmt--${pageName}").val();
if (rcvmtAmt == "" || Number(rcvmtAmt) < 10) {
dialog.alert({
content: "수납금액은 10원 이상으로 입력되어야 합니다."
, onOK: () => { }
});
return;
}
dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?"
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
${pageName}Control.save(${pageName}Fields.get());
$P.control.save($P.formFields.get()); // formFields
}
});
}
@ -266,7 +292,7 @@
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
setEvent${pageName} = () => {
$P.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
@ -279,22 +305,23 @@
}
});
});
// 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
}
// 화면 초기화
initForm${pageName} = () => {
// 화면 초기화
$("#frmEdit--${pageName}")[0].reset();
// 초기 화면 설정
$P.initForm = () => {
// Dialog 마우스로 드래그 할 수 있도록 설정.
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog--${openerPageName}"));
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#rcvmtYmd--${pageName}").datepicker("setDate", new Date()); // 수납 일자
$("#pstmrkYmd--${pageName}").datepicker("setDate", new Date()); // 소인 일자
$("#acntgYmd--${pageName}").datepicker("setDate", new Date()); // 회계 일자
}
// 기본 데이터 설정
setFormData${pageName} = () => {
// 화면 활성화 설정
$("#crdnYmdTm--${pageName}").prop("readonly", true); // 단속 일시
$("#vhrno--${pageName}").prop("readonly", true); // 차량번호
$("#crdnSttsNm--${pageName}").prop("readonly", true); // 단속 상태
@ -302,12 +329,13 @@
$("#txitmCd--${pageName}").prop("readonly", true); // 세목 코드
$("#fyr--${pageName}").prop("readonly", true); // 회계연도
$("#levyNo--${pageName}").prop("readonly", true); // 부과 번호
$("#inspyNo--${pageName}").prop("readonly", true); // 분납 순번
$("#inspySn--${pageName}").prop("readonly", true); // 분납 순번
$("#levyPcptax--${pageName}").prop("readonly", true); // 부과 본세
$("#levyAdamt--${pageName}").prop("readonly", true); // 부과 가산금
$("#inspyInt--${pageName}").prop("readonly", true); // 단속 상태
$("#inspyInt--${pageName}").prop("readonly", true); // 분납이자
if (${pageName}CallPurpose == "view") {
// View로 호출
if ($P.callPurpose == "view") {
// input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled
@ -315,30 +343,20 @@
$("#pstmrkYmd--${pageName}").prop("disabled", true); // 소인 일자 달력 버튼
$("#acntgYmd--${pageName}").prop("disabled", true); // 회계 일자 달력 버튼
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
} else if (${pageName}CallPurpose == "create") {
$("#rcvmtYmd--${pageName}").datepicker("setDate", new Date()); // 수납 일자
$("#pstmrkYmd--${pageName}").datepicker("setDate", new Date()); // 소인 일자
$("#acntgYmd--${pageName}").datepicker("setDate", new Date()); // 회계 일자
} else if (${pageName}CallPurpose == "update") {
//
}
}
/**************************************************************************
* script 진입
* 최초 실행 함수
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정
setEvent${pageName}();
// 초기 기본 설정
initForm${pageName}();
// 1. 이벤트 설정
$P.setEvent();
// Dataset 설정
${pageName}Control.setData([${rcvmtInfo}]);
// 2. 초기 화면 설정
$P.initForm();
// 기본 데이터 설정
setFormData${pageName}();
// 3. Dataset 설정
$P.control.setData([${rcvmtInfo}]);
});
</script>

@ -445,9 +445,7 @@
});
// 자료 재조회
if (resp.saved) {
$P.fnRefreshDataInfo();
}
if (resp.saved) { $P.fnRefreshDataInfo(); }
}
// 부과제외 삭제
@ -502,7 +500,6 @@
// 자료 재조회
$P.fnRefreshDataInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -529,12 +526,9 @@
$P.payerHstryControl.dataset.clear(); // 납부자 이력 Dataset 초기화
// 감경 정보
if (resp.rduct)
$P.rductControl.setData([resp.rduct]);
if (resp.rduct) { $P.rductControl.setData([resp.rduct]); }
// 부과제외 정보
if (resp.levyExcl)
$P.levyExclControl.setData([resp.levyExcl]);
if (resp.levyExcl) { $P.levyExclControl.setData([resp.levyExcl]); }
// Dataset 셋팅
$P.crdnSttsHstryControl.setData(resp.crdnSttsHstry); // 단속상태 이력
@ -740,7 +734,7 @@
$P.fnCreateLevyExcl = (title) => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 단속 상태 코드

@ -33,29 +33,30 @@
<table class="dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTr--${pageName}">
<th>수납일련번호</th>
<th>수납취소</th>
<th>수납입력구분</th>
<th>수납일련번호</th>
<th>수납구분</th>
<th>부서코드</th>
<th>특별회계사업코드</th>
<th>회계연도</th>
<th>회계구분</th>
<th>세목코드</th>
<th>부과번호</th>
<th>분납번호</th>
<th>수납일자</th>
<th>회계일자</th>
<th>이체일자</th>
<th>수납금액</th>
<th>수납본세</th>
<th>수납가산금</th>
<th>수납이자</th>
<th>수납은행명</th>
<th>납부방법구분</th>
<th>소인일자</th>
<th>회계일자</th>
<th>가상계좌번호</th>
<th>전자납부번호</th>
<th>수납구분</th>
<th>가상계좌번호</th>
<th>수납취소일시</th>
<th>수납취소사유</th>
<th>수납상태</th>
<th>수납입력구분</th>
<th>등록일시</th>
<th>등록사용자</th>
</tr>
@ -64,36 +65,37 @@
</tbody>
<template id="rcvmtRow--${pageName}">
<tr data-key="{RCVMT_ID}">
<td class="text-center" onclick="{onclick}">{RCVMT_SN}</td>
<td class="text-center text-red" onclick="{onclick}">{RCVMT_RTRCN_NM}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_INPT_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_SN}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{DEPT_CD}</td>
<td class="text-center" onclick="{onclick}">{SPCL_BIZ_CD}</td>
<td class="text-center" onclick="{onclick}">{FYR}</td>
<td class="text-center" onclick="{onclick}">{ACNTG_SE_CD}</td>
<td class="text-center" onclick="{onclick}">{TXITM_CD}</td>
<td class="text-center" onclick="{onclick}">{LEVY_NO}</td>
<td class="text-center" onclick="{onclick}">{INSPY_NO}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_YMD}</td>
<td class="text-center" onclick="{onclick}">{ACNTG_YMD}</td>
<td class="text-center" onclick="{onclick}">{TSF_YMD}</td>
<td class="text-end" onclick="{onclick}">{RCVMT_AMT}</td>
<td class="text-end" onclick="{onclick}">{RCVMT_PCPTAX}</td>
<td class="text-end" onclick="{onclick}">{RCVMT_ADAMT}</td>
<td class="text-end" onclick="{onclick}">{RCVMT_INT}</td>
<td class="text-start" onclick="{onclick}">{RCVMT_BANK_NM}</td>
<td class="text-start" onclick="{onclick}">{PAY_MTHD_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{PSTMRK_YMD}</td>
<td class="text-center" onclick="{onclick}">{ACNTG_YMD}</td>
<td class="text-center" onclick="{onclick}">{VRACTNO}</td>
<td class="text-center" onclick="{onclick}">{EPAYNO}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{VRACTNO}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_RTRCN_DT}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_RTRCN_RSN}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_INPT_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
</tr>
</template>
<template id="rcvmtNotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="25" class="dataTables_empty text-center">수납정보 이력 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="26" class="dataTables_empty text-center">수납정보 이력 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -234,7 +236,7 @@
**************************************************************************/
$(document).ready(function() {
// pageObject
var $P = pageObject["${pageName}"];
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
@ -274,11 +276,11 @@
$P.control.onCurrentChange = (item) => {
if (!item) return;
$P.formFields.set($P.control, item); // 화면에 자료 셋팅
let key = item.data.RCVMT_ID;
$("#tbody--${pageName}").setCurrentRow(key); // datatable에 자료 셋팅
$P.formFields.set($P.control,item); // 화면에 자료 셋팅
};
// 수기 수납 등록
@ -286,15 +288,15 @@
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/020/info.do")
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/020/info.do") + "?openerPageName=${pageName}"
, data: params || {}
, success: resp => {
dialog.open({
id : $P.control.prefixed("Dialog")
id: $P.control.prefixed("Dialog--${pageName}")
, title: params.title
, content: resp
, size: "lg"
, onClose : () => { $P.refreshDataInfo(); }
, onClose: () => { $P.fnRefreshDataInfo(); }
});
}
});
@ -302,7 +304,7 @@
// 수기 수납 취소 callback
$P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${pageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
@ -311,9 +313,8 @@
, onOK: () => { }
});
if (resp.saved) {
$P.refreshDataInfo();
}
// 자료 재조회
if (resp.saved) { $P.fnRefreshDataInfo(); }
}
// 수기 수납 취소
@ -322,7 +323,7 @@
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/010/updateRcvmtRtrcn.do")
, data : params
, data: params || {}
, success: resp => $P.control.onSave(resp)
});
}
@ -332,14 +333,14 @@
let btnTitle = $("#btnRemoveRcvmt--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, onOK: () => { }
});
if (resp.saved) {
$P.refreshDataInfo();
}
// 자료 재조회
if (resp.saved) { $P.fnRefreshDataInfo(); }
}
// 수기 수납 삭제
@ -348,7 +349,7 @@
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/010/remove.do")
, data : params
, data: params || {}
, success: resp => $P.control.onRemove(resp)
});
}
@ -376,7 +377,7 @@
* 사용자 함수(function)
**************************************************************************/
// 자료 재조회
$P.refreshDataInfo = () => {
$P.fnRefreshDataInfo = () => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -455,6 +456,7 @@
, crdnId: crdnId
, sggCd: $("#sggCd--${pageNameMain}").val()
, taskSeCd: $("#taskSeCd--${pageNameMain}").val()
, delYn: "N"
};
$P.control.getInfo(params);
@ -473,18 +475,16 @@
+ "<br>" + "계속 진행하시겠습니까?"
, onOK: async() => {
// 사유 입력
var resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
var template = await resp.text();
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
let template = await resp.text();
dialog.open({
id : "inputDelRsnDialog",
title: title,
size : "lg",
content: template,
init : () => {
setDialogZindex();
},
onOK : () => {
id: "inputDelRsnDialog"
, title: title
, size: "lg"
, content: template
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() });
}
});
@ -517,18 +517,16 @@
content: "선택한 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: async() => {
// 사유 입력
var resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
var template = await resp.text();
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
let template = await resp.text();
dialog.open({
id : "inputDelRsnDialog",
title: title,
size : "lg",
content: template,
init : () => {
setDialogZindex();
},
onOK : () => {
id: "inputDelRsnDialog"
, title: title
, size: "lg"
, content: template
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() });
}
});

Loading…
Cancel
Save