瀏覽代碼

재고실사 엑셀업로드 구현중

marseyes 2 年之前
父節點
當前提交
db131d8a84

+ 1 - 0
src/main/webapp/app/stockmng/STOCKMNG02010.html

@@ -84,6 +84,7 @@
84 84
 												<select id="ITP_FORM_STOCKMNG02010_DETAIL_CDD_DVSN" data-select-code="CDD_DVSN" class="form-control itp_input" name="cddDvsn"></select>										
85 85
 											</div>
86 86
 											<div class="col-xs-2 itp_ip">
87
+												<input id="ITP_FORM_STOCKMNG02010_DETAIL_EXCEL_UPLOAD_SELECT_FILE" type="file" style="display:none;" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
87 88
 												<button type="button" id="ITP_BTN_STOCKMNG02010_DETAIL_EXCEL_UPLOAD" class="btn btn-warning btn-sm FFB"><i class="glyphicon "></i>&nbsp;&nbsp;엑셀업로드&nbsp;&nbsp;</button>
88 89
 											</div>
89 90
 										</div>

+ 12 - 3
src/main/webapp/app/stockmng/STOCKMNG04010.html

@@ -118,14 +118,23 @@
118 118
 			                                        <input type="text" id="ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO" class="form-control itp_input" name="zipNo" value="" maxlength="6" placeholder="우편번호" readonly="readonly">													
119 119
 			                                    </div>
120 120
 			                                    <div class="col-xs-2 itp_in" style="width:10%;">
121
-			                                        <button type="button" id="ITP_FORM_STOCKMNG04010_DETAIL_ADDRESS_SEARCH" class="btn btn-primary btn-sm ADDS" style="margin:0 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
121
+			                                        <button type="button" id="ITP_BTN_STOCKMNG04010_DETAIL_ADDRESS_SEARCH" class="btn btn-primary btn-sm ADDS" style="margin:0 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
122 122
 			                                    </div>
123 123
 			                                    <div class="col-xs-4 itp_in" style="margin:0 5px;">
124
-			                                        <input type="text" id="ITP_FORM_STOCKMNG04010_DETAIL_LOAD_ADDR" class="form-control itp_input" name="addr1" value="" placeholder="기본주소" readonly="readonly">													
124
+			                                        <input type="text" id="ITP_FORM_STOCKMNG04010_DETAIL_ADRES" class="form-control itp_input" name="addr1" value="" placeholder="기본주소" readonly="readonly">													
125 125
 			                                    </div>
126 126
 			                                    <div class="col-xs-4 itp_in">
127
-			                                        <input type="text" id="ITP_FORM_STOCKMNG04010_DETAIL_DTL_ADDR" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">													
127
+			                                        <input type="text" id="ITP_FORM_STOCKMNG04010_DETAIL_ADRES_DTL" class="form-control itp_input" name="addr2" value="" placeholder="상세주소">													
128 128
 			                                    </div>
129
+			                                    
130
+			                                    <!-- 주소 맵 -->
131
+												<input type="hidden" id="ITP_FORM_STOCKMNG04010_DETAIL_LOTS_ADDRESS" value="" />
132
+												<input type="hidden" id="ITP_FORM_STOCKMNG04010_DETAIL_STREET_ADDRESS" value="" />
133
+												<input type="hidden" name="latX" id="ITP_FORM_STOCKMNG04010_DETAIL_LAT" value="" />
134
+												<input type="hidden" name="latY" id="ITP_FORM_STOCKMNG04010_DETAIL_LNG" value="" />
135
+												<input type="hidden" id="ITP_FORM_STOCKMNG04010_DETAIL_HJ_DONG" value="" />
136
+												<input type="hidden" id="ITP_FORM_STOCKMNG04010_DETAIL_BJ_DONG" value="" />
137
+												<div id="ITP_FORM_STOCKMNG04010_DETAIL_MAP" style="width:0px; height:0px;"></div>
129 138
 			                                </div>
130 139
 			                            </div>	
131 140
 			                        </div>	

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

