Sfoglia il codice sorgente

Merge branch 'master' of http://106.246.249.162:13000/orderqueen/oqpo-view

juney 2 anni fa
parent
commit
d3203dd398
35 ha cambiato i file con 2589 aggiunte e 614 eliminazioni
  1. 12 21
      bin/src/main/webapp/app/oper/OPER03010.html
  2. 14 14
      bin/src/main/webapp/app/oper/OPER06010.html
  3. 1 0
      bin/src/main/webapp/app/popup/biz/BIZPOP_PO_STOCK_PROC.html
  4. 41 0
      bin/src/main/webapp/app/popup/biz/BIZPOP_STORE_ITEM.html
  5. 36 0
      bin/src/main/webapp/app/popup/biz/BIZPOP_STORE_SPPLY.html
  6. 2 2
      bin/src/main/webapp/app/stinfo/STINFO01010.html
  7. 101 44
      bin/src/main/webapp/app/stinfo/STINFO02010.html
  8. 44 22
      bin/src/main/webapp/app/stinfo/STINFO03010.html
  9. 48 37
      bin/src/main/webapp/app/stinfo/STINFO04010.html
  10. 21 19
      bin/src/main/webapp/app/stinfo/STINFO05010.html
  11. 4 2
      bin/src/main/webapp/app/stinfo/STINFO06010.html
  12. 2 0
      bin/src/main/webapp/app/stinfo/STINFO07010.html
  13. 203 0
      bin/src/main/webapp/app/stockmng/STOCKMNG04011.html
  14. 1 0
      bin/src/main/webapp/js/app/config.js
  15. 10 0
      bin/src/main/webapp/js/app/kakao.map.js
  16. 2 3
      bin/src/main/webapp/js/app/oper/ITP_OPER03010.js
  17. 25 36
      bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_ITEM_CLASS_MANAGE.js
  18. 5 2
      bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_PROC.js
  19. 115 0
      bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_STORE_ITEM.js
  20. 122 0
      bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_STORE_SPPLY.js
  21. 6 2
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO01010.js
  22. 39 52
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO02010.js
  23. 77 75
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO03010.js
  24. 94 88
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO04010.js
  25. 97 37
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO05010.js
  26. 8 0
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO06010.js
  27. 8 0
      bin/src/main/webapp/js/app/stinfo/ITP_STINFO07010.js
  28. 8 4
      bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG01010.js
  29. 8 6
      bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG02010.js
  30. 7 7
      bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG04010.js
  31. 498 0
      bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG04011.js
  32. 37 123
      src/main/webapp/app/loanmng/LOANMNG01010.html
  33. 1 5
      src/main/webapp/app/stockmng/STOCKMNG04011.html
  34. 833 0
      src/main/webapp/js/app/loanmng/ITP_LOANMNG01010.js
  35. 59 13
      src/main/webapp/js/app/stockmng/ITP_STOCKMNG04011.js

+ 12 - 21
bin/src/main/webapp/app/oper/OPER03010.html

@@ -86,7 +86,7 @@
86 86
 											<div class="col-xs-4 itp_ip">
87 87
 												<div class="col-xs-4 itp_in">
88 88
 													<div class="input-group">
89
-														<input type="text" id="ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY" class="form-control itp_input" name="afflAbbr" value="" maxlength="3" readonly>
89
+														<input type="text" id="ITP_FORM_OPER03010_DETAIL_AFFL_SHOP_KEY" data-check-required="empty" class="form-control itp_input" name="afflAbbr" value="" maxlength="3" readonly>
90 90
 														<span class="input-group-btn">
91 91
 															<button id="ITP_BTN_OPER03010_DETAIL_AFFL_SHOP_KEY" class="btn btn-default btn-sm itp_btn SHOW" type="button" disabled><i class="glyphicon glyphicon-ok"></i></button>
92 92
 														</span>
@@ -94,20 +94,11 @@
94 94
 												</div>
95 95
 											</div>
96 96
 										</div>
97
-										<!--<div class="form-group">
98
-											<label class="col-xs-2 itp_lb">비밀번호</label>
99
-											<div class="col-xs-4 itp_ip">
100
-												<div class="col-xs-7 itp_in">
101
-													<input type="password" id="ITP_FORM_OPER03010_DETAIL_PSWD" class="form-control itp_input" name="pswd" value="">
102
-												</div>
103
-												<button type="button" id="ITP_BTN_OPER01010_DETAIL_RESET_PW" class="btn btn-danger btn-sm PWC" style="margin: -1px 0px 0px 3px;">비밀번호 초기화</button>
104
-											</div>
105
-										</div>-->
106 97
 										<div class="form-group">
107 98
 											<label class="col-xs-2 itp_lb">사업자번호 *</label>
108 99
 											<div class="col-xs-4 itp_ip">
109 100
 												<div class="col-xs-6 itp_in">
110
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_BSNS_REG_NO" class="form-control itp_input" name="bsnsRegNo" value="">
101
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_BSNS_REG_NO" data-check-required="empty,number" class="form-control itp_input" name="bsnsRegNo" value="">
111 102
 												</div>
112 103
 											</div>
113 104
 											<label class="col-xs-2 itp_lb">법인번호</label>
@@ -134,7 +125,7 @@
134 125
 											<label class="col-xs-2 itp_lb">전화번호 *</label>
135 126
 											<div class="col-xs-4 itp_ip">
136 127
 												<div class="col-xs-7 itp_in">
137
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_TEL_NO" class="form-control itp_input" name="rprstTelNo" value="">
128
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_TEL_NO" data-check-required="empty" class="form-control itp_input" name="rprstTelNo" value="">
138 129
 												</div>
139 130
 											</div>
140 131
 											<label class="col-xs-2 itp_lb" style="border-top:none;">가맹점 로고</label>
@@ -170,7 +161,7 @@
170 161
 											<label class="col-xs-2 itp_lb">이메일 *</label>
171 162
 											<div class="col-xs-4 itp_ip">
172 163
 												<div class="col-xs-7 itp_in">
173
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="rprstEmai" value="">
164
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_EMAL_ADDR" data-check-required="empty" class="form-control itp_input" name="rprstEmai" value="">
174 165
 												</div>
175 166
 											</div>
176 167
 											<label class="col-xs-2 itp_lb">업태</label>
@@ -184,7 +175,7 @@
184 175
 											<label class="col-xs-2 itp_lb">대표자명 *</label>
185 176
 											<div class="col-xs-4 itp_ip">
186 177
 												<div class="col-xs-7 itp_in">
187
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_OWNER_NM" class="form-control itp_input" name="ownerNm" value="">
178
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_OWNER_NM" data-check-required="empty" class="form-control itp_input" name="ownerNm" value="">
188 179
 												</div>
189 180
 											</div>
190 181
 											<label class="col-xs-2 itp_lb">업종</label>
@@ -198,13 +189,13 @@
198 189
 											<label class="col-xs-2 itp_lb">대표자연락처 *</label>
199 190
 											<div class="col-xs-4 itp_ip">
200 191
 												<div class="col-xs-7 itp_in">
201
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_OWNER_TEL_NO" class="form-control itp_input" name="ownerTelNo" value="">
192
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_OWNER_TEL_NO" data-check-required="empty" class="form-control itp_input" name="ownerTelNo" value="">
202 193
 												</div>
203 194
 											</div>
204 195
 											<label class="col-xs-2 itp_lb">기업형태 *</label>
205 196
 											<div class="col-xs-4 itp_ip">
206 197
 												<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>
198
+													<select id="ITP_FORM_OPER03010_DETAIL_CORP_TYPE" data-select-code="CORP_TYPE" data-check-required="empty" class="form-control itp_input" name="corpType"></select>
208 199
 												</div>
209 200
 											</div>
210 201
 										</div>
@@ -213,9 +204,9 @@
213 204
 											<div class="col-xs-4 itp_ip">
214 205
 												<div class="col-xs-10 itp_in">
215 206
 													<div class="input-daterange input-group date">
216
-														<input type="text" id="ITP_FORM_OPER03010_SEARCH_JOIN_STT_DT" class="form-control itp_input" name="joinSttDt" value="" readonly>
207
+														<input type="text" id="ITP_FORM_OPER03010_SEARCH_JOIN_STT_DT" data-check-required="empty" class="form-control itp_input" name="joinSttDt" value="" readonly>
217 208
 														<span class="input-group-addon itp_date_to">~</span>
218
-														<input type="text" id="ITP_FORM_OPER03010_SEARCH_JOIN_END_DT" class="form-control itp_input" name="joinEndDt" value="" readonly>
209
+														<input type="text" id="ITP_FORM_OPER03010_SEARCH_JOIN_END_DT" data-check-required="empty" class="form-control itp_input" name="joinEndDt" value="" readonly>
219 210
 													</div>
220 211
 												</div>
221 212
 											</div>
@@ -229,16 +220,16 @@
229 220
 											<label class="col-xs-2 itp_lb">주소 *</label>
230 221
 											<div class="col-xs-10 itp_ip">
231 222
 												<div class="col-xs-1 itp_in">
232
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ZIPNO" class="form-control itp_input" name="zipNo" value="" maxlength="6" readonly placeholder="우편번호">													
223
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ZIPNO" data-check-required="empty" class="form-control itp_input" name="zipNo" value="" maxlength="6" readonly placeholder="우편번호">
233 224
 												</div>
234 225
 												<div class="col-xs-1 itp_in">
235 226
 													<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>
236 227
 												</div>
237 228
 												<div class="col-xs-4 itp_in" style="margin-right: 5px; margin-left:20px;">
238
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES" class="form-control itp_input" name="addr1" value="" readonly placeholder="기본주소">
229
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES" data-check-required="empty" class="form-control itp_input" name="addr1" value="" readonly placeholder="기본주소">
239 230
 												</div>
240 231
 												<div class="col-xs-4 itp_in">
241
-													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES_DTL" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">
232
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_ADRES_DTL" data-check-required="empty" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">
242 233
 												</div>
243 234
 												
244 235
 												<!-- 주소 맵 -->

+ 14 - 14
bin/src/main/webapp/app/oper/OPER06010.html

@@ -170,23 +170,23 @@
170 170
 											</div>
171 171
 										</div>
172 172
 									</div>
173
-										<div class="itp_form_in">	
174
-											<div class="form-group border">
175
-												<label class="col-xs-2 itp_lb">입금계좌정보</label>
176
-												<div class="col-xs-12 itp_ip">
177
-													<div class="col-xs-1 itp_in">
178
-														<select id="ITP_FORM_OPER06010_DETAIL_DPST_BNK_CD" data-select-code="BNK_CD" data-check-required="empty" class="form-control itp_input" name="bnkCd">
179
-														</select>
180
-													</div>
181
-													<div class="col-xs-4 itp_in">
182
-														<input type="text" id="ITP_FORM_OPER06010_DETAIL_RCV_ACCT_NO" data-check-required="empty" class="form-control itp_input" name="acctNo" value="" placeholder="계좌번호">
183
-													</div>
184
-													<div class="col-xs-2 itp_in">
185
-														<input type="text" id="ITP_FORM_OPER06010_DETAIL_OWAC_NM" data-check-required="empty" class="form-control itp_input" name="owacNm" value="" placeholder="예금주명">
186
-													</div>										
173
+									<div class="itp_form_in">
174
+										<div class="form-group border">
175
+											<label class="col-xs-2 itp_lb">입금계좌정보</label>
176
+											<div class="col-xs-12 itp_ip">
177
+												<div class="col-xs-1 itp_in">
178
+													<select id="ITP_FORM_OPER06010_DETAIL_DPST_BNK_CD" data-select-code="BNK_CD" data-check-required="empty" class="form-control itp_input" name="bnkCd">
179
+													</select>
180
+												</div>
181
+												<div class="col-xs-4 itp_in">
182
+													<input type="text" id="ITP_FORM_OPER06010_DETAIL_RCV_ACCT_NO" data-check-required="empty" class="form-control itp_input" name="acctNo" value="" placeholder="계좌번호">
183
+												</div>
184
+												<div class="col-xs-2 itp_in">
185
+													<input type="text" id="ITP_FORM_OPER06010_DETAIL_OWAC_NM" data-check-required="empty" class="form-control itp_input" name="owacNm" value="" placeholder="예금주명">
187 186
 												</div>
188 187
 											</div>
189 188
 										</div>
189
+									</div>
190 190
 									<div class="itp_form_in">
191 191
 										<div class="form-group border">
192 192
 											<label class="col-xs-2 itp_lb">주소</label>

+ 1 - 0
bin/src/main/webapp/app/popup/biz/BIZPOP_PO_STOCK_PROC.html

@@ -11,6 +11,7 @@
11 11
 						<div class="form-horizontal">
12 12
 							<form id="ITP_FORM_PO_STOCK_PROC_POPUP">
13 13
 								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID" name="brandId" value="">
14
+								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_STORE_ID" name="storeId" value="">
14 15
 								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_WHS_ID" name="sourceWhsId" value="">
15 16
 								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_LOCATION" name="sourceLocation" value="">
16 17
 								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_ID" name="itemId" value="">

+ 41 - 0
bin/src/main/webapp/app/popup/biz/BIZPOP_STORE_ITEM.html

@@ -0,0 +1,41 @@
1
+<div id="ITP_BIZPOP_STORE_ITEM" class="modal itp_modal">
2
+	<div class="modal-dialog">
3
+		<div class="modal-content">
4
+			<form id="ITP_FORM_BIZPOP_STORE_ITEM">
5
+				<input type="hidden" id="ITP_FORM_BIZPOP_STORE_ITEM_BRAND_ID" name="sbrandId" value="">
6
+				<input type="hidden" id="ITP_FORM_BIZPOP_STORE_ITEM_STORE_ID" name="sstoreId" value="">
7
+				<div class="modal-header">
8
+					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
9
+					<h5 class="modal-title">품목 검색</h5>
10
+				</div>
11
+				<div class="modal-body">
12
+					<div class="itp_form fix">
13
+						<div class="col-xs-12 itp_form_inline">
14
+							<div class="form-horizontal fix">
15
+								<div class="col-xs-4 itp_ip itp_pr">
16
+									<input type="text" name="sitemNm" id="ITP_FORM_BIZPOP_STORE_ITEM_NM" class="form-control itp_input" placeholder="품목코드,품목명">
17
+								</div>
18
+								<div class="col-xs-4 itp_ip itp_noMar">
19
+									<select id="ITP_FORM_BIZPOP_STORE_PODR_PSSBL_DVSN" data-select-code="PODR_PSSBL_DVSN" data-check-required="empty" class="form-control itp_input" name="spodrPssblDvsn">
20
+									</select>
21
+								</div>
22
+								<div class="pull-right itp_cicon">
23
+									<button type="button" class="btn btn-success btn-sm" id="ITP_BIZPOP_STORE_ITEM_BTN_SEARCH" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
24
+									<button type="button" class="btn btn-primary btn-sm" id="ITP_BIZPOP_STORE_ITEM_BTN_SELECT"><i class="glyphicon glyphicon-ok"></i> 선택</button>
25
+								</div>
26
+							</div>
27
+						</div>
28
+					</div>
29
+					<div id="ITP_BIZPOP_STORE_ITEM_jqGrid_list" class="itp_tb_list" data-total-cnt="">
30
+						<div id="ITP_BIZPOP_STORE_ITEM_jqGridView" class="itp_views fix"></div>
31
+						<table id="ITP_BIZPOP_STORE_ITEM_jqGrid"></table>
32
+						<div id="ITP_BIZPOP_STORE_ITEM_jqGridPager"></div>
33
+						<div id="ITP_BIZPOP_STORE_ITEM_jqGridEmpty" class="itp_no_data"></div>
34
+					</div>
35
+				</div>
36
+			</form>
37
+		</div>
38
+	</div>
39
+
40
+	<div id="ITP_POPUP_JS"></div>
41
+</div>

+ 36 - 0
bin/src/main/webapp/app/popup/biz/BIZPOP_STORE_SPPLY.html

@@ -0,0 +1,36 @@
1
+<div id="ITP_BIZPOP_STORE_SPPLY" class="modal itp_modal">
2
+	<div class="modal-dialog">
3
+		<div class="modal-content">
4
+			<form id="ITP_FORM_BIZPOP_STORE_SPPLY">
5
+				<input type="hidden" id="ITP_FORM_BIZPOP_STORE_SPPLY_BRAND_ID" name="sbrandId" value="">
6
+				<div class="modal-header">
7
+					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
8
+					<h5 class="modal-title">품목 검색</h5>
9
+				</div>
10
+				<div class="modal-body">
11
+					<div class="itp_form fix">
12
+						<div class="col-xs-12 itp_form_inline">
13
+							<div class="form-horizontal fix">
14
+								<div class="col-xs-9 itp_ip itp_pr">
15
+									<input type="text" name="sspplyNm" id="ITP_FORM_BIZPOP_STORE_SPPLY_NM" class="form-control itp_input" placeholder="공급업체명">
16
+								</div>
17
+								<div class="pull-right itp_cicon">
18
+									<button type="button" class="btn btn-success btn-sm" id="ITP_BIZPOP_STORE_SPPLY_BTN_SEARCH" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
19
+									<button type="button" class="btn btn-primary btn-sm" id="ITP_BIZPOP_STORE_SPPLY_BTN_SELECT"><i class="glyphicon glyphicon-ok"></i> 선택</button>
20
+								</div>
21
+							</div>
22
+						</div>
23
+					</div>
24
+					<div id="ITP_BIZPOP_STORE_SPPLY_jqGrid_list" class="itp_tb_list" data-total-cnt="">
25
+						<div id="ITP_BIZPOP_STORE_SPPLY_jqGridView" class="itp_views fix"></div>
26
+						<table id="ITP_BIZPOP_STORE_SPPLY_jqGrid"></table>
27
+						<div id="ITP_BIZPOP_STORE_SPPLY_jqGridPager"></div>
28
+						<div id="ITP_BIZPOP_STORE_SPPLY_jqGridEmpty" class="itp_no_data"></div>
29
+					</div>
30
+				</div>
31
+			</form>
32
+		</div>
33
+	</div>
34
+
35
+	<div id="ITP_POPUP_JS"></div>
36
+</div>

+ 2 - 2
bin/src/main/webapp/app/stinfo/STINFO01010.html

@@ -51,8 +51,8 @@
51 51
 						<div class="col-xs-12">
52 52
 							<form id="ITP_FORM_STINFO01010_DETAIL" class="form-horizontal">
53 53
 								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_VIEW_CD" name="viewCd" value="C">
54
-								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="C">
55
-								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_BRAND_ID" name="brandId" value="C">
54
+								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
55
+								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_BRAND_ID" name="brandId" value="">
56 56
 					
57 57
 								<section class="itp_form_sec">
58 58
 									<h4 class="itp_form_tit">브랜드 정보-신규</h4>

+ 101 - 44
bin/src/main/webapp/app/stinfo/STINFO02010.html

@@ -9,7 +9,7 @@
9 9
 					<button type="button" id="ITP_BTN_STINFO02010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;신규등록&nbsp;&nbsp;</button>
10 10
 					<button type="button" id="ITP_BTN_STINFO02010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon"></i>&nbsp;&nbsp;저장&nbsp;&nbsp;</button>
11 11
 					<button type="button" id="ITP_BTN_STINFO02010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon"></i>&nbsp;&nbsp;취소/목록&nbsp;&nbsp;</button>
12
-				</div>		
12
+				</div>
13 13
 			</div>
14 14
 			<div class="itp_det_in">
15 15
 				<div id="ITP_AJAX_STINFO02010_LIST_CONTAINER">
@@ -20,19 +20,20 @@
20 20
 									<div class="form-group">
21 21
 										<div class="col-xs-2 itp_ip itp_noMar">
22 22
 											<select id="ITP_FORM_STINFO02010_SERVICE_ST_DT" class="form-control itp_input" name="searchDateType">
23
+												<option value="">선택</option>
23 24
 												<option value="20">등록일</option>
24 25
 												<option value="10">오픈일</option>
25 26
 											</select>
26 27
 										</div>
27 28
 										<div class="col-xs-10 itp_ip itp_noMar">
28
-										<div class="col-xs-4 itp_ip">
29
-											<div class="input-daterange input-group date">
30
-												<input type="text" id="ITP_FORM_STINFO02010_SEARCH_REG_DT" class="form-control itp_input" name="fromDt" readonly>
31
-												<span class="input-group-addon itp_date_to">~</span>
32
-												<input type="text" id="ITP_FORM_STINFO02010_SEARCH_OPEN_DT" class="form-control itp_input" name="toDt" readonly>
29
+											<div class="col-xs-4 itp_ip">
30
+												<div class="input-daterange input-group date">
31
+													<input type="text" id="ITP_FORM_STINFO02010_SEARCH_REG_DT" class="form-control itp_input" name="fromDt" readonly>
32
+													<span class="input-group-addon itp_date_to">~</span>
33
+													<input type="text" id="ITP_FORM_STINFO02010_SEARCH_OPEN_DT" class="form-control itp_input" name="toDt" readonly>
34
+												</div>
33 35
 											</div>
34 36
 										</div>
35
-										</div>
36 37
 									</div>
37 38
 									<div class="form-group" style="padding-top: 10px; border-top: 1px dotted #ccc;">
38 39
 										<div class="col-xs-2 itp_ip itp_noMar">
@@ -72,7 +73,8 @@
72 73
 						<div class="col-xs-12">
73 74
 							<form id="ITP_FORM_STINFO02010_DETAIL" class="form-horizontal">
74 75
 								<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_VIEW_CD" name="viewCd" value="R">
75
- 								<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_BRAND_ID" name="brandId" value="">
76
+								<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
77
+								<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_BRAND_ID" name="brandId" value="">
76 78
 								<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_STORE_ID" name="storeId" value="">
77 79
 								<section class="itp_form_sec">
78 80
 									<h4 class="itp_form_tit">매장정보-신규</h4>
@@ -85,7 +87,7 @@
85 87
 											<label class="col-xs-2 itp_lb">상태 *</label>
86 88
 											<div class="col-xs-4 itp_ip">
87 89
 												<div class="col-xs-7 itp_in">
88
-								                	<select id="ITP_FORM_STINFO02010_DETAIL_STORE_ST_CD" data-select-code="ST_CD" data-check-required="empty" class="form-control itp_input" name="stCd"></select>
90
+													<select id="ITP_FORM_STINFO02010_DETAIL_STORE_ST_CD" data-select-code="STORE_ST_CD" data-check-required="empty" class="form-control itp_input" name="stCd"></select>
89 91
 												</div>
90 92
 											</div>
91 93
 										</div>
@@ -99,7 +101,7 @@
99 101
 											<label class="col-xs-2 itp_lb">매장구분 *</label>
100 102
 											<div class="col-xs-4 itp_ip">
101 103
 												<div class="col-xs-7 itp_in">
102
-								                <select id="ITP_FORM_STINFO02010_DETAIL_STORE_DVSN" data-select-code="STORE_DVSN" data-check-required="empty" class="form-control itp_input" name="storeDvsn"></select>
104
+													<select id="ITP_FORM_STINFO02010_DETAIL_STORE_DVSN" data-select-code="STORE_DVSN" data-check-required="empty" class="form-control itp_input" name="storeDvsn"></select>
103 105
 												</div>
104 106
 											</div>
105 107
 										</div>
@@ -115,7 +117,7 @@
115 117
 											<label class="col-xs-2 itp_lb">업태</label>
116 118
 											<div class="col-xs-4 itp_ip">
117 119
 												<div class="col-xs-7 itp_in">
118
-								                	<input type="text" id="ITP_FORM_STINFO02010_DETAIL_BSNS_CNDT" class="form-control itp_input" name="bsnsCndt" value="">
120
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_BSNS_CNDT" class="form-control itp_input" name="bsnsCndt" value="">
119 121
 												</div>
120 122
 											</div>
121 123
 										</div>
@@ -131,7 +133,7 @@
131 133
 											<label class="col-xs-2 itp_lb">업종</label>
132 134
 											<div class="col-xs-4 itp_ip">
133 135
 												<div class="col-xs-7 itp_in">
134
-								                	<input type="text" id="ITP_FORM_STINFO02010_DETAIL_CTGR_BSNS" class="form-control itp_input" name="ctgrBsns" value="">
136
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_CTGR_BSNS" class="form-control itp_input" name="ctgrBsns" value="">
135 137
 												</div>
136 138
 											</div>
137 139
 										</div>
@@ -147,7 +149,7 @@
147 149
 											<label class="col-xs-2 itp_lb">전화번호 *</label>
148 150
 											<div class="col-xs-4 itp_ip">
149 151
 												<div class="col-xs-7 itp_in">
150
-								                	<input type="text" id="ITP_FORM_STINFO02010_DETAIL_TEL_NO" data-check-required="empty" class="form-control itp_input" name="telNo" value="">
152
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_TEL_NO" data-check-required="empty" class="form-control itp_input" name="telNo" value="">
151 153
 												</div>
152 154
 											</div>
153 155
 										</div>
@@ -157,13 +159,13 @@
157 159
 											<label class="col-xs-2 itp_lb">점주/대표자명*</label>
158 160
 											<div class="col-xs-4 itp_ip">
159 161
 												<div class="col-xs-6 itp_in">
160
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_OWNER_NM" class="form-control itp_input" name="ownerNm" value="">
162
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_OWNER_NM" data-check-required="empty" class="form-control itp_input" name="ownerNm" value="">
161 163
 												</div>
162 164
 											</div>
163 165
 											<label class="col-xs-2 itp_lb">FAX</label>
164 166
 											<div class="col-xs-4 itp_ip">
165 167
 												<div class="col-xs-7 itp_in">
166
-								                	<input type="text" id="ITP_FORM_STINFO02010_DETAIL_FAX_NO" class="form-control itp_input" name="faxNo" value="">
168
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_FAX_NO" class="form-control itp_input" name="faxNo" value="">
167 169
 												</div>
168 170
 											</div>
169 171
 										</div>
@@ -179,7 +181,7 @@
179 181
 											<label class="col-xs-2 itp_lb">이메일</label>
180 182
 											<div class="col-xs-4 itp_ip">
181 183
 												<div class="col-xs-7 itp_in">
182
-								                	<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="emalAddr" value="">
184
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="emalAddr" value="">
183 185
 												</div>
184 186
 											</div>
185 187
 										</div>
@@ -189,15 +191,15 @@
189 191
 											<label class="col-xs-2 itp_lb">지역 *</label>
190 192
 											<div class="col-xs-4 itp_ip">
191 193
 												<div class="col-xs-6 itp_in">
192
-												<select id="ITP_FORM_STINFO02010_DETAIL_AREA_CD" data-select-code="AREA_CD" data-check-required="empty" class="form-control itp_input" name="areaCd">
193
-												</select>												
194
+													<select id="ITP_FORM_STINFO02010_DETAIL_AREA_CD" data-select-code="AREA_CD" data-check-required="empty" class="form-control itp_input" name="areaCd">
195
+													</select>
194 196
 												</div>
195 197
 											</div>
196 198
 											<label class="col-xs-2 itp_lb">오픈일</label>
197 199
 											<div class="col-xs-5 itp_ip">
198 200
 												<div class="col-xs-7 itp_in">
199
-									                <div class="input-daterange input-group date itp_in">
200
-														<input type="text" id="ITP_FORM_STINFO02010_DETAIL_FROM_DT" class="form-control itp_input" name="regDt" value="2022.08.10">
201
+													<div class="input-daterange input-group date itp_in">
202
+														<input type="text" id="ITP_FORM_STINFO02010_DETAIL_FROM_DT" class="form-control itp_input" name="openDt" value="2022.08.10">
201 203
 													</div>
202 204
 												</div>
203 205
 											</div>
@@ -205,37 +207,83 @@
205 207
 									</div>
206 208
 									<div class="itp_form_in">
207 209
 										<div class="form-group">
208
-											<label class="col-xs-2 itp_lb">브랜드 계좌정보</label>
209
-											<div class="col-xs-4 itp_ip">
210
-												<div class="col-xs-12 itp_in fbBrandAcctInfo"></div>
210
+											<label class="col-xs-2 itp_lb">매장계좌정보</label>
211
+											<div class="col-xs-12 itp_ip">
212
+												<div class="col-xs-1 itp_in">
213
+													<select id="ITP_FORM_STINFO02010_DETAIL_BNK_CD" data-select-code="BNK_CD" data-check-required="empty" class="form-control itp_input" name="bnkCd">
214
+													</select>
215
+												</div>
216
+												<div class="col-xs-4 itp_in">
217
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ACCT_NO" data-check-required="empty" class="form-control itp_input" name="acctNo" value="" placeholder="계좌번호">
218
+												</div>
219
+												<div class="col-xs-2 itp_in">
220
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_OWAC_NM" data-check-required="empty" class="form-control itp_input" name="owacNm" value="" placeholder="예금주명">
221
+												</div>
211 222
 											</div>
223
+										</div>
224
+									</div>
225
+									<div class="itp_form_in">
226
+										<div class="form-group">
212 227
 											<label class="col-xs-2 itp_lb">정산타입*</label>
213 228
 											<div class="col-xs-4 itp_ip">
214 229
 												<div class="col-xs-7 itp_in">
215
-													<select id="ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN" data-select-code="LOAN_DVSN" class="form-control itp_input" name="loanDvsn">
230
+													<select id="ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN" data-select-code="LOAN_DVSN" data-check-required="empty" class="form-control itp_input" name="loanDvsn">
216 231
 													</select>
217 232
 												</div>
218 233
 												<div class="col-xs-4 itp_in">
219
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_CREDT_LIMIT_AMT" class="form-control itp_input" name="credtLimitAmt" value="후불한도금액">
234
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_LIMIT_AMT" class="form-control itp_input" name="limitAmt" placeholder="후불한도금액">
235
+												</div>
236
+											</div>
237
+											<label class="col-xs-2 itp_lb">창고사용여부</label>
238
+											<div class="col-xs-4 itp_ip">
239
+												<div class="col-xs-7 itp_in">
240
+													<select id="ITP_FORM_STINFO02010_DETAIL_WHS_USE_YN" data-select-code="WHS_USE_YN" class="form-control itp_input" name="whsUseYn">
241
+													</select>
220 242
 												</div>
221 243
 											</div>
222 244
 										</div>
223 245
 									</div>
224
-									<div class="itp_form_in">	
246
+									<div class="itp_form_info">
247
+										<div class="itp_form_in">
248
+											<div class="form-group">
249
+												<label class="col-xs-2 itp_lb">입금계좌정보</label>
250
+												<div class="col-xs-4 itp_ip">
251
+													<div class="col-xs-12 itp_in fnBrandAcctInfo"></div>
252
+												</div>
253
+												<label class="col-xs-2 itp_lb">가수금액</label>
254
+												<div class="col-xs-4 itp_ip">
255
+													<div class="col-xs-12 itp_in fnAcctBal"></div>
256
+												</div>
257
+											</div>
258
+										</div>
259
+										<div class="itp_form_in">
260
+											<div class="form-group">
261
+												<label class="col-xs-2 itp_lb">현 잔여한도</label>
262
+												<div class="col-xs-4 itp_ip">
263
+													<div class="col-xs-12 itp_in fnTmpRcvAcctTotal"></div>
264
+												</div>
265
+												<label class="col-xs-2 itp_lb">수정일</label>
266
+												<div class="col-xs-4 itp_ip">
267
+													<div class="col-xs-12 itp_in fnSysChgDttm"></div>
268
+												</div>
269
+											</div>
270
+										</div>
271
+									</div>
272
+									<div class="itp_form_in">
225 273
 										<div class="form-group">
226 274
 											<label class="col-xs-2 itp_lb">주소 *</label>
227 275
 											<div class="col-xs-10 itp_ip">
228 276
 												<div class="col-xs-1 itp_in">
229
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ZIPNO" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호">
277
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ZIPNO" data-check-required="empty" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호">
230 278
 												</div>
231 279
 												<div class="col-xs-2 itp_in" style="width:10%;">
232 280
 													<button type="button" id="ITP_FORM_STINFO02010_DETAIL_ADRES_SCH" class="btn btn-primary btn-sm SHOW" style="margin: -1px 0px 0px 3px;">&nbsp;&nbsp;주소검색&nbsp;&nbsp;</button>
233 281
 												</div>
234 282
 												<div class="col-xs-4 itp_in" style="margin:0 5px;">
235
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ADRES" class="form-control itp_input" name="loadAddr" value="" placeholder="기본주소">
283
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ADRES" data-check-required="empty" class="form-control itp_input" name="addr1" value="" placeholder="기본주소">
236 284
 												</div>
237 285
 												<div class="col-xs-4 itp_in">
238
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ADRES_DTL" class="form-control itp_input" name="dtlAddr" value="" placeholder="상세주소">
286
+													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_ADRES_DTL" data-check-required="empty" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">
239 287
 												</div>
240 288
 											</div>
241 289
 										</div>
@@ -246,11 +294,11 @@
246 294
 											<div class="col-xs-10 itp_ip">
247 295
 												<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_LOTS_ADDRESS" value="" />
248 296
 												<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_STREET_ADDRESS" value="" />
