롤백 소스 복구.

main
jjh 5 months ago
parent b92fb4d657
commit 5cae54f740

@ -315,7 +315,8 @@ public class Crdn06Controller extends ApplicationController {
return mav return mav
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("pageName", "crdn06020") // jsp pageName .addObject("pageName", "crdn06020") // jsp pageName
.addObject("infoPrefixUrl", "/crdn/crdn06") // prefixUrl .addObject("infoPrefix", "crdn") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("crdnInfo", json ? crdnInfo : toJson(crdnInfo)) .addObject("crdnInfo", json ? crdnInfo : toJson(crdnInfo))
; ;
} }
@ -366,9 +367,10 @@ public class Crdn06Controller extends ApplicationController {
return mav return mav
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("pageName", "crdn06030") // jsp pageName .addObject("pageName", "crdn06030") // jsp pageName
.addObject("infoPrefixUrl", "/crdn/crdn06") // prefixUrl .addObject("infoPrefix", "crdnSttsCd") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM010List", commonCodes.get("FIM010")) // 단속 처리 상태 코드(CRDN_STTS_CD) .addObject("FIM010List", commonCodes.get("FIM010")) // 단속 처리 상태 코드(CRDN_STTS_CD)
.addObject("crdnInfo", json ? crdnInfo : toJson(crdnInfo)) .addObject("crdnSttsCdInfo", json ? crdnInfo : toJson(crdnInfo))
; ;
} }

@ -435,7 +435,9 @@ public class Sndb01Controller extends ApplicationController {
.addObject("pageName", "sndb01040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "sndb01040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "wrngSndngDtl") // prefix .addObject("infoPrefix", "wrngSndngDtl") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("mainQuery", toJson(req)) // 검색 조건 .addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("sndngId", req.getSndngId()) // 발송 ID(SNDNG_ID)
.addObject("wrngSndngDtlList", toJson(mav.getModel().get("wrngSndngDtlList"))) // 자료 .addObject("wrngSndngDtlList", toJson(mav.getModel().get("wrngSndngDtlList"))) // 자료
; ;
} }
@ -767,7 +769,9 @@ public class Sndb01Controller extends ApplicationController {
.addObject("pageName", "sndb01080") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "sndb01080") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "advntceSndngDtl") // prefix .addObject("infoPrefix", "advntceSndngDtl") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("mainQuery", toJson(req)) // 검색 조건 .addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("sndngId", req.getSndngId()) // 발송 ID(SNDNG_ID)
.addObject("advntceSndngDtlList", toJson(mav.getModel().get("advntceSndngDtlList"))) // 자료 .addObject("advntceSndngDtlList", toJson(mav.getModel().get("advntceSndngDtlList"))) // 자료
; ;
} }
@ -1150,7 +1154,9 @@ public class Sndb01Controller extends ApplicationController {
.addObject("pageName", "sndb01120") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "sndb01120") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "nhtSndngDtl") // prefix .addObject("infoPrefix", "nhtSndngDtl") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("mainQuery", toJson(req)) // 검색 조건 .addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("sndngId", req.getSndngId()) // 발송 ID(SNDNG_ID)
.addObject("nhtSndngDtlList", toJson(mav.getModel().get("nhtSndngDtlList"))) // 자료 .addObject("nhtSndngDtlList", toJson(mav.getModel().get("nhtSndngDtlList"))) // 자료
; ;
} }

@ -163,13 +163,6 @@
<if test="schRtpyrNm != null"> <if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 --> AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
</if> </if>
<if test="sggCd != null">
AND C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
</if>
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
AND C.DEL_YN = 'N' <!-- 단속 삭제 여부 -->
<choose> <choose>
<when test="schRegDateOpt == 'regDt'"> <when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null"> <if test="schRegDateFrom != null">
@ -242,6 +235,9 @@
</otherwise> </otherwise>
</choose> </choose>
</if> </if>
AND C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND C.DEL_YN = 'N' <!-- 단속 삭제 여부 -->
</where> </where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
@ -400,8 +396,8 @@
SELECT CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(OPNN_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID SELECT CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(OPNN_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID
, (SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCPT_NO, 5)) + 1, 1) AS INT), 6, '0')) , (SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCPT_NO, 5)) + 1, 1) AS INT), 6, '0'))
FROM TB_OPNN_SBMSN FROM TB_OPNN_SBMSN
WHERE OPNN_ID LIKE CONCAT(#{opnnSbmsn.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') WHERE OPNN_ID LIKE CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
AND RCPT_NO LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')) AS NEW_RCPT_NO AND RCPT_NO LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')) AS NEW_RCPT_NO
FROM TB_OPNN_SBMSN FROM TB_OPNN_SBMSN
WHERE OPNN_ID LIKE CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') WHERE OPNN_ID LIKE CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey> </selectKey>

