whakdo963 2 vuotta sitten
vanhempi
commit
6758523e89

+ 19 - 8
bin/src/main/webapp/app/oper/OPER03010.html

@@ -201,6 +201,14 @@
201 201
 													<input type="text" id="ITP_FORM_OPER03010_DETAIL_OWNER_TEL_NO" class="form-control itp_input" name="ownerTelNo" value="">
202 202
 												</div>
203 203
 											</div>
204
+											<label class="col-xs-2 itp_lb">기업형태 *</label>
205
+											<div class="col-xs-4 itp_ip">
206
+												<div class="col-xs-6 itp_in">
207
+													<select id="ITP_FORM_OPER03010_DETAIL_CORP_TYPE" data-select-code="CORP_TYPE" class="form-control itp_input" name="corpType"></select>
208
+												</div>
209
+											</div>
210
+										</div>
211
+										<div class="form-group">
204 212
 											<label class="col-xs-2 itp_lb">계약기간 *</label>
205 213
 											<div class="col-xs-4 itp_ip">
206 214
 												<div class="col-xs-10 itp_in">
@@ -208,9 +216,12 @@
208 216
 														<input type="text" id="ITP_FORM_OPER03010_SEARCH_JOIN_STT_DT" class="form-control itp_input" name="joinSttDt" value="" readonly>
209 217
 														<span class="input-group-addon itp_date_to">~</span>
210 218
 														<input type="text" id="ITP_FORM_OPER03010_SEARCH_JOIN_END_DT" class="form-control itp_input" name="joinEndDt" value="" readonly>
211
-													</div>												
219
+													</div>
212 220
 												</div>
213
-											</div>											
221
+											</div>
222
+											<label class="col-xs-2 itp_lb"></label>
223
+											<div class="col-xs-4 itp_ip">
224
+											</div>
214 225
 										</div>
215 226
 									</div>
216 227
 									<div class="itp_form_in">
@@ -224,17 +235,17 @@
224 235
 													<button type="button" id="ITP_FORM_OPER03010_DETAIL_ADRES_SCH" class="btn btn-primary btn-sm SHOW" style="margin: -1px 0px 0px 3px;">&nbsp;&nbsp;주소검색&nbsp;&nbsp;</button>
225 236
 												</div>
226 237
 												<div class="col-xs-4 itp_in" style="margin-right: 5px; margin-left:20px;">
227
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES" class="form-control itp_input" name="loadAddr" value="" readonly placeholder="기본주소">
238
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES" class="form-control itp_input" name="addr1" value="" readonly placeholder="기본주소">
228 239
 												</div>
229 240
 												<div class="col-xs-4 itp_in">
230
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES_DTL" class="form-control itp_input" name="dtlAddr" value="" placeholder="상세주소">
241
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES_DTL" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">
231 242
 												</div>
232 243
 												
233 244
 												<!-- 주소 맵 -->
234 245
 												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS" value="" />
235 246
 												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS" value="" />
236
-												<input type="hidden" name="cmpyLat" id="ITP_FORM_OPER03010_DETAIL_LAT" value="" />
237
-												<input type="hidden" name="cmpyLng" id="ITP_FORM_OPER03010_DETAIL_LNG" value="" />
247
+												<input type="hidden" name="latX" id="ITP_FORM_OPER03010_DETAIL_LAT" value="" />
248
+												<input type="hidden" name="latY" id="ITP_FORM_OPER03010_DETAIL_LNG" value="" />
238 249
 												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_HJ_DONG" value="" />
239 250
 												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_BJ_DONG" value="" />
240 251
 												<div id="ITP_FORM_OPER03010_DETAIL_MAP" style="width:700px; height:400px;"></div>
@@ -288,7 +299,7 @@
288 299
 											</div>
289 300
 											<label class="col-xs-2 itp_lb">가맹점 KEY *<br>사용자 계정 추가-3자리</label>
290 301
 											<div class="col-xs-4 itp_ip">
291
-												<div class="col-xs-4 itp_in "></div>
302
+												<div class="col-xs-4 itp_in fnAfflShopKey"></div>
292 303
 											</div>
293 304
 										</div>
294 305
 										<div class="form-group">
@@ -304,7 +315,7 @@
304 315
 										<div class="form-group">
305 316
 											<label class="col-xs-2 itp_lb">가맹점 구분</label>
306 317
 											<div class="col-xs-4 itp_ip">
307
-												<div class="col-xs-7 itp_in "></div>
318
+												<div class="col-xs-7 itp_in fnCorpTypeNm"></div>
308 319
 											</div>
309 320
 											<label class="col-xs-2 itp_lb"></label>
310 321
 											<div class="col-xs-4 itp_in">

+ 2 - 2
bin/src/main/webapp/app/oper/OPER03011.html

@@ -250,7 +250,7 @@
250 250
 											</div>
251 251
 											<label class="col-xs-2 itp_lb">가맹점 KEY *<br>사용자 계정 추가-3자리</label>
252 252
 											<div class="col-xs-4 itp_ip">
253
-												<div class="col-xs-4 itp_in "></div>
253
+												<div class="col-xs-4 itp_in fnAfflShopkey"></div>
254 254
 											</div>
255 255
 										</div>
256 256
 										<div class="form-group">
@@ -266,7 +266,7 @@
266 266
 										<div class="form-group">
267 267
 											<label class="col-xs-2 itp_lb">가맹점 구분</label>
268 268
 											<div class="col-xs-4 itp_ip">
269
-												<div class="col-xs-7 itp_in "></div>
269
+												<div class="col-xs-7 itp_in fnCorpTypeNm"></div>
270 270
 											</div>
271 271
 											<label class="col-xs-2 itp_lb"></label>
272 272
 											<div class="col-xs-4 itp_in">

+ 47 - 0
bin/src/main/webapp/app/popup/biz/BIZPOP_PO_STOCK_HIST.html

@@ -0,0 +1,47 @@
1
+<div id="ITP_BIZPOP_PO_STOCK_HIST" class="modal itp_modal">
2
+	<div class="modal-dialog">
3
+		<div class="modal-content">
4
+			<form id="ITP_FORM_BIZPOP_PO_STOCK_HIST">
5
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_HIST_BRAND_ID" name="sbrandId" value="">
6
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_HIST_WHS_ID" name="swhsId" value="">
7
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_HIST_LOCATION" name="slocation" value="">
8
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_HIST_ITEM_ID" name="sitemId" value="">
9
+			
10
+				<div class="modal-header">
11
+					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
12
+					<h5 class="modal-title">재고이력</h5>
13
+				</div>
14
+				<div class="modal-body">
15
+					<div class="itp_form fix">
16
+						<div class="col-xs-12 itp_form_inline">
17
+							<div class="form-horizontal fix">
18
+								<div class="col-xs-5 itp_ip">
19
+									<div class="input-daterange input-group date">
20
+										<input type="text" id="ITP_FORM_BIZPOP_PO_STOCK_HIST_FROM_DT" class="form-control itp_input" name="fromDt" value="" readonly>
21
+										<span class="input-group-addon itp_date_to">~</span>
22
+										<input type="text" id="ITP_FORM_BIZPOP_PO_STOCK_HIST_TO_DT" class="form-control itp_input" name="toDt" value="" readonly>
23
+									</div>
24
+								</div>
25
+							
26
+								<div class="col-xs-5 itp_ip itp_pr">
27
+									<select id="ITP_FORM_BIZPOP_PO_STOCK_HIST_INOUT_CD" class="form-control itp_input" name="sinoutCd"></select>	
28
+								</div>
29
+								<div class="pull-right itp_cicon">
30
+									<button type="button" class="btn btn-success btn-sm" id="ITP_BIZPOP_PO_STOCK_HIST_BTN_SEARCH" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
31
+								</div>
32
+							</div>
33
+						</div>
34
+					</div>
35
+					<div id="ITP_BIZPOP_PO_STOCK_HIST_jqGrid_list" class="itp_tb_list" data-total-cnt="">
36
+						<div id="ITP_BIZPOP_PO_STOCK_HIST_jqGridView" class="itp_views fix"></div>
37
+						<table id="ITP_BIZPOP_PO_STOCK_HIST_jqGrid"></table>
38
+						<div id="ITP_BIZPOP_PO_STOCK_HIST_jqGridPager"></div>
39
+						<div id="ITP_BIZPOP_PO_STOCK_HIST_jqGridEmpty" class="itp_no_data"></div>
40
+					</div>
41
+				</div>
42
+			</form>
43
+		</div>
44
+	</div>
45
+
46
+	<div id="ITP_POPUP_JS"></div>
47
+</div>

+ 66 - 28
bin/src/main/webapp/app/stockmng/STOCKMNG02010.html

@@ -5,7 +5,7 @@
5 5
 				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>재고실사</strong></h2>
6 6
 				<div class="pull-right itp_cicon">
7 7
 					<button type="button" id="ITP_BTN_STOCKMNG02010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;조회&nbsp;&nbsp;</button>
8
-					<button type="button" id="ITP_BTN_STOCKMNG02010_SRH" class="btn btn-success btn-sm " style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;재고실사&nbsp;&nbsp;</button>
8
+					<button type="button" id="ITP_BTN_STOCKMNG02010_STOCK_CDD" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;재고실사&nbsp;&nbsp;</button>
9 9
 					<button type="button" id="ITP_BTN_STOCKMNG02010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon "></i>&nbsp;&nbsp;저장&nbsp;&nbsp;</button>
10 10
 					<button type="button" id="ITP_BTN_STOCKMNG02010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon "></i>&nbsp;&nbsp;취소/목록&nbsp;&nbsp;</button>
11 11
 				</div>					
@@ -16,10 +16,13 @@
16 16
 						<div class="itp_srh_border fix">
17 17
 							<div class="col-xs-12">
18 18
 								<form id="ITP_FORM_STOCKMNG02010_SEARCH" class="form-horizontal">
19
+									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID" name="sbrandId" value="">
20
+									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID" name="sstoreId" value="">
21
+								
19 22
 									<div class="form-group">
20 23
 										<div class="col-xs-10">
21 24
 											<div class="col-xs-2 itp_ip itp_noMar">
22
-												<select id="ITP_FORM_STOCKMNG02010_SERVICE_CDD_DT" class="form-control itp_input" name="serviceCddDt">
25
+												<select class="form-control itp_input">
23 26
 													<option value="">실사기준일</option>											
24 27
 												</select>
25 28
 											</div>
@@ -31,14 +34,10 @@
31 34
 												</div>
32 35
 											</div>
33 36
 											<div class="col-xs-2 itp_ip itp_noMar">
34
-												<select id="ITP_FORM_STOCKMNG02010_SEARCH_WHS_MGNT_BASE_INFO " class="form-control itp_input" name="sWhsMgntBaseInfo">
35
-													<option value="">창고</option>											
36
-												</select>	
37
+												<select id="ITP_FORM_STOCKMNG02010_SEARCH_WHS_ID" class="form-control itp_input" name="swhsId"></select>	
37 38
 											</div>
38 39
 											<div class="col-xs-3 itp_ip itp_noMar">
39
-												<select id="ITP_FORM_STOCKMNG02010_SEARCH_WHS_MGNT_BASE_LOC" class="form-control itp_input" name="sWhsMgntBaseLoc">
40
-													<option value="">판매용/B품/폐기품</option>											
41
-												</select>										
40
+												<select id="ITP_FORM_STOCKMNG02010_SEARCH_LOCATION" class="form-control itp_input" name="slocation"></select>										
42 41
 											</div>
43 42
 										</div>
44 43
 									</div>
@@ -55,30 +54,77 @@
55 54
 						</div>
56 55
 					</div>
57 56
 				</div>
58
-				<div id="ITP_AJAX_STOCKMNG02010_LIST_CONTAINER">
57
+				<div id="ITP_AJAX_STOCKMNG02010_DETAIL_CONTAINER">
59 58
 					<div class="itp_lg_form itp_type1 fix">
60 59
 						<div class="itp_srh_border fix">
61 60
 							<div class="col-xs-12">
62
-								<form id="ITP_FORM_STOCKMNG02010_SEARCH" class="form-horizontal">
61
+								<form id="ITP_FORM_STOCKMNG02010_DETAIL" class="form-horizontal">
62
+									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID" name="brandId" value="">
63
+									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_STORE_ID" name="storeId" value="">
64
+								
65
+									<div class="form-group">
66
+										<div class="col-xs-10">
67
+											<div class="col-xs-2 itp_ip itp_noMar">
68
+												<div class="input-group date">
69
+												<input type="text" id="ITP_FORM_STOCKMNG02010_DETAIL_CDD_DT" class="form-control itp_input" name="cddDt" readonly>
70
+												<span class="input-group-addon itp_input itp_date_to">
71
+													<i class="glyphicon glyphicon-calendar"></i>
72
+												</span>
73
+												</div>												
74
+											</div>
75
+											<div class="col-xs-2 itp_ip itp_noMar">
76
+												<select id="ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID" class="form-control itp_input" name="whsId" disabled="disabled"></select>	
77
+											</div>
78
+											<div class="col-xs-3 itp_ip itp_noMar">
79
+												<select id="ITP_FORM_STOCKMNG02010_DETAIL_LOCATION" class="form-control itp_input" name="location" disabled="disabled"></select>										
80
+											</div>
81
+											<div class="col-xs-2 itp_ip">
82
+												<button type="button" id="ITP_BTN_STOCKMNG02010_DETAIL_EXCEL_UPLOAD" class="btn btn-warning btn-sm FFB"><i class="glyphicon "></i>&nbsp;&nbsp;엑셀업로드&nbsp;&nbsp;</button>
83
+											</div>
84
+										</div>
85
+									</div>
86
+								</form>
87
+							</div>
88
+						</div>
89
+					</div>
90
+					<div class="fix" style="padding-right:15px;margin-bottom: 13px;">
91
+						<div class="pull-right itp_cicon">
92
+							<button type="button" id="ITP_BTN_STOCKMNG02010_DETAIL_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;품목추가&nbsp;&nbsp;</button>
93
+						</div>
94
+					</div>
95
+					<div class="itp_table fix">
96
+						<div id="ITP_STOCKMNG02010_DETAIL_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
97
+							<div id="ITP_STOCKMNG02010_DETAIL_jqGridView" class="itp_views fix"></div>
98
+							<table id="ITP_STOCKMNG02010_DETAIL_jqGrid"></table>
99
+							<div id="ITP_STOCKMNG02010_DETAIL_jqGridPager"></div>
100
+							<div id="ITP_STOCKMNG02010_DETAIL_jqGridEmpty" class="itp_no_data"></div>
101
+						</div>
102
+					</div>
103
+				</div>
104
+				<div id="ITP_AJAX_STOCKMNG02010_VIEW_CONTAINER">
105
+					<div class="itp_lg_form itp_type1 fix">
106
+						<div class="itp_srh_border fix">
107
+							<div class="col-xs-12">
108
+								<form id="ITP_FORM_STOCKMNG02010_VIEW_SEARCH" class="form-horizontal">
63 109
 									<div class="form-group">
64 110
 										<div class="col-xs-10">
65 111
 											<div class="col-xs-2 itp_ip itp_noMar">
66
-												<select id="ITP_FORM_STOCKMNG02010_SERVICE_CDD_DT" class="form-control itp_input" name="serviceCddDt">
112
+												<select id="ITP_FORM_STOCKMNG02010_VIEW_SERVICE_CDD_DT" class="form-control itp_input" name="serviceCddDt">
67 113
 													<option value="">실사기준일</option>											
68 114
 												</select>
69 115
 											</div>
70 116
 											<div class="col-xs-2 itp_ip itp_noMar">
71
-												<select id="ITP_FORM_STOCKMNG02010_SERVICE_WHS_NM" class="form-control itp_input" name="servicewhsNm">
117
+												<select id="ITP_FORM_STOCKMNG02010_VIEW_SERVICE_WHS_NM" class="form-control itp_input" name="servicewhsNm">
72 118
 													<option value="">창고</option>											
73 119
 												</select>	
74 120
 											</div>
75 121
 											<div class="col-xs-3 itp_ip itp_noMar">
76
-												<select id="ITP_FORM_STOCKMNG02010_SEARCH_STCK_DVSN" class="form-control itp_input" name="sStckDvsn">
122
+												<select id="ITP_FORM_STOCKMNG02010_VIEW_SEARCH_STCK_DVSN" class="form-control itp_input" name="sStckDvsn">
77 123
 												<option value="">판매용/B품/폐기품</option>											
78 124
 												</select>										
79 125
 											</div>
80 126
 											<div class="col-xs-2 itp_ip">
81
-												<button type="button" id="ITP_BTN_STOCKMNG02010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon "></i>&nbsp;&nbsp;엑셀업로드&nbsp;&nbsp;</button>
127
+												<button type="button" id="ITP_BTN_STOCKMNG02010_VIEW_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon "></i>&nbsp;&nbsp;엑셀업로드&nbsp;&nbsp;</button>
82 128
 											</div>
83 129
 										</div>
84 130
 									</div>
@@ -88,26 +134,18 @@
88 134
 					</div>
89 135
 					<div class="fix" style="padding-right:10px;">
90 136
 						<div class="pull-right itp_cicon">
91
-							<button type="button" id="ITP_BTN_STOCKMNG02010_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;품목추가&nbsp;&nbsp;</button>
137
+							<button type="button" id="ITP_BTN_STOCKMNG02010_VIEW_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;품목추가&nbsp;&nbsp;</button>
92 138
 						</div>
93 139
 					</div>
94 140
 					<div class="itp_table fix">
95
-						<div id="ITP_STOCKMNG02010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
96
-							<div id="ITP_STOCKMNG02010_jqGridView" class="itp_views fix"></div>
97
-							<table id="ITP_STOCKMNG02010_jqGrid"></table>
98
-							<div id="ITP_STOCKMNG02010_jqGridPager"></div>
99
-							<div id="ITP_STOCKMNG02010_jqGridEmpty" class="itp_no_data"></div>
141
+						<div id="ITP_STOCKMNG02010_VIEW_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
142
+							<div id="ITP_STOCKMNG02010_VIEW_jqGridView" class="itp_views fix"></div>
143
+							<table id="ITP_STOCKMNG02010_VIEW_jqGrid"></table>
144
+							<div id="ITP_STOCKMNG02010_VIEW_jqGridPager"></div>
145
+							<div id="ITP_STOCKMNG02010_VIEW_jqGridEmpty" class="itp_no_data"></div>
100 146
 						</div>
101 147
 					</div>
102 148
 				</div>
103
-				<div class="itp_table fix">
104
-					<div id="ITP_STOCKMNG02010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
105
-						<div id="ITP_STOCKMNG02010_jqGridView" class="itp_views fix"></div>
106
-						<table id="ITP_STOCKMNG02010_jqGrid"></table>
107
-						<div id="ITP_STOCKMNG02010_jqGridPager"></div>
108
-						<div id="ITP_STOCKMNG02010_jqGridEmpty" class="itp_no_data"></div>
109
-					</div>
110
-				</div>
111 149
 			</div>
112 150
 		</article>
113 151
 	</div>

+ 47 - 7
bin/src/main/webapp/js/app/config.js

@@ -30,6 +30,7 @@ requirejs.config({
30 30
 		'message.locale': 'js/app/locales/locale-' + ITP_LANGUAGE + '.js?version='+js_version,
31 31
 		'kakao.postcode': 'https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2',		
32 32
 		'kakao.maps': 'https://dapi.kakao.com/v2/maps/sdk.js?appkey=a2ce7c66185a5413095b6485ac9ad3cd&libraries=services,clusterer&autoload=false',
33
+		'kakao.map.util': 'js/app/kakao.map', 				// Crypto 암호화 js
33 34
 		'file.saver': 'js/FileSaver.min',					// 엑셀 다운로드 (JSON 데이터를 파일로 전환)
34 35
 		'xlsx': 'js/xlsx.full.min',							// 엑셀 다운로드 (JSON 데이터를 파일로 전환)
35 36
 		'html2canvas': 'js/html2canvas.min',				// PDF 다운로드 (html 객체를 canvas로 변환)
@@ -71,6 +72,12 @@ requirejs.config({
71 72
 		'xlsx': {
72 73
 			deps: ['file.saver']
73 74
 		},
75
+		'kakao.map.util': {
76
+			deps: [
77
+				'kakao.postcode',
78
+				'kakao.maps'
79
+			]
80
+		},
74 81
 		'jspdf': {
75 82
 			deps: [
76 83
 				// 'jspdf.autotable',
@@ -476,10 +483,10 @@ function fn_make_side_menu() {
476 483
 
477 484
 		console.log('[ITP_NAV_LINK] data-itp-nav-id = ' + id + ', data-conn-url = ' + connUrl + ', tabSize = ' + tabSize);
478 485
 
479
-		// if(String(id).indexOf('OPER') === -1 && String(id).indexOf('SYSTEM') === -1 && !sessionStorage.getItem('itp_manage_brand_info')) {
480
-		// 	itp_fn_modal_alert(ITP_MSG_LOCALE.message.page.noChoiceBrand);
481
-		// 	return false;
482
-		// }
486
+		if(String(id).indexOf('OPER') === -1 && String(id).indexOf('SYSTEM') === -1 && !sessionStorage.getItem('itp_manage_brand_info')) {
487
+			itp_fn_modal_alert(ITP_MSG_LOCALE.message.page.noChoiceBrand);
488
+			return false;
489
+		}
483 490
 
484 491
 		if (tabSize > 10) {
485 492
 			itp_fn_modal_alert(ITP_MSG_LOCALE.message.page.noMoreTab);
@@ -584,6 +591,12 @@ function fn_show_btn_auth(btn_id) {
584 591
 	}
585 592
 }
586 593
 
594
+function fn_show_btn_auth_array(btn_ids) {
595
+	$.each(btn_ids, function(i, value) {
596
+		fn_show_btn_auth(value);
597
+	});
598
+}
599
+
587 600
 function fn_make_select(options, code, select_id, all_show_yn, all_name) { //셀렉트 박스 만들기
588 601
 	$select_id = $('#' + select_id);
589 602
 	$select_id.empty();
@@ -1654,19 +1667,46 @@ function itp_fn_grid_make_remote(option) {
1654 1667
 	}).navGrid(options.pager, ITP_GRID_NAV_DEFAULTS.navGrid);
1655 1668
 }
1656 1669
 
1670
+function itp_fn_grid_make_not_paging(option) {
1671
+	var options = $.extend({
1672
+		mtype: 'POST',
1673
+		multiselect: false,
1674
+		rownumbers: false,
1675
+		loadBeforeSend: function(jqXHR) {
1676
+			jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
1677
+		},
1678
+		loadError: function(jqXHR, textStatus, errorThrown) {
1679
+			itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
1680
+		}
1681
+	}, option);
1682
+
1683
+	$(options.gridId).jqGrid({
1684
+		colModel: options.colModel,
1685
+		postData: options.param,
1686
+		mtype: options.mtype,
1687
+		url: options.url,
1688
+		multiselect: options.multiselect,
1689
+		rownumbers: options.rownumbers,
1690
+		loadBeforeSend: options.loadBeforeSend,
1691
+		onCellSelect: options.onCellSelect,
1692
+		loadComplete: options.loadComplete,
1693
+		loadError: options.loadError
1694
+	});
1695
+}
1696
+
1657 1697
 function itp_fn_grid_make_local(option) {
1658 1698
 	var options = $.extend({
1659 1699
 		multiselect: false,
1660
-		rownumbers: true
1700
+		rownumbers: false
1661 1701
 	}, option);
1662 1702
 	$(option.gridId).jqGrid({
1663 1703
 		colModel: options.colModel,
1664 1704
 		data: options.data,
1665 1705
 		datatype: 'local',
1666 1706
 		multiselect: options.multiselect,
1667
-		rownumbers: options.rownumbers
1707
+		rownumbers: options.rownumbers,
1708
+		loadComplete: options.loadComplete
1668 1709
 	});
1669
-// }).navGrid(options.pager, ITP_GRID_NAV_DEFAULTS.navGrid);
1670 1710
 }
1671 1711
 
1672 1712
 function itp_fn_grid_paging(grid_id, action, args) {

+ 120 - 0
bin/src/main/webapp/js/app/kakao.map.js

@@ -0,0 +1,120 @@
1
+let kakaoMap = {
2
+    init: function(id, locate) {
3
+        this.formId = id;
4
+        this.load(locate);
5
+    },
6
+    geocoder: null,
7
+    schDetailAddrFromCoords: function(coords, callback) {
8
+        // 좌표로 법정동 상세 주소 정보를 요청합니다
9
+        if(this.geocoder) {
10
+            this.geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
11
+        }
12
+    },
13
+    getMap: function(id) {
14
+        var mapContainer = document.getElementById(id), // 지도를 표시할 div
15
+            mapOption = {
16
+                center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
17
+                level: 3, // 지도의 확대 레벨
18
+                mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
19
+            };
20
+
21
+        // 지도를 생성한다
22
+        var map = new kakao.maps.Map(mapContainer, mapOption);
23
+
24
+        // 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
25
+        map.setZoomable(false);
26
+
27
+        // 지도에 확대 축소 컨트롤을 생성한다
28
+        //var zoomControl = new kakao.maps.ZoomControl();
29
+
30
+        // 지도의 우측에 확대 축소 컨트롤을 추가한다
31
+        //map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
32
+
33
+        return map;
34
+    },
35
+    marker: function(map, coords) {
36
+        // 지도에 마커를 생성하고 표시한다
37
+        marker = new kakao.maps.Marker({
38
+            position: coords, // 마커의 좌표
39
+            map: map // 마커를 표시할 지도 객체
40
+        });
41
+    },
42
+    load: function(locate) {
43
+        var _this = this;
44
+        kakao.maps.load(function() {
45
+            var map = _this.getMap(_this.formId + '_MAP');
46
+            // 주소-좌표 변환 객체를 생성합니다
47
+            _this.geocoder = new kakao.maps.services.Geocoder();
48
+            if( !locate || locate.length == 0 ) {
49
+                // 지도에 마커를 생성하고 표시한다
50
+                _this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
51
+            } else {
52
+                // 주소로 좌표를 검색합니다
53
+                _this.geocoder.addressSearch(locate, function(result, status) {
54
+                    // 정상적으로 검색이 완료됐으면
55
+                    if (status === kakao.maps.services.Status.OK) {
56
+
57
+                        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
58
+                        if(_this.formId.lastIndexOf('DETAIL') > -1) {
59
+                            document.getElementById(_this.formId + '_LAT').value = result[0].y;
60
+                            document.getElementById(_this.formId + '_LNG').value = result[0].x;
61
+                        }
62
+
63
+                        // 결과값으로 받은 위치를 마커로 표시합니다
64
+                        _this.marker(map, coords);
65
+
66
+                        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
67
+                        map.setCenter(coords);
68
+                    } else {
69
+                        _this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
70
+                    }
71
+                });
72
+            }
73
+
74
+            if(_this.formId.lastIndexOf('DETAIL') > -1) {
75
+                _this.listener.drag(map);
76
+            }
77
+        });
78
+    },
79
+    listener: {
80
+        drag: function(map) {
81
+            // 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
82
+            kakao.maps.event.addListener(map, 'drag', function () {
83
+                kakaoMap.schDetailAddrFromCoords(map.getCenter(), function(result, status) {
84
+                    if (status === kakao.maps.services.Status.OK) {
85
+
86
+                        document.getElementById(kakaoMap.formId + '_LOTS_ADDRESS').value = result[0].address.address_name ;
87
+                        document.getElementById(kakaoMap.formId + '_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
88
+                        document.getElementById(kakaoMap.formId + '_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#' + this.formId + '_STREET_ADDRESS').val();
89
+                        document.getElementById(kakaoMap.formId + '_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#' + this.formId + '__CMPY_ZIPNO').val() ;
90
+                        document.getElementById(kakaoMap.formId + '_LAT').value = map.getCenter().getLat();
91
+                        document.getElementById(kakaoMap.formId + '_LNG').value = map.getCenter().getLng();
92
+
93
+                        // 마커를 클릭한 위치에 표시합니다
94
+                        marker.setPosition(map.getCenter());
95
+                        marker.setMap(map);
96
+                    }
97
+                });
98
+                /* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
99
+                console.log(message); */
100
+            });
101
+        }
102
+    },
103
+    address: function() {
104
+        var _this = this;
105
+        new daum.Postcode({
106
+            oncomplete: function(data) {
107
+                // 전체주소 리턴
108
+                document.getElementById(kakaoMap.formId + '_ZIPNO').value = data.zonecode;
109
+                document.getElementById(kakaoMap.formId + '_ADRES').value = data.roadAddress;
110
+                document.getElementById(kakaoMap.formId + '_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
111
+                document.getElementById(kakaoMap.formId + '_STREET_ADDRESS').value = data.roadAddress;
112
+                document.getElementById(kakaoMap.formId + '_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
113
+                document.getElementById(kakaoMap.formId + '_BJ_DONG').value = data.bname;
114
+
115
+                _this.init(kakaoMap.formId, data.roadAddress);
116
+                document.getElementById(kakaoMap.formId + '_ADRES_DTL').focus();
117
+            }
118
+        }).open();
119
+    }
120
+};

+ 76 - 272
bin/src/main/webapp/js/app/oper/ITP_OPER01010.js

@@ -109,40 +109,6 @@ const gridColModel = {
109 109
 			sortable: false, hidden: false
110 110
 		}
111 111
 	],
112
-	// view: [
113
-	// 	{
114
-	// 		index: 'VIEW_CD', name: 'viewCd',
115
-	// 		label: ITP_MSG_LOCALE.label.viewCd,
116
-	// 		width: '10', fixed: false, align: 'center',
117
-	// 		sortable: false, hidden: true
118
-	// 	},
119
-	// 	{
120
-	// 		index: 'AUTH_NO', name: 'authNo',
121
-	// 		label: ITP_MSG_LOCALE.label.permitCd,
122
-	// 		width: '20', fixed: false, align: 'center',
123
-	// 		sortable: false, editable: false, edittype: 'text',
124
-	// 		editrules: {required: true}
125
-	// 	},
126
-	// 	{
127
-	// 		index: 'AUTH_NM', name: 'authNm',
128
-	// 		label: ITP_MSG_LOCALE.label.permitName,
129
-	// 		width: '30', fixed: false, align: 'center',
130
-	// 		sortable: true, editable: false, edittype: 'text',
131
-	// 		editrules: {required: true}
132
-	// 	},
133
-	// 	{
134
-	// 		index: 'USE_YN_NM', name: 'useYnNm',
135
-	// 		label: ITP_MSG_LOCALE.label.status,
136
-	// 		width: '10', fixed: false, align: 'center',
137
-	// 		sortable: false, editable: false, edittype: 'text'
138
-	// 	},
139
-	// 	{
140
-	// 		index: 'ADD_DT', name: 'addDt',
141
-	// 		label: ITP_MSG_LOCALE.label.regDt,
142
-	// 		width: '10', fixed: false, align: 'center',
143
-	// 		sortable: false, editable: false, edittype: 'text'
144
-	// 	}
145
-	// ],
146 112
 	detail: [
147 113
 		{
148 114
 			index: 'VIEW_CD', name: 'viewCd',
@@ -249,78 +215,86 @@ let pageObj = {
249 215
 		}
250 216
 	},
251 217
 	switchScreen: function(mode) {
252
-		if(mode == 'LIST') { // 목록
253
-			$('#ITP_BTN_OPER01010_MODIFY').hide();
254
-			$('#ITP_BTN_OPER01010_CANCELLIST').hide();
255
-			$('#ITP_BTN_OPER01010_DELETE').hide();
256
-			$('#ITP_BTN_OPER01010_SAVE').hide();
257
-			fn_show_btn_auth('#ITP_BTN_OPER01010_SRH');
258
-			fn_show_btn_auth('#ITP_BTN_OPER01010_NEWREG');
259
-
218
+		$('.itp_det_head').find('button[id^="ITP_BTN_OPER01010_"]').each(function(i) {
219
+			$(this).hide();
220
+		});
221
+		$('div[id$="_CONTAINER"]').each(function(i) {
222
+			if($(this).attr('id').startsWith('ITP_AJAX_OPER01010')) {
223
+				$(this).hide();
224
+			}
225
+		});
226
+		if(mode === 'LIST') { // 목록
227
+			fn_show_btn_auth_array(['#ITP_BTN_OPER01010_SRH', '#ITP_BTN_OPER01010_NEWREG']);
260 228
 			$('#ITP_AJAX_OPER01010_LIST_CONTAINER').show();
261
-			$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').hide();
262
-			$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').hide();
263 229
 		} else if(mode == 'ADD') { // 등록
264
-			ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = true;
230
+			fn_show_btn_auth_array(['#ITP_BTN_OPER01010_CANCELLIST', '#ITP_BTN_OPER01010_SAVE']);
231
+			$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').show();
265 232
 
266
-			$('#ITP_BTN_OPER01010_SRH').hide();
267
-			$('#ITP_BTN_OPER01010_MODIFY').hide();
268
-			$('#ITP_BTN_OPER01010_NEWREG').hide();
269
-			$('#ITP_BTN_OPER01010_DELETE').hide();
270
-			$('#ITP_BTN_OPER01010_RESET_PW').hide();
271
-			fn_show_btn_auth('#ITP_BTN_OPER01010_CANCELLIST');
272
-			fn_show_btn_auth('#ITP_BTN_OPER01010_SAVE');
233
+			$('input[id^="ITP_FORM_OPER01010_DETAIL_"]').each(function(i) {
234
+				($(this).attr('id') === 'ITP_FORM_OPER01010_DETAIL_VIEW_CD') ? $(this).val('C') : $(this).val('');
235
+			});
273 236
 
274
-			$('#ITP_AJAX_OPER01010_LIST_CONTAINER').hide();
275
-			$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').show();
276
-			$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').hide();
277 237
 			$('#ITP_FORM_OPER01010_DETAIL_USER_ID').removeAttr('readonly');
278 238
 			$('#ITP_FORM_OPER01010_DETAIL_DUP').removeAttr('disabled');
279
-
280
-			$('#ITP_FORM_OPER01010_DETAIL_VIEW_CD').val('C');
281
-			$('#ITP_FORM_OPER01010_DETAIL_USER_NM').val('');
282
-			$('#ITP_FORM_OPER01010_DETAIL_USER_STAT_CD').val('');
283
-			$('#ITP_FORM_OPER01010_DETAIL_USER_ID').val('');
284
-			$('#ITP_FORM_OPER01010_DETAIL_USER_PW').val('');
285
-			$('#ITP_FORM_OPER01010_DETAIL_TEL_NO').val('');
286
-			$('#ITP_FORM_OPER01010_DETAIL_USER_PW_CONFIRM').val('');
287
-			$('#ITP_FORM_OPER01010_DETAIL_EMAIL').val('');
288
-
289
-			$('#ITP_FORM_OPER01010_DETAIL_SEARCH_AFFL_SHOP_ID').val('');
290
-			$('#ITP_FORM_OPER01010_DETAIL_SEARCH_AFFL_SHOP_NM').val('');
291 239
 			$('#ITP_FORM_OPER01010_DETAIL_SEARCH_BRAND_ID option').remove();
292 240
 			$('#ITP_FORM_OPER01010_DETAIL_SEARCH_AFFL_SHOP').show();
293 241
 			$('#ITP_FORM_OPER01010_DETAIL_DELETE_AFFL_SHOP').show();
294
-		} else if(mode == 'MODIFY') { // 수정
295
-			$('#ITP_BTN_OPER01010_SRH').hide();
296
-			$('#ITP_BTN_OPER01010_MODIFY').hide();
297
-			$('#ITP_BTN_OPER01010_NEWREG').hide();
298
-			$('#ITP_BTN_OPER01010_DELETE').hide();
299
-			fn_show_btn_auth('#ITP_BTN_OPER01010_CANCELLIST');
300
-			fn_show_btn_auth('#ITP_BTN_OPER01010_SAVE');
301
-			fn_show_btn_auth('#ITP_BTN_OPER01010_RESET_PW');
302
-
303
-			$('#ITP_AJAX_OPER01010_LIST_CONTAINER').hide();
242
+		} else if(mode === 'MODIFY') { // 수정
243
+			fn_show_btn_auth_array(['#ITP_BTN_OPER01010_CANCELLIST', '#ITP_BTN_OPER01010_SAVE', '#ITP_BTN_OPER01010_RESET_PW']);
304 244
 			$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').show();
305
-			$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').hide();
245
+
306 246
 			$('#ITP_FORM_OPER01010_DETAIL_USER_ID').attr('readonly', true);
307 247
 			$('#ITP_FORM_OPER01010_DETAIL_DUP').attr('disabled', true);
308 248
 			$('#ITP_FORM_OPER01010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
309
-
310 249
 			$('#ITP_FORM_OPER01010_DETAIL_SEARCH_AFFL_SHOP').hide();
311 250
 			$('#ITP_FORM_OPER01010_DETAIL_DELETE_AFFL_SHOP').hide();
312
-		} else if(mode == 'VIEW') { // 보기
313
-			$('#ITP_BTN_OPER01010_SRH').hide();
314
-			$('#ITP_BTN_OPER01010_NEWREG').hide();
315
-			$('#ITP_BTN_OPER01010_DELETE').hide();
316
-			$('#ITP_BTN_OPER01010_SAVE').hide();
317
-			fn_show_btn_auth('#ITP_BTN_OPER01010_MODIFY');
318
-			fn_show_btn_auth('#ITP_BTN_OPER01010_CANCELLIST');
319
-
320
-			$('#ITP_AJAX_OPER01010_LIST_CONTAINER').hide();
321
-			$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').hide();
251
+		} else if(mode === 'VIEW') { // 보기
252
+			fn_show_btn_auth_array(['#ITP_BTN_OPER01010_MODIFY', '#ITP_BTN_OPER01010_CANCELLIST']);
322 253
 			$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').show();
323 254
 		}
255
+	},
256
+	grid: {
257
+		init: function(mode) {
258
+			this.gridId = (mode === 'VIEW') ? OPER01010_VIEW_GRID_ID : OPER01010_DETAIL_GRID_ID;
259
+			this.unload();
260
+			this.load(mode);
261
+		},
262
+		gridId: '',
263
+		load: function(mode) {
264
+			let gridView = (mode === 'VIEW') ? 'OPER01010_VIEW' : 'OPER01010_DETAIL';
265
+			let param = $('#ITP_FORM_' + gridView).serializeObject();
266
+			param.gridSize = $.jgrid.defaults.rowNum;
267
+			param.pagingYn = false; // 페이징안함
268
+
269
+			var _this = this;
270
+			var option = {
271
+				gridId: _this.gridId,
272
+				colModel: gridColModel.detail,
273
+				param: JSON.stringify(param),
274
+				url: DOMAIN + USER_USERAUTH_GRID_LIST,
275
+				multiselect: (mode !== 'VIEW'),
276
+				loadComplete: function(data) {
277
+					itp_fn_grid_load_complete(data, _this.gridId, true, undefined, gridView);
278
+				},
279
+				onSortCol: function(index, columnIndex, sortOrder) {
280
+					var sortingFn = {
281
+						callBack: function(args) {
282
+							$(args).trigger('reloadGrid');
283
+						}
284
+					};
285
+					if (itp_fn_check_grid_is_writing(_this.gridId)) {
286
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, _this.gridId);
287
+						return 'stop';
288
+					} else {
289
+						itp_fn_grid_sorting(_this.gridId, index, sortOrder);
290
+					}
291
+				}
292
+			};
293
+			itp_fn_grid_make_not_paging(option);
294
+		},
295
+		unload : function() {
296
+			$.jgrid.gridUnload(this.gridId);
297
+		}
324 298
 	}
325 299
 };
326 300
 
@@ -453,65 +427,8 @@ let viewObj = {
453 427
 		$('#ITP_FORM_OPER01010_VIEW .fnLastLoginDt').text(result.lastLoginDt);
454 428
 
455 429
 		// 권한정보 리스트 조회
456
-		viewObj.grid.init();
457
-	},
458
-	grid: {
459
-		init: function() {
460
-			this.unload();
461
-			this.load();
462
-		},
463
-		load : function() {
464
-			let param = $('#ITP_FORM_OPER01010_VIEW').serializeObject();
465
-			param.gridSize = $.jgrid.defaults.rowNum;
466
-			param.pagingYn = false; // 페이징안함
467
-
468
-			var option = {
469
-				gridId: OPER01010_VIEW_GRID_ID,
470
-				colModel: gridColModel.detail,
471
-				param: JSON.stringify(param),
472
-				url: DOMAIN + USER_USERAUTH_GRID_LIST,
473
-				pager: OPER01010_VIEW_GRID_PAGER,
474
-				loadComplete: function(data) {
475
-					itp_fn_grid_load_complete(data, OPER01010_VIEW_GRID_ID, true, undefined, 'OPER01010_VIEW');
476
-				},
477
-				onPaging: function(action) {
478
-					var pagingFn = {
479
-						callBack: function(args) {
480
-							$(args).trigger('reloadGrid');
481
-						}
482
-					};
483
-					if (itp_fn_check_grid_is_writing(OPER01010_VIEW_GRID_ID)) {
484
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER01010_VIEW_GRID_ID);
485
-						return 'stop';
486
-					} else {
487
-						itp_fn_grid_paging(OPER01010_VIEW_GRID_ID, action, param);
488
-					}
489
-				},
490
-				onSortCol: function(index, columnIndex, sortOrder) {
491
-					var sortingFn = {
492
-						callBack: function(args) {
493
-							$(args).trigger('reloadGrid');
494
-						}
495
-					};
496
-					if (itp_fn_check_grid_is_writing(OPER01010_VIEW_GRID_ID)) {
497
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER01010_VIEW_GRID_ID);
498
-						return 'stop';
499
-					} else {
500
-						itp_fn_grid_sorting(OPER01010_VIEW_GRID_ID, index, sortOrder);
501
-					}
502
-				}
503
-			};
504
-			itp_fn_grid_make_remote(option);
505
-		},
506
-		clearData : function() {
507
-			$(OPER01010_VIEW_GRID_ID).jqGrid('clearGridData', true);
508
-			$(OPER01010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
509
-			$(OPER01010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
510
-			$(OPER01010_VIEW_GRID_EMPTY).show();
511
-		},
512
-		unload : function() {
513
-			$.jgrid.gridUnload(OPER01010_VIEW_GRID_ID);
514
-		}
430
+		pageObj.grid.init('VIEW');
431
+		// viewObj.grid.load(result.spplyMgrList);
515 432
 	}
516 433
 };
517 434
 
@@ -555,74 +472,14 @@ let modifyObj = {
555 472
 		$('#ITP_FORM_OPER01010_DETAIL .fnLastLoginDt').text(result.lastLoginDt);
556 473
 
557 474
 		// 권한정보 리스트 조회
558
-		modifyObj.grid.init();
559
-	},
560
-	grid: {
561
-		init: function() {
562
-			this.unload();
563
-			this.load();
564
-		},
565
-		load : function() {
566
-			let param = $('#ITP_FORM_OPER01010_DETAIL').serializeObject();
567
-			param.gridSize = $.jgrid.defaults.rowNum;
568
-			param.pagingYn = false; // 페이지안함
569
-
570
-			var option = {
571
-				gridId: OPER01010_DETAIL_GRID_ID,
572
-				colModel: gridColModel.detail,
573
-				param: JSON.stringify(param),
574
-				url: DOMAIN + USER_USERAUTH_GRID_LIST,
575
-				pager: OPER01010_DETAIL_GRID_PAGER,
576
-				multiselect: true,
577
-				loadComplete: function(data) {
578
-					itp_fn_grid_load_complete(data, OPER01010_DETAIL_GRID_ID, true, undefined, 'OPER01010_DETAIL');
579
-				},
580
-				onPaging: function(action) {
581
-					var pagingFn = {
582
-						callBack: function(args) {
583
-							$(args).trigger('reloadGrid');
584
-						}
585
-					};
586
-					if (itp_fn_check_grid_is_writing(OPER01010_DETAIL_GRID_ID)) {
587
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER01010_DETAIL_GRID_ID);
588
-						return 'stop';
589
-					} else {
590
-						itp_fn_grid_paging(OPER01010_DETAIL_GRID_ID, action, param);
591
-					}
592
-				},
593
-				onSortCol: function(index, columnIndex, sortOrder) {
594
-					var sortingFn = {
595
-						callBack: function(args) {
596
-							$(args).trigger('reloadGrid');
597
-						}
598
-					};
599
-					if (itp_fn_check_grid_is_writing(OPER01010_DETAIL_GRID_ID)) {
600
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER01010_DETAIL_GRID_ID);
601
-						return 'stop';
602
-					} else {
603
-						itp_fn_grid_sorting(OPER01010_DETAIL_GRID_ID, index, sortOrder);
604
-					}
605
-				}
606
-			};
607
-			itp_fn_grid_make_remote(option);
608
-		},
609
-		clearData : function() {
610
-			$(OPER01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
611
-			$(OPER01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
612
-			$(OPER01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
613
-			$(OPER01010_DETAIL_GRID_EMPTY).show();
614
-		},
615
-		unload : function() {
616
-			$.jgrid.gridUnload(OPER01010_DETAIL_GRID_ID);
617
-		}
475
+		pageObj.grid.init('DETAIL');
618 476
 	}
619 477
 };
620 478
 
621 479
 /*신규화면 Object*/
622 480
 let createObj = {
623 481
 	init: function () {
624
-		this.unload();
625
-		this.load();
482
+		pageObj.grid.init('DETAIL');
626 483
 	},
627 484
 	button: {
628 485
 		cancel: function() {
@@ -703,70 +560,13 @@ let createObj = {
703 560
 			};
704 561
 			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
705 562
 		}
706
-	},
707
-	load: function () {
708
-		let param = $('#ITP_FORM_OPER01010_DETAIL').serializeObject();
709
-		param.gridSize = $.jgrid.defaults.rowNum;
710
-		param.pagingYn = false; // 페이지안함
711
-
712
-		var option = {
713
-			gridId: OPER01010_DETAIL_GRID_ID,
714
-			colModel: gridColModel.detail,
715
-			param: JSON.stringify(param),
716
-			url: DOMAIN + USER_USERAUTH_GRID_LIST,
717
-			pager: OPER01010_DETAIL_GRID_PAGER,
718
-			multiselect: true,
719
-			loadComplete: function(data) {
720
-				itp_fn_grid_load_complete(data, OPER01010_DETAIL_GRID_ID, true, undefined, 'OPER01010_DETAIL');
721
-			},
722
-			onPaging: function(action) {
723
-				var pagingFn = {
724
-					callBack: function(args) {
725
-						$(args).trigger('reloadGrid');
726
-					}
727
-				};
728
-				if (itp_fn_check_grid_is_writing(OPER01010_DETAIL_GRID_ID)) {
729
-					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER01010_DETAIL_GRID_ID);
730
-					return 'stop';
731
-				} else {
732
-					itp_fn_grid_paging(OPER01010_DETAIL_GRID_ID, action, param);
733
-				}
734
-			},
735
-			onSortCol: function(index, columnIndex, sortOrder) {
736
-				var sortingFn = {
737
-					callBack: function(args) {
738
-						$(args).trigger('reloadGrid');
739
-					}
740
-				};
741
-				if (itp_fn_check_grid_is_writing(OPER01010_DETAIL_GRID_ID)) {
742
-					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER01010_DETAIL_GRID_ID);
743
-					return 'stop';
744
-				} else {
745
-					itp_fn_grid_sorting(OPER01010_DETAIL_GRID_ID, index, sortOrder);
746
-				}
747
-			}
748
-		};
749
-		itp_fn_grid_make_remote(option);
750
-	},
751
-	clearData : function() {
752
-		$(OPER01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
753
-		$(OPER01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
754
-		$(OPER01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
755
-		$(OPER01010_DETAIL_GRID_EMPTY).show();
756
-	},
757
-	unload : function() {
758
-		$.jgrid.gridUnload(OPER01010_DETAIL_GRID_ID);
759 563
 	}
760 564
 };
761 565
 
762 566
 /*가맹점 Object*/
763 567
 let afflShopObj = {
764 568
 	init: function () {
765
-		if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
766
-			this.action();
767
-		} else {
768
-			this.make();
769
-		}
569
+		(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') ? this.action() : this.make();
770 570
 	},
771 571
 	button: {
772 572
 		addRow: function() {
@@ -781,13 +581,17 @@ let afflShopObj = {
781 581
 
782 582
 				$.each(rowDataPop, function(key, value) {
783 583
 					if(exists.indexOf(value.authNo) < 0) {
784
-						// 행추가
785
-						$(OPER01010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
584
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('addRowData', value.authNo, value, 'last');
786 585
 						var rids = $(OPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
787 586
 						var last_row_id = rids[rids.length - 1];
788 587
 						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
789
-						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'authNo', value.authNo);
790
-						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'authNm', value.authNm);
588
+						// 행추가
589
+						// $(OPER01010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
590
+						// var rids = $(OPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
591
+						// var last_row_id = rids[rids.length - 1];
592
+						// $(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
593
+						// $(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'authNo', value.authNo);
594
+						// $(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'authNm', value.authNm);
791 595
 					}
792 596
 				});
793 597
 				$(OPER01010_DETAIL_GRID_EMPTY).hide();

+ 72 - 194
bin/src/main/webapp/js/app/oper/ITP_OPER02010.js

@@ -149,26 +149,24 @@ let pageObj = {
149 149
 	ui: {
150 150
 		init: function () {
151 151
 			this.button();
152
-			this.comCode();
153 152
 			this.ready();
154 153
 		},
155 154
 		button: function () {
156 155
 			// 버튼 권한설정
157 156
 			fn_proc_btn_auth('OPER02010');
158 157
 
159
-			// 조회일자 지정
160
-			var now = new Date();
161
-			$('#ITP_TAB_OPER02010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
162
-			$('#ITP_FORM_OPER02010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
163
-			$('#ITP_FORM_OPER02010_SEARCH_TO_DT').datepicker('setDate', new Date());
164
-		},
165
-		comCode: function () {
166 158
 			// 공통코드 표시
167 159
 			$('select').each(function() {
168 160
 				if($(this).data('select-code')) {
169 161
 					fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
170 162
 				}
171 163
 			});
164
+
165
+			// 조회일자 지정
166
+			var now = new Date();
167
+			$('#ITP_TAB_OPER02010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
168
+			$('#ITP_FORM_OPER02010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
169
+			$('#ITP_FORM_OPER02010_SEARCH_TO_DT').datepicker('setDate', new Date());
172 170
 		},
173 171
 		ready: function () {
174 172
 			listObj.init();
@@ -198,114 +196,65 @@ let pageObj = {
198 196
 				});
199 197
 			});
200 198
 
201
-			$('body').on('click', function(e) {
202
-				createObj.button.resetGrid(e);
203
-			});
204
-
205 199
 		}
206 200
 	},
207 201
 	switchScreen: function(mode) {
208
-		if(mode == 'LIST') { // 목록
209
-			$('#ITP_BTN_OPER02010_MODIFY').hide();
210
-			$('#ITP_BTN_OPER02010_CANCELLIST').hide();
211
-			$('#ITP_BTN_OPER02010_DELETE').hide();
212
-			$('#ITP_BTN_OPER02010_SAVE').hide();
213
-			fn_show_btn_auth('#ITP_BTN_OPER02010_SRH');
214
-			fn_show_btn_auth('#ITP_BTN_OPER02010_NEWREG');
215
-
202
+		$('.itp_det_head').find('button[id^="ITP_BTN_OPER02010_"]').each(function(i) {
203
+			$(this).hide();
204
+		});
205
+		$('div[id$="_CONTAINER"]').each(function(i) {
206
+			if($(this).attr('id').startsWith('ITP_AJAX_OPER02010')) {
207
+				$(this).hide();
208
+			}
209
+		});
210
+		if(mode === 'LIST') { // 목록
211
+			fn_show_btn_auth_array(['#ITP_BTN_OPER02010_SRH', '#ITP_BTN_OPER02010_NEWREG']);
216 212
 			$('#ITP_AJAX_OPER02010_LIST_CONTAINER').show();
217
-			$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').hide();
218
-			$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').hide();
219 213
 		} else if(mode == 'ADD') { // 등록
220
-			$('#ITP_BTN_OPER02010_SRH').hide();
221
-			$('#ITP_BTN_OPER02010_MODIFY').hide();
222
-			$('#ITP_BTN_OPER02010_NEWREG').hide();
223
-			$('#ITP_BTN_OPER02010_DELETE').hide();
224
-			fn_show_btn_auth('#ITP_BTN_OPER02010_CANCELLIST');
225
-			fn_show_btn_auth('#ITP_BTN_OPER02010_SAVE');
226
-
227
-			$('#ITP_AJAX_OPER02010_LIST_CONTAINER').hide();
214
+			fn_show_btn_auth_array(['#ITP_BTN_OPER02010_CANCELLIST', '#ITP_BTN_OPER02010_SAVE']);
228 215
 			$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').show();
229
-			$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').hide();
230 216
 
231
-			$('#ITP_FORM_OPER02010_DETAIL_VIEW_CD').val('C');
232
-			$('#ITP_FORM_OPER02010_DETAIL_NTICE_NO').val('');
233
-			$('#ITP_FORM_OPER02010_DETAIL_NTICE_TITL').val('');
234
-			$('#ITP_FORM_OPER02010_DEL_YN').val('N');
235
-			$('#ITP_FORM_OPER02010_DETAIL_NTICE_DESC').val('');
236
-			// $('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').val('');
217
+			$('input[id^="ITP_FORM_OPER02010_DETAIL_"]').each(function(i) {
218
+				($(this).attr('id') === 'ITP_FORM_OPER02010_DETAIL_VIEW_CD') ? $(this).val('C') : $(this).val('');
219
+			});
220
+
237 221
 			$('#ITP_FORM_OPER02010_FROM_DT').datepicker('setDate', new Date());
238 222
 			$('#ITP_FORM_OPER02010_TO_DT').datepicker('setDate', new Date());
239 223
 
240
-			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP_ID').val('');
241
-			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP_NM').val('');
242
-			$('#ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP').removeAttr('disabled');
243
-			$('#ITP_FORM_OPER02010_DETAIL_DELETE_AFFL_SHOP').removeAttr('disabled');
224
+			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_AFFL_SHOP_ID').val('');
225
+			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_AFFL_SHOP_NM').val('').prop('readonly', true);
244 226
 			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_BRAND_ID option').remove();
245
-			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP_NM').removeAttr('readonly');
246
-			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_BRAND_ID').removeAttr('readonly');
247
-		} else if(mode == 'MODIFY') { // 수정
248
-			$('#ITP_BTN_OPER02010_SRH').hide();
249
-			$('#ITP_BTN_OPER02010_MODIFY').hide();
250
-			$('#ITP_BTN_OPER02010_NEWREG').hide();
251
-			$('#ITP_BTN_OPER02010_DELETE').hide();
252
-			fn_show_btn_auth('#ITP_BTN_OPER02010_CANCELLIST');
253
-			fn_show_btn_auth('#ITP_BTN_OPER02010_SAVE');
254
-
255
-			$('#ITP_AJAX_OPER02010_LIST_CONTAINER').hide();
227
+		} else if(mode === 'MODIFY') { // 수정
228
+			fn_show_btn_auth_array(['#ITP_BTN_OPER02010_CANCELLIST', '#ITP_BTN_OPER02010_SAVE', '#ITP_BTN_OPER02010_RESET_PW']);
256 229
 			$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').show();
257
-			$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').hide();
258
-
259
-			$('#ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP').attr('disabled', true);
260
-			$('#ITP_FORM_OPER02010_DETAIL_DELETE_AFFL_SHOP').attr('disabled', true);
261
-			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
262
-			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_SEARCH_BRAND_ID').attr('readonly', true);
263
-		} else if(mode == 'VIEW') { // 보기
264
-			$('#ITP_BTN_OPER02010_SRH').hide();
265
-			$('#ITP_BTN_OPER02010_NEWREG').hide();
266
-			$('#ITP_BTN_OPER02010_DELETE').hide();
267
-			$('#ITP_BTN_OPER02010_SAVE').hide();
268
-			fn_show_btn_auth('#ITP_BTN_OPER02010_MODIFY');
269
-			fn_show_btn_auth('#ITP_BTN_OPER02010_CANCELLIST');
270
-
271
-			$('#ITP_AJAX_OPER02010_LIST_CONTAINER').hide();
272
-			$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').hide();
230
+			$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_AFFL_SHOP_NM').prop('readonly', true);
231
+		} else if(mode === 'VIEW') { // 보기
232
+			fn_show_btn_auth_array(['#ITP_BTN_OPER02010_MODIFY', '#ITP_BTN_OPER02010_CANCELLIST']);
273 233
 			$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').show();
274 234
 		}
275 235
 	},
276 236
 	grid: {
277
-		init: function() {
237
+		init: function(mode) {
238
+			this.gridId = (mode === 'VIEW') ? OPER02010_VIEW_GRID_ID : OPER02010_DETAIL_GRID_ID;
278 239
 			this.unload();
279
-			this.load();
240
+			this.load(mode);
280 241
 		},
281
-		load : function() {
282
-			let param = $('#ITP_FORM_OPER02010_DETAIL').serializeObject();
242
+		gridId: '',
243
+		load : function(mode) {
244
+			let param = $('#ITP_FORM_OPER02010_' + mode).serializeObject();
283 245
 			param.gridSize = $.jgrid.defaults.rowNum;
284 246
 			param.pagingYn = false; // 페이지안함
285 247
 
248
+			var _gridId = this.gridId;
286 249
 			var option = {
287
-				gridId: OPER02010_DETAIL_GRID_ID,
250
+				gridId: _gridId,
288 251
 				colModel: gridColModel.detail,
289 252
 				param: JSON.stringify(param),
290 253
 				url: DOMAIN + NTICE_TARGET_GRID_LIST,
291
-				pager: OPER02010_DETAIL_GRID_PAGER,
292
-				multiselect: true,
293
-				rownumbers: false,
254
+				multiselect: (mode !== 'VIEW'),
294 255
 				loadComplete: function(data) {
295
-					itp_fn_grid_load_complete(data, OPER02010_DETAIL_GRID_ID, true, undefined, 'OPER02010_DETAIL');
296
-				},
297
-				onPaging: function(action) {
298
-					var pagingFn = {
299
-						callBack: function(args) {
300
-							$(args).trigger('reloadGrid');
301
-						}
302
-					};
303
-					if (itp_fn_check_grid_is_writing(OPER02010_DETAIL_GRID_ID)) {
304
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER02010_DETAIL_GRID_ID);
305
-						return 'stop';
306
-					} else {
307
-						itp_fn_grid_paging(OPER02010_DETAIL_GRID_ID, action, param);
308
-					}
256
+					console.log(data);
257
+					itp_fn_grid_load_complete(data, _gridId, true, undefined, 'OPER02010_' + mode);
309 258
 				},
310 259
 				onSortCol: function(index, columnIndex, sortOrder) {
311 260
 					var sortingFn = {
@@ -313,24 +262,24 @@ let pageObj = {
313 262
 							$(args).trigger('reloadGrid');
314 263
 						}
315 264
 					};
316
-					if (itp_fn_check_grid_is_writing(OPER02010_DETAIL_GRID_ID)) {
317
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER02010_DETAIL_GRID_ID);
265
+					if (itp_fn_check_grid_is_writing(_gridId)) {
266
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, _gridId);
318 267
 						return 'stop';
319 268
 					} else {
320
-						itp_fn_grid_sorting(OPER02010_DETAIL_GRID_ID, index, sortOrder);
269
+						itp_fn_grid_sorting(_gridId, index, sortOrder);
321 270
 					}
322 271
 				}
323 272
 			};
324
-			itp_fn_grid_make_remote(option);
273
+			itp_fn_grid_make_not_paging(option);
325 274
 		},
326
-		clearData : function() {
327
-			$(OPER02010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
328
-			$(OPER02010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
329
-			$(OPER02010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
330
-			$(OPER02010_DETAIL_GRID_EMPTY).show();
275
+		resetGrid: function(e) {
276
+			var gridId = this.gridId.replace('#', '');
277
+			var rids = $(this.gridId).jqGrid('getDataIDs');
278
+			var last_row_id = rids[rids.length - 1];
279
+			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'OPER02010_' + mode);
331 280
 		},
332 281
 		unload : function() {
333
-			$.jgrid.gridUnload(OPER02010_DETAIL_GRID_ID);
282
+			$.jgrid.gridUnload(this.gridId);
334 283
 		}
335 284
 	}
336 285
 };
@@ -392,7 +341,7 @@ let listObj = {
392 341
 					}
393 342
 				},
394 343
 				loadComplete: function(data) {
395
-					//console.log(JSON.stringify(data));
344
+					console.log(data);
396 345
 					itp_fn_grid_load_complete(data, OPER02010_GRID_ID, true, 'number', 'OPER02010', listObj.grid.itp_OPER02010_search, _this.itp_fn_OPER02010_empty, true, data.gridRecords, true);
397 346
 					var ids = $(OPER02010_GRID_ID).getDataIDs();
398 347
 					$.each(ids, function(idx, rowId) {
@@ -475,75 +424,7 @@ let viewObj = {
475 424
 		itp_fn_set_file_upload('ITP_OPER02010_VIEW_UPLOAD', 'notice', true, false, 'OPER02010', fileArgs);
476 425
 
477 426
 		// 권한정보 리스트 조회
478
-		viewObj.grid.init();
479
-	},
480
-	grid: {
481
-		init: function() {
482
-			this.unload();
483
-			this.load();
484
-		},
485
-		load: function() {
486
-			let param = $('#ITP_FORM_OPER02010_VIEW').serializeObject();
487
-			param.gridSize = $.jgrid.defaults.rowNum;
488
-			param.pagingYn = false; // 페이징안함
489
-
490
-			var option = {
491
-				gridId: OPER02010_VIEW_GRID_ID,
492
-				colModel: gridColModel.detail,
493
-				param: JSON.stringify(param),
494
-				url: DOMAIN + NTICE_TARGET_GRID_LIST,
495
-				pager: OPER02010_VIEW_GRID_PAGER,
496
-				onCellSelect: function(rowId, cellIdx, cellValue) {
497
-					var cm = $(this).jqGrid('getGridParam', 'colModel');
498
-					var colNm = cm[cellIdx].name;
499
-					if (colNm == 'afflShopNm') {
500
-						const afflCdVal = $(this).jqGrid('getCell', rowId, 'afflShopId');
501
-						const key = {afflShopId: afflCdVal, viewCd: 'R'};
502
-						var param = $.param(key);
503
-						viewObj.init(param);
504
-					}
505
-				},
506
-				loadComplete: function(data) {
507
-					itp_fn_grid_load_complete(data, OPER02010_VIEW_GRID_ID, true, undefined, 'OPER02010_VIEW');
508
-				},
509
-				onPaging: function(action) {
510
-					var pagingFn = {
511
-						callBack: function(args) {
512
-							$(args).trigger('reloadGrid');
513
-						}
514
-					};
515
-					if (itp_fn_check_grid_is_writing(OPER02010_VIEW_GRID_ID)) {
516
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER02010_VIEW_GRID_ID);
517
-						return 'stop';
518
-					} else {
519
-						itp_fn_grid_paging(OPER02010_VIEW_GRID_ID, action, param);
520
-					}
521
-				},
522
-				onSortCol: function(index, columnIndex, sortOrder) {
523
-					var sortingFn = {
524
-						callBack: function(args) {
525
-							$(args).trigger('reloadGrid');
526
-						}
527
-					};
528
-					if (itp_fn_check_grid_is_writing(OPER02010_VIEW_GRID_ID)) {
529
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER02010_VIEW_GRID_ID);
530
-						return 'stop';
531
-					} else {
532
-						itp_fn_grid_sorting(OPER02010_VIEW_GRID_ID, index, sortOrder);
533
-					}
534
-				}
535
-			};
536
-			itp_fn_grid_make_remote(option);
537
-		},
538
-		clearData : function() {
539
-			$(OPER02010_VIEW_GRID_ID).jqGrid('clearGridData', true);
540
-			$(OPER02010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
541
-			$(OPER02010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
542
-			$(OPER02010_VIEW_GRID_EMPTY).show();
543
-		},
544
-		unload : function() {
545
-			$.jgrid.gridUnload(OPER02010_VIEW_GRID_ID);
546
-		}
427
+		pageObj.grid.init('VIEW');
547 428
 	}
548 429
 };
549 430
 
@@ -613,7 +494,7 @@ let modifyObj = {
613 494
 
614 495
 		// 리스트 조회
615 496
 		createObj.form.init();
616
-		pageObj.grid.init();
497
+		pageObj.grid.init('DETAIL');
617 498
 	}
618 499
 };
619 500
 
@@ -630,23 +511,22 @@ let createObj = {
630 511
 		},
631 512
 		selectbox: function () {
632 513
 			// 브랜드 selectbox 선택
633
-			$('#ITP_FORM_OPER02010_DETAIL_SEARCH_BRAND_ID').off('change').on('change', function() {
514
+			$('#ITP_FORM_OPER02010_DETAIL_BRAND_ID').off('change').on('change', function() {
634 515
 				if(this.selectedIndex > 0) {
635 516
 					$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD option:eq(0)').prop('selected', true);
636
-					$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').attr('disabled', true);
637
-					$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').trigger('change');
517
+					$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').prop('disabled', true).trigger('change');
638 518
 				} else {
639
-					$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').attr('disabled', false);
519
+					$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').prop('disabled', false);
640 520
 				}
641 521
 			});
642 522
 			// 공지대상 selectbox 선택
643 523
 			$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').off('change').on('change', function() {
644 524
 				if(this.selectedIndex > 0) {
645
-					$('#ITP_BTN_OPER02010_DETAIL_ADDROW').attr('disabled', false);
646
-					$('#ITP_BTN_OPER02010_DETAIL_DELROW').attr('disabled', false);
525
+					$('#ITP_BTN_OPER02010_DETAIL_ADDROW').prop('disabled', false);
526
+					$('#ITP_BTN_OPER02010_DETAIL_DELROW').prop('disabled', false);
647 527
 				} else {
648
-					$('#ITP_BTN_OPER02010_DETAIL_ADDROW').attr('disabled', true);
649
-					$('#ITP_BTN_OPER02010_DETAIL_DELROW').attr('disabled', true);
528
+					$('#ITP_BTN_OPER02010_DETAIL_ADDROW').prop('disabled', true);
529
+					$('#ITP_BTN_OPER02010_DETAIL_DELROW').prop('disabled', true);
650 530
 					$(OPER02010_DETAIL_GRID_ID).jqGrid('clearGridData');
651 531
 				}
652 532
 			});
@@ -667,20 +547,24 @@ let createObj = {
667 547
 				var exists = '';
668 548
 				const rowData = $(OPER02010_DETAIL_GRID_ID).getRowData();
669 549
 				$.each(rowData, function(key, value) {
670
-					exists = exists + value.userId + ';';
550
+					exists = exists + value.brandId + ';';
671 551
 				});
672 552
 
673 553
 				$.each(rowDataPop, function(key, value) {
674 554
 					// console.log(JSON.stringify(value));
675 555
 					// console.log(exists.indexOf(value.userId));
676
-					if(exists.indexOf(value.userId) < 0) {
677
-						// 행추가
678
-						$(OPER02010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
679
-						var rids = $(OPER02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
556
+					if(exists.indexOf(value.brandId) < 0) {
557
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('addRowData', value.brandId, value, 'last');
558
+						var rids = $(OPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
680 559
 						var last_row_id = rids[rids.length - 1];
681
-						$(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
682
-						$(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'brandId', value.brandId);
683
-						$(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'brandNm', value.brandNm);
560
+						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
561
+						// 행추가
562
+						// $(OPER02010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
563
+						// var rids = $(OPER02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
564
+						// var last_row_id = rids[rids.length - 1];
565
+						// $(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
566
+						// $(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'brandId', value.brandId);
567
+						// $(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'brandNm', value.brandNm);
684 568
 					}
685 569
 				});
686 570
 				$(OPER02010_DETAIL_GRID_EMPTY).hide();
@@ -732,12 +616,6 @@ let createObj = {
732 616
 		},
733 617
 		cancel: function() {
734 618
 			listObj.grid.search();
735
-		},
736
-		resetGrid: function(e) {
737
-			var gridId = OPER02010_DETAIL_GRID_ID.replace('#', '');
738
-			var rids = $(OPER02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
739
-			var last_row_id = rids[rids.length - 1];
740
-			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'OPER02010_DETAIL');
741 619
 		}
742 620
 	},
743 621
 	load: function () {
@@ -753,7 +631,7 @@ let createObj = {
753 631
 		itp_fn_set_file_upload('ITP_OPER02010_DETAIL_UPLOAD', 'notice', true, false, 'OPER02010', fileArgs);
754 632
 
755 633
 		// 권한정보 리스트 조회
756
-		pageObj.grid.init();
634
+		pageObj.grid.init('DETAIL');
757 635
 	}
758 636
 };
759 637
 

+ 121 - 411
bin/src/main/webapp/js/app/oper/ITP_OPER03010.js

@@ -1,8 +1,7 @@
1 1
 require(['config'], function() {
2 2
 	require([
3 3
 		'jquery.bootstrap.fileUpload', //파일 업로드가 있는 페이지에서 로딩
4
-		'kakao.postcode',
5
-		'kakao.maps'
4
+		'kakao.map.util'
6 5
 	], function($) {
7 6
 		pageObj.init();
8 7
 	});
@@ -95,6 +94,12 @@ const gridColModel = {
95 94
 		}
96 95
 	],
97 96
 	detail: [
97
+		{
98
+			index: 'VIEW_CD', name: 'viewCd',
99
+			label: ITP_MSG_LOCALE.label.viewCd,
100
+			width: '10', fixed: false, align: 'center',
101
+			sortable: false, hidden: true
102
+		},
98 103
 		{
99 104
 			index: 'SALE_MGR_ID', name: 'saleMgrId',
100 105
 			label: '영업담당자ID',
@@ -147,7 +152,6 @@ let pageObj = {
147 152
 	init: function () {
148 153
 		this.ui.init();
149 154
 		this.event.init();
150
-		afflUserObj.init();
151 155
 	},
152 156
 	itp_OPER03010_param: {},
153 157
 	itp_OPER03010_search: false,
@@ -199,8 +203,8 @@ let pageObj = {
199 203
 						case 'ITP_BTN_OPER03010_DETAIL_AFFL_SHOP_KEY'	: createObj.button.duplicate();	break;	// 중복체크
200 204
 						case 'ITP_BTN_OPER03010_RESET_PW'				: createObj.button.resetPass();	break;	// 상세:비밀번호 초기화
201 205
 						case 'ITP_FORM_OPER03010_DETAIL_ADRES_SCH'		: createObj.button.address();	break;	// 신규등록 주소 찾기
202
-						case 'ITP_BTN_OPER03010_DETAIL_ADDROW'			: afflUserObj.button.addRow();	break;	// 신규등록 영업담당자 행 추가
203
-						case 'ITP_BTN_OPER03010_DETAIL_DELROW'			: afflUserObj.button.delRow();	break;	// 상세:삭제버튼
206
+						case 'ITP_BTN_OPER03010_DETAIL_ADDROW'			: pageObj.grid.button.addRow();	break;	// 신규등록 영업담당자 행 추가
207
+						case 'ITP_BTN_OPER03010_DETAIL_DELROW'			: pageObj.grid.button.delRow();	break;	// 상세:삭제버튼
204 208
 					}
205 209
 				});
206 210
 			});
@@ -224,64 +228,102 @@ let pageObj = {
224 228
 		itp_fn_set_file_upload('ITP_' + id + '_DETAIL_UPLOAD', 'notice', true, false, id, fileArgs);
225 229
 	},
226 230
 	switchScreen: function(mode) {
227
-		if(mode == 'LIST') { // 목록
228
-			$('#ITP_BTN_OPER03010_MODIFY').hide();
229
-			$('#ITP_BTN_OPER03010_CANCELLIST').hide();
230
-			$('#ITP_BTN_OPER03010_DELETE').hide();
231
-			$('#ITP_BTN_OPER03010_SAVE').hide();
232
-			fn_show_btn_auth('#ITP_BTN_OPER03010_SRH');
233
-			fn_show_btn_auth('#ITP_BTN_OPER03010_NEWREG');
234
-
231
+		$('.itp_det_head').find('button[id^="ITP_BTN_OPER03010_"]').each(function(i) {
232
+			$(this).hide();
233
+		});
234
+		$('div[id$="_CONTAINER"]').each(function(i) {
235
+			if($(this).attr('id').startsWith('ITP_AJAX_OPER03010')) {
236
+				$(this).hide();
237
+			}
238
+		});
239
+		if(mode === 'LIST') { // 목록
240
+			fn_show_btn_auth_array(['#ITP_BTN_OPER03010_SRH', '#ITP_BTN_OPER03010_NEWREG']);
235 241
 			$('#ITP_AJAX_OPER03010_LIST_CONTAINER').show();
236
-			$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').hide();
237
-			$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').hide();
238 242
 		} else if(mode == 'ADD') { // 등록
239
-			ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = true;
240
-
241
-			$('#ITP_BTN_OPER03010_SRH').hide();
242
-			$('#ITP_BTN_OPER03010_MODIFY').hide();
243
-			$('#ITP_BTN_OPER03010_NEWREG').hide();
244
-			$('#ITP_BTN_OPER03010_DELETE').hide();
245
-			$('#ITP_BTN_OPER03010_RESET_PW').hide();
246
-			fn_show_btn_auth('#ITP_BTN_OPER03010_CANCELLIST');
247
-			fn_show_btn_auth('#ITP_BTN_OPER03010_SAVE');
248
-
249
-			$('#ITP_AJAX_OPER03010_LIST_CONTAINER').hide();
243
+			fn_show_btn_auth_array(['#ITP_BTN_OPER03010_CANCELLIST', '#ITP_BTN_OPER03010_SAVE']);
250 244
 			$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').show();
251
-			$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').hide();
252
-			$('#ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY').removeAttr('readonly');
253
-			$('#ITP_BTN_OPER03010_DETAIL_AFFL_SHOP_KEY').removeAttr('disabled');
254 245
 
255 246
 			$('input[id^="ITP_FORM_OPER03010_DETAIL_"]').each(function(i) {
256 247
 				($(this).attr('id') === 'ITP_FORM_OPER03010_DETAIL_VIEW_CD') ? $(this).val('C') : $(this).val('');
257 248
 			});
258
-			$('.fnAfflShopId').text('(자동부여)');
259
-		} else if(mode == 'MODIFY') { // 수정
260
-			$('#ITP_BTN_OPER03010_SRH').hide();
261
-			$('#ITP_BTN_OPER03010_MODIFY').hide();
262
-			$('#ITP_BTN_OPER03010_NEWREG').hide();
263
-			$('#ITP_BTN_OPER03010_DELETE').hide();
264
-			fn_show_btn_auth('#ITP_BTN_OPER03010_RESET_PW');
265
-			fn_show_btn_auth('#ITP_BTN_OPER03010_CANCELLIST');
266
-			fn_show_btn_auth('#ITP_BTN_OPER03010_SAVE');
267 249
 
268
-			$('#ITP_AJAX_OPER03010_LIST_CONTAINER').hide();
250
+			$('#ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY').removeAttr('readonly');
251
+			$('#ITP_BTN_OPER03010_DETAIL_AFFL_SHOP_KEY').removeAttr('disabled');
252
+			$('.fnAfflShopId').text('(자동부여)');
253
+		} else if(mode === 'MODIFY') { // 수정
254
+			fn_show_btn_auth_array(['#ITP_BTN_OPER03010_CANCELLIST', '#ITP_BTN_OPER03010_SAVE', '#ITP_BTN_OPER03010_RESET_PW']);
269 255
 			$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').show();
270
-			$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').hide();
271
-			$('#ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY').attr('readonly', true);
272
-			$('#ITP_BTN_OPER03010_DETAIL_AFFL_SHOP_KEY').attr('disabled', true);
273
-		} else if(mode == 'VIEW') { // 보기
274
-			$('#ITP_BTN_OPER03010_SRH').hide();
275
-			$('#ITP_BTN_OPER03010_NEWREG').hide();
276
-			$('#ITP_BTN_OPER03010_DELETE').hide();
277
-			$('#ITP_BTN_OPER03010_SAVE').hide();
278
-			fn_show_btn_auth('#ITP_BTN_OPER03010_MODIFY');
279
-			fn_show_btn_auth('#ITP_BTN_OPER03010_CANCELLIST');
280
-
281
-			$('#ITP_AJAX_OPER03010_LIST_CONTAINER').hide();
282
-			$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').hide();
256
+			$('#ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_NM').prop('readonly', true);
257
+			$('#ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY').prop('readonly', true);
258
+			$('#ITP_BTN_OPER03010_DETAIL_AFFL_SHOP_KEY').prop('disabled', true);
259
+		} else if(mode === 'VIEW') { // 보기
260
+			fn_show_btn_auth_array(['#ITP_BTN_OPER03010_MODIFY', '#ITP_BTN_OPER03010_CANCELLIST']);
283 261
 			$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').show();
284 262
 		}
263
+	},
264
+	grid: {
265
+		init: function(mode, gridData) {
266
+			this.mode = mode;
267
+			this.gridId = (mode === 'VIEW') ? OPER03010_VIEW_GRID_ID : OPER03010_DETAIL_GRID_ID;
268
+			this.unload();
269
+			this.load(gridData);
270
+		},
271
+		mode: 'DETAIL',
272
+		gridId: '',
273
+		button: {
274
+			addRow: function () {
275
+				// 팝업
276
+				var popFn = function(rowDataPop) {
277
+					// console.log(rowDataPop);
278
+					// 기존등록 데이터
279
+					var exists = '';
280
+					const rowData = $(OPER03010_DETAIL_GRID_ID).getRowData();
281
+					$.each(rowData, function(key, value) {
282
+						exists = exists + value.saleMgrId + ';';
283
+					});
284
+
285
+					$.each(rowDataPop, function(key, value) {
286
+						if(exists.indexOf(value.saleMgrId) < 0) {
287
+							value['viewCd'] =  (pageObj.grid.mode === 'MODIFY') ? 'U' : "C";
288
+							$(OPER03010_DETAIL_GRID_ID).jqGrid('addRowData', value.saleMgrId, value, 'last');
289
+						}
290
+					});
291
+					$(OPER03010_DETAIL_GRID_EMPTY).hide();
292
+				};
293
+				fn_call_popup('biz', 'BIZPOP_APPL_SALES_USER_SCH', '#ITP_ASIDE', popFn, null, 'S');
294
+			},
295
+			delRow: function () {
296
+				itp_fn_grid_del_row(OPER03010_DETAIL_GRID_ID);
297
+			}
298
+		},
299
+		load: function(gridData) {
300
+			var _this = this;
301
+			var option = {
302
+				gridId: this.gridId,
303
+				colModel: gridColModel.detail,
304
+				data: gridData,
305
+				multiselect: (this.mode !== 'VIEW'),
306
+				loadComplete: function(data) {
307
+					$(_this.mode === 'VIEW' ? OPER03010_VIEW_GRID_LIST : OPER03010_DETAIL_GRID_LIST).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
308
+					if(data.records === 0) {
309
+						_this.clearData();
310
+						var gridEmpty = (this.mode === 'VIEW') ? OPER03010_VIEW_GRID_EMPTY : OPER03010_DETAIL_GRID_EMPTY;
311
+						$(gridEmpty).html(ITP_MSG_LOCALE.message.grid.noData);
312
+						$(gridEmpty).show();
313
+					}
314
+				}
315
+			};
316
+			itp_fn_grid_make_local(option);
317
+		},
318
+		clearData : function() {
319
+			$(this.gridId).jqGrid('clearGridData', true);
320
+			$(this.mode === 'VIEW' ? OPER03010_VIEW_GRID_LIST : OPER03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
321
+			$(this.mode === 'VIEW' ? OPER03010_VIEW_GRID_EMPTY : OPER03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
322
+			$(this.mode === 'VIEW' ? OPER03010_VIEW_GRID_EMPTY : OPER03010_DETAIL_GRID_EMPTY).show();
323
+		},
324
+		unload : function() {
325
+			$.jgrid.gridUnload(this.gridId);
326
+		}
285 327
 	}
286 328
 };
287 329
 
@@ -409,8 +451,9 @@ let viewObj = {
409 451
 
410 452
 		$('#ITP_FORM_OPER03010_VIEW .fnAfflShopId').text(result.afflShopId);
411 453
 		$('#ITP_FORM_OPER03010_VIEW .fnAfflShopNm').text(result.afflShopNm);
454
+		$('#ITP_FORM_OPER03010_VIEW .fnAfflShopKey').text(result.afflAbbr);
412 455
 		$('#ITP_FORM_OPER03010_VIEW .fnStCd').text(result.stNm);
413
-		$('#ITP_FORM_OPER03010_VIEW .fnCmpyTypeCd').text(result.corpType);
456
+		$('#ITP_FORM_OPER03011_VIEW .fnCorpTypeNm').text(result.corpTypeNm);
414 457
 		$('#ITP_FORM_OPER03010_VIEW .fnBsnsRegNo').text(result.corpRegNo);
415 458
 		$('#ITP_FORM_OPER03010_VIEW .fnCorpRegNo').text(result.corpRegNo);
416 459
 		$('#ITP_FORM_OPER03010_VIEW .fnTelNo').text(result.ownerTelNo);
@@ -426,71 +469,11 @@ let viewObj = {
426 469
 		$('#ITP_FORM_OPER03010_VIEW .fnLoadAddr').text(result.addr1);
427 470
 		$('#ITP_FORM_OPER03010_VIEW .fnDtlAddr').text(result.addr2);
428 471
 
429
-		$('#ITP_FORM_OPER03010_VIEW .fnAddDt').text(result.regDt);
430
-		$('#ITP_FORM_OPER03010_VIEW .fnChgDt').text(result.chgDt);
431
-
432
-		kakaoMap.init('ITP_FORM_OPER03010_VIEW_MAP', result.cmpyAdres);
472
+		let locate = result.addr1 + ' ' + result.addr2;
473
+		kakaoMap.init('ITP_FORM_OPER03011_VIEW', locate);
433 474
 
434 475
 		// 영업담당자정보  리스트 조회
435
-		afflUserObj.grid.init('VIEW', result.saleList);
436
-	},
437
-	grid: {
438
-		init: function() {
439
-			this.unload();
440
-			this.load();
441
-		},
442
-		load : function() {
443
-			let param = $('#ITP_FORM_OPER03010_VIEW').serializeObject();
444
-			param.gridSize = $.jgrid.defaults.rowNum;
445
-			param.pagingYn = false; // 페이징안함
446
-
447
-			var option = {
448
-				gridId: OPER03010_VIEW_GRID_ID,
449
-				colModel: gridColModel.detail,
450
-				param: JSON.stringify(param),
451
-				url: DOMAIN + USER_USERAUTH_GRID_LIST,
452
-				pager: OPER03010_VIEW_GRID_PAGER,
453
-				loadComplete: function(data) {
454
-					itp_fn_grid_load_complete(data, OPER03010_VIEW_GRID_ID, true, undefined, 'OPER03010_VIEW');
455
-				},
456
-				onPaging: function(action) {
457
-					var pagingFn = {
458
-						callBack: function(args) {
459
-							$(args).trigger('reloadGrid');
460
-						}
461
-					};
462
-					if (itp_fn_check_grid_is_writing(OPER03010_VIEW_GRID_ID)) {
463
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER03010_VIEW_GRID_ID);
464
-						return 'stop';
465
-					} else {
466
-						itp_fn_grid_paging(OPER03010_VIEW_GRID_ID, action, param);
467
-					}
468
-				},
469
-				onSortCol: function(index, columnIndex, sortOrder) {
470
-					var sortingFn = {
471
-						callBack: function(args) {
472
-							$(args).trigger('reloadGrid');
473
-						}
474
-					};
475
-					if (itp_fn_check_grid_is_writing(OPER03010_VIEW_GRID_ID)) {
476
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER03010_VIEW_GRID_ID);
477
-						return 'stop';
478
-					} else {
479
-						itp_fn_grid_sorting(OPER03010_VIEW_GRID_ID, index, sortOrder);
480
-					}
481
-				}
482
-			};
483
-			itp_fn_grid_make_remote(option);
484
-		},
485
-		clearData : function() {
486
-			$(OPER03010_VIEW_GRID_ID).jqGrid('clearGridData', true);
487
-			$(OPER03010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
488
-			$(OPER03010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
489
-			$(OPER03010_VIEW_GRID_EMPTY).show();
490
-		},
491
-		unload : function() {
492
-			$.jgrid.gridUnload(OPER03010_VIEW_GRID_ID);
493
-		}
476
+		pageObj.grid.init('VIEW', result.saleList);
494 477
 	}
495 478
 };
496 479
 
@@ -515,10 +498,12 @@ let modifyObj = {
515 498
 
516 499
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_ID').val(result.afflShopId);
517 500
 		$('#ITP_FORM_OPER03010_DETAIL .fnAfflShopId').text(result.afflShopId);
518
-		$('#ITP_FORM_OPER03010_DETAIL .fnAfflShopNm').text(result.afflShopNm);
519
-		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_ST_CD').val(result.stNm);
520
-		// $('#ITP_FORM_OPER03010_DETAIL #fnCmpyTypeCd').text(result.corpType);
521
-		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_BSNS_REG_NO').val(result.corpRegNo);
501
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_NM').val(result.afflShopNm);
502
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY').val(result.afflAbbr);
503
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_ST_CD').val(result.stCd);
504
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_AUTH_TYPE').val(result.authType);
505
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CORP_TYPE').val(result.corpType);
506
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_BSNS_REG_NO').val(result.bsnsRegNo);
522 507
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CORP_REG_NO').val(result.corpRegNo);
523 508
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_STINFO01010_DETAIL_TEL_NO').val(result.ownerTelNo);
524 509
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_STINFO01010_DETAIL_FAX_NO').val(result.rprstFaxNo);
@@ -530,75 +515,16 @@ let modifyObj = {
530 515
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_SEARCH_JOIN_STT_DT').val(result.joinSttDt);
531 516
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_SEARCH_JOIN_END_DT').val(result.joinEndDt);
532 517
 		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_ZIPNO').val(result.zipNo);
533
-		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_LOAD_ADDR').val(result.addr1);
534
-		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_DTL_ADDR').val(result.addr2);
518
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_ADRES').val(result.addr1);
519
+		$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_ADRES_DTL').val(result.addr2);
535 520
 
536 521
 		$('#ITP_FORM_OPER03010_DETAIL .fnAddDt').text(result.regDt);
537 522
 		$('#ITP_FORM_OPER03010_DETAIL .fnChgDt').text(result.chgDt);
538 523
 
539
-		kakaoMap.init('ITP_FORM_OPER03010_DETAIL_MAP', $('#ITP_FORM_OPER03010_DETAIL_ADRES').val());
524
+		kakaoMap.init('ITP_FORM_OPER03010_DETAIL', $('#ITP_FORM_OPER03010_DETAIL_ADRES').val());
540 525
 
541 526
 		// 권한정보 리스트 조회
542
-		afflUserObj.grid.init('MODIFY', result.saleList);
543
-	},
544
-	grid: {
545
-		init: function() {
546
-			this.unload();
547
-			this.load();
548
-		},
549
-		load : function() {
550
-			let param = $('#ITP_FORM_OPER03010_DETAIL').serializeObject();
551
-			param.gridSize = $.jgrid.defaults.rowNum;
552
-			param.pagingYn = false; // 페이지안함
553
-
554
-			var option = {
555
-				gridId: OPER03010_DETAIL_GRID_ID,
556
-				colModel: gridColModel.detail,
557
-				param: JSON.stringify(param),
558
-				url: DOMAIN + USER_USERAUTH_GRID_LIST,
559
-				pager: OPER03010_DETAIL_GRID_PAGER,
560
-				multiselect: true,
561
-				loadComplete: function(data) {
562
-					itp_fn_grid_load_complete(data, OPER03010_DETAIL_GRID_ID, true, undefined, 'OPER03010_DETAIL');
563
-				},
564
-				onPaging: function(action) {
565
-					var pagingFn = {
566
-						callBack: function(args) {
567
-							$(args).trigger('reloadGrid');
568
-						}
569
-					};
570
-					if (itp_fn_check_grid_is_writing(OPER03010_DETAIL_GRID_ID)) {
571
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER03010_DETAIL_GRID_ID);
572
-						return 'stop';
573
-					} else {
574
-						itp_fn_grid_paging(OPER03010_DETAIL_GRID_ID, action, param);
575
-					}
576
-				},
577
-				onSortCol: function(index, columnIndex, sortOrder) {
578
-					var sortingFn = {
579
-						callBack: function(args) {
580
-							$(args).trigger('reloadGrid');
581
-						}
582
-					};
583
-					if (itp_fn_check_grid_is_writing(OPER03010_DETAIL_GRID_ID)) {
584
-						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER03010_DETAIL_GRID_ID);
585
-						return 'stop';
586
-					} else {
587
-						itp_fn_grid_sorting(OPER03010_DETAIL_GRID_ID, index, sortOrder);
588
-					}
589
-				}
590
-			};
591
-			itp_fn_grid_make_remote(option);
592
-		},
593
-		clearData : function() {
594
-			$(OPER03010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
595
-			$(OPER03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
596
-			$(OPER03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
597
-			$(OPER03010_DETAIL_GRID_EMPTY).show();
598
-		},
599
-		unload : function() {
600
-			$.jgrid.gridUnload(OPER03010_DETAIL_GRID_ID);
601
-		}
527
+		pageObj.grid.init('MODIFY', result.saleList);
602 528
 	}
603 529
 };
604 530
 
@@ -606,8 +532,8 @@ let modifyObj = {
606 532
 let createObj = {
607 533
 	init: function () {
608 534
 		pageObj.fileUpload();
609
-		kakaoMap.init('ITP_FORM_OPER03010_DETAIL_MAP', '');
610
-		afflUserObj.grid.init();
535
+		kakaoMap.init('ITP_FORM_OPER03010_DETAIL', '');
536
+		pageObj.grid.init('DETAIL', []);
611 537
 	},
612 538
 	button: {
613 539
 		duplicate: function() {
@@ -616,7 +542,7 @@ let createObj = {
616 542
 			var vali_cmpyCd = itp_fn_form_validate(formId + '_DETAIL', formId + '_AFFL_SHOP_KEY', ['empty'], undefined);
617 543
 			if (vali_cmpyCd) {
618 544
 				var dupFn = function(result) {
619
-					if (result.code == 'N') {
545
+					if (result.code === 'N') {
620 546
 						ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = false;
621 547
 					} else {
622 548
 						ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = true;
@@ -638,20 +564,7 @@ let createObj = {
638 564
 			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
639 565
 		},
640 566
 		address: function() {
641
-			new daum.Postcode({
642
-				oncomplete: function(data) {
643
-					// 전체주소 리턴
644
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_ZIPNO').value = data.zonecode;
645
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_ADRES').value = data.roadAddress;
646
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
647
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').value = data.roadAddress;
648
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
649
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_BJ_DONG').value = data.bname;
650
-
651
-					kakaoMap.init('ITP_FORM_OPER03010_DETAIL_MAP', data.roadAddress);
652
-					document.getElementById('ITP_FORM_OPER03010_DETAIL_ADRES_DTL').focus();
653
-				}
654
-			}).open();
567
+			kakaoMap.address('ITP_FORM_OPER03010_DETAIL');
655 568
 		},
656 569
 		cancel: function() {
657 570
 			listObj.grid.search();
@@ -669,27 +582,27 @@ let createObj = {
669 582
 
670 583
 			if (vali_cmpyCd && vali_cmpyStatCd && vali_cmpyTypeCd && vali_cmpyNm && vali_bossNm && vali_mainTel && vali_mainEmail) {
671 584
 
672
-				if($('#ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val() == '' || $('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val() == '') {
585
+				if($('#ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val() === '' || $('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val() === '') {
673 586
 					itp_fn_modal_alert('주소 검색을 통해 회사 주소를 입력하세요.');
674 587
 					return;
675 588
 				}
676 589
 
677 590
 				if (ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE) {
678
-					itp_fn_modal_duplicate('회사코드 중복체크를 해주세요.', formId + '_CMPY_CD');
591
+					itp_fn_modal_duplicate('회사코드 중복체크를 해주세요.', formId + '_AFFL_SHOP_ID');
679 592
 				} else {
680 593
 					let gridInsertData = [];
681 594
 					let gridUpdateData = [];
682 595
 					let gridDeleteData = [];
683 596
 					const rowData = $(OPER03010_DETAIL_GRID_ID).getRowData();
684
-					const keyValue = $(formId + '_CMPY_CD').val();
597
+					const keyValue = $(formId + '_AFFL_SHOP_ID').val();
685 598
 					$.each(rowData, function(key, value) {
686
-						if (value.viewCd != 'R') {
687
-							value.userId = keyValue;
688
-							if (value.viewCd == 'C') {
599
+						if (value.viewCd !== 'R') {
600
+							value.afflShopId = keyValue;
601
+							if (value.viewCd === 'C') {
689 602
 								gridInsertData.push(value);
690
-							} else if (value.viewCd == 'U') {
603
+							} else if (value.viewCd === 'U') {
691 604
 								gridUpdateData.push(value);
692
-							} else if (value.viewCd == 'D') {
605
+							} else if (value.viewCd === 'D') {
693 606
 								gridDeleteData.push(value);
694 607
 							}
695 608
 						}
@@ -707,208 +620,5 @@ let createObj = {
707 620
 				}
708 621
 			}
709 622
 		}
710
-	},
711
-	load: function () {
712
-		let param = $('#ITP_FORM_OPER03010_DETAIL').serializeObject();
713
-		param.gridSize = $.jgrid.defaults.rowNum;
714
-		param.pagingYn = false; // 페이지안함
715
-
716
-		var option = {
717
-			gridId: OPER03010_DETAIL_GRID_ID,
718
-			colModel: gridColModel.detail,
719
-			data: [],
720
-			pager: OPER03010_DETAIL_GRID_PAGER,
721
-		};
722
-		itp_fn_grid_make_local(option);
723
-	},
724
-	clearData : function() {
725
-		$(OPER03010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
726
-		$(OPER03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
727
-		$(OPER03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
728
-		$(OPER03010_DETAIL_GRID_EMPTY).show();
729
-	},
730
-	unload : function() {
731
-		$.jgrid.gridUnload(OPER03010_DETAIL_GRID_ID);
732
-	}
733
-};
734
-
735
-/*가맹점 담당자 Object*/
736
-let afflUserObj = {
737
-	init: function () {
738
-	},
739
-	button: {
740
-		addRow: function() {
741
-			// 팝업
742
-			var popFn = function(rowDataPop) {
743
-				console.log(rowDataPop);
744
-				// 기존등록 데이터
745
-				var exists = '';
746
-				const rowData = $(OPER03010_DETAIL_GRID_ID).getRowData();
747
-				$.each(rowData, function(key, value) {
748
-					exists = exists + value.saleMgrId + ';';
749
-				});
750
-
751
-				$.each(rowDataPop, function(key, value) {
752
-					if(exists.indexOf(value.saleMgrId) < 0) {
753
-						// 행추가
754
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
755
-						var rids = $(OPER03010_DETAIL_GRID_ID).jqGrid('getDataIDs');
756
-						var last_row_id = rids[rids.length - 1];
757
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
758
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'saleMgrId', value.saleMgrId);
759
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'saleMgrNm', value.saleMgrNm);
760
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'rprstTelNo', value.rprstTelNo);
761
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'rprstEmai', value.rprstEmai);
762
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'stCd', value.stCd);
763
-						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'stNm', value.stNm);
764
-					}
765
-				});
766
-				$(OPER03010_DETAIL_GRID_EMPTY).hide();
767
-			};
768
-			fn_call_popup('biz', 'BIZPOP_APPL_SALES_USER_SCH', '#ITP_ASIDE', popFn, null, 'S');
769
-		},
770
-		delRow: function() {
771
-			itp_fn_grid_del_row(OPER03010_DETAIL_GRID_ID);
772
-		}
773
-	},
774
-	grid: {
775
-		init: function(view, gridData) {
776
-			this.gridId = view === 'VIEW' ? OPER03010_VIEW_GRID_ID : OPER03010_DETAIL_GRID_ID;
777
-			this.gridList = view === 'VIEW' ? OPER03010_VIEW_GRID_LIST : OPER03010_DETAIL_GRID_LIST;
778
-			this.gridPager = view === 'VIEW' ? OPER03010_VIEW_GRID_PAGER : OPER03010_DETAIL_GRID_PAGER;
779
-			this.gridEmpty = view === 'VIEW' ? OPER03010_VIEW_GRID_EMPTY : OPER03010_DETAIL_GRID_EMPTY;
780
-			this.unload();
781
-			this.load(gridData);
782
-		},
783
-		colModel: gridColModel.detail,
784
-		gridId: OPER03010_DETAIL_GRID_ID,
785
-		gridList: OPER03010_DETAIL_GRID_LIST,
786
-		gridPager: OPER03010_DETAIL_GRID_PAGER,
787
-		gridEmpty: OPER03010_DETAIL_GRID_EMPTY,
788
-		load: function (gridData) {
789
-			var option = {
790
-				gridId: this.gridId,
791
-				colModel: gridColModel.detail,
792
-				data: gridData,
793
-				pager: this.gridPager
794
-			};
795
-			itp_fn_grid_make_local(option);
796
-			if(!gridData) {
797
-				this.clearData();
798
-			}
799
-		},
800
-		clearData : function() {
801
-			$(this.gridId).jqGrid('clearGridData', true);
802
-			$(this.gridList).find('.ui-jqgrid-bdiv').css('min-height', '100px');
803
-			$(this.gridEmpty).html(ITP_MSG_LOCALE.message.grid.noData);
804
-			$(this.gridEmpty).show();
805
-		},
806
-		unload : function() {
807
-			$.jgrid.gridUnload(this.gridId);
808
-		}
809
-	}
810
-};
811
-
812
-let kakaoMap = {
813
-	init: function(id, locate) {
814
-		this.load(id, locate);
815
-	},
816
-	geocoder: null,
817
-	schDetailAddrFromCoords: function(coords, callback) {
818
-		// 좌표로 법정동 상세 주소 정보를 요청합니다
819
-		if(this.geocoder) {
820
-			this.geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
821
-		}
822
-	},
823
-	getMap: function(id) {
824
-		var mapContainer = document.getElementById(id), // 지도를 표시할 div
825
-			mapOption = {
826
-				center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
827
-				level: 3, // 지도의 확대 레벨
828
-				mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
829
-			};
830
-
831
-		// 지도를 생성한다
832
-		var map = new kakao.maps.Map(mapContainer, mapOption);
833
-
834
-		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
835
-		map.setZoomable(false);
836
-
837
-		// 지도에 확대 축소 컨트롤을 생성한다
838
-		//var zoomControl = new kakao.maps.ZoomControl();
839
-
840
-		// 지도의 우측에 확대 축소 컨트롤을 추가한다
841
-		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
842
-
843
-		return map;
844
-	},
845
-	marker: function(map, coords) {
846
-		// 지도에 마커를 생성하고 표시한다
847
-		marker = new kakao.maps.Marker({
848
-			position: coords, // 마커의 좌표
849
-			map: map // 마커를 표시할 지도 객체
850
-		});
851
-	},
852
-	load: function(id, locate) {
853
-		var _this = this;
854
-		kakao.maps.load(function() {
855
-			var map = _this.getMap(id);
856
-			// 주소-좌표 변환 객체를 생성합니다
857
-			_this.geocoder = new kakao.maps.services.Geocoder();
858
-			if( !locate || locate.length == 0 ) {
859
-				// 지도에 마커를 생성하고 표시한다
860
-				_this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
861
-			} else {
862
-				// 주소로 좌표를 검색합니다
863
-				_this.geocoder.addressSearch(locate, function(result, status) {
864
-					// 정상적으로 검색이 완료됐으면
865
-					if (status === kakao.maps.services.Status.OK) {
866
-
867
-						var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
868
-						if(id === 'ITP_FORM_OPER03010_DETAIL_MAP') {
869
-							document.getElementById('ITP_FORM_OPER03010_DETAIL_LAT').value = result[0].y;
870
-							document.getElementById('ITP_FORM_OPER03010_DETAIL_LNG').value = result[0].x;
871
-						}
872
-
873
-						// 결과값으로 받은 위치를 마커로 표시합니다
874
-						_this.marker(map, coords);
875
-
876
-						// 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
877
-						map.setCenter(coords);
878
-					} else {
879
-						_this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
880
-					}
881
-				});
882
-			}
883
-
884
-			if(id === 'ITP_FORM_OPER03010_DETAIL_MAP') {
885
-				_this.listener.drag(map);
886
-			}
887
-		});
888
-	},
889
-	listener: {
890
-		drag: function(map) {
891
-			var _this = this;
892
-			// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
893
-			kakao.maps.event.addListener(map, 'drag', function () {
894
-				kakaoMap.schDetailAddrFromCoords(map.getCenter(), function(result, status) {
895
-					if (status === kakao.maps.services.Status.OK) {
896
-
897
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
898
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
899
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').val();
900
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val() ;
901
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LAT').value = map.getCenter().getLat();
902
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LNG').value = map.getCenter().getLng();
903
-
904
-						// 마커를 클릭한 위치에 표시합니다
905
-						marker.setPosition(map.getCenter());
906
-						marker.setMap(map);
907
-					}
908
-				});
909
-				/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
910
-                console.log(message); */
911
-			});
912
-		}
913 623
 	}
914 624
 };

+ 90 - 224
bin/src/main/webapp/js/app/oper/ITP_OPER03011.js

@@ -1,8 +1,7 @@
1 1
 require(['config'], function() {
2 2
 	require([
3 3
 		'jquery.bootstrap.fileUpload', //파일 업로드가 있는 페이지에서 로딩
4
-		'kakao.postcode',
5
-		'kakao.maps'
4
+		'kakao.map.util'
6 5
 	], function($) {
7 6
 		pageObj.init();
8 7
 	});
@@ -93,7 +92,6 @@ let pageObj = {
93 92
 	init: function () {
94 93
 		this.ui.init();
95 94
 		this.event.init();
96
-		afflUserObj.init();
97 95
 	},
98 96
 	itp_OPER03011_param: {},
99 97
 	itp_OPER03011_search: false,
@@ -132,8 +130,8 @@ let pageObj = {
132 130
 						case 'ITP_BTN_OPER03011_SAVE'					: modifyObj.button.save(); 		break;	// 저장 버튼
133 131
 						case 'ITP_BTN_OPER03011_RESET_PW'				: modifyObj.button.resetPass();	break;	// 상세:비밀번호 초기화
134 132
 						case 'ITP_FORM_OPER03011_DETAIL_ADRES_SCH'		: modifyObj.button.address();	break;	// 신규등록 주소 찾기
135
-						case 'ITP_BTN_OPER03011_DETAIL_ADDROW'			: afflUserObj.button.addRow();	break;	// 신규등록 영업담당자 행 추가
136
-						case 'ITP_BTN_OPER03011_DETAIL_DELROW'			: afflUserObj.button.delRow();	break;	// 상세:삭제버튼
133
+						case 'ITP_BTN_OPER03011_DETAIL_ADDROW'			: pageObj.grid.button.addRow();	break;	// 신규등록 영업담당자 행 추가
134
+						case 'ITP_BTN_OPER03011_DETAIL_DELROW'			: pageObj.grid.button.delRow();	break;	// 상세:삭제버튼
137 135
 					}
138 136
 				});
139 137
 			});
@@ -157,30 +155,90 @@ let pageObj = {
157 155
 		itp_fn_set_file_upload('ITP_' + id + '_DETAIL_UPLOAD', 'notice', true, false, id, fileArgs);
158 156
 	},
159 157
 	switchScreen: function(mode) {
158
+		$('.itp_det_head').find('button[id^="ITP_BTN_OPER03011_"]').each(function(i) {
159
+			$(this).hide();
160
+		});
161
+		$('div[id$="_CONTAINER"]').each(function(i) {
162
+			if($(this).attr('id').startsWith('ITP_AJAX_OPER03011')) {
163
+				$(this).hide();
164
+			}
165
+		});
160 166
 		if(mode == 'MODIFY') { // 수정
161
-			$('#ITP_BTN_OPER03011_SRH').hide();
162
-			$('#ITP_BTN_OPER03011_MODIFY').hide();
163
-			$('#ITP_BTN_OPER03011_NEWREG').hide();
164
-			$('#ITP_BTN_OPER03011_DELETE').hide();
165
-			fn_show_btn_auth('#ITP_BTN_OPER03011_RESET_PW');
166
-			fn_show_btn_auth('#ITP_BTN_OPER03011_CANCELLIST');
167
-			fn_show_btn_auth('#ITP_BTN_OPER03011_SAVE');
168
-
167
+			fn_show_btn_auth_array(['#ITP_BTN_OPER03011_CANCELLIST', '#ITP_BTN_OPER03011_SAVE', '#ITP_BTN_OPER03011_RESET_PW']);
169 168
 			$('#ITP_AJAX_OPER03011_DETAIL_CONTAINER').show();
170
-			$('#ITP_AJAX_OPER03011_VIEW_CONTAINER').hide();
171
-			$('#ITP_FORM_OPER03011_DETAIL_AFFL_SHOP_KEY').attr('readonly', true);
172
-			$('#ITP_BTN_OPER03011_DETAIL_AFFL_SHOP_KEY').attr('disabled', true);
169
+			$('#ITP_FORM_OPER03011_DETAIL_AFFL_SHOP_KEY').prop('readonly', true);
170
+			$('#ITP_BTN_OPER03011_DETAIL_AFFL_SHOP_KEY').prop('disabled', true);
173 171
 		} else if(mode == 'VIEW') { // 보기
174
-			$('#ITP_BTN_OPER03011_SRH').hide();
175
-			$('#ITP_BTN_OPER03011_NEWREG').hide();
176
-			$('#ITP_BTN_OPER03011_DELETE').hide();
177
-			$('#ITP_BTN_OPER03011_SAVE').hide();
178
-			fn_show_btn_auth('#ITP_BTN_OPER03011_MODIFY');
179
-			fn_show_btn_auth('#ITP_BTN_OPER03011_CANCELLIST');
180
-
181
-			$('#ITP_AJAX_OPER03011_DETAIL_CONTAINER').hide();
172
+			fn_show_btn_auth_array(['#ITP_BTN_OPER03011_MODIFY', '#ITP_BTN_OPER03011_CANCELLIST']);
182 173
 			$('#ITP_AJAX_OPER03011_VIEW_CONTAINER').show();
183 174
 		}
175
+	},
176
+	grid: {
177
+		init: function(mode, gridData) {
178
+			this.mode = mode;
179
+			this.gridId = (mode === 'VIEW') ? OPER03011_VIEW_GRID_ID : OPER03011_DETAIL_GRID_ID;
180
+			this.unload();
181
+			this.load(gridData);
182
+		},
183
+		mode: 'DETAIL',
184
+		gridId: '',
185
+		button: {
186
+			addRow: function () {
187
+				// 팝업
188
+				var popFn = function(rowDataPop) {
189
+					console.log(rowDataPop);
190
+					// 기존등록 데이터
191
+					var exists = '';
192
+					const rowData = $(OPER03011_DETAIL_GRID_ID).getRowData();
193
+					$.each(rowData, function(key, value) {
194
+						exists = exists + value.saleMgrId + ';';
195
+					});
196
+
197
+					$.each(rowDataPop, function(key, value) {
198
+						if(exists.indexOf(value.saleMgrId) < 0) {
199
+							$(OPER03011_DETAIL_GRID_ID).jqGrid('addRowData', value.saleMgrId, value, 'last');
200
+							var rids = $(OPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
201
+							var last_row_id = rids[rids.length - 1];
202
+							$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
203
+						}
204
+					});
205
+					$(OPER03011_DETAIL_GRID_EMPTY).hide();
206
+				};
207
+				fn_call_popup('biz', 'BIZPOP_APPL_SALES_USER_SCH', '#ITP_ASIDE', popFn, null, 'S');
208
+			},
209
+			delRow: function () {
210
+				itp_fn_grid_del_row(OPER03011_DETAIL_GRID_ID);
211
+			}
212
+		},
213
+		load: function(gridData) {
214
+			var _this = this;
215
+			var option = {
216
+				gridId: this.gridId,
217
+				colModel: gridColModel.detail,
218
+				data: gridData,
219
+				multiselect: (this.mode !== 'VIEW'),
220
+				loadComplete: function(data) {
221
+					$(_this.mode === 'VIEW' ? OPER03011_VIEW_GRID_LIST : OPER03011_DETAIL_GRID_LIST).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
222
+					if(data.records === 0) {
223
+						_this.clearData();
224
+						console.log(ITP_MSG_LOCALE.message.grid.noData);
225
+						var gridEmpty = (this.mode === 'VIEW') ? OPER03011_VIEW_GRID_EMPTY : OPER03011_DETAIL_GRID_EMPTY;
226
+						$(gridEmpty).html(ITP_MSG_LOCALE.message.grid.noData);
227
+						$(gridEmpty).show();
228
+					}
229
+				}
230
+			};
231
+			itp_fn_grid_make_local(option);
232
+		},
233
+		clearData : function() {
234
+			$(this.gridId).jqGrid('clearGridData', true);
235
+			$(this.mode === 'VIEW' ? OPER03011_VIEW_GRID_LIST : OPER03011_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
236
+			$(this.mode === 'VIEW' ? OPER03011_VIEW_GRID_EMPTY : OPER03011_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
237
+			$(this.mode === 'VIEW' ? OPER03011_VIEW_GRID_EMPTY : OPER03011_DETAIL_GRID_EMPTY).show();
238
+		},
239
+		unload : function() {
240
+			$.jgrid.gridUnload(this.gridId);
241
+		}
184 242
 	}
185 243
 };
186 244
 
@@ -203,8 +261,9 @@ let viewObj = {
203 261
 
204 262
 		$('#ITP_FORM_OPER03011_VIEW .fnAfflShopId').text(result.afflShopId);
205 263
 		$('#ITP_FORM_OPER03011_VIEW .fnAfflShopNm').text(result.afflShopNm);
264
+		$('#ITP_FORM_OPER03010_VIEW .fnAfflShopKey').text(result.afflAbbr);
206 265
 		$('#ITP_FORM_OPER03011_VIEW .fnStCd').text(result.stNm);
207
-		$('#ITP_FORM_OPER03011_VIEW .fnCmpyTypeCd').text(result.corpType);
266
+		$('#ITP_FORM_OPER03011_VIEW .fnCorpTypeNm').text(result.corpTypeNm);
208 267
 		$('#ITP_FORM_OPER03011_VIEW .fnBsnsRegNo').text(result.corpRegNo);
209 268
 		$('#ITP_FORM_OPER03011_VIEW .fnCorpRegNo').text(result.corpRegNo);
210 269
 		$('#ITP_FORM_OPER03011_VIEW .fnTelNo').text(result.ownerTelNo);
@@ -223,10 +282,11 @@ let viewObj = {
223 282
 		$('#ITP_FORM_OPER03011_VIEW .fnAddDt').text(result.regDt);
224 283
 		$('#ITP_FORM_OPER03011_VIEW .fnChgDt').text(result.chgDt);
225 284
 
226
-		kakaoMap.init('ITP_FORM_OPER03011_VIEW_MAP', result.cmpyAdres);
285
+		let locate = result.addr1 + ' ' + result.addr2;
286
+		kakaoMap.init('ITP_FORM_OPER03011_VIEW', locate);
227 287
 
228 288
 		// 영업담당자정보  리스트 조회
229
-		afflUserObj.grid.init('VIEW', result.saleList);
289
+		pageObj.grid.init('VIEW', result.saleList);
230 290
 	},
231 291
 	grid: {
232 292
 		init: function() {
@@ -309,20 +369,7 @@ let modifyObj = {
309 369
 			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
310 370
 		},
311 371
 		address: function() {
312
-			new daum.Postcode({
313
-				oncomplete: function(data) {
314
-					// 전체주소 리턴
315
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_ZIPNO').value = data.zonecode;
316
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_ADRES').value = data.roadAddress;
317
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
318
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_STREET_ADDRESS').value = data.roadAddress;
319
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
320
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_BJ_DONG').value = data.bname;
321
-
322
-					kakaoMap.init('ITP_FORM_OPER03011_DETAIL_MAP', data.roadAddress);
323
-					document.getElementById('ITP_FORM_OPER03011_DETAIL_ADRES_DTL').focus();
324
-				}
325
-			}).open();
372
+			kakaoMap.address('ITP_FORM_OPER03011_DETAIL');
326 373
 		},
327 374
 		cancel: function() {
328 375
 			viewObj.init();
@@ -410,10 +457,10 @@ let modifyObj = {
410 457
 		$('#ITP_FORM_OPER03011_DETAIL .fnAddDt').text(result.regDt);
411 458
 		$('#ITP_FORM_OPER03011_DETAIL .fnChgDt').text(result.chgDt);
412 459
 
413
-		kakaoMap.init('ITP_FORM_OPER03011_DETAIL_MAP', $('#ITP_FORM_OPER03011_DETAIL_ADRES').val());
460
+		kakaoMap.init('ITP_FORM_OPER03011_DETAIL', $('#ITP_FORM_OPER03011_DETAIL_ADRES').val());
414 461
 
415 462
 		// 권한정보 리스트 조회
416
-		afflUserObj.grid.init('MODIFY', result.saleList);
463
+		pageObj.grid.init('MODIFY', result.saleList);
417 464
 	},
418 465
 	grid: {
419 466
 		init: function() {
@@ -475,184 +522,3 @@ let modifyObj = {
475 522
 		}
476 523
 	}
477 524
 };
478
-
479
-/*가맹점 담당자 Object*/
480
-let afflUserObj = {
481
-	init: function () {
482
-	},
483
-	button: {
484
-		addRow: function() {
485
-			// 팝업
486
-			var popFn = function(rowDataPop) {
487
-				console.log(rowDataPop);
488
-				// 기존등록 데이터
489
-				var exists = '';
490
-				const rowData = $(OPER03011_DETAIL_GRID_ID).getRowData();
491
-				$.each(rowData, function(key, value) {
492
-					exists = exists + value.saleMgrId + ';';
493
-				});
494
-
495
-				$.each(rowDataPop, function(key, value) {
496
-					if(exists.indexOf(value.saleMgrId) < 0) {
497
-						// 행추가
498
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
499
-						var rids = $(OPER03011_DETAIL_GRID_ID).jqGrid('getDataIDs');
500
-						var last_row_id = rids[rids.length - 1];
501
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
502
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'saleMgrId', value.saleMgrId);
503
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'saleMgrNm', value.saleMgrNm);
504
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'rprstTelNo', value.rprstTelNo);
505
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'rprstEmai', value.rprstEmai);
506
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'stCd', value.stCd);
507
-						$(OPER03011_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'stNm', value.stNm);
508
-					}
509
-				});
510
-				$(OPER03011_DETAIL_GRID_EMPTY).hide();
511
-			};
512
-			fn_call_popup('biz', 'BIZPOP_APPL_SALES_USER_SCH', '#ITP_ASIDE', popFn, null, 'S');
513
-		},
514
-		delRow: function() {
515
-			itp_fn_grid_del_row(OPER03011_DETAIL_GRID_ID);
516
-		}
517
-	},
518
-	grid: {
519
-		init: function(view, gridData) {
520
-			this.gridId = view === 'VIEW' ? OPER03011_VIEW_GRID_ID : OPER03011_DETAIL_GRID_ID;
521
-			this.gridList = view === 'VIEW' ? OPER03011_VIEW_GRID_LIST : OPER03011_DETAIL_GRID_LIST;
522
-			this.gridPager = view === 'VIEW' ? OPER03011_VIEW_GRID_PAGER : OPER03011_DETAIL_GRID_PAGER;
523
-			this.gridEmpty = view === 'VIEW' ? OPER03011_VIEW_GRID_EMPTY : OPER03011_DETAIL_GRID_EMPTY;
524
-			this.unload();
525
-			this.load(gridData);
526
-		},
527
-		colModel: gridColModel.detail,
528
-		gridId: OPER03011_DETAIL_GRID_ID,
529
-		gridList: OPER03011_DETAIL_GRID_LIST,
530
-		gridPager: OPER03011_DETAIL_GRID_PAGER,
531
-		gridEmpty: OPER03011_DETAIL_GRID_EMPTY,
532
-		load: function (gridData) {
533
-			var option = {
534
-				gridId: this.gridId,
535
-				colModel: gridColModel.detail,
536
-				data: gridData,
537
-				pager: this.gridPager
538
-			};
539
-			itp_fn_grid_make_local(option);
540
-			if(!gridData) {
541
-				this.clearData();
542
-			}
543
-		},
544
-		clearData : function() {
545
-			$(this.gridId).jqGrid('clearGridData', true);
546
-			$(this.gridList).find('.ui-jqgrid-bdiv').css('min-height', '100px');
547
-			$(this.gridEmpty).html(ITP_MSG_LOCALE.message.grid.noData);
548
-			$(this.gridEmpty).show();
549
-		},
550
-		unload : function() {
551
-			$.jgrid.gridUnload(this.gridId);
552
-		}
553
-	}
554
-};
555
-
556
-let kakaoMap = {
557
-	init: function(id, locate) {
558
-		this.load(id, locate);
559
-	},
560
-	geocoder: null,
561
-	schDetailAddrFromCoords: function(coords, callback) {
562
-		// 좌표로 법정동 상세 주소 정보를 요청합니다
563
-		if(this.geocoder) {
564
-			this.geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
565
-		}
566
-	},
567
-	getMap: function(id) {
568
-		var mapContainer = document.getElementById(id), // 지도를 표시할 div
569
-			mapOption = {
570
-				center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
571
-				level: 3, // 지도의 확대 레벨
572
-				mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
573
-			};
574
-
575
-		// 지도를 생성한다
576
-		var map = new kakao.maps.Map(mapContainer, mapOption);
577
-
578
-		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
579
-		map.setZoomable(false);
580
-
581
-		// 지도에 확대 축소 컨트롤을 생성한다
582
-		//var zoomControl = new kakao.maps.ZoomControl();
583
-
584
-		// 지도의 우측에 확대 축소 컨트롤을 추가한다
585
-		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
586
-
587
-		return map;
588
-	},
589
-	marker: function(map, coords) {
590
-		// 지도에 마커를 생성하고 표시한다
591
-		marker = new kakao.maps.Marker({
592
-			position: coords, // 마커의 좌표
593
-			map: map // 마커를 표시할 지도 객체
594
-		});
595
-	},
596
-	load: function(id, locate) {
597
-		var _this = this;
598
-		kakao.maps.load(function() {
599
-			var map = _this.getMap(id);
600
-			// 주소-좌표 변환 객체를 생성합니다
601
-			_this.geocoder = new kakao.maps.services.Geocoder();
602
-			if( !locate || locate.length == 0 ) {
603
-				// 지도에 마커를 생성하고 표시한다
604
-				_this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
605
-			} else {
606
-				// 주소로 좌표를 검색합니다
607
-				_this.geocoder.addressSearch(locate, function(result, status) {
608
-					// 정상적으로 검색이 완료됐으면
609
-					if (status === kakao.maps.services.Status.OK) {
610
-
611
-						var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
612
-						if(id === 'ITP_FORM_OPER03011_DETAIL_MAP') {
613
-							document.getElementById('ITP_FORM_OPER03011_DETAIL_LAT').value = result[0].y;
614
-							document.getElementById('ITP_FORM_OPER03011_DETAIL_LNG').value = result[0].x;
615
-						}
616
-
617
-						// 결과값으로 받은 위치를 마커로 표시합니다
618
-						_this.marker(map, coords);
619
-
620
-						// 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
621
-						map.setCenter(coords);
622
-					} else {
623
-						_this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
624
-					}
625
-				});
626
-			}
627
-
628
-			if(id === 'ITP_FORM_OPER03011_DETAIL_MAP') {
629
-				_this.listener.drag(map);
630
-			}
631
-		});
632
-	},
633
-	listener: {
634
-		drag: function(map) {
635
-			var _this = this;
636
-			// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
637
-			kakao.maps.event.addListener(map, 'drag', function () {
638
-				kakaoMap.schDetailAddrFromCoords(map.getCenter(), function(result, status) {
639
-					if (status === kakao.maps.services.Status.OK) {
640
-
641
-						document.getElementById('ITP_FORM_OPER03011_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
642
-						document.getElementById('ITP_FORM_OPER03011_DETAIL_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
643
-						document.getElementById('ITP_FORM_OPER03011_DETAIL_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#ITP_FORM_OPER03011_DETAIL_STREET_ADDRESS').val();
644
-						document.getElementById('ITP_FORM_OPER03011_DETAIL_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#ITP_FORM_OPER03011_DETAIL_CMPY_ZIPNO').val() ;
645
-						document.getElementById('ITP_FORM_OPER03011_DETAIL_LAT').value = map.getCenter().getLat();
646
-						document.getElementById('ITP_FORM_OPER03011_DETAIL_LNG').value = map.getCenter().getLng();
647
-
648
-						// 마커를 클릭한 위치에 표시합니다
649
-						marker.setPosition(map.getCenter());
650
-						marker.setMap(map);
651
-					}
652
-				});
653
-				/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
654
-                console.log(message); */
655
-			});
656
-		}
657
-	}
658
-};

+ 3 - 10
bin/src/main/webapp/js/app/oper/ITP_OPER06010.js

@@ -200,16 +200,9 @@ let pageObj = {
200 200
             $('#ITP_FORM_OPER06010_DETAIL_BRAND_CD').removeAttr('readonly');
201 201
             $('#ITP_FORM_OPER06010_DETAIL_DUP').removeAttr('disabled');
202 202
 
203
-            $('#ITP_FORM_OPER06010_DETAIL_VIEW_CD').val('C');
204
-            $('#ITP_FORM_OPER06010_DETAIL_BRAND_NM').val('');
205
-            $('#ITP_FORM_OPER06010_DETAIL_BRAND_USE_CD').val('');
206
-            $('#ITP_FORM_OPER06010_DETAIL_BRAND_CD').val('');
207
-            $('#ITP_FORM_OPER06010_DETAIL_CATE_CD').val('');
208
-            $('#ITP_FORM_OPER06010_DETAIL_TAKEOUT_YN').val('');
209
-            $('#ITP_FORM_OPER06010_DETAIL_CIRCULATE_STORE_YN').val('');
210
-            $('#ITP_FORM_OPER06010_DETAIL_STORE_MENU_REG_YN').val('');
211
-            $('#ITP_FORM_OPER06010_DETAIL_SALES_USER_ID').val('');
212
-            $('#ITP_FORM_OPER06010_DETAIL_SALES_USER_NM').val('');
203
+            $('input[id^="ITP_FORM_OPER06010_DETAIL_"]').each(function(i) {
204
+                ($(this).attr('id') === 'ITP_FORM_OPER06010_DETAIL_VIEW_CD') ? $(this).val('C') : $(this).val('');
205
+            });
213 206
 
214 207
         } else if(mode == 'MODIFY') { // 수정
215 208
             $('#ITP_BTN_OPER06010_SRH').hide();

+ 122 - 0
bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_HIST.js

@@ -0,0 +1,122 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+
6
+	});
7
+});
8
+
9
+let STOCK_MNG_HIST_GRID_LIST = '/api/stock/mng/hist-grid-list';
10
+
11
+function itp_fn_BIZPOP_PO_STOCK_HIST(parentPopFn, args, returnType) {
12
+	
13
+	// console.log(JSON.stringify(args));
14
+	
15
+	let itp_BIZPOP_PO_STOCK_HIST_param = {};
16
+	let itp_BIZPOP_PO_STOCK_HIST_search = false;
17
+
18
+	const THIS_FORM_ID = '#ITP_FORM_BIZPOP_PO_STOCK_HIST';
19
+	const THIS_GIRD_ID = '#ITP_BIZPOP_PO_STOCK_HIST_jqGrid';
20
+	const THIS_GIRD_PAGER = '#ITP_BIZPOP_PO_STOCK_HIST_jqGridPager';
21
+	
22
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST_BRAND_ID').val(args.brandId);
23
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST_WHS_ID').val(args.whsId);
24
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST_LOCATION').val(args.location);
25
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST_ITEM_ID').val(args.itemId);
26
+	
27
+	var now = new Date();
28
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST .input-group.date').datepicker(ITP_DATE_LANGUAGE);
29
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
30
+	$('#ITP_FORM_BIZPOP_PO_STOCK_HIST_TO_DT').datepicker('setDate', new Date());
31
+	
32
+	// 공통코드 표시
33
+	fn_make_select(CODE_LIST, 'INOUT_CD', 'ITP_FORM_BIZPOP_PO_STOCK_HIST_INOUT_CD');
34
+	
35
+	$('#ITP_BIZPOP_PO_STOCK_HIST').one('shown.bs.modal', function(e) {
36
+		itp_fn_jqgrid_resize(THIS_GIRD_ID, '#ITP_BIZPOP_PO_STOCK_HIST_jqGrid_list', '');
37
+		itp_fn_fire_window_resize();
38
+	}).one('hidden.bs.modal', function(e) {
39
+		$('#ITP_BIZPOP_PO_STOCK_HIST').remove();
40
+	}).modal('show');
41
+
42
+	$('#ITP_BIZPOP_PO_STOCK_HIST_BTN_SEARCH').on('click', function() {
43
+		itp_BIZPOP_PO_STOCK_HIST_search = true;
44
+		let param = $(THIS_FORM_ID).serializeObject();
45
+		param.gridSize = 10;
46
+		param.gridPage = $.jgrid.defaults.page;
47
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
48
+	});
49
+
50
+	$('#ITP_BIZPOP_PO_STOCK_HIST_jqGridEmpty').on('click', function() {
51
+		itp_fn_BIZPOP_PO_STOCK_HIST_empty.back();
52
+		itp_BIZPOP_PO_STOCK_HIST_param.gridSize = 10;
53
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(itp_BIZPOP_PO_STOCK_HIST_param)}).trigger('reloadGrid');
54
+	});
55
+
56
+	var itp_fn_BIZPOP_PO_STOCK_HIST_empty = {
57
+		push: function() {
58
+			let param = $(THIS_FORM_ID).serializeObject();
59
+			itp_BIZPOP_PO_STOCK_HIST_param = param;
60
+		},
61
+		back: function() {
62
+			$(THIS_FORM_ID + '_CMPY_CD').val(itp_BIZPOP_PO_STOCK_HIST_param.scmpyCd);
63
+			$(THIS_FORM_ID + '_CMPY_NM').val(itp_BIZPOP_PO_STOCK_HIST_param.scmpyNm);
64
+			$(THIS_FORM_ID + '_CMPY_TYPE_CD').val(itp_BIZPOP_PO_STOCK_HIST_param.scmpyTypeCd);
65
+		}
66
+	};
67
+
68
+	itp_fn_BIZPOP_PO_STOCK_HIST_empty.push();
69
+	let param = $('#ITP_FORM_BIZPOP_PO_STOCK_HIST').serializeObject();
70
+	param.gridSize = 10;
71
+
72
+	$(THIS_GIRD_ID).jqGrid({
73
+		colModel: [
74
+			{
75
+				index: 'INOUT_NM', name: 'inoutNm',
76
+				label: '입출고구분', // 
77
+				width: '10', fixed: false, align: 'center',
78
+				sortable: false, hidden: false
79
+			},
80
+			{
81
+				index: 'SYS_REG_DTTM', name: 'sysRegDttm',
82
+				label: '발생일자', //
83
+				width: '12', fixed: false, align: 'center',
84
+				sortable: false, hidden: false
85
+			},
86
+			{
87
+				index: 'INOUT_QTY', name: 'inoutQty',
88
+				label: '입출고수량', //
89
+				width: '10', fixed: false, align: 'center',
90
+				sortable: false, hidden: false
91
+			},
92
+			{
93
+				index: 'CHG_DVSN_NM', name: 'chgDvsnNm',
94
+				label: '변경구분', //
95
+				width: '10', fixed: false, align: 'center',
96
+				sortable: false, hidden: false
97
+			},
98
+			{
99
+				index: 'RELATION_NO', name: 'relationNo',
100
+				label: '관련번호', //
101
+				width: '10', fixed: false, align: 'center',
102
+				sortable: false, hidden: false
103
+			}
104
+		],
105
+		loadBeforeSend: function(jqXHR) {
106
+		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
107
+		},
108
+		postData: JSON.stringify(param),
109
+		url: DOMAIN + STOCK_MNG_HIST_GRID_LIST,
110
+		pager: THIS_GIRD_PAGER,
111
+		multiselect: false,
112
+		loadComplete: function(data) {
113
+			itp_fn_grid_load_complete(data, THIS_GIRD_ID, true, undefined, 'BIZPOP_PO_STOCK_HIST', itp_BIZPOP_PO_STOCK_HIST_search, itp_fn_BIZPOP_PO_STOCK_HIST_empty, true, data.gridRecords, false);
114
+	    },
115
+	    loadError: function(jqXHR, textStatus, errorThrown) {
116
+	    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
117
+	    },
118
+	    onPaging: function(action) {
119
+	    	itp_fn_grid_paging(THIS_GIRD_ID, action, param);
120
+	    }
121
+	}).navGrid(THIS_GIRD_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
122
+};

+ 43 - 115
bin/src/main/webapp/js/app/stinfo/ITP_STINFO03010.js

@@ -221,68 +221,57 @@ let pageObj = {
221 221
 		}
222 222
 	},
223 223
 	switchScreen: function(mode) {
224
+		$('.itp_det_head').find('button[id^="ITP_BTN_STINFO03010_"]').each(function(i) {
225
+			$(this).hide();
226
+		});
227
+		$('div[id$="_CONTAINER"]').each(function(i) {
228
+			if($(this).attr('id').startsWith('ITP_AJAX_STINFO03010')) {
229
+				$(this).hide();
230
+			}
231
+		});
224 232
 		if(mode == 'LIST') { // 목록
225
-			$('#ITP_BTN_STINFO03010_MODIFY').hide();
226
-			$('#ITP_BTN_STINFO03010_CANCELLIST').hide();
227
-			$('#ITP_BTN_STINFO03010_DELETE').hide();
228
-			$('#ITP_BTN_STINFO03010_SAVE').hide();
229
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_SRH');
230
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_NEWREG');
231
-
233
+			fn_show_btn_auth_array(['#ITP_BTN_STINFO03010_SRH', '#ITP_BTN_STINFO03010_NEWREG']);
232 234
 			$('#ITP_AJAX_STINFO03010_LIST_CONTAINER').show();
233
-			$('#ITP_AJAX_STINFO03010_DETAIL_CONTAINER').hide();
234
-			$('#ITP_AJAX_STINFO03010_VIEW_CONTAINER').hide();
235 235
 		} else if(mode == 'ADD') { // 등록
236
-			$('#ITP_BTN_STINFO03010_SRH').hide();
237
-			$('#ITP_BTN_STINFO03010_MODIFY').hide();
238
-			$('#ITP_BTN_STINFO03010_NEWREG').hide();
239
-			$('#ITP_BTN_STINFO03010_DELETE').hide();
240
-			$('#ITP_BTN_STINFO03010_RESET_PW').hide();
241
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_CANCELLIST');
242
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_SAVE');
243
-
244
-			$('#ITP_AJAX_STINFO03010_LIST_CONTAINER').hide();
236
+			fn_show_btn_auth_array(['#ITP_BTN_STINFO03010_CANCELLIST', '#ITP_BTN_STINFO03010_SAVE']);
245 237
 			$('#ITP_AJAX_STINFO03010_DETAIL_CONTAINER').show();
246
-			$('#ITP_AJAX_STINFO03010_VIEW_CONTAINER').hide();
247
-			$('#ITP_FORM_STINFO03010_DETAIL_STORE_ID').removeAttr('readonly');
248
-			$('#ITP_FORM_STINFO03010_DETAIL_DUP').removeAttr('disabled');
249 238
 
250
-			$.each($('input, select, checkbox, radio, textarea', '#ITP_FORM_STINFO03010_DETAIL'),function(k) {
251
-				$(this).val('');
239
+			$('input[id^="ITP_FORM_STINFO03010_DETAIL_"]').each(function(i) {
240
+				($(this).attr('id') === 'ITP_FORM_STINFO03010_DETAIL_VIEW_CD') ? $(this).val('C') : $(this).val('');
252 241
 			});
253 242
 
254
-			$('#ITP_FORM_STINFO03010_DETAIL_VIEW_CD').val('C');
255 243
 			$('#ITP_FORM_STINFO03010_DETAIL .fnSpplyId').text('(자동부여) (비밀번호는 사업자번호로 초기화 됩니다.)');
256 244
 		} else if(mode == 'MODIFY') { // 수정
257
-			$('#ITP_BTN_STINFO03010_SRH').hide();
258
-			$('#ITP_BTN_STINFO03010_MODIFY').hide();
259
-			$('#ITP_BTN_STINFO03010_NEWREG').hide();
260
-			$('#ITP_BTN_STINFO03010_DELETE').hide();
261
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_CANCELLIST');
262
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_SAVE');
263
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_RESET_PW');
264
-
265
-			$('#ITP_AJAX_STINFO03010_LIST_CONTAINER').hide();
245
+			fn_show_btn_auth_array(['#ITP_BTN_STINFO03010_CANCELLIST', '#ITP_BTN_STINFO03010_SAVE', '#ITP_BTN_STINFO03010_RESET_PW']);
266 246
 			$('#ITP_AJAX_STINFO03010_DETAIL_CONTAINER').show();
267
-			$('#ITP_AJAX_STINFO03010_VIEW_CONTAINER').hide();
268
-			$('#ITP_FORM_STINFO03010_DETAIL_STORE_ID').attr('readonly', true);
269
-			$('#ITP_FORM_STINFO03010_DETAIL_DUP').attr('disabled', true);
270
-			$('#ITP_FORM_STINFO03010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
271
-
272
-			$('#ITP_FORM_STINFO03010_DETAIL_SEARCH_AFFL_SHOP').hide();
273
-			$('#ITP_FORM_STINFO03010_DETAIL_DELETE_AFFL_SHOP').hide();
274 247
 		} else if(mode == 'VIEW') { // 보기
275
-			$('#ITP_BTN_STINFO03010_SRH').hide();
276
-			$('#ITP_BTN_STINFO03010_NEWREG').hide();
277
-			$('#ITP_BTN_STINFO03010_DELETE').hide();
278
-			$('#ITP_BTN_STINFO03010_SAVE').hide();
279
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_MODIFY');
280
-			fn_show_btn_auth('#ITP_BTN_STINFO03010_CANCELLIST');
281
-
282
-			$('#ITP_AJAX_STINFO03010_LIST_CONTAINER').hide();
283
-			$('#ITP_AJAX_STINFO03010_DETAIL_CONTAINER').hide();
248
+			fn_show_btn_auth_array(['#ITP_BTN_STINFO03010_MODIFY', '#ITP_BTN_STINFO03010_CANCELLIST']);
284 249
 			$('#ITP_AJAX_STINFO03010_VIEW_CONTAINER').show();
285 250
 		}
251
+	},
252
+	grid: {
253
+		init: function(mode, gridData) {
254
+			this.gridId = (mode === 'VIEW') ? STINFO03010_VIEW_GRID_ID : STINFO03010_DETAIL_GRID_ID;
255
+			this.unload();
256
+			this.load(mode, gridData);
257
+		},
258
+		gridId: '',
259
+		load: function(mode, gridData) {
260
+			var option = {
261
+				gridId: this.gridId,
262
+				colModel: gridColModel.detail,
263
+				data: gridData,
264
+				multiselect: (mode !== 'VIEW'),
265
+				loadComplete: function(data) {
266
+					let gridList = (mode === 'VIEW') ? STINFO03010_VIEW_GRID_LIST : STINFO03010_DETAIL_GRID_LIST;
267
+					$(gridList).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
268
+				}
269
+			};
270
+			itp_fn_grid_make_local(option);
271
+		},
272
+		unload : function() {
273
+			$.jgrid.gridUnload(this.gridId);
274
+		}
286 275
 	}
287 276
 };
288 277
 
@@ -427,29 +416,8 @@ let viewObj = {
427 416
 		// $('#ITP_FORM_STINFO03010_VIEW .fnCloseDt').text(result.openDt);
428 417
 
429 418
 		// 담당자정보  리스트 조회
430
-		viewObj.grid.load(result.spplyMgrList);
431
-	},
432
-	grid: {
433
-		init: function() {
434
-		},
435
-		load: function(gridList) {
436
-			var option = {
437
-				gridId: STINFO03010_VIEW_GRID_ID,
438
-				colModel: gridColModel.detail,
439
-				data: gridList,
440
-				pager: STINFO03010_VIEW_GRID_PAGER,
441
-			};
442
-			itp_fn_grid_make_local(option);
443
-		},
444
-		clearData : function() {
445
-			$(STINFO03010_VIEW_GRID_ID).jqGrid('clearGridData', true);
446
-			$(STINFO03010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
447
-			$(STINFO03010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
448
-			$(STINFO03010_VIEW_GRID_EMPTY).show();
449
-		},
450
-		unload : function() {
451
-			$.jgrid.gridUnload(STINFO03010_VIEW_GRID_ID);
452
-		}
419
+		pageObj.grid.init('VIEW', result.spplyMgrList);
420
+		// viewObj.grid.load(result.spplyMgrList);
453 421
 	}
454 422
 };
455 423
 
@@ -500,29 +468,8 @@ let modifyObj = {
500 468
 		$('#ITP_FORM_STINFO03010_DETAIL #ITP_FORM_STINFO03010_DETAIL_DTL_ADDR').val(result.addr2);
501 469
 
502 470
 		// 담당자정보  리스트 조회
503
-		modifyObj.grid.load(result.spplyMgrList);
504
-	},
505
-	grid: {
506
-		init: function() {
507
-		},
508
-		load: function(gridList) {
509
-			var option = {
510
-				gridId: STINFO03010_DETAIL_GRID_ID,
511
-				colModel: gridColModel.detail,
512
-				data: gridList,
513
-				pager: STINFO03010_DETAIL_GRID_PAGER,
514
-			};
515
-			itp_fn_grid_make_local(option);
516
-		},
517
-		clearData : function() {
518
-			$(STINFO03010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
519
-			$(STINFO03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
520
-			$(STINFO03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
521
-			$(STINFO03010_DETAIL_GRID_EMPTY).show();
522
-		},
523
-		unload : function() {
524
-			$.jgrid.gridUnload(STINFO03010_DETAIL_GRID_ID);
525
-		}
471
+		pageObj.grid.init('DETAIL', result.spplyMgrList);
472
+		// modifyObj.grid.load(result.spplyMgrList);
526 473
 	}
527 474
 };
528 475
 
@@ -532,8 +479,7 @@ let createObj = {
532 479
 		pageObj.switchScreen('ADD');
533 480
 		itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO03010_DETAIL');
534 481
 		$('#ITP_FORM_STINFO03010_DETAIL_BRAND_ID').val(pageObj.brandInfo.brandId);
535
-		this.unload();
536
-		this.load();
482
+		pageObj.grid.init('DETAIL', []);
537 483
 	},
538 484
 	button: {
539 485
 		cancel: function() {
@@ -599,23 +545,5 @@ let createObj = {
599 545
 			};
600 546
 			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
601 547
 		}
602
-	},
603
-	load: function () {
604
-		var option = {
605
-			gridId: STINFO03010_DETAIL_GRID_ID,
606
-			colModel: gridColModel.detail,
607
-			data: [],
608
-			pager: STINFO03010_DETAIL_GRID_PAGER,
609
-		};
610
-		itp_fn_grid_make_local(option);
611
-	},
612
-	clearData : function() {
613
-		$(STINFO03010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
614
-		$(STINFO03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
615
-		$(STINFO03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
616
-		$(STINFO03010_DETAIL_GRID_EMPTY).show();
617
-	},
618
-	unload : function() {
619
-		$.jgrid.gridUnload(STINFO03010_DETAIL_GRID_ID);
620 548
 	}
621 549
 };

+ 17 - 1
bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG01010.js

@@ -19,7 +19,6 @@ let STOCKMNG01010_DETAIL_GRID_LAST_ROW_ID;
19 19
 
20 20
 /*API URL*/
21 21
 let STOCK_MNG_DETAIL_GRID_LIST = '/api/stock/mng/detail-grid-list';
22
-let WHS_MNG_ADD_WHS = '/api/whs/mng/add-whs';
23 22
 let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
24 23
 let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
25 24
 
@@ -265,7 +264,24 @@ let listObj = {
265 264
 			}, args, 'S');
266 265
 		}, 
267 266
 		clickStockHist: function() {
267
+			// 그리드에서 최소1개는 선택해야 함
268
+			const rowKey = $(STOCKMNG01010_GRID_ID).getGridParam('selrow');
269
+		    if (!rowKey) {
270
+				itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.noData);
271
+		    	return;
272
+		    }
273
+			var selectedIds = $(STOCKMNG01010_GRID_ID).getGridParam('selarrrow');
274
+			if (selectedIds.length > 1) {
275
+				itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.noSingleData);
276
+		    	return;
277
+			}
278
+			var brandId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).brandId;
279
+			var whsId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).whsId;
280
+			var location = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).location;
281
+			var itemId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).itemId;
268 282
 			
283
+			var args = {'brandId': brandId, 'whsId': whsId, 'location': location, 'itemId': itemId};			
284
+			fn_call_popup('biz', 'BIZPOP_PO_STOCK_HIST', '#ITP_ASIDE', null, args, 'S');
269 285
 		}
270 286
 	},
271 287
 	empty: {

+ 694 - 0
bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG02010.js

@@ -0,0 +1,694 @@
1
+/********************************************************
2
+ --------------------------------------------------------
3
+ - Object 목록								            -
4
+ --------------------------------------------------------
5
+ * const gridColModel = {}	: 화면 Grid Object			*
6
+ * let pageObj = {}			: 화면공통 Object			*
7
+ * let listObj = {}			: 목록화면 Object			*
8
+ * let viewObj = {}			: 상세화면 Object			*
9
+ * let stockCddObj = {}		: 재고실사 Object			*
10
+ *******************************************************/
11
+
12
+/*화면 변수*/
13
+const STOCKMNG02010_GRID_ID = '#ITP_STOCKMNG02010_jqGrid';
14
+const STOCKMNG02010_GRID_LIST = '#ITP_STOCKMNG02010_jqGrid_list';
15
+const STOCKMNG02010_GRID_PAGER = '#ITP_STOCKMNG02010_jqGridPager';
16
+const STOCKMNG02010_GRID_EMPTY = '#ITP_STOCKMNG02010_jqGridEmpty';
17
+
18
+const STOCKMNG02010_VIEW_GRID_ID = '#ITP_STOCKMNG02010_VIEW_jqGrid';
19
+const STOCKMNG02010_VIEW_GRID_LIST = '#ITP_STOCKMNG02010_VIEW_jqGrid_list';
20
+const STOCKMNG02010_VIEW_GRID_PAGER = '#ITP_STOCKMNG02010_VIEW_jqGridPager';
21
+const STOCKMNG02010_VIEW_GRID_EMPTY = '#ITP_STOCKMNG02010_VIEW_jqGridEmpty';
22
+
23
+const STOCKMNG02010_DETAIL_GRID_ID = '#ITP_STOCKMNG02010_DETAIL_jqGrid';
24
+const STOCKMNG02010_DETAIL_GRID_LIST = '#ITP_STOCKMNG02010_DETAIL_jqGrid_list';
25
+const STOCKMNG02010_DETAIL_GRID_PAGER = '#ITP_STOCKMNG02010_DETAIL_jqGridPager';
26
+const STOCKMNG02010_DETAIL_GRID_EMPTY = '#ITP_STOCKMNG02010_DETAIL_jqGridEmpty';
27
+
28
+let ITP_FORM_STOCKMNG02010_DETAIL_IS_DUPLICATE = false;
29
+let ITP_FORM_STOCKMNG02010_DETAIL_IS_WRITING = false;
30
+let STOCKMNG02010_DETAIL_GRID_LAST_ROW_ID;
31
+
32
+/* 공통코드 리스트 */
33
+// let ITP_COMMON_CD_STCK_DVSN = fn_make_common_cd_list(CODE_LIST, 'STCK_DVSN', true);
34
+// let ITP_COMMON_CD_LOC_ST_CD = fn_make_common_cd_list(CODE_LIST, 'LOC_ST_CD', true);
35
+
36
+/*API URL*/
37
+let WHS_MNG_INFO_WHS = '/api/whs/mng/info-whs';
38
+let WHS_MNG_ADD_WHS = '/api/whs/mng/add-whs';
39
+let WHS_MNG_MIDIFY_WHS = '/api/whs/mng/modify-whs';
40
+let WHS_MNG_REMOVE_WHS = '/api/whs/mng/remove-whs'; 
41
+
42
+let STOCK_CDD_DETAIL_GRID_LIST = '/api/stock/cdd/detail-grid-list';
43
+let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
44
+let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
45
+
46
+/*화면 Grid ColModel*/
47
+const gridColModel = {
48
+	list: [
49
+		{
50
+			index: 'BRAND_ID', name: 'brandId',
51
+			label: "브랜드ID", 
52
+			width: '0', fixed: false, align: 'center',
53
+			sortable: false, hidden: true
54
+		},
55
+		{
56
+			index: 'STORE_ID', name: 'storeId',
57
+			label: "매장ID", 
58
+			width: '0', fixed: false, align: 'center',
59
+			sortable: false, hidden: true
60
+		},
61
+		{
62
+			index: 'BRAND_NM', name: 'brandNm',
63
+			label: ITP_MSG_LOCALE.label.brandNm, //브랜드
64
+			width: '10', fixed: false, align: 'center',
65
+			sortable: false, hidden: false
66
+		},
67
+		{
68
+			index: 'STORE_NM', name: 'storeNm',
69
+			label: "매장명", 
70
+			width: '10', fixed: false, align: 'center',
71
+			sortable: false, hidden: false
72
+		},
73
+		{
74
+			index: 'WHS_ID', name: 'whsId',
75
+			label: "창고번호", 
76
+			width: '8', fixed: false, align: 'center',
77
+			sortable: false, hidden: false
78
+		},
79
+		{
80
+			index: 'WHS_NM', name: 'whsNm',
81
+			label: "창고명", 
82
+			width: '10', fixed: false, align: 'center',
83
+			sortable: false, hidden: false
84
+		},
85
+		{
86
+			index: 'LOCATION_NM', name: 'locationNm',
87
+			label: "Location", 
88
+			width: '10', fixed: false, align: 'center',
89
+			sortable: false, hidden: false
90
+		},		
91
+		{
92
+			index: 'CDD_MGR_NM', name: 'cddMgrNm',
93
+			label: "실사담당자", 
94
+			width: '8', fixed: false, align: 'center',
95
+			sortable: false, hidden: false
96
+		},
97
+		{
98
+			index: 'CDD_DT', name: 'cddDt',
99
+			label: "실사일자", 
100
+			width: '8', fixed: false, align: 'center',
101
+			sortable: false, hidden: false
102
+		},
103
+		{
104
+			index: 'CDD_TM', name: 'cddTm',
105
+			label: "실사시각", 
106
+			width: '8', fixed: false, align: 'center',
107
+			sortable: false, hidden: false
108
+		},		
109
+		{
110
+			index: 'CDD_DVSN_NM', name: 'cddDvsnNm',
111
+			label: "실사구분", 
112
+			width: '10', fixed: false, align: 'center',
113
+			sortable: false, hidden: false
114
+		}
115
+	],
116
+	view: [
117
+		{
118
+			index: 'VIEW_CD', name: 'viewCd',
119
+			label: ITP_MSG_LOCALE.label.viewCd,
120
+			width: '10', fixed: false, align: 'center',
121
+			sortable: false, hidden: true
122
+		},		
123
+		{
124
+			index: 'LOCATION', name: 'location',
125
+			label: "로케이션",
126
+			width: '10', fixed: false, align: 'center',
127
+			sortable: false, editable: false, edittype: 'text',
128
+			editrules: {required: true}
129
+		},
130
+		{
131
+			index: 'LOCATION_NM', name: 'locationNm',
132
+			label: "로케이션명",
133
+			width: '12', fixed: false, align: 'center',
134
+			sortable: true, editable: false, edittype: 'text',
135
+			editrules: {required: true}
136
+		},
137
+		{
138
+			index: 'STCK_DVSN_NM', name: 'stckDvsnNm',
139
+			label: "관리등록",
140
+			width: '10', fixed: false, align: 'center',
141
+			sortable: false, editable: false, edittype: 'text'
142
+		},
143
+		{
144
+			index: 'LOC_ST_NM', name: 'locStNm',
145
+			label: "상태",
146
+			width: '10', fixed: false, align: 'center',
147
+			sortable: false, editable: false, edittype: 'text'
148
+		}
149
+	],
150
+	detail: [
151
+		{
152
+			index: 'VIEW_CD', name: 'viewCd',
153
+			label: ITP_MSG_LOCALE.label.viewCd,
154
+			width: '10', fixed: false, align: 'center',
155
+			sortable: false, hidden: true
156
+		},
157
+		{
158
+			index: 'BRAND_NM', name: 'brandNm',
159
+			label: "브랜드",
160
+			width: '10', fixed: false, align: 'center',
161
+			sortable: false, editable: false, edittype: 'text',
162
+			editrules: {required: false}
163
+		},
164
+		{
165
+			index: 'WHS_ID', name: 'whsId',
166
+			label: "창고번호",
167
+			width: '10', fixed: false, align: 'center',
168
+			sortable: false, editable: false, edittype: 'text',
169
+			editrules: {required: false}
170
+		},
171
+		{
172
+			index: 'WHS_NM', name: 'whsNm',
173
+			label: "창고명",
174
+			width: '10', fixed: false, align: 'center',
175
+			sortable: false, editable: false, edittype: 'text',
176
+			editrules: {required: false}
177
+		},
178
+		{
179
+			index: 'LOCATION_NM', name: 'locationNm',
180
+			label: "Location",
181
+			width: '10', fixed: false, align: 'center',
182
+			sortable: false, editable: false, edittype: 'text',
183
+			editrules: {required: false}
184
+		},
185
+		{
186
+			index: 'ITEM_ID', name: 'itemId',
187
+			label: "품목번호",
188
+			width: '12', fixed: false, align: 'center',
189
+			sortable: false, editable: false, edittype: 'text',
190
+			editrules: {required: false}
191
+		},
192
+		{
193
+			index: 'ITEM_NM', name: 'itemNm',
194
+			label: "품목명",
195
+			width: '10', fixed: false, align: 'center',
196
+			sortable: false, editable: false, edittype: 'text',
197
+			editrules: {required: false}
198
+		},
199
+		{
200
+			index: 'UNIT', name: 'unit',
201
+			label: "단위",
202
+			width: '8', fixed: false, align: 'center',
203
+			sortable: false, editable: false, edittype: 'text',
204
+			editrules: {required: false}
205
+		},
206
+		{
207
+			index: 'STCK_QTY', name: 'stckQty',
208
+			label: "현재고수량",
209
+			width: '8', fixed: false, align: 'center',
210
+			sortable: false, editable: false, edittype: 'text',
211
+			editrules: {required: false}
212
+		},
213
+		{
214
+			index: 'CDD_QTY', name: 'cddQty',
215
+			label: "실사수량",
216
+			width: '10', fixed: false, align: 'center',
217
+			sortable: false, editable: true, edittype: 'text',
218
+			editrules: {required: true}
219
+		}
220
+	]
221
+};
222
+
223
+require(['config'], function() {
224
+	require([
225
+	], function($) {
226
+		pageObj.init();
227
+	});
228
+});
229
+
230
+/*화면공통 Object*/
231
+let pageObj = {
232
+	init: function () {
233
+		this.ui.init();
234
+		this.event.init();
235
+	},
236
+	ui: {
237
+		init: function () {
238
+			this.view();
239
+			this.grid();
240
+			this.ready();
241
+		},
242
+		view: function() {
243
+			// 버튼 권한설정
244
+			fn_proc_btn_auth('STOCKMNG02010');
245
+			
246
+			// 브랜드ID 지정
247
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
248
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val(data.brandId);
249
+			
250
+			pageObj.fnWhsList(function() {
251
+				pageObj.fnLocationList();
252
+			}); // 창고리스트
253
+			
254
+			// 공통코드 표시
255
+			// fn_make_select(CODE_LIST, 'WHS_DVSN', 'ITP_FORM_STOCKMNG02010_WHS_DVSN');			
256
+
257
+			// 조회일자 지정
258
+			var now = new Date();
259
+			$('#ITP_TAB_STOCKMNG02010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
260
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
261
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_TO_DT').datepicker('setDate', new Date());
262
+			$('#ITP_FORM_STOCKMNG02010_DETAIL_CDD_DT').val(itp_fn_date_format(new Date(), 2));
263
+								
264
+		},
265
+		grid: function() {
266
+			itp_fn_jqgrid_resize(STOCKMNG02010_GRID_ID, STOCKMNG02010_GRID_LIST, 'lg');
267
+			listObj.empty.init();
268
+			itp_fn_fire_window_resize();
269
+		},
270
+		ready: function() {
271
+			listObj.init();
272
+		}
273
+	},
274
+	event: {
275
+		init: function () {
276
+			this.button();
277
+			this.change();
278
+		},
279
+		button: function () {
280
+			// 버튼 클릭 이벤트
281
+			$('button').each(function() {
282
+				var id = $(this).attr('id');
283
+				$(this).on('click', function() {
284
+					switch (id) {
285
+						case 'ITP_BTN_STOCKMNG02010_SRH'				: listObj.button.search();		break;	// 조회 버튼 클릭
286
+						case 'ITP_BTN_STOCKMNG02010_STOCK_CDD'			: listObj.button.fnStockCdd(); 	break;	// 재고실사 버튼
287
+						case 'ITP_BTN_STOCKMNG02010_CANCELLIST'			: stockCddObj.button.cancel(); 	break;	// 취소/목록 버튼
288
+						// case 'ITP_BTN_STOCKMNG02010_DELETE'				: 								break;	// 삭제 버튼
289
+						case 'ITP_BTN_STOCKMNG02010_SAVE'				: stockCddObj.button.save(); 		break;	// 저장 버튼
290
+						// case 'ITP_BTN_STOCKMNG02010_DETAIL_ADDROW'		: locInfoObj.button.addRow();	break;	// 상세:추가버튼
291
+						// case 'ITP_BTN_STOCKMNG02010_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
292
+					}
293
+				});
294
+			});
295
+
296
+			$('body').on('click', function(e) {
297
+				var gridId = STOCKMNG02010_DETAIL_GRID_ID.replace('#', '');
298
+				var rids = $(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
299
+				var last_row_id = rids[rids.length - 1];
300
+				itp_fn_grid_reset_selection(e, last_row_id, gridId, 'STOCKMNG02010_DETAIL');
301
+			});
302
+
303
+		}, 
304
+		change: function () {
305
+			// 창고 변경
306
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_WHS_ID').on('change', function() {
307
+				pageObj.fnLocationList(function() {
308
+					listObj.button.search(); // 조회	
309
+				}); // 로케이션 리스트
310
+			});
311
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_LOCATION').on('change', function() {
312
+				listObj.button.search(); // 조회
313
+			});
314
+			
315
+		}
316
+	},
317
+	switchScreen: function(mode) {
318
+		if(mode == 'LIST') { // 목록
319
+			$('#ITP_BTN_STOCKMNG02010_MODIFY').hide();
320
+			$('#ITP_BTN_STOCKMNG02010_CANCELLIST').hide();
321
+			$('#ITP_BTN_STOCKMNG02010_DELETE').hide();
322
+			$('#ITP_BTN_STOCKMNG02010_SAVE').hide();
323
+			
324
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG02010_SRH');
325
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG02010_STOCK_CDD');
326
+
327
+			$('#ITP_AJAX_STOCKMNG02010_LIST_CONTAINER').show();
328
+			$('#ITP_AJAX_STOCKMNG02010_DETAIL_CONTAINER').hide();
329
+			$('#ITP_AJAX_STOCKMNG02010_VIEW_CONTAINER').hide();
330
+		} else if(mode == 'ADD') { // 재고실사
331
+			ITP_FORM_STOCKMNG02010_DETAIL_IS_DUPLICATE = true;
332
+
333
+			$('#ITP_BTN_STOCKMNG02010_SRH').hide();
334
+			$('#ITP_BTN_STOCKMNG02010_MODIFY').hide();
335
+			$('#ITP_BTN_STOCKMNG02010_STOCK_CDD').hide();
336
+			$('#ITP_BTN_STOCKMNG02010_DELETE').hide();			
337
+			
338
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG02010_CANCELLIST');
339
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG02010_SAVE');
340
+
341
+			$('#ITP_AJAX_STOCKMNG02010_LIST_CONTAINER').hide();
342
+			$('#ITP_AJAX_STOCKMNG02010_DETAIL_CONTAINER').show();
343
+			$('#ITP_AJAX_STOCKMNG02010_VIEW_CONTAINER').hide();
344
+						
345
+			$('#ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID').val($('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val());
346
+			$('#ITP_FORM_STOCKMNG02010_DETAIL_STORE_ID').val($('#ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID').val());
347
+			$('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID').val($('#ITP_FORM_STOCKMNG02010_SEARCH_WHS_ID').val());
348
+			$('#ITP_FORM_STOCKMNG02010_DETAIL_LOCATION').val($('#ITP_FORM_STOCKMNG02010_SEARCH_LOCATION').val());
349
+			
350
+		} else if(mode == 'VIEW') { // 보기
351
+			$('#ITP_BTN_STOCKMNG02010_SRH').hide();
352
+			$('#ITP_BTN_STOCKMNG02010_STOCK_CDD').hide();
353
+			$('#ITP_BTN_STOCKMNG02010_DELETE').hide();
354
+			$('#ITP_BTN_STOCKMNG02010_SAVE').hide();
355
+			
356
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG02010_MODIFY');
357
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG02010_CANCELLIST');
358
+
359
+			$('#ITP_AJAX_STOCKMNG02010_LIST_CONTAINER').hide();
360
+			$('#ITP_AJAX_STOCKMNG02010_DETAIL_CONTAINER').hide();
361
+			$('#ITP_AJAX_STOCKMNG02010_VIEW_CONTAINER').show();
362
+		}
363
+	}, 
364
+	fnWhsList: function(fnCall) {
365
+		const brandIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val();	
366
+		const param = {sbrandId: brandIdVal, pagingYn: false};
367
+		
368
+		fn_ajax_call(WHS_MNG_DETAIL_GRID_LIST, JSON.stringify(param), function(result) {
369
+			
370
+			fn_make_select_whs(result.gridRows, 'ITP_FORM_STOCKMNG02010_SEARCH_WHS_ID');
371
+			fn_make_select_whs(result.gridRows, 'ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID');
372
+			
373
+			if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
374
+					
375
+		}, 'POST');
376
+	}, 
377
+	fnLocationList: function(fnCall) {
378
+		const brandIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val();	
379
+		const whsIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_WHS_ID').val();	
380
+		const param = {brandId: brandIdVal, whsId: whsIdVal, pagingYn: false};
381
+		
382
+		fn_ajax_call(WHS_MNG_LOCATION_GRID_LIST, JSON.stringify(param), function(result) {
383
+			
384
+			fn_make_select_location(result.gridRows, 'ITP_FORM_STOCKMNG02010_SEARCH_LOCATION');
385
+			fn_make_select_location(result.gridRows, 'ITP_FORM_STOCKMNG02010_DETAIL_LOCATION');
386
+			
387
+			if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
388
+					
389
+		}, 'POST');
390
+	}
391
+};
392
+
393
+/*목록화면 Object*/
394
+let listObj = {
395
+	init: function () {
396
+		this.grid.init();
397
+	},
398
+	itp_STOCKMNG02010_search: false,
399
+	button: {
400
+		search: function() {
401
+			listObj.itp_STOCKMNG02010_search = true;
402
+			let param = $('#ITP_FORM_STOCKMNG02010_SEARCH').serializeObject();
403
+			param.gridSize = $.jgrid.defaults.rowNum;
404
+			param.gridPage = $.jgrid.defaults.page;
405
+			$(STOCKMNG02010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
406
+		},
407
+		fnStockCdd: function() {
408
+			pageObj.switchScreen('ADD');			
409
+			itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG02010_DETAIL');						
410
+			stockCddObj.init();
411
+		}
412
+	},
413
+	empty: {
414
+		init: function() {
415
+			var _this = this;
416
+			this.push();
417
+			$(STOCKMNG02010_GRID_EMPTY).on('click', function() {
418
+				_this.back();
419
+				_this.itp_STOCKMNG02010_param.gridSize = $.jgrid.defaults.rowNum;
420
+				$(STOCKMNG02010_GRID_ID).setGridParam({'postData': JSON.stringify(_this.itp_STOCKMNG02010_param)}).trigger('reloadGrid');
421
+			});
422
+		},
423
+		itp_STOCKMNG02010_param: {},
424
+		push: function() {
425
+			let param = $('#ITP_FORM_STOCKMNG02010_SEARCH').serializeObject();
426
+			listObj.itp_STOCKMNG02010_param = param;
427
+		},
428
+		back: function() {
429
+			$('#ITP_FORM_STOCKMNG02010_DEVI_TP_CD').val(this.itp_STOCKMNG02010_param.deviTpCd);
430
+			$('#ITP_FORM_STOCKMNG02010_ORDER_YN').val(this.itp_STOCKMNG02010_param.orderYn);
431
+			$('#ITP_FORM_STOCKMNG02010_ADT_AUTH_CD').val(this.itp_STOCKMNG02010_param.adtAuthCd);
432
+			$('#ITP_FORM_STOCKMNG02010_EMAIL_RCV_YN').val(this.itp_STOCKMNG02010_param.emailRcvYn);
433
+			$('#ITP_FORM_STOCKMNG02010_MEMB_EXIT_DT').val(this.itp_STOCKMNG02010_param.membExitDt);
434
+			$('#ITP_FORM_STOCKMNG02010_FROM_DT').val(this.itp_STOCKMNG02010_param.fromDt);
435
+			$('#ITP_FORM_STOCKMNG02010_TO_DT').val(this.itp_STOCKMNG02010_param.toDt);
436
+			$('#ITP_FORM_STOCKMNG02010_KEYWORD').val(this.itp_STOCKMNG02010_param.keyword);
437
+		}
438
+	},
439
+	grid: {
440
+		init: function () {
441
+			// 데이터 없을때
442
+			listObj.empty.push();
443
+			this.search();
444
+		},
445
+		colModel: gridColModel.list,
446
+		search: function() {
447
+			pageObj.switchScreen('LIST');
448
+			this.unload();
449
+			this.load();
450
+		},
451
+		load: function() {
452
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
453
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val(data.brandId);
454
+			
455
+			let param = $('#ITP_FORM_STOCKMNG02010_SEARCH').serializeObject();
456
+			param.gridSize = $.jgrid.defaults.rowNum;
457
+
458
+			var option = {
459
+				gridId: STOCKMNG02010_GRID_ID,
460
+				colModel: gridColModel.list,
461
+				param: JSON.stringify(param),
462
+				url: DOMAIN + STOCK_CDD_DETAIL_GRID_LIST,
463
+				pager: STOCKMNG02010_GRID_PAGER,
464
+				onCellSelect: function(rowId, cellIdx, cellValue) {
465
+					var cm = $(this).jqGrid('getGridParam', 'colModel');
466
+					var colNm = cm[cellIdx].name;
467
+					if (colNm == 'whsNm') {
468
+						const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
469
+						const whsIdVal = $(this).jqGrid('getCell', rowId, 'whsId');
470
+						
471
+						const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
472
+						var param = $.param(key);
473
+						viewObj.init(param);
474
+					}
475
+				},
476
+				loadComplete: function(data) {
477
+					console.log(data);
478
+					itp_fn_grid_load_complete(data, STOCKMNG02010_GRID_ID, true, 'number', 'STOCKMNG02010', listObj.itp_STOCKMNG02010_search, listObj.empty, true, data.gridRecords, true);
479
+					var ids = $(STOCKMNG02010_GRID_ID).getDataIDs();
480
+					$.each(ids, function(idx, rowId) {
481
+						$(STOCKMNG02010_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', ITP_GRID_COL_STYLE.link);
482
+					});
483
+				},
484
+				onPaging: function(action) {
485
+					itp_fn_grid_paging(STOCKMNG02010_GRID_ID, action, param);
486
+				}
487
+			};
488
+			itp_fn_grid_make_remote(option);
489
+		},
490
+		clearData : function() {
491
+			$(STOCKMNG02010_GRID_ID).jqGrid('clearGridData', true);
492
+			$(STOCKMNG02010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
493
+			$(STOCKMNG02010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
494
+			$(STOCKMNG02010_GRID_EMPTY).show();
495
+		},
496
+		unload : function() {
497
+			$.jgrid.gridUnload(STOCKMNG02010_GRID_ID);
498
+		}
499
+	}
500
+};
501
+
502
+/*상세화면 Object*/
503
+let viewObj = {
504
+	init: function (param) {
505
+		this.load(param);
506
+	},
507
+	load: function(param) {
508
+		fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
509
+	},
510
+	callback: function (result) {
511
+		// console.log(result);
512
+		pageObj.switchScreen('VIEW');
513
+		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_BRAND_ID').val(result.brandId);
514
+		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_STORE_ID').val(result.storeId);
515
+		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_WHS_ID').val(result.whsId);
516
+		
517
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnBrandNm').text(result.brandNm);
518
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnStCd').text(result.whsStNm);
519
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsId').text(result.whsId);
520
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsNm').text(result.whsNm);
521
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnTelNo').text(result.mgrTelNo);
522
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnMgrNm').text(result.mgrNm);		
523
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnSpplyNm').text(result.storeNm ? result.storeNm : '');		
524
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnRegDtm').text(result.sysRegDttm);
525
+		if(result.zipNo) {
526
+			$('#ITP_FORM_STOCKMNG02010_VIEW .fnAddress').text('('+result.zipNo+') ' + result.addr1 + ' ' + result.addr2);	
527
+		}		
528
+
529
+		// 권한정보 리스트 조회
530
+		viewObj.grid.init();
531
+	},
532
+	grid: {
533
+		init: function() {
534
+			this.unload();
535
+			this.load();
536
+		},
537
+		load : function() {
538
+			let param = $('#ITP_FORM_STOCKMNG02010_VIEW').serializeObject();
539
+			param.gridSize = $.jgrid.defaults.rowNum;
540
+			param.pagingYn = false; // 페이징안함
541
+
542
+			var option = {
543
+				gridId: STOCKMNG02010_VIEW_GRID_ID,
544
+				colModel: gridColModel.view,
545
+				param: JSON.stringify(param),
546
+				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
547
+				pager: STOCKMNG02010_VIEW_GRID_PAGER,
548
+				loadComplete: function(data) {
549
+					itp_fn_grid_load_complete(data, STOCKMNG02010_VIEW_GRID_ID, true, undefined, 'STOCKMNG02010_VIEW');
550
+				},
551
+				onPaging: function(action) {
552
+					var pagingFn = {
553
+						callBack: function(args) {
554
+							$(args).trigger('reloadGrid');
555
+						}
556
+					};
557
+					if (itp_fn_check_grid_is_writing(STOCKMNG02010_VIEW_GRID_ID)) {
558
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG02010_VIEW_GRID_ID);
559
+						return 'stop';
560
+					} else {
561
+						itp_fn_grid_paging(STOCKMNG02010_VIEW_GRID_ID, action, param);
562
+					}
563
+				},
564
+				onSortCol: function(index, columnIndex, sortOrder) {
565
+					var sortingFn = {
566
+						callBack: function(args) {
567
+							$(args).trigger('reloadGrid');
568
+						}
569
+					};
570
+					if (itp_fn_check_grid_is_writing(STOCKMNG02010_VIEW_GRID_ID)) {
571
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG02010_VIEW_GRID_ID);
572
+						return 'stop';
573
+					} else {
574
+						itp_fn_grid_sorting(STOCKMNG02010_VIEW_GRID_ID, index, sortOrder);
575
+					}
576
+				}
577
+			};
578
+			itp_fn_grid_make_remote(option);
579
+		},
580
+		clearData : function() {
581
+			$(STOCKMNG02010_VIEW_GRID_ID).jqGrid('clearGridData', true);
582
+			$(STOCKMNG02010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
583
+			$(STOCKMNG02010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
584
+			$(STOCKMNG02010_VIEW_GRID_EMPTY).show();
585
+		},
586
+		unload : function() {
587
+			$.jgrid.gridUnload(STOCKMNG02010_VIEW_GRID_ID);
588
+		}
589
+	}
590
+};
591
+
592
+/*재고실사 Object*/
593
+let stockCddObj = {
594
+	init: function () {
595
+		this.unload();
596
+		this.load();
597
+	},
598
+	button: {
599
+		cancel: function() {
600
+			listObj.grid.search();
601
+		},
602
+		save: function() {
603
+			var detailViewCd = $('#ITP_FORM_STOCKMNG02010_DETAIL_VIEW_CD').val();
604
+			const formId = '#ITP_FORM_STOCKMNG02010_DETAIL';
605
+			itp_fn_form_clear_validate(null, formId);
606
+			
607
+			var vali_whsStatCd = itp_fn_form_validate(formId, formId + '_WHS_ST_CD', ['empty'], undefined); // 상태
608
+			var vali_whsNm = itp_fn_form_validate(formId, formId + '_WHS_NM', ['empty'], undefined);
609
+			
610
+			if (vali_whsStatCd && vali_whsNm) {
611
+				let gridInsertData = [];
612
+				let gridUpdateData = [];
613
+				let gridDeleteData = [];
614
+				const rowData = $(STOCKMNG02010_DETAIL_GRID_ID).getRowData();
615
+				// const keyValue = $(formId + '_WHS_ID').val();
616
+				$.each(rowData, function(key, value) {
617
+					if (value.viewCd != 'R') {
618
+						// value.whsId = keyValue;
619
+						if (value.viewCd == 'C') {
620
+							gridInsertData.push(value);
621
+						} else if (value.viewCd == 'U') {
622
+							gridUpdateData.push(value);
623
+						} else if (value.viewCd == 'D') {
624
+							gridDeleteData.push(value);
625
+						}
626
+					}
627
+				});
628
+				let param = $(formId).serializeObject();
629
+				param.gridInsertData = gridInsertData;
630
+				param.gridUpdateData = gridUpdateData;
631
+				param.gridDeleteData = gridDeleteData;
632
+				//console.log(JSON.stringify(param));
633
+				var searhFn = function() {
634
+					ITP_FORM_STOCKMNG02010_DETAIL_IS_WRITING = false;
635
+					listObj.grid.search();
636
+				};
637
+				fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
638
+			}
639
+		}
640
+	},
641
+	load: function () {
642
+		let param = $('#ITP_FORM_STOCKMNG02010_DETAIL').serializeObject();
643
+		param.gridSize = $.jgrid.defaults.rowNum;
644
+		param.pagingYn = false; // 페이지안함
645
+
646
+		var option = {
647
+			gridId: STOCKMNG02010_DETAIL_GRID_ID,
648
+			colModel: gridColModel.detail,
649
+			param: JSON.stringify(param),
650
+			url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
651
+			pager: STOCKMNG02010_DETAIL_GRID_PAGER,
652
+			multiselect: true,
653
+			loadComplete: function(data) {
654
+				itp_fn_grid_load_complete(data, STOCKMNG02010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG02010_DETAIL');
655
+			},
656
+			onPaging: function(action) {
657
+				var pagingFn = {
658
+					callBack: function(args) {
659
+						$(args).trigger('reloadGrid');
660
+					}
661
+				};
662
+				if (itp_fn_check_grid_is_writing(STOCKMNG02010_DETAIL_GRID_ID)) {
663
+					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG02010_DETAIL_GRID_ID);
664
+					return 'stop';
665
+				} else {
666
+					itp_fn_grid_paging(STOCKMNG02010_DETAIL_GRID_ID, action, param);
667
+				}
668
+			},
669
+			onSortCol: function(index, columnIndex, sortOrder) {
670
+				var sortingFn = {
671
+					callBack: function(args) {
672
+						$(args).trigger('reloadGrid');
673
+					}
674
+				};
675
+				if (itp_fn_check_grid_is_writing(STOCKMNG02010_DETAIL_GRID_ID)) {
676
+					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG02010_DETAIL_GRID_ID);
677
+					return 'stop';
678
+				} else {
679
+					itp_fn_grid_sorting(STOCKMNG02010_DETAIL_GRID_ID, index, sortOrder);
680
+				}
681
+			}
682
+		};
683
+		itp_fn_grid_make_remote(option);
684
+	},
685
+	clearData : function() {
686
+		$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
687
+		$(STOCKMNG02010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
688
+		$(STOCKMNG02010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
689
+		$(STOCKMNG02010_DETAIL_GRID_EMPTY).show();
690
+	},
691
+	unload : function() {
692
+		$.jgrid.gridUnload(STOCKMNG02010_DETAIL_GRID_ID);
693
+	}
694
+};