1. 반송 현황 수정.

2. 공시송달 현황 수정.
main
jjh 5 months ago
parent 49030cf4c5
commit 1977f8efed

@ -642,7 +642,7 @@ public class SndngDtlBean extends AbstractBean {
public String createSndbk(SndngDtl sndngDtl) { public String createSndbk(SndngDtl sndngDtl) {
// 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다. // 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다.
int rtnNocs = sndngDtlMapper.createSndbk(sndngDtl); int rtnNocs = sndngDtlMapper.createSndbk(sndngDtl);
if (rtnNocs != 1) { if (rtnNocs < 1) {
throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -220,6 +220,9 @@ public class SvbtcBean extends AbstractBean {
if (rtnNocs < 1) { if (rtnNocs < 1) {
throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
if (svbtcInfo.number("TNOCS").intValue() != rtnNocs) {
throw new RuntimeException("공시송달 총건수와 발송상세 건수가 다릅니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
} }

@ -1633,6 +1633,7 @@ public class Sndb01Controller extends ApplicationController {
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center)); valueMap.put("업무구분", format.of("TASK_SE_NM").style(center));
valueMap.put("발송구분", format.of("SNDNG_SE_NM").style(center)); valueMap.put("발송구분", format.of("SNDNG_SE_NM").style(center));
valueMap.put("공시송달일자", FormatMaker.yyyy_mm_dd(format, "SVBTC_YMD").style(dateYMD)); valueMap.put("공시송달일자", FormatMaker.yyyy_mm_dd(format, "SVBTC_YMD").style(dateYMD));
valueMap.put("공시송달종료일자", FormatMaker.yyyy_mm_dd(format, "SVBTC_END_YMD").style(dateYMD));
valueMap.put("총건수", format.of("TNOCS").style(numeric)); valueMap.put("총건수", format.of("TNOCS").style(numeric));
valueMap.put("문서번호", format.of("DOC_NO")); valueMap.put("문서번호", format.of("DOC_NO"));
valueMap.put("제목", format.of("TTL_NM")); valueMap.put("제목", format.of("TTL_NM"));
@ -1734,9 +1735,9 @@ public class Sndb01Controller extends ApplicationController {
valueMap.put("부과번호", format.of("LEVY_NO").style(center)); valueMap.put("부과번호", format.of("LEVY_NO").style(center));
valueMap.put("부과일자", FormatMaker.yyyy_mm_dd(format, "LEVY_YMD").style(dateYMD)); valueMap.put("부과일자", FormatMaker.yyyy_mm_dd(format, "LEVY_YMD").style(dateYMD));
valueMap.put("납기일자", FormatMaker.yyyy_mm_dd(format, "DUDT_YMD").style(dateYMD)); valueMap.put("납기일자", FormatMaker.yyyy_mm_dd(format, "DUDT_YMD").style(dateYMD));
valueMap.put("과태료금액", format.of("FFNLG_AMT").style(numeric));
valueMap.put("본세", format.of("PCPTAX").style(numeric)); valueMap.put("본세", format.of("PCPTAX").style(numeric));
valueMap.put("가산금", format.of("ADAMT").style(numeric)); valueMap.put("가산금", format.of("ADAMT").style(numeric));
valueMap.put("미납금액", format.of("SUM_AMT").style(numeric));
valueMap.put("등록일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "REG_DT").style(dateDT)); valueMap.put("등록일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "REG_DT").style(dateDT));
valueMap.put("등록사용자", format.of("RGTR_NM").style(center)); valueMap.put("등록사용자", format.of("RGTR_NM").style(center));
valueMap.put("수정일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "MDFCN_DT").style(dateDT)); valueMap.put("수정일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "MDFCN_DT").style(dateDT));

@ -767,6 +767,13 @@
, SD.MDFR <!-- 수정자 --> , SD.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM <!-- 수정자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, (CONCAT(SD.FYR, '-', SD.LEVY_NO)) AS GOJI_NO <!-- 고지 번호 --> , (CONCAT(SD.FYR, '-', SD.LEVY_NO)) AS GOJI_NO <!-- 고지 번호 -->
, S.SNDNG_ID <!-- 발송 ID -->
, S.DEPT_CD <!-- 부서 코드 -->
, S.SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
, (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM <!-- 발송 등록 구분 명 -->
, S.EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, S.SNDNG_STTS_CD <!-- 발송 상태 코드 -->
, S.RESND_YN <!-- 재발송 여부 -->
, C.CRDN_ID <!-- 단속 ID --> , C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
@ -784,21 +791,11 @@
, C.CRDN_PLC <!-- 단속 장소 --> , C.CRDN_PLC <!-- 단속 장소 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 --> , C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 --> , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, S.SNDNG_ID <!-- 발송 ID -->
, S.DEPT_CD <!-- 부서 코드 -->
, S.SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
, (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM <!-- 발송 등록 구분 명 -->
, S.EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, S.SNDNG_STTS_CD <!-- 발송 상태 코드 -->
, S.RESND_YN <!-- 재발송 여부 -->
, P.RTPYR_ID <!-- 납부자 ID --> , P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_SE_CD <!-- 납부자 구분 코드 --> , P.RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 --> , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 -->
, P.RTPYR_NO <!-- 납부자 번호 --> , P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 --> , P.RTPYR_NM <!-- 납부자 명 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 -->
<include refid="fromSndbk" /> <include refid="fromSndbk" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
@ -806,16 +803,15 @@
<sql id="fromSndbk"> <sql id="fromSndbk">
FROM TB_SNDNG_DTL SD FROM TB_SNDNG_DTL SD
INNER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)
INNER JOIN TB_CRDN C ON (SD.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (SD.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) INNER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN)
LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)
LEFT OUTER JOIN TB_EPOST_DLVR_RSLT EDR ON (SD.CON_KEY = EDR.CON_KEY AND SD.RG_NO = EDR.REGINO) LEFT OUTER JOIN TB_EPOST_DLVR_RSLT EDR ON (SD.CON_KEY = EDR.CON_KEY AND SD.RG_NO = EDR.REGINO)
WHERE C.SGG_CD = #{sggCd} WHERE S.SGG_CD = #{sggCd}
AND C.TASK_SE_CD = #{taskSeCd} AND S.TASK_SE_CD = #{taskSeCd}
AND (SD.SVBTC_ID IS NULL OR SD.SVBTC_ID = '') AND (S.RESND_YN IS NULL OR S.RESND_YN = 'N')
AND (SD.SNDNG_RCVMT_CD IS NULL OR SD.SNDNG_RCVMT_CD = '') AND (SD.SVBTC_ID IS NULL OR SD.SVBTC_ID = '')
AND (S.RESND_YN IS NULL OR S.RESND_YN = 'N') AND (SD.SNDNG_RCVMT_CD IS NULL OR SD.SNDNG_RCVMT_CD = '')
<if test="sndngDtlIds != null"> <if test="sndngDtlIds != null">
AND SD.SNDNG_DTL_ID IN ( <!-- 발송 상세 Ids --> AND SD.SNDNG_DTL_ID IN ( <!-- 발송 상세 Ids -->
<foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach> <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>

@ -133,6 +133,21 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </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-4"> <div class="col-4">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> <select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
@ -218,10 +233,12 @@
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RCPN_NM', this.innerText, 'match', 'part');">성명</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('PCPTAX', this.innerText, 'match', 'part');">본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ADAMT', this.innerText, 'match', 'part');">가산금</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RCPN_NM', this.innerText, 'match', 'part');">수령인명</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCPN_ZIP', this.innerText, 'match', 'part');">우편번호</th> <th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCPN_ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('RCPN_ADDR', this.innerText, 'match', 'part');">주소</th> <th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('RCPN_ADDR', this.innerText, 'match', 'part');">수령인주소</th>
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('RCPN_DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th> <th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('RCPN_DTL_ADDR', this.innerText, 'match', 'part');">수령인상세주소</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th> <th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th> <th class="cmn" style="width: 140px;" 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: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</th>
@ -251,6 +268,8 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ADAMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_ZIP}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_ZIP}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_ADDR}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_ADDR}</td>
@ -272,19 +291,19 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv"> <tr class="bpv">
<td valign="top" colspan="30" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="dpv"> <tr class="dpv">
<td valign="top" colspan="30" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="eca"> <tr class="eca">
<td valign="top" colspan="30" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="pvs"> <tr class="pvs">
<td valign="top" colspan="30" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="pes"> <tr class="pes">
<td valign="top" colspan="30" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -334,13 +353,15 @@
, keymapper: info => info ? info.SNDNG_DTL_ID : "" , keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter: obj => obj.${infoPrefix}List , dataGetter: obj => obj.${infoPrefix}List
, appendData: true , appendData: true
, infoSize: "xl" , infoSize: "md"
, formats: { , formats: {
DLVR_YMD: dateFormat DLVR_YMD: dateFormat
, DLVR_TM: timeFormat , DLVR_TM: timeFormat
, SNDNG_YMD: dateFormat , SNDNG_YMD: dateFormat
, CRDN_YMD_TM: datetimeFormat , CRDN_YMD_TM: datetimeFormat
, FFNLG_AMT: numberFormat , FFNLG_AMT: numberFormat
, PCPTAX: numberFormat
, ADAMT: numberFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat
, MDFCN_DT: datetimeFormat , MDFCN_DT: datetimeFormat
} }
@ -520,15 +541,15 @@
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/260/info.do") // 등록 url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/260/info.do") + "?openerPageName=${pageName}"
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
dialog.open({ dialog.open({
id: "svbtcDialog--${pageName}" id: "svbtcDialog--${pageName}"
, title: params.title , title: params.title
, content: resp , content: resp
, size: "md" , size: $P.control.infoSize
, onClose: () => { $P.fnRefreshList(); } , onClose: () => { $P.fnRefreshList(); } // 자료 재조회
}); });
} }
}); });