@ -1,21 +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> <c:set var="prefixName" scope="request">단속 자료 수정</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-pop">
<!-- Content --> <!-- Content -->
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- 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" />
<div class="row g-1"> <div class="row g-1">
<!-- 단속 일자 --> <!-- 단속 일자 -->
@ -39,16 +39,12 @@
<div class="col-md-6"> <div class="col-md-6">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label> <label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" id="vhrno--${pageName}" name="vhrno" class="form-control w-30" data-map="VHRNO" /> <input type="text" id="vhrno--${pageName}" name="vhrno" class="form-control w-30" data-map="VHRNO" />
<button type="button" id="btnVehicle--${pageName}" class="btn btn-sm btn-outline-dark" title="차량 검색"> <button type="button" id="btnVehicle--${pageName}" class="btn btn-sm btn-outline-dark" title="차량 검색">조회</button>
조회
</button>
</div> </div>
<!-- 위반 내용 --> <!-- 위반 내용 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="vltnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <label for="vltnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">위반내용</label>
위반내용 <select class="form-select w-px-160" id="vltnCd--${pageName}" name="vltnCd" data-map="VLTN_CD">
</label>
<select class="form-select" id="vltnCd--${pageName}" name="vltnCd" data-map="VLTN_CD">
<c:forEach items="${VLTNList}" var="item"> <c:forEach items="${VLTNList}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
@ -56,10 +52,7 @@
</div> </div>
<!-- 법정동 --> <!-- 법정동 -->
<div class="col-md-6 select2-primary"> <div class="col-md-6 select2-primary">
<label for="crdnStdgNm--${pageName}" <label for="crdnStdgNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">법정동</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
법정동
</label>
<input type="text" id="crdnStdgNm--${pageName}" name="crdnStdgNm" <input type="text" id="crdnStdgNm--${pageName}" name="crdnStdgNm"
class="form-control w-40" data-map="CRDN_STDG_NM" list="stdgNmList--${pageName}" /> class="form-control w-40" data-map="CRDN_STDG_NM" list="stdgNmList--${pageName}" />
<datalist id="stdgNmList--${pageName}"> <datalist id="stdgNmList--${pageName}">
@ -70,19 +63,13 @@
</div> </div>
<!-- 도로명 --> <!-- 도로명 -->
<div class="col-md-6 select2-primary"> <div class="col-md-6 select2-primary">
<label for="crdnRoadNm--${pageName}" <label for="crdnRoadNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">도로명</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
도로명
</label>
<input type="text" id="crdnRoadNm--${pageName}" name="crdnRoadNm" <input type="text" id="crdnRoadNm--${pageName}" name="crdnRoadNm"
class="form-control w-40" data-map="CRDN_ROAD_NM" /> class="form-control w-40" data-map="CRDN_ROAD_NM" />
</div> </div>
<!-- 단속 장소 --> <!-- 단속 장소 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="crdnPlc--${pageName}" <label for="crdnPlc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속장소</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
단속장소
</label>
<input type="text" id="crdnPlc--${pageName}" name="crdnPlc" <input type="text" id="crdnPlc--${pageName}" name="crdnPlc"
class="form-control w-80" data-map="CRDN_PLC" data-maxlengthb="200" /> class="form-control w-80" data-map="CRDN_PLC" data-maxlengthb="200" />
</div> </div>
@ -90,10 +77,7 @@
<div class="col-md-12" slot="edit"> <div class="col-md-12" slot="edit">
<template class="bpv"> <template class="bpv">
<slot> <slot>
<label for="dtlCrdnPlc--${pageName}" <label for="dtlCrdnPlc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세단속장소</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
상세단속장소
</label>
<input type="text" id="dtlCrdnPlc--${pageName}" name="dtlCrdnPlc" <input type="text" id="dtlCrdnPlc--${pageName}" name="dtlCrdnPlc"
class="form-control w-80" data-map="DTL_CRDN_PLC" data-maxlenghb="200" /> class="form-control w-80" data-map="DTL_CRDN_PLC" data-maxlenghb="200" />
</slot> </slot>
@ -102,10 +86,7 @@
<div class="col-md-6" slot="edit"> <div class="col-md-6" slot="edit">
<template class="pvs"> <template class="pvs">
<slot> <slot>
<label for="crdnSpareaCd--${pageName}" <label for="crdnSpareaCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">특별구역</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
특별구역
</label>
<select id="crdnSpareaCd--${pageName}" name="crdnSpareaCd" <select id="crdnSpareaCd--${pageName}" name="crdnSpareaCd"
class="form-select" data-map="CRDN_SPAREA_CD"> class="form-select" data-map="CRDN_SPAREA_CD">
<c:forEach items="${FIM007List}" var="item"> <c:forEach items="${FIM007List}" var="item">
@ -129,42 +110,30 @@
</div> </div>
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">특기사항</label>
특기사항
</label>
<input type="text" id="etcCn--${pageName}" name="etcCn" <input type="text" id="etcCn--${pageName}" name="etcCn"
class="form-control w-80" data-map="ETC_CN" data-maxlengthb="1000" /> class="form-control w-80" data-map="ETC_CN" data-maxlengthb="1000" />
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="vin--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <label for="vin--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차대번호</label>
차대번호
</label>
<input type="text" id="vin--${pageName}" name="vin" <input type="text" id="vin--${pageName}" name="vin"
class="form-control" data-map="VIN" readonly placeholder="입력항목이 아닙니다." /> class="form-control" data-map="VIN" readonly placeholder="입력항목이 아닙니다." />
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="vhclNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <label for="vhclNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량명칭</label>
차량명칭
</label>
<input type="text" id="vhclNm--${pageName}" name="vhclNm" <input type="text" id="vhclNm--${pageName}" name="vhclNm"
class="form-control" data-map="VHCL_NM" readonly placeholder="입력항목이 아닙니다." /> class="form-control" data-map="VHCL_NM" readonly placeholder="입력항목이 아닙니다." />
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="vhclColor--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <label for="vhclColor--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량색상</label>
차량색상
</label>
<input type="text" id="vhclColor--${pageName}" name="vhclColor" <input type="text" id="vhclColor--${pageName}" name="vhclColor"
class="form-control" data-map="VHCL_COLOR" readonly placeholder="입력항목이 아닙니다." /> class="form-control" data-map="VHCL_COLOR" readonly placeholder="입력항목이 아닙니다." />
</div> </div>
<div class="col-md-12" slot="edit"> <div class="col-md-12" slot="edit">
<template class="pvs bpv"> <template class="pvs bpv">
<slot> <slot>
<label for="ffnlgCarmdlCd--${pageName}" <label for="ffnlgCarmdlCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차종</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <select id="ffnlgCarmdlCd--${pageName}" name="ffnlgCarmdlCd" class="form-select" data-map="FFNLG_CARMDL_CD">
차종
</label>
<select id="ffnlgCarmdlCd--${pageName}" name="ffnlgCarmdlCd"
class="form-select" data-map="FFNLG_CARMDL_CD">
<option value=""></option> <option value=""></option>
<c:forEach items="${FIM009List}" var="item"> <c:forEach items="${FIM009List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -176,12 +145,8 @@
<div class="col-md-12" slot="edit"> <div class="col-md-12" slot="edit">
<template class="eca"> <template class="eca">
<slot> <slot>
<label for="useFuelCd--${pageName}" <label for="useFuelCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연료구분</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <select id="useFuelCd--${pageName}" class="form-select" name="useFuelCd" data-map="USE_FUEL_CD" disabled>
연료구분
</label>
<select id="useFuelCd--${pageName}"
class="form-select" name="useFuelCd" data-map="USE_FUEL_CD" disabled>
<option value=""></option> <option value=""></option>
<c:forEach items="${LVS005List}" var="item"> <c:forEach items="${LVS005List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -193,10 +158,8 @@
<div class="col-md-6" slot="edit"> <div class="col-md-6" slot="edit">
<template class="dpv eca pvs"> <template class="dpv eca pvs">
<slot> <slot>
<label for="towngYn--${pageName}" <label for="towngYn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">견인지시</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">견인지시</label> <select id="towngYn--${pageName}" name="towngYn" class="form-select w-px-120" data-map="TOWNG_YN">
<select id="towngYn--${pageName}" name="towngYn"
class="form-select" data-map="TOWNG_YN">
<c:forEach items="${FIM053List}" var="item"> <c:forEach items="${FIM053List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
@ -207,10 +170,7 @@
<div class="col-md-6" slot="edit"> <div class="col-md-6" slot="edit">
<template class="dpv eca pvs"> <template class="dpv eca pvs">
<slot> <slot>
<label for="crdnSn--${pageName}" <label for="crdnSn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">스티커번호</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
스티커번호
</label>
<input type="text" id="crdnSn--${pageName}" name="crdnSn" <input type="text" id="crdnSn--${pageName}" name="crdnSn"
class="form-control" data-map="CRDN_SN" maxlength="20" data-maxlengthb="20" /> class="form-control" data-map="CRDN_SN" maxlength="20" data-maxlengthb="20" />
</slot> </slot>
@ -219,12 +179,8 @@
<div class="col-md-6" slot="edit"> <div class="col-md-6" slot="edit">
<template class="dpv"> <template class="dpv">
<slot> <slot>
<label for="parkngPsbltyRsltCd--${pageName}" <label for="parkngPsbltyRsltCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">장애차량확인</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <select id="parkngPsbltyRsltCd--${pageName}" name="parkngPsbltyRsltCd" class="form-select w-px-120" data-map="PARKNG_PSBLTY_RSLT_CD">
장애차량확인
</label>
<select id="parkngPsbltyRsltCd--${pageName}" name="parkngPsbltyRsltCd"
class="form-select" data-map="PARKNG_PSBLTY_RSLT_CD">
<c:forEach items="${FIM034List}" var="item"> <c:forEach items="${FIM034List}" var="item">
<c:if test="${item.code == '0' or item.code == '1'}"> <c:if test="${item.code == '0' or item.code == '1'}">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -236,25 +192,26 @@
</div> </div>
</div> </div>
</form> </form>
<!-- /입력 영역 --> <!-- 입력 영역 -->
</div>
<!-- <div class="card"> --> <!-- 업무 버튼 및 건수 표시 -->
<div>
<!-- 업무 버튼 표시 --> <span class="container-page-btn">
<div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" id="btnSave--${pageName}" class="btn btn-primary w-px-80" title="저장"> <span class="container-window-btn-right">
저장 <button type="button" id="btnSave--${pageName}" class="btn btn-primary w-px-80" title="저장">
</button> 저장
</button>
</span>
</span> </span>
</span> </div> <!-- 업무 버튼 및 건수 표시 -->
</div> </div> <!-- <div class="card"> -->
<!-- / 업무 버튼 표시 --> <!-- Page Body -->
</div> <!-- / Content <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container flex-grow-1 px-0"> -->
</div> <!-- / inner page html <div class="content-wrapper"> --> <!-- Content -->
</div>
<!-- / inner page html <div class="content-pop"> -->
<script> <script>
/************************************************************************** /**************************************************************************

@ -4,28 +4,24 @@
<c:set var="prefixName" scope="request">단속 상태 정보</c:set> <c:set var="prefixName" scope="request">단속 상태 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-pop">
<!-- Content --> <!-- Content -->
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- 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" />
<div class="row g-1"> <div class="row g-1">
<!-- 단속 처리 상태 코드 --> <!-- 단속 처리 상태 코드 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="crdnSttsCd--${pageName}" <label for="crdnSttsCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">처리상태</label>
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required"> <select id="crdnSttsCd--${pageName}" name="crdnSttsCd" class="form-select" data-map="CRDN_STTS_CD" required>
처리 상태
</label>
<select id="crdnSttsCd--${pageName}" name="crdnSttsCd"
class="form-select" data-map="CRDN_STTS_CD" required>
<option value="">선택하세요</option> <option value="">선택하세요</option>
<c:forEach items="${FIM010List}" var="item"> <c:forEach items="${FIM010List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -34,31 +30,31 @@
</div> </div>
<!-- 기타 내용 --> <!-- DB에 등록할 때 문구가 추가로 붙기 때문에 data-maxlengthb="940" 으로 지정 --> <!-- 기타 내용 --> <!-- DB에 등록할 때 문구가 추가로 붙기 때문에 data-maxlengthb="940" 으로 지정 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end"> <label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타내용</label>
기타 내용 <input type="text" class="form-control w-85" id="etcCn--${pageName}" name="etcCn" data-maxlengthb="940" />
</label>
<input type="text" id="etcCn--${pageName}" name="etcCn"
class="form-control w-85" data-maxlengthb="940" />
</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" id="btnSave--${pageName}" class="btn btn-primary w-px-80" title="저장"> <span class="container-window-btn-right">
저장 <button type="button" id="btnSave--${pageName}" class="btn btn-primary w-px-80" title="저장">
</button> 저장
</button>
</span>
</span> </span>
</span> </div> <!-- 업무 버튼 및 건수 표시 -->
</div> </div> <!-- <div class="card"> -->
<!-- / 업무 버튼 표시 --> <!-- Page Body -->
</div> <!-- / Content <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container flex-grow-1 px-0"> -->
</div> <!-- / inner page html <div class="content-wrapper"> --> <!-- Content -->
</div>
<!-- / inner page html <div class="content-pop"> -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -85,7 +81,7 @@
prefix: "crdnSttsCd" prefix: "crdnSttsCd"
, prefixName: "단속처리상태" , prefixName: "단속처리상태"
, keymapper: info => info ? info.CRDN_ID : "" , keymapper: info => info ? info.CRDN_ID : ""
, dataGetter: obj => obj.crdnInfo , dataGetter: obj => obj.${infoPrefix}Info
}); });
/************************************************************************** /**************************************************************************
@ -108,8 +104,8 @@
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
, init : function(){ , init: function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
} }
@ -148,10 +144,9 @@
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({ dialog.alert({
content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init : function() { , init: function() { focusOK(); }
focusOK(); , onOK: () => {
}, onOK : () => {
$P.control.save($P.formFields.get()); // formFields $P.control.save($P.formFields.get()); // formFields
} }
}); });
@ -168,7 +163,7 @@
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
//
} }
/************************************************************************** /**************************************************************************
@ -181,7 +176,7 @@
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. Dataset 설정
$P.control.setData([${crdnInfo}]); $P.control.setData([${crdnSttsCdInfo}]);
}); });
</script> </script>

@ -60,9 +60,9 @@
<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-6"> <div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" /> <input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly /> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <input type="hidden" id="subOption--${pageName}" name="subOption" />

@ -1,7 +1,7 @@
<%@ 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> <c:set var="prefixName" scope="request">사전 감경 부과</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-wrapper">

@ -9,287 +9,285 @@
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- 상단 버튼 --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <!-- 메인 조건 -->
<!-- hidden --> <div class="container-search">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <div class="row g-1">
<!-- 업무 구분 -->
<!-- 메인 조건 --> <div class="col-12">
<div class="container-search"> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="row g-1"> <span class="form-search-linebox">
<!-- 업무 구분 --> <c:forEach items="${taskListForSgg}" var="item">
<div class="col-12"> <label>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-search-linebox"> value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
<c:forEach items="${taskListForSgg}" var="item"> ${item.value}
<label> </label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </c:forEach>
value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);"> </span>
${item.value} </div>
</label> <!-- 계고 일자 -->
</c:forEach> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclYmdFrom--${pageName}">계고일자</label>
</div> <span class="form-search-linebox">
<!-- 계고 일자 --> <input type="text" class="form-control form-date" id="schLevyExclYmdFrom--${pageName}" name="schLevyExclYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclYmdFrom--${pageName}">계고일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schLevyExclYmdFrom--${pageName}" name="schLevyExclYmdFrom" <input type="text" class="form-control form-date" id="schLevyExclYmdTo--${pageName}" name="schLevyExclYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schLevyExclYmdTo--${pageName}" name="schLevyExclYmdTo" </div>
data-fmt-type="day" title="종료 날짜 선택" /> <!-- 계고 사유 -->
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclRsnCd--${pageName}">계고사유</label>
</div> <select class="form-select w-px-200" id="schLevyExclRsnCd--${pageName}" name="schLevyExclRsnCd">
<!-- 계고 사유 --> <option value="">전체</option>
<div class="col-6"> <c:forEach items="${FIM022List}" var="item">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclRsnCd--${pageName}">계고사유</label> <option value="${item.code}">${item.value}</option>
<select class="form-select w-px-200" id="schLevyExclRsnCd--${pageName}" name="schLevyExclRsnCd"> </c:forEach>
<option value="">전체</option> </select>
<c:forEach items="${FIM022List}" var="item"> </div>
<option value="${item.code}">${item.value}</option> <!-- 위반 항목 -->
</c:forEach> <div class="col-6">
</select> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schVltnCd--${pageName}">위반항목</label>
</div> <select class="form-select w-px-160" id="schVltnCd--${pageName}" name="schVltnCd">
<!-- 위반 항목 --> <option value="">전체</option>
<div class="col-6"> <c:forEach items="${FIM004List}" var="item">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schVltnCd--${pageName}">위반항목</label> <option value="${item.code}">${item.value}</option>
<select class="form-select w-px-160" id="schVltnCd--${pageName}" name="schVltnCd"> </c:forEach>
<option value="">전체</option> </select>
<c:forEach items="${FIM004List}" var="item"> </div>
<option value="${item.code}">${item.value}</option> <!-- 동적검색 -->
</c:forEach> <div class="col-6">
</select> <input type="hidden" id="by--${pageName}" name="by" />
</div> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<!-- 동적검색 --> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<div class="col-6"> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="hidden" id="by--${pageName}" name="by" /> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly /> <!-- 상세 검색조건 버튼 -->
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <span class="flr">
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" /> <i class="bx bx-chevron-down"></i>
<!-- 상세 검색조건 버튼 --> 상세검색
<span class="flr"> </button>
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}"> </span>
<i class="bx bx-chevron-down"></i> </div>
상세검색 </div>
</button> </div> <!-- 메인 조건 -->
</span>
</div> <!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 단속일자 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schCrdnYmdFrom--${pageName}">단속일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schVhrno--${pageName}">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div> </div>
</div> <!-- 메인 조건 --> <!-- 납부자번호 -->
<div class="col-4">
<!-- 상세 조건 --> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNm--${pageName}">납부자번호</label>
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm" autocomplete="off" />
<div class="row g-1">
<!-- 단속일자 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schCrdnYmdFrom--${pageName}">단속일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schVhrno--${pageName}">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div>
<!-- 납부자번호 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNm--${pageName}">납부자번호</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm" autocomplete="off" />
</div>
<!-- 납부자명 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNo--${pageName}">납부자명</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNo--${pageName}" name="schRtpyrNo" autocomplete="off" />
</div>
<!-- 등록일자, 수정일자 -->
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div> </div>
</div> <!-- 상세 조건 --> <!-- 납부자명 -->
</form> <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>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div> </div>
<!-- 업무 버튼 --> <!-- 등록일자, 수정일자 -->
<span class="container-window-btn-right"> <div class="col-4">
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateWrng--${pageName}" title="계고 수정"> <select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
계고 수정 <option value="regDt">등록일자</option>
</button> <option value="mdfcnDt">수정일자</option>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSlctnTrgtInfo--${pageName}" title="선택 발송대상 등록"> </select>
선택 대상 등록 <span class="form-search-linebox">
</button> <input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
<button type="button" class="btn btn-primary w-px-120" id="btnCreateWholTrgtInfo--${pageName}" title="선택 발송대상 등록"> data-fmt-type="day" title="시작 날짜 선택" />
전체 대상 등록 <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</button> ~
</span> <input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
</span> data-fmt-type="day" title="종료 날짜 선택">
</div> <!-- 업무 버튼 및 건수 표시 --> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_YMD', this.innerText, 'ymd', '');">계고일자</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('LEVY_EXCL_RSN_CD', this.innerText, 'codeValue', 'FIM022');">계고사유</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_PRCS_PIC_NM', this.innerText, 'match', 'part');">민원처리담당자</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('CVLCPT_PRCS_CD', this.innerText, 'codeValue', 'FIM017');">민원처리결과</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: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ADDR', this.innerText, 'match', 'part');">주소</th>
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>
<th class="dpv" style="width: 140px;" onclick="searchFromGridTitle('PARKNG_PSBLTY_RSLT_CD', this.innerText, 'codeValue', 'FIM034');">주차가능여부</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{CRDN_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{CRDN_ID}" onchange="pageObject['${pageName}'].control.select('{CRDN_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_RSN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_PRCS_PIC_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_PRCS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_MASK}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ZIP}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_ADDR}</td>
<td class="pvs text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_SPAREA_NM}</td>
<td class="eca text-center" onclick="{onclick}" ondblclick="{ondblclick}">{USE_FUEL_NM}</td>
<td class="dpv text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PARKNG_PSBLTY_RSLT_NM}</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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
<!-- 등록자명, 수정자명 -->
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div>
</div> <!-- 상세 조건 -->
</form>
<!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateWrng--${pageName}" title="계고 수정">
계고 수정
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSlctnTrgtInfo--${pageName}" title="선택 발송대상 등록">
선택 대상 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateWholTrgtInfo--${pageName}" title="선택 발송대상 등록">
전체 대상 등록
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_YMD', this.innerText, 'ymd', '');">계고일자</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('LEVY_EXCL_RSN_CD', this.innerText, 'codeValue', 'FIM022');">계고사유</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_PRCS_PIC_NM', this.innerText, 'match', 'part');">민원처리담당자</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('CVLCPT_PRCS_CD', this.innerText, 'codeValue', 'FIM017');">민원처리결과</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: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ADDR', this.innerText, 'match', 'part');">주소</th>
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>
<th class="dpv" style="width: 140px;" onclick="searchFromGridTitle('PARKNG_PSBLTY_RSLT_CD', this.innerText, 'codeValue', 'FIM034');">주차가능여부</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{CRDN_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{CRDN_ID}" onchange="pageObject['${pageName}'].control.select('{CRDN_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_RSN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_PRCS_PIC_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_PRCS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_MASK}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ZIP}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_ADDR}</td>
<td class="pvs text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_SPAREA_NM}</td>
<td class="eca text-center" onclick="{onclick}" ondblclick="{ondblclick}">{USE_FUEL_NM}</td>
<td class="dpv text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PARKNG_PSBLTY_RSLT_NM}</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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> <!-- DataTables(그리드) --> </div>
</div> <!-- <div class="wrapper-list"> --> </div> <!-- DataTables(그리드) -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card wrapper-list"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->

@ -9,213 +9,211 @@
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- 상단 버튼 --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <!-- 메인 조건 -->
<!-- hidden --> <div class="container-search">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <div class="row g-1">
<!-- 업무 구분 -->
<!-- 메인 조건 --> <div class="col-12">
<div class="container-search"> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="row g-1"> <span class="form-search-linebox">
<!-- 업무 구분 --> <c:forEach items="${taskListForSgg}" var="item">
<div class="col-12"> <label>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-search-linebox"> value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
<c:forEach items="${taskListForSgg}" var="item"> ${item.value}
<label> </label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </c:forEach>
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);"> </span>
${item.value} </div>
</label> <!-- 발송 일자 -->
</c:forEach> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label>
</div> <span class="form-search-linebox">
<!-- 발송 일자 --> <input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom" <input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 발송 등록 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<c:forEach items="${FIM067List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- -->
<div class="col-6">
</div>
<!-- 동적 검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div> </div>
</div> <!-- 메인 조건 --> <!-- 발송 등록 구분 코드 -->
<div class="col-6">
<!-- 상세 조건 --> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<div class="row g-1"> <c:forEach items="${FIM067List}" var="item">
<!-- 등록일자, 수정일자 --> <option value="${item.code}">${item.value}</option>
<div class="col-6"> </c:forEach>
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> </select>
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div> </div>
</div> <!-- 상세 조건 --> <!-- -->
</form> <div class="col-6">
<!-- 검색 조건 영역 --> </div>
<!-- 동적 검색 -->
<!-- 업무 버튼 및 건수 표시 --> <div class="col-6">
<div> <input type="hidden" id="by--${pageName}" name="by" />
<span class="container-page-btn"> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<!-- 건수, 페이지 표시 --> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<div class="d-flex flex-row justify-content-between"> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<ul class="pagination pagination-primary" id="paging--${pageName}"> <!-- 상세 검색조건 버튼 -->
</ul> <span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div>
</div> <!-- 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div> </div>
<!-- 업무 버튼 --> <!-- 등록자명, 수정자명 -->
<span class="container-window-btn-right"> <div class="col-6">
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="계고장 발송 삭제"> <select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
발송 삭제 <option value="rgtr">등록자</option>
</button> <option value="mdfr">수정자</option>
</span> </select>
</span> <input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
</div> <!-- 업무 버튼 및 건수 표시 --> <input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> </div>
</div> <!-- DataTables(그리드) --> </div> <!-- 상세 조건 -->
</div> <!-- <div class="wrapper-list"> --> </form>
</div> <!-- <div class="card"> --> <!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="계고장 발송 삭제">
발송 삭제
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div> <!-- DataTables(그리드) -->
</div> <!-- <div class="card wrapper-list"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -541,21 +539,22 @@
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: async() => { , onOK: () => {
// 삭제 사유 입력 // 삭제 사유 입력
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html")); fetch(wctx.url("/resources/html/inputRsnDialog.html"))
let template = await resp.text(); .then(function(resp) { return resp.text(); })
.then(function(template) {
dialog.open({ dialog.open({
id: "inputDelRsnDialog" id: "inputDelRsnDialog"
, title: title , title: title
, size : "lg" , size: "lg"
, content: template , content: template
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() }); $P.callbackRsn({ reason: $("#reason").val() });
} }
}); });
});
} }
}); });
} }

@ -14,6 +14,7 @@
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
<input type="hidden" id="sndngId--${pageName}" name=sndngId />
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
@ -136,8 +137,6 @@
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields("#frmEdit--${pageName}");
// main 의 검색 조건을 그대로 유지
$P.mainQuery = ${mainQuery};
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -260,6 +259,12 @@
// 출력 // 출력
$P.print = (params) => { $P.print = (params) => {
if (!params) return; if (!params) return;
dialog.alert({
content: "작업중입니다"
, onOK: () => {
}
});
} }
/************************************************************************** /**************************************************************************
@ -276,6 +281,11 @@
return; return;
} }
// 검색조건
$P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부
// DataTables(그리드) // DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
@ -290,8 +300,7 @@
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({ dialog.alert({
// content: $P.control.prefixName + " 정보를 출력하시겠습니까?" content: $P.control.prefixName + " 정보를 출력하시겠습니까?"
content: "작업중입니다"
, onOK: () => { , onOK: () => {
$P.print($P.formFields.get()); $P.print($P.formFields.get());
} }
@ -334,15 +343,12 @@
$("#frmEdit--${pageName}")[0].reset(); $("#frmEdit--${pageName}")[0].reset();
// 기본 데이터 설정 // 기본 데이터 설정
$("#sggCd--${pageName}").val($P.mainQuery.sggCd); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#taskSeCd--${pageName}").val($P.mainQuery.taskSeCd); // 업무 구분 코드 $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드
$("#sndngId--${pageName}").val("${sndngId}"); // 발송 ID
// 검색 조건 설정
$P.control.defaultFetchSize = $P.mainQuery.fetchSize;
$P.control.query = $P.mainQuery;
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask($P.mainQuery.taskSeCd); $P.setTask("${taskSeCd}");
} }
// 업무 구분별 설정 // 업무 구분별 설정

@ -9,213 +9,211 @@
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- 상단 버튼 --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <!-- 메인 조건 -->
<!-- hidden --> <div class="container-search">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <div class="row g-1">
<!-- 업무 구분 -->
<!-- 메인 조건 --> <div class="col-12">
<div class="container-search"> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="row g-1"> <span class="form-search-linebox">
<!-- 업무구분 --> <c:forEach items="${taskListForSgg}" var="item">
<div class="col-12"> <label>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-search-linebox"> value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
<c:forEach items="${taskListForSgg}" var="item"> ${item.value}
<label> </label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </c:forEach>
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);"> </span>
${item.value} </div>
</label> <!-- 발송 일자 -->
</c:forEach> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label>
</div> <span class="form-search-linebox">
<!-- 발송일자 --> <input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom" <input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 발송 등록 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<c:forEach items="${FIM067List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- -->
<div class="col-6">
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div> </div>
</div> <!-- 메인 조건 --> <!-- 발송 등록 구분 코드 -->
<div class="col-6">
<!-- 상세 조건 --> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<div class="row g-1"> <c:forEach items="${FIM067List}" var="item">
<!-- 등록일자, 수정일자 --> <option value="${item.code}">${item.value}</option>
<div class="col-6"> </c:forEach>
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> </select>
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div> </div>
</div> <!-- 상세 조건 --> <!-- -->
</form> <div class="col-6">
<!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div> </div>
<!-- 업무 버튼 --> <!-- 동적 검색 -->
<span class="container-window-btn-right"> <div class="col-6">
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="사전통지 발송 삭제"> <input type="hidden" id="by--${pageName}" name="by" />
발송 삭제 <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
</button> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
</span> <input type="hidden" id="subOption--${pageName}" name="subOption" />
</span> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
</div> <!-- 업무 버튼 및 건수 표시 --> <!-- 상세 검색조건 버튼 -->
<span class="flr">
<!-- DataTables(그리드) --> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<div class="card-datatable text-nowrap"> <i class="bx bx-chevron-down"></i>
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}"> 상세검색
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}"> </button>
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info"> </span>
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> </div>
</div> <!-- DataTables(그리드) --> </div> <!-- 메인 조건 -->
</div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> <!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div>
</div> <!-- 상세 조건 -->
</form>
<!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="사전통지 발송 삭제">
발송 삭제
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div> <!-- DataTables(그리드) -->
</div> <!-- <div class="card wrapper-list"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -541,21 +539,22 @@
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: async() => { , onOK: () => {
// 삭제 사유 입력 // 삭제 사유 입력
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html")); fetch(wctx.url("/resources/html/inputRsnDialog.html"))
let template = await resp.text(); .then(function(resp) { return resp.text(); })
.then(function(template) {
dialog.open({ dialog.open({
id: "inputDelRsnDialog" id: "inputDelRsnDialog"
, title: title , title: title
, size: "lg" , size: "lg"
, content: template , content: template
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() }); $P.callbackRsn({ reason: $("#reason").val() });
} }
}); });
});
} }
}); });
} }

@ -14,6 +14,7 @@
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
<input type="hidden" id="sndngId--${pageName}" name=sndngId />
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
@ -146,7 +147,6 @@
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body --> <!-- Page Body -->
<span id="tempArea--${pageName}" hidden></span>
</div> <!-- <div class="container flex-grow-1 px-0"> --> </div> <!-- <div class="container flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
</div> </div>
@ -169,8 +169,6 @@
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields("#frmEdit--${pageName}");
// main 의 검색 조건을 그대로 유지
$P.mainQuery = ${mainQuery};
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -373,7 +371,7 @@
}); });
} }
// // 반송 확인(종적결과 등록) // 반송 확인(종적결과 등록)
$P.createSndbk = (params) => { $P.createSndbk = (params) => {
if (!params) return; if (!params) return;
@ -406,6 +404,11 @@
return; return;
} }
// 검색조건
$P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부
// DataTables(그리드) // DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
@ -562,7 +565,7 @@
content: "종적결과를 확인하시겠습니까?" content: "종적결과를 확인하시겠습니까?"
, onOK: () => { , onOK: () => {
// 파리미터 설정 // 파리미터 설정
let params = $P.mainQuery; // mainQuery let params = $P.formFields.get(); // mainQuery
params.title = title; // 타이틀 params.title = title; // 타이틀
$P.createSndbk(params); $P.createSndbk(params);
@ -630,21 +633,18 @@
$("#frmEdit--${pageName}")[0].reset(); $("#frmEdit--${pageName}")[0].reset();
// 기본 데이터 설정 // 기본 데이터 설정
$("#sggCd--${pageName}").val($P.mainQuery.sggCd); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#taskSeCd--${pageName}").val($P.mainQuery.taskSeCd); // 업무 구분 코드 $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드
$("#sndngId--${pageName}").val("${sndngId}"); // 발송 ID
// 업무가 주정차위반(PVS) 또는 전용차로위반(BPV) 이라면.. // 업무가 주정차위반(PVS) 또는 전용차로위반(BPV) 이라면..
if ($P.mainQuery.taskSeCd == "PVS" || $P.mainQuery.taskSeCd == "BPV") { if ("${taskSeCd}" == "PVS" || "${taskSeCd}" == "BPV") {
$("#btnLinkNxrpIndivA01--${pageName}").prop("disabled", true); $("#btnLinkNxrpIndivA01--${pageName}").prop("disabled", true);
$("#btnLinkNxrpIndivA03--${pageName}").prop("disabled", true); $("#btnLinkNxrpIndivA03--${pageName}").prop("disabled", true);
} }
// 검색 조건 설정
$P.control.defaultFetchSize = $P.mainQuery.fetchSize;
$P.control.query = $P.mainQuery;
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask($P.mainQuery.taskSeCd); $P.setTask("${taskSeCd}");
} }
// 업무 구분별 설정 // 업무 구분별 설정

@ -7,212 +7,208 @@
<div class="content-wrapper"> <div class="content-wrapper">
<!-- Content --> <!-- Content -->
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- hidden -->
<!-- / 상단 버튼 --> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 --> <!-- 메인 조건 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <div class="container-search">
<!-- hidden --> <div class="row g-1">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <!-- 업무 구분 -->
<div class="col-12">
<!-- 메인 조건 --> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="container-search"> <span class="form-search-linebox">
<div class="row g-1"> <c:forEach items="${taskListForSgg}" var="item">
<!-- 업무구분 --> <label>
<div class="col-12"> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-label fw-bold form-search-title">업무구분</span> value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
<span class="form-search-linebox"> ${item.value}
<c:forEach items="${taskListForSgg}" var="item"> </label>
<label> </c:forEach>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </span>
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);"> </div>
${item.value} <!-- 발송 일자 -->
</label> <div class="col-6">
</c:forEach> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label>
</span> <span class="form-search-linebox">
</div> <input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
<!-- 발송일자 --> data-fmt-type="day" title="시작 날짜 선택" />
<div class="col-6"> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-label fw-bold form-search-title">발송일자</span> ~
<span class="form-search-linebox"> <input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom" data-fmt-type="day" title="종료 날짜 선택" />
data-fmt-type="day" title="시작 날짜 선택" /> <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>
~
<input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div> </div>
</div> <!-- / 메인 조건 --> <!-- 동적 검색 -->
<div class="col-6">
<!-- 상세 조건 --> <input type="hidden" id="by--${pageName}" name="by" />
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<div class="row g-1"> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<!-- 등록일자, 수정일자 --> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<div class="col-6"> <input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" />
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> <!-- 상세 검색조건 버튼 -->
<option value="regDt">등록일자</option> <span class="flr">
<option value="mdfcnDt">수정일자</option> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
</select> <i class="bx bx-chevron-down"></i>
<span class="form-search-linebox"> 상세검색
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">
검색
</button> </button>
</div> </span>
</div> </div>
</div> <!-- / 상세 조건 --> </div>
</form> </div> <!-- 메인 조건 -->
<!-- / 검색 조건 영역 -->
<!-- 상세 조건 -->
<!-- 업무 버튼 및 건수 표시 --> <div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div> <div class="row g-1">
<span class="container-page-btn"> <!-- 등록일자, 수정일자 -->
<!-- 건수, 페이지 표시 --> <div class="col-6">
<div class="d-flex flex-row justify-content-between"> <select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span> <option value="regDt">등록일자</option>
<ul class="pagination pagination-primary" id="paging--${pageName}"> <option value="mdfcnDt">수정일자</option>
</ul> </select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div> </div>
<span class="container-window-btn-right"> <!-- 등록자명, 수정자명 -->
<!-- 업무 버튼 --> <div class="col-6">
<button type="button" class="btn btn-primary w-px-120" id="btnCreateNhtSndng--${pageName}" title="고지서 발송 등록"> <select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
발송 등록 <option value="rgtr">등록자</option>
</button> <option value="mdfr">수정자</option>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveNhtSndng--${pageName}" title="고지서 발송 삭제"> </select>
발송 삭제 <input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
</button> <input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
</span> <button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</span>
</div>
<!-- / 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> </div>
</div> <!-- 상세 조건 -->
</form>
<!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnCreateNhtSndng--${pageName}" title="고지서 발송 등록">
발송 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveNhtSndng--${pageName}" title="고지서 발송 삭제">
발송 삭제
</button>
</span>
</span>
</div>
<!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div> </div>
<!-- / DataTables(그리드) --> </div> <!-- DataTables(그리드) -->
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="card wrapper-list"> -->
</div> <!-- <div class="card"> --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- / Content --> <!-- Content -->
<div class="content-backdrop fade"></div> <div class="content-backdrop fade"></div>
</div> </div>

@ -9,226 +9,224 @@
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- 상단 버튼 --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <!-- 메인 조건 -->
<!-- hidden --> <div class="container-search">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <div class="row g-1">
<!-- 업무 구분 -->
<!-- 메인 조건 --> <div class="col-12">
<div class="container-search"> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="row g-1"> <span class="form-search-linebox">
<!-- 업무구분 --> <c:forEach items="${taskListForSgg}" var="item">
<div class="col-12"> <label>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-search-linebox"> value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
<c:forEach items="${taskListForSgg}" var="item"> ${item.value}
<label> </label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </c:forEach>
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);"> </span>
${item.value} </div>
</label> <!-- 발송일자 -->
</c:forEach> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label>
</div> <span class="form-search-linebox">
<!-- 발송일자 --> <input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom" <input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 발송 등록 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<option value="">전체</option>
<c:forEach items="${FIM067List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 발송 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<option value="">전체</option>
<c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div> </div>
</div> <!-- 메인 조건 --> <!-- 발송 등록 구분 코드 -->
<div class="col-6">
<!-- 상세 조건 --> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<div class="row g-1"> <option value="">전체</option>
<!-- 등록일자, 수정일자 --> <c:forEach items="${FIM067List}" var="item">
<div class="col-6"> <option value="${item.code}">${item.value}</option>
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> </c:forEach>
<option value="regDt">등록일자</option> </select>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div> </div>
</div> <!-- 상세 조건 --> <!-- 발송 구분 코드 -->
</form> <div class="col-6">
<!-- 검색 조건 영역 --> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<!-- 업무 버튼 및 건수 표시 --> <option value="">전체</option>
<div> <c:forEach items="${FIM047List}" var="item">
<span class="container-page-btn"> <option value="${item.code}">${item.value}</option>
<!-- 건수, 페이지 표시 --> </c:forEach>
<div class="d-flex flex-row justify-content-between"> </select>
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div> </div>
<!-- 업무 버튼 --> <!-- 동적검색 -->
<span class="container-window-btn-right"> <div class="col-6">
<button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="고지서 발송 등록"> <input type="hidden" id="by--${pageName}" name="by" />
발송 등록 <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
</button> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="고지서 발송 삭제"> <input type="hidden" id="subOption--${pageName}" name="subOption" />
발송 삭제 <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
</button> <!-- 상세 검색조건 버튼 -->
</span> <span class="flr">
</span> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
</div> <!-- 업무 버튼 및 건수 표시 --> <i class="bx bx-chevron-down"></i>
상세검색
<!-- DataTables(그리드) --> </button>
<div class="card-datatable text-nowrap"> </span>
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM067');">발송구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> </div>
</div> <!-- DataTables(그리드) --> </div> <!-- 메인 조건 -->
</div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> <!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div>
</div> <!-- 상세 조건 -->
</form>
<!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="고지서 발송 등록">
발송 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="고지서 발송 삭제">
발송 삭제
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM067');">발송구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_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: 140px;" onclick="searchFromGridTitle('GRAMT', 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</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-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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div> <!-- DataTables(그리드) -->
</div> <!-- <div class="card wrapper-list"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -593,21 +591,22 @@
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: async() => { , onOK: () => {
// 삭제 사유 입력 // 삭제 사유 입력
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html")); fetch(wctx.url("/resources/html/inputRsnDialog.html"))
let template = await resp.text(); .then(function(resp) { return resp.text(); })
.then(function(template) {
dialog.open({ dialog.open({
id: "inputDelRsnDialog" id: "inputDelRsnDialog"
, title: title , title: title
, size: "lg" , size: "lg"
, content: template , content: template
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() }); $P.callbackRsn({ reason: $("#reason").val() });
} }
}); });
});
} }
}); });
} }

@ -12,7 +12,9 @@
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
<input type="hidden" id="sndngId--${pageName}" name="sndngId" />
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
@ -39,9 +41,6 @@
<button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtOutsourcing--${pageName}" title="고지서 출력(외주파일)"> <button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtOutsourcing--${pageName}" title="고지서 출력(외주파일)">
고지서 출력(외주파일) 고지서 출력(외주파일)
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveDpcnData--${pageName}" title="중복자료 삭제">
중복자료 삭제
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSndbk--${pageName}" title="반송 등록"> <button type="button" class="btn btn-primary w-px-120" id="btnCreateSndbk--${pageName}" title="반송 등록">
반송 확인 반송 확인
</button> </button>
@ -162,8 +161,6 @@
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields("#frmEdit--${pageName}");
// main 의 검색 조건을 그대로 유지
$P.mainQuery = ${mainQuery};
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -330,6 +327,11 @@
return; return;
} }
// 검색조건
$P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부
// DataTables(그리드) // DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
@ -400,7 +402,7 @@
// 중복자료 삭제 // 중복자료 삭제
$P.fnRemoveDpcnData = () => { $P.fnRemoveDpcnData = () => {
//
} }
// 반송(종적결과) 확인 // 반송(종적결과) 확인
@ -412,7 +414,7 @@
content: "종적결과를 확인하시겠습니까?" content: "종적결과를 확인하시겠습니까?"
, onOK: () => { , onOK: () => {
// 파리미터 설정 // 파리미터 설정
let params = $P.mainQuery; // mainQuery let params = $P.formFields.get(); // mainQuery
params.title = title; // 타이틀 params.title = title; // 타이틀
$P.createSndbk(params); $P.createSndbk(params);
@ -438,9 +440,6 @@
$("#btnPrintNhtOutsourcing--${pageName}").on("click", function() { $("#btnPrintNhtOutsourcing--${pageName}").on("click", function() {
$P.fnMakeFileNht($(this).attr("title"), "outsourcing") // 고지서 출력(외주파일) $P.fnMakeFileNht($(this).attr("title"), "outsourcing") // 고지서 출력(외주파일)
}); });
$("#btnRemoveDpcnData--${pageName}").on("click", function() {
$P.fnRemoveDpcnData($(this).attr("title")); // 중복자료 삭제
});
$("#btnCreateSndbk--${pageName}").on("click", function() { $("#btnCreateSndbk--${pageName}").on("click", function() {
$P.fnCreateSndbk($(this).attr("title")); // 반송 등록 $P.fnCreateSndbk($(this).attr("title")); // 반송 등록
}); });
@ -459,9 +458,6 @@
, ${infoPrefix}Fetch: ${nhtSndngDtlFetch} , ${infoPrefix}Fetch: ${nhtSndngDtlFetch}
, ${infoPrefix}Total: ${nhtSndngDtlTotal} , ${infoPrefix}Total: ${nhtSndngDtlTotal}
}); });
// 초기 데이터 설정
$P.initData();
}); });
} }
@ -469,19 +465,20 @@
$P.initForm = () => { $P.initForm = () => {
// 화면 초기화 // 화면 초기화
$("#frmEdit--${pageName}")[0].reset(); $("#frmEdit--${pageName}")[0].reset();
}
// 기 데이터 설정 // 기 데이터 설정
$P.initData = () => { $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// SNDNG_ID $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드
$("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID")); $("#sndngId--${pageName}").val("${sndngId}"); // 발송 ID
// 검색 조건 설정 // 업무 구분별 설정
$P.control.defaultFetchSize = $P.mainQuery.fetchSize; $P.setTask("${taskSeCd}");
$P.control.query = $P.mainQuery; }
// 업무 구분별 설정
$P.setTask = (taskSeCd) => {
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/120/list.do"); // 검색 $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/120/list.do"); // 검색
} }
/************************************************************************** /**************************************************************************

@ -9,309 +9,307 @@
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- 상단 버튼 --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <!-- 메인 조건 -->
<!-- hidden --> <div class="container-search">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <div class="row g-1">
<!-- 업무 구분 -->
<!-- 메인 조건 --> <div class="col-12">
<div class="container-search"> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="row g-1"> <span class="form-search-linebox">
<!-- 업무 구분 --> <c:forEach items="${taskListForSgg}" var="item">
<div class="col-12"> <label>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-search-linebox"> value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
<c:forEach items="${taskListForSgg}" var="item"> ${item.value}
<label> </label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </c:forEach>
value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);"> </span>
${item.value} </div>
</label> <!-- 배달 일자 -->
</c:forEach> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schDlvrYmdFrom--${pageName}">배달일자</label>
</div> <span class="form-search-linebox">
<!-- 배달 일자 --> <input type="text" class="form-control form-date" id="schDlvrYmdFrom--${pageName}" name="schDlvrYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schDlvrYmdFrom--${pageName}">배달일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schDlvrYmdFrom--${pageName}" name="schDlvrYmdFrom" <input type="text" class="form-control form-date" id="schDlvrYmdTo--${pageName}" name="schDlvrYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schDlvrYmdTo--${pageName}" name="schDlvrYmdTo" </div>
data-fmt-type="day" title="종료 날짜 선택" /> <!-- 미배달 사유 코드 -->
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schUndlvrRsnCd--${pageName}">미배달사유</label>
</div> <select class="form-select w-px-160" id="schUndlvrRsnCd--${pageName}" name="schUndlvrRsnCd">
<!-- 미배달 사유 코드 --> <option value="">전체</option>
<div class="col-6"> <c:forEach items="${FIM081List}" var="item">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schUndlvrRsnCd--${pageName}">미배달사유</label> <option value="${item.code}">${item.value}</option>
<select class="form-select w-px-160" id="schUndlvrRsnCd--${pageName}" name="schUndlvrRsnCd"> </c:forEach>
<option value="">전체</option> </select>
<c:forEach items="${FIM081List}" var="item"> </div>
<option value="${item.code}">${item.value}</option> <!-- 발송일자 -->
</c:forEach> <div class="col-6">
</select> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label>
</div> <span class="form-search-linebox">
<!-- 발송일자 --> <input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom" <input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo" </div>
data-fmt-type="day" title="종료 날짜 선택" /> <!-- 발송 구분 -->
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
</div> <select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<!-- 발송 구분 --> <option value="">전체</option>
<div class="col-6"> <c:forEach items="${FIM047List}" var="item">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label> <option value="${item.code}">${item.value}</option>
<select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd"> </c:forEach>
<option value="">전체</option> </select>
<c:forEach items="${FIM047List}" var="item"> </div>
<option value="${item.code}">${item.value}</option> <!-- 선택등기 표시 -->
</c:forEach> <div class="col-6 form-check">
</select> <input type="checkbox" class="form-check-input" id="schChcRgIndct--${pageName}" name="schChcRgIndct" value="Y" />
</div> <label class="form-check-label" for="schChcRgIndct--${pageName}">선택등기표시</label>
<!-- 선택등기 표시 --> </div>
<div class="col-6 form-check"> <!-- 동적검색 -->
<input type="checkbox" class="form-check-input" id="schChcRgIndct--${pageName}" name="schChcRgIndct" value="Y" /> <div class="col-6">
<label class="form-check-label" for="schChcRgIndct--${pageName}">선택등기표시</label> <input type="hidden" id="by--${pageName}" name="by" />
</div> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<!-- 동적검색 --> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<div class="col-6"> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="hidden" id="by--${pageName}" name="by" /> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly /> <!-- 상세 검색조건 버튼 -->
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <span class="flr">
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" /> <i class="bx bx-chevron-down"></i>
<!-- 상세 검색조건 버튼 --> 상세검색
<span class="flr"> </button>
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}"> </span>
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div> </div>
</div> </div>
<!-- 메인 조건 --> </div>
<!-- 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <!-- 상세 조건 -->
<div class="row g-1"> <div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<!-- 단속일자 --> <div class="row g-1">
<div class="col-4"> <!-- 단속일자 -->
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schCrdnYmdFrom--${pageName}">단속일자</label> <div class="col-4">
<span class="form-search-linebox"> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schCrdnYmdFrom--${pageName}">단속일자</label>
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom" <span class="form-search-linebox">
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" /> <input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
~ <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo" ~
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" /> <input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
</span> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div> </span>
<!-- 차량번호 -->
<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">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div> </div>
</div> <!-- 상세 조건 --> <!-- 차량번호 -->
</form> <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>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div> </div>
<!-- 업무 버튼 --> <!-- 납부자번호 -->
<span class="container-window-btn-right"> <div class="col-4">
<button type="button" class="btn btn-primary w-px-160" id="btnCreateSndbk--${pageName}" title="반송 등록"> <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" />
</button>
<button type="button" class="btn btn-primary w-px-160" id="btnCreateWholSvbtc--${pageName}" title="전체 공시송달 등록">
전체 공시송달 등록
</button>
<button type="button" class="btn btn-primary w-px-160" id="btnCreateSlctnSndngLink--${pageName}" title="선택 통합우편 발송">
선택 통합우편 발송
</button>
<button type="button" class="btn btn-primary w-px-160" id="btnCreateWholSndngLink--${pageName}" title="전체 통합우편 발송">
전체 통합우편 발송
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 140px;">고지번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RG_NO', this.innerText, 'match', 'part');">등기번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('DLVR_YMD', this.innerText, 'ymd', '');">배달일자</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('DLVR_TM', this.innerText, 'time', '');">배달시간</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('UNDLVR_RSN_NM', this.innerText, 'match', 'part');">미배달사유</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('ACTL_RCPN_NM', this.innerText, 'match', 'part');">수령인</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RCPN_REL_NM', this.innerText, 'match', 'part');">수령인관계</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('FFNLG_AMT', 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: 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: 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: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NO', this.innerText, 'ymd', '');">납부자번호</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_DTL_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_DTL_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_DTL_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{GOJI_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RG_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DLVR_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DLVR_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ACTL_RCPN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_REL_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-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-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_DTL_ADDR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </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">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-4">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div>
</div> <!-- 상세 조건 -->
</form>
<!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-160" id="btnCreateSndbk--${pageName}" title="반송 등록">
수기 반송 등록
</button>
<button type="button" class="btn btn-primary w-px-160" id="btnCreateWholSvbtc--${pageName}" title="전체 공시송달 등록">
전체 공시송달 등록
</button>
<button type="button" class="btn btn-primary w-px-160" id="btnCreateSlctnSndngLink--${pageName}" title="선택 통합우편 발송">
선택 통합우편 발송
</button>
<button type="button" class="btn btn-primary w-px-160" id="btnCreateWholSndngLink--${pageName}" title="전체 통합우편 발송">
전체 통합우편 발송
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-500" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 140px;">고지번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RG_NO', this.innerText, 'match', 'part');">등기번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('DLVR_YMD', this.innerText, 'ymd', '');">배달일자</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('DLVR_TM', this.innerText, 'time', '');">배달시간</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('UNDLVR_RSN_NM', this.innerText, 'match', 'part');">미배달사유</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('ACTL_RCPN_NM', this.innerText, 'match', 'part');">수령인</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RCPN_REL_NM', this.innerText, 'match', 'part');">수령인관계</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('FFNLG_AMT', 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: 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: 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: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NO', this.innerText, 'ymd', '');">납부자번호</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_DTL_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_DTL_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_DTL_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{GOJI_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RG_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DLVR_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DLVR_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ACTL_RCPN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_REL_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-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-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_DTL_ADDR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pes">
<td valign="top" colspan="32" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> <!-- DataTables(그리드) --> </div>
</div> <!-- <div class="wrapper-list"> --> </div> <!-- DataTables(그리드) -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card wrapper-list"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -772,7 +770,6 @@
initDatepicker("frmSearch--${pageName}"); // 달력 초기화 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schDlvrYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schDlvrYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schDlvrYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schDlvrYmdTo--${pageName}").datepicker("setDate", new Date());
$("#schSndngSeCd--${pageName}").val("02").prop("selected", true); // 발송구분
$("#schChcRgIndct--${pageName}").prop("checked", true); // 선택등기표시 $("#schChcRgIndct--${pageName}").prop("checked", true); // 선택등기표시
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색 $("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름 $("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름

@ -9,206 +9,202 @@
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <!-- 상단 버튼 -->
<!-- 상단 버튼 --> <div class="container-page-btn">
<div class="container-page-btn"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화"> 초기화
초기화 </button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색
</button> </button>
<span class="container-window-btn-right"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색"> 엑셀
검색 </button>
</button> </span>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀"> </div> <!-- 상단 버튼 -->
엑셀
</button> <!-- 검색 조건 영역 -->
</span> <form id="frmSearch--${pageName}" name="frmSearch">
</div> <!-- 상단 버튼 --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <!-- 메인 조건 -->
<!-- hidden --> <div class="container-search">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <div class="row g-1">
<!-- 업무 구분 -->
<!-- 메인 조건 --> <div class="col-12">
<div class="container-search"> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<div class="row g-1"> <span class="form-search-linebox">
<!-- 업무 구분 --> <c:forEach items="${taskListForSgg}" var="item">
<div class="col-12"> <label>
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
<span class="form-search-linebox"> value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
<c:forEach items="${taskListForSgg}" var="item"> ${item.value}
<label> </label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" </c:forEach>
value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);"> </span>
${item.value} </div>
</label> <!-- 공시송달 일자 -->
</c:forEach> <div class="col-6">
</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSvbtcYmdFrom--${pageName}">공시송달일자</label>
</div> <span class="form-search-linebox">
<!-- 공시송달 일자 --> <input type="text" class="form-control form-date" id="schSvbtcYmdFrom--${pageName}" name="schSvbtcYmdFrom"
<div class="col-6"> data-fmt-type="day" title="시작 날짜 선택" />
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSvbtcYmdFrom--${pageName}">공시송달일자</label> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<span class="form-search-linebox"> ~
<input type="text" class="form-control form-date" id="schSvbtcYmdFrom--${pageName}" name="schSvbtcYmdFrom" <input type="text" class="form-control form-date" id="schSvbtcYmdTo--${pageName}" name="schSvbtcYmdTo"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="종료 날짜 선택" />
<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>
<input type="text" class="form-control form-date" id="schSvbtcYmdTo--${pageName}" name="schSvbtcYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 발송 구분 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<option value="">전체</option>
<c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- -->
<div class="col-6">
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div> </div>
</div> <!-- 메인 조건 --> <!-- 발송 구분 -->
<div class="col-6">
<!-- 상세 조건 --> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<div class="row g-1"> <option value="">전체</option>
<!-- 등록일자, 수정일자 --> <c:forEach items="${FIM047List}" var="item">
<div class="col-6"> <option value="${item.code}">${item.value}</option>
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> </c:forEach>
<option value="regDt">등록일자</option> </select>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
</div>
</div> </div>
</div> <!-- 상세 조건 --> <!-- -->
</form> <div class="col-6">
<!-- 검색 조건 영역 --> </div>
<!-- 동적검색 -->
<!-- 업무 버튼 및 건수 표시 --> <div class="col-6">
<div> <input type="hidden" id="by--${pageName}" name="by" />
<span class="container-page-btn"> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<!-- 건수, 페이지 표시 --> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<div class="d-flex flex-row justify-content-between"> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<ul class="pagination pagination-primary" id="paging--${pageName}"> <!-- 상세 검색조건 버튼 -->
</ul> <span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div>
</div> <!-- 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div> </div>
<!-- 업무 버튼 --> <!-- 등록자명, 수정자명 -->
<span class="container-window-btn-right"> <div class="col-6">
<button type="button" class="btn btn-primary w-px-120" id="btnPrintHwp--${pageName}" title="한글파일 출력"> <select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
한글파일 출력 <option value="rgtr">등록자</option>
</button> <option value="mdfr">수정자</option>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="공시송달 수정"> </select>
공시송달 수정 <input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
</button> <input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="공시송달 삭제"> <button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
공시송달 삭제
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-400" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></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: 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: 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('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SVBTC_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SVBTC_ID}" onchange="pageObject['${pageName}'].control.select('{SVBTC_ID}', this.checked);"></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{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_END_YMD}</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}">{TTL_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="15" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div> </div>
</div> </div>
</div> <!-- DataTables(그리드) --> </div> <!-- 상세 조건 -->
</div> <!-- <div class="wrapper-list"> --> </form>
</div> <!-- <div class="card"> --> <!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<span class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></span>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnPrintHwp--${pageName}" title="한글파일 출력">
한글파일 출력
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="공시송달 수정">
공시송달 수정
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="공시송달 삭제">
공시송달 삭제
</button>
</span>
</span>
</div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-400" id="table-responsive--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></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: 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: 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('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SVBTC_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SVBTC_ID}" onchange="pageObject['${pageName}'].control.select('{SVBTC_ID}', this.checked);"></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{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_END_YMD}</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}">{TTL_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</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}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="15" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div> <!-- DataTables(그리드) -->
</div> <!-- <div class="card wrapper-list"> -->
<!-- Page Body --> <!-- Page Body -->
<span id="tempArea--${pageName}" hidden></span>
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->

@ -2,111 +2,107 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card wrapper-list">
<div class="wrapper-list"> <div>
<div> <!-- 입력 영역 -->
<!-- 입력 영역 --> <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="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="rtpyrId--${pageName}" name="rtpyrId" data-map="RTPYR_ID" />
<input type="hidden" id="rtpyrId--${pageName}" name="rtpyrId" data-map="RTPYR_ID" />
<div class="row g-1">
<div class="row g-1"> <!-- 차량번호 -->
<!-- 차량번호 --> <div class="col-md-3">
<div class="col-md-3"> <label for="vhrno--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<label for="vhrno--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label> <input type="text" class="form-control w-35" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
<input type="text" class="form-control w-35" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly /> </div>
</div> <!-- 위반일시 -->
<!-- 위반일시 --> <div class="col-md-3">
<div class="col-md-3"> <label for="crdnYmdTm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">위반일시</label>
<label for="crdnYmdTm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">위반일시</label> <input type="text" class="form-control w-45" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
<input type="text" class="form-control w-45" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly /> </div>
</div> <!-- 단속상태 -->
<!-- 단속상태 --> <div class="col-md-4">
<div class="col-md-4"> <label for="crdnSttsNm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">단속상태</label>
<label for="crdnSttsNm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">단속상태</label> <input type="text" class="form-control w-35" id="crdnSttsChgDt--${pageName}" name="crdnSttsChgDt" data-map="CRDN_STTS_CHG_DT" readonly />
<input type="text" class="form-control w-35" id="crdnSttsChgDt--${pageName}" name="crdnSttsChgDt" data-map="CRDN_STTS_CHG_DT" readonly /> <input type="text" class="form-control w-30 fw-bold text-primary" id="crdnSttsNm--${pageName}" name="crdnSttsNm" data-map="CRDN_STTS_NM" readonly />
<input type="text" class="form-control w-30 fw-bold text-primary" id="crdnSttsNm--${pageName}" name="crdnSttsNm" data-map="CRDN_STTS_NM" readonly /> <input type="hidden" id="crdnSttsCd--${pageName}" name="crdnSttsCd" data-map="CRDN_STTS_CD" />
<input type="hidden" id="crdnSttsCd--${pageName}" name="crdnSttsCd" data-map="CRDN_STTS_CD" /> </div>
</div> <!-- 자료 이동 버튼 -->
<!-- 자료 이동 버튼 --> <div class="col-md-2 text-end">
<div class="col-md-2 text-end"> <input type="text" id="countStauts--${pageName}" class="form-control w-px-120 text-center fw-bold" readonly />
<input type="text" id="countStauts--${pageName}" class="form-control w-px-120 text-center fw-bold" readonly /> <button type="button" id="btnPrev--${pageName}" class="w-px-50 btn-PageUp">◀</button>
<button type="button" id="btnPrev--${pageName}" class="w-px-50 btn-PageUp">◀</button> <button type="button" id="btnNext--${pageName}" class="w-px-50 btn-PageDown">▶</button>
<button type="button" id="btnNext--${pageName}" class="w-px-50 btn-PageDown">▶</button> </div>
</div> </div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="row g-1"> --> </form>
</form> <!-- /입력 영역 --> <!-- 입력 영역 -->
</div>
<div class="nav-align-top">
<ul class="nav nav-tabs" id="tabs--${pageName}" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75 active" id="btnCrdnPayer--${pageName}" name="btnCrdnPayer"
role="tab" data-bs-toggle="tab" data-bs-target="#crdnPayerInfo" aria-controls="crdnPayerInfo" aria-selected="true">
단속 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnOpnnSbmsn--${pageName}" name="btnOpnnSbmsn"
role="tab" data-bs-toggle="tab" data-bs-target="#opnnSbmsnInfo" aria-controls="opnnSbmsnInfo" aria-selected="false">
의견제출 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnSndng--${pageName}" name="btnSndng"
role="tab" data-bs-toggle="tab" data-bs-target="#sndngInfo" aria-controls="sndngInfo" aria-selected="false">
발송반송 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnPrcs--${pageName}" name="btnPrcs"
role="tab" data-bs-toggle="tab" data-bs-target="#prcsInfo" aria-controls="prcsInfo" aria-selected="false">
처리상세 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnLevy--${pageName}" name="btnLevy"
role="tab" data-bs-toggle="tab" data-bs-target="#levyInfo" aria-controls="levyInfo" aria-selected="false">
부과체납 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnRcvmt--${pageName}" name="btnRcvmt"
role="tab" data-bs-toggle="tab" data-bs-target="#rcvmtInfo" aria-controls="rcvmtInfo" aria-selected="false">
수납 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnCvlcptDscsn--${pageName}" name="btnCvlcptDscsn"
role="tab" data-bs-toggle="tab" data-bs-target="#cvlcptDscsnInfo" aria-controls="cvlcptDscsnInfo" aria-selected="false">
민원상담 정보
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="crdnPayerInfo" role="tabpanel">단속 정보</div>
<div class="tab-pane fade" id="opnnSbmsnInfo" role="tabpanel">의견제출 정보</div>
<div class="tab-pane fade" id="sndngInfo" role="tabpanel">발송반송 정보</div>
<div class="tab-pane fade" id="prcsInfo" role="tabpanel">처리상세 정보</div>
<div class="tab-pane fade" id="levyInfo" role="tabpanel">부과체납 정보</div>
<div class="tab-pane fade" id="rcvmtInfo" role="tabpanel">수납 정보</div>
<div class="tab-pane fade" id="cvlcptDscsnInfo" role="tabpanel">민원상담 정보</div>
</div> </div>
</div>
<div class="nav-align-top"> </div> <!-- <div class="card wrapper-list"> -->
<ul class="nav nav-tabs" id="tabs--${pageName}" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75 active" id="btnCrdnPayer--${pageName}" name="btnCrdnPayer"
role="tab" data-bs-toggle="tab" data-bs-target="#crdnPayerInfo" aria-controls="crdnPayerInfo" aria-selected="true">
단속 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnOpnnSbmsn--${pageName}" name="btnOpnnSbmsn"
role="tab" data-bs-toggle="tab" data-bs-target="#opnnSbmsnInfo" aria-controls="opnnSbmsnInfo" aria-selected="false">
의견제출 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnSndng--${pageName}" name="btnSndng"
role="tab" data-bs-toggle="tab" data-bs-target="#sndngInfo" aria-controls="sndngInfo" aria-selected="false">
발송반송 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnPrcs--${pageName}" name="btnPrcs"
role="tab" data-bs-toggle="tab" data-bs-target="#prcsInfo" aria-controls="prcsInfo" aria-selected="false">
처리상세 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnLevy--${pageName}" name="btnLevy"
role="tab" data-bs-toggle="tab" data-bs-target="#levyInfo" aria-controls="levyInfo" aria-selected="false">
부과체납 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnRcvmt--${pageName}" name="btnRcvmt"
role="tab" data-bs-toggle="tab" data-bs-target="#rcvmtInfo" aria-controls="rcvmtInfo" aria-selected="false">
수납 정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link w-px-160 h-75" id="btnCvlcptDscsn--${pageName}" name="btnCvlcptDscsn"
role="tab" data-bs-toggle="tab" data-bs-target="#cvlcptDscsnInfo" aria-controls="cvlcptDscsnInfo" aria-selected="false">
민원상담 정보
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="crdnPayerInfo" role="tabpanel">단속 정보</div>
<div class="tab-pane fade" id="opnnSbmsnInfo" role="tabpanel">의견제출 정보</div>
<div class="tab-pane fade" id="sndngInfo" role="tabpanel">발송반송 정보</div>
<div class="tab-pane fade" id="prcsInfo" role="tabpanel">처리상세 정보</div>
<div class="tab-pane fade" id="levyInfo" role="tabpanel">부과체납 정보</div>
<div class="tab-pane fade" id="rcvmtInfo" role="tabpanel">수납 정보</div>
<div class="tab-pane fade" id="cvlcptDscsnInfo" role="tabpanel">민원상담 정보</div>
</div>
</div>
</div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> -->
<script> <script>
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
var ${pageName}CallPurpose = "${callPurpose}";
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = {};
/************************************************************************** /**************************************************************************
@ -114,37 +110,40 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}";
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
// 자료 이동을 위한 자료의 Index. 0부터 시작. // 자료 이동을 위한 자료의 Index. 0부터 시작.
$P.curDataIndex; $P.curDataIndex;
// 현재 탭의 위치 // 현재 탭의 위치
$P.activeTabIndex = 0; $P.activeTabIndex = 0;
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.mainControl = new DatasetControl({ $P.mainControl = new DatasetControl({
prefix : "totalInfoMain" prefix: "totalInfoMain"
, prefixName : "개별총정보" , prefixName: "개별총정보"
, keymapper : info => info ? info.CRDN_ID : "" , keymapper: info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.totalInfo , dataGetter: obj => obj.totalInfo
, formats : { , formats: {
CRDN_YMD_TM : datetimeFormat CRDN_YMD_TM: datetimeFormat
, CRDN_STTS_CHG_DT : datetimeFormat , CRDN_STTS_CHG_DT: datetimeFormat
} }
}); });
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
$P.mainControl.onCurrentChange = item => { // 현재 선택 자료 변경 이벤트
$P.mainControl.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
// Dataset 셋팅 // Dataset 셋팅
$P.formFields.set($P.mainControl,item); $P.formFields.set($P.mainControl, item);
// 건수 표기 // 건수 표기
let controlName = "${callControlName}"; let controlName = "${callControlName}";
@ -156,6 +155,66 @@
$P.useDataEdit(item); $P.useDataEdit(item);
} }
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 자료 재조회
$P.fnRefreshList = (params) => {
if (!params) return;
ajax.get({
url: wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: resp => {
if (resp.totalInfo) {
// 최상단 단속 Data 셋팅
$P.mainControl.setData([resp.totalInfo]);
if ($P.activeTabIndex == 0) {
$P.fnCrdnPayerInfo(); // 단속 납부자 Data 셋팅
} else if ($P.activeTabIndex == 1) {
$P.fnOpnnSbmsnInfo(); // 의견제출 정보
} else if ($P.activeTabIndex == 2) {
$P.fnSndngInfo(); // 발송 반송 정보
} else if ($P.activeTabIndex == 3) {
$P.fnPrcsInfo(); // 처리 상세 정보
} else if ($P.activeTabIndex == 4) {
$P.fnLevyInfo(); // 부과체납 정보
} else if ($P.activeTabIndex == 5) {
$P.fnRcvmtInfo(); // 수납 정보
} else if ($P.activeTabIndex == 6) {
$P.fnCvlcptDscsnInfo(); // 민원상담 정보
}
}
}
});
}
// 자료 삭제 가능 여부
$P.useDataEdit = (item) => {
// 삭제 자료일 경우 빨간색으로 변경
let elem = document.getElementById("crdnSttsNm--${pageName}");
if (item.data.CRDN_STTS_CD == "99") {
elem.classList.remove("text-primary");
elem.classList.add("text-danger");
} else {
elem.classList.remove("text-danger");
elem.classList.add("text-primary");
}
}
//
$P.fnClose = (isDataReLoad) => {
dialog.close($P.mainControl.prefix + "Dialog");
let controlName = "${callControlName}";
if (isDataReLoad && controlName != "noControlName") {
${callControlName}._load();
}
}
/************************************************************************** /**************************************************************************
* 네이게이션 Event * 네이게이션 Event
**************************************************************************/ **************************************************************************/
@ -175,7 +234,6 @@
} }
let viewNumber = $P.curDataIndex + 1; let viewNumber = $P.curDataIndex + 1;
$("#countStauts--${pageName}").val(viewNumber + " of " + ${callControlName}.dataset._items.length); $("#countStauts--${pageName}").val(viewNumber + " of " + ${callControlName}.dataset._items.length);
} }
@ -191,7 +249,7 @@
for (iLoop = $P.curDataIndex; iLoop >= 0; iLoop--) { for (iLoop = $P.curDataIndex; iLoop >= 0; iLoop--) {
if (mainDataItems[iLoop].data.CRDN_ID == curCrdnId) { if (mainDataItems[iLoop].data.CRDN_ID == curCrdnId) {
if (iLoop - 1 < 0) { return; } // 종료 if (iLoop - 1 < 0) return; // 종료
$P.curDataIndex = iLoop - 1; $P.curDataIndex = iLoop - 1;
break; break;
@ -199,22 +257,19 @@
} }
let crdnId = mainDataItems[$P.curDataIndex].data.CRDN_ID; let crdnId = mainDataItems[$P.curDataIndex].data.CRDN_ID;
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") { if (crdnId == null || crdnId == "") return;
return;
}
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, callControlName : "${callControlName}" , callControlName: "${callControlName}"
, crdnId : crdnId , sggCd: mainDataItems[$P.curDataIndex].data.SGG_CD
, sggCd : mainDataItems[$P.curDataIndex].data.SGG_CD , taskSeCd: mainDataItems[$P.curDataIndex].data.TASK_SE_CD
, taskSeCd : mainDataItems[$P.curDataIndex].data.TASK_SE_CD , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.refreshList(params); $P.fnRefreshList(params);
} }
// 다음 자료 조회 // 다음 자료 조회
@ -229,175 +284,27 @@
for (iLoop = $P.curDataIndex; iLoop < mainDataItems.length; iLoop++) { for (iLoop = $P.curDataIndex; iLoop < mainDataItems.length; iLoop++) {
if (mainDataItems[iLoop].data.CRDN_ID == curCrdnId) { if (mainDataItems[iLoop].data.CRDN_ID == curCrdnId) {
if (iLoop + 1 >= mainDataItems.length) return; // 종료 if (iLoop + 1 >= mainDataItems.length) return; // 종료
$P.curDataIndex = iLoop + 1; $P.curDataIndex = iLoop + 1;
break; break;
} }
} }
let crdnId = mainDataItems[$P.curDataIndex].data.CRDN_ID; let crdnId = mainDataItems[$P.curDataIndex].data.CRDN_ID;
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") { if (crdnId == null || crdnId == "") return;
return;
}
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, callControlName : "${callControlName}" , callControlName: "${callControlName}"
, crdnId : crdnId , sggCd: mainDataItems[$P.curDataIndex].data.SGG_CD
, sggCd : mainDataItems[$P.curDataIndex].data.SGG_CD , taskSeCd: mainDataItems[$P.curDataIndex].data.TASK_SE_CD
, taskSeCd : mainDataItems[$P.curDataIndex].data.TASK_SE_CD , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.refreshList(params); $P.fnRefreshList(params);
}
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 자료 삭제 가능 여부
$P.useDataEdit = (item) => {
// 삭제 자료일 경우 빨간색으로 변경
let elem = document.getElementById("crdnSttsNm--${pageName}");
if (item.data.CRDN_STTS_CD == "99") {
elem.classList.remove("text-primary");
elem.classList.add("text-danger");
} else {
elem.classList.remove("text-danger");
elem.classList.add("text-primary");
}
}
//
$P.fnClose = (isDataReLoad) => {
dialog.close($P.mainControl.prefix + "Dialog");
let controlName = "${callControlName}";
if (isDataReLoad && controlName != "noControlName") {
${callControlName}._load();
}
}
// 자료 재조회
$P.refreshList = (params) => {
if (!params) return;
ajax.get({
url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
if (resp.totalInfo) {
// 최상단 단속 Data 셋팅
$P.mainControl.setData([resp.totalInfo]);
if ($P.activeTabIndex == 0) {
$P.fnCrdnPayerInfo(); // 단속 납부자 Data 셋팅
} else if ($P.activeTabIndex == 1) {
$P.fnOpnnSbmsnInfo(); // 의견제출 정보
} else if ($P.activeTabIndex == 2) {
$P.fnSndngInfo(); // 발송 반송 정보
} else if ($P.activeTabIndex == 3) {
$P.fnPrcsInfo(); // 처리 상세 정보
} else if ($P.activeTabIndex == 4) {
$P.fnLevyInfo(); // 부과체납 정보
} else if ($P.activeTabIndex == 5) {
$P.fnRcvmtInfo(); // 수납 정보
} else if ($P.activeTabIndex == 6) {
$P.fnCvlcptDscsnInfo(); // 민원상담 정보
}
}
}
});
}
$P.getCrdnPayerInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/020/info.do")
, data : params || {}
, success : resp => {
$("#crdnPayerInfo").html(resp);
}
});
}
$P.getOpnnSbmsnInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
, data : params || {}
, success : resp => {
$("#opnnSbmsnInfo").html(resp);
}
});
}
$P.getSndngInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/040/info.do")
, data : params || {}
, success : resp => {
$("#sndngInfo").html(resp);
}
});
}
$P.getPrcsInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/050/info.do")
, data : params || {}
, success : resp => {
$("#prcsInfo").html(resp);
}
});
}
$P.getLevyInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/060/info.do")
, data : params || {}
, success : resp => {
$("#levyInfo").html(resp);
}
});
}
$P.getRcvmtInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/070/info.do")
, data : params || {}
, success : resp => {
$("#rcvmtInfo").html(resp);
}
});
}
$P.getCvlcptDscsnInfo = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/080/info.do")
, data : params || {}
, success : resp => {
$("#cvlcptDscsnInfo").html(resp);
}
});
} }
/************************************************************************** /**************************************************************************
@ -406,7 +313,6 @@
// 단속 정보 // 단속 정보
$P.fnCrdnPayerInfo = () => { $P.fnCrdnPayerInfo = () => {
let crdnId = $P.mainControl.dataset.getValue("CRDN_ID"); let crdnId = $P.mainControl.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -414,20 +320,25 @@
$P.activeTabIndex = 0; $P.activeTabIndex = 0;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.getCrdnPayerInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/020/info.do")
, data: params || {}
, success: resp => {
$("#crdnPayerInfo").html(resp);
}
});
} }
// 의견제출 정보 // 의견제출 정보
$P.fnOpnnSbmsnInfo = () => { $P.fnOpnnSbmsnInfo = () => {
let crdnId = $P.mainControl.dataset.getValue("CRDN_ID"); let crdnId = $P.mainControl.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -435,14 +346,20 @@
$P.activeTabIndex = 1; $P.activeTabIndex = 1;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.getOpnnSbmsnInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
, data: params || {}
, success: resp => {
$("#opnnSbmsnInfo").html(resp);
}
});
} }
// 발송 반송 정보 // 발송 반송 정보
@ -456,20 +373,25 @@
$P.activeTabIndex = 2; $P.activeTabIndex = 2;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.getSndngInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/040/info.do")
, data: params || {}
, success: resp => {
$("#sndngInfo").html(resp);
}
});
} }
// 처리 정보 // 처리 정보
$P.fnPrcsInfo = () => { $P.fnPrcsInfo = () => {
let crdnId = $P.mainControl.dataset.getValue("CRDN_ID"); let crdnId = $P.mainControl.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -477,21 +399,26 @@
$P.activeTabIndex = 3; $P.activeTabIndex = 3;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, rtpyrId : $P.mainControl.dataset.getValue("RTPYR_ID") , rtpyrId: $P.mainControl.dataset.getValue("RTPYR_ID")
, delYn : "N" , delYn: "N"
}; };
$P.getPrcsInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/050/info.do")
, data: params || {}
, success: resp => {
$("#prcsInfo").html(resp);
}
});
} }
// 부과체납 정보 // 부과체납 정보
$P.fnLevyInfo = () => { $P.fnLevyInfo = () => {
let crdnId = $P.mainControl.dataset.getValue("CRDN_ID"); let crdnId = $P.mainControl.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -499,20 +426,25 @@
$P.activeTabIndex = 4; $P.activeTabIndex = 4;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.getLevyInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/060/info.do")
, data: params || {}
, success: resp => {
$("#levyInfo").html(resp);
}
});
} }
// 수납 정보 // 수납 정보
$P.fnRcvmtInfo = () => { $P.fnRcvmtInfo = () => {
let crdnId = $P.mainControl.dataset.getValue("CRDN_ID"); let crdnId = $P.mainControl.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -520,20 +452,25 @@
$P.activeTabIndex = 5; $P.activeTabIndex = 5;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, delYn : "N" , delYn: "N"
}; };
$P.getRcvmtInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/070/info.do")
, data: params || {}
, success: resp => {
$("#rcvmtInfo").html(resp);
}
});
} }
// 민원상담 정보 // 민원상담 정보
$P.fnCvlcptDscsnInfo = () => { $P.fnCvlcptDscsnInfo = () => {
let crdnId = $P.mainControl.dataset.getValue("CRDN_ID"); let crdnId = $P.mainControl.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -541,16 +478,22 @@
$P.activeTabIndex = 6; $P.activeTabIndex = 6;
let params = { let params = {
callPurpose : "view" callPurpose: "view"
, inquiryCondition : "crdnId_vhrno" , inquiryCondition: "crdnId_vhrno"
, crdnId : crdnId , sggCd: $P.mainControl.dataset.getValue("SGG_CD")
, sggCd : $P.mainControl.dataset.getValue("SGG_CD") , taskSeCd: $P.mainControl.dataset.getValue("TASK_SE_CD")
, taskSeCd : $P.mainControl.dataset.getValue("TASK_SE_CD") , crdnId: crdnId
, vhrno : $P.mainControl.dataset.getValue("VHRNO") , vhrno: $P.mainControl.dataset.getValue("VHRNO")
, delYn : "N" , delYn: "N"
}; };
$P.getCvlcptDscsnInfo(params); ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/080/info.do")
, data: params || {}
, success: resp => {
$("#cvlcptDscsnInfo").html(resp);
}
});
} }
/************************************************************************** /**************************************************************************
@ -558,22 +501,22 @@
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // 이벤트 설정
$P.setEvent = () => { $P.setEvent = () => {
// 버튼 이벤트 // 기본 버튼 이벤트
$("#btnPrev--${pageName}").on("click", () => $P.fnPrev()); // 이전 $("#btnPrev--${pageName}").on("click", () => $P.fnPrev()); // 이전
$("#btnNext--${pageName}").on("click", () => $P.fnNext()); // 다음 $("#btnNext--${pageName}").on("click", () => $P.fnNext()); // 다음
$("#btnCrdnPayer--${pageName}").on("click", () => $P.fnCrdnPayerInfo()); // 단속 정보 $("#btnCrdnPayer--${pageName}").on("click", () => $P.fnCrdnPayerInfo()); // 단속 정보
$("#btnOpnnSbmsn--${pageName}").on("click", () => $P.fnOpnnSbmsnInfo()); // 의견제출 정보 $("#btnOpnnSbmsn--${pageName}").on("click", () => $P.fnOpnnSbmsnInfo()); // 의견제출 정보
$("#btnSndng--${pageName}").on("click", () => $P.fnSndngInfo()); // 발송반송 정보 $("#btnSndng--${pageName}").on("click", () => $P.fnSndngInfo()); // 발송반송 정보
$("#btnPrcs--${pageName}").on("click", () => $P.fnPrcsInfo()); // 처리상세 정보 $("#btnPrcs--${pageName}").on("click", () => $P.fnPrcsInfo()); // 처리상세 정보
$("#btnLevy--${pageName}").on("click", () => $P.fnLevyInfo()); // 부과체납 정보 $("#btnLevy--${pageName}").on("click", () => $P.fnLevyInfo()); // 부과체납 정보
$("#btnRcvmt--${pageName}").on("click", () => $P.fnRcvmtInfo()); // 수납 정보 $("#btnRcvmt--${pageName}").on("click", () => $P.fnRcvmtInfo()); // 수납 정보
$("#btnCvlcptDscsn--${pageName}").on("click", () => $P.fnCvlcptDscsnInfo()); // 민원상담 정보 $("#btnCvlcptDscsn--${pageName}").on("click", () => $P.fnCvlcptDscsnInfo()); // 민원상담 정보
} }
// 기본 데이터 설정 // 기본 데이터 설정
$P.initData = () => { $P.initData = () => {
$P.curDataIndex = null; // 화면이 열릴때 초기 값으로 null로 설정해야 건수가 정상 표시 된다. $P.curDataIndex = null; // 화면이 열릴때 초기 값으로 null로 설정해야 건수가 정상 표시 된다.
} }
/************************************************************************** /**************************************************************************

@ -295,7 +295,6 @@
<jsp:include page="/WEB-INF/jsp/fims/photo-main.jsp" /> <jsp:include page="/WEB-INF/jsp/fims/photo-main.jsp" />
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -561,7 +560,7 @@
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
dialog.open({ dialog.open({
id: $P.control.prefixed("Dialog--${pageName}") id: "payerDialog--${pageName}"
, title: dialogTitle , title: dialogTitle
, content: resp , content: resp
, size: "lg" , size: "lg"

@ -175,7 +175,6 @@
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -262,7 +261,7 @@
, onOK: () => { } , onOK: () => { }
}); });
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회 if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
} }
// 삭제 // 삭제
@ -303,10 +302,9 @@
$("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화
$P.control.dataset.clear(); // Dataset 초기화 $P.control.dataset.clear(); // Dataset 초기화
// 최상단 단속 Data 셋팅 // sprt02010-main 단속 정보
if (resp.totalInfo) { pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
}
// 의견제출 정보 // 의견제출 정보
if (resp.opnnSbmsnInfo) { $P.control.setData([resp.opnnSbmsnInfo]); } if (resp.opnnSbmsnInfo) { $P.control.setData([resp.opnnSbmsnInfo]); }
} }

@ -156,7 +156,7 @@
<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: 280px">제목</th> <th class="cmn" style="width: 280px">제목</th>
<th class="cmn" style="width: 200px">기타내용</th> <th class="cmn" style="width: 280px">기타내용</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 dummy-th"></th> <th class="cmn dummy-th"></th>
@ -190,7 +190,6 @@
<!-- 공시송달 이력 --> <!-- 공시송달 이력 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -405,7 +404,7 @@
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/040/info.do") url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/040/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json , headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {} , data: params || {}
, success : resp => { , success: resp => {
// 초기화 // 초기화
$("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화
$P.sndngDtlControl.dataset.clear(); // 발송 상세 Dataset 초기화 $P.sndngDtlControl.dataset.clear(); // 발송 상세 Dataset 초기화

@ -241,7 +241,6 @@
<!-- 주소 변동 이력 --> <!-- 주소 변동 이력 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -537,12 +536,10 @@
// sprt02010-main 단속 정보 // sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]); pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
// 감경 정보
if (resp.rductInfo) { $P.rductControl.setData([resp.rductInfo]); }
// 부과제외 정보
if (resp.levyExclInfo) { $P.levyExclControl.setData([resp.levyExclInfo]); }
// Dataset 셋팅 // Dataset 셋팅
if (resp.rductInfo) { $P.rductControl.setData([resp.rductInfo]); } // 감경 정보
if (resp.levyExclInfo) { $P.levyExclControl.setData([resp.levyExclInfo]); } // 부과제외 정보
$P.crdnSttsHstryControl.setData(resp.crdnSttsHstrys); // 단속상태 이력 $P.crdnSttsHstryControl.setData(resp.crdnSttsHstrys); // 단속상태 이력
$P.payerHstryControl.setData(resp.payerHstrys); // 납부자 이력 $P.payerHstryControl.setData(resp.payerHstrys); // 납부자 이력
} }

@ -265,7 +265,6 @@
<!-- 압류 정보 --> <!-- 압류 정보 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************
@ -382,8 +381,8 @@
// sprt02010-main 단속 정보 // sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]); pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
// 부과 정보 // Dataset 셋팅
if (resp.levyInfo) { $P.control.setData([resp.levyInfo]); } if (resp.levyInfo) { $P.control.setData([resp.levyInfo]); } // 부과 정보
} }
}); });
} }

@ -221,7 +221,6 @@
<!-- 수납 정보 --> <!-- 수납 정보 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************

@ -88,7 +88,6 @@
<!-- 민원 상담 정보 --> <!-- 민원 상담 정보 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
<!-- Page Body -->
<script> <script>
/************************************************************************** /**************************************************************************

Loading…
Cancel
Save