@@ -139,8 +139,7 @@ let pageObj = {
139 139
 			fn_proc_btn_auth('STOCKMNG01010');
140 140
 			
141 141
 			// 브랜드ID 지정
142
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
143
-			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(data.brandId);
142
+			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(pageObj.brandInfo.brandId);
144 143
 			
145 144
 			pageObj.fnWhsList(function() {
146 145
 				pageObj.fnLocationList();
@@ -340,8 +339,7 @@ let listObj = {
340 339
 			this.load();
341 340
 		},
342 341
 		load: function() {
343
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
344
-			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(data.brandId);
342
+			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(pageObj.brandInfo.brandId);
345 343
 			
346 344
 			let param = $('#ITP_FORM_STOCKMNG01010_SEARCH').serializeObject();
347 345
 			param.gridSize = $.jgrid.defaults.rowNum;

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

@@ -264,6 +264,8 @@ const gridColModel = {
264 264
 
265 265
 require(['config'], function() {
266 266
 	require([
267
+		'jquery.bootstrap.fileUpload',	//파일 업로드가 있는 페이지에서 로딩
268
+		'xlsx' 		// 엑셀 다운로드
267 269
 	], function($) {
268 270
 		pageObj.init();
269 271
 	});
@@ -335,6 +337,7 @@ let pageObj = {
335 337
 						case 'ITP_BTN_STOCKMNG02010_SAVE'				: stockCddObj.button.save(); 		break;	// 저장 버튼
336 338
 						case 'ITP_BTN_STOCKMNG02010_DETAIL_ADDROW'		: stockCddObj.button.addRow();	break;	// 품목추가 버튼
337 339
 						// case 'ITP_BTN_STOCKMNG02010_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
340
+						case 'ITP_BTN_STOCKMNG02010_DETAIL_EXCEL_UPLOAD'	: stockCddObj.button.uploadExcel();	break;	// 엑셀업로드
338 341
 					}
339 342
 				});
340 343
 			});
@@ -631,13 +634,41 @@ let viewObj = {
631 634
 /*재고실사 Object*/
632 635
 let stockCddObj = {
633 636
 	init: function () {
637
+		this.change();
634 638
 		this.unload();
635 639
 		this.load();
636 640
 	},
641
+	change: function() {
642
+		// 파일선택
643
+		$(document).on('change', '#ITP_FORM_STOCKMNG02010_DETAIL_EXCEL_UPLOAD_SELECT_FILE', function(obj) {						
644
+			var input = obj.target;
645
+		    var reader = new FileReader();
646
+			var rABS = !!reader.readAsBinaryString;
647
+		    reader.onload = function(){
648
+		        var fileData = reader.result;
649
+		        var wb = XLSX.read(fileData, {type : rABS ? 'binary' : 'array'});
650
+		        var sheetNameList = wb.SheetNames; // 시트 이름 목록 가져오기 
651
+		        var firstSheetName = sheetNameList[0]; // 첫번째 시트명
652
+		        var firstSheet = wb.Sheets[firstSheetName]; // 첫번째 시트 
653
+		        var rowObj =XLSX.utils.sheet_to_json(firstSheet, {header:"A", defval: ""});
654
+				
655
+				console.log(JSON.stringify(rowObj));
656
+				// console.log(rowObj);
657
+				// console.log(Object.keys(rowObj[0]).length);
658
+				// makeExcelDataList(rowObj);
659
+		    };
660
+		    if(rABS) reader.readAsBinaryString(input.files[0]); 
661
+			else reader.readAsArrayBuffer(input.files[0]);			
662
+		});
663
+	}, 
637 664
 	button: {
638 665
 		cancel: function() {
639 666
 			listObj.grid.search();
640 667
 		},
668
+		uploadExcel: function() {
669
+			// 파일선택
670
+			$('#ITP_FORM_STOCKMNG02010_DETAIL_EXCEL_UPLOAD_SELECT_FILE').click();
671
+		}, 
641 672
 		addRow: function() {
642 673
 			var brandId = $('#ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID').val();
643 674
 			var whsId = $('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID').val();

+ 21 - 4
src/main/webapp/js/app/stockmng/ITP_STOCKMNG04010.js

@@ -177,6 +177,7 @@ const gridColModel = {
177 177
 
178 178
 require(['config'], function() {
179 179
 	require([
180
+		'kakao.map.util'
180 181
 	], function($) {
181 182
 		pageObj.init();
182 183
 	});
@@ -233,6 +234,9 @@ let pageObj = {
233 234
 						case 'ITP_BTN_STOCKMNG04010_SAVE'				: createObj.button.save(); 		break;	// 저장 버튼
234 235
 						case 'ITP_BTN_STOCKMNG04010_DETAIL_ADDROW'		: locInfoObj.button.addRow();	break;	// 상세:추가버튼
235 236
 						case 'ITP_BTN_STOCKMNG04010_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
237
+						case 'ITP_BTN_STOCKMNG04010_DETAIL_ADDRESS_SEARCH'		: createObj.button.address();	break;	// 신규등록 주소 찾기
238
+						case 'ITP_BTN_STOCKMNG04010_SEARCH_SRH'			: createObj.button.popupStore();	break;	// 매장선택 팝업
239
+						case 'ITP_BTN_STOCKMNG04010_SEARCH_MODIFY'		: createObj.button.eraseStore();	break;	// 매장선택 삭제
236 240
 					}
237 241
 				});
238 242
 			});
@@ -288,8 +292,8 @@ let pageObj = {
288 292
 			$('#ITP_FORM_STOCKMNG04010_DETAIL_MGR_NM').val('');
289 293
 			$('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val('');
290 294
 			$('#ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO').val('');
291
-			$('#ITP_FORM_STOCKMNG04010_DETAIL_LOAD_ADDR').val('');
292
-			$('#ITP_FORM_STOCKMNG04010_DETAIL_DTL_ADDR').val('');
295
+			$('#ITP_FORM_STOCKMNG04010_DETAIL_ADRES').val('');
296
+			$('#ITP_FORM_STOCKMNG04010_DETAIL_ADRES_DTL').val('');
293 297
 			
294 298
 		} else if(mode == 'MODIFY') { // 수정
295 299
 			$('#ITP_BTN_STOCKMNG04010_SRH').hide();
@@ -556,8 +560,10 @@ let modifyObj = {
556 560
 		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_MGR_NM').val(result.mgrNm);
557 561
 		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val(result.storeNm);
558 562
 		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ZIPNO').val(result.zipNo);
559
-		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_LOAD_ADDR').val(result.addr1);
560
-		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_DTL_ADDR').val(result.addr2);
563
+		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ADRES').val(result.addr1);
564
+		$('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ADRES_DTL').val(result.addr2);
565
+		
566
+		kakaoMap.init('ITP_FORM_STOCKMNG04010_DETAIL', $('#ITP_FORM_STOCKMNG04010_DETAIL #ITP_FORM_STOCKMNG04010_DETAIL_ADRES').val());
561 567
 		
562 568
 		// 권한정보 리스트 조회
563 569
 		modifyObj.grid.init();
@@ -629,6 +635,7 @@ let modifyObj = {
629 635
 /*신규화면 Object*/
630 636
 let createObj = {
631 637
 	init: function () {
638
+		kakaoMap.init('ITP_FORM_STOCKMNG04010_DETAIL', '');
632 639
 		this.unload();
633 640
 		this.load();
634 641
 	},
@@ -673,6 +680,16 @@ let createObj = {
673 680
 				};
674 681
 				fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
675 682
 			}
683
+		}, 
684
+		address: function() {
685
+			kakaoMap.address('ITP_FORM_STOCKMNG04010_DETAIL');
686
+		},
687
+		popupStore: function() { // 매장선택 팝업
688
+			
689
+		}, 
690
+		eraseStore: function() { // 매장선택 삭제
691
+			$('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_ID').val('');
692
+			$('#ITP_FORM_STOCKMNG04010_DETAIL_STORE_NM').val('');
676 693
 		}
677 694
 	},
678 695
 	load: function () {