@ -1,20 +1,21 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">반송 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-pop"> <div class="content-pop">
<!-- Content --> <!-- Content -->
<div class="container flex-grow-1 px-0"> <div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">반송 정보</c:set>
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden --> <!-- 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="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="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="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" /> <input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<div class="row g-1"> <div class="row g-1">
@ -41,21 +42,24 @@
</div> </div>
</div> </div>
</form> </form>
<!-- /입력 영역 --> <!-- 입력 영역 -->
</div> <!-- <div class="card"> -->
<!-- 업무 버튼 표시 --> <!-- 업무 버튼 및 건수 표시 -->
<div> <div>
<span class="container-page-btn"> <span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">저장</button> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">
저장
</button>
</span>
</span> </span>
</span> </div> <!-- 업무 버튼 및 건수 표시 -->
</div> </div> <!-- <div class="card"> -->
<!-- / 업무 버튼 표시 --> <!-- Page Body -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> --> </div> <!-- <div class="container flex-grow-1 px-0"> -->
<!-- Content -->
</div> <!-- / inner page html <div class="content-pop"> --> </div> <!-- / inner page html <div class="content-pop"> -->
<script> <script>
@ -69,10 +73,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sndb/sndb01";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
@ -82,10 +84,10 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "sndbk" prefix: "sndbk"
, prefixName : "반송" , prefixName: "반송"
, keymapper : info => info ? info.SNDNG_DTL_ID : "" , keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter : obj => obj.sndbkInfo , dataGetter: obj => obj.sndbkInfo
}); });
/************************************************************************** /**************************************************************************
@ -95,10 +97,10 @@
if (!item) return; if (!item) return;
// Dataset 셋팅 // Dataset 셋팅
$P.formFields.set($P.control,item); $P.formFields.set($P.control, item);
// 업무구분에 따른 URL 변경 // 업무구분에 따른 URL 변경
$P.setURL(item.data.TASK_SE_CD); $P.fnSetURL(item.data.TASK_SE_CD);
// 호출용도가 등록 이라면.. // 호출용도가 등록 이라면..
if ($P.callPurpose == "create") { if ($P.callPurpose == "create") {
@ -112,16 +114,17 @@
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert({ dialog.alert({
content : showMessage content: showMessage
, onOK : () => { } , init: () => { setDialogZindex(); }
, onOK: () => { }
}); });
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog--${openerPageName}");
} }
} }
@ -132,28 +135,37 @@
let create = ($P.callPurpose == "create"); let create = ($P.callPurpose == "create");
ajax.post({ ajax.post({
url : !create ? $P.control.urls.update : $P.control.urls.create url: !create ? $P.control.urls.update : $P.control.urls.create
, data : info , data: info || {}
, success : resp => $P.control.onSave(resp) , success: resp => $P.control.onSave(resp)
}); });
} }
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/230/create.do");
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/230/update.do");
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 저장 버튼 클릭 이벤트 // 저장 버튼 클릭 이벤트
$P.fnSave = (title) => { $P.fnSave = () => {
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 파리미터 설정 // 파리미터 설정
let params = $P.formFields.get(); // formFields let params = $P.formFields.get(); // formFields
params.title = title; // 타이틀 params.sndngDtlSttsCd = "05"; // FIM050 - 05 반송
params.sndngDtlSttsCd = "05"; // FIM050 - 05 반송
dialog.alert({ dialog.alert({
content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => { , init: () => { setDialogZindex(); }
, onOK: () => {
$P.control.save(params); $P.control.save(params);
} }
}); });
@ -186,10 +198,8 @@
} }
}); });
// 저장 버튼 이벤트 // 버튼 이벤트
$("#btnSave--${pageName}").on("click", function() { $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
$P.fnSave($(this).attr("title"));
});
} }
// 초기 화면 설정 // 초기 화면 설정
@ -206,12 +216,6 @@
} }
} }
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/230/create.do");
$P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/230/update.do");
}
/************************************************************************** /**************************************************************************
* 최초 실행 함수 * 최초 실행 함수
**************************************************************************/ **************************************************************************/