249
-												<input type="hidden" name="cmpyLat" id="ITP_FORM_STINFO02010_DETAIL_LAT" value="" />
250
-												<input type="hidden" name="cmpyLng" id="ITP_FORM_STINFO02010_DETAIL_LNG" value="" />
297
+												<input type="hidden" name="latX" id="ITP_FORM_STINFO02010_DETAIL_LAT" value="" />
298
+												<input type="hidden" name="longY" id="ITP_FORM_STINFO02010_DETAIL_LNG" value="" />
251 299
 												<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_HJ_DONG" value="" />
252 300
 												<input type="hidden" id="ITP_FORM_STINFO02010_DETAIL_BJ_DONG" value="" />
253
-												<div id="ITP_FORM_STINFO02010_DETAIL_MAP" style="width:700px; height:400px;"></div>											
301
+												<div id="ITP_FORM_STINFO02010_DETAIL_MAP" style="width:700px; height:400px;"></div>
254 302
 											</div>
255 303
 										</div>
256 304
 									</div>
@@ -264,7 +312,7 @@
264 312
 						<div class="col-xs-12">
265 313
 							<form id="ITP_FORM_STINFO02010_VIEW" class="form-horizontal">
266 314
 								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_VIEW_CD" name="viewCd" value="R">
267
-								 <input type="hidden" id="ITP_FORM_STINFO02010_VIEW_STORE_ID" name="storeId" value="">
315
+								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_STORE_ID" name="storeId" value="">
268 316
 								<section class="itp_form_sec">
269 317
 									<h4 class="itp_form_tit">매장정보-상세</h4>
270 318
 									<div class="itp_form_in">
@@ -377,7 +425,7 @@
377 425
 											</div>
378 426
 										</div>
379 427
 									</div>
380
-									<div class="itp_form_in">	
428
+									<div class="itp_form_in">
381 429
 										<div class="form-group">
382 430
 											<label class="col-xs-2 itp_lb">주소 *</label>
383 431
 											<div class="col-xs-10 itp_ip">
@@ -397,7 +445,19 @@
397 445
 												<input type="hidden" name="cmpyLng" id="ITP_FORM_STINFO02010_VIEW_LNG" value="" />
398 446
 												<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_HJ_DONG" value="" />
399 447
 												<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_BJ_DONG" value="" />
400
-												<div id="ITP_FORM_STINFO02010_VIEW_MAP" style="width:700px; height:400px;"></div>	
448
+												<div id="ITP_FORM_STINFO02010_VIEW_MAP" style="width:700px; height:400px;"></div>
449
+											</div>
450
+										</div>
451
+									</div>
452
+									<div class="itp_form_in">
453
+										<div class="form-group">
454
+											<label class="col-xs-2 itp_lb">매장계좌정보</label>
455
+											<div class="col-xs-4 itp_ip">
456
+												<div class="col-xs-12 itp_in fnStoreAcctInfo"></div>
457
+											</div>
458
+											<label class="col-xs-2 itp_lb">정산타입</label>
459
+											<div class="col-xs-4 itp_ip">
460
+												<div class="col-xs-12 itp_in fnLoanDvsn"></div>
401 461
 											</div>
402 462
 										</div>
403 463
 									</div>
@@ -407,24 +467,21 @@
407 467
 											<div class="col-xs-4 itp_ip">
408 468
 												<div class="col-xs-12 itp_in fnBrandAcctInfo"></div>
409 469
 											</div>
410
-											<label class="col-xs-2 itp_lb">정산타입*</label>
470
+											<label class="col-xs-2 itp_lb">가수금액</label>
411 471
 											<div class="col-xs-4 itp_ip">
412
-												<div class="col-xs-7 itp_in fnLoanDvsn">
413
-												</div>
414
-												<div class="col-xs-4 itp_in fnCredtLimitAmt">
415
-												</div>
472
+												<div class="col-xs-12 itp_in fnAcctBal">(선입금일때 존재)</div>
416 473
 											</div>
417 474
 										</div>
418 475
 									</div>
419 476
 									<div class="itp_form_in">
420 477
 										<div class="form-group">
421
-											<label class="col-xs-2 itp_lb">가수금액</label>
478
+											<label class="col-xs-2 itp_lb">창고사용여부</label>
422 479
 											<div class="col-xs-4 itp_ip">
423
-												<div class="col-xs-12 itp_in fnTmpRcvAcct">(선입금일때 존재)</div>
480
+												<div class="col-xs-12 itp_in fnWhsUseYn"></div>
424 481
 											</div>
425 482
 											<label class="col-xs-2 itp_lb">현 잔여한도</label>
426 483
 											<div class="col-xs-4 itp_ip">
427
-												<div class="col-xs-7 itp_in fnRemainLimitAmt"></div>
484
+												<div class="col-xs-7 itp_in fnLimitAmt"></div>
428 485
 											</div>
429 486
 										</div>
430 487
 									</div>
@@ -432,7 +489,7 @@
432 489
 										<div class="form-group border">
433 490
 											<label class="col-xs-2 itp_lb">등록일</label>
434 491
 											<div class="col-xs-4 itp_ip">
435
-												<div class="col-xs-12 itp_in fnRegDt"></div>
492
+												<div class="col-xs-12 itp_in fnSysRegDttm"></div>
436 493
 											</div>
437 494
 											<label class="col-xs-2 itp_lb">폐점일</label>
438 495
 											<div class="col-xs-4 itp_ip">

+ 44 - 22
bin/src/main/webapp/app/stinfo/STINFO03010.html

@@ -49,6 +49,7 @@
49 49
 							<form id="ITP_FORM_STINFO03010_DETAIL" class="form-horizontal">
50 50
 								<input type="hidden" id="ITP_FORM_STINFO03010_DETAIL_VIEW_CD" name="viewCd" value="C">
51 51
 								<input type="hidden" id="ITP_FORM_STINFO03010_DETAIL_POP_NO" name="popNo" value="">
52
+								<input type="hidden" id="ITP_FORM_STINFO03010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
52 53
 								<input type="hidden" id="ITP_FORM_STINFO03010_DETAIL_BRAND_ID" name="brandId" value="">
53 54
 								<input type="hidden" id="ITP_FORM_STINFO03010_DETAIL_ACCT_FILE_NO" name="bsnsRegFileNo" value="">
54 55
 								<input type="hidden" id="ITP_FORM_STINFO03010_DETAIL_CORP_FILE_NO" name="bbookCopyFileNo" value="">
@@ -65,7 +66,7 @@
65 66
 											<label class="col-xs-2 itp_lb">상태 *</label>
66 67
 											<div class="4 itp_ip">
67 68
 												<div class="col-xs-8 itp_in">
68
-								                	<select id="ITP_FORM_STINFO03010_DETAIL_ST_CD" data-select-code="ST_CD" class="form-control itp_input" name="stCd">
69
+								                	<select id="ITP_FORM_STINFO03010_DETAIL_ST_CD" data-select-code="ST_CD" data-check-required="empty" class="form-control itp_input" name="stCd">
69 70
 													</select>
70 71
 												</div>
71 72
 											</div>
@@ -81,7 +82,7 @@
81 82
 											<label class="col-xs-2 itp_lb">기업형태 *</label>
82 83
 											<div class="col-xs-4 itp_ip">
83 84
 												<div class="col-xs-8 itp_in">
84
-								                <select id="ITP_FORM_STINFO03010_DETAIL_CORP_TYPE" data-select-code="CORP_TYPE" class="form-control itp_input" name="corpType">
85
+								                <select id="ITP_FORM_STINFO03010_DETAIL_CORP_TYPE" data-select-code="CORP_TYPE" data-check-required="empty" class="form-control itp_input" name="corpType">
85 86
 												</select>
86 87
 												</div>
87 88
 											</div>
@@ -92,7 +93,7 @@
92 93
 											<label class="col-xs-2 itp_lb">공급업체명 *</label>
93 94
 											<div class="col-xs-4 itp_ip">
94 95
 												<div class="col-xs-9 itp_in">
95
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_SPPLY_NM" class="form-control itp_input" name="spplyNm" value="">
96
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_SPPLY_NM" data-check-required="empty" class="form-control itp_input" name="spplyNm" value="">
96 97
 												</div>
97 98
 											</div>
98 99
 											<label class="col-xs-2 itp_lb">업태</label>
@@ -108,7 +109,7 @@
108 109
 											<label class="col-xs-2 itp_lb">사업자번호 *</label>
109 110
 											<div class="col-xs-4 itp_ip">
110 111
 												<div class="col-xs-6 itp_in">
111
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_BSNS_REG_NO" class="form-control itp_input" name="bsnsRegNo" value="">
112
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_BSNS_REG_NO" data-check-required="empty" class="form-control itp_input" name="bsnsRegNo" value="">
112 113
 												</div>
113 114
 											</div>
114 115
 											<label class="col-xs-2 itp_lb">업종</label>
@@ -130,7 +131,7 @@
130 131
 											<label class="col-xs-2 itp_lb">전화번호 *</label>
131 132
 											<div class="col-xs-4 itp_ip">
132 133
 												<div class="col-xs-8 itp_in">
133
-								                	<input type="text" id="ITP_FORM_STINFO03010_DETAIL_TEL_NO" class="form-control itp_input" name="telNo" value="">
134
+								                	<input type="text" id="ITP_FORM_STINFO03010_DETAIL_TEL_NO" data-check-required="empty" class="form-control itp_input" name="mgrTelNo" value="">
134 135
 												</div>
135 136
 											</div>
136 137
 										</div>
@@ -140,7 +141,7 @@
140 141
 											<label class="col-xs-2 itp_lb">대표자명*</label>
141 142
 											<div class="col-xs-4 itp_ip">
142 143
 												<div class="col-xs-6 itp_in">
143
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_OWNER_NM" class="form-control itp_input" name="ownerNm" value="">
144
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_OWNER_NM" data-check-required="empty" class="form-control itp_input" name="ownerNm" value="">
144 145
 												</div>
145 146
 											</div>
146 147
 											<label class="col-xs-2 itp_lb">FAX</label>
@@ -156,13 +157,13 @@
156 157
 											<label class="col-xs-2 itp_lb">핸드폰</label>
157 158
 											<div class="col-xs-4 itp_ip">
158 159
 												<div class="col-xs-6 itp_in">
159
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_MBL_NO" class="form-control itp_input" name="mblNo" value="">
160
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_MBL_NO" class="form-control itp_input" name="mgrMblNo" value="">
160 161
 												</div>
161 162
 											</div>
162 163
 											<label class="col-xs-2 itp_lb">이메일</label>
163 164
 											<div class="col-xs-4 itp_ip">
164 165
 												<div class="col-xs-8 itp_in">
165
-								                	<input type="text" id="ITP_FORM_STINFO03010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="emalAddr" value="">
166
+								                	<input type="text" id="ITP_FORM_STINFO03010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="mgrEmal" value="">
166 167
 												</div>
167 168
 											</div>
168 169
 										</div>
@@ -172,7 +173,7 @@
172 173
 											<label class="col-xs-2 itp_lb">지역 *</label>
173 174
 											<div class="col-xs-4 itp_ip">
174 175
 												<div class="col-xs-6 itp_in">
175
-              										<select id="ITP_FORM_STINFO03010_DETAIL_AREA_CD" data-select-code="AREA_CD" class="form-control itp_input" name="areaCd">
176
+              										<select id="ITP_FORM_STINFO03010_DETAIL_AREA_CD" data-select-code="AREA_CD" data-check-required="empty" class="form-control itp_input" name="areaCd">
176 177
 													</select>												
177 178
 												</div>
178 179
 											</div>
@@ -205,47 +206,68 @@
205 206
 										<div class="form-group">
206 207
 											<label class="col-xs-2 itp_lb">통장사본</label>
207 208
 											<div class="col-xs-4 itp_ip">
208
-												<div class="col-xs-6 itp_in">
209
+												<div class="col-xs-6 itp_in" style="padding-right:5px;">
210
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ACCT_FILE_PATH" class="form-control itp_input" name="FilePath" value="">
209 211
 												</div>
210
-												<div class="col-xs-6 itp_in" >
212
+												<div class="col-xs-6 itp_in">
211 213
 													<div class="fileupload-wrapper">
212 214
 														<!-- data-show-yn: 파일업로드를 할 수 있는 권한이 있는지 없는지.. -->
213
-														<div id="ITP_STINFO03010_DETAIL_BTN_ACCT_FILE" data-show-yn="Y"></div>
215
+														<div id="ITP_STINFO03010_DETAIL_ACCT_FILE_UPLOAD" data-show-yn="Y"></div>
214 216
 													</div>
215 217
 												</div>
216 218
 											</div>
217
-											<label class="col-xs-2 itp_lb">사업자등록파일</label>
219
+											<label class="col-xs-2 itp_lb">통장사본</label>
218 220
 											<div class="col-xs-4 itp_ip">
219
-												<div class="col-xs-8 itp_in">
221
+												<div class="col-xs-6 itp_in" style="padding-right:5px;">
222
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_CORP_FILE_PATH" class="form-control itp_input" name="FilePath" value="">
220 223
 												</div>
221
-												<div class="col-xs-4 itp_in">
224
+												<div class="col-xs-6 itp_in">
222 225
 													<div class="fileupload-wrapper">
223 226
 														<!-- data-show-yn: 파일업로드를 할 수 있는 권한이 있는지 없는지.. -->
224
-														<div id="ITP_STINFO03010_DETAIL_BTN_CORP_FILE" data-show-yn="Y"></div>
227
+														<div id="ITP_STINFO03010_DETAIL_CORP_FILE_UPLOAD" data-show-yn="Y"></div>
225 228
 													</div>
226 229
 												</div>
227 230
 											</div>
228 231
 										</div>
229 232
 									</div>
230
-									<div class="itp_form_in">	
233
+									<div class="itp_form_in">
231 234
 										<div class="form-group">
232
-											<label class="col-xs-2 itp_lb">주소</label>
235
+											<label class="col-xs-2 itp_lb">주소 *</label>
233 236
 											<div class="col-xs-10 itp_ip">
234 237
 												<div class="col-xs-1 itp_in">
235
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ZIP_NO" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호">													
238
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ZIPNO" data-check-required="empty" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호">
236 239
 												</div>
237 240
 												<div class="col-xs-2 itp_in" style="width:10%;">
238
-													<button type="button" id="ITP_FORM_STINFO03010_DETAIL_ADDR_SEARCH" class="btn btn-primary btn-sm FILE_SEARCH" style="margin:0 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
241
+													<button type="button" id="ITP_FORM_STINFO03010_DETAIL_ADRES_SCH" class="btn btn-primary btn-sm SHOW" style="margin: -1px 0px 0px 3px;">&nbsp;&nbsp;주소검색&nbsp;&nbsp;</button>
239 242
 												</div>
240 243
 												<div class="col-xs-4 itp_in" style="margin:0 5px;">
241
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_LOAD_ADDR" class="form-control itp_input" name="loadAddr" value="" placeholder="기본주소">													
244
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ADRES" data-check-required="empty" class="form-control itp_input" name="addr1" value="" placeholder="기본주소">
242 245
 												</div>
243 246
 												<div class="col-xs-4 itp_in">
244
-													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_DTL_ADDR" class="form-control itp_input" name="dtlAddr" value="" placeholder="상세주소">													
247
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ADRES_DTL" data-check-required="empty" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">
245 248
 												</div>
246 249
 											</div>
247 250
 										</div>
248 251
 									</div>
252
+									<!--<div class="itp_form_in">
253
+										<div class="form-group">
254
+											<label class="col-xs-2 itp_lb">주소</label>
255
+											<div class="col-xs-10 itp_ip">
256
+												<div class="col-xs-1 itp_in">
257
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ZIPNO" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호">
258
+												</div>
259
+												<div class="col-xs-2 itp_in" style="width:10%;">
260
+													<button type="button" id="ITP_FORM_STINFO03010_DETAIL_ADRES_SCH" class="btn btn-primary btn-sm FILE_SEARCH" style="margin:0 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
261
+												</div>
262
+												<div class="col-xs-4 itp_in" style="margin:0 5px;">
263
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ADRES" class="form-control itp_input" name="addr1" value="" placeholder="기본주소">
264
+												</div>
265
+												<div class="col-xs-4 itp_in">
266
+													<input type="text" id="ITP_FORM_STINFO03010_DETAIL_ADRES_DTL" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">
267
+												</div>
268
+											</div>
269
+										</div>
270
+									</div>-->
249 271
 								</section>				
250 272
 							</form>
251 273
 							<div class="itp_form_in">

+ 48 - 37
bin/src/main/webapp/app/stinfo/STINFO04010.html

@@ -31,13 +31,13 @@
31 31
 											</select>										
32 32
 										</div>
33 33
 										<div class="col-xs-2 itp_ip itp_noMar">
34
-											<select id="ITP_FORM_STINFO04010_SEARCH_ITEM_KIND" data-select-code="ITEM_KIND" class="form-control itp_input" name="sitemKind">
35
-												<option value="">품목유형</option>										
34
+											<select id="ITP_FORM_STINFO04010_SEARCH_ITEM_KIND" data-select-code="ITEM_TYPE" class="form-control itp_input" name="sitemKind">
35
+												<option value="">품목유형</option>
36 36
 											</select>										
37 37
 										</div>
38 38
 										<div class="col-xs-2 itp_ip itp_noMar">
39
-											<select id="ITP_FORM_STINFO04010_SEARCH_ITEM_TYPE" data-select-code="ITEM_TYPE" class="form-control itp_input" name="sitemType">
40
-												<option value="">품목타입</option>										
39
+											<select id="ITP_FORM_STINFO04010_SEARCH_ITEM_TYPE" data-select-code="ITEM_GUBUN" class="form-control itp_input" name="sitemType">
40
+												<option value="">품목타입</option>
41 41
 											</select>										
42 42
 										</div>
43 43
 									</div>
@@ -83,10 +83,11 @@
83 83
 					<div class="itp_form itp_type1 fix">
84 84
 						<div class="col-xs-12">
85 85
 							<form id="ITP_FORM_STINFO04010_DETAIL" class="form-horizontal">
86
-								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_VIEW_CD" name="viewCd" value="R">
86
+								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_VIEW_CD" name="viewCd" value="C">
87
+								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
87 88
 								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_BRAND_ID" name="brandId" value="">
88 89
 								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_ITEM_ID" name="itemId" value="">
89
-								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_FILE_NO" name="fileNo" value="">
90
+								<input type="hidden" id="ITP_FORM_STINFO04010_DETAIL_FILE_NO" name="itemImageFileNo" value="">
90 91
 								<section class="itp_form_sec">
91 92
 									<h4 class="itp_form_tit">품목정보-신규</h4>
92 93
 									<div class="itp_form_in">
@@ -99,7 +100,7 @@
99 100
 											<label class="col-xs-2 itp_lb">상태 *</label>
100 101
 											<div class="col-xs-3 itp_ip">
101 102
 												<div class="col-xs-9 itp_in">
102
-								               		<select id="ITP_FORM_STINFO04010_DETAIL_ST_CD" data-select-code="ST_CD" class="form-control itp_input default_st_cd" name="stCd"></select>
103
+								               		<select id="ITP_FORM_STINFO04010_DETAIL_ST_CD" data-select-code="ST_CD" data-check-required="empty" class="form-control itp_input default_st_cd" name="itemStCd"></select>
103 104
 												</div>
104 105
 											</div>
105 106
 										</div>
@@ -109,7 +110,7 @@
109 110
 											<label class="col-xs-2 itp_lb">품목분류 *</label>
110 111
 											<div class="col-xs-10 itp_ip">
111 112
 												<div class="col-xs-2 itp_in itp_noMar">
112
-													<select id="ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS1" class="form-control itp_input" name="itemClass1">
113
+													<select id="ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS1" data-check-required="empty" class="form-control itp_input" name="itemClass1">
113 114
 														<option value="">품목분류Level1</option>											
114 115
 													</select>										
115 116
 												</div>
@@ -138,7 +139,7 @@
138 139
 											<label class="col-xs-2 itp_lb">품목유형 *</label>
139 140
 											<div class="col-xs-5 itp_ip">
140 141
 												<div class="col-xs-9 itp_in">
141
-								                <select id="ITP_FORM_STINFO04010_DETAIL_ITEM_TYPE" data-select-code="ITEM_TYPE" class="form-control itp_input" name="itemType">
142
+								                <select id="ITP_FORM_STINFO04010_DETAIL_ITEM_TYPE" data-select-code="ITEM_TYPE" data-check-required="empty" class="form-control itp_input" name="itemType">
142 143
 													<option value="">소모품</option>
143 144
 													<option value="">자산용</option>
144 145
 												</select>
@@ -151,7 +152,7 @@
151 152
 											<label class="col-xs-2 itp_lb">품목명 *</label>
152 153
 											<div class="col-xs-5 itp_ip">
153 154
 												<div class="col-xs-9 itp_in">
154
-													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_ITEM_NM" class="form-control itp_input" name="itemNm" value="품목A">
155
+													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_ITEM_NM" data-check-required="empty" class="form-control itp_input" name="itemNm" value="품목A">
155 156
 												</div>
156 157
 											</div>
157 158
 											<label class="col-xs-2 itp_lb">내외자구분</label>
@@ -170,7 +171,7 @@
170 171
 											<label class="col-xs-2 itp_lb">발주여부 *</label>
171 172
 											<div class="col-xs-5 itp_ip">
172 173
 												<div class="col-xs-6 itp_in">
173
-													<select id="ITP_FORM_STINFO04010_DETAIL_PODR_PSSBL_DVSN" data-select-code="PODR_PSSBL_DVSN" class="form-control itp_input" name="podrPssblDvsn">
174
+													<select id="ITP_FORM_STINFO04010_DETAIL_PODR_PSSBL_DVSN" data-select-code="PODR_PSSBL_DVSN" data-check-required="empty" class="form-control itp_input" name="podrPssblDvsn">
174 175
 														<option value="">발주가능</option>
175 176
 														<option value="">발주불가</option>
176 177
 													</select>
@@ -179,7 +180,7 @@
179 180
 											<label class="col-xs-2 itp_lb">기본단위 *</label>
180 181
 											<div class="col-xs-5 itp_ip">
181 182
 												<div class="col-xs-9 itp_in">
182
-									                <select id="ITP_FORM_STINFO04010_DETAIL_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name="unit"></select>
183
+									                <select id="ITP_FORM_STINFO04010_DETAIL_UNIT" data-select-code="DSTRBT_COST_UNIT" data-check-required="empty" class="form-control itp_input detail_item_unit" name="unit"></select>
183 184
 												</div>
184 185
 											</div>
185 186
 										</div>
@@ -189,14 +190,17 @@
189 190
 											<label class="col-xs-2 itp_lb">구매품목여부 *</label>
190 191
 											<div class="col-xs-5 itp_ip">
191 192
 												<div class="col-xs-6 itp_in">
192
-													<select id="ITP_FORM_STINFO04010_DETAIL_PCH_ITEM_YN" data-select-code="PCH_ITEM_YN" class="form-control itp_input" name="pchItemYn">
193
+													<select id="ITP_FORM_STINFO04010_DETAIL_PCH_ITEM_YN" data-check-required="" class="form-control itp_input" name="pchItemYn">
194
+														<option value="">구매품목여부</option>
195
+														<option value="Y">Y</option>
196
+														<option value="N">N</option>
193 197
 													</select>
194 198
 												</div>
195 199
 											</div>
196 200
 											<label class="col-xs-2 itp_lb">구매단위</label>
197 201
 											<div class="col-xs-5 itp_ip">
198 202
 												<div class="col-xs-9 itp_in">
199
-									                <select id="ITP_FORM_STINFO04010_DETAIL_PCH_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name="pchUnit"></select>
203
+									                <select id="ITP_FORM_STINFO04010_DETAIL_PCH_UNIT" data-select-code="DSTRBT_COST_UNIT" class="form-control itp_input detail_item_unit" name="pchUnit"></select>
200 204
 												</div>
201 205
 											</div>
202 206
 										</div>
@@ -206,14 +210,17 @@
206 210
 											<label class="col-xs-2 itp_lb">판매품목여부 *</label>
207 211
 											<div class="col-xs-5 itp_ip">
208 212
 												<div class="col-xs-6 itp_in">
209
-													<select id="ITP_FORM_STINFO04010_DETAIL_SALE_ITEM_YN" data-select-code="SALE_ITEM_YN" class="form-control itp_input" name="saleItemYn">
213
+													<select id="ITP_FORM_STINFO04010_DETAIL_SALE_ITEM_YN" data-check-required="" class="form-control itp_input" name="saleItemYn">
214
+														<option value="">판매품목여부</option>
215
+														<option value="Y">Y</option>
216
+														<option value="N">N</option>
210 217
 													</select>
211 218
 												</div>
212 219
 											</div>
213 220
 											<label class="col-xs-2 itp_lb">판매단위</label>
214 221
 											<div class="col-xs-5 itp_ip">
215 222
 												<div class="col-xs-9 itp_in">
216
-								      	          	<select id="ITP_FORM_STINFO04010_DETAIL_SALE_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name="saleUnit"></select>
223
+								      	          	<select id="ITP_FORM_STINFO04010_DETAIL_SALE_UNIT" data-select-code="DSTRBT_COST_UNIT" class="form-control itp_input detail_item_unit" name="saleUnit"></select>
217 224
 												</div>
218 225
 											</div>
219 226
 										</div>
@@ -229,7 +236,7 @@
229 236
 											<label class="col-xs-2 itp_lb">재고단위</label>
230 237
 											<div class="col-xs-5 itp_ip">
231 238
 												<div class="col-xs-9 itp_in">
232
-								      	          	<select id="ITP_FORM_STINFO04010_DETAIL_STCK_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name="stckUnit"></select>
239
+								      	          	<select id="ITP_FORM_STINFO04010_DETAIL_STCK_UNIT" data-select-code="DSTRBT_COST_UNIT" class="form-control itp_input detail_item_unit" name="stckUnit"></select>
233 240
 												</div>
234 241
 											</div>
235 242
 										</div>
@@ -239,10 +246,10 @@
239 246
 											<label class="col-xs-2 itp_lb">중량</label>
240 247
 											<div class="col-xs-5 itp_ip">
241 248
 												<div class="col-xs-3 itp_in">
242
-													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_WEIGHT" class="form-control itp_input" name="weight" value="">
249
+													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_WEIGHT" data-check-required="number" class="form-control itp_input" name="weight" value="">
243 250
 												</div>
244 251
 												<div class="col-xs-4 itp_in">
245
-	              									<select id="ITP_FORM_STINFO04010_DETAIL_WEIGHT_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name="weight_unit"></select>
252
+	              									<select id="ITP_FORM_STINFO04010_DETAIL_WEIGHT_UNIT" data-select-code="WEIGHT_UNIT" class="form-control itp_input detail_item_unit" name="weight_unit"></select>
246 253
 												</div>
247 254
 											</div>
248 255
 											<label class="col-xs-2 itp_lb">부피</label>
@@ -251,7 +258,7 @@
251 258
 													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_VOLUME" class="form-control itp_input" name="volume" value="">
252 259
 												</div>
253 260
 												<div class="col-xs-6 itp_in">
254
-	              									<select id="ITP_FORM_STINFO04010_DETAIL_VOLUME_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name=""></select>
261
+	              									<select id="ITP_FORM_STINFO04010_DETAIL_VOLUME_UNIT" data-select-code="VOLUME_UNIT" class="form-control itp_input detail_item_unit" name="volume_unit"></select>
255 262
 												</div>
256 263
 											</div>
257 264
 										</div>
@@ -264,7 +271,7 @@
264 271
 													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_WIDTH" class="form-control itp_input" name="width" value="">
265 272
 												</div>
266 273
 												<div class="col-xs-4 itp_in">
267
-	              									<select id="ITP_FORM_STINFO04010_DETAIL_WIDTH_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name=""></select>
274
+	              									<select id="ITP_FORM_STINFO04010_DETAIL_WIDTH_UNIT" data-select-code="WIDTH_UNIT" class="form-control itp_input detail_item_unit" name="width_unit"></select>
268 275
 												</div>
269 276
 											</div>
270 277
 											<label class="col-xs-2 itp_lb">세로</label>
@@ -273,7 +280,7 @@
273 280
 													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_HEIGHT" class="form-control itp_input" name="height" value="">
274 281
 												</div>
275 282
 												<div class="col-xs-6 itp_in">
276
-	              									<select id="ITP_FORM_STINFO04010_DETAIL_HEIGHT_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name=""></select>
283
+	              									<select id="ITP_FORM_STINFO04010_DETAIL_HEIGHT_UNIT" data-select-code="HEIGHT_UNIT" class="form-control itp_input detail_item_unit" name="height_unit"></select>
277 284
 												</div>
278 285
 											</div>
279 286
 										</div>
@@ -286,7 +293,7 @@
286 293
 													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_HIGH" class="form-control itp_input" name="high" value="">
287 294
 												</div>
288 295
 												<div class="col-xs-4 itp_in">
289
-	              									<select id="ITP_FORM_STINFO04010_DETAIL_HIGH_UNIT" data-select-code="UNIT" class="form-control itp_input detail_item_unit" name=""></select>
296
+	              									<select id="ITP_FORM_STINFO04010_DETAIL_HIGH_UNIT" data-select-code="HIGH_UNIT" class="form-control itp_input detail_item_unit" name="high_unit"></select>
290 297
 												</div>
291 298
 											</div>
292 299
 											<label class="col-xs-2 itp_lb">1Box수량</label>
@@ -302,7 +309,8 @@
302 309
 											<label class="col-xs-2 itp_lb">유통기한여부 *</label>
303 310
 											<div class="col-xs-5 itp_ip">
304 311
 												<div class="col-xs-6 itp_in">
305
-													<select id="ITP_FORM_STINFO04010_DETAIL_EXPRY_YN" class="form-control itp_input" name="expryYn">
312
+													<select id="ITP_FORM_STINFO04010_DETAIL_EXPRY_YN" data-check-required="empty" class="form-control itp_input" name="expryYn">
313
+														<option value="">유통기한여부</option>
306 314
 														<option value="Y">Y</option>
307 315
 														<option value="N">N</option>
308 316
 													</select>
@@ -311,7 +319,7 @@
311 319
 											<label class="col-xs-2 itp_lb">유통가능기간</label>
312 320
 											<div class="col-xs-3 itp_ip">
313 321
 												<div class="col-xs-5 itp_in">
314
-								                	<input type="text" id="ITP_FORM_STINFO04010_DETAIL_EXPRY_DATE" class="form-control itp_input" name="expryDate" value="30">
322
+								                	<input type="text" id="ITP_FORM_STINFO04010_DETAIL_EXPRY_PERIOD" class="form-control itp_input" name="expryPeriod" value="30">
315 323
 												</div>
316 324
 												<div class="col-xs-5 itp_in">
317 325
 													<label class="itp_in">(Day)</label>
@@ -325,6 +333,7 @@
325 333
 											<div class="col-xs-5 itp_ip">
326 334
 												<div class="col-xs-6 itp_in">
327 335
 													<select id="ITP_FORM_STINFO04010_DETAIL_RTN_PSSBL_YN" class="form-control itp_input" name="rtnPssblYn">
336
+														<option value="">반품기능여부</option>
328 337
 														<option value="Y">Y</option>
329 338
 														<option value="N">N</option>
330 339
 													</select>
@@ -341,21 +350,22 @@
341 350
 											</div>
342 351
 										</div>
343 352
 									</div>
344
-									<div class="itp_form_in">	
353
+									<div class="itp_form_in">
345 354
 										<div class="form-group border">
346 355
 											<label class="col-xs-2 itp_lb">품목이미지</label>
347
-											<div class="col-xs-10 itp_ip">
348
-												<div class="col-xs-6 itp_in ITEM_IMAGE">
349
-													<img src="/oqpo-view/images/item-list.jpg" alt="품목이미지 샘플" name="itemImage" style="width:400px; height:220px; border:1px solid #ddd;">
356
+											<div class="col-xs-10 itp_ip colspan">
357
+												<div class="fileupload-wrapper">
358
+													<!-- data-show-yn: 파일업로드를 할 수 있는 권한이 있는지 없는지.. -->
359
+													<div id="ITP_STINFO04010_DETAIL_UPLOAD" data-show-yn="Y"></div>
350 360
 												</div>
351
-												<div class="col-xs-6 itp_in" style="margin-top:75px;">
352
-													<div class="col-xs-8 itp_in">
353
-														<input type="text" id="ITP_FORM_STINFO04010_DETAIL_ITEM_IMAGE_FILE_PATH" class="form-control itp_input" name="itemImageFilePath" value="" placeholder="">													
354
-													</div>
355
-													<div class="col-xs-2 itp_in">
356
-														<button type="button" id="ITP_FORM_STINFO04010_DETAIL_FILE_SEARCH" class="btn btn-primary btn-sm FFB" style="margin-left:3px;">&nbsp;&nbsp;파일찾기&nbsp;&nbsp;</button>
357
-													</div>
361
+												<!--<div class="col-xs-4 itp_in" style="padding-right:5px;">
362
+													<input type="text" id="ITP_FORM_STINFO04010_DETAIL_FILE_PATH" class="form-control itp_input" name="FilePath" value="">
358 363
 												</div>
