수납 등록 수정.

main
jjh 12 months ago
parent 6ba2a3adbe
commit 9a07507d6f

@ -103,7 +103,7 @@ public interface LevyMapper extends AbstractMapper {
return levy != null && updateLevy(params().set("levy", levy)) == 1;
}
/** , , .
/** , , .
* @param levy
* @return
* <ul><li> true</li>
@ -116,6 +116,19 @@ public interface LevyMapper extends AbstractMapper {
return levy != null && updateRductLevyYmd(params().set("levy", levy)) == 1;
}
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
int updateRcvmtAmt(Map<String, Object> params);
default boolean updateRcvmtAmt(Levy levy) {
return levy != null && updateRcvmtAmt(params().set("levy", levy)) == 1;
}
/** .
* @param params
* <ul><li>"levy" - </li>

@ -247,11 +247,10 @@ public class LevyBean extends AbstractComponent {
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
retSuccess = levyMapper.updateRductLevyYmd(levy);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("감경부과 대장 등록에 실패하였습니다.");
throw new RuntimeException("부과 대장에 사전 감경부과 일자 정보 수정에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
@ -259,9 +258,28 @@ public class LevyBean extends AbstractComponent {
return retMessage;
}
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String updateRcvmtAmt(Levy levy) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
retSuccess = levyMapper.updateRcvmtAmt(levy);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과 대장에 수납금액 정보 수정에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param levy

@ -37,11 +37,6 @@ public class Rcvmt extends AbstractEntity {
*/
private String rcvmtInptSeCd;
/**
*
*/
private String spclAcntgBizCd;
/**
*
*/
@ -67,6 +62,16 @@ public class Rcvmt extends AbstractEntity {
*/
private String inspySn;
/**
*
*/
private Integer lastPcptax;
/**
*
*/
private Integer lastAdamt;
/**
*
*/

@ -52,6 +52,19 @@ public interface RcvmtMapper extends AbstractMapper {
*/
DataObject selectLevyInfo(RcvmtQuery req);
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
int updateRcvmtRtrcn(Map<String, Object> params);
default boolean updateRcvmtRtrcn(Rcvmt rcvmt) {
return rcvmt != null && updateRcvmtRtrcn(params().set("rcvmt", rcvmt)) == 1;
}
/** .
* @param params
* <ul><li>"rcvmt" - </li>

@ -8,6 +8,10 @@ import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.rcvm.Rcvmt;
import cokr.xit.fims.rcvm.RcvmtQuery;
import cokr.xit.fims.rcvm.dao.RcvmtMapper;
@ -29,6 +33,14 @@ public class RcvmtBean extends AbstractComponent {
@Resource(name = "rcvmtMapper")
private RcvmtMapper rcvmtMapper;
/** 부과 대장 정보 DAO */
@Resource(name = "levyMapper")
private LevyMapper levyMapper;
/** 단속 상태 이력 정보 Bean */
@Resource(name = "crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean;
/** .
* @param req
* @return
@ -81,31 +93,29 @@ public class RcvmtBean extends AbstractComponent {
String retMessage = "[F] "; // 처리 결과 메시지
// 부과 ID로 단속, 부과 정보 조회
DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId())
.setDelYn("N"));
DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId()).setDelYn("N"));
String rcvmtSeCd = ""; // 수납 구분 코드(FIM041)
String rcvmtSeCd = ""; // 수납 구분 코드(FIM041)
rcvmt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue()); // 최종 본세
rcvmt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue()); // 최종 가산금
// 입력된 수납 금액으로 수납 본세, 수납 가산금 나누기
int pcptax = levyInfo.number("PCPTAX").intValue(); // 본세
int adamt = levyInfo.number("ADAMT").intValue(); // 가산금
if (pcptax + adamt == rcvmt.getRcvmtAmt()) {
rcvmt.setRcvmtPcptax(pcptax); // 수납 본세
rcvmt.setRcvmtAdamt(adamt); // 수납 가산금
rcvmtSeCd = "01"; // 수납 구분 코드 = 완납
} else if (pcptax + adamt == 0) { // 납부할 금액이 없다면..
rcvmt.setRcvmtPcptax(0); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
rcvmtSeCd = "02"; // 수납 구분 코드 = 이중수납
} else if (pcptax + adamt < rcvmt.getRcvmtAmt()) {
rcvmt.setRcvmtPcptax(pcptax); // 수납 본세
rcvmt.setRcvmtAdamt(adamt); // 수납 가산금
rcvmtSeCd = "04"; // 수납 구분 코드 = 과납
} else if (pcptax + adamt > rcvmt.getRcvmtAmt()) {
if (rcvmt.getRcvmtAmt() > pcptax) {
rcvmt.setRcvmtPcptax(pcptax); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getRcvmtAmt() - pcptax); // 수납 가산금
if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() == 0) { // 최종 금액이 0원 이라면..
rcvmt.setRcvmtPcptax(0); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
rcvmtSeCd = "02"; // 수납 구분 코드 = 이중수납
} else if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() == rcvmt.getRcvmtAmt()) { // 최종 금액과 수납 금액이 일치한다면..
rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getLastAdamt()); // 수납 가산금
rcvmtSeCd = "01"; // 수납 구분 코드 = 완납
} else if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() < rcvmt.getRcvmtAmt()) { // 최종 금액보다 수납 금액이 많다면..
rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getLastAdamt()); // 수납 가산금
rcvmtSeCd = "04"; // 수납 구분 코드 = 과납
} else if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() > rcvmt.getRcvmtAmt()) { // 최종 금액보다 수납 금액이 적다면..
if (rcvmt.getRcvmtAmt() > rcvmt.getLastPcptax()) {
rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getRcvmtAmt() - rcvmt.getLastPcptax()); // 수납 가산금
} else {
rcvmt.setRcvmtPcptax(rcvmt.getRcvmtAmt()); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
@ -120,55 +130,111 @@ public class RcvmtBean extends AbstractComponent {
rcvmt.setRcvmtSeCd(rcvmtSeCd);
}
retSuccess = rcvmtMapper.insert(rcvmt);
retSuccess = rcvmtMapper.insert(rcvmt); // 수납 대장 등록
if (!retSuccess) {
throw new RuntimeException("수납 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 부과 테이블 수정
// 부과(TB_LEVY) 대장을 수정한다.
if (!rcvmtSeCd.equals("02")) { // 이중 수납이 아니라면..
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID"));
// 단속 상태 변경
levy.setRcvmtPcptax(rcvmt.getRcvmtPcptax()); // 수납 본세
levy.setRcvmtAdamt(rcvmt.getRcvmtAdamt()); // 수납 가산금
levy.setSumAmt(rcvmt.getLastPcptax() + rcvmt.getLastAdamt() - rcvmt.getRcvmtPcptax() - rcvmt.getRcvmtAdamt()); // 합계 금액
levy.setRcvmtYmd(rcvmt.getRcvmtYmd()); // 수납 일자
levy.setPayMthdSeCd(rcvmt.getPayMthdSeCd()); // 납부 방법 구분 코드
retSuccess = levyMapper.updateRcvmtAmt(levy); // 부과 대장 수정
if (!retSuccess) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 합계 금액이 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")) {
newCrdnSttsCd = "72"; // 부과수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("52")) {
newCrdnSttsCd = "73"; // 독촉수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("53")) {
newCrdnSttsCd = "74"; // 압류예정수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("54")) {
newCrdnSttsCd = "74"; // 압류예정수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("55")) {
newCrdnSttsCd = "75"; // 압류수납
}
crdnSttsHstry.setCrdnId(levyInfo.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setBfrSttsCd(levyInfo.string("CRDN_STTS_CD")); // 단속 상태 코드
crdnSttsHstry.setBfrSttsChgDt(levyInfo.string("CRDN_STTS_CHG_DT")); // 단소 상태 변경 일시
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); // 단속상태코드(FIM010)
crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeRcvmt(Rcvmt rcvmt) {
public String updateRcvmtRtrcn(Rcvmt rcvmt) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 수납 ID로 수납 정보 조회
DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId())
.setDelYn("N"));
if (!rcvmtInfo.string("RCVMT_INPT_SE_CD").equals("03")) {
retMessage = "[F] 수납입력구분이 수기 입력이 아닙니다.";
return retMessage;
}
retSuccess = rcvmtMapper.delete(rcvmt);
retSuccess = rcvmtMapper.updateRcvmtRtrcn(rcvmt);
if (!retSuccess) {
throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("수납 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 부과 테이블 수정
// 부과 대장 수정 ///////////////////////////////////////////////////////////
// 단속 대장 수정 ///////////////////////////////////////////////////////////
// 단속 상태 변경
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeRcvmt(Rcvmt rcvmt) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
retSuccess = rcvmtMapper.delete(rcvmt);
if (!retSuccess) {
throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";

@ -662,14 +662,33 @@
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<update id="updateRductLevyYmd" parameterType="map">/* 감경부과 대장 부과일자, 최초납기일자, 납기일자 수정(levyMapper.updateRductLevyYmd) */
<update id="updateRductLevyYmd" parameterType="map">/* 부과 대장 부과일자, 최초납기일자, 납기일자 수정(levyMapper.updateRductLevyYmd) */
UPDATE TB_LEVY
SET LEVY_YMD = #{levy.levyYmd} /* 부과 일자 */
, FRST_DUDT_YMD = #{levy.frstDudtYmd} /* 최초 납기 일자 */
, DUDT_YMD = #{levy.dudtYmd} /* 납기 일자 */
<if test="levy.ffnlgAmt != null">
, FFNLG_AMT = #{levy.ffnlgAmt} /* 과태료 금액 */
</if>
<if test="levyPcptax != null">
, LEVY_PCPTAX = #{levy.levyPcptax} /* 본세 금액 */
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
</if>
<if test="sumAmt != null">
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
</if>
, MDFCN_DT = #{levy.lastModified} /* 수정 일시 */
, MDFR = #{levy.modifiedBy} /* 수정자 */
WHERE LEVY_ID = #{levy.levyId} /* 부과 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<update id="updateRcvmtAmt" parameterType="map">/* 부과 대장에 수납 금액 정보를 수정(levyMapper.updateRcvmtAmt) */
UPDATE TB_LEVY
SET RCVMT_PCPTAX = #{levy.rcvmtPcptax} /* 수납 본세 */
, RCVMT_ADAMT = #{levy.rcvmtAdamt} /* 수납 가산금 */
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
, RCVMT_YMD = #{levy.rcvmtYmd} /* 수납 일자 */
, PAY_MTHD_SE_CD = #{levy.payMthdSeCd} /* 납부 방법 구분 코드 */
, MDFCN_DT = #{levy.lastModified} /* 수정 일시 */
, MDFR = #{levy.modifiedBy} /* 수정자 */
WHERE LEVY_ID = #{levy.levyId} /* 부과 ID */

@ -13,12 +13,13 @@
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
<result property="rcvmtInptSeCd" column="RCVMT_INPT_SE_CD" /> <!-- 수납 입력 구분 코드 -->
<result property="spclAcntgBizCd" column="SPCL_ACNTG_BIZ_CD" /> <!-- 특별 회계 사업 코드 -->
<result property="fyr" column="FYR" /> <!-- 회계 연도 -->
<result property="acntgSeCd" column="ACNTG_SE_CD" /> <!-- 회계 구분 코드 -->
<result property="txitmCd" column="TXITM_CD" /> <!-- 세목 코드 -->
<result property="levyNo" column="LEVY_NO" /> <!-- 부과 번호 -->
<result property="inspySn" column="INSPY_SN" /> <!-- 분납 일련번호 -->
<result property="lastPcptax" column="LAST_PCPTAX" /> <!-- 최종 본세 -->
<result property="lastAdamt" column="LAST_ADAMT" /> <!-- 최종 가산금 -->
<result property="rcvmtSn" column="RCVMT_SN" /> <!-- 수납 일련번호 -->
<result property="rcvmtYmd" column="RCVMT_YMD" /> <!-- 수납 일자 -->
<result property="rcvmtAmt" column="RCVMT_AMT" /> <!-- 수납 금액 -->
@ -52,12 +53,13 @@
, R.SGG_CD /* 시군구 코드 */
, R.TASK_SE_CD /* 업무 구분 코드 */
, R.RCVMT_INPT_SE_CD /* 수납 입력 구분 코드 */
, R.SPCL_ACNTG_BIZ_CD /* 특별 회계 사업 코드 */
, R.FYR /* 회계연도 */
, R.ACNTG_SE_CD /* 회계 구분 코드 */
, R.TXITM_CD /* 세목 코드 */
, R.LEVY_NO /* 부과 번호 */
, R.INSPY_SN /* 분납 일련번호 */
, R.LAST_PCPTAX /* 최종 본세 */
, R.LAST_ADAMT /* 최종 가산금 */
, R.RCVMT_SN /* 수납 일련번호 */
, R.RCVMT_YMD /* 수납 일자 */
, R.RCVMT_AMT /* 수납 금액 */
@ -264,8 +266,8 @@
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS PCPTAX /* 본세 */
, L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS ADAMT /* 가산금 */
, L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS LAST_PCPTAX /* 최종 본세 */
, L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS LAST_ADAMT /* 가산금 */
, C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
@ -292,6 +294,17 @@
<include refid="utility.orderBy" />
</select>
<update id="updateRcvmtRtrcn" parameterType="map">/* 수납 대장 수납취소 정보 수정(rcvmtMapper.updateRcvmtRtrcn) */
UPDATE TB_RCVMT
SET RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} /* 수납 취소 여부 */
, RCVMT_RTRCN_DT = #{rcvmt.rcvmtRtrcnDt} /* 수납 취소 일시 */
, RCVMT_RTRCN_RSN = #{rcvmt.rcvmtRtrcnRsn} /* 수납 취소 사유 */
, MDFCN_DT = #{rcvmt.lastModified} /* 수정 일시 */
, MDFR = #{rcvmt.modifiedBy} /* 수정자 */
WHERE RCVMT_ID = #{rcvmt.rcvmtId} /* 수납 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</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(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCVMT_ID, 5)) + 1, 1) AS INT), 16, '0'))) AS NEW_ID
@ -306,12 +319,13 @@
, TASK_SE_CD /* 업무 구분 코드 */
, LEVY_ID /* 부과 ID */
, RCVMT_INPT_SE_CD /* 수납 입력 구분 코드 */
, SPCL_ACNTG_BIZ_CD /* 특별 회계 사업 코드 */
, FYR /* 회계연도 */
, ACNTG_SE_CD /* 회계 구분 코드 */
, TXITM_CD /* 세목 코드 */
, LEVY_NO /* 부과 번호 */
, INSPY_SN /* 분납 일련번호 */
, LAST_PCPTAX /* 최종 본세 */
, LAST_ADAMT /* 최종 가산금 */
, RCVMT_SN /* 수납 일련번호 */
, RCVMT_YMD /* 수납 일자 */
, RCVMT_AMT /* 수납 금액 */
@ -348,6 +362,8 @@
, #{rcvmt.txitmCd} /* 세목 코드 */
, #{rcvmt.levyNo} /* 부과 번호 */
, #{rcvmt.inspySn} /* 분납 일련번호 */
, #{rcvmt.lastPcptax} /* 최종 본세 */
, #{rcvmt.lastAdamt} /* 최종 가산금 */
, #{rcvmt.rcvmtSn} /* 수납 일련번호 */
, #{rcvmt.rcvmtYmd} /* 수납 일자 */
, #{rcvmt.rcvmtAmt} /* 수납 금액 */
@ -378,12 +394,13 @@
UPDATE TB_RCVMT
SET LEVY_ID = #{rcvmt.levyId} /* 부과 ID */
, RCVMT_INPT_SE_CD = #{rcvmt.rcvmtInptSeCd} /* 수납 입력 구분 코드 */
, SPCL_ACNTG_BIZ_CD = #{rcvmt.spclAcntgBizCd} /* 특별 회계 사업 코드 */
, 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} /* 수납 금액 */
@ -405,6 +422,7 @@
, MDFCN_DT = #{rcvmt.lastModified} /* 수정 일시 */
, MDFR = #{rcvmt.modifiedBy} /* 수정자 */
WHERE RCVMT_ID = #{rcvmt.rcvmtId} /* 수납 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<update id="deleteRcvmt" parameterType="map">/* 수납 대장 삭제(rcvmtMapper.deleteRcvmt) */

@ -178,7 +178,7 @@
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclInfo--${pageName}" title="부과제외 정보" onclick="fnLevyExclInfo${pageName}();">
부과제외 정보
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclRemove--${pageName}" title="부과제외 삭제" onclick="fnLevyExclRemove${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveLevyExcl--${pageName}" title="부과제외 삭제" onclick="fnRemoveLevyExcl${pageName}();">
부과제외 삭제
</button>
</span>
@ -348,7 +348,7 @@
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btnLevyExclRemove--${pageName}").prop("disabled", keys.length < 1);
$("#btnRemoveLevyExcl--${pageName}").prop("disabled", keys.length < 1);
};
// 개별총정보 dialog
@ -376,36 +376,6 @@
});
}
// 삭제 callback
${pageName}Control.onRemove = (selected, resp) => {
let btnTitle = $("#btnLevyExclRemove--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
if (resp.saved) {
${pageName}Control._load();
}
}
// 삭제
${pageName}Control.remove = (params) => {
let selected = ${pageName}Control.dataset.getKeys("selected");
if (selected.length < 1) return;
if (!params) {
params = {};
params[${pageName}Control.prefixed("IDs")] = selected.join(",");
}
ajax.post({
url : ${pageName}Control.urls.remove
, data : params
, success : resp => ${pageName}Control.onRemove(selected, resp)
});
}
/**************************************************************************
*
**************************************************************************/
@ -450,6 +420,36 @@
});
}
// 부과제외 삭제 callback
removeLevyExcl${pageName} = (obj) => {
let selected = ${pageName}Control.dataset.getKeys("selected");
if (selected.length < 1) return;
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "remove"
, levyExclIDs : selected.join(",") // 부과제외 IDs
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
};
ajax.post({
url : ${pageName}Control.urls.remove
, data : params
, success : resp => {
let btnTitle = $("#btnRemoveLevyExcl--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); // 메시지 출력
if (resp.saved) {
${pageName}Control._load(); // 자료 재조회
}
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
@ -586,24 +586,37 @@
if (!levyExclId) return;
let params = {
callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, levyExclId : levyExclId
, levyExclSeCd : levyExclSeCd
callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, levyExclId : levyExclId
, levyExclSeCd : levyExclSeCd
};
getLevyExclInfo${pageName}(params);
}
// 부과제외 삭제 버튼 이벤트
fnLevyExclRemove${pageName} = () => {
dialog.alert({
content : "선택한 부과제외 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.remove();
}
});
fnRemoveLevyExcl${pageName} = () => {
// 부과제외 IDs
let selected = ${pageName}Control.dataset.getKeys("selected");
if (selected.length < 1) return;
let callbackFuncName = "removeLevyExcl${pageName}";
let popupWidth = 640;
let popupHeight = 360;
let popupX = (window.screen.width / 2) - (popupWidth / 2);
let popupY= (window.screen.height / 2) - (popupHeight / 2);
window.open(
wctx.url("/resources/html/inputRsnDialog.html"
+ "?callbackFuncName=" + callbackFuncName
+ "&CALL_PURPOSE=" + "remove"
)
, "inputDelRsnDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY
);
}
/**************************************************************************

@ -493,13 +493,13 @@
}
// 감경 삭제
callbackRemoveRduct${pageName} = (obj) => {
removeRduct${pageName} = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "remove"
, rductId : ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID") // 감경 ID
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
callPurpose : "remove"
, rductId : ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID") // 감경 ID
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
};
// 삭제 url
@ -521,14 +521,14 @@
});
}
// 부과제외 삭제 callback
callbackRemoveLevyExcl${pageName} = (obj) => {
// 부과제외 삭제
removeLevyExcl${pageName} = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "remove"
, levyExclId : ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID") // 부과제외 ID
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
callPurpose : "remove"
, levyExclId : ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID") // 부과제외 ID
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
};
// 삭제 url
@ -634,7 +634,7 @@
// 감경 ID 가 없다면.. return
if (typeof rductId == "undefined" || rductId == null || rductId == "") return;
let callbackFuncName = "callbackRemoveRduct${pageName}";
let callbackFuncName = "removeRduct${pageName}";
let popupWidth = 640;
let popupHeight = 360;
let popupX = (window.screen.width / 2) - (popupWidth / 2);
@ -712,7 +712,7 @@
// 부과제외 ID 가 없다면.. return
if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return;
let callbackFuncName = "callbackRemoveLevyExcl${pageName}";
let callbackFuncName = "removeLevyExcl${pageName}";
let popupWidth = 640;
let popupHeight = 360;
let popupX = (window.screen.width / 2) - (popupWidth / 2);

@ -15,6 +15,9 @@
<button type="button" class="btn btn-primary" id="btnCreateRcvmt--${pageName}" title="수기 수납 등록" onclick="fnCreateRcvmt${pageName}();">
수기 수납 등록
</button>
<button type="button" class="btn btn-primary" id="btnRemoveRcvmt--${pageName}" title="수기 수납 취소" onclick="fnUpdateRcvmtRtrcn${pageName}();">
수기 수납 삭제
</button>
<button type="button" class="btn btn-primary" id="btnRemoveRcvmt--${pageName}" title="수기 수납 삭제" onclick="fnRemoveRcvmt${pageName}();">
수기 수납 삭제
</button>
@ -292,8 +295,8 @@
});
}
// 삭제
callbackRemoveRcvmt${pageName} = () => {
// 수기 수납 삭제
removeRcvmt${pageName} = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "remove"
@ -406,8 +409,13 @@
${pageName}Control.getInfo(params);
}
// 수기 수납 취소
fnUpdateRcvmtRtrcn${pageName} = () => {
}
// 수기 수납 삭제
fnRemoveRcvmt${pageName} = (obj) => {
fnRemoveRcvmt${pageName} = () => {
// 수납 ID
let rcvmtId = ${pageName}Control.dataset.getValue("RCVMT_ID");
@ -423,8 +431,17 @@
return;
}
// 수납 취소 여부가 "Y" 일때만 삭제 가능
if (${pageName}Control.dataset.getValue("RCVMT_RTRCN_YN") != "Y") {
dialog.alert({
content : "수납이 취소된 자료만 삭제 가능합니다."
, onOK : () => { }
});
return;
}
let callbackFuncName = "callbackRemoveRcvmt${pageName}";
let callbackFuncName = "removeRcvmt${pageName}";
let popupWidth = 640;
let popupHeight = 360;
let popupX = (window.screen.width / 2) - (popupWidth / 2);

Loading…
Cancel
Save