@ -162,6 +162,7 @@
<th class="cmn" style="width: 160px;">업무구분</th> <th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SVBTC_YMD', this.innerText, 'ymd', '');">공시송달일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SVBTC_YMD', this.innerText, 'ymd', '');">공시송달일자</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SVBTC_END_YMD', this.innerText, 'ymd', '');">공시송달종료일자</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('TNOCS', this.innerText, 'match', 'part');">총건수</th> <th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('TNOCS', this.innerText, 'match', 'part');">총건수</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('DOC_NO', this.innerText, 'match', 'part');">문서번호</th> <th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('DOC_NO', this.innerText, 'match', 'part');">문서번호</th>
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('TTL_NM', this.innerText, 'match', 'part');">제목</th> <th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('TTL_NM', this.innerText, 'match', 'part');">제목</th>
@ -182,6 +183,7 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SVBTC_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SVBTC_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SVBTC_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{TTL_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{TTL_NM}</td>
@ -195,7 +197,7 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="13" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="15" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -242,6 +244,7 @@
, infoSize: "xxl" , infoSize: "xxl"
, formats: { , formats: {
SVBTC_YMD: dateFormat SVBTC_YMD: dateFormat
, SVBTC_END_YMD: dateFormat
, TNOCS: numberFormat , TNOCS: numberFormat
, GRAMT: numberFormat , GRAMT: numberFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat

@ -65,7 +65,7 @@
<th class="cmn" style="width: 200px;">수령인관계</th> <th class="cmn" style="width: 200px;">수령인관계</th>
<th class="cmn" style="width: 180px;">단속일시</th> <th class="cmn" style="width: 180px;">단속일시</th>
<th class="cmn" style="width: 140px;">차량번호</th> <th class="cmn" style="width: 140px;">차량번호</th>
<th class="cmn" style="width: 160px;">법정동</th> <th class="cmn" style="width: 160px;">단속법정동</th>
<th class="cmn" style="width: 280px;">단속장소</th> <th class="cmn" style="width: 280px;">단속장소</th>
<th class="cmn" style="width: 100px;">회계연도</th> <th class="cmn" style="width: 100px;">회계연도</th>
<th class="cmn" style="width: 100px;">부과번호</th> <th class="cmn" style="width: 100px;">부과번호</th>
@ -74,7 +74,6 @@
<th class="cmn" style="width: 120px;">과태료금액</th> <th class="cmn" style="width: 120px;">과태료금액</th>
<th class="cmn" style="width: 120px;">본세</th> <th class="cmn" style="width: 120px;">본세</th>
<th class="cmn" style="width: 120px;">가산금</th> <th class="cmn" style="width: 120px;">가산금</th>
<th class="cmn" style="width: 120px;">미납금액</th>
<th class="cmn" style="width: 180px;">등록일시</th> <th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th> <th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th> <th class="cmn" style="width: 180px;">수정일시</th>
@ -112,7 +111,6 @@
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{PCPTAX}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ADAMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ADAMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{SUM_AMT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
@ -122,7 +120,7 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="31" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -136,7 +134,7 @@
</div> <!-- / Content <div class="container flex-grow-1 px-0"> --> </div> <!-- / Content <div class="container flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
</div> </div>
<!-- / inner page html <div class="content-wrapper"> --> <!-- / inner page html <div class="wrapper-pop"> -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -174,9 +172,9 @@
, DLVR_YMD: dateFormat , DLVR_YMD: dateFormat
, LEVY_YMD: dateFormat , LEVY_YMD: dateFormat
, DUDT_YMD: dateFormat , DUDT_YMD: dateFormat
, FFNLG_AMT: numberFormat
, PCPTAX: numberFormat , PCPTAX: numberFormat
, ADAMT: numberFormat , ADAMT: numberFormat
, SUM_AMT: numberFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat
, MDFCN_DT: datetimeFormat , MDFCN_DT: datetimeFormat
} }

@ -32,10 +32,10 @@
</div> </div>
<!-- 공시송달 종료 일자 --> <!-- 공시송달 종료 일자 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="svbtcYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">공시송달종료일자</label> <label for="svbtcEndYmd--${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="svbtcEndYmd--${pageName}" name="svbtcEndYmd" data-map="SVBTC_END_YMD" <input type="text" class="form-control form-date" id="svbtcEndYmd--${pageName}" name="svbtcEndYmd" data-map="SVBTC_END_YMD"
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required /> data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white" id="btnSvbtcYmd--${pageName}"></button> <button type="button" class="bx bx-sm bx-calendar bg-white" id="btnSvbtcEndYmd--${pageName}"></button>
</div> </div>
<!-- 문서 번호 --> <!-- 문서 번호 -->
<div class="col-md-12"> <div class="col-md-12">
@ -127,6 +127,7 @@
let sndngSeCd = item.data.SNDNG_SE_CD; let sndngSeCd = item.data.SNDNG_SE_CD;
$("#svbtcYmd--${pageName}").datepicker("setDate", new Date()); $("#svbtcYmd--${pageName}").datepicker("setDate", new Date());
$("#svbtcEndYmd--${pageName}").datepicker("setDate", DateUtil.getDateDay(15).date);
if (sndngSeCd == "") { if (sndngSeCd == "") {
$("#ttlNm--${pageName}").val(FIM054[taskSeCd].value + " " + "공시송달"); $("#ttlNm--${pageName}").val(FIM054[taskSeCd].value + " " + "공시송달");
} else { } else {
@ -182,11 +183,14 @@
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.control.save($P.formFields.get()); $P.control.save(params);
} }
}); });
} }
@ -218,6 +222,7 @@
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
$("#svbtcYmd--${pageName}").datepicker("setDate", new Date()); $("#svbtcYmd--${pageName}").datepicker("setDate", new Date());
$("#svbtcEndYmd--${pageName}").datepicker("setDate", new Date());
if ($P.callPurpose == "view") { // view if ($P.callPurpose == "view") { // view
// input 요소들을 disabled // input 요소들을 disabled

Loading…
Cancel
Save