수기 수납등록, 수기 수납삭제 수정.

main
jjh 12 months ago
parent 579fdc4114
commit b29d6a44c5

@ -66,7 +66,7 @@ public interface LevyService {
* <li> false</li>
* </ul>
*/
boolean createLevy(Levy levy);
boolean create(Levy levy);
/** .
* @param levy
@ -75,7 +75,7 @@ public interface LevyService {
* <li> false</li>
* </ul>
*/
boolean updateLevy(Levy levy);
boolean update(Levy levy);
/** .
* @param levy
@ -84,15 +84,6 @@ public interface LevyService {
* <li> false</li>
* </ul>
*/
boolean removeLevy(Levy levy);
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean removeLevys(LevyQuery req);
boolean remove(Levy levy);
}

@ -262,6 +262,7 @@ public class LevyBean extends AbstractComponent {
/** .
* @param levy
* @return
@ -269,7 +270,7 @@ public class LevyBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean createLevy(Levy levy) {
public boolean create(Levy levy) {
return levyMapper.insert(levy);
}
@ -280,7 +281,7 @@ public class LevyBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean updateLevy(Levy levy) {
public boolean update(Levy levy) {
return levyMapper.update(levy);
}
@ -291,7 +292,7 @@ public class LevyBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean removeLevy(Levy levy) {
public boolean remove(Levy levy) {
return levyMapper.delete(levy);
}

@ -65,45 +65,18 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService
}
@Override
public boolean createLevy(Levy levy) {
return levyBean.createLevy(levy);
public boolean create(Levy levy) {
return levyBean.create(levy);
}
@Override
public boolean updateLevy(Levy levy) {
return levyBean.updateLevy(levy);
public boolean update(Levy levy) {
return levyBean.update(levy);
}
@Override
public boolean removeLevy(Levy levy) {
return levyBean.removeLevy(levy);
}
@Override
public boolean removeLevys(LevyQuery req) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
// 부과 IDs 건수를 확인하여 1건이하면.. 종료
if (req.getRductIDs().length < 1 ) {
return retSuccess;
}
// 부과 IDs 만큼 반복..
for (int iLoop = 0; iLoop < req.getRductIDs().length; iLoop++) {
Levy levy = new Levy();
levy.setLevyId(req.getLevyIDs()[iLoop]); // 부과 ID
levy.setDelRsn(req.getDelRsn()); // 삭제 사유
// 의견제출 삭제 호출
retSuccess = levyBean.removeLevy(levy);
if (!retSuccess) {
return retSuccess;
}
}
return true;
public boolean remove(Levy levy) {
return levyBean.remove(levy);
}
}

@ -100,11 +100,11 @@ public class Levy01Controller extends ApplicationController {
return mav.addObject("pageName", "levy01020")
.addObject("levyQuery", json ? req : toJson(req))
.addObject("rductLevyYmdInfo", json ? rductLevyYmdInfo : toJson(rductLevyYmdInfo)) //
.addObject("rductLevyYmdInfo", json ? rductLevyYmdInfo : toJson(rductLevyYmdInfo))
;
}
/** .
/** .
* @param levy
* @return jsonView
* <pre><code> {
@ -124,9 +124,13 @@ public class Levy01Controller extends ApplicationController {
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .<br />
* {@link LevyService#getLevyList(LevyQuery)}
* @param req
@ -145,6 +149,8 @@ public class Levy01Controller extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), result, "levy");
}
/** .
* @param levy
* @return jsonView
@ -152,24 +158,12 @@ public class Levy01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createLevy(Levy levy) {
boolean saved = levyService.createLevy(levy);
@PostMapping(name = "부과 대장 등록", value = "/010/create.do")
public ModelAndView create(Levy levy) {
boolean saved = levyService.create(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);
// boolean saved = false;
// String retMessage = levyService.createLevy(true, levy);
//
// if (retMessage.contains("[S]")) {
// saved = true;
// } else {
// saved = false;
// }
//
// return new ModelAndView("jsonView")
// .addObject("saved", saved)
// .addObject("retMessage", retMessage);
}
/** .
@ -179,9 +173,9 @@ public class Levy01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "부과 대장 수정", value = "/020/update.do")
public ModelAndView updateLevy(Levy levy) {
boolean saved = levyService.updateLevy(levy);
@PostMapping(name = "부과 대장 수정", value = "/010/update.do")
public ModelAndView update(Levy levy) {
boolean saved = levyService.update(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);
@ -195,9 +189,9 @@ public class Levy01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "부과 대장 제거", value = "/020/remove.do")
public ModelAndView removeLevy(Levy levy) {
boolean saved = levyService.removeLevy(levy);
@PostMapping(name = "부과 대장 제거", value = "/010/remove.do")
public ModelAndView remove(Levy levy) {
boolean saved = levyService.remove(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);

@ -77,6 +77,11 @@ public class Rcvmt extends AbstractEntity {
*/
private String rcvmtYmd;
/**
*
*/
private Integer rcvmtAmt;
/**
*
*/

@ -31,7 +31,7 @@ public class RcvmtQuery extends CmmnQuery {
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, refresh 재조회).
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, remove 삭제, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유

@ -43,7 +43,25 @@ public interface RcvmtService {
* <li> false</li>
* </ul>
*/
boolean createRcvmt(Rcvmt rcvmt);
String createRcvmt(Rcvmt rcvmt);
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeRcvmt(Rcvmt rcvmt);
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(Rcvmt rcvmt);
/** .
* @param rcvmt
@ -52,7 +70,7 @@ public interface RcvmtService {
* <li> false</li>
* </ul>
*/
boolean updateRcvmt(Rcvmt rcvmt);
boolean update(Rcvmt rcvmt);
/** .
* @param rcvmt
@ -61,6 +79,6 @@ public interface RcvmtService {
* <li> false</li>
* </ul>
*/
boolean removeRcvmt(Rcvmt rcvmt);
boolean remove(Rcvmt rcvmt);
}

@ -34,6 +34,13 @@ public class RcvmtBean extends AbstractComponent {
* @return
*/
public List<DataObject> getRcvmtList(RcvmtQuery req) {
if (req.getDelYn() == null) {
req.setDelYn("N");
}
if (req.getOrderBy() == null) {
req.setOrderBy("RCVMT_ID");
}
return rcvmtMapper.selectRcvmtList(req);
}
@ -68,7 +75,114 @@ public class RcvmtBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean createRcvmt(Rcvmt rcvmt) {
public String createRcvmt(Rcvmt rcvmt) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 부과 ID로 단속, 부과 정보 조회
DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId())
.setDelYn("N"));
String rcvmtSeCd = ""; // 수납 구분 코드(FIM041)
// 입력된 수납 금액으로 수납 본세, 수납 가산금 나누기
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); // 수납 가산금
} else {
rcvmt.setRcvmtPcptax(rcvmt.getRcvmtAmt()); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
}
rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납
} else {
throw new RuntimeException("수납 등록 중 수납금액 계산에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 수납 구분 코드가 입력 되지 않았다면..
if (rcvmt.getRcvmtSeCd() == null) {
rcvmt.setRcvmtSeCd(rcvmtSeCd);
}
retSuccess = rcvmtMapper.insert(rcvmt);
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) {
// 변수 선언
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);
if (!retSuccess) {
throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 부과 테이블 수정
// 단속 상태 변경
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param rcvmt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean create(Rcvmt rcvmt) {
return rcvmtMapper.insert(rcvmt);
}
@ -79,7 +193,7 @@ public class RcvmtBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean updateRcvmt(Rcvmt rcvmt) {
public boolean update(Rcvmt rcvmt) {
return rcvmtMapper.update(rcvmt);
}
@ -90,7 +204,8 @@ public class RcvmtBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean removeRcvmt(Rcvmt rcvmt) {
public boolean remove(Rcvmt rcvmt) {
return rcvmtMapper.delete(rcvmt);
}
}

@ -44,6 +44,9 @@ public class RcvmtServiceBean extends AbstractServiceBean implements RcvmtServic
if (req.getCallPurpose() == null) {
req.setCallPurpose("view");
}
if (req.getDelYn() == null) {
req.setDelYn("N");
}
if (req.getCallPurpose().equals("create")) {
return rcvmtBean.getLevyInfo(req); // 부과 정보 조회
@ -53,18 +56,28 @@ public class RcvmtServiceBean extends AbstractServiceBean implements RcvmtServic
}
@Override
public boolean createRcvmt(Rcvmt rcvmt) {
public String createRcvmt(Rcvmt rcvmt) {
return rcvmtBean.createRcvmt(rcvmt);
}
@Override
public boolean updateRcvmt(Rcvmt rcvmt) {
return rcvmtBean.updateRcvmt(rcvmt);
public String removeRcvmt(Rcvmt rcvmt) {
return rcvmtBean.removeRcvmt(rcvmt);
}
@Override
public boolean removeRcvmt(Rcvmt rcvmt) {
return rcvmtBean.removeRcvmt(rcvmt);
public boolean create(Rcvmt rcvmt) {
return rcvmtBean.create(rcvmt);
}
@Override
public boolean update(Rcvmt rcvmt) {
return rcvmtBean.update(rcvmt);
}
@Override
public boolean remove(Rcvmt rcvmt) {
return rcvmtBean.remove(rcvmt);
}
}

@ -10,7 +10,6 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.rcvm.Rcvmt;
import cokr.xit.fims.rcvm.RcvmtQuery;
import cokr.xit.fims.rcvm.service.RcvmtService;
@ -35,10 +34,8 @@ public class Rcvm01Controller extends ApplicationController {
receivingMoneyMain = "/010/main.do" // 수납 관리 메인 화면
, getReceivingMoneyList = "/010/list.do" // 수납 대장 목록 조회
, getReceivingMoneyInfo = "/020/info.do" // 수납 정보 조회
, createReceivingMoney = "/020/create.do" // 수납 대장 등럭
, updateReceivingMoney = "/020/update.do" // 수납 대장 수정
, removeReceivingMoneyList = "/010/removes.do" // 수납 대장 목록 삭제
, removeReceivingMoney = "/010/remove.do" // 수납 대장 삭제
, createReceivingMoney = "/020/createRcvmt.do" // 수납 대장 등록
, removeReceivingMoney = "/010/removeRcvmt.do" // 수납 대장 삭제
;
}
@ -112,7 +109,7 @@ public class Rcvm01Controller extends ApplicationController {
;
}
/** .
/** .
* @param rcvmt
* @return jsonView
* <pre><code> {
@ -120,7 +117,51 @@ public class Rcvm01Controller extends ApplicationController {
* }</code></pre>
*/
public ModelAndView createReceivingMoney(Rcvmt rcvmt) {
boolean saved = rcvmtService.createRcvmt(rcvmt);
boolean saved = false;
String retMessage = rcvmtService.createRcvmt(rcvmt);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param rcvmt
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView removeReceivingMoney(Rcvmt rcvmt) {
boolean saved = false;
String retMessage = rcvmtService.removeRcvmt(rcvmt);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param rcvmt
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView create(Rcvmt rcvmt) {
boolean saved = rcvmtService.create(rcvmt);
return new ModelAndView("jsonView")
.addObject("saved", saved);
@ -133,8 +174,8 @@ public class Rcvm01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateReceivingMoney(Rcvmt rcvmt) {
boolean saved = rcvmtService.updateRcvmt(rcvmt);
public ModelAndView update(Rcvmt rcvmt) {
boolean saved = rcvmtService.update(rcvmt);
return new ModelAndView("jsonView")
.addObject("saved", saved);
@ -148,8 +189,8 @@ public class Rcvm01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView removeReceivingMoney(Rcvmt rcvmt) {
boolean saved = rcvmtService.removeRcvmt(rcvmt);
public ModelAndView remove(Rcvmt rcvmt) {
boolean saved = rcvmtService.remove(rcvmt);
return new ModelAndView("jsonView")
.addObject("saved", saved);

@ -447,7 +447,7 @@ public class Sprt02Controller extends ApplicationController {
List<DataObject> rcvmt = rcvmtService.getRcvmts(new RcvmtQuery().setCallPurpose(req.getCallPurpose())
.setCrdnId(req.getCrdnId())
.setDelYn(req.getDelYn())
.setOrderBy("R.RCVMT_SN DESC"));
.setOrderBy("R.RCVMT_ID DESC"));
boolean json = jsonResponse();

@ -759,19 +759,7 @@ public class DpvController {
}
@Override
@RequestMapping(name="수납 대장 수정", value=METHOD_URL.updateReceivingMoney)
public ModelAndView updateReceivingMoney(Rcvmt rcvmt) {
return super.updateReceivingMoney(rcvmt);
}
// @Override
// @RequestMapping(name="수납 대장 목록 삭제", value=METHOD_URL.removeReceivingMoneyList)
// public ModelAndView removeReceivingMoneyList(RcvmtQuery req) {
// return super.removeReceivingMoneyList(req);
// }
@Override
@RequestMapping(name="수납 대장 삭제", value=METHOD_URL.removeReceivingMoney)
@RequestMapping(name="수납 대장 등록", value=METHOD_URL.removeReceivingMoney)
public ModelAndView removeReceivingMoney(Rcvmt rcvmt) {
return super.removeReceivingMoney(rcvmt);
}

@ -21,6 +21,7 @@
<result property="inspySn" column="INSPY_SN" /> <!-- 분납 일련번호 -->
<result property="rcvmtSn" column="RCVMT_SN" /> <!-- 수납 일련번호 -->
<result property="rcvmtYmd" column="RCVMT_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" /> <!-- 수납 이자 -->
@ -59,6 +60,7 @@
, R.INSPY_SN /* 분납 일련번호 */
, R.RCVMT_SN /* 수납 일련번호 */
, R.RCVMT_YMD /* 수납 일자 */
, R.RCVMT_AMT /* 수납 금액 */
, R.RCVMT_PCPTAX /* 수납 본세 */
, R.RCVMT_ADAMT /* 수납 가산금 */
, R.RCVMT_INT /* 수납 이자 */
@ -84,8 +86,8 @@
, 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('FIM044', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM044', R.TXITM_CD) FROM DUAL) AS TXITM_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('CMM005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM /* 수납 취소 여부 명 */
@ -149,6 +151,9 @@
<if test="schRcvmtYmdTo != null">
AND R.RCVMT_YMD <![CDATA[ <= ]]> #{schRcvmtYmdTo} /* 소인 일자 종료 */
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
@ -258,13 +263,21 @@
, L.FFNLG_AMT /* 과태료 금액 */
, 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 /* 가산금 */
, C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.VHRNO /* 차량번호 */
, 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 /* 단속 상태 명 */
, <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>
@ -280,6 +293,12 @@
</select>
<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
, (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
FROM TB_RCVMT
WHERE RCVMT_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_RCVMT (
RCVMT_ID /* 수납 ID */
@ -295,6 +314,7 @@
, INSPY_SN /* 분납 일련번호 */
, RCVMT_SN /* 수납 일련번호 */
, RCVMT_YMD /* 수납 일자 */
, RCVMT_AMT /* 수납 금액 */
, RCVMT_PCPTAX /* 수납 본세 */
, RCVMT_ADAMT /* 수납 가산금 */
, RCVMT_INT /* 수납 이자 */
@ -330,6 +350,7 @@
, #{rcvmt.inspySn} /* 분납 일련번호 */
, #{rcvmt.rcvmtSn} /* 수납 일련번호 */
, #{rcvmt.rcvmtYmd} /* 수납 일자 */
, #{rcvmt.rcvmtAmt} /* 수납 금액 */
, #{rcvmt.rcvmtPcptax} /* 수납 본세 */
, #{rcvmt.rcvmtAdamt} /* 수납 가산금 */
, #{rcvmt.rcvmtInt} /* 수납 이자 */
@ -365,6 +386,7 @@
, INSPY_SN = #{rcvmt.inspySn} /* 분납 일련번호 */
, RCVMT_SN = #{rcvmt.rcvmtSn} /* 수납 일련번호 */
, RCVMT_YMD = #{rcvmt.rcvmtYmd} /* 수납 일자 */
, RCVMT_AMT = #{rcvmt.rcvmtAmt} /* 수납 금액 */
, RCVMT_PCPTAX = #{rcvmt.rcvmtPcptax} /* 수납 본세 */
, RCVMT_ADAMT = #{rcvmt.rcvmtAdamt} /* 수납 가산금 */
, RCVMT_INT = #{rcvmt.rcvmtInt} /* 수납 이자 */

@ -16,28 +16,66 @@
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="levyId--${pageName}" name="levyId" data-map="LEVY_ID" />
<input type="hidden" id="rcvmtId--${pageName}" name="rcvmtId" data-map="RCVMT_ID" />
<div class="row g-1">
<!-- 회계 연도 -->
<div class="col-md-6">
<label for="fyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계연도</label>
<input type="text" class="form-control w-px-120" id="fyr--${pageName}" name="fyr" data-map="FYR" readonly />
<!-- 단속일시 -->
<div class="col-md-4">
<label for="crdnYmdTm--${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="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
</div>
<!-- 차량번호 -->
<div class="col-md-4">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-40" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
</div>
<!-- 단속 상태 명 -->
<div class="col-md-4">
<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" readonly />
</div>
<!-- 회계 구분 코드 -->
<div class="col-md-6">
<div class="col-md-4">
<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-px-80" id="acntgSeCd--${pageName}" name="acntgSeCd" data-map="ACNTG_SE_CD" readonly />
<input type="text" class="form-control w-15" id="acntgSeCd--${pageName}" name="acntgSeCd" data-map="ACNTG_SE_CD" readonly />
</div>
<!-- 세목 코드 -->
<div class="col-md-6">
<div class="col-md-4">
<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-px-120" id="txitmCd--${pageName}" name="txitmCd" data-map="TXITM_CD" readonly />
<input type="text" class="form-control w-30" id="txitmCd--${pageName}" name="txitmCd" data-map="TXITM_CD" readonly />
</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>
<input type="text" class="form-control w-20" id="fyr--${pageName}" name="fyr" data-map="FYR" readonly />
</div>
<!-- 부과 번호 -->
<div class="col-md-6">
<div class="col-md-4">
<label for="levyNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과번호</label>
<input type="text" class="form-control w-px-120" id="levyNo--${pageName}" name="levyNo" data-map="LEVY_NO" readonly />
<input type="text" class="form-control w-px-80" id="inspySn--${pageName}" name="inspySn" data-map="INSPY_SN" readonly />
<input type="text" class="form-control w-30" id="levyNo--${pageName}" name="levyNo" data-map="LEVY_NO" readonly />
</div>
<!-- 분납 순번 -->
<div class="col-md-4">
<label for="levyNo--${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" readonly />
</div>
<!-- 부과 본세 -->
<div class="col-md-4">
<label for="levyPcptax--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과본세</label>
<input type="text" class="form-control w-30 text-end" id="levyPcptax--${pageName}" name="levyPcptax" data-map="LEVY_PCPTAX" readonly />
</div>
<!-- 부과 가산금 -->
<div class="col-md-4">
<label for="levyAdamt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과가산금</label>
<input type="text" class="form-control w-30 text-end" id="levyAdamt--${pageName}" name="levyAdamt" data-map="LEVY_ADAMT" readonly />
</div>
<!-- 분납 이자 -->
<div class="col-md-4">
<label for="inspyInt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">분납이자</label>
<input type="text" class="form-control w-30 text-end" id="inspyInt--${pageName}" name="inspyInt" data-map="INSPY_INT" readonly />
</div>
<p></p>
@ -64,7 +102,7 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 수납 구분 코드 -->
<div class="col-md-12">
<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>
<select class="form-select" id="rcvmtSeCd--${pageName}" name="rcvmtSeCd" data-map="RCVMT_SE_CD" required>
<c:forEach items="${FIM041List}" var="item">
@ -72,28 +110,22 @@
</c:forEach>
</select>
</div>
<!-- 수납 본세 -->
<!-- 수납 금액 -->
<div class="col-md-4">
<label for="rcvmtPcptax--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납본세</label>
<input type="text" class="form-control w-px-120 text-end" id="rcvmtPcptax--${pageName}" name="rcvmtPcptax" data-map="RCVMT_PCPTAX" autocomplete="off" />
<label for="rcvmtAmt--${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="rcvmtAmt--${pageName}" name="rcvmtAmt" data-map="RCVMT_AMT"
data-fmt-type="number" autocomplete="off" required />
</div>
<!-- 수납 가산금 -->
<!-- -->
<div class="col-md-4">
<label for="rcvmtAdamt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납가산금</label>
<input type="text" class="form-control w-px-120 text-end" id="rcvmtAdamt--${pageName}" name="rcvmtAdamt" data-map="RCVMT_ADAMT" autocomplete="off" />
</div>
<!-- 수납 이자 -->
<div class="col-md-4">
<label for="rcvmtInt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납이자</label>
<input type="text" class="form-control w-px-120 text-end" id="rcvmtInt--${pageName}" name="rcvmtInt" data-map="RCVMT_INT" autocomplete="off" />
</div>
<!-- 수납 은행 -->
<div class="col-md-6">
<div class="col-md-4">
<label for="rcvmtBankNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납은행</label>
<input type="text" class="form-control w-px-120" id="rcvmtBankNm--${pageName}" name="rcvmtBankNm" data-map="RCVMT_BANK_NM" autocomplete="off" />
<input type="text" class="form-control w-45" id="rcvmtBankNm--${pageName}" name="rcvmtBankNm" data-map="RCVMT_BANK_NM" autocomplete="off" />
</div>
<!-- 납부 방식 구분 코드 -->
<div class="col-md-6">
<div class="col-md-8">
<label for="payMthdSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부매체</label>
<select class="form-select" id="payMthdSeCd--${pageName}" name="payMthdSeCd" data-map="PAY_MTHD_SE_CD">
<c:forEach items="${FIM045List}" var="item">
@ -139,7 +171,11 @@
, keymapper : info => info ? info.RCVMT_ID : ""
, dataGetter : obj => obj.rcvmtInfo
, formats : {
RCVMT_PCPTAX : numberFormat
CRDN_YMD_TM : datetimeFormat
, LEVY_PCPTAX : numberFormat
, LEVY_ADAMT : numberFormat
, INSPY_INT : numberFormat
, RCVMT_PCPTAX : numberFormat
, RCVMT_ADAMT : numberFormat
, RCVMT_INT : numberFormat
}
@ -151,9 +187,13 @@
// Dataset 셋팅
${pageName}Fields.set(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 변경
${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");
${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/createRcvmt.do");
}
/**************************************************************************
@ -168,10 +208,6 @@
if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog");
if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved);
}
}
}
@ -179,10 +215,10 @@
${pageName}Control.save = (info) => {
if (!info) return;
let create = isEmpty(info.levyExclId);
info.rcvmtInptSeCd = "03"; // 수납 입력 구분 코드(FIM044) : 03 수기
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
url : ${pageName}Control.urls.create
, data : info
, success : resp => ${pageName}Control.onSave(resp)
});
@ -229,6 +265,18 @@
// 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 + " 정보를 저장하시겠습니까?"
, onOK : () => {

@ -374,12 +374,10 @@
}
// 공시송달 삭제 callback
callbackSvbtcRemoves${pageName} = (obj) => {
callbackRemoveSvbtcs${pageName} = (obj) => {
let taskSeCd = $("input[name='taskSeCd']:checked").val(); // 업무 구분 코드
let selected = ${pageName}Control.dataset.getKeys("selected"); // 선택 자료
if (selected.length < 1) return;
let params = {
svbtcIDs : selected.join(",") // 공시송달 IDs
, delYn : "Y" // 삭제 여부
@ -387,7 +385,7 @@
}
ajax.post({
url :${pageName}Control.urls.remove
url : ${pageName}Control.urls.remove
, data : params
, success : resp => {
let btnTitle = $("#btnSvbtcRemoves--${pageName}").attr("title");
@ -551,18 +549,21 @@
// 공시송달 삭제 버튼 이벤트
fnSvbtcRemoves${pageName} = () => {
let callbackFuncName = "callbackSvbtcRemoves${pageName}";
// 선택 자료
let selected = ${pageName}Control.dataset.getKeys("selected");
if (selected.length < 1) return;
let callbackFuncName = "callbackRemoveSvbtcs${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=" + "delete"
+ "&CALL_PURPOSE=" + "remove"
)
, "inputDelRsnDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY

@ -415,9 +415,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 0;
@ -427,6 +425,7 @@
, crdnId : crdnId
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, delYn : "N"
};
getInfoCrdnPayer${pageName}(params);
@ -437,9 +436,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 1;
@ -449,6 +446,7 @@
, crdnId : crdnId
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, delYn : "N"
};
getInfoOpnnSbmsn${pageName}(params);
@ -459,9 +457,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 2;
@ -471,6 +467,7 @@
, crdnId : crdnId
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, delYn : "N"
};
getInfoSndng${pageName}(params);
@ -481,9 +478,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 3;
@ -494,6 +489,7 @@
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID")
, delYn : "N"
};
getInfoPrcsDtl${pageName}(params);
@ -504,9 +500,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 4;
@ -516,6 +510,7 @@
, crdnId : crdnId
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, delYn : "N"
};
getInfoLevyNpmnt${pageName}(params);
@ -526,9 +521,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 5;
@ -538,6 +531,7 @@
, crdnId : crdnId
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, delYn : "N"
};
getInfoRcvmt${pageName}(params);
@ -548,9 +542,7 @@
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 탭 Index
activeTabIndex${pageName} = 6;
@ -562,6 +554,7 @@
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, vhrno : ${pageName}Control.dataset.getValue("VHRNO")
, delYn : "N"
};
getInfoCvlcptDscsn${pageName}(params);

@ -580,9 +580,7 @@
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "create"
@ -599,9 +597,7 @@
let rductId = ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID");
// 감경 ID 가 없다면.. return
if (rductId == null || rductId == "") {
return;
}
if (typeof rductId == "undefined" || rductId == null || rductId == "") return;
let params = {
callPurpose : "update"
@ -619,9 +615,7 @@
let rductId = ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID");
// 감경 ID 가 없다면.. return
if (rductId == null || rductId == "") {
return;
}
if (typeof rductId == "undefined" || rductId == null || rductId == "") return;
let params = {
callPurpose : "remove"
@ -644,9 +638,7 @@
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "create"
@ -664,9 +656,7 @@
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "create"
@ -684,9 +674,7 @@
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return
if (levyExclId == null || levyExclId == "") {
return;
}
if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return;
let params = {
callPurpose : "update"
@ -704,9 +692,7 @@
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과제외 ID 가 없다면.. return
if (levyExclId == null || levyExclId == "") {
return;
}
if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return;
let params = {
callPurpose : "remove"

@ -30,86 +30,94 @@
<div class="row g-1">
<!-- 회계 연도 -->
<div class="col-md-3">
<label for="fyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계 연도</label>
<label for="fyr--${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="fyr--${pageName}" name="fyr" data-map="FYR" readonly />
</div>
<!-- 회계 구분 -->
<div class="col-md-3">
<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" readonly />
<input type="text" class="form-control w-25" id="acntgSeNm--${pageName}" name="acntgSeNm" data-map="ACNTG_SE_NM" readonly />
<input type="text" class="form-control w-50" id="acntgSeNm--${pageName}" name="acntgSeNm" data-map="ACNTG_SE_NM" readonly />
</div>
<!-- 세목 코드 -->
<div class="col-md-3">
<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-20" id="txitmCd--${pageName}" name="txitmCd" data-map="TXITM_CD" readonly />
<input type="text" class="form-control w-45" id="txitmNm--${pageName}" name="txitmNm" data-map="TXITM_NM" readonly />
</div>
<!-- 부과 번호 -->
<div class="col-md-3">
<label for="levyNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과 번호</label>
<label for="levyNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과번호</label>
<input type="text" class="form-control w-20" id="levyNo--${pageName}" name="levyNo" data-map="LEVY_NO" readonly />
<input type="text" class="form-control w-10" id="inspySn--${pageName}" name="inspySn" data-map="INSPY_SN" readonly />
</div>
<!-- 수납 순번 -->
<div class="col-md-3">
<label for="rcvmtSn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 순번</label>
<label for="rcvmtSn--${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="rcvmtSn--${pageName}" name="rcvmtSn" data-map="RCVMT_SN" readonly />
</div>
<!-- 수납 일자 -->
<div class="col-md-3">
<label for="rcvmtYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 일자</label>
<label for="rcvmtYmd--${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="rcvmtYmd--${pageName}" name="rcvmtYmd" data-map="RCVMT_YMD" readonly />
</div>
<!-- 소인 일자 -->
<div class="col-md-3">
<label for="pstmrkYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소인 일자</label>
<label for="pstmrkYmd--${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="pstmrkYmd--${pageName}" name="pstmrkYmd" data-map="PSTMRK_YMD" readonly />
</div>
<!-- 회계 일자 -->
<div class="col-md-3">
<label for="acntgYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계 일자</label>
<label for="acntgYmd--${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="acntgYmd--${pageName}" name="acntgYmd" data-map="ACNTG_YMD" readonly />
</div>
<!-- 수납 구분 -->
<!-- 수납 금액 -->
<div class="col-md-3">
<label for="rcvmtSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 구분</label>
<input type="text" class="form-control w-25" id="rcvmtSeNm--${pageName}" name="rcvmtSeNm" data-map="RCVMT_SE_NM" readonly />
<label for="rcvmtAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납금액</label>
<input type="text" class="form-control w-30 text-end" id="rcvmtAmt--${pageName}" name="rcvmtAmt" data-map="RCVMT_AMT" readonly />
</div>
<!-- 수납 본세 -->
<div class="col-md-3">
<label for="rcvmtPcptax--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 본세</label>
<label for="rcvmtPcptax--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납본세</label>
<input type="text" class="form-control w-30 text-end" id="rcvmtPcptax--${pageName}" name="rcvmtPcptax" data-map="RCVMT_PCPTAX" readonly />
</div>
<!-- 수납 가산금 -->
<div class="col-md-3">
<label for="rcvmtAdamt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 가산금</label>
<label for="rcvmtAdamt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납가산금</label>
<input type="text" class="form-control w-30 text-end" id="rcvmtAdamt--${pageName}" name="rcvmtAdamt" data-map="RCVMT_ADAMT" readonly />
</div>
<!-- 수납 이자 -->
<div class="col-md-3">
<label for="rcvmtInt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 이자</label>
<label for="rcvmtInt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납이자</label>
<input type="text" class="form-control w-30 text-end" id="rcvmtInt--${pageName}" name="rcvmtInt" data-map="RCVMT_INT" readonly />
</div>
<!-- 수납 구분 -->
<div class="col-md-3">
<label for="rcvmtSeNm--${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="rcvmtSeNm--${pageName}" name="rcvmtSeNm" data-map="RCVMT_SE_NM" readonly />
</div>
<!-- 수납 은행 -->
<div class="col-md-3">
<label for="rcvmtBankNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 은행</label>
<label for="rcvmtBankNm--${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="rcvmtBankNm--${pageName}" name="rcvmtBankNm" data-map="RCVMT_BANK_NM" readonly />
</div>
<!-- 납부 방식 -->
<div class="col-md-3">
<label for="payMthdSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부 방식</label>
<label for="payMthdSeNm--${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="payMthdSeNm--${pageName}" name="payMthdSeNm" data-map="PAY_MTHD_SE_NM" readonly />
</div>
<!-- -->
<div class="col-md-3">
</div>
<!-- 등록 일시 -->
<div class="col-md-3">
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label>
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록일시</label>
<input type="text" class="form-control w-45" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly />
</div>
<!-- 등록자 -->
<div class="col-md-3">
<label for="rgtrNm--${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="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly />
<input type="text" class="form-control w-40" id="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly />
</div>
</div> <!-- <div class="row g-1"> -->
</form>
@ -132,8 +140,9 @@
<th>회계구분</th>
<th>세목코드</th>
<th>부과번호</th>
<th>분납일련번호</th>
<th>분납번호</th>
<th>수납일자</th>
<th>수납금액</th>
<th>수납본세</th>
<th>수납가산금</th>
<th>수납이자</th>
@ -164,11 +173,12 @@
<td class="text-center" onclick="{onclick}">{LEVY_NO}</td>
<td class="text-center" onclick="{onclick}">{INSPY_SN}</td>
<td class="text-center" onclick="{onclick}">{RCVMT_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-center" onclick="{onclick}">{RCVMT_BANK_NM}</td>
<td class="text-center" onclick="{onclick}">{PAY_MTHD_SE_NM}</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>
@ -184,7 +194,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="24" class="dataTables_empty text-center">수납정보 이력 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="25" class="dataTables_empty text-center">수납정보 이력 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -218,6 +228,7 @@
RCVMT_YMD : dateFormat
, ACNTG_YMD : dateFormat
, PSTMRK_YMD : dateFormat
, RCVMT_AMT : numberFormat
, RCVMT_PCPTAX : numberFormat
, RCVMT_ADAMT : numberFormat
, RCVMT_INT : numberFormat
@ -253,7 +264,7 @@
${pageName}Fields.set(item); // 화면에 자료 셋팅
};
// 민원 상담 내용 Dialog
// 등록
${pageName}Control.getInfo = (params) => {
let dialogTitle = "";
@ -281,26 +292,32 @@
});
}
// 삭제 callback
${pageName}Control.onRemove = (resp) => {
let btnTitle = $("#btnRemove--${pageName}").attr("title");
// 삭제
callbackRemoveRcvmt${pageName} = () => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose : "remove"
, rcvmtId : ${pageName}Control.dataset.getValue("RCVMT_ID") // 수납 ID
, delYn : "Y" // 삭제 여부
, delRsn : obj.reason // 삭제 사유
};
// 삭제 url
${pageName}Control.urls.remove = wctx.url(${pageName}Control.dataset.getValue("TASK_SE_CD") + ${pageName}PrefixUrl + "/010/removeRcvmt.do");
ajax.post({
url : ${pageName}Control.urls.remove
, data : params
, success : resp => {
let btnTitle = $("#btnRemoveRcvmt--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
dialog.alert(showMessage); // 메시지 출력
if (resp.saved) {
$("#dscsnCn--${pageName}").val(""); // 상담내용 초기화
refreshDataInfo${pageName}(); // 자료 재조회
}
}
// 삭제
${pageName}Control.remove = (params) => {
ajax.post({
url : wctx.url(params.taskSeCd + ${pageName}PrefixUrl + "/010/remove.do")
, data : params || {}
, success : resp => ${pageName}Control.onRemove(resp) // 삭제 callback
});
}
@ -323,6 +340,32 @@
$("#tbody--${pageName}").html(trs.join());
}
// 자료 재조회
refreshDataInfo${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "refresh"
, crdnId : crdnId
, sggCd : sggCd = $("#sggCd--${pageNameMain}").val()
, taskSeCd : taskSeCd = $("#taskSeCd--${pageNameMain}").val()
, delYn : "N"
};
ajax.get({
url : wctx.url(taskSeCd + "/sprt/sprt02/070/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
${pageName}Control.dataset.clear();
${pageName}Control.setData(resp.rcvmt); // Dataset 셋팅
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
@ -346,19 +389,17 @@
**************************************************************************/
// 수기 수납 등록
fnCreateRcvmt${pageName} = () => {
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
let crdnId = $("#crdnId--${pageNameMain}").val();
let levyId = $("#levyId--${pageName}").val();
// 부과 ID 가 없다면.. return
if (levyId == undefined || levyId == "") {
return;
}
if (typeof levyId == "undefined" || levyId == null || levyId == "") return;
let params = {
callPurpose : "create"
, sggCd : sggCd
, taskSeCd : taskSeCd
, crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, levyId : levyId
};
@ -367,7 +408,36 @@
// 수기 수납 삭제
fnRemoveRcvmt${pageName} = () => {
alert("수기 수납 삭제");
// 수납 ID
let rcvmtId = ${pageName}Control.dataset.getValue("RCVMT_ID");
// 수납 ID 가 없다면.. return
if (typeof rcvmtId == "undefined" || rcvmtId == null || rcvmtId == "") return;
// 수납 입력 구분이 03(수기) 일때만 삭제 가능
if (${pageName}Control.dataset.getValue("RCVMT_INPT_SE_CD") != "03") {
dialog.alert({
content : "수납입력구분이 수기로 등록된 자료만 삭제 가능합니다."
, onOK : () => { }
});
return;
}
let callbackFuncName = "callbackRemoveRcvmt${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
);
}
/**************************************************************************

@ -208,9 +208,7 @@
let vhrno = $("#vhrno--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "refresh"
@ -257,19 +255,15 @@
// 민원 상담 내용 등록
fnCreate${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == undefined || crdnId == "") {
return;
}
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose : "create"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
};
${pageName}Control.getInfo(params);
@ -280,9 +274,7 @@
let cvlcptDscsnId = ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID");
// 민원 상담 ID 가 없다면.. return
if (cvlcptDscsnId == undefined || cvlcptDscsnId == "") {
return;
}
if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return;
let params = {
callPurpose : "update"
@ -300,9 +292,7 @@
let cvlcptDscsnId = ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID");
// 민원 상담 ID 가 없다면.. return
if (cvlcptDscsnId == null || cvlcptDscsnId == "") {
return;
}
if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return;
let params = {
callPurpose : "remove"

@ -64,7 +64,7 @@
<script language="javascript">
var callbackFuncName = location.search.split("&")[0].split("=")[1];
var callPurpose = location.search.split("&")[1].split("=")[1]; // delete 삭제
var callPurpose = location.search.split("&")[1].split("=")[1]; // remove 삭제
function fnOK() {
let obj = {};
@ -75,6 +75,7 @@
window.close();
}
// 초기 설정
$(document).ready(function() {
});

Loading…
Cancel
Save