364
+												<div class="col-xs-6 itp_in">
365
+													<div class="fileupload-wrapper">
366
+														<div id="ITP_STINFO04010_DETAIL_UPLOAD" data-show-yn="Y"></div>
367
+													</div>
368
+												</div>-->
359 369
 											</div>
360 370
 										</div>
361 371
 									</div>
@@ -369,6 +379,7 @@
369 379
 						<div class="col-xs-12">
370 380
 							<form id="ITP_FORM_STINFO04010_VIEW" class="form-horizontal">
371 381
 								<input type="hidden" id="ITP_FORM_STINFO04010_VIEW_VIEW_CD" name="viewCd" value="R">
382
+								<input type="hidden" id="ITP_FORM_STINFO04010_VIEW_BRAND_ID" name="brandId" value="">
372 383
 								<input type="hidden" id="ITP_FORM_STINFO04010_VIEW_ITEM_ID" name="itemId" value="">
373 384
 								<input type="hidden" id="ITP_FORM_STINFO04010_VIEW_FILE_NO" name="fileNo" value="">
374 385
 								<section class="itp_form_sec">
@@ -544,7 +555,7 @@
544 555
 											</div>
545 556
 											<label class="col-xs-2 itp_lb">유통가능기간</label>
546 557
 											<div class="col-xs-3 itp_ip">
547
-												<div class="col-xs-5 itp_in fnExpryDate"></div>
558
+												<div class="col-xs-5 itp_in fnExpryPeriod"></div>
548 559
 												<label class="col-xs-2 itp_in">day</label>
549 560
 											</div>
550 561
 										</div>

+ 21 - 19
bin/src/main/webapp/app/stinfo/STINFO05010.html

@@ -34,29 +34,29 @@
34 34
 											</div>
35 35
 											<div class="col-xs-2 itp_ip itp_noMar">
36 36
 												<button type="button" id="ITP_BTN_STINFO05010_SEARCH_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
37
-												<button type="button" id="ITP_BTN_STINFO05010_SEARCH_MODIFY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
37
+												<button type="button" id="ITP_BTN_STINFO05010_SEARCH_DELETE" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
38 38
 											</div>
39 39
 										</div>
40 40
 									</div>
41 41
 									<div class="form-group" style="padding-top: 10px; border-top: 1px dotted #ccc;">
42 42
 										<div class="col-xs-2 itp_ip itp_noMar">
43 43
 											<select id="ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS1" class="form-control itp_input" name="sitemClass1">
44
-												<option value="A">품목분류Level1</option>											
44
+												<option value="">품목분류Level1</option>
45 45
 											</select>
46 46
 										</div>
47 47
 										<div class="col-xs-2 itp_ip itp_noMar">
48 48
 											<select id="ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS2" class="form-control itp_input" name="sitemClass2">
49
-												<option value="A">품목분류Level2</option>											
49
+												<option value="">품목분류Level2</option>
50 50
 											</select>
51 51
 										</div>
52 52
 										<div class="col-xs-2 itp_ip itp_noMar">
53 53
 											<select id="ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS3" class="form-control itp_input" name="sitemClass3">
54
-												<option value="A">품목분류Level3</option>											
54
+												<option value="">품목분류Level3</option>
55 55
 											</select>
56 56
 										</div>										
57 57
 										<div class="col-xs-2 itp_ip itp_noMar">
58 58
 											<select id="ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS4" class="form-control itp_input" name="sitemClass4">
59
-												<option value="A">품목분류Level4</option>											
59
+												<option value="">품목분류Level4</option>
60 60
 											</select>
61 61
 										</div>
62 62
 										<div class="col-xs-4 itp_ip itp_noMar">
@@ -82,6 +82,8 @@
82 82
 							<form id="ITP_FORM_STINFO05010_DETAIL" class="form-horizontal">
83 83
 								<input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_VIEW_CD" name="viewCd" value="C">
84 84
 								<input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_ITEM_ID" name="itemId" value="">
85
+								<input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
86
+								<input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_BRAND_ID" name="brandId" value="">
85 87
 								<input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_BRAND_UNIT_UNQ_NO" name="brandUnitUnqNo" value="">
86 88
 					
87 89
 								<section class="itp_form_sec">
@@ -94,7 +96,7 @@
94 96
 											<label class="col-xs-2 itp_lb">상태 *</label>
95 97
 											<div class="col-xs-4 itp_ip">
96 98
 												<div class="col-xs-10 itp_in">
97
-									                <select id="ITP_FORM_STINFO05010_DETAIL_ST_CD" data-select-code="ST_CD" class="form-control itp_input" name="stCd"></select>
99
+									                <select id="ITP_FORM_STINFO05010_DETAIL_ST_CD" data-select-code="ST_CD" data-check-required="empty" class="form-control itp_input" name="stCd"></select>
98 100
 								                </div>
99 101
 											</div>
100 102
 										</div>
@@ -104,14 +106,14 @@
104 106
 											<label class="col-xs-2 itp_lb">품목번호 *</label>
105 107
 											<div class="col-xs-10 itp_ip">
106 108
 												<div class="col-xs-3 itp_in">
107
-													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_ITEM_CLASS_MGNT_NO" class="form-control itp_input" name="itemClassMgntNo" value="IT2022001" maxlength="100" readonly>
109
+													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_ITEM_CLASS_MGNT_NO" data-check-required="empty" data-check-required="empty" class="form-control itp_input" name="itemClassMgntNo" value="IT2022001" maxlength="100" readonly>
108 110
 								                </div>
109 111
 												<div class="col-xs-3 itp_in" style="padding-left: 5px;">
110
-													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_ITEM_NM" class="form-control itp_input" name="itemNm" value="품목 A" maxlength="100" readonly>
112
+													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_ITEM_NM" data-check-required="empty" class="form-control itp_input" name="itemNm" value="품목 A" maxlength="100" readonly>
111 113
 								                </div>
112 114
 												<div class="col-xs-2 itp_in" style="padding-left: 5px;">
113
-													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
114
-													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_MODIFY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
115
+													<button type="button" id="ITP_BTN_STINFO05010_DETAILITEM_SRH_" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
116
+													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_ITEM_DELETE" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
115 117
 								                </div>
116 118
 											</div>
117 119
 										</div>
@@ -119,14 +121,14 @@
119 121
 											<label class="col-xs-2 itp_lb">공급업체 *</label>
120 122
 											<div class="col-xs-10 itp_ip">
121 123
 												<div class="col-xs-3 itp_in">
122
-													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_SPPLY_ID" class="form-control itp_input" name="spplyId" value="공급업체번호" maxlength="100" readonly>
124
+													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_SPPLY_ID" data-check-required="empty" class="form-control itp_input" name="spplyId" value="공급업체번호" maxlength="100" readonly>
123 125
 								                </div>
124 126
 												<div class="col-xs-3 itp_in" style="padding-left: 5px;">
125
-													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_SPPLY_NM" class="form-control itp_input" name="spplyNm" value="공급업체명" maxlength="100" readonly>
127
+													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_SPPLY_NM" data-check-required="empty" class="form-control itp_input" name="spplyNm" value="공급업체명" maxlength="100" readonly>
126 128
 								                </div>
127 129
 												<div class="col-xs-2 itp_in" style="padding-left: 5px;">
128
-													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_SRH_SPPLY" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
129
-													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_MODIFY_SPPLY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
130
+													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_SPPLY_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
131
+													<button type="button" id="ITP_BTN_STINFO05010_DETAIL_SPPLY_DELETE" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
130 132
 								                </div>
131 133
 								                <div class="col-xs-3 itp_in" style="padding-left: 5px; left:-40px;">
132 134
 													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_SPPLY_ITEM_ID" class="form-control itp_input" name="spplyItemId" value="공급업체 품번" maxlength="100">
@@ -139,9 +141,9 @@
139 141
 											<label class="col-xs-2 itp_lb">계약기간 *</label>
140 142
 											<div class="col-xs-3 itp_ip itp_noMar">
141 143
 												<div class="input-daterange input-group date">
142
-													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_CONT_STT_DT" class="form-control itp_input" name="contSttDt" value="" readonly>
144
+													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_CONT_STT_DT" data-check-required="empty" class="form-control itp_input" name="contSttDt" value="" readonly>
143 145
 													<span class="input-group-addon itp_date_to">~</span>
144
-													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_CONT_END_DT" class="form-control itp_input" name="contEndDt" value="" readonly>
146
+													<input type="text" id="ITP_FORM_STINFO05010_DETAIL_CONT_END_DT" data-check-required="empty" class="form-control itp_input" name="contEndDt" value="" readonly>
145 147
 												</div>
146 148
 											</div>
147 149
 											<div class="col-xs-1 itp_ip"></div>
@@ -157,12 +159,12 @@
157 159
 										<div class="form-group">
158 160
 											<label class="col-xs-2 itp_lb">단위 *</label>
159 161
 											<div class="col-xs-2 itp_ip itp_noMar">
160
-								                <select id="ITP_FORM_STINFO05010_DETAIL_UNIT" data-select-code="UNIT" class="form-control itp_input" name="unit"></select>
162
+								                <select id="ITP_FORM_STINFO05010_DETAIL_UNIT" data-select-code="DSTRBT_COST_UNIT" data-check-required="empty" class="form-control itp_input" name="unit"></select>
161 163
 											</div>
162 164
 											<div class="col-xs-2 itp_ip"></div>
163 165
 											<label class="col-xs-2 itp_lb">기준수량 *</label>
164 166
 											<div class="col-xs-3 itp_ip noMar">
165
-												<input type="text" id="ITP_FORM_STINFO05010_DETAIL_STDD_QYT" class="form-control itp_input" name="stddQyt" value="" maxlength="100">
167
+												<input type="text" id="ITP_FORM_STINFO05010_DETAIL_STDD_QYT" data-check-required="empty" class="form-control itp_input" name="stddQyt" value="" maxlength="100">
166 168
 											</div>
167 169
 											<label class="col-xs-2 itp_in">&nbsp;</label>
168 170
 										</div>								
@@ -171,7 +173,7 @@
171 173
 										<div class="form-group">
172 174
 											<label class="col-xs-2 itp_lb">통화 *</label>
173 175
 											<div class="col-xs-2 itp_ip itp_noMar">
174
-						                		<select id="ITP_FORM_STINFO05010_DETAIL_CURR" data-select-code="CURR" class="form-control itp_input" name="curr"></select>
176
+						                		<select id="ITP_FORM_STINFO05010_DETAIL_CURR" data-select-code="CURR" data-check-required="empty" class="form-control itp_input" name="curr"></select>
175 177
 					                		</div>
176 178
 											<div class="col-xs-2 itp_ip"></div>
177 179
 											<label class="col-xs-2 itp_lb">단가</label>

+ 4 - 2
bin/src/main/webapp/app/stinfo/STINFO06010.html

@@ -43,8 +43,10 @@
43 43
 				       <div class="itp_srh_border fix">
44 44
 				          <div class="col-xs-12">
45 45
 				          <form id="ITP_FORM_STINFO06010_DETAIL" class="form-horizontal">
46
-							  <input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_CURR" value="">
47
-							  <input type="hidden" id="ITP_FORM_STINFO05010_DETAIL_UNIT_TARGET_CD" value="">
46
+							  <input type="hidden" id="ITP_FORM_STINFO06010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
47
+							  <input type="hidden" id="ITP_FORM_STINFO06010_DETAIL_BRAND_ID" name="brandId" value="">
48
+							  <input type="hidden" id="ITP_FORM_STINFO06010_DETAIL_CURR" value="">
49
+							  <input type="hidden" id="ITP_FORM_STINFO06010_DETAIL_UNIT_TARGET_CD" value="">
48 50
 				             <div class="form-group">
49 51
 				                <div class="col-xs-3 itp_ip itp_noMar">
50 52
 				                <input type="text" id="ITP_FORM_STINFO06010_DETAIL_STORE_NM" class="form-control itp_input" name="sstoreNm" placeholder="매장 *" />

+ 2 - 0
bin/src/main/webapp/app/stinfo/STINFO07010.html

@@ -15,6 +15,8 @@
15 15
 						<div class="itp_srh_border fix">
16 16
 							<div class="col-xs-12">
17 17
 								<form id="ITP_FORM_STINFO07010_SEARCH" class="form-horizontal">
18
+									<input type="hidden" id="ITP_FORM_STINFO07010_DETAIL_AFFL_SHOP_ID" name="afflShopId" value="">
19
+									<input type="hidden" id="ITP_FORM_STINFO07010_DETAIL_BRAND_ID" name="brandId" value="">
18 20
 									<div class="form-group">
19 21
 										<div class="col-xs-2 itp_ip itp_noMar">
20 22
 											<select id="ITP_FORM_STINFO07010_SEARCH_ITEM_CLASS1" class="form-control itp_input" name="sitemClass1">

+ 203 - 0
bin/src/main/webapp/app/stockmng/STOCKMNG04011.html

@@ -0,0 +1,203 @@
1
+<section id="ITP_TAB_STOCKMNG04011" class="tab-pane active itp_sec">
2
+	<div class="itp_cont">
3
+		<article class="itp_detail">
4
+			<div class="itp_det_head fix">
5
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>창고관리</strong></h2>
6
+				<div class="pull-right itp_cicon">
7
+				    <button type="button" id="ITP_BTN_STOCKMNG04011_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon "></i>&nbsp;&nbsp;저장&nbsp;&nbsp;</button>
8
+					<button type="button" id="ITP_BTN_STOCKMNG04011_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon "></i>&nbsp;&nbsp;수정&nbsp;&nbsp;</button>
9
+				    <button type="button" id="ITP_BTN_STOCKMNG04011_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon "></i> &nbsp;&nbsp;취소&nbsp;&nbsp;</button>
10
+				</div>				
11
+			</div>
12
+			<div class="itp_det_in">				
13
+				<div id="ITP_AJAX_STOCKMNG04011_DETAIL_CONTAINER">
14
+				    <div class="itp_form itp_type1 fix">
15
+				        <div class="col-xs-12">
16
+				            <form id="ITP_FORM_STOCKMNG04011_DETAIL" class="form-horizontal">
17
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_VIEW_CD" name="viewCd" value="C">
18
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_BRAND_ID" name="brandId" value="">
19
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_STORE_ID" name="storeId" value="">
20
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_WHS_ID" name="whsId" value="">
21
+				    
22
+				                <section class="itp_form_sec">
23
+				                    <h4 class="itp_form_tit">브랜드 정보</h4>
24
+				                    <div class="itp_form_in">
25
+				                        <div class="form-group">
26
+				                            <label class="col-xs-2 itp_lb">브랜드명</label>
27
+				                                <div class="col-xs-4 itp_ip">
28
+				                                    <div class="col-xs-9 itp_in fnBrandNm"></div>												
29
+				                                </div>
30
+				                            <label class="col-xs-2 itp_lb">상태*</label>
31
+				                            <div class="col-xs-4 itp_ip">
32
+				                                <div class="col-xs-8 itp_in">
33
+				                                    <select id="ITP_FORM_STOCKMNG04011_DETAIL_WHS_ST_CD" class="form-control itp_input" name="whsStCd"></select>
34
+				                                </div>
35
+				                            </div>
36
+				                        </div>
37
+				                        <div class="form-group">
38
+				                            <label class="col-xs-2 itp_lb">창고코드 </label>
39
+				                            <div class="col-xs-4 itp_ip">
40
+				                                <div class="col-xs-8 itp_in fnWhsId"></div>
41
+				                            </div>
42
+				                            <label class="col-xs-2 itp_lb">창고명</label>
43
+				                            <div class="col-xs-4 itp_ip">
44
+				                                <div class="col-xs-8 itp_in">
45
+			                                    	<input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_WHS_NM" class="form-control itp_input" name="whsNm" value="" maxlength="20">
46
+				                                </div>
47
+				                            </div>
48
+				                        </div>
49
+				                        <div class="form-group">
50
+				                            <label class="col-xs-2 itp_lb">연락처</label>
51
+				                            <div class="col-xs-4 itp_ip">
52
+				                                <div class="col-xs-8 itp_in">
53
+				                                    <input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_MGR_TEL_NO" class="form-control itp_input" name="mgrTelNo" value="" maxlength="20" placeholder="###-####-####">
54
+				                                </div>
55
+				                            </div>
56
+				                            <label class="col-xs-2 itp_lb">담당자명</label>
57
+				                            <div class="col-xs-4 itp_ip">
58
+				                                <div class="col-xs-8 itp_in">
59
+				                                    <input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_MGR_NM" class="form-control itp_input" name="mgrNm" value="" maxlength="20">
60
+				                                </div>
61
+				                            </div>
62
+				                        </div>
63
+				                        <div class="form-group">
64
+				                            <label class="col-xs-2 itp_lb">매장명</label>
65
+				                            <div class="col-xs-4 itp_ip">
66
+				                                <div class="col-xs-5 itp_in">
67
+													<input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_STORE_NM" class="form-control itp_input" name="storeNm" value="" readonly="readonly" />
68
+												</div>
69
+												<div class="col-xs-3 itp_in" style="padding:0px; margin-left: 3px;">
70
+													<button type="button" id="ITP_BTN_STOCKMNG04011_SEARCH_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
71
+													<button type="button" id="ITP_BTN_STOCKMNG04011_SEARCH_MODIFY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
72
+								                </div>
73
+				                            </div>
74
+				                            <label class="col-xs-2 itp_lb">등록일시</label>
75
+				                            <div class="col-xs-4 itp_ip fnRegDtm"></div>				                            
76
+				                        </div>
77
+				                    </div>
78
+			                        <div class="itp_form_in">	
79
+			                            <div class="form-group">
80
+			                                <label class="col-xs-2 itp_lb">주소</label>
81
+			                                <div class="col-xs-10 itp_ip">
82
+			                                    <div class="col-xs-2 itp_in">
83
+			                                        <input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_ZIPNO" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호" readonly="readonly">													
84
+			                                    </div>
85
+			                                    <div class="col-xs-2 itp_in" style="width:10%;">
86
+			                                        <button type="button" id="ITP_BTN_STOCKMNG04011_DETAIL_ADDRESS_SEARCH" class="btn btn-primary btn-sm ADDS" style="margin:0 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
87
+			                                    </div>
88
+			                                    <div class="col-xs-4 itp_in" style="margin:0 5px;">
89
+			                                        <input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_ADRES" class="form-control itp_input" name="addr1" value="" placeholder="기본주소" readonly="readonly">													
90
+			                                    </div>
91
+			                                    <div class="col-xs-4 itp_in">
92
+			                                        <input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_ADRES_DTL" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">													
93
+			                                    </div>
94
+			                                    
95
+			                                    <!-- 주소 맵 -->
96
+												<input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_LOTS_ADDRESS" value="" />
97
+												<input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_STREET_ADDRESS" value="" />
98
+												<input type="hidden" name="latX" id="ITP_FORM_STOCKMNG04011_DETAIL_LAT" value="" />
99
+												<input type="hidden" name="latY" id="ITP_FORM_STOCKMNG04011_DETAIL_LNG" value="" />
100
+												<input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_HJ_DONG" value="" />
101
+												<input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_BJ_DONG" value="" />
102
+												<div id="ITP_FORM_STOCKMNG04011_DETAIL_MAP" style="width:0px; height:0px;"></div>
103
+			                                </div>
104
+			                            </div>	
105
+			                        </div>	
106
+				                </section>								
107
+				            </form>
108
+				        </div>
109
+				    </div>
110
+				    <div class="itp_table fix">
111
+					    <div class="itp_table_head fix" style="background:#f5f5f5;">
112
+					        <h4 class="itp_table_tit">Location 정보</h4>
113
+					        <div class="pull-right itp_cicon">
114
+					            <button type="button" id="ITP_BTN_STOCKMNG04011_DETAIL_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;행추가&nbsp;&nbsp;</button>
115
+					            <button type="button" id="ITP_BTN_STOCKMNG04011_DETAIL_DELROW" class="btn btn-danger btn-sm DRB"><i class="glyphicon"></i>&nbsp;&nbsp;행삭제&nbsp;&nbsp;</button>									
116
+					        </div>
117
+					    </div>
118
+					    <div id="ITP_STOCKMNG04011_DETAIL_jqGrid_list" class="itp_tb_list">
119
+					        <div id="ITP_STOCKMNG04011_DETAIL_jqGridView" class="itp_views fix"></div>
120
+					        <table id="ITP_STOCKMNG04011_DETAIL_jqGrid"></table>
121
+					        <div id="ITP_STOCKMNG04011_DETAIL_jqGridPager"></div>
122
+					        <div id="ITP_STOCKMNG04011_DETAIL_jqGridEmpty" class="itp_no_data"></div>
123
+					    </div>
124
+					</div>
125
+				</div>
126
+				<div id="ITP_AJAX_STOCKMNG04011_VIEW_CONTAINER">
127
+				    <div class="itp_form itp_type1 fix">
128
+				        <div class="col-xs-12">
129
+				            <form id="ITP_FORM_STOCKMNG04011_VIEW" class="form-horizontal">
130
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_VIEW_VIEW_CD" name="viewCd" value="R">
131
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID" name="brandId" value="">
132
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_VIEW_STORE_ID" name="storeId" value="">
133
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_VIEW_WHS_ID" name="whsId" value="">
134
+				    
135
+				                <section class="itp_form_sec">
136
+				                    <h4 class="itp_form_tit">브랜드 정보</h4>
137
+				                    <div class="itp_form_in">
138
+				                        <div class="form-group">
139
+				                            <label class="col-xs-2 itp_lb">브랜드명</label>
140
+				                                <div class="col-xs-4 itp_ip">
141
+				                                    <div class="col-xs-9 itp_in fnBrandNm"></div>												
142
+				                                </div>
143
+				                            <label class="col-xs-2 itp_lb">상태*</label>
144
+				                            <div class="col-xs-4 itp_ip">
145
+				                                <div class="col-xs-8 itp_in fnStCd"></div>
146
+				                            </div>
147
+				                        </div>
148
+				                        <div class="form-group">
149
+				                            <label class="col-xs-2 itp_lb">창고코드 </label>
150
+				                            <div class="col-xs-4 itp_ip">
151
+				                                <div class="col-xs-8 itp_in fnWhsId"></div>
152
+				                            </div>
153
+				                            <label class="col-xs-2 itp_lb">창고명</label>
154
+				                            <div class="col-xs-4 itp_ip">
155
+				                                <div class="col-xs-8 itp_in fnWhsNm"></div>
156
+				                            </div>
157
+				                        </div>
158
+				                        <div class="form-group">
159
+				                            <label class="col-xs-2 itp_lb">연락처</label>
160
+				                            <div class="col-xs-4 itp_ip">
161
+				                                <div class="col-xs-8 itp_in fnTelNo"></div>
162
+				                            </div>
163
+				                            <label class="col-xs-2 itp_lb">담당자명</label>
164
+				                            <div class="col-xs-4 itp_ip">
165
+				                                <div class="col-xs-8 itp_in fnMgrNm"></div>
166
+				                            </div>
167
+				                        </div>
168
+				                        <div class="form-group">
169
+				                            <label class="col-xs-2 itp_lb">매장명</label>
170
+				                            <div class="col-xs-4 itp_ip">
171
+				                                <div class="col-xs-5 itp_in fnSpplyNm"></div>
172
+				                            </div>
173
+				                            <label class="col-xs-2 itp_lb">등록일시</label>
174
+				                            <div class="col-xs-4 itp_ip fnRegDtm"></div>
175
+				                        </div>
176
+				                    </div>
177
+			                        <div class="itp_form_in">	
178
+			                            <div class="form-group">
179
+			                                <label class="col-xs-2 itp_lb">주소</label>
180
+			                                <div class="col-xs-10 itp_ip fnAddress"></div>
181
+			                            </div>	
182
+			                        </div>	
183
+				                </section>								
184
+				            </form>
185
+				        </div>
186
+				    </div>
187
+				    <div class="itp_table fix">
188
+					    <div class="itp_table_head fix" style="background:#f5f5f5;">
189
+					        <h4 class="itp_table_tit">Location 정보</h4>
190
+					    </div>
191
+					    <div id="ITP_STOCKMNG04011_VIEW_jqGrid_list" class="itp_tb_list">
192
+					        <div id="ITP_STOCKMNG04011_VIEW_jqGridView" class="itp_views fix"></div>
193
+					        <table id="ITP_STOCKMNG04011_VIEW_jqGrid"></table>
194
+					        <div id="ITP_STOCKMNG04011_VIEW_jqGridPager"></div>
195
+					        <div id="ITP_STOCKMNG04011_VIEW_jqGridEmpty" class="itp_no_data"></div>
196
+					    </div>
197
+					</div>
198
+				</div>				
199
+			</div>
200
+		</article>
201
+	</div>
202
+	<div id="ITP_TAP_JS"></div>	
203
+</section>

+ 1 - 0
bin/src/main/webapp/js/app/config.js

@@ -430,6 +430,7 @@ var fn_make_user_info = {
430 430
 			if(typeof(userInfo) == "string") {
431 431
 				var sessionUserInfo = this.get();
432 432
 				$.each(JSON.parse(userInfo), function(key, value) {
433
+					console.log(key + ' ===> ' + value);
433 434
 					sessionUserInfo[key] = value;
434 435
 				});
435 436
 				sessionStorage.setItem('itp_manage_user_info', JSON.stringify(sessionUserInfo));

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

@@ -116,5 +116,15 @@ let kakaoMap = {
116 116
                 document.getElementById(kakaoMap.formId + '_ADRES_DTL').focus();
117 117
             }
118 118
         }).open();
119
+    },
120
+    simpleAddress: function (formId) {
121
+        new daum.Postcode({
122
+            oncomplete: function(data) {
123
+                // 전체주소 리턴
124
+                document.getElementById(formId + '_ZIPNO').value = data.zonecode;
125
+                document.getElementById(formId + '_ADRES').value = data.roadAddress;
126
+                document.getElementById(formId + '_ADRES_DTL').focus();
127
+            }
128
+        }).open();
119 129
     }
120 130
 };

+ 2 - 3
bin/src/main/webapp/js/app/oper/ITP_OPER03010.js

@@ -541,9 +541,8 @@ let createObj = {
541 541
 	button: {
542 542
 		duplicate: function() {
543 543
 			const formId = '#ITP_FORM_OPER03010_DETAIL';
544
-			itp_fn_form_clear_validate(null, formId + '_DETAIL');
545
-			var vali_cmpyCd = itp_fn_form_validate(formId + '_DETAIL', formId + '_AFFL_SHOP_KEY', ['empty'], undefined);
546
-			if (vali_cmpyCd) {
544
+			itp_fn_form_clear_validate(null, formId);
545
+			if (itp_fn_form_validate(formId, formId + '_AFFL_SHOP_KEY', ['empty'], undefined)) {
547 546
 				var dupFn = function(result) {
548 547
 					if (result.code === 'N') {
549 548
 						ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = false;

+ 25 - 36
bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_ITEM_CLASS_MANAGE.js

@@ -13,7 +13,7 @@ let API_ITEM_CLASS_LEVEL_POP	= '/api/item/class-level-list';			//품목분류 le
13 13
 var popPageObj = {
14 14
 	init: function () {
15 15
 		this.button();
16
-		popItemClassLevel.list(1, true);
16
+		popItemClassLevel.make(1, 'LIST');
17 17
 	},
18 18
 	parentPopFn: null,
19 19
 	args: null,
@@ -26,63 +26,52 @@ var popPageObj = {
26 26
 	},
27 27
 	form: function() {
28 28
 		$('#ITP_FORM_STINFO07010_DETAIL_ITEM_CLASS1').on('change', function() {
29
-			($(this).val() === '') ? popItemClassLevel.clear(2, true): popItemClassLevel.list(2, true);
29
+			($(this).val() === '') ? popItemClassLevel.clear(2): popItemClassLevel.change(2);
30 30
 		});
31 31
 		$('#ITP_FORM_STINFO07010_DETAIL_ITEM_CLASS2').on('change', function() {
32
-			($(this).val() === '') ? popItemClassLevel.clear(3, true): popItemClassLevel.list(3, true);
32
+			($(this).val() === '') ? popItemClassLevel.clear(3): popItemClassLevel.change(3);
33 33
 		});
34 34
 		$('#ITP_FORM_STINFO07010_DETAIL_ITEM_CLASS3').on('change', function() {
35
-			($(this).val() === '') ? popItemClassLevel.clear(4, true): popItemClassLevel.list(4, true);
35
+			($(this).val() === '') ? popItemClassLevel.clear(4): popItemClassLevel.change(4);
36 36
 		});
37 37
 	}
38 38
 };
39 39
 
40 40
 var popItemClassLevel = {
41
-	isList: true,
42 41
 	level: 1,
42
+	levelID: '',
43
+	data: [],
43 44
 	keys: function() {
44 45
 		var keys = {sBrandId:fn_make_user_info.get('brandId'), sItemLevel: this.level};
45
-		for(var i=1; i<this.level; i++) {
46
+		for(var i=1; i<=this.level; i++) {
46 47
 			var key = 'sItemClass' + i;
47
-			var id = '#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS' + i;
48
+			var id = '#' + this.levelID + i;
48 49
 			keys[key] = $(id + ' option:selected').val();
49 50
 		}
50 51
 		return keys;
51 52
 	},
52
-	list: function(level, isList) {
53
+	make: function(level, mode) {
53 54
 		this.level = level;
54
-		this.isList = isList;
55
-		this.clear(level, isList);
56
-		this.call( $.param(this.keys()));
55
+		this.levelID = 'ITP_FORM_STINFO07010_DETAIL_ITEM_CLASS';
56
+		this.data.length = 0;
57
+		this.clear(1);
58
+		this.call($.param(this.keys()));
57 59
 	},
58
-	detail: {
59
-		data: [],
60
-		make: function() {
61
-			popItemClassLevel.isList = false;
62
-			popItemClassLevel.call( $.param(popItemClassLevel.keys()));
63
-		}
64
-	},
65
-	call: function(param) {
66
-		fn_ajax_call(API_ITEM_CLASS_LEVEL_POP, param, this.callback, 'GET');
60
+	change: function(level) {
61
+		this.level = level;
62
+		this.clear(level);
63
+		this.call($.param(this.keys()), false);
67 64
 	},
68
-	callback: function(result) {
69
-		// console.log(result);
70
-		var id = 'ITP_FORM_STINFO07010_DETAIL_ITEM_CLASS' + popItemClassLevel.level;
71
-		fn_make_select_item_class(result.searchList, id, true, '선택');
72
-		if(!popItemClassLevel.isList) {
73
-			$('#' + id).val(popItemClassLevel.detail.data[ popItemClassLevel.level - 1]);
74
-			if(popItemClassLevel.level < popItemClassLevel.detail.data.length) {
75
-				if(popItemClassLevel.detail.data[popItemClassLevel.level] !== '') {
76
-					popItemClassLevel.level++;
77
-					popItemClassLevel.call( $.param(popItemClassLevel.keys()));
78
-				}
79
-			}
80
-		}
65
+	call: function(param, isModify) {
66
+		var callbackFn = function(result) {
67
+			var id = _this.levelID + _this.level;
68
+			fn_make_select_item_class(result.searchList, id, true, '품목분류Level' + _this.level);
69
+		};
70
+		fn_ajax_call(API_ITEM_CLASS_LEVEL_POP, param, callbackFn, 'GET');
81 71
 	},
82
-	clear: function(level, isList) {
72
+	clear: function(level) {
83 73
 		for(var i=level; i<5; i++) {
84
-			var id = 'ITP_FORM_STINFO07010_DETAIL_ITEM_CLASS' + i;
85
-			$('#' + id).find('option').remove();
74
+			$('#' + (this.levelID + i)).find('option:not(:first)').remove();
86 75
 		}
87 76
 	}
88 77
 };

+ 5 - 2
bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_PROC.js

@@ -41,6 +41,7 @@ var popPageObj = {
41 41
 	fnStockInfoCallback: function(result) {
42 42
 		// alert(JSON.stringify(result))
43 43
 		$('#ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID').val(result.brandId);
44
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP_STORE_ID').val(popPageObj.args.storeId);
44 45
 		$('#ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_WHS_ID').val(result.whsId);
45 46
 		$('#ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_LOCATION').val(result.location);
46 47
 		$('#ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_ID').val(result.itemId);
@@ -87,7 +88,8 @@ var popPageObj = {
87 88
 	}, 
88 89
 	fnWhsList: function(fnCall) {
89 90
 		const brandIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID').val();	
90
-		const param = {sbrandId: brandIdVal, pagingYn: false};
91
+		const storeIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_STORE_ID').val();
92
+		const param = {sbrandId: brandIdVal,sstoreId: storeIdVal, pagingYn: false};
91 93
 		
92 94
 		fn_ajax_call(WHS_MNG_DETAIL_GRID_LIST, JSON.stringify(param), function(result) {
93 95
 			
@@ -99,8 +101,9 @@ var popPageObj = {
99 101
 	}, 
100 102
 	fnLocationList: function(fnCall) {
101 103
 		const brandIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID').val();	
104
+		const storeIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_STORE_ID').val();
102 105
 		const whsIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_WHS_ID').val();	
103
-		const param = {brandId: brandIdVal, whsId: whsIdVal, pagingYn: false};
106
+		const param = {brandId: brandIdVal, storeId: storeIdVal, whsId: whsIdVal, pagingYn: false};
104 107
 		
105 108
 		fn_ajax_call(WHS_MNG_LOCATION_GRID_LIST, JSON.stringify(param), function(result) {
106 109
 			

+ 115 - 0
bin/src/main/webapp/js/app/popup/biz/ITP_BIZPOP_STORE_ITEM.js

@@ -0,0 +1,115 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+
6
+	});
7
+});
8
+
9
+let API_POP_GRID_LIST = '/api/item/pop-grid-list';
10
+
11
+function itp_fn_BIZPOP_STORE_ITEM(parentPopFn, args, returnType) {
12
+	
13
+	let itp_BIZPOP_STORE_ITEM_param = {};
14
+	let itp_BIZPOP_STORE_ITEM_search = false;
15
+
16
+	const THIS_FORM_ID = '#ITP_FORM_BIZPOP_STORE_ITEM';
17
+	const THIS_GIRD_ID = '#ITP_BIZPOP_STORE_ITEM_jqGrid';
18
+	const THIS_GIRD_PAGER = '#ITP_BIZPOP_STORE_ITEM_jqGridPager';
19
+
20
+	$('#ITP_FORM_BIZPOP_STORE_ITEM_BRAND_ID').val(fn_make_user_info.get('brandId'));
21
+
22
+	$('#ITP_BIZPOP_STORE_ITEM').one('shown.bs.modal', function(e) {
23
+		itp_fn_jqgrid_resize(THIS_GIRD_ID, '#ITP_BIZPOP_STORE_ITEM_jqGrid_list', '');
24
+		itp_fn_fire_window_resize();
25
+	}).one('hidden.bs.modal', function(e) {
26
+		$('#ITP_BIZPOP_STORE_ITEM').remove();
27
+	}).modal('show');
28
+
29
+	$('#ITP_BIZPOP_STORE_ITEM_BTN_SEARCH').on('click', function() {
30
+		itp_BIZPOP_STORE_ITEM_search = true;
31
+		let param = $(THIS_FORM_ID).serializeObject();
32
+		param.gridSize = 10;
33
+		param.gridPage = $.jgrid.defaults.page;
34
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
35
+	});
36
+	
37
+	$('#ITP_BIZPOP_STORE_ITEM_BTN_SELECT').on('click', function() {		
38
+		const rowKey = $(THIS_GIRD_ID).getGridParam('selrow');
39
+	    if (!rowKey) {
40
+	    	return;
41
+	    }
42
+	    const selRow = $(THIS_GIRD_ID).getRowData(rowKey);
43
+		parentPopFn(selRow);
44
+		$('#ITP_BIZPOP_STORE_ITEM').modal('hide'); // 팝업닫기
45
+	});
46
+
47
+	$('#ITP_BIZPOP_STORE_ITEM_jqGridEmpty').on('click', function() {
48
+		itp_fn_BIZPOP_STORE_ITEM_empty.back();
49
+		itp_BIZPOP_STORE_ITEM_param.gridSize = 10;
50
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(itp_BIZPOP_STORE_ITEM_param)}).trigger('reloadGrid');
51
+	});
52
+
53
+	var itp_fn_BIZPOP_STORE_ITEM_empty = {
54
+		push: function() {
55
+			let param = $(THIS_FORM_ID).serializeObject();
56
+			itp_BIZPOP_STORE_ITEM_param = param;
57
+		},
58
+		back: function() {
59
+			$(THIS_FORM_ID + '_BRAND_ID').val(itp_BIZPOP_STORE_ITEM_param.sbrandId);
60
+			$(THIS_FORM_ID + '_CBRAND_NM').val(itp_BIZPOP_STORE_ITEM_param.sbrandNm);
61
+		}
62
+	};
63
+
64
+	itp_fn_BIZPOP_STORE_ITEM_empty.push();
65
+	let param = $('#ITP_FORM_BIZPOP_STORE_ITEM').serializeObject();
66
+	param.gridSize = 10;
67
+	console.log(JSON.stringify(param));
68
+
69
+	$(THIS_GIRD_ID).jqGrid({
70
+		colModel: [
71
+			{
72
+				index: 'STORE_ITEM_ID', name: 'itemId',
73
+				label: '품목ID', //
74
+				width: '10', fixed: false, align: 'center',
75
+				sortable: false, hidden: false
76
+			},
77
+			{
78
+				index: 'BRAND_UNIT_UNQ_NO', name: 'brandUnitUnqNo',
79
+				label: '품목번호', //
80
+				width: '10', fixed: false, align: 'center',
81
+				sortable: false, hidden: false
82
+			},
83
+			{
84
+				index: 'STORE_ITEM_NM', name: 'itemNm',
85
+				label: '품목명', //
86
+				width: '12', fixed: false, align: 'center',
87
+				sortable: false, hidden: false
88
+			},
89
+			{
90
+				index: 'CMPY_TYPE_NM', name: 'podrPssblDvsn',
91
+				label: '발주가능여부', //
92
+				width: '6', fixed: false, align: 'center',
93
+				sortable: false, hidden: false
94
+			}
95
+		],
96
+		loadBeforeSend: function(jqXHR) {
97
+		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
98
+		},
99
+		postData: JSON.stringify(param),
100
+		url: DOMAIN + API_POP_GRID_LIST,
101
+		pager: THIS_GIRD_PAGER,
102
+		multiselect: true,
103
+		rownumbers: false,
104
+		loadComplete: function(data) {
105
+			console.log(data);
106
+			itp_fn_grid_load_complete(data, THIS_GIRD_ID, true, undefined, 'BIZPOP_STORE_ITEM', itp_BIZPOP_STORE_ITEM_search, itp_fn_BIZPOP_STORE_ITEM_empty, true, data.gridRecords, false);
107
+	    },
108
+	    loadError: function(jqXHR, textStatus, errorThrown) {
109
+	    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
110
+	    },
111
+	    onPaging: function(action) {
112
+	    	itp_fn_grid_paging(THIS_GIRD_ID, action, param);
113
+	    }
114
+	}).navGrid(THIS_GIRD_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
115
+};

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

@@ -0,0 +1,122 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+
6
+	});
7
+});
8
+
9
+let API_POP_GRID_LIST = '/api/spply/pop-grid-list';
10
+
11
+function itp_fn_BIZPOP_STORE_SPPLY(parentPopFn, args, returnType) {
12
+	
13
+	let itp_BIZPOP_STORE_SPPLY_param = {};
14
+	let itp_BIZPOP_STORE_SPPLY_search = false;
15
+
16
+	const THIS_FORM_ID = '#ITP_FORM_BIZPOP_STORE_SPPLY';
17
+	const THIS_GIRD_ID = '#ITP_BIZPOP_STORE_SPPLY_jqGrid';
18
+	const THIS_GIRD_PAGER = '#ITP_BIZPOP_STORE_SPPLY_jqGridPager';
19
+
20
+	$('#ITP_FORM_BIZPOP_STORE_SPPLY_BRAND_ID').val(fn_make_user_info.get('brandId'));
21
+	
22
+	$('#ITP_BIZPOP_STORE_SPPLY').one('shown.bs.modal', function(e) {
23
+		itp_fn_jqgrid_resize(THIS_GIRD_ID, '#ITP_BIZPOP_STORE_SPPLY_jqGrid_list', '');
24
+		itp_fn_fire_window_resize();
25
+	}).one('hidden.bs.modal', function(e) {
26
+		$('#ITP_BIZPOP_STORE_SPPLY').remove();
27
+	}).modal('show');
28
+
29
+	$('#ITP_BIZPOP_STORE_SPPLY_BTN_SEARCH').on('click', function() {
30
+		itp_BIZPOP_STORE_SPPLY_search = true;
31
+		let param = $(THIS_FORM_ID).serializeObject();
32
+		param.gridSize = 10;
33
+		param.gridPage = $.jgrid.defaults.page;
34
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
35
+	});
36
+	
37
+	$('#ITP_BIZPOP_STORE_SPPLY_BTN_SELECT').on('click', function() {		
38
+		const rowKey = $(THIS_GIRD_ID).getGridParam('selrow');
39
+	    if (!rowKey) {
40
+	    	return;
41
+	    }
42
+	    const selRow = $(THIS_GIRD_ID).getRowData(rowKey);
43
+		parentPopFn(selRow);
44
+		$('#ITP_BIZPOP_STORE_SPPLY').modal('hide'); // 팝업닫기
45
+	});
46
+
47
+	$('#ITP_BIZPOP_STORE_SPPLY_jqGridEmpty').on('click', function() {
48
+		itp_fn_BIZPOP_STORE_SPPLY_empty.back();
49
+		itp_BIZPOP_STORE_SPPLY_param.gridSize = 10;
50
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(itp_BIZPOP_STORE_SPPLY_param)}).trigger('reloadGrid');
51
+	});
52
+
53
+	var itp_fn_BIZPOP_STORE_SPPLY_empty = {
54
+		push: function() {
55
+			let param = $(THIS_FORM_ID).serializeObject();
56
+			itp_BIZPOP_STORE_SPPLY_param = param;
57
+		},
58
+		back: function() {
59
+			$(THIS_FORM_ID + '_CMPY_CD').val(itp_BIZPOP_STORE_SPPLY_param.scmpyCd);
60
+			$(THIS_FORM_ID + '_CMPY_NM').val(itp_BIZPOP_STORE_SPPLY_param.scmpyNm);
61
+			$(THIS_FORM_ID + '_CMPY_TYPE_CD').val(itp_BIZPOP_STORE_SPPLY_param.scmpyTypeCd);
62
+		}
63
+	};
64
+
65
+	itp_fn_BIZPOP_STORE_SPPLY_empty.push();
66
+	let param = $('#ITP_FORM_BIZPOP_STORE_SPPLY').serializeObject();
67
+	param.gridSize = 10;
68
+	console.log(JSON.stringify(param));
69
+
70
+	$(THIS_GIRD_ID).jqGrid({
71
+		colModel: [
72
+			{
73
+				index: 'BRAND_ID', name: 'brandId',
74
+				label: '브랜드ID', //
75
+				width: '10', fixed: false, align: 'center',
76
+				sortable: false, hidden: true
77
+			},
78
+			{
79
+				index: 'BRAND_NM', name: 'brandNm',
80
+				label: '브랜드명', //
81
+				width: '10', fixed: false, align: 'center',
82
+				sortable: false, hidden: false
83
+			},
84
+			{
85
+				index: 'SPPLY_ID', name: 'spplyId',
86
+				label: '공급업체ID', //
87
+				width: '10', fixed: false, align: 'center',
88
+				sortable: false, hidden: true
89
+			},
90
+			{
91
+				index: 'SPPLY_NM', name: 'spplyNm',
92
+				label: '공급업체명', //
93
+				width: '12', fixed: false, align: 'center',
94
+				sortable: false, hidden: false
95
+			},
96
+			{
97
+				index: 'ST_CD', name: 'stCd',
98
+				label: '상태', //
99
+				width: '6', fixed: false, align: 'center',
100
+				sortable: false, hidden: false
101
+			}
102
+		],
103
+		loadBeforeSend: function(jqXHR) {
104
+		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
105
+		},
106
+		postData: JSON.stringify(param),
107
+		url: DOMAIN + API_POP_GRID_LIST,
108
+		pager: THIS_GIRD_PAGER,
109
+		multiselect: true,
110
+		rownumbers: false,
111
+		loadComplete: function(data) {
112
+			console.log(data);
113
+			itp_fn_grid_load_complete(data, THIS_GIRD_ID, true, undefined, 'BIZPOP_STORE_SPPLY', itp_BIZPOP_STORE_SPPLY_search, itp_fn_BIZPOP_STORE_SPPLY_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
+};

+ 6 - 2
bin/src/main/webapp/js/app/stinfo/ITP_STINFO01010.js

@@ -189,13 +189,17 @@ let pageObj = {
189 189
                 }
190 190
             });
191 191
 
192
-            $('#ITP_FORM_STINFO01010_DETAIL_BRAND_CD').removeAttr('readonly');
192
+            $('#ITP_FORM_STINFO01010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
193
+            $('#ITP_FORM_STINFO01010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
194
+            $('#ITP_FORM_STINFO01010_DETAIL_BRAND_ID').removeAttr('readonly');
193 195
             $('#ITP_FORM_STINFO01010_DETAIL_DUP').removeAttr('disabled');
194 196
         } else if(mode == 'MODIFY') { // 수정
195 197
             $('#ITP_AJAX_STINFO01010_DETAIL_CONTAINER').show();
196 198
             fn_show_btn_auth_array(['#ITP_BTN_STINFO01010_CANCELLIST', '#ITP_BTN_STINFO01010_SAVE', '#ITP_BTN_STINFO01010_RESET_PW']);
197 199
 
198
-            $('#ITP_FORM_STINFO01010_DETAIL_BRAND_CD').attr('readonly', true);
200
+            $('#ITP_FORM_STINFO01010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
201
+            $('#ITP_FORM_STINFO01010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
202
+            $('#ITP_FORM_STINFO01010_DETAIL_BRAND_ID').attr('readonly', true);
199 203
             $('#ITP_FORM_STINFO01010_DETAIL_DUP').attr('disabled', true);
200 204
         } else if(mode == 'VIEW') { // 보기
201 205
             $('#ITP_AJAX_STINFO01010_VIEW_CONTAINER').show();

+ 39 - 52
bin/src/main/webapp/js/app/stinfo/ITP_STINFO02010.js

@@ -188,8 +188,6 @@ let pageObj = {
188 188
 						case 'ITP_BTN_STINFO02010_DELETE'				: 								break;	// 삭제 버튼
189 189
 						case 'ITP_BTN_STINFO02010_SAVE'					: createObj.button.save(); 		break;	// 저장 버튼
190 190
 						case 'ITP_FORM_STINFO02010_DETAIL_ADRES_SCH'	: createObj.button.address();	break;	// 신규등록 주소 찾기
191
-						case 'ITP_FORM_STINFO02010_DETAIL_DUP'			: createObj.button.duplicate();	break;	// 중복체크
192
-						case 'ITP_BTN_STINFO02010_RESET_PW'				: createObj.button.resetPass();	break;	// 상세:비밀번호 초기화
193 191
 					}
194 192
 				});
195 193
 			});
@@ -217,25 +215,25 @@ let pageObj = {
217 215
 				}
218 216
 			});
219 217
 
218
+
219
+			// 가맹점 정보 설정
220
+			$('#ITP_FORM_STINFO02010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
220 221
 			$('#ITP_FORM_STINFO02010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
221 222
 			$('#ITP_FORM_STINFO02010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
222 223
 
223 224
 			$('#ITP_FORM_STINFO02010_DETAIL .fnStoreNm').text('(자동부여)');
224 225
 			$('#ITP_FORM_STINFO02010_DETAIL_STORE_ID').removeAttr('readonly');
225
-			$('#ITP_FORM_STINFO02010_DETAIL_DUP').removeAttr('disabled');
226
+			$('#ITP_FORM_STINFO02010_DETAIL .itp_form_info').hide();
226 227
 		} else if(mode == 'MODIFY') { // 수정
227 228
 			$('#ITP_AJAX_STINFO02010_DETAIL_CONTAINER').show();
228 229
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO02010_CANCELLIST', '#ITP_BTN_STINFO02010_SAVE', '#ITP_BTN_STINFO02010_RESET_PW']);
229 230
 
231
+			$('#ITP_FORM_STINFO02010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
230 232
 			$('#ITP_FORM_STINFO02010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
231 233
 			$('#ITP_FORM_STINFO02010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
232 234
 
233 235
 			$('#ITP_FORM_STINFO02010_DETAIL_STORE_ID').attr('readonly', true);
234
-			$('#ITP_FORM_STINFO02010_DETAIL_DUP').attr('disabled', true);
235
-			$('#ITP_FORM_STINFO02010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
236
-
237
-			$('#ITP_FORM_STINFO02010_DETAIL_SEARCH_AFFL_SHOP').hide();
238
-			$('#ITP_FORM_STINFO02010_DETAIL_DELETE_AFFL_SHOP').hide();
236
+			$('#ITP_FORM_STINFO02010_DETAIL .itp_form_info').show();
239 237
 		} else if(mode == 'VIEW') { // 보기
240 238
 			$('#ITP_AJAX_STINFO02010_VIEW_CONTAINER').show();
241 239
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO02010_MODIFY', '#ITP_BTN_STINFO02010_CANCELLIST']);
@@ -357,7 +355,7 @@ let viewObj = {
357 355
 		fn_ajax_call(API_DETAIL_INFO, param, this.callback, 'GET');
358 356
 	},
359 357
 	callback: function (result) {
360
-		// console.log(result);
358
+		console.log(result);
361 359
 		pageObj.switchScreen('VIEW');
362 360
 		$('#ITP_FORM_STINFO02010_VIEW #ITP_FORM_STINFO02010_VIEW_STORE_ID').val(result.storeId);
363 361
 		$('#ITP_FORM_STINFO02010_VIEW .fnBrandNm').text(result.brandNm);
@@ -383,12 +381,13 @@ let viewObj = {
383 381
 		var cmpyAdres = result.addr1/* + ' ' + result.addr*/;
384 382
 		kakaoMap.init('ITP_FORM_STINFO02010_VIEW', cmpyAdres);
385 383
 
386
-		$('#ITP_FORM_STINFO02010_VIEW .fnBrandAcctInfo').text(result.brandAcctNo);
384
+		$('#ITP_FORM_STINFO02010_VIEW .fnStoreAcctInfo').text(result.storeBnkNm + ' ' + result.storeAcctNo + ' ' + result.storeOwacNm);
387 385
 		$('#ITP_FORM_STINFO02010_VIEW .fnLoanDvsn').text(result.loanDvsnNm);
388
-		$('#ITP_FORM_STINFO02010_VIEW .fnCredtLimitAmt').text(result.limitAmt);
389
-		$('#ITP_FORM_STINFO02010_VIEW .fnTmpRcvAcct').text(result.storeAcctNo);
390
-		$('#ITP_FORM_STINFO02010_VIEW .fnRemainLimitAmt').text(result.limitAmt);
391
-		$('#ITP_FORM_STINFO02010_VIEW .fnRegDt').text(result.sysRegDttm);
386
+		$('#ITP_FORM_STINFO02010_VIEW .fnBrandAcctInfo').text(result.brandBnkNm + ' ' + result.brandAcctNo + ' ' + result.brandOwacNm);
387
+		$('#ITP_FORM_STINFO02010_VIEW .fnAcctBal').text(result.acctBal);
388
+		$('#ITP_FORM_STINFO02010_VIEW .fnWhsUseYn').text(result.whsUseYn);
389
+		$('#ITP_FORM_STINFO02010_VIEW .fnLimitAmt').text(result.limitAmt);
390
+		$('#ITP_FORM_STINFO02010_VIEW .fnSysRegDttm').text(result.sysRegDttm);
392 391
 		$('#ITP_FORM_STINFO02010_VIEW .fnCloseDt').text(result.closeDt);
393 392
 	}
394 393
 };
@@ -413,11 +412,6 @@ let modifyObj = {
413 412
 		console.log(result);
414 413
 		pageObj.switchScreen('MODIFY');
415 414
 
416
-		fn_make_select(CODE_LIST, 'STORE_ST_CD', 'ITP_FORM_STINFO02010_DETAIL_STORE_ST_CD');
417
-		fn_make_select(CODE_LIST, 'AREA_CD', 'ITP_FORM_STINFO02010_DETAIL_AREA_CD');
418
-		fn_make_select(CODE_LIST, 'STORE_DVSN', 'ITP_FORM_STINFO02010_DETAIL_STORE_DVSN');
419
-		fn_make_select(CODE_LIST, 'LOAN_DVSN', 'ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN');
420
-
421 415
 		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_VIEW_CD').val('U');
422 416
 		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_STORE_ID').val(result.storeId);
423 417
 		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
@@ -437,15 +431,23 @@ let modifyObj = {
437 431
 		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_EMAL_ADDR').val(result.emalAddr);
438 432
 		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_AREA_CD').val(result.areaCd);
439 433
 		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_FROM_DT').val(result.openDt);
440
-		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_ZIP_NO').val(result.zipNo);
441
-		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_LOAD_ADDR').val(result.addr1);
442
-		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_DTL_ADDR').val(result.addr2);
443
-		$('#ITP_FORM_STINFO02010_DETAIL .fbBrandAcctInfo').text(result.brandAcctNo);
444
-		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN').val(result.loanDvsn);
445
-		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_CREDT_LIMIT_AMT').val(result.limitAmt);
434
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_ZIPNO').val(result.zipNo);
435
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_ADRES').val(result.addr1);
436
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_ADRES_DTL').val(result.addr2);
446 437
 
447 438
 		var cmpyAdres = result.addr1/* + ' ' + result.addr*/;
448 439
 		kakaoMap.init('ITP_FORM_STINFO02010_DETAIL', cmpyAdres);
440
+
441
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_DPST_BNK_CD').text(result.storeBnkCd);
442
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_ACCT_NO').text(result.storeAcctNo);
443
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_OWAC_NM').text(result.storeOwacNm);
444
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN').val(result.loanDvsn);
445
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_LIMIT_AMT').val(result.limitAmt);
446
+		$('#ITP_FORM_STINFO02010_DETAIL #ITP_FORM_STINFO02010_DETAIL_WHS_USE_YN').val(result.whsUseYn);
447
+		$('#ITP_FORM_STINFO02010_DETAIL .fnBrandAcctInfo').text(result.brandBnkNm + ' ' + result.brandAcctNo + ' ' + result.brandOwacNm);
448
+		$('#ITP_FORM_STINFO02010_DETAIL .fnAcctBal').text(result.acctBal);
449
+		$('#ITP_FORM_STINFO02010_DETAIL .fnTmpRcvAcctTotal').text(result.tmpRcvAcctTotal);
450
+		$('#ITP_FORM_STINFO02010_DETAIL .fnSysChgDttm').text(result.sysChgDttm);
449 451
 	}
450 452
 };
451 453
 
@@ -465,24 +467,8 @@ let createObj = {
465 467
 		save: function() {
466 468
 			const formId = '#ITP_FORM_STINFO02010_DETAIL';
467 469
 			itp_fn_form_clear_validate(null, formId);
468
-			// var vali_userId = itp_fn_form_validate(formId, formId + '_USER_ID', ['empty'], undefined);
469
-			// var vali_userStatCd = itp_fn_form_validate(formId, formId + '_USER_STAT_CD', ['empty'], undefined);
470
-			// var vali_userNm = itp_fn_form_validate(formId, formId + '_USER_NM', ['empty'], undefined);
471
-			// var vali_telNo = itp_fn_form_validate(formId, formId + '_TEL_NO', ['empty'], undefined);
472
-			// var vali_email = itp_fn_form_validate(formId, formId + '_EMAIL', ['empty'], undefined);
473
-			// var vali_userPw = true;
474
-			// var vali_userPwConfirm = true;
475
-
476
-			var isValid = false;
477
-			$(formId).find('input, select, checkbox, textarea').each(function(k) {
478
-				if($(this).data('check-required')) {
479
-					var arry = $(this).data('check-required').split(',');
480
-					isValid = itp_fn_form_validate(formId, '#' + $(this).attr('id'), arry, undefined);
481
-					if(!isValid) return false;
482
-				}
483
-			});
484 470
 
485
-			if (isValid) {
471
+			if (createObj.isValid(formId)) {
486 472
 				let param = $(formId).serializeObject();
487 473
 				console.log(JSON.stringify(param));
488 474
 				var searhFn = function() {
@@ -491,16 +477,17 @@ let createObj = {
491 477
 				};
492 478
 				fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
493 479
 			}
494
-		},
495
-		resetPass: function() {
496
-			var resetPwFn = {
497
-				callBack: function(args) {
498
-					const key = {'storeId':  $('#ITP_FORM_STINFO02010_DETAIL_STORE_ID').val()};
499
-					const param = $.param(key);
500
-					fn_ajax_call(API_INTI_PW, param, undefined, 'GET');
501
-				}
502
-			};
503
-			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
504 480
 		}
481
+	},
482
+	isValid: function(formId) {
483
+		var isValid = false;
484
+		$(formId).find('input, select, checkbox, textarea').each(function(k) {
485
+			if($(this).data('check-required')) {
486
+				var arry = $(this).data('check-required').split(',');
487
+				isValid = itp_fn_form_validate(formId, '#' + $(this).attr('id'), arry, undefined);
488
+				if(!isValid) return false;
489
+			}
490
+		});
491
+		return isValid;
505 492
 	}
506 493
 };

+ 77 - 75
bin/src/main/webapp/js/app/stinfo/ITP_STINFO03010.js

@@ -1,6 +1,6 @@
1 1
 require(['config'], function() {
2 2
 	require([
3
-		'kakao.postcode',
3
+		'kakao.map.util',
4 4
 		'jquery.bootstrap.fileUpload' //파일 업로드가 있는 페이지에서 로딩
5 5
 	], function($) {
6 6
 		pageObj.init();
@@ -196,16 +196,15 @@ let pageObj = {
196 196
 				var id = $(this).attr('id');
197 197
 				$(this).on('click', function() {
198 198
 					switch (id) {
199
-						case 'ITP_BTN_STINFO03010_SRH'				: listObj.button.search();		break;	// 조회 버튼 클릭
200
-						case 'ITP_BTN_STINFO03010_NEWREG'			: listObj.button.create(); 		break;	// 신규등록 버튼
201
-						case 'ITP_BTN_STINFO03010_MODIFY'			: modifyObj.button.modify();	break;	// 수정 버튼
202
-						case 'ITP_BTN_STINFO03010_CANCELLIST'		: createObj.button.cancel(); 	break;	// 취소/목록 버튼
203
-						case 'ITP_BTN_STINFO03010_DELETE'			: 								break;	// 삭제 버튼
204
-						case 'ITP_BTN_STINFO03010_SAVE'				: createObj.button.save(); 		break;	// 저장 버튼
205
-						case 'ITP_FORM_STINFO03010_DETAIL_DUP'		: createObj.button.duplicate();	break;	// 중복체크
206
-						case 'ITP_BTN_STINFO03010_RESET_PW'			: createObj.button.resetPass();	break;	// 상세:비밀번호 초기화
207
-						case 'ITP_BTN_STINFO03010_DETAIL_ADDROW'	: createObj.button.addRow();	break;	// 행추가
208
-						case 'ITP_BTN_STINFO03010_DETAIL_DELROW'	: createObj.button.delRow();	break;	// 행삭제
199
+						case 'ITP_BTN_STINFO03010_SRH'					: listObj.button.search();		break;	// 조회 버튼 클릭
200
+						case 'ITP_BTN_STINFO03010_NEWREG'				: listObj.button.create(); 		break;	// 신규등록 버튼
201
+						case 'ITP_BTN_STINFO03010_MODIFY'				: modifyObj.button.modify();	break;	// 수정 버튼
202
+						case 'ITP_BTN_STINFO03010_CANCELLIST'			: createObj.button.cancel(); 	break;	// 취소/목록 버튼
203
+						case 'ITP_BTN_STINFO03010_DELETE'				: 								break;	// 삭제 버튼
204
+						case 'ITP_BTN_STINFO03010_SAVE'					: createObj.button.save(); 		break;	// 저장 버튼
205
+						case 'ITP_BTN_STINFO03010_DETAIL_ADDROW'		: createObj.button.addRow();	break;	// 행추가
206
+						case 'ITP_BTN_STINFO03010_DETAIL_DELROW'		: createObj.button.delRow();	break;	// 행삭제
207
+						case 'ITP_FORM_STINFO03010_DETAIL_ADRES_SCH'	: createObj.button.address();	break;	// 신규등록 주소 찾기
209 208
 					}
210 209
 				});
211 210
 			});
@@ -220,25 +219,27 @@ let pageObj = {
220 219
 		}
221 220
 	},
222 221
 	fileUpload: function() {
223
-		//파일업로드(수정화면)
222
+		//파일업로드(등록/수정화면)
224 223
 		var id = 'STINFO03010';
225
-		// 통장사본
226
-		$('#ITP_' + id + '_DETAIL_BTN_ACCT_FILE').empty();
224
+		var acctScrId = 'STINFO03010_ACCT';
225
+		$('#ITP_' + id + '_DETAIL_ACCT_FILE_UPLOAD').empty();
227 226
 		const acctFileArgs = {
228 227
 			'fileNo': $('#ITP_FORM_' + id + '_DETAIL_ACCT_FILE_NO').val(),
229 228
 			'viewCd': $('#ITP_FORM_' + id + '_DETAIL_VIEW_CD').val(),
230
-			'showYn': $('#ITP' + id + '_DETAIL_BTN_ACCT_FILE').attr('data-show-yn'),
229
+			'showYn': $('#ITP_' + id + '_DETAIL_ACCT_FILE_UPLOAD').attr('data-show-yn'),
231 230
 			'fileId': '#ITP_FORM_' + id + '_DETAIL_ACCT_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
232 231
 		};
233
-		itp_fn_set_file_upload('ITP_' + id + '_DETAIL_BTN_ACCT_FILE', 'notice', true, false, id, acctFileArgs);
234
-		// 사업자등록파일
235
-		// $('#ITP_' + id + '_DETAIL_BTN_CORP_FILE').empty();
236
-		// const corpFileArgs = {
237
-		// 	'fileNo': $('#ITP_FORM_' + id + '_DETAIL_CORP_FILE_NO').val(),
238
-		// 	'showYn': $('#ITP' + id + '_DETAIL_BTN_CORP_FILE').attr('data-show-yn'),
239
-		// 	'fileId': '#ITP_FORM_' + id + '_DETAIL_CORP_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
240
-		// };
241
-		// itp_fn_set_file_upload('ITP_' + id + '_DETAIL_BTN_CORP_FILE', 'notice', true, false, id, corpFileArgs);
232
+		itp_fn_set_file_upload('ITP_' + id + '_DETAIL_ACCT_FILE_UPLOAD', 'notice', true, false, acctScrId, acctFileArgs);
233
+
234
+		var corpScrId = 'STINFO03010_CORP';
235
+		$('#ITP_' + id + '_DETAIL_CORP_FILE_UPLOAD').empty();
236
+		const corpFileArgs = {
237
+			'fileNo': $('#ITP_FORM_' + id + '_DETAIL_CORP_FILE_NO').val(),
238
+			'viewCd': $('#ITP_FORM_' + id + '_DETAIL_VIEW_CD').val(),
239
+			'showYn': $('#ITP_' + id + '_DETAIL_CORP_FILE_UPLOAD').attr('data-show-yn'),
240
+			'fileId': '#ITP_FORM_' + id + '_DETAIL_CORP_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
241
+		};
242
+		itp_fn_set_file_upload('ITP_' + id + '_DETAIL_CORP_FILE_UPLOAD', 'notice', true, false, corpScrId, corpFileArgs);
242 243
 	},
243 244
 	switchScreen: function(mode) {
244 245
 		$('.itp_det_head').find('button[id^="ITP_BTN_STINFO03010_"]').each(function(i) {
@@ -261,6 +262,8 @@ let pageObj = {
261 262
 				}
262 263
 			});
263 264
 
265
+			// 가맹점 정보 설정
266
+			$('#ITP_FORM_STINFO03010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
264 267
 			$('#ITP_FORM_STINFO03010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
265 268
 			$('#ITP_FORM_STINFO03010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
266 269
 			$('#ITP_FORM_STINFO03010_DETAIL .fnSpplyId').text('(자동부여) (비밀번호는 사업자번호로 초기화 됩니다.)');
@@ -268,6 +271,7 @@ let pageObj = {
268 271
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO03010_CANCELLIST', '#ITP_BTN_STINFO03010_SAVE', '#ITP_BTN_STINFO03010_RESET_PW']);
269 272
 			$('#ITP_AJAX_STINFO03010_DETAIL_CONTAINER').show();
270 273
 
274
+			$('#ITP_FORM_STINFO03010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
271 275
 			$('#ITP_FORM_STINFO03010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
272 276
 			$('#ITP_FORM_STINFO03010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
273 277
 		} else if(mode == 'VIEW') { // 보기
@@ -278,19 +282,24 @@ let pageObj = {
278 282
 	grid: {
279 283
 		init: function(mode, gridData) {
280 284
 			this.gridId = (mode === 'VIEW') ? STINFO03010_VIEW_GRID_ID : STINFO03010_DETAIL_GRID_ID;
285
+			this.gridList = (mode === 'VIEW') ? STINFO03010_VIEW_GRID_LIST : STINFO03010_DETAIL_GRID_LIST;
286
+			this.gridEmpty = (mode === 'VIEW') ? STINFO03010_VIEW_GRID_EMPTY : STINFO03010_DETAIL_GRID_EMPTY;
281 287
 			this.unload();
282 288
 			this.load(mode, gridData);
283 289
 		},
284 290
 		gridId: '',
291
+		gridList: '',
292
+		gridEmpty: '',
285 293
 		load: function(mode, gridData) {
294
+			var _this = this;
286 295
 			var option = {
287
-				gridId: this.gridId,
296
+				gridId: _this.gridId,
288 297
 				colModel: gridColModel.detail,
289 298
 				data: gridData,
290 299
 				multiselect: (mode !== 'VIEW'),
291 300
 				loadComplete: function(data) {
292
-					let gridList = (mode === 'VIEW') ? STINFO03010_VIEW_GRID_LIST : STINFO03010_DETAIL_GRID_LIST;
293
-					$(gridList).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
301
+					$(_this.gridList).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
302
+					(Array.isArray(data.rows) && data.rows.length === 0) ? $(_this.gridEmpty).show() : $(_this.gridEmpty).hide();
294 303
 				}
295 304
 			};
296 305
 			itp_fn_grid_make_local(option);
@@ -511,6 +520,9 @@ let createObj = {
511 520
 		cancel: function() {
512 521
 			listObj.grid.search();
513 522
 		},
523
+		address: function() {
524
+			kakaoMap.simpleAddress('ITP_FORM_STINFO03010_DETAIL');
525
+		},
514 526
 		addRow: function() {
515 527
 			itp_fn_grid_add_row(STINFO03010_DETAIL_GRID_ID, undefined, ['spplyId'], 'STINFO03010_DETAIL');
516 528
 		},
@@ -520,56 +532,46 @@ let createObj = {
520 532
 		save: function() {
521 533
 			const formId = '#ITP_FORM_STINFO03010_DETAIL';
522 534
 			itp_fn_form_clear_validate(null, formId);
523
-			var vali_userId = itp_fn_form_validate(formId, formId + '_USER_ID', ['empty'], undefined);
524
-			var vali_userStatCd = itp_fn_form_validate(formId, formId + '_USER_STAT_CD', ['empty'], undefined);
525
-			var vali_userNm = itp_fn_form_validate(formId, formId + '_USER_NM', ['empty'], undefined);
526
-			var vali_telNo = itp_fn_form_validate(formId, formId + '_TEL_NO', ['empty'], undefined);
527
-			var vali_email = itp_fn_form_validate(formId, formId + '_EMAIL', ['empty'], undefined);
528
-			var vali_userPw = true;
529
-			var vali_userPwConfirm = true;
530
-			if (vali_userId && vali_userStatCd && vali_userNm && vali_userPw && vali_userPwConfirm && vali_telNo && vali_email) {
531
-				if (ITP_FORM_STINFO03010_DETAIL_IS_DUPLICATE) {
532
-					itp_fn_modal_duplicate(ITP_MSG_LOCALE.label.userId, formId + '_USER_ID');
533
-				} else {
534
-					let gridInsertData = [];
535
-					let gridUpdateData = [];
536
-					let gridDeleteData = [];
537
-					const rowData = $(STINFO03010_DETAIL_GRID_ID).getRowData();
538
-					const keyValue = $(formId + '_USER_ID').val();
539
-					$.each(rowData, function(key, value) {
540
-						if (value.viewCd != 'R') {
541
-							value.userId = keyValue;
542
-							if (value.viewCd == 'C') {
543
-								gridInsertData.push(value);
544
-							} else if (value.viewCd == 'U') {
545
-								gridUpdateData.push(value);
546
-							} else if (value.viewCd == 'D') {
547
-								gridDeleteData.push(value);
548
-							}
535
+			if (createObj.isValid(formId)) {
536
+				let gridInsertData = [];
537
+				let gridUpdateData = [];
538
+				let gridDeleteData = [];
539
+				const rowData = $(STINFO03010_DETAIL_GRID_ID).getRowData();
540
+				const keyValue = $(formId + '_BRAND_ID').val();
541
+				$.each(rowData, function(key, value) {
542
+					if (value.viewCd != 'R') {
543
+						value.userId = keyValue;
544
+						if (value.viewCd == 'C') {
545
+							gridInsertData.push(value);
546
+						} else if (value.viewCd == 'U') {
547
+							gridUpdateData.push(value);
548
+						} else if (value.viewCd == 'D') {
549
+							gridDeleteData.push(value);
549 550
 						}
550
-					});
551
-					let param = $(formId).serializeObject();
552
-					param.gridInsertData = gridInsertData;
553
-					param.gridUpdateData = gridUpdateData;
554
-					param.gridDeleteData = gridDeleteData;
555
-					//console.log(JSON.stringify(param));
556
-					var searhFn = function() {
557
-						ITP_FORM_STINFO03010_DETAIL_IS_WRITING = false;
558
-						listObj.grid.search();
559
-					};
560
-					fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
561
-				}
551
+					}
552
+				});
553
+				let param = $(formId).serializeObject();
554
+				param.gridInsertData = gridInsertData;
555
+				param.gridUpdateData = gridUpdateData;
556
+				param.gridDeleteData = gridDeleteData;
557
+				console.log(JSON.stringify(param));
558
+				var searhFn = function() {
559
+					ITP_FORM_STINFO03010_DETAIL_IS_WRITING = false;
560
+					listObj.grid.search();
561
+				};
562
+				fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
562 563
 			}
563
-		},
564
-		resetPass: function() {
565
-			var resetPwFn = {
566
-				callBack: function(args) {
567
-					const key = {'storeId':  $('#ITP_FORM_STINFO03010_DETAIL_STORE_ID').val()};
568
-					const param = $.param(key);
569
-					fn_ajax_call(API_INTI_PW, param, undefined, 'GET');
570
-				}
571
-			};
572
-			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
573 564
 		}
565
+	},
566
+	isValid: function(formId) {
567
+		var isValid = false;
568
+		$(formId).find('input, select, checkbox, textarea').each(function(k) {
569
+			if($(this).data('check-required')) {
570
+				var arry = $(this).data('check-required').split(',');
571
+				isValid = itp_fn_form_validate(formId, '#' + $(this).attr('id'), arry, undefined);
572
+				if(!isValid) return false;
573
+			}
574
+		});
575
+		return isValid;
574 576
 	}
575 577
 };

+ 94 - 88
bin/src/main/webapp/js/app/stinfo/ITP_STINFO04010.js

@@ -154,6 +154,7 @@ let pageObj = {
154 154
     init: function () {
155 155
         this.ui.init();
156 156
         this.event.init();
157
+        this.fileUpload();
157 158
     },
158 159
     ui: {
159 160
         init: function () {
@@ -172,12 +173,7 @@ let pageObj = {
172 173
                 }
173 174
             });
174 175
 
175
-            $('.detail_item_unit').each(function() {
176
-                var id = $(this).attr('id');
177
-                fn_make_select(CODE_LIST, 'DSTRBT_COST_UNIT', $(this).attr('id'));
178
-            });
179
-
180
-            itemClassLevel.list(1, true);
176
+            itemClassLevel.make(1, 'LIST');
181 177
         },
182 178
         grid: function() {
183 179
             itp_fn_jqgrid_resize(STINFO04010_GRID_ID, STINFO04010_GRID_LIST, 'lg');
@@ -219,6 +215,18 @@ let pageObj = {
219 215
 
220 216
         }
221 217
     },
218
+    fileUpload: function() {
219
+        //파일업로드(등록/수정화면)
220
+        var id = 'STINFO04010';
221
+        $('#ITP_' + id + '_DETAIL_UPLOAD').empty();
222
+        const fileArgs = {
223
+            'fileNo': $('#ITP_FORM_' + id + '_DETAIL_FILE_NO').val(),
224
+            'viewCd': $('#ITP_FORM_' + id + '_DETAIL_VIEW_CD').val(),
225
+            'showYn': $('#ITP_' + id + '_DETAIL_UPLOAD').attr('data-show-yn'),
226
+            'fileId': '#ITP_FORM_' + id + '_DETAIL_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
227
+        };
228
+        itp_fn_set_file_upload('ITP_' + id + '_DETAIL_UPLOAD', 'notice', true, false, id, fileArgs);
229
+    },
222 230
     switchScreen: function(mode) {
223 231
         $('.itp_det_head').find('button[id^="ITP_BTN_STINFO04010_"]').each(function(i) {
224 232
             $(this).hide();
@@ -243,13 +251,16 @@ let pageObj = {
243 251
             $('#ITP_FORM_STINFO04010_DETAIL_STORE_ID').removeAttr('readonly');
244 252
             $('#ITP_FORM_STINFO04010_DETAIL_DUP').removeAttr('disabled');
245 253
 
254
+            // 가맹점 정보 설정
255
+            $('#ITP_FORM_STINFO04010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
246 256
             $('#ITP_FORM_STINFO04010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
247 257
             $('#ITP_FORM_STINFO04010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
248
-            $('#ITP_FORM_STINFO04010_DETAIL .fnStoreNm').text('(자동부여)');
258
+            $('#ITP_FORM_STINFO04010_DETAIL .fnItemClassMgntNo').text('(자동부여)');
249 259
         } else if(mode == 'MODIFY') { // 수정
250 260
             $('#ITP_AJAX_STINFO04010_DETAIL_CONTAINER').show();
251 261
             fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_CANCELLIST', '#ITP_BTN_STINFO04010_SAVE', '#ITP_BTN_STINFO04010_RESET_PW']);
252 262
 
263
+            $('#ITP_FORM_STINFO04010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
253 264
             $('#ITP_FORM_STINFO04010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
254 265
             $('#ITP_FORM_STINFO04010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
255 266
             $('#ITP_FORM_STINFO04010_DETAIL_STORE_ID').attr('readonly', true);
@@ -260,6 +271,7 @@ let pageObj = {
260 271
             $('#ITP_FORM_STINFO04010_DETAIL_DELETE_AFFL_SHOP').hide();
261 272
         } else if(mode == 'VIEW') { // 보기
262 273
             $('#ITP_AJAX_STINFO04010_VIEW_CONTAINER').show();
274
+            $('#ITP_FORM_STINFO04010_VIEW .fnBrandNm').text(fn_make_user_info.get('brandNm'));
263 275
             fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_MODIFY', '#ITP_BTN_STINFO04010_CANCELLIST']);
264 276
         }
265 277
     }
@@ -288,13 +300,13 @@ let listObj = {
288 300
     },
289 301
     form: function() {
290 302
         $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS1').on('change', function() {
291
-            ($(this).val() === '') ? itemClassLevel.clear(2, true): itemClassLevel.list(2, true);
303
+            ($(this).val() === '') ? itemClassLevel.clear(2): itemClassLevel.change(2);
292 304
         });
293 305
         $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS2').on('change', function() {
294
-            ($(this).val() === '') ? itemClassLevel.clear(3, true): itemClassLevel.list(3, true);
306
+            ($(this).val() === '') ? itemClassLevel.clear(3): itemClassLevel.change(3);
295 307
         });
296 308
         $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS3').on('change', function() {
297
-            ($(this).val() === '') ? itemClassLevel.clear(4, true): itemClassLevel.list(4, true);
309
+            ($(this).val() === '') ? itemClassLevel.clear(4): itemClassLevel.change(4);
298 310
         });
299 311
     },
300 312
     empty: {
@@ -396,7 +408,6 @@ let viewObj = {
396 408
         console.log(result);
397 409
         pageObj.switchScreen('VIEW');
398 410
         $('#ITP_FORM_STINFO04010_VIEW #ITP_FORM_STINFO04010_VIEW_ITEM_ID').val(result.itemId);
399
-        $('#ITP_FORM_STINFO04010_VIEW .fnBrandNm').text(result.brandNm);
400 411
         $('#ITP_FORM_STINFO04010_VIEW .fnStCd').text(result.itemStNm);
401 412
         $('#ITP_FORM_STINFO04010_VIEW .fnItemClass1').text(result.itemClass1);
402 413
         $('#ITP_FORM_STINFO04010_VIEW .fnItemClass2').text(result.itemClass2);
@@ -421,7 +432,7 @@ let viewObj = {
421 432
         $('#ITP_FORM_STINFO04010_VIEW .fnHigh').text(result.high);
422 433
         $('#ITP_FORM_STINFO04010_VIEW .fnOneBoxQty').text(result.oneBoxQty);
423 434
         $('#ITP_FORM_STINFO04010_VIEW .fnExpryYn').text(result.expryYn);
424
-        $('#ITP_FORM_STINFO04010_VIEW .fnExpryDate').text(result.expryDate);
435
+        $('#ITP_FORM_STINFO04010_VIEW .fnExpryPeriod').text(result.expryPeriod);
425 436
         $('#ITP_FORM_STINFO04010_VIEW .fnRtnPssblYn').text(result.rtnPssblYn);
426 437
         $('#ITP_FORM_STINFO04010_VIEW .fnRtnDvsn').text(result.rtnDvsn);
427 438
         // $('#ITP_FORM_STINFO04010_VIEW .fnItemImage').text(result.imageFileNoList);
@@ -474,18 +485,18 @@ let modifyObj = {
474 485
         $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_HIGH').val(result.high);
475 486
         $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ONE_BOX_QTY').val(result.oneBoxQty);
476 487
         $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_EXPRY_YN').val(result.expryYn);
477
-        $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_EXPRY_DATE').val(result.expryDate);
488
+        $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_EXPRY_PERIOD').val(result.expryPeriod);
478 489
         $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_RTN_PSSBL_YN').val(result.rtnPssblYn);
479 490
         $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_RTN_DVSN').val(result.rtnDvsn);
480 491
         $.each(result.imageFileNoList, function(index, item) {
481 492
             $('#ITP_FORM_STINFO04010_VIEW .ITEM_IMAGE').append('<img src=" + item.filePath +" />');
482 493
         });
483 494
 
484
-        itemClassLevel.detail.data.push(result.itemClass1);
485
-        itemClassLevel.detail.data.push(result.itemClass2);
486
-        itemClassLevel.detail.data.push(result.itemClass3);
487
-        itemClassLevel.detail.data.push(result.itemClass4);
488
-        itemClassLevel.detail.make();
495
+        itemClassLevel.data.push(result.itemClass1);
496
+        itemClassLevel.data.push(result.itemClass2);
497
+        itemClassLevel.data.push(result.itemClass3);
498
+        itemClassLevel.data.push(result.itemClass4);
499
+        itemClassLevel.make(1, 'MODIFY');
489 500
     }
490 501
 };
491 502
 
@@ -494,106 +505,101 @@ let createObj = {
494 505
     init: function () {
495 506
         pageObj.switchScreen('ADD');
496 507
         itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO04010_DETAIL');
497
-        $('#ITP_FORM_STINFO04010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
498
-        itemClassLevel.list(1, false);
508
+        this.button.init();
509
+        itemClassLevel.make(1, 'ADD');
499 510
     },
500 511
     button: {
512
+        init: function() {
513
+            $('#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS1').off('change').on('change', function() {
514
+                ($(this).val() === '') ? itemClassLevel.clear(2): itemClassLevel.change(2);
515
+            });
516
+            $('#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS2').off('change').on('change', function() {
517
+                ($(this).val() === '') ? itemClassLevel.clear(3): itemClassLevel.change(3);
518
+            });
519
+            $('#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS3').off('change').on('change', function() {
520
+                ($(this).val() === '') ? itemClassLevel.clear(4): itemClassLevel.change(4);
521
+            });
522
+        },
501 523
         cancel: function() {
502 524
             listObj.grid.search();
503 525
         },
504 526
         save: function() {
505 527
             const formId = '#ITP_FORM_STINFO04010_DETAIL';
506 528
             itp_fn_form_clear_validate(null, formId);
507
-            var vali_userId = itp_fn_form_validate(formId, formId + '_USER_ID', ['empty'], undefined);
508
-            var vali_userStatCd = itp_fn_form_validate(formId, formId + '_USER_STAT_CD', ['empty'], undefined);
509
-            var vali_userNm = itp_fn_form_validate(formId, formId + '_USER_NM', ['empty'], undefined);
510
-            var vali_telNo = itp_fn_form_validate(formId, formId + '_TEL_NO', ['empty'], undefined);
511
-            var vali_email = itp_fn_form_validate(formId, formId + '_EMAIL', ['empty'], undefined);
512
-            var vali_userPw = true;
513
-            var vali_userPwConfirm = true;
514
-            if (vali_userId && vali_userStatCd && vali_userNm && vali_userPw && vali_userPwConfirm && vali_telNo && vali_email) {
515
-                if (ITP_FORM_STINFO04010_DETAIL_IS_DUPLICATE) {
516
-                    itp_fn_modal_duplicate(ITP_MSG_LOCALE.label.userId, formId + '_USER_ID');
517
-                } else {
518
-                    let gridInsertData = [];
519
-                    let gridUpdateData = [];
520
-                    let gridDeleteData = [];
521
-                    const rowData = $(STINFO04010_DETAIL_GRID_ID).getRowData();
522
-                    const keyValue = $(formId + '_USER_ID').val();
523
-                    $.each(rowData, function(key, value) {
524
-                        if (value.viewCd != 'R') {
525
-                            value.userId = keyValue;
526
-                            if (value.viewCd == 'C') {
527
-                                gridInsertData.push(value);
528
-                            } else if (value.viewCd == 'U') {
529
-                                gridUpdateData.push(value);
530
-                            } else if (value.viewCd == 'D') {
531
-                                gridDeleteData.push(value);
532
-                            }
533
-                        }
534
-                    });
535
-                    let param = $(formId).serializeObject();
536
-                    param.gridInsertData = gridInsertData;
537
-                    param.gridUpdateData = gridUpdateData;
538
-                    param.gridDeleteData = gridDeleteData;
539
-                    //console.log(JSON.stringify(param));
540
-                    var searhFn = function() {
541
-                        ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
542
-                        listObj.grid.search();
543
-                    };
544
-                    fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
545
-                }
529
+            if (createObj.isValid(formId)) {
530
+                let param = $(formId).serializeObject();
531
+                console.log(JSON.stringify(param));
532
+                var searhFn = function() {
533
+                    ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
534
+                    listObj.grid.search();
535
+                };
536
+                fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
546 537
             }
547 538
         }
539
+    },
540
+    isValid: function(formId) {
541
+        var isValid = false;
542
+        $(formId).find('input, select, checkbox, textarea').each(function(k) {
543
+            if($(this).data('check-required')) {
544
+                var arry = $(this).data('check-required').split(',');
545
+                isValid = itp_fn_form_validate(formId, '#' + $(this).attr('id'), arry, undefined);
546
+                if(!isValid) return false;
547
+            }
548
+        });
549
+        return isValid;
548 550
     }
549 551
 };
550 552
 
551 553
 var itemClassLevel = {
552
-    isList: true,
553 554
     level: 1,
555
+    levelID: '',
556
+    data: [],
554 557
     keys: function() {
555 558
         var keys = {sBrandId:fn_make_user_info.get('brandId'), sItemLevel: this.level};
556
-        for(var i=1; i<this.level; i++) {
559
+        for(var i=1; i<=this.level; i++) {
557 560
             var key = 'sItemClass' + i;
558
-            var id = (this.isList ? '#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS' : '#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS') + i;
561
+            var id = '#' + this.levelID + i;
559 562
             keys[key] = $(id + ' option:selected').val();
560 563
         }
561 564
         return keys;
562 565
     },
563
-    list: function(level, isList) {
566
+    make: function(level, mode) {
564 567
         this.level = level;
565
-        this.isList = isList;
566
-        this.clear(level, isList);
567
-        this.call( $.param(this.keys()));
568
-    },
569
-    detail: {
570
-        data: [],
571
-        make: function() {
572
-            itemClassLevel.isList = false;
573
-            itemClassLevel.call( $.param(itemClassLevel.keys()));
568
+        this.levelID = (mode === 'LIST' ? 'ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS' : 'ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS');
569
+        if(mode !== 'MODIFY') {
570
+            this.data.length = 0;
571
+            this.clear(1);
574 572
         }
573
+        this.call($.param(this.keys()), mode === 'MODIFY');
575 574
     },
576
-    call: function(param) {
577
-        fn_ajax_call(API_ITEM_CLASS_LEVEL, param, this.callback, 'GET');
575
+    change: function(level) {
576
+        this.level = level;
577
+        this.clear(level);
578
+        this.call($.param(this.keys()), false);
578 579
     },
579
-    callback: function(result) {
580
-        // console.log(result);
581
-        var id = (itemClassLevel.isList ? 'ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS' : 'ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS')  + itemClassLevel.level;
582
-        fn_make_select_item_class(result.searchList, id, true, '선택');
583
-        if(!itemClassLevel.isList) {
584
-            $('#' + id).val(itemClassLevel.detail.data[ itemClassLevel.level - 1]);
585
-            if(itemClassLevel.level < itemClassLevel.detail.data.length) {
586
-                if(itemClassLevel.detail.data[itemClassLevel.level] !== '') {
587
-                    itemClassLevel.level++;
588
-                    itemClassLevel.call( $.param(itemClassLevel.keys()));
580
+    call: function(param, isModify) {
581
+        var _this = this;
582
+        var callbackFn = function(result) {
583
+            var id = _this.levelID + _this.level;
584
+            fn_make_select_item_class(result.searchList, id, true, _this.emptyText());
585
+            if(isModify) {
586
+                $('#' + id).val(_this.data[ _this.level - 1]);
587
+                if(_this.level < _this.data.length) {
588
+                    if(_this.data[_this.level] !== '') {
589
+                        _this.level++;
590
+                        _this.call( $.param(_this.keys()), isModify);
591
+                    }
589 592
                 }
590 593
             }
591
-        }
594
+        };
595
+        fn_ajax_call(API_ITEM_CLASS_LEVEL, param, callbackFn, 'GET');
596
+    },
597
+    emptyText: function() {
598
+        return '품목분류Level' + this.level;
592 599
     },
593
-    clear: function(level, isList) {
600
+    clear: function(level) {
594 601
         for(var i=level; i<5; i++) {
595
-            var id = (isList ? 'ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS' : 'ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS') + i;
596
-            $('#' + id).find('option').remove();
602
+            $('#' + (this.levelID + i)).find('option:not(:first)').remove();
597 603
         }
598 604
     }
599 605
 };

+ 97 - 37
bin/src/main/webapp/js/app/stinfo/ITP_STINFO05010.js

@@ -61,8 +61,8 @@ const gridColModel = {
61 61
 			sortable: false, hidden: false
62 62
 		},
63 63
 		{
64
-			index: 'SPPLY_ID_NM', name: 'spplyIdNm',
65
-			label: ITP_MSG_LOCALE.label.spplyIdNm, //공급업체명
64
+			index: 'SPPLY_ID_NM', name: 'spplyNm',
65
+			label: ITP_MSG_LOCALE.label.spplyNm, //공급업체명
66 66
 			width: '13', fixed: false, align: 'center',
67 67
 			sortable: false, hidden: false
68 68
 		},
@@ -158,7 +158,7 @@ let pageObj = {
158 158
 				}
159 159
 			});
160 160
 
161
-			itemClassLevel.list(1, true);
161
+			itemClassLevel.list(1);
162 162
 
163 163
 			// 조회일자 지정
164 164
 			$('#ITP_TAB_STINFO05010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
@@ -194,6 +194,13 @@ let pageObj = {
194 194
 				});
195 195
 			});
196 196
 
197
+			$('button[id^="ITP_BTN_STINFO05010_SEARCH"]').on('click', function() {
198
+				popSearch.init($(this).attr('id'), 'SPPLY');
199
+			});
200
+			$('button[id^="ITP_BTN_STINFO05010_DETAIL"]').on('click', function() {
201
+				var id = $(this).attr('id');
202
+				popSearch.init(id, id.indexOf('ITEM') > -1 ? 'ITEM' : 'SPPLY');
203
+			});
197 204
 		}
198 205
 	},
199 206
 	switchScreen: function(mode) {
@@ -217,6 +224,10 @@ let pageObj = {
217 224
 				}
218 225
 			});
219 226
 
227
+			// 가맹점 정보 설정
228
+			$('#ITP_FORM_STINFO05010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
229
+			$('#ITP_FORM_STINFO05010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
230
+
220 231
 			$('#ITP_FORM_STINFO05010_DETAIL_STORE_ID').removeAttr('readonly');
221 232
 			$('#ITP_FORM_STINFO05010_DETAIL_DUP').removeAttr('disabled');
222 233
 
@@ -225,6 +236,9 @@ let pageObj = {
225 236
 			$('#ITP_AJAX_STINFO05010_DETAIL_CONTAINER').show();
226 237
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO05010_CANCELLIST', '#ITP_BTN_STINFO05010_SAVE', '#ITP_BTN_STINFO05010_RESET_PW']);
227 238
 
239
+			$('#ITP_FORM_STINFO05010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
240
+			$('#ITP_FORM_STINFO05010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
241
+
228 242
 			$('#ITP_FORM_STINFO05010_DETAIL_STORE_ID').attr('readonly', true);
229 243
 			$('#ITP_FORM_STINFO05010_DETAIL_DUP').attr('disabled', true);
230 244
 			$('#ITP_FORM_STINFO05010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
@@ -261,13 +275,13 @@ let listObj = {
261 275
 	},
262 276
 	form: function() {
263 277
 		$('#ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS1').on('change', function() {
264
-			($(this).val() === '') ? itemClassLevel.clear(2, true): itemClassLevel.list(2, true);
278
+			($(this).val() === '') ? itemClassLevel.clear(2): itemClassLevel.list(2);
265 279
 		});
266 280
 		$('#ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS2').on('change', function() {
267
-			($(this).val() === '') ? itemClassLevel.clear(3, true): itemClassLevel.list(3, true);
281
+			($(this).val() === '') ? itemClassLevel.clear(3): itemClassLevel.list(3);
268 282
 		});
269 283
 		$('#ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS3').on('change', function() {
270
-			($(this).val() === '') ? itemClassLevel.clear(4, true): itemClassLevel.list(4, true);
284
+			($(this).val() === '') ? itemClassLevel.clear(4): itemClassLevel.list(4);
271 285
 		});
272 286
 	},
273 287
 	empty: {
@@ -368,7 +382,7 @@ let viewObj = {
368 382
 		pageObj.switchScreen('VIEW');
369 383
 		$('#ITP_FORM_STINFO05010_VIEW #ITP_FORM_STINFO05010_VIEW_ITEM_ID').val(result.itemId);
370 384
 		$('#ITP_FORM_STINFO05010_VIEW #ITP_FORM_STINFO05010_VIEW_BRAND_UNIT_UNQ_NO').val(result.brandUnitUnqNo);
371
-		$('#ITP_FORM_STINFO05010_VIEW .fnBrandNm').text(result.brandId);
385
+		$('#ITP_FORM_STINFO05010_VIEW .fnBrandNm').text(result.brandNm);
372 386
 		$('#ITP_FORM_STINFO05010_VIEW .fnStCd').text(result.unitStNm);
373 387
 		$('#ITP_FORM_STINFO05010_VIEW .fnItemClassMgntNo').text(result.itemClassMgntNo);
374 388
 		$('#ITP_FORM_STINFO05010_VIEW .fnItemNm').text(result.itemClassNm);
@@ -417,7 +431,7 @@ let modifyObj = {
417 431
 		$('#ITP_FORM_STINFO05010_DETAIL #ITP_FORM_STINFO05010_DETAIL_VIEW_CD').val('U');
418 432
 		$('#ITP_FORM_STINFO05010_DETAIL #ITP_FORM_STINFO05010_DETAIL_ITEM_ID').val(result.itemId);
419 433
 		$('#ITP_FORM_STINFO05010_DETAIL #ITP_FORM_STINFO05010_DETAIL_BRAND_UNIT_UNQ_NO').val(result.brandUnitUnqNo);
420
-		$('#ITP_FORM_STINFO05010_DETAIL .fnBrandNm').text(result.brandId);
434
+		$('#ITP_FORM_STINFO05010_DETAIL .fnBrandNm').text(result.brandNm);
421 435
 		$('#ITP_FORM_STINFO05010_DETAIL #ITP_FORM_STINFO05010_DETAIL_ST_CD').val(result.unitStCd);
422 436
 		// $('#ITP_FORM_STINFO05010_DETAIL .fnItemClassMgntNo').text(result.itemId);
423 437
 		$('#ITP_FORM_STINFO05010_DETAIL #ITP_FORM_STINFO05010_DETAIL_ITEM_CLASS_MGNT_NO').val(result.itemClassMgntNo);
@@ -450,6 +464,7 @@ let createObj = {
450 464
 		pageObj.switchScreen('ADD');
451 465
 		itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO05010_DETAIL');
452 466
 		$('#ITP_FORM_STINFO05010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
467
+		$('#ITP_FORM_STINFO05010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
453 468
 	},
454 469
 	button: {
455 470
 		cancel: function() {
@@ -458,37 +473,38 @@ let createObj = {
458 473
 		save: function() {
459 474
 			const formId = '#ITP_FORM_STINFO05010_DETAIL';
460 475
 			itp_fn_form_clear_validate(null, formId);
461
-			var vali_userId = itp_fn_form_validate(formId, formId + '_USER_ID', ['empty'], undefined);
462
-			var vali_userStatCd = itp_fn_form_validate(formId, formId + '_USER_STAT_CD', ['empty'], undefined);
463
-			var vali_userNm = itp_fn_form_validate(formId, formId + '_USER_NM', ['empty'], undefined);
464
-			var vali_telNo = itp_fn_form_validate(formId, formId + '_TEL_NO', ['empty'], undefined);
465
-			var vali_email = itp_fn_form_validate(formId, formId + '_EMAIL', ['empty'], undefined);
466
-			var vali_userPw = true;
467
-			var vali_userPwConfirm = true;
468
-			if (vali_userId && vali_userStatCd && vali_userNm && vali_userPw && vali_userPwConfirm && vali_telNo && vali_email) {
469
-				if (ITP_FORM_STINFO05010_DETAIL_IS_DUPLICATE) {
470
-					itp_fn_modal_duplicate(ITP_MSG_LOCALE.label.userId, formId + '_USER_ID');
471
-				} else {
472
-					let param = $(formId).serializeObject();
473
-					//console.log(JSON.stringify(param));
474
-					var searhFn = function() {
475
-						ITP_FORM_STINFO05010_DETAIL_IS_WRITING = false;
476
-						listObj.grid.search();
477
-					};
478
-					fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
479
-				}
476
+			if (createObj.isValid(formId)) {
477
+				let param = $(formId).serializeObject();
478
+				console.log(JSON.stringify(param));
479
+				var searhFn = function() {
480
+					ITP_FORM_STINFO05010_DETAIL_IS_WRITING = false;
481
+					listObj.grid.search();
482
+				};
483
+				fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
480 484
 			}
481 485
 		}
486
+	},
487
+	isValid: function(formId) {
488
+		var isValid = false;
489
+		$(formId).find('input, select, checkbox, textarea').each(function(k) {
490
+			if($(this).data('check-required')) {
491
+				var arry = $(this).data('check-required').split(',');
492
+				isValid = itp_fn_form_validate(formId, '#' + $(this).attr('id'), arry, undefined);
493
+				if(!isValid) return false;
494
+			}
495
+		});
496
+		return isValid;
482 497
 	}
483 498
 };
484 499
 
485 500
 var itemClassLevel = {
486 501
 	level: 1,
502
+	levelID: 'ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS',
487 503
 	keys: function() {
488 504
 		var keys = {sBrandId:fn_make_user_info.get('brandId'), sItemLevel: this.level};
489
-		for(var i=1; i<this.level; i++) {
505
+		for(var i=1; i<=this.level; i++) {
490 506
 			var key = 'sItemClass' + i;
491
-			var id = '#ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS' + i;
507
+			var id = '#' + this.levelID + i;
492 508
 			keys[key] = $(id + ' option:selected').val();
493 509
 		}
494 510
 		return keys;
@@ -499,17 +515,61 @@ var itemClassLevel = {
499 515
 		this.call( $.param(this.keys()));
500 516
 	},
501 517
 	call: function(param) {
502
-		fn_ajax_call(API_ITEM_CLASS_LEVEL, param, this.callback, 'GET');
518
+		var _this = this;
519
+		var callbackFn = function(result) {
520
+			console.log(result);
521
+			var id = _this.levelID + _this.level;
522
+			fn_make_select_item_class(result.searchList, id, true, _this.emptyText());
523
+		};
524
+		fn_ajax_call(API_ITEM_CLASS_LEVEL, param, callbackFn, 'GET');
503 525
 	},
504
-	callback: function(result) {
505
-		// console.log(result);
506
-		var id ='ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS' + itemClassLevel.level;
507
-		fn_make_select_item_class(result.searchList, id, true, '선택');
526
+	emptyText: function() {
527
+		return '품목분류Level' + this.level;
508 528
 	},
509
-	clear: function(level, isList) {
529
+	clear: function(level) {
510 530
 		for(var i=level; i<5; i++) {
511
-			var id = 'ITP_FORM_STINFO05010_SEARCH_ITEM_CLASS' + i;
512
-			$('#' + id).find('option').remove();
531
+			$('#' + (this.levelID + i)).find('option:not(:first)').remove();
532
+		}
533
+	}
534
+};
535
+
536
+var popSearch = {
537
+	init: function(id, mode) {
538
+		(id.lastIndexOf('DELETE') > -1 ? this.delete(id) : this.popup(id));
539
+	},
540
+	popup: function(id) {
541
+		var popId = id.lastIndexOf('ITEM') > -1 ? 'BIZPOP_STORE_ITEM' : 'BIZPOP_STORE_SPPLY';
542
+		var popFn = function(rowDataPop) {
543
+			console.log(rowDataPop);
544
+			$.each(rowDataPop, function(key, value) {
545
+				if(id.indexOf('SEARCH') > -1) {
546
+					$('#ITP_FORM_STINFO05010_SEARCH_SPPLY_NM').val(rowDataPop.spplyNm);
547
+				} else {
548
+					if(id.lastIndexOf('ITEM') > -1) {
549
+						$('#ITP_FORM_STINFO05010_DETAIL_ITEM_CLASS_MGNT_NO').val(rowDataPop.brandUnitUnqNo);
550
+						$('#ITP_FORM_STINFO05010_DETAIL_ITEM_NM').val(rowDataPop.itemNm);
551
+					} else {
552
+						$('#ITP_FORM_STINFO05010_DETAIL_SPPLY_ID').val(rowDataPop.spplyId);
553
+						$('#ITP_FORM_STINFO05010_DETAIL_SPPLY_NM').val(rowDataPop.spplyNm);
554
+					}
555
+				}
556
+			});
557
+		};
558
+		var agrs = {'sbrandId': fn_make_user_info.get('brandId')};
559
+		fn_call_popup('biz', popId, '#ITP_ASIDE', popFn, agrs, 'S');
560
+		// fn_call_popup('biz', 'BIZPOP_AFFL_BRAND', '#ITP_ASIDE', popFn, agrs, 'S');
561
+	},
562
+	delete: function(id) {
563
+		if(id.indexOf('SEARCH') > -1) {
564
+			$('#ITP_FORM_STINFO05010_SEARCH_SPPLY_NM').val('');
565
+		} else {
566
+			if(id.lastIndexOf('ITEM') > -1) {
567
+				$('#ITP_FORM_STINFO05010_DETAIL_ITEM_CLASS_MGNT_NO').val('');
568
+				$('#ITP_FORM_STINFO05010_DETAIL_ITEM_NM').val('');
569
+			} else {
570
+				$('#ITP_FORM_STINFO05010_DETAIL_SPPLY_ID').val('');
571
+				$('#ITP_FORM_STINFO05010_DETAIL_SPPLY_NM').val('');
572
+			}
513 573
 		}
514 574
 	}
515 575
 };

+ 8 - 0
bin/src/main/webapp/js/app/stinfo/ITP_STINFO06010.js

@@ -111,6 +111,10 @@ let pageObj = {
111 111
 				}
112 112
 			});
113 113
 
114
+			// 가맹점 정보 설정
115
+			$('#ITP_FORM_STINFO06010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
116
+			$('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
117
+
114 118
 			$('#ITP_FORM_STINFO06010_DETAIL_STORE_ID').removeAttr('readonly');
115 119
 			$('#ITP_FORM_STINFO06010_DETAIL_DUP').removeAttr('disabled');
116 120
 
@@ -118,6 +122,10 @@ let pageObj = {
118 122
 		} else if(mode == 'MODIFY') { // 수정
119 123
 			$('#ITP_AJAX_STINFO06010_DETAIL_CONTAINER').show();
120 124
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_CANCELLIST', '#ITP_BTN_STINFO06010_SAVE', '#ITP_BTN_STINFO06010_RESET_PW']);
125
+
126
+			// 가맹점 정보 설정
127
+			$('#ITP_FORM_STINFO06010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
128
+			$('#ITP_FORM_STINFO06010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
121 129
 		} else if(mode == 'VIEW') { // 보기
122 130
 			$('#ITP_AJAX_STINFO06010_VIEW_CONTAINER').show();
123 131
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO06010_MODIFY', '#ITP_BTN_STINFO06010_CANCELLIST']);

+ 8 - 0
bin/src/main/webapp/js/app/stinfo/ITP_STINFO07010.js

@@ -161,6 +161,10 @@ let pageObj = {
161 161
 				}
162 162
 			});
163 163
 
164
+			// 가맹점 정보 설정
165
+			$('#ITP_FORM_STINFO07010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
166
+			$('#ITP_FORM_STINFO07010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
167
+
164 168
 			$('#ITP_FORM_STINFO07010_DETAIL_STORE_ID').removeAttr('readonly');
165 169
 			$('#ITP_FORM_STINFO07010_DETAIL_DUP').removeAttr('disabled');
166 170
 
@@ -169,6 +173,10 @@ let pageObj = {
169 173
 			$('#ITP_AJAX_STINFO07010_DETAIL_CONTAINER').show();
170 174
 			fn_show_btn_auth_array(['#ITP_BTN_STINFO07010_CANCELLIST', '#ITP_BTN_STINFO07010_SAVE', '#ITP_BTN_STINFO07010_RESET_PW']);
171 175
 
176
+			// 가맹점 정보 설정
177
+			$('#ITP_FORM_STINFO07010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
178
+			$('#ITP_FORM_STINFO07010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
179
+
172 180
 			$('#ITP_FORM_STINFO07010_DETAIL_STORE_ID').attr('readonly', true);
173 181
 			$('#ITP_FORM_STINFO07010_DETAIL_DUP').attr('disabled', true);
174 182
 			$('#ITP_FORM_STINFO07010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);

+ 8 - 4
bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG01010.js

@@ -138,6 +138,7 @@ let pageObj = {
138 138
 			
139 139
 			// 브랜드ID 지정
140 140
 			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
141
+			$('#ITP_FORM_STOCKMNG01010_SEARCH_STORE_ID').val(fn_make_user_info.get('storeId'));
141 142
 			
142 143
 			pageObj.fnWhsList(function() {
143 144
 				pageObj.fnLocationList();
@@ -205,7 +206,8 @@ let pageObj = {
205 206
 	}, 
206 207
 	fnWhsList: function(fnCall) {
207 208
 		const brandIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val();	
208
-		const param = {sbrandId: brandIdVal, pagingYn: false};
209
+		const storeIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_STORE_ID').val();	
210
+		const param = {sbrandId: brandIdVal, sstoreId: storeIdVal, pagingYn: false};
209 211
 		
210 212
 		fn_ajax_call(WHS_MNG_DETAIL_GRID_LIST, JSON.stringify(param), function(result) {
211 213
 			
@@ -216,9 +218,10 @@ let pageObj = {
216 218
 		}, 'POST');
217 219
 	}, 
218 220
 	fnLocationList: function(fnCall) {
219
-		const brandIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val();	
221
+		const brandIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val();
222
+		const storeIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_STORE_ID').val();	
220 223
 		const whsIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_WHS_ID').val();	
221
-		const param = {brandId: brandIdVal, whsId: whsIdVal, pagingYn: false};
224
+		const param = {brandId: brandIdVal, storeId: storeIdVal, whsId: whsIdVal, pagingYn: false};
222 225
 		
223 226
 		fn_ajax_call(WHS_MNG_LOCATION_GRID_LIST, JSON.stringify(param), function(result) {
224 227
 			
@@ -258,11 +261,12 @@ let listObj = {
258 261
 		    	return;
259 262
 			}
260 263
 			var brandId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).brandId;
264
+			var storeIdVal = $('#ITP_FORM_STOCKMNG01010_SEARCH_STORE_ID').val();
261 265
 			var whsId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).whsId;
262 266
 			var location = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).location;
263 267
 			var itemId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).itemId;
264 268
 			
265
-			var args = {'brandId': brandId, 'whsId': whsId, 'location': location, 'itemId': itemId};			
269
+			var args = {'brandId': brandId, 'storeId': storeIdVal, 'whsId': whsId, 'location': location, 'itemId': itemId};			
266 270
 			fn_call_popup('biz', 'BIZPOP_PO_STOCK_PROC', '#ITP_ASIDE', function() {
267 271
 				listObj.button.search(); // 조회
268 272
 			}, args, 'S');

+ 8 - 6
bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG02010.js

@@ -305,6 +305,7 @@ let pageObj = {
305 305
 			// 브랜드ID 지정
306 306
 			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
307 307
 			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_NM').val(fn_make_user_info.get('brandNm'));
308
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID').val(fn_make_user_info.get('storeId'));
308 309
 			
309 310
 			pageObj.fnWhsList(function() {
310 311
 				pageObj.fnLocationList();
@@ -332,6 +333,7 @@ let pageObj = {
332 333
 		},
333 334
 		ready: function() {
334 335
 			listObj.init();
336
+			stockCddObj.change();
335 337
 		}
336 338
 	},
337 339
 	event: {
@@ -427,7 +429,8 @@ let pageObj = {
427 429
 	}, 
428 430
 	fnWhsList: function(fnCall) {
429 431
 		const brandIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val();	
430
-		const param = {sbrandId: brandIdVal, pagingYn: false};
432
+		const storeIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID').val();	
433
+		const param = {sbrandId: brandIdVal, sstoreId: storeIdVal, pagingYn: false};
431 434
 		
432 435
 		fn_ajax_call(WHS_MNG_DETAIL_GRID_LIST, JSON.stringify(param), function(result) {
433 436
 			
@@ -439,9 +442,10 @@ let pageObj = {
439 442
 		}, 'POST');
440 443
 	}, 
441 444
 	fnLocationList: function(fnCall) {
442
-		const brandIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val();	
445
+		const brandIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val();
446
+		const storeIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID').val();	
443 447
 		const whsIdVal = $('#ITP_FORM_STOCKMNG02010_SEARCH_WHS_ID').val();	
444
-		const param = {brandId: brandIdVal, whsId: whsIdVal, pagingYn: false};
448
+		const param = {brandId: brandIdVal, storeId: storeIdVal, whsId: whsIdVal, pagingYn: false};
445 449
 		
446 450
 		fn_ajax_call(WHS_MNG_LOCATION_GRID_LIST, JSON.stringify(param), function(result) {
447 451
 			
@@ -648,7 +652,6 @@ let viewObj = {
648 652
 /*재고실사 Object*/
649 653
 let stockCddObj = {
650 654
 	init: function () {
651
-		this.change();
652 655
 		this.unload();
653 656
 		this.load();
654 657
 	},
@@ -678,7 +681,6 @@ let stockCddObj = {
678 681
 					return;
679 682
 				}				
680 683
 				
681
-				// console.log(Object.keys(rowObj[0]).length);
682 684
 				stockCddObj.button.makeExcelDataList(rowObj);				
683 685
 		    };
684 686
 		    if(rABS) reader.readAsBinaryString(input.files[0]); 
@@ -856,7 +858,7 @@ let stockCddObj = {
856 858
 				param.whsId = $('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID').val();
857 859
 				param.location = $('#ITP_FORM_STOCKMNG02010_DETAIL_LOCATION').val();
858 860
 				param.gridInsertData = gridInsertData;
859
-				//console.log(JSON.stringify(param));
861
+				// console.log(JSON.stringify(param));
860 862
 				var searhFn = function() {
861 863
 					ITP_FORM_STOCKMNG02010_DETAIL_IS_WRITING = false;
862 864
 					listObj.grid.search();

+ 7 - 7
bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG04010.js

@@ -401,7 +401,7 @@ let listObj = {
401 401
 						const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
402 402
 						const whsIdVal = $(this).jqGrid('getCell', rowId, 'whsId');
403 403
 						
404
-						const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
404
+						const key = {brandId: brandIdVal, whsId: whsIdVal, storeId: '', viewCd: 'R'};
405 405
 						var param = $.param(key);
406 406
 						viewObj.init(param);
407 407
 					}
@@ -531,7 +531,7 @@ let modifyObj = {
531 531
 			itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04010_DETAIL');
532 532
 			const brandIdVal = $('#ITP_FORM_STOCKMNG04010_VIEW_BRAND_ID').val();
533 533
 			const whsIdVal = $('#ITP_FORM_STOCKMNG04010_VIEW_WHS_ID').val();
534
-			const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
534
+			const key = {brandId: brandIdVal, whsId: whsIdVal, storeId: '', viewCd: 'R'};
535 535
 			var param = $.param(key);
536 536
 			modifyObj.load(param);
537 537
 		}
@@ -748,11 +748,11 @@ let createObj = {
748 748
 /*로케이션정보 Object*/
749 749
 let locInfoObj = {
750 750
 	init: function () {
751
-		if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
752
-			this.action();
753
-		} else {
754
-			this.make();
755
-		}
751
+		// if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
752
+		this.action();
753
+		// } else {
754
+		// this.make();
755
+		// }
756 756
 	},
757 757
 	button: {
758 758
 		addRow: function() {

+ 498 - 0
bin/src/main/webapp/js/app/stockmng/ITP_STOCKMNG04011.js

@@ -0,0 +1,498 @@
1
+/********************************************************
2
+ --------------------------------------------------------
3
+ - Object 목록								            -
4
+ --------------------------------------------------------
5
+ * const gridColModel = {}	: 화면 Grid Object			*
6
+ * let pageObj = {}			: 화면공통 Object			*
7
+ * let listObj = {}			: 목록화면 Object			*
8
+ * let viewObj = {}			: 상세화면 Object			*
9
+ * let modifyObj = {}		: 수정화면 Object			*
10
+ * let createObj = {}		: 신규화면 Object			*
11
+ * let locInfoObj = {}		: 로케이션정보 Object				*
12
+ *******************************************************/
13
+
14
+/*화면 변수*/
15
+const STOCKMNG04011_VIEW_GRID_ID = '#ITP_STOCKMNG04011_VIEW_jqGrid';
16
+const STOCKMNG04011_VIEW_GRID_LIST = '#ITP_STOCKMNG04011_VIEW_jqGrid_list';
17
+const STOCKMNG04011_VIEW_GRID_PAGER = '#ITP_STOCKMNG04011_VIEW_jqGridPager';
18
+const STOCKMNG04011_VIEW_GRID_EMPTY = '#ITP_STOCKMNG04011_VIEW_jqGridEmpty';
19
+
20
+const STOCKMNG04011_DETAIL_GRID_ID = '#ITP_STOCKMNG04011_DETAIL_jqGrid';
21
+const STOCKMNG04011_DETAIL_GRID_LIST = '#ITP_STOCKMNG04011_DETAIL_jqGrid_list';
22
+const STOCKMNG04011_DETAIL_GRID_PAGER = '#ITP_STOCKMNG04011_DETAIL_jqGridPager';
23
+const STOCKMNG04011_DETAIL_GRID_EMPTY = '#ITP_STOCKMNG04011_DETAIL_jqGridEmpty';
24
+
25
+let ITP_FORM_STOCKMNG04011_DETAIL_IS_DUPLICATE = false;
26
+let ITP_FORM_STOCKMNG04011_DETAIL_IS_WRITING = false;
27
+let STOCKMNG04011_DETAIL_GRID_LAST_ROW_ID;
28
+
29
+/* 공통코드 리스트 */
30
+let ITP_COMMON_CD_STCK_DVSN = fn_make_common_cd_list(CODE_LIST, 'STCK_DVSN', true);
31
+let ITP_COMMON_CD_LOC_ST_CD = fn_make_common_cd_list(CODE_LIST, 'LOC_ST_CD', true);
32
+
33
+/*API URL*/
34
+let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
35
+let WHS_MNG_INFO_WHS = '/api/whs/mng/info-whs';
36
+let WHS_MNG_ADD_WHS = '/api/whs/mng/add-whs';
37
+let WHS_MNG_MIDIFY_WHS = '/api/whs/mng/modify-whs';
38
+let WHS_MNG_REMOVE_WHS = '/api/whs/mng/remove-whs'; 
39
+
40
+/*화면 Grid ColModel*/
41
+const gridColModel = {
42
+	view: [
43
+		{
44
+			index: 'VIEW_CD', name: 'viewCd',
45
+			label: ITP_MSG_LOCALE.label.viewCd,
46
+			width: '10', fixed: false, align: 'center',
47
+			sortable: false, hidden: true
48
+		},		
49
+		{
50
+			index: 'LOCATION', name: 'location',
51
+			label: "로케이션",
52
+			width: '10', fixed: false, align: 'center',
53
+			sortable: false, editable: false, edittype: 'text',
54
+			editrules: {required: true}
55
+		},
56
+		{
57
+			index: 'LOCATION_NM', name: 'locationNm',
58
+			label: "로케이션명",
59
+			width: '12', fixed: false, align: 'center',
60
+			sortable: true, editable: false, edittype: 'text',
61
+			editrules: {required: true}
62
+		},
63
+		{
64
+			index: 'STCK_DVSN_NM', name: 'stckDvsnNm',
65
+			label: "관리등록",
66
+			width: '10', fixed: false, align: 'center',
67
+			sortable: false, editable: false, edittype: 'text'
68
+		},
69
+		{
70
+			index: 'LOC_ST_NM', name: 'locStNm',
71
+			label: "상태",
72
+			width: '10', fixed: false, align: 'center',
73
+			sortable: false, editable: false, edittype: 'text'
74
+		}
75
+	],
76
+	detail: [
77
+		{
78
+			index: 'VIEW_CD', name: 'viewCd',
79
+			label: ITP_MSG_LOCALE.label.viewCd,
80
+			width: '10', fixed: false, align: 'center',
81
+			sortable: false, hidden: true
82
+		},
83
+		{
84
+			index: 'LOCATION', name: 'location',
85
+			label: "로케이션",
86
+			width: '10', fixed: false, align: 'center',
87
+			sortable: false, editable: true, edittype: 'text',
88
+			editrules: {required: false}
89
+		},
90
+		{
91
+			index: 'LOCATION_NM', name: 'locationNm',
92
+			label: "로케이션명",
93
+			width: '12', fixed: false, align: 'center',
94
+			sortable: false, editable: true, edittype: 'text',
95
+			editrules: {required: true}
96
+		},
97
+		{
98
+			index: 'STCK_DVSN', name: 'stckDvsn',
99
+			label: "관리등록",
100
+			width: '10', fixed: false, align: 'center',
101
+			sortable: false, editable: true, formatter: 'select', edittype: 'select',
102
+			editoptions: {value: ITP_COMMON_CD_STCK_DVSN},
103
+			editrules: {required: true}
104
+		},
105
+		{
106
+			index: 'LOC_ST_CD', name: 'locStCd',
107
+			label: "상태",
108
+			width: '10', fixed: false, align: 'center',
109
+			sortable: false, editable: true, formatter: 'select', edittype: 'select',
110
+			editoptions: {value: ITP_COMMON_CD_LOC_ST_CD},
111
+			editrules: {required: true}
112
+		}
113
+	]
114
+};
115
+
116
+require(['config'], function() {
117
+	require([
118
+		'kakao.map.util'
119
+	], function($) {
120
+		pageObj.init();
121
+	});
122
+});
123
+
124
+/*화면공통 Object*/
125
+let pageObj = {
126
+	init: function () {
127
+		this.ui.init();
128
+		this.event.init();
129
+		locInfoObj.init();
130
+	},
131
+	ui: {
132
+		init: function () {
133
+			this.view();
134
+			this.ready();
135
+		},
136
+		view: function() {
137
+			// 버튼 권한설정
138
+			fn_proc_btn_auth('STOCKMNG04011');
139
+			
140
+			// 브랜드ID 지정
141
+			$('#ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val(fn_make_user_info.get('brandId'));
142
+			$('#ITP_FORM_STOCKMNG04011_VIEW_STORE_ID').val(fn_make_user_info.get('storeId'));
143
+			
144
+			// 공통코드 표시
145
+			fn_make_select(CODE_LIST, 'WHS_ST_CD', 'ITP_FORM_STOCKMNG04011_DETAIL_WHS_ST_CD', true, '선택');
146
+		},
147
+		ready: function() {
148
+			const brandIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val();
149
+			const storeIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_STORE_ID').val();
150
+						
151
+			const key = {brandId: brandIdVal, storeId: storeIdVal, whsId: '', viewCd: 'R'};
152
+			var param = $.param(key);
153
+			viewObj.init(param);
154
+		}
155
+	},
156
+	event: {
157
+		init: function () {
158
+			this.button();
159
+		},
160
+		button: function () {
161
+			// 버튼 클릭 이벤트
162
+			$('button').each(function() {
163
+				var id = $(this).attr('id');
164
+				$(this).on('click', function() {
165
+					switch (id) {
166
+						case 'ITP_BTN_STOCKMNG04011_MODIFY'				: modifyObj.button.modify();	break;	// 수정 버튼
167
+						case 'ITP_BTN_STOCKMNG04011_CANCELLIST'			: createObj.button.cancel(); 	break;	// 취소/목록 버튼
168
+						case 'ITP_BTN_STOCKMNG04011_SAVE'				: createObj.button.save(); 		break;	// 저장 버튼
169
+						case 'ITP_BTN_STOCKMNG04011_DETAIL_ADDROW'		: locInfoObj.button.addRow();	break;	// 상세:추가버튼
170
+						case 'ITP_BTN_STOCKMNG04011_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
171
+						case 'ITP_BTN_STOCKMNG04011_DETAIL_ADDRESS_SEARCH'		: createObj.button.address();	break;	// 신규등록 주소 찾기
172
+						case 'ITP_BTN_STOCKMNG04011_SEARCH_SRH'			: createObj.button.popupStore();	break;	// 매장선택 팝업
173
+						case 'ITP_BTN_STOCKMNG04011_SEARCH_MODIFY'		: createObj.button.eraseStore();	break;	// 매장선택 삭제
174
+					}
175
+				});
176
+			});
177
+
178
+			$('body').on('click', function(e) {
179
+				var gridId = STOCKMNG04011_DETAIL_GRID_ID.replace('#', '');
180
+				var rids = $(STOCKMNG04011_DETAIL_GRID_ID).jqGrid('getDataIDs');
181
+				var last_row_id = rids[rids.length - 1];
182
+				itp_fn_grid_reset_selection(e, last_row_id, gridId, 'STOCKMNG04011_DETAIL');
183
+			});
184
+
185
+		}
186
+	},
187
+	switchScreen: function(mode) {
188
+		if(mode == 'MODIFY') { // 수정
189
+			$('#ITP_BTN_STOCKMNG04011_SRH').hide();
190
+			$('#ITP_BTN_STOCKMNG04011_MODIFY').hide();
191
+			$('#ITP_BTN_STOCKMNG04011_NEWREG').hide();
192
+			$('#ITP_BTN_STOCKMNG04011_DELETE').hide();
193
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_CANCELLIST');
194
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_SAVE');
195
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_RESET_PW');
196
+
197
+			$('#ITP_AJAX_STOCKMNG04011_LIST_CONTAINER').hide();
198
+			$('#ITP_AJAX_STOCKMNG04011_DETAIL_CONTAINER').show();
199
+			$('#ITP_AJAX_STOCKMNG04011_VIEW_CONTAINER').hide();
200
+			// $('#ITP_FORM_STOCKMNG04011_DETAIL_USER_ID').attr('readonly', true);
201
+			// $('#ITP_FORM_STOCKMNG04011_DETAIL_DUP').attr('disabled', true);
202
+			$('#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
203
+
204
+			$('#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_AFFL_SHOP').hide();
205
+			$('#ITP_FORM_STOCKMNG04011_DETAIL_DELETE_AFFL_SHOP').hide();
206
+		} else if(mode == 'VIEW') { // 보기
207
+			$('#ITP_BTN_STOCKMNG04011_SRH').hide();
208
+			$('#ITP_BTN_STOCKMNG04011_NEWREG').hide();
209
+			$('#ITP_BTN_STOCKMNG04011_DELETE').hide();
210
+			$('#ITP_BTN_STOCKMNG04011_SAVE').hide();
211
+			
212
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_MODIFY');
213
+			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_CANCELLIST');
214
+
215
+			$('#ITP_AJAX_STOCKMNG04011_LIST_CONTAINER').hide();
216
+			$('#ITP_AJAX_STOCKMNG04011_DETAIL_CONTAINER').hide();
217
+			$('#ITP_AJAX_STOCKMNG04011_VIEW_CONTAINER').show();
218
+		}
219
+	}
220
+};
221
+
222
+/*상세화면 Object*/
223
+let viewObj = {
224
+	init: function (param) {
225
+		this.load(param);
226
+	},
227
+	load: function(param) {
228
+		fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
229
+	},
230
+	callback: function (result) {
231
+		// console.log(result);
232
+		pageObj.switchScreen('VIEW');
233
+		$('#ITP_FORM_STOCKMNG04011_VIEW #ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val(result.brandId);
234
+		$('#ITP_FORM_STOCKMNG04011_VIEW #ITP_FORM_STOCKMNG04011_VIEW_STORE_ID').val(result.storeId);
235
+		$('#ITP_FORM_STOCKMNG04011_VIEW #ITP_FORM_STOCKMNG04011_VIEW_WHS_ID').val(result.whsId);
236
+		
237
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnBrandNm').text(result.brandNm);
238
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnStCd').text(result.whsStNm);
239
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnWhsId').text(result.whsId);
240
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnWhsNm').text(result.whsNm);
241
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnTelNo').text(result.mgrTelNo);
242
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnMgrNm').text(result.mgrNm);		
243
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnSpplyNm').text(result.storeNm ? result.storeNm : '');		
244
+		$('#ITP_FORM_STOCKMNG04011_VIEW .fnRegDtm').text(result.sysRegDttm);
245
+		if(result.zipNo) {
246
+			$('#ITP_FORM_STOCKMNG04011_VIEW .fnAddress').text('('+result.zipNo+') ' + result.addr1 + ' ' + result.addr2);	
247
+		}		
248
+
249
+		// 권한정보 리스트 조회
250
+		viewObj.grid.init();
251
+	},
252
+	grid: {
253
+		init: function() {
254
+			this.unload();
255
+			this.load();
256
+		},
257
+		load : function() {
258
+			let param = $('#ITP_FORM_STOCKMNG04011_VIEW').serializeObject();
259
+			param.gridSize = $.jgrid.defaults.rowNum;
260
+			param.pagingYn = false; // 페이징안함
261
+
262
+			var option = {
263
+				gridId: STOCKMNG04011_VIEW_GRID_ID,
264
+				colModel: gridColModel.view,
265
+				param: JSON.stringify(param),
266
+				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
267
+				pager: STOCKMNG04011_VIEW_GRID_PAGER,
268
+				loadComplete: function(data) {
269
+					itp_fn_grid_load_complete(data, STOCKMNG04011_VIEW_GRID_ID, true, undefined, 'STOCKMNG04011_VIEW');
270
+				},
271
+				onPaging: function(action) {
272
+					var pagingFn = {
273
+						callBack: function(args) {
274
+							$(args).trigger('reloadGrid');
275
+						}
276
+					};
277
+					if (itp_fn_check_grid_is_writing(STOCKMNG04011_VIEW_GRID_ID)) {
278
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04011_VIEW_GRID_ID);
279
+						return 'stop';
280
+					} else {
281
+						itp_fn_grid_paging(STOCKMNG04011_VIEW_GRID_ID, action, param);
282
+					}
283
+				},
284
+				onSortCol: function(index, columnIndex, sortOrder) {
285
+					var sortingFn = {
286
+						callBack: function(args) {
287
+							$(args).trigger('reloadGrid');
288
+						}
289
+					};
290
+					if (itp_fn_check_grid_is_writing(STOCKMNG04011_VIEW_GRID_ID)) {
291
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04011_VIEW_GRID_ID);
292
+						return 'stop';
293
+					} else {
294
+						itp_fn_grid_sorting(STOCKMNG04011_VIEW_GRID_ID, index, sortOrder);
295
+					}
296
+				}
297
+			};
298
+			itp_fn_grid_make_remote(option);
299
+		},
300
+		clearData : function() {
301
+			$(STOCKMNG04011_VIEW_GRID_ID).jqGrid('clearGridData', true);
302
+			$(STOCKMNG04011_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
303
+			$(STOCKMNG04011_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
304
+			$(STOCKMNG04011_VIEW_GRID_EMPTY).show();
305
+		},
306
+		unload : function() {
307
+			$.jgrid.gridUnload(STOCKMNG04011_VIEW_GRID_ID);
308
+		}
309
+	}
310
+};
311
+
312
+/*수정화면 Object*/
313
+let modifyObj = {
314
+	init: function () {
315
+	},
316
+	button: {
317
+		modify: function (param) {
318
+			itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04011_DETAIL');
319
+			const brandIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val();
320
+			const whsIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_WHS_ID').val();
321
+			const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
322
+			var param = $.param(key);
323
+			modifyObj.load(param);
324
+		}
325
+	},
326
+	load: function(param) {
327
+		fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
328
+	},
329
+	callback: function (result) {
330
+		// console.log(result);
331
+		pageObj.switchScreen('MODIFY');
332
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_VIEW_CD').val('U');
333
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_BRAND_ID').val(result.brandId);
334
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_STORE_ID').val(result.storeId);
335
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_WHS_ID').val(result.whsId);
336
+				
337
+		$('#ITP_FORM_STOCKMNG04011_DETAIL .fnBrandNm').text(result.brandNm);
338
+		$('#ITP_FORM_STOCKMNG04011_DETAIL .fnWhsId').text(result.whsId);
339
+		$('#ITP_FORM_STOCKMNG04011_DETAIL .fnRegDtm').text(result.sysRegDttm);
340
+		
341
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_WHS_ST_CD').val(result.whsStCd);
342
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_WHS_NM').val(result.whsNm);
343
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_WHS_NM').val(result.whsNm);
344
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_MGR_TEL_NO').val(result.mgrTelNo);
345
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_MGR_NM').val(result.mgrNm);
346
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_STORE_NM').val(result.storeNm);
347
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_ZIPNO').val(result.zipNo);
348
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_ADRES').val(result.addr1);
349
+		$('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_ADRES_DTL').val(result.addr2);
350
+		
351
+		kakaoMap.init('ITP_FORM_STOCKMNG04011_DETAIL', $('#ITP_FORM_STOCKMNG04011_DETAIL #ITP_FORM_STOCKMNG04011_DETAIL_ADRES').val());
352
+		
353
+		// 권한정보 리스트 조회
354
+		modifyObj.grid.init();
355
+	},
356
+	grid: {
357
+		init: function() {
358
+			this.unload();
359
+			this.load();
360
+		},
361
+		load : function() {
362
+			let param = $('#ITP_FORM_STOCKMNG04011_DETAIL').serializeObject();
363
+			param.gridSize = $.jgrid.defaults.rowNum;
364
+			param.pagingYn = false; // 페이지안함
365
+
366
+			var option = {
367
+				gridId: STOCKMNG04011_DETAIL_GRID_ID,
368
+				colModel: gridColModel.detail,
369
+				param: JSON.stringify(param),
370
+				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
371
+				pager: STOCKMNG04011_DETAIL_GRID_PAGER,
372
+				multiselect: true,
373
+				onCellSelect: function(rowId, cellIdx, cellValue) {
374
+					STOCKMNG04011_DETAIL_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STOCKMNG04011_DETAIL_GRID_LAST_ROW_ID, STOCKMNG04011_DETAIL_GRID_ID, ['location']);
375
+		   		},
376
+				loadComplete: function(data) {
377
+					itp_fn_grid_load_complete(data, STOCKMNG04011_DETAIL_GRID_ID, true, undefined, 'STOCKMNG04011_DETAIL');
378
+				},
379
+				onPaging: function(action) {
380
+					var pagingFn = {
381
+						callBack: function(args) {
382
+							$(args).trigger('reloadGrid');
383
+						}
384
+					};
385
+					if (itp_fn_check_grid_is_writing(STOCKMNG04011_DETAIL_GRID_ID)) {
386
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STOCKMNG04011_DETAIL_GRID_ID);
387
+						return 'stop';
388
+					} else {
389
+						itp_fn_grid_paging(STOCKMNG04011_DETAIL_GRID_ID, action, param);
390
+					}
391
+				},
392
+				onSortCol: function(index, columnIndex, sortOrder) {
393
+					var sortingFn = {
394
+						callBack: function(args) {
395
+							$(args).trigger('reloadGrid');
396
+						}
397
+					};
398
+					if (itp_fn_check_grid_is_writing(STOCKMNG04011_DETAIL_GRID_ID)) {
399
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STOCKMNG04011_DETAIL_GRID_ID);
400
+						return 'stop';
401
+					} else {
402
+						itp_fn_grid_sorting(STOCKMNG04011_DETAIL_GRID_ID, index, sortOrder);
403
+					}
404
+				}
405
+			};
406
+			itp_fn_grid_make_remote(option);
407
+		},
408
+		clearData : function() {
409
+			$(STOCKMNG04011_DETAIL_GRID_ID).jqGrid('clearGridData', true);
410
+			$(STOCKMNG04011_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
411
+			$(STOCKMNG04011_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
412
+			$(STOCKMNG04011_DETAIL_GRID_EMPTY).show();
413
+		},
414
+		unload : function() {
415
+			$.jgrid.gridUnload(STOCKMNG04011_DETAIL_GRID_ID);
416
+		}
417
+	}
418
+};
419
+
420
+/*로케이션정보 Object*/
421
+let locInfoObj = {
422
+	init: function () {
423
+		// if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
424
+		this.action();
425
+		// } else {
426
+		// this.make();
427
+		// }
428
+	},
429
+	button: {
430
+		addRow: function() {
431
+			// $(STOCKMNG04011_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
432
+			// $(STOCKMNG04011_DETAIL_GRID_EMPTY).hide();
433
+			STOCKMNG04011_DETAIL_GRID_LAST_ROW_ID = itp_fn_add_grid_row(STOCKMNG04011_DETAIL_GRID_ID, undefined, ['location'],'STOCKMNG04011_DETAIL');
434
+		},
435
+		delRow: function() {
436
+			itp_fn_grid_del_row(STOCKMNG04011_DETAIL_GRID_ID);
437
+		}
438
+	},
439
+	make: function() {
440
+		$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP').hide();
441
+		$('#ITP_FORM_STOCKMNG04011_DELETE_AFFL_SHOP').hide();
442
+		if(AFFL_SHOP_LIST) {
443
+			$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP_ID').val(AFFL_SHOP_LIST[0].afflShopId);
444
+			$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP_NM').val(AFFL_SHOP_LIST[0].afflShopNm);
445
+		}
446
+		if(AFFL_BRAND_LIST) {
447
+			fn_make_select_brand(AFFL_BRAND_LIST, 'ITP_FORM_STOCKMNG04011_SEARCH_BRAND_ID');
448
+		}
449
+	},
450
+	action: function () {
451
+		var _this = this;
452
+		// 로케이션정보 조회 버튼 클릭
453
+		$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP').on('click', function() {
454
+			_this.popup('L');
455
+		});
456
+		// 로케이션정보 텍스트 삭제 버튼 클릭
457
+		$('#ITP_FORM_STOCKMNG04011_DELETE_AFFL_SHOP').on('click', function() {
458
+			$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP_NM').val('');
459
+			$('select#ITP_FORM_STOCKMNG04011_SEARCH_BRAND_ID option').remove();
460
+		});
461
+		// 신규등록 로케이션정보 조회 버튼 클릭
462
+		$('#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_AFFL_SHOP').on('click', function() {
463
+			_this.popup('C');
464
+		});
465
+		// 신규등록 로케이션정보 텍스트 삭제 버튼 클릭
466
+		$('#ITP_FORM_STOCKMNG04011_DETAIL_DELETE_AFFL_SHOP').on('click', function() {
467
+			$('#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_AFFL_SHOP_NM').val('');
468
+			$('select#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_BRAND_ID option').remove();
469
+		});
470
+	},
471
+	popup: function (view) {
472
+		// 팝업
473
+		var popFn = (view === 'C') ? this.callback.create : this.callback.list;
474
+		fn_call_popup('biz', 'BIZPOP_AFFL_SHOP', '#ITP_ASIDE', popFn, null, 'S');
475
+	},
476
+	callback: {
477
+		list: function(rowDataPop) {
478
+			// console.log(rowDataPop);
479
+			if(rowDataPop.AFFL_SHOP) {
480
+				$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
481
+				$('#ITP_FORM_STOCKMNG04011_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
482
+			}
483
+			if(rowDataPop.AFFL_BRAND) {
484
+				fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_STOCKMNG04011_SEARCH_BRAND_ID', true, '선택');
485
+			}
486
+		},
487
+		create: function(rowDataPop) {
488
+			// console.log(rowDataPop);
489
+			if(rowDataPop.AFFL_SHOP) {
490
+				// $('#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
491
+				// $('#ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
492
+			}
493
+			if(rowDataPop.AFFL_BRAND) {
494
+				fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_STOCKMNG04011_DETAIL_SEARCH_BRAND_ID', true, '선택');
495
+			}
496
+		}
497
+	}
498
+};

+ 37 - 123
src/main/webapp/app/loanmng/LOANMNG01010.html

@@ -5,10 +5,8 @@
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_LOANMNG01010_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_LOANMNG01010_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;수정&nbsp;&nbsp;</button>
9
-					<button type="button" id="ITP_BTN_LOANMNG01010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;신규등록&nbsp;&nbsp;</button>
10 8
 					<button type="button" id="ITP_BTN_LOANMNG01010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon"></i>&nbsp;&nbsp;저장&nbsp;&nbsp;</button>
11
-					<button type="button" id="ITP_BTN_LOANMNG01010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon"></i>&nbsp;&nbsp;취소/목록&nbsp;&nbsp;</button>
9
+					<button type="button" id="ITP_BTN_LOANMNG01010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon"></i>&nbsp;&nbsp;목록&nbsp;&nbsp;</button>
12 10
 				</div>				
13 11
 			</div>
14 12
 			<div class="itp_det_in">
@@ -17,40 +15,26 @@
17 15
 						<div class="itp_srh_border fix">
18 16
 							<div class="col-xs-12">
19 17
 								<form id="ITP_FORM_LOANMNG01010_SEARCH" class="form-horizontal">
18
+									<input type="hidden" id="ITP_FORM_LOANMNG01010_SEARCH_BRAND_ID" name="sbrandId" value="">
19
+									<input type="hidden" id="ITP_FORM_LOANMNG01010_SEARCH_STORE_ID" name="sstoreId" value="">
20
+								
20 21
 									<div class="form-group">
21
-										<div class="col-xs-4 itp_ip">
22
-											<input type="text" id="ITP_FORM_LOANMNG01010_SEARCH_STORE_NM" class="form-control itp_input" name="sStoreNm" placeholder="매장명" />
22
+										<div class="col-xs-2 itp_ip itp_noMar">
23
+											<input type="text" id="ITP_FORM_LOANMNG01010_SEARCH_STORE_NM" class="form-control itp_input" placeholder="매장선택" readonly="readonly" />
24
+										</div>
25
+										<div class="col-xs-1 itp_ip itp_noMar">
26
+											<button type="button" id="ITP_BTN_LOANMNG01010_SEARCH_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
27
+											<button type="button" id="ITP_BTN_LOANMNG01010_SEARCH_MODIFY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
23 28
 										</div>
24 29
 										<div class="col-xs-2 itp_ip itp_noMar">
25
-											<select id="ITP_FORM_LOANMNG01010_SEARCH_LOAN_DVSN" class="form-control itp_input" name="sLoanDvsn">
30
+											<select id="ITP_FORM_LOANMNG01010_SEARCH_LOAN_DVSN" data-select-code="LOAN_DVSN" class="form-control itp_input" name="sloanDvsn">
26 31
 												<option value="">정산타입</option>
27 32
 											</select>
28 33
 										</div>
29
-									</div>
30
-									<div class="form-group" style="padding-top: 10px; border-top: 1px dotted #ccc;">
31
-										<div class="col-xs-1 itp_ip itp_noMar" style="top:2px">
32
-											<label class="itp_in">한도범위</label>
33
-										</div>
34
-										<div class="col-xs-3 itp_ip itp_noMar">
35
-											<div class="col-xs-12 itp_ip">
36
-												<div class="input-daterange input-group date">
37
-													<input type="text" id="ITP_FORM_LOANMNG01010_SEARCH_" class="form-control itp_input" name="" value="">
38
-													<span class="input-group-addon itp_date_to">~</span>
39
-													<input type="text" id="ITP_FORM_LOANMNG01010_SEARCH_" class="form-control itp_input" name="" value="">
40
-												</div>
41
-											</div>
42
-										</div>
43
-										<div class="col-xs-1 itp_ip itp_noMar" style="top:2px">
44
-											<label class="itp_in">잔여한도</label>
45
-										</div>
46
-										<div class="col-xs-3 itp_ip itp_noMar">
47
-											<div class="col-xs-12 itp_ip">
48
-												<div class="input-daterange input-group date">
49
-													<input type="text" id="ITP_FORM_LOANMNG01010_SEARCH_" class="form-control itp_input" name="" value="">
50
-													<span class="input-group-addon itp_date_to">~</span>
51
-													<input type="text" id="ITP_FORM_LOANMNG01010_SEARCH_" class="form-control itp_input" name="" value="">
52
-												</div>
53
-											</div>
34
+										<div class="col-xs-2 itp_ip itp_noMar">
35
+											<select id="ITP_FORM_LOANMNG01010_SEARCH_USE_YN" data-select-code="USE_YN" class="form-control itp_input" name="suseYn">
36
+												<option value="">사용여부</option>
37
+											</select>
54 38
 										</div>
55 39
 									</div>
56 40
 								</form>
@@ -66,83 +50,17 @@
66 50
 						</div>
67 51
 					</div>
68 52
 				</div>
69
-				<div id="ITP_AJAX_LOANMNG01010_DETAIL_CONTAINER">
70
-					<div class="itp_form itp_type1 fix">
71
-						<div class="col-xs-12">
72
-							<form id="ITP_FORM_LOANMNG01010_DETAIL" class="form-horizontal">
73
-								<input type="hidden" id="ITP_FORM_LOANMNG01010_DETAIL_VIEW_CD" name="viewCd" value="C">
74
-					
75
-								<section class="itp_form_sec">
76
-									<h4 class="itp_form_tit">여신정보-신규</h4>
77
-									<div class="itp_form_in">
78
-										<div class="form-group">
79
-											<label class="col-xs-2 itp_lb">브랜드 *</label>
80
-												<div class="col-xs-4 itp_ip">
81
-													<div class="col-xs-9 itp_in fnBrandNm"></div>												
82
-												</div>
83
-											<label class="col-xs-2 itp_lb">매장*</label>
84
-											<div class="col-xs-4 itp_ip">
85
-												<div class="col-xs-10 itp_in">
86
-													<div class="col-xs-6 itp_in itp_noMar">
87
-														<input type="text" id="ITP_FORM_LOANMNG01010_DETAIL_STORE_NM" class="form-control itp_input" name="storeNm" placeholder="매장명" />
88
-													</div>
89
-													<div class="col-xs-4 itp_in" style="width:35%; padding:0px;">
90
-														<button type="button" id="ITP_BTN_INOUTMNG01010_DETAIL_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
91
-														<button type="button" id="ITP_BTN_INOUTMNG01010_DETAIL_MODIFY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
92
-									                </div>
93
-												</div>
94
-											</div>
95
-										</div>
96
-										<div class="form-group">
97
-											<label class="col-xs-2 itp_lb">정산타입</label>
98
-											<div class="col-xs-4 itp_ip">
99
-												<div class="col-xs-10 itp_in">
100
-													<select id="ITP_FORM_LOANMNG01010_DETAIL_LOAN_DVSN" class="form-control itp_input" name="loanDvsn">
101
-														<option value="">후불(신용)</option>
102
-													</select>												
103
-												</div>
104
-											</div>
105
-											<label class="col-xs-2 itp_lb">한도금액</label>
106
-											<div class="col-xs-4 itp_ip">
107
-												<div class="col-xs-8 itp_in">
108
-													<input type="text" id="ITP_FORM_LOANMNG01010_DETAIL_CREDT_LIMIT_AMT" class="form-control itp_input" name="credtLimitAmt" value="1,000,000" maxlength="20">
109
-												</div>
110
-											</div>
111
-										</div>
112
-										<div class="form-group border">
113
-											<label class="col-xs-2 itp_lb">계약기간</label>
114
-											<div class="col-xs-4 itp_ip">
115
-												<div class="col-xs-10 itp_in">
116
-													<div class="input-daterange input-group date">
117
-														<input type="text" id="ITP_FORM_LOANMNG01010_DETAIL_CONT_STT_DT" class="form-control itp_input" name="contSttDt" value="">
118
-														<span class="input-group-addon itp_date_to">~</span>
119
-														<input type="text" id="ITP_FORM_LOANMNG01010_DETAIL_CONT_END_DT" class="form-control itp_input" name="contEndDt" value="">
120
-													</div>												
121
-												</div>
122
-											</div>
123
-											<label class="col-xs-2 itp_lb">사용여부</label>
124
-											<div class="col-xs-4 itp_ip">
125
-												<div class="col-xs-8 itp_in">
126
-													<select id="ITP_FORM_LOANMNG01010_DETAIL_" class="form-control itp_input" name="">
127
-														<option value="">사용/미사용</option>
128
-													</select>												
129
-												</div>
130
-											</div>
131
-										</div>
132
-									</div>
133
-								</section>								
134
-							</form>
135
-						</div>
136
-					</div>
137
-				</div>
138 53
 				<div id="ITP_AJAX_LOANMNG01010_VIEW_CONTAINER">
139 54
 					<div class="itp_form itp_type1 fix">
140 55
 						<div class="col-xs-12">
141 56
 							<form id="ITP_FORM_LOANMNG01010_VIEW" class="form-horizontal">
142
-								<input type="hidden" id="ITP_FORM_LOANMNG01010_VIEW_VIEW_CD" name="viewCd" value="C">
57
+								<input type="hidden" id="ITP_FORM_LOANMNG01010_VIEW_VIEW_CD" name="viewCd" value="R">
58
+								<input type="hidden" id="ITP_FORM_LOANMNG01010_VIEW_BRAND_ID" name="brandId" value="">
59
+								<input type="hidden" id="ITP_FORM_LOANMNG01010_VIEW_STORE_ID" name="storeId" value="">
60
+								<input type="hidden" id="ITP_FORM_LOANMNG01010_VIEW_LOAN_MGNT_UNQ_NO" name="loanMgntUnqNo" value="">
143 61
 					
144 62
 								<section class="itp_form_sec">
145
-									<h4 class="itp_form_tit">여신현황-상세</h4>
63
+									<h4 class="itp_form_tit">여신정보</h4>
146 64
 									<div class="itp_form_in">
147 65
 										<div class="form-group">
148 66
 											<label class="col-xs-2 itp_lb">브랜드 *</label>
@@ -167,45 +85,41 @@
167 85
 										<div class="form-group">
168 86
 											<label class="col-xs-2 itp_lb">계약기간</label>
169 87
 											<div class="col-xs-4 itp_ip">
170
-												<div class="col-xs-3 itp_in fnContSttDt"></div>
171
-												<span class="col-xs-1 itp_in">~</span>
172
-												<div class="col-xs-3 itp_in fnContEndDt"></div>
88
+												<div class="col-xs-8 itp_in fnContDt"></div>
173 89
 											</div>
174 90
 											<label class="col-xs-2 itp_lb">사용여부</label>
175 91
 											<div class="col-xs-4 itp_ip">
176
-												<div class="col-xs-8 itp_in "></div>
92
+												<div class="col-xs-8 itp_in fnUseYn"></div>
177 93
 											</div>
178 94
 										</div>
179 95
 										<div class="form-group">
180
-											<label class="col-xs-2 itp_lb">정산타입</label>
96
+											<label class="col-xs-2 itp_lb">가용한도금액</label>
181 97
 											<div class="col-xs-4 itp_ip">
182
-												<div class="col-xs-10 itp_in fnLoanDvsn"></div>
98
+												<div class="col-xs-10 itp_in fnPosbLimitAmt"></div>
183 99
 											</div>
184
-											<label class="col-xs-2 itp_lb">한도금액</label>
100
+											<label class="col-xs-2 itp_lb">가수금</label>
185 101
 											<div class="col-xs-4 itp_ip">
186
-												<div class="col-xs-8 itp_in fnLimitAmt"></div>
102
+												<div class="col-xs-8 itp_in fnTmpRcvAcctTotal"></div>
187 103
 											</div>
188 104
 										</div>
189 105
 										<div class="form-group border">
190 106
 											<label class="col-xs-2 itp_lb">사용금액</label>
191 107
 											<div class="col-xs-4 itp_ip">
192
-												<div class="col-xs-10 itp_in "></div>
108
+												<div class="col-xs-10 itp_in fnUseAmtTotal"></div>
193 109
 											</div>
194 110
 											<label class="col-xs-2 itp_lb">최종 수정자/일시</label>
195 111
 											<div class="col-xs-4 itp_ip">
196
-												<div class="col-xs-3 itp_in fnContSttDt"></div>
197
-												<span class="col-xs-1 itp_in">~</span>
198
-												<div class="col-xs-3 itp_in fnChgDttm"></div>
112
+												<div class="col-xs-10 itp_in fnLastModify"></div>
199 113
 											</div>
200 114
 										</div>
201 115
 									</div>
202 116
 								</section>								
203 117
 							</form>
204
-							<div class="itp_det_head fix" style="background:#fff;">
118
+							<div class="itp_det_head fix" style="background:#fff; margin-top: 12px;">
205 119
 								<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i><strong>여신이력</strong></h2>
206 120
 							</div>
207 121
 							<div id="ITP_AJAX_LOANMNG01010_LIST_CONTAINER">
208
-								<div class="itp_lg_form itp_type1 fix">
122
+								<div class="itp_lg_form itp_type1 fix" style="padding-left: 0px; padding-right: 0px; margin-top: -11px;">
209 123
 									<div class="itp_srh_border fix">
210 124
 										<div class="col-xs-12">
211 125
 											<form id="ITP_FORM_LOANMNG01010_SEARCH" class="form-horizontal">
@@ -233,13 +147,13 @@
233 147
 										</div>
234 148
 									</div>
235 149
 								</div>
236
-								<div class="itp_table fix">
237
-									<div id="ITP_LOANMNG01010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
238
-										<div id="ITP_LOANMNG01010_jqGridView" class="itp_views fix"></div>
239
-										<table id="ITP_LOANMNG01010_jqGrid"></table>
240
-										<div id="ITP_LOANMNG01010_jqGridPager"></div>
241
-										<div id="ITP_LOANMNG01010_jqGridEmpty" class="itp_no_data"></div>
242
-									</div>
150
+								<div class="itp_table fix" style="padding-left: 0px; padding-right: 0px;">
151
+									<div id="ITP_LOANMNG01010_VIEW_jqGrid_list" class="itp_tb_list">
152
+								        <div id="ITP_LOANMNG01010_VIEW_jqGridView" class="itp_views fix"></div>
153
+								        <table id="ITP_LOANMNG01010_VIEW_jqGrid"></table>
154
+								        <div id="ITP_LOANMNG01010_VIEW_jqGridPager"></div>
155
+								        <div id="ITP_LOANMNG01010_VIEW_jqGridEmpty" class="itp_no_data"></div>
156
+								    </div>
243 157
 								</div>
244 158
 							</div>
245 159
 						</div>

+ 1 - 5
src/main/webapp/app/stockmng/STOCKMNG04011.html

@@ -14,7 +14,7 @@
14 14
 				    <div class="itp_form itp_type1 fix">
15 15
 				        <div class="col-xs-12">
16 16
 				            <form id="ITP_FORM_STOCKMNG04011_DETAIL" class="form-horizontal">
17
-				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_VIEW_CD" name="viewCd" value="C">
17
+				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_VIEW_CD" name="viewCd" value="U">
18 18
 				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_BRAND_ID" name="brandId" value="">
19 19
 				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_STORE_ID" name="storeId" value="">
20 20
 				                <input type="hidden" id="ITP_FORM_STOCKMNG04011_DETAIL_WHS_ID" name="whsId" value="">
@@ -66,10 +66,6 @@
66 66
 				                                <div class="col-xs-5 itp_in">
67 67
 													<input type="text" id="ITP_FORM_STOCKMNG04011_DETAIL_STORE_NM" class="form-control itp_input" name="storeNm" value="" readonly="readonly" />
68 68
 												</div>
69
-												<div class="col-xs-3 itp_in" style="padding:0px; margin-left: 3px;">
70
-													<button type="button" id="ITP_BTN_STOCKMNG04011_SEARCH_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
71
-													<button type="button" id="ITP_BTN_STOCKMNG04011_SEARCH_MODIFY" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
72
-								                </div>
73 69
 				                            </div>
74 70
 				                            <label class="col-xs-2 itp_lb">등록일시</label>
75 71
 				                            <div class="col-xs-4 itp_ip fnRegDtm"></div>				                            

+ 833 - 0
src/main/webapp/js/app/loanmng/ITP_LOANMNG01010.js

@@ -0,0 +1,833 @@
1
+/********************************************************
2
+ --------------------------------------------------------
3
+ - Object 목록								            -
4
+ --------------------------------------------------------
5
+ * const gridColModel = {}	: 화면 Grid Object			*
6
+ * let pageObj = {}			: 화면공통 Object			*
7
+ * let listObj = {}			: 목록화면 Object			*
8
+ * let viewObj = {}			: 상세화면 Object			*
9
+ * let modifyObj = {}		: 수정화면 Object			*
10
+ * let createObj = {}		: 신규화면 Object			*
11
+ * let locInfoObj = {}		: 로케이션정보 Object				*
12
+ *******************************************************/
13
+
14
+/*화면 변수*/
15
+const LOANMNG01010_GRID_ID = '#ITP_LOANMNG01010_jqGrid';
16
+const LOANMNG01010_GRID_LIST = '#ITP_LOANMNG01010_jqGrid_list';
17
+const LOANMNG01010_GRID_PAGER = '#ITP_LOANMNG01010_jqGridPager';
18
+const LOANMNG01010_GRID_EMPTY = '#ITP_LOANMNG01010_jqGridEmpty';
19
+
20
+const LOANMNG01010_VIEW_GRID_ID = '#ITP_LOANMNG01010_VIEW_jqGrid';
21
+const LOANMNG01010_VIEW_GRID_LIST = '#ITP_LOANMNG01010_VIEW_jqGrid_list';
22
+const LOANMNG01010_VIEW_GRID_PAGER = '#ITP_LOANMNG01010_VIEW_jqGridPager';
23
+const LOANMNG01010_VIEW_GRID_EMPTY = '#ITP_LOANMNG01010_VIEW_jqGridEmpty';
24
+
25
+const LOANMNG01010_DETAIL_GRID_ID = '#ITP_LOANMNG01010_DETAIL_jqGrid';
26
+const LOANMNG01010_DETAIL_GRID_LIST = '#ITP_LOANMNG01010_DETAIL_jqGrid_list';
27
+const LOANMNG01010_DETAIL_GRID_PAGER = '#ITP_LOANMNG01010_DETAIL_jqGridPager';
28
+const LOANMNG01010_DETAIL_GRID_EMPTY = '#ITP_LOANMNG01010_DETAIL_jqGridEmpty';
29
+
30
+let ITP_FORM_LOANMNG01010_DETAIL_IS_DUPLICATE = false;
31
+let ITP_FORM_LOANMNG01010_DETAIL_IS_WRITING = false;
32
+let LOANMNG01010_DETAIL_GRID_LAST_ROW_ID;
33
+
34
+/*API URL*/
35
+let LOAN_STATE_DETAIL_GRID_LIST = '/api/loan/state/detail-grid-list';
36
+let LOAN_STATE_INFO_LOAN_MNG = '/api/loan/state/info-loan-mng';
37
+
38
+let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
39
+let WHS_MNG_ADD_WHS = '/api/whs/mng/add-whs';
40
+let WHS_MNG_MIDIFY_WHS = '/api/whs/mng/modify-whs';
41
+let WHS_MNG_REMOVE_WHS = '/api/whs/mng/remove-whs'; 
42
+
43
+/*화면 Grid ColModel*/
44
+const gridColModel = {
45
+	list: [
46
+		{
47
+			index: 'BRAND_ID', name: 'brandId',
48
+			label: "브랜드ID", 
49
+			width: '0', fixed: false, align: 'center',
50
+			sortable: false, hidden: true
51
+		},
52
+		{
53
+			index: 'STORE_ID', name: 'storeId',
54
+			label: "매장ID", 
55
+			width: '0', fixed: false, align: 'center',
56
+			sortable: false, hidden: true
57
+		},
58
+		{
59
+			index: 'BRAND_NM', name: 'brandNm',
60
+			label: ITP_MSG_LOCALE.label.brandNm, //브랜드
61
+			width: '13', fixed: false, align: 'center',
62
+			sortable: false, hidden: true
63
+		},
64
+		{
65
+			index: 'STORE_NM', name: 'storeNm',
66
+			label: "매장명", 
67
+			width: '13', fixed: false, align: 'center',
68
+			sortable: false, hidden: false
69
+		},
70
+		{
71
+			index: 'LOAN_MGNT_UNQ_NO', name: 'loanMgntUnqNo',
72
+			label: "여신관리번호", 
73
+			width: '10', fixed: false, align: 'center',
74
+			sortable: false, hidden: false
75
+		},
76
+		{
77
+			index: 'LOAN_DVSN_NM', name: 'loanDvsnNm',
78
+			label: "정산타입", 
79
+			width: '10', fixed: false, align: 'center',
80
+			sortable: false, hidden: false
81
+		},
82
+		{
83
+			index: 'CREDT_LIMIT_AMT', name: 'credtLimitAmt',
84
+			label: "신용한도금액", 
85
+			width: '10', fixed: false, align: 'center',
86
+			sortable: false, hidden: false, 
87
+			formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
88
+		},
89
+		{
90
+			index: 'CHRGE_LIMIT_AMT', name: 'chrgeLimitAmt',
91
+			label: "충전한도금액", 
92
+			width: '10', fixed: false, align: 'center',
93
+			sortable: false, hidden: false, 
94
+			formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
95
+		},
96
+		{
97
+			index: 'TMP_RCV_ACCT_TOTAL', name: 'tmpRcvAcctTotal',
98
+			label: '가수금액', 
99
+			width: '10', fixed: false, align: 'center',
100
+			sortable: false, hidden: false, 
101
+			formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
102
+		},
103
+		{
104
+			index: 'USE_AMT_TOTAL', name: 'useAmtTotal',
105
+			label: '사용금액', 
106
+			width: '10', fixed: false, align: 'center',
107
+			sortable: false, hidden: false, 
108
+			formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
109
+		},		
110
+		{
111
+			index: 'USE_YN_NM', name: 'useYnNm',
112
+			label: "사용여부", 
113
+			width: '8', fixed: false, align: 'center',
114
+			sortable: false, hidden: false
115
+		},
116
+		{
117
+			index: 'SYS_CHG_NM', name: 'sysChgNm',
118
+			label: "최종수정자", 
119
+			width: '10', fixed: false, align: 'center',
120
+			sortable: false, hidden: false
121
+		}
122
+	],
123
+	view: [
124
+		{
125
+			index: 'VIEW_CD', name: 'viewCd',
126
+			label: ITP_MSG_LOCALE.label.viewCd,
127
+			width: '10', fixed: false, align: 'center',
128
+			sortable: false, hidden: true
129
+		},		
130
+		{
131
+			index: 'LOCATION', name: 'location',
132
+			label: "로케이션",
133
+			width: '10', fixed: false, align: 'center',
134
+			sortable: false, editable: false, edittype: 'text',
135
+			editrules: {required: true}
136
+		},
137
+		{
138
+			index: 'LOCATION_NM', name: 'locationNm',
139
+			label: "로케이션명",
140
+			width: '12', fixed: false, align: 'center',
141
+			sortable: true, editable: false, edittype: 'text',
142
+			editrules: {required: true}
143
+		},
144
+		{
145
+			index: 'STCK_DVSN_NM', name: 'stckDvsnNm',
146
+			label: "관리등록",
147
+			width: '10', fixed: false, align: 'center',
148
+			sortable: false, editable: false, edittype: 'text'
149
+		},
150
+		{
151
+			index: 'LOC_ST_NM', name: 'locStNm',
152
+			label: "상태",
153
+			width: '10', fixed: false, align: 'center',
154
+			sortable: false, editable: false, edittype: 'text'
155
+		}
156
+	],
157
+	detail: [
158
+		{
159
+			index: 'VIEW_CD', name: 'viewCd',
160
+			label: ITP_MSG_LOCALE.label.viewCd,
161
+			width: '10', fixed: false, align: 'center',
162
+			sortable: false, hidden: true
163
+		},
164
+		{
165
+			index: 'LOCATION', name: 'location',
166
+			label: "로케이션",
167
+			width: '10', fixed: false, align: 'center',
168
+			sortable: false, editable: true, edittype: 'text',
169
+			editrules: {required: false}
170
+		},
171
+		{
172
+			index: 'LOCATION_NM', name: 'locationNm',
173
+			label: "로케이션명",
174
+			width: '12', fixed: false, align: 'center',
175
+			sortable: false, editable: true, edittype: 'text',
176
+			editrules: {required: true}
177
+		}
178
+	]
179
+};
180
+
181
+require(['config'], function() {
182
+	require([
183
+		'kakao.map.util'
184
+	], function($) {
185
+		pageObj.init();
186
+	});
187
+});
188
+
189
+/*화면공통 Object*/
190
+let pageObj = {
191
+	init: function () {
192
+		this.ui.init();
193
+		this.event.init();
194
+		locInfoObj.init();
195
+	},
196
+	ui: {
197
+		init: function () {
198
+			this.view();
199
+			this.grid();
200
+			this.ready();
201
+		},
202
+		view: function() {
203
+			// 버튼 권한설정
204
+			fn_proc_btn_auth('LOANMNG01010');
205
+			
206
+			// 공통코드 표시
207
+			$('select').each(function() {
208
+		        if($(this).data('select-code')) {
209
+		            fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
210
+		        }
211
+		    });
212
+
213
+			// 조회일자 지정
214
+			$('#ITP_TAB_LOANMNG01010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);			
215
+		},
216
+		grid: function() {
217
+			itp_fn_jqgrid_resize(LOANMNG01010_GRID_ID, LOANMNG01010_GRID_LIST, 'lg');
218
+			listObj.empty.init();
219
+			itp_fn_fire_window_resize();
220
+		},
221
+		ready: function() {
222
+			listObj.init();
223
+		}
224
+	},
225
+	event: {
226
+		init: function () {
227
+			this.button();
228
+		},
229
+		button: function () {
230
+			// 버튼 클릭 이벤트
231
+			$('button').each(function() {
232
+				var id = $(this).attr('id');
233
+				$(this).on('click', function() {
234
+					switch (id) {
235
+						case 'ITP_BTN_LOANMNG01010_SRH'				: listObj.button.search();		break;	// 조회 버튼 클릭
236
+						case 'ITP_BTN_LOANMNG01010_NEWREG'				: listObj.button.create(); 		break;	// 신규등록 버튼
237
+						case 'ITP_BTN_LOANMNG01010_MODIFY'				: modifyObj.button.modify();	break;	// 수정 버튼
238
+						case 'ITP_BTN_LOANMNG01010_CANCELLIST'			: createObj.button.cancel(); 	break;	// 취소/목록 버튼
239
+						case 'ITP_BTN_LOANMNG01010_DELETE'				: 								break;	// 삭제 버튼
240
+						case 'ITP_BTN_LOANMNG01010_SAVE'				: createObj.button.save(); 		break;	// 저장 버튼
241
+						case 'ITP_BTN_LOANMNG01010_DETAIL_ADDROW'		: locInfoObj.button.addRow();	break;	// 상세:추가버튼
242
+						case 'ITP_BTN_LOANMNG01010_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
243
+						case 'ITP_BTN_LOANMNG01010_DETAIL_ADDRESS_SEARCH'		: createObj.button.address();	break;	// 신규등록 주소 찾기
244
+						case 'ITP_BTN_LOANMNG01010_SEARCH_SRH'			: listObj.button.popupStore();	break;	// 매장선택 팝업
245
+						case 'ITP_BTN_LOANMNG01010_SEARCH_MODIFY'		: listObj.button.eraseStore();	break;	// 매장선택 삭제
246
+					}
247
+				});
248
+			});
249
+
250
+			$('body').on('click', function(e) {
251
+				var gridId = LOANMNG01010_DETAIL_GRID_ID.replace('#', '');
252
+				var rids = $(LOANMNG01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
253
+				var last_row_id = rids[rids.length - 1];
254
+				itp_fn_grid_reset_selection(e, last_row_id, gridId, 'LOANMNG01010_DETAIL');
255
+			});
256
+
257
+		}
258
+	},
259
+	switchScreen: function(mode) {
260
+		if(mode == 'LIST') { // 목록
261
+			$('#ITP_BTN_LOANMNG01010_MODIFY').hide();
262
+			$('#ITP_BTN_LOANMNG01010_CANCELLIST').hide();
263
+			$('#ITP_BTN_LOANMNG01010_DELETE').hide();
264
+			$('#ITP_BTN_LOANMNG01010_SAVE').hide();
265
+			
266
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_SRH');
267
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_NEWREG');
268
+
269
+			$('#ITP_AJAX_LOANMNG01010_LIST_CONTAINER').show();
270
+			$('#ITP_AJAX_LOANMNG01010_DETAIL_CONTAINER').hide();
271
+			$('#ITP_AJAX_LOANMNG01010_VIEW_CONTAINER').hide();
272
+		} else if(mode == 'ADD') { // 등록
273
+			ITP_FORM_LOANMNG01010_DETAIL_IS_DUPLICATE = true;
274
+
275
+			$('#ITP_BTN_LOANMNG01010_SRH').hide();
276
+			$('#ITP_BTN_LOANMNG01010_MODIFY').hide();
277
+			$('#ITP_BTN_LOANMNG01010_NEWREG').hide();
278
+			$('#ITP_BTN_LOANMNG01010_DELETE').hide();
279
+			
280
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_CANCELLIST');
281
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_SAVE');
282
+
283
+			$('#ITP_AJAX_LOANMNG01010_LIST_CONTAINER').hide();
284
+			$('#ITP_AJAX_LOANMNG01010_DETAIL_CONTAINER').show();
285
+			$('#ITP_AJAX_LOANMNG01010_VIEW_CONTAINER').hide();
286
+
287
+			$('#ITP_FORM_LOANMNG01010_DETAIL_VIEW_CD').val('C');
288
+			$('#ITP_FORM_LOANMNG01010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
289
+			$('#ITP_FORM_LOANMNG01010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
290
+			$('#ITP_FORM_LOANMNG01010_DETAIL .fnWhsId').text('');
291
+			$('#ITP_FORM_LOANMNG01010_DETAIL .fnRegDtm').text('');
292
+			$('#ITP_FORM_LOANMNG01010_DETAIL_STORE_ID').val('');
293
+			$('#ITP_FORM_LOANMNG01010_DETAIL_WHS_ID').val('');
294
+			$('#ITP_FORM_LOANMNG01010_DETAIL_WHS_ST_CD').val('');
295
+			$('#ITP_FORM_LOANMNG01010_DETAIL_WHS_NM').val('');
296
+			$('#ITP_FORM_LOANMNG01010_DETAIL_MGR_TEL_NO').val('');
297
+			$('#ITP_FORM_LOANMNG01010_DETAIL_MGR_NM').val('');
298
+			$('#ITP_FORM_LOANMNG01010_DETAIL_STORE_NM').val('');
299
+			$('#ITP_FORM_LOANMNG01010_DETAIL_ZIPNO').val('');
300
+			$('#ITP_FORM_LOANMNG01010_DETAIL_ADRES').val('');
301
+			$('#ITP_FORM_LOANMNG01010_DETAIL_ADRES_DTL').val('');
302
+			
303
+		} else if(mode == 'MODIFY') { // 수정
304
+			$('#ITP_BTN_LOANMNG01010_SRH').hide();
305
+			$('#ITP_BTN_LOANMNG01010_MODIFY').hide();
306
+			$('#ITP_BTN_LOANMNG01010_NEWREG').hide();
307
+			$('#ITP_BTN_LOANMNG01010_DELETE').hide();
308
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_CANCELLIST');
309
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_SAVE');
310
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_RESET_PW');
311
+
312
+			$('#ITP_AJAX_LOANMNG01010_LIST_CONTAINER').hide();
313
+			$('#ITP_AJAX_LOANMNG01010_DETAIL_CONTAINER').show();
314
+			$('#ITP_AJAX_LOANMNG01010_VIEW_CONTAINER').hide();
315
+			// $('#ITP_FORM_LOANMNG01010_DETAIL_USER_ID').attr('readonly', true);
316
+			// $('#ITP_FORM_LOANMNG01010_DETAIL_DUP').attr('disabled', true);
317
+			$('#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
318
+
319
+			$('#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_AFFL_SHOP').hide();
320
+			$('#ITP_FORM_LOANMNG01010_DETAIL_DELETE_AFFL_SHOP').hide();
321
+		} else if(mode == 'VIEW') { // 보기
322
+			$('#ITP_BTN_LOANMNG01010_SRH').hide();
323
+			$('#ITP_BTN_LOANMNG01010_NEWREG').hide();
324
+			$('#ITP_BTN_LOANMNG01010_DELETE').hide();
325
+			$('#ITP_BTN_LOANMNG01010_SAVE').hide();
326
+			
327
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_MODIFY');
328
+			fn_show_btn_auth('#ITP_BTN_LOANMNG01010_CANCELLIST');
329
+
330
+			$('#ITP_AJAX_LOANMNG01010_LIST_CONTAINER').hide();
331
+			$('#ITP_AJAX_LOANMNG01010_DETAIL_CONTAINER').hide();
332
+			$('#ITP_AJAX_LOANMNG01010_VIEW_CONTAINER').show();
333
+		}
334
+	}
335
+};
336
+
337
+/*목록화면 Object*/
338
+let listObj = {
339
+	init: function () {
340
+		this.grid.init();
341
+	},
342
+	itp_LOANMNG01010_search: false,
343
+	button: {
344
+		search: function() {
345
+			listObj.itp_LOANMNG01010_search = true;
346
+			let param = $('#ITP_FORM_LOANMNG01010_SEARCH').serializeObject();
347
+			param.gridSize = $.jgrid.defaults.rowNum;
348
+			param.gridPage = $.jgrid.defaults.page;
349
+			$(LOANMNG01010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
350
+		},
351
+		create: function() {
352
+			pageObj.switchScreen('ADD');			
353
+			itp_fn_form_clear_validate(null, '#ITP_FORM_LOANMNG01010_DETAIL');						
354
+			// 로케이션 리스트 조회
355
+			createObj.init();
356
+		}, 
357
+		popupStore: function() { // 매장선택 팝업
358
+			
359
+		}, 
360
+		eraseStore: function() { // 매장선택 삭제
361
+			$('#ITP_FORM_LOANMNG01010_SEARCH_STORE_ID').val('');
362
+			$('#ITP_FORM_LOANMNG01010_SEARCH_STORE_NM').val('');
363
+		}
364
+	},
365
+	empty: {
366
+		init: function() {
367
+			var _this = this;
368
+			this.push();
369
+			$(LOANMNG01010_GRID_EMPTY).on('click', function() {
370
+				_this.back();
371
+				_this.itp_LOANMNG01010_param.gridSize = $.jgrid.defaults.rowNum;
372
+				$(LOANMNG01010_GRID_ID).setGridParam({'postData': JSON.stringify(_this.itp_LOANMNG01010_param)}).trigger('reloadGrid');
373
+			});
374
+		},
375
+		itp_LOANMNG01010_param: {},
376
+		push: function() {
377
+			let param = $('#ITP_FORM_LOANMNG01010_SEARCH').serializeObject();
378
+			listObj.itp_LOANMNG01010_param = param;
379
+		},
380
+		back: function() {
381
+			$('#ITP_FORM_LOANMNG01010_WHS_DVSN').val(listObj.itp_LOANMNG01010_param.swhsDvsn);
382
+			$('#ITP_FORM_LOANMNG01010_WHS_ST_CD').val(listObj.itp_LOANMNG01010_param.swhsStCd);
383
+			$('#ITP_FORM_LOANMNG01010_SEARCH_WHS_NM').val(listObj.itp_LOANMNG01010_param.swhsNm);
384
+		}
385
+	},
386
+	grid: {
387
+		init: function () {
388
+			// 데이터 없을때
389
+			listObj.empty.push();
390
+			this.search();
391
+		},
392
+		colModel: gridColModel.list,
393
+		search: function() {
394
+			pageObj.switchScreen('LIST');
395
+			this.unload();
396
+			this.load();
397
+		},
398
+		load: function() {
399
+			$('#ITP_FORM_LOANMNG01010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
400
+			
401
+			let param = $('#ITP_FORM_LOANMNG01010_SEARCH').serializeObject();
402
+			param.gridSize = $.jgrid.defaults.rowNum;
403
+
404
+			var option = {
405
+				gridId: LOANMNG01010_GRID_ID,
406
+				colModel: gridColModel.list,
407
+				param: JSON.stringify(param),
408
+				url: DOMAIN + LOAN_STATE_DETAIL_GRID_LIST,
409
+				pager: LOANMNG01010_GRID_PAGER,
410
+				onCellSelect: function(rowId, cellIdx, cellValue) {
411
+					var cm = $(this).jqGrid('getGridParam', 'colModel');
412
+					var colNm = cm[cellIdx].name;
413
+					if (colNm == 'loanDvsnNm') {
414
+						const loanMgntUnqNoVal = $(this).jqGrid('getCell', rowId, 'loanMgntUnqNo');
415
+						
416
+						const key = {loanMgntUnqNo: loanMgntUnqNoVal, viewCd: 'R'};
417
+						var param = $.param(key);
418
+						viewObj.init(param);
419
+					}
420
+				},
421
+				loadComplete: function(data) {
422
+					// console.log(data);
423
+					itp_fn_grid_load_complete(data, LOANMNG01010_GRID_ID, true, 'number', 'LOANMNG01010', listObj.itp_LOANMNG01010_search, listObj.empty, true, data.gridRecords, true);
424
+					var ids = $(LOANMNG01010_GRID_ID).getDataIDs();
425
+					$.each(ids, function(idx, rowId) {
426
+						$(LOANMNG01010_GRID_ID).jqGrid('setCell', rowId, 'loanDvsnNm', '', ITP_GRID_COL_STYLE.link);
427
+					});
428
+				},
429
+				onPaging: function(action) {
430
+					itp_fn_grid_paging(LOANMNG01010_GRID_ID, action, param);
431
+				}
432
+			};
433
+			itp_fn_grid_make_remote(option);
434
+		},
435
+		clearData : function() {
436
+			$(LOANMNG01010_GRID_ID).jqGrid('clearGridData', true);
437
+			$(LOANMNG01010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
438
+			$(LOANMNG01010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
439
+			$(LOANMNG01010_GRID_EMPTY).show();
440
+		},
441
+		unload : function() {
442
+			$.jgrid.gridUnload(LOANMNG01010_GRID_ID);
443
+		}
444
+	}
445
+};
446
+
447
+/*상세화면 Object*/
448
+let viewObj = {
449
+	init: function (param) {
450
+		this.load(param);
451
+	},
452
+	load: function(param) {
453
+		fn_ajax_call(LOAN_STATE_INFO_LOAN_MNG, param, this.callback, 'GET');
454
+	},
455
+	callback: function (result) {
456
+		// console.log(result);
457
+		pageObj.switchScreen('VIEW');
458
+		$('#ITP_FORM_LOANMNG01010_VIEW #ITP_FORM_LOANMNG01010_VIEW_BRAND_ID').val(result.brandId);
459
+		$('#ITP_FORM_LOANMNG01010_VIEW #ITP_FORM_LOANMNG01010_VIEW_STORE_ID').val(result.storeId);
460
+		$('#ITP_FORM_LOANMNG01010_VIEW #ITP_FORM_LOANMNG01010_VIEW_LOAN_MGNT_UNQ_NO').val(result.loanMgntUnqNo);
461
+		
462
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnBrandNm').text(result.brandNm);
463
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnStoreNm').text(result.storeNm);
464
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnLoanDvsn').text(result.loanDvsnNm);
465
+		if(result.loanDvsn == 'LD01') { // 선불(충전)
466
+			$('#ITP_FORM_LOANMNG01010_VIEW .fnCredtLimitAmt').text(itp_fn_number_comma(result.chrgeLimitAmt));	
467
+		} else if(result.loanDvsn == 'LD02') { // 후불(신용)
468
+			$('#ITP_FORM_LOANMNG01010_VIEW .fnCredtLimitAmt').text(itp_fn_number_comma(result.credtLimitAmt));	
469
+		}
470
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnContDt').text(''); // TODO 계약기간
471
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnUseYn').text(result.useYnNm);
472
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnPosbLimitAmt').text(''); // TODO 가용한도금액
473
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnTmpRcvAcctTotal').text(itp_fn_number_comma(result.tmpRcvAcctTotal));
474
+		$('#ITP_FORM_LOANMNG01010_VIEW .fnUseAmtTotal').text(itp_fn_number_comma(result.useAmtTotal));
475
+
476
+		// 권한정보 리스트 조회
477
+		viewObj.grid.init();
478
+	},
479
+	grid: {
480
+		init: function() {
481
+			this.unload();
482
+			this.load();
483
+		},
484
+		load : function() {
485
+			let param = $('#ITP_FORM_LOANMNG01010_VIEW').serializeObject();
486
+			param.gridSize = $.jgrid.defaults.rowNum;
487
+			param.pagingYn = false; // 페이징안함
488
+
489
+			var option = {
490
+				gridId: LOANMNG01010_VIEW_GRID_ID,
491
+				colModel: gridColModel.view,
492
+				param: JSON.stringify(param),
493
+				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
494
+				pager: LOANMNG01010_VIEW_GRID_PAGER,
495
+				loadComplete: function(data) {
496
+					itp_fn_grid_load_complete(data, LOANMNG01010_VIEW_GRID_ID, true, undefined, 'LOANMNG01010_VIEW');
497
+				},
498
+				onPaging: function(action) {
499
+					var pagingFn = {
500
+						callBack: function(args) {
501
+							$(args).trigger('reloadGrid');
502
+						}
503
+					};
504
+					if (itp_fn_check_grid_is_writing(LOANMNG01010_VIEW_GRID_ID)) {
505
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, LOANMNG01010_VIEW_GRID_ID);
506
+						return 'stop';
507
+					} else {
508
+						itp_fn_grid_paging(LOANMNG01010_VIEW_GRID_ID, action, param);
509
+					}
510
+				},
511
+				onSortCol: function(index, columnIndex, sortOrder) {
512
+					var sortingFn = {
513
+						callBack: function(args) {
514
+							$(args).trigger('reloadGrid');
515
+						}
516
+					};
517
+					if (itp_fn_check_grid_is_writing(LOANMNG01010_VIEW_GRID_ID)) {
518
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, LOANMNG01010_VIEW_GRID_ID);
519
+						return 'stop';
520
+					} else {
521
+						itp_fn_grid_sorting(LOANMNG01010_VIEW_GRID_ID, index, sortOrder);
522
+					}
523
+				}
524
+			};
525
+			itp_fn_grid_make_remote(option);
526
+		},
527
+		clearData : function() {
528
+			$(LOANMNG01010_VIEW_GRID_ID).jqGrid('clearGridData', true);
529
+			$(LOANMNG01010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
530
+			$(LOANMNG01010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
531
+			$(LOANMNG01010_VIEW_GRID_EMPTY).show();
532
+		},
533
+		unload : function() {
534
+			$.jgrid.gridUnload(LOANMNG01010_VIEW_GRID_ID);
535
+		}
536
+	}
537
+};
538
+
539
+/*수정화면 Object*/
540
+let modifyObj = {
541
+	init: function () {
542
+	},
543
+	button: {
544
+		modify: function (param) {
545
+			itp_fn_form_clear_validate(null, '#ITP_FORM_LOANMNG01010_DETAIL');
546
+			const brandIdVal = $('#ITP_FORM_LOANMNG01010_VIEW_BRAND_ID').val();
547
+			const whsIdVal = $('#ITP_FORM_LOANMNG01010_VIEW_WHS_ID').val();
548
+			const key = {brandId: brandIdVal, whsId: whsIdVal, storeId: '', viewCd: 'R'};
549
+			var param = $.param(key);
550
+			modifyObj.load(param);
551
+		}
552
+	},
553
+	load: function(param) {
554
+		fn_ajax_call(LOAN_STATE_INFO_LOAN_MNG, param, this.callback, 'GET');
555
+	},
556
+	callback: function (result) {
557
+		// console.log(result);
558
+		pageObj.switchScreen('MODIFY');
559
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_VIEW_CD').val('U');
560
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_BRAND_ID').val(result.brandId);
561
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_STORE_ID').val(result.storeId);
562
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_WHS_ID').val(result.whsId);
563
+				
564
+		$('#ITP_FORM_LOANMNG01010_DETAIL .fnBrandNm').text(result.brandNm);
565
+		$('#ITP_FORM_LOANMNG01010_DETAIL .fnWhsId').text(result.whsId);
566
+		$('#ITP_FORM_LOANMNG01010_DETAIL .fnRegDtm').text(result.sysRegDttm);
567
+		
568
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_WHS_ST_CD').val(result.whsStCd);
569
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_WHS_NM').val(result.whsNm);
570
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_WHS_NM').val(result.whsNm);
571
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_MGR_TEL_NO').val(result.mgrTelNo);
572
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_MGR_NM').val(result.mgrNm);
573
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_STORE_NM').val(result.storeNm);
574
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_ZIPNO').val(result.zipNo);
575
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_ADRES').val(result.addr1);
576
+		$('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_ADRES_DTL').val(result.addr2);
577
+		
578
+		kakaoMap.init('ITP_FORM_LOANMNG01010_DETAIL', $('#ITP_FORM_LOANMNG01010_DETAIL #ITP_FORM_LOANMNG01010_DETAIL_ADRES').val());
579
+		
580
+		// 권한정보 리스트 조회
581
+		modifyObj.grid.init();
582
+	},
583
+	grid: {
584
+		init: function() {
585
+			this.unload();
586
+			this.load();
587
+		},
588
+		load : function() {
589
+			let param = $('#ITP_FORM_LOANMNG01010_DETAIL').serializeObject();
590
+			param.gridSize = $.jgrid.defaults.rowNum;
591
+			param.pagingYn = false; // 페이지안함
592
+
593
+			var option = {
594
+				gridId: LOANMNG01010_DETAIL_GRID_ID,
595
+				colModel: gridColModel.detail,
596
+				param: JSON.stringify(param),
597
+				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
598
+				pager: LOANMNG01010_DETAIL_GRID_PAGER,
599
+				multiselect: true,
600
+				onCellSelect: function(rowId, cellIdx, cellValue) {
601
+					LOANMNG01010_DETAIL_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, LOANMNG01010_DETAIL_GRID_LAST_ROW_ID, LOANMNG01010_DETAIL_GRID_ID, ['location']);
602
+		   		},
603
+				loadComplete: function(data) {
604
+					itp_fn_grid_load_complete(data, LOANMNG01010_DETAIL_GRID_ID, true, undefined, 'LOANMNG01010_DETAIL'); 
605
+				},
606
+				onPaging: function(action) {
607
+					var pagingFn = {
608
+						callBack: function(args) {
609
+							$(args).trigger('reloadGrid');
610
+						}
611
+					};
612
+					if (itp_fn_check_grid_is_writing(LOANMNG01010_DETAIL_GRID_ID)) {
613
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, LOANMNG01010_DETAIL_GRID_ID);
614
+						return 'stop';
615
+					} else {
616
+						itp_fn_grid_paging(LOANMNG01010_DETAIL_GRID_ID, action, param);
617
+					}
618
+				},
619
+				onSortCol: function(index, columnIndex, sortOrder) {
620
+					var sortingFn = {
621
+						callBack: function(args) {
622
+							$(args).trigger('reloadGrid');
623
+						}
624
+					};
625
+					if (itp_fn_check_grid_is_writing(LOANMNG01010_DETAIL_GRID_ID)) {
626
+						itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, LOANMNG01010_DETAIL_GRID_ID);
627
+						return 'stop';
628
+					} else {
629
+						itp_fn_grid_sorting(LOANMNG01010_DETAIL_GRID_ID, index, sortOrder);
630
+					}
631
+				}
632
+			};
633
+			itp_fn_grid_make_remote(option);
634
+		},
635
+		clearData : function() {
636
+			$(LOANMNG01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
637
+			$(LOANMNG01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
638
+			$(LOANMNG01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
639
+			$(LOANMNG01010_DETAIL_GRID_EMPTY).show();
640
+		},
641
+		unload : function() {
642
+			$.jgrid.gridUnload(LOANMNG01010_DETAIL_GRID_ID);
643
+		}
644
+	}
645
+};
646
+
647
+/*신규화면 Object*/
648
+let createObj = {
649
+	init: function () {
650
+		kakaoMap.init('ITP_FORM_LOANMNG01010_DETAIL', '');
651
+		this.unload();
652
+		this.load();
653
+	},
654
+	button: {
655
+		cancel: function() {
656
+			listObj.grid.search();
657
+		},
658
+		save: function() {
659
+			var detailViewCd = $('#ITP_FORM_LOANMNG01010_DETAIL_VIEW_CD').val();
660
+			const formId = '#ITP_FORM_LOANMNG01010_DETAIL';
661
+			itp_fn_form_clear_validate(null, formId);
662
+			
663
+			var vali_whsStatCd = itp_fn_form_validate(formId, formId + '_WHS_ST_CD', ['empty'], undefined); // 상태
664
+			var vali_whsNm = itp_fn_form_validate(formId, formId + '_WHS_NM', ['empty'], undefined);
665
+			
666
+			if (vali_whsStatCd && vali_whsNm) {
667
+				let gridInsertData = [];
668
+				let gridUpdateData = [];
669
+				let gridDeleteData = [];
670
+				const rowData = $(LOANMNG01010_DETAIL_GRID_ID).getRowData();
671
+				// const keyValue = $(formId + '_WHS_ID').val();
672
+				$.each(rowData, function(key, value) {
673
+					if (value.viewCd != 'R') {
674
+						// value.whsId = keyValue;
675
+						if (value.viewCd == 'C') {
676
+							gridInsertData.push(value);
677
+						} else if (value.viewCd == 'U') {
678
+							gridUpdateData.push(value);
679
+						} else if (value.viewCd == 'D') {
680
+							gridDeleteData.push(value);
681
+						}
682
+					}
683
+				});
684
+				let param = $(formId).serializeObject();
685
+				param.gridInsertData = gridInsertData;
686
+				param.gridUpdateData = gridUpdateData;
687
+				param.gridDeleteData = gridDeleteData;
688
+				//console.log(JSON.stringify(param));
689
+				var searhFn = function() {
690
+					ITP_FORM_LOANMNG01010_DETAIL_IS_WRITING = false;
691
+					listObj.grid.search();
692
+				};
693
+				fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
694
+			}
695
+		}, 
696
+		address: function() {
697
+			kakaoMap.address('ITP_FORM_LOANMNG01010_DETAIL');
698
+		}		
699
+	},
700
+	load: function () {
701
+		let param = $('#ITP_FORM_LOANMNG01010_DETAIL').serializeObject();
702
+		param.gridSize = $.jgrid.defaults.rowNum;
703
+		param.pagingYn = false; // 페이지안함
704
+
705
+		var option = {
706
+			gridId: LOANMNG01010_DETAIL_GRID_ID,
707
+			colModel: gridColModel.detail,
708
+			param: JSON.stringify(param),
709
+			url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
710
+			pager: LOANMNG01010_DETAIL_GRID_PAGER,
711
+			multiselect: true,
712
+			loadComplete: function(data) {
713
+				itp_fn_grid_load_complete(data, LOANMNG01010_DETAIL_GRID_ID, true, undefined, 'LOANMNG01010_DETAIL');
714
+			},
715
+			onPaging: function(action) {
716
+				var pagingFn = {
717
+					callBack: function(args) {
718
+						$(args).trigger('reloadGrid');
719
+					}
720
+				};
721
+				if (itp_fn_check_grid_is_writing(LOANMNG01010_DETAIL_GRID_ID)) {
722
+					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, LOANMNG01010_DETAIL_GRID_ID);
723
+					return 'stop';
724
+				} else {
725
+					itp_fn_grid_paging(LOANMNG01010_DETAIL_GRID_ID, action, param);
726
+				}
727
+			},
728
+			onSortCol: function(index, columnIndex, sortOrder) {
729
+				var sortingFn = {
730
+					callBack: function(args) {
731
+						$(args).trigger('reloadGrid');
732
+					}
733
+				};
734
+				if (itp_fn_check_grid_is_writing(LOANMNG01010_DETAIL_GRID_ID)) {
735
+					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, LOANMNG01010_DETAIL_GRID_ID);
736
+					return 'stop';
737
+				} else {
738
+					itp_fn_grid_sorting(LOANMNG01010_DETAIL_GRID_ID, index, sortOrder);
739
+				}
740
+			}
741
+		};
742
+		itp_fn_grid_make_remote(option);
743
+	},
744
+	clearData : function() {
745
+		$(LOANMNG01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
746
+		$(LOANMNG01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
747
+		$(LOANMNG01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
748
+		$(LOANMNG01010_DETAIL_GRID_EMPTY).show();
749
+	},
750
+	unload : function() {
751
+		$.jgrid.gridUnload(LOANMNG01010_DETAIL_GRID_ID);
752
+	}
753
+};
754
+
755
+/*로케이션정보 Object*/
756
+let locInfoObj = {
757
+	init: function () {
758
+		// if(AUTH_TYPE_CD === '10' || AUTH_TYPE_CD === '20') {
759
+		this.action();
760
+		// } else {
761
+		// this.make();
762
+		// }
763
+	},
764
+	button: {
765
+		addRow: function() {
766
+			// $(LOANMNG01010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
767
+			// $(LOANMNG01010_DETAIL_GRID_EMPTY).hide();
768
+			LOANMNG01010_DETAIL_GRID_LAST_ROW_ID = itp_fn_add_grid_row(LOANMNG01010_DETAIL_GRID_ID, undefined, ['location'],'LOANMNG01010_DETAIL');
769
+		},
770
+		delRow: function() {
771
+			itp_fn_grid_del_row(LOANMNG01010_DETAIL_GRID_ID);
772
+		}
773
+	},
774
+	make: function() {
775
+		$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP').hide();
776
+		$('#ITP_FORM_LOANMNG01010_DELETE_AFFL_SHOP').hide();
777
+		if(AFFL_SHOP_LIST) {
778
+			$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP_ID').val(AFFL_SHOP_LIST[0].afflShopId);
779
+			$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP_NM').val(AFFL_SHOP_LIST[0].afflShopNm);
780
+		}
781
+		if(AFFL_BRAND_LIST) {
782
+			fn_make_select_brand(AFFL_BRAND_LIST, 'ITP_FORM_LOANMNG01010_SEARCH_BRAND_ID');
783
+		}
784
+	},
785
+	action: function () {
786
+		var _this = this;
787
+		// 로케이션정보 조회 버튼 클릭
788
+		$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP').on('click', function() {
789
+			_this.popup('L');
790
+		});
791
+		// 로케이션정보 텍스트 삭제 버튼 클릭
792
+		$('#ITP_FORM_LOANMNG01010_DELETE_AFFL_SHOP').on('click', function() {
793
+			$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP_NM').val('');
794
+			$('select#ITP_FORM_LOANMNG01010_SEARCH_BRAND_ID option').remove();
795
+		});
796
+		// 신규등록 로케이션정보 조회 버튼 클릭
797
+		$('#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_AFFL_SHOP').on('click', function() {
798
+			_this.popup('C');
799
+		});
800
+		// 신규등록 로케이션정보 텍스트 삭제 버튼 클릭
801
+		$('#ITP_FORM_LOANMNG01010_DETAIL_DELETE_AFFL_SHOP').on('click', function() {
802
+			$('#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_AFFL_SHOP_NM').val('');
803
+			$('select#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_BRAND_ID option').remove();
804
+		});
805
+	},
806
+	popup: function (view) {
807
+		// 팝업
808
+		var popFn = (view === 'C') ? this.callback.create : this.callback.list;
809
+		fn_call_popup('biz', 'BIZPOP_AFFL_SHOP', '#ITP_ASIDE', popFn, null, 'S');
810
+	},
811
+	callback: {
812
+		list: function(rowDataPop) {
813
+			// console.log(rowDataPop);
814
+			if(rowDataPop.AFFL_SHOP) {
815
+				$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
816
+				$('#ITP_FORM_LOANMNG01010_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
817
+			}
818
+			if(rowDataPop.AFFL_BRAND) {
819
+				fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_LOANMNG01010_SEARCH_BRAND_ID', true, '선택');
820
+			}
821
+		},
822
+		create: function(rowDataPop) {
823
+			// console.log(rowDataPop);
824
+			if(rowDataPop.AFFL_SHOP) {
825
+				// $('#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
826
+				// $('#ITP_FORM_LOANMNG01010_DETAIL_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
827
+			}
828
+			if(rowDataPop.AFFL_BRAND) {
829
+				fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_LOANMNG01010_DETAIL_SEARCH_BRAND_ID', true, '선택');
830
+			}
831
+		}
832
+	}
833
+};

+ 59 - 13
src/main/webapp/js/app/stockmng/ITP_STOCKMNG04011.js

@@ -145,14 +145,17 @@ let pageObj = {
145 145
 			fn_make_select(CODE_LIST, 'WHS_ST_CD', 'ITP_FORM_STOCKMNG04011_DETAIL_WHS_ST_CD', true, '선택');
146 146
 		},
147 147
 		ready: function() {
148
-			const brandIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val();
149
-			const storeIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_STORE_ID').val();
150
-						
151
-			const key = {brandId: brandIdVal, storeId: storeIdVal, whsId: '', viewCd: 'R'};
152
-			var param = $.param(key);
153
-			viewObj.init(param);
148
+			pageObj.changeView();	
154 149
 		}
155 150
 	},
151
+	changeView: function() {
152
+		const brandIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val();
153
+		const storeIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_STORE_ID').val();
154
+					
155
+		const key = {brandId: brandIdVal, storeId: storeIdVal, whsId: '', viewCd: 'R'};
156
+		var param = $.param(key);
157
+		viewObj.init(param);
158
+	}, 
156 159
 	event: {
157 160
 		init: function () {
158 161
 			this.button();
@@ -164,13 +167,11 @@ let pageObj = {
164 167
 				$(this).on('click', function() {
165 168
 					switch (id) {
166 169
 						case 'ITP_BTN_STOCKMNG04011_MODIFY'				: modifyObj.button.modify();	break;	// 수정 버튼
167
-						case 'ITP_BTN_STOCKMNG04011_CANCELLIST'			: createObj.button.cancel(); 	break;	// 취소/목록 버튼
168
-						case 'ITP_BTN_STOCKMNG04011_SAVE'				: createObj.button.save(); 		break;	// 저장 버튼
170
+						case 'ITP_BTN_STOCKMNG04011_CANCELLIST'			: modifyObj.button.cancel(); 	break;	// 취소/목록 버튼
171
+						case 'ITP_BTN_STOCKMNG04011_SAVE'				: modifyObj.button.save(); 		break;	// 저장 버튼
169 172
 						case 'ITP_BTN_STOCKMNG04011_DETAIL_ADDROW'		: locInfoObj.button.addRow();	break;	// 상세:추가버튼
170 173
 						case 'ITP_BTN_STOCKMNG04011_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
171
-						case 'ITP_BTN_STOCKMNG04011_DETAIL_ADDRESS_SEARCH'		: createObj.button.address();	break;	// 신규등록 주소 찾기
172
-						case 'ITP_BTN_STOCKMNG04011_SEARCH_SRH'			: createObj.button.popupStore();	break;	// 매장선택 팝업
173
-						case 'ITP_BTN_STOCKMNG04011_SEARCH_MODIFY'		: createObj.button.eraseStore();	break;	// 매장선택 삭제
174
+						case 'ITP_BTN_STOCKMNG04011_DETAIL_ADDRESS_SEARCH'		: modifyObj.button.address();	break;	// 신규등록 주소 찾기
174 175
 					}
175 176
 				});
176 177
 			});
@@ -208,9 +209,9 @@ let pageObj = {
208 209
 			$('#ITP_BTN_STOCKMNG04011_NEWREG').hide();
209 210
 			$('#ITP_BTN_STOCKMNG04011_DELETE').hide();
210 211
 			$('#ITP_BTN_STOCKMNG04011_SAVE').hide();
212
+			$('#ITP_BTN_STOCKMNG04011_CANCELLIST').hide();
211 213
 			
212 214
 			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_MODIFY');
213
-			fn_show_btn_auth('#ITP_BTN_STOCKMNG04011_CANCELLIST');
214 215
 
215 216
 			$('#ITP_AJAX_STOCKMNG04011_LIST_CONTAINER').hide();
216 217
 			$('#ITP_AJAX_STOCKMNG04011_DETAIL_CONTAINER').hide();
@@ -317,10 +318,55 @@ let modifyObj = {
317 318
 		modify: function (param) {
318 319
 			itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG04011_DETAIL');
319 320
 			const brandIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_BRAND_ID').val();
321
+			const storeIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_STORE_ID').val();
320 322
 			const whsIdVal = $('#ITP_FORM_STOCKMNG04011_VIEW_WHS_ID').val();
321
-			const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
323
+			const key = {brandId: brandIdVal, storeId: storeIdVal, whsId: whsIdVal, viewCd: 'R'};
322 324
 			var param = $.param(key);
323 325
 			modifyObj.load(param);
326
+		}, 
327
+		cancel: function() {
328
+			pageObj.changeView();
329
+		}, 
330
+		save: function() {
331
+			var detailViewCd = $('#ITP_FORM_STOCKMNG04011_DETAIL_VIEW_CD').val();
332
+			const formId = '#ITP_FORM_STOCKMNG04011_DETAIL';
333
+			itp_fn_form_clear_validate(null, formId);
334
+			
335
+			var vali_whsStatCd = itp_fn_form_validate(formId, formId + '_WHS_ST_CD', ['empty'], undefined); // 상태
336
+			var vali_whsNm = itp_fn_form_validate(formId, formId + '_WHS_NM', ['empty'], undefined);
337
+			
338
+			if (vali_whsStatCd && vali_whsNm) {
339
+				let gridInsertData = [];
340
+				let gridUpdateData = [];
341
+				let gridDeleteData = [];
342
+				const rowData = $(STOCKMNG04011_DETAIL_GRID_ID).getRowData();
343
+				// const keyValue = $(formId + '_WHS_ID').val();
344
+				$.each(rowData, function(key, value) {
345
+					if (value.viewCd != 'R') {
346
+						// value.whsId = keyValue;
347
+						if (value.viewCd == 'C') {
348
+							gridInsertData.push(value);
349
+						} else if (value.viewCd == 'U') {
350
+							gridUpdateData.push(value);
351
+						} else if (value.viewCd == 'D') {
352
+							gridDeleteData.push(value);
353
+						}
354
+					}
355
+				});
356
+				let param = $(formId).serializeObject();
357
+				param.gridInsertData = gridInsertData;
358
+				param.gridUpdateData = gridUpdateData;
359
+				param.gridDeleteData = gridDeleteData;
360
+				//console.log(JSON.stringify(param));
361
+				var searhFn = function() {
362
+					ITP_FORM_STOCKMNG04011_DETAIL_IS_WRITING = false;
363
+					pageObj.changeView();					
364
+				};
365
+				fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
366
+			}
367
+		}, 
368
+		address: function() {
369
+			kakaoMap.address('ITP_FORM_STOCKMNG04011_DETAIL');
324 370
 		}
325 371
 	},
326 372
 	load: function(param) {