marseyes пре 2 година
родитељ
комит
ae7d8ccafb

+ 34 - 26
src/main/webapp/app/popup/biz/BIZPOP_PO_STOCK_PROC.html

@@ -10,37 +10,45 @@
10 10
 					<div class="col-xs-12">
11 11
 						<div class="form-horizontal">
12 12
 							<form id="ITP_FORM_PO_STOCK_PROC_POPUP">
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_SOURCE_WHS_ID" name="sourceWhsId" value="">
15
+								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_LOCATION" name="sourceLocation" value="">
16
+								<input type="hidden" id="ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_ID" name="itemId" value="">
17
+							
13 18
 								<div class="form-group">
14
-									<label class="col-xs-3 itp_lb">상위 분류정보</label>
15
-									<div class="col-xs-9 itp_ip">
16
-										<div class="col-xs-3 itp_in">
17
-											<select id="ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_CLASS1" class="form-control itp_input" name="sitemClass1">
18
-												<option value="A">품목분류Level1</option>
19
-											</select>
20
-										</div>
21
-										<div class="col-xs-3 itp_in">
22
-											<select id="ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_CLASS2" class="form-control itp_input" name="sitemClass2">
23
-												<option value="A">품목분류Level2</option>
24
-											</select>
25
-										</div>
26
-										<div class="col-xs-3 itp_in">
27
-											<select id="ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_CLASS3" class="form-control itp_input" name="sitemClass3">
28
-												<option value="A">품목분류Level3</option>
29
-											</select>
30
-										</div>
31
-										<div class="col-xs-3 itp_in">
32
-											<select id="ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_CLASS4" class="form-control itp_input" name="sitemClass4">
33
-												<option value="A">품목분류Level4</option>
34
-											</select>
35
-										</div>
36
-									</div>
19
+									<label class="col-xs-2 itp_lb">창고명</label>
20
+									<div class="col-xs-4 itp_ip fnWhsNm"></div>
21
+									<label class="col-xs-2 itp_lb">로케이션</label>
22
+									<div class="col-xs-4 itp_ip fnLocationNm"></div>
37 23
 								</div>
38 24
 								<div class="form-group">
39
-									<label class="col-xs-3 itp_lb">분류 코드 </label>
40
-									<div class="col-xs-9 itp_ip ITEM_ST_CD">
25
+									<label class="col-xs-2 itp_lb">품목번호</label>
26
+									<div class="col-xs-4 itp_ip fnItemId"></div>
27
+									<label class="col-xs-2 itp_lb">품목명</label>
28
+									<div class="col-xs-4 itp_ip fnItemNm"></div>
29
+								</div>
30
+								<div class="form-group border">
31
+									<label class="col-xs-2 itp_lb">현재고</label>
32
+									<div class="col-xs-4 itp_ip fnStckQty"></div>
33
+									<label class="col-xs-2 itp_lb">관리등급</label>
34
+									<div class="col-xs-4 itp_ip"></div>
35
+								</div>
36
+								<div class="form-group">
37
+									<label class="col-xs-2 itp_lb">창고선택</label>
38
+									<div class="col-xs-4 itp_ip">
39
+									<select id="ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_WHS_ID" class="form-control itp_input" name="targetWhsId"></select>
40
+									</div>
41
+									<label class="col-xs-2 itp_lb">Location</label>
42
+									<div class="col-xs-4 itp_ip">
43
+									<select id="ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_LOCATION" class="form-control itp_input" name="targetLocation"></select>
41 44
 									</div>
42 45
 								</div>
43
-								
46
+								<div class="form-group colspan">
47
+									<label class="col-xs-2 itp_lb">이동수량</label>
48
+									<div class="col-xs-4 itp_ip">
49
+									<input type="text" id="ITP_FORM_PO_STOCK_PROC_POPUP_MOVE_QTY" class="form-control itp_input" name="moveQty" />
50
+									</div>									
51
+								</div>								
44 52
 							</form>
45 53
 						</div>
46 54
 					</div>

+ 77 - 3
src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_PROC.js

@@ -6,13 +6,18 @@ require(['config'], function() {
6 6
 	});
7 7
 });
8 8
 
9
-let AFFL_POP_GRID_LIST 			= '/api/affl/pop-grid-list';
9
+let STOCK_MNG_INFO_STOCK = '/api/stock/mng/info-stock'; // 재고정보
10
+let STOCK_MNG_PROC_STOCK = '/api/stock/mng/proc-stock'; // 재고처리
11
+let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
12
+let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
10 13
 
11 14
 var popPageObj = {
12 15
 	init: function () {
13 16
 		this.button();
17
+		this.change();
14 18
 		this.brandInfo = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
15
-		// popItemClassLevel.list(1, true);
19
+		//재고정보 조회
20
+		this.fnStockInfo();
16 21
 	},
17 22
 	brandInfo: {},
18 23
 	parentPopFn: null,
@@ -23,8 +28,77 @@ var popPageObj = {
23 28
 			$('#ITP_BIZPOP_PO_STOCK_PROC').modal('hide'); // 팝업닫기
24 29
 		});
25 30
 		$('#ITP_BTN_PO_STOCK_PROC_SAVE_POP').on('click', function () {
26
-			
31
+			popPageObj.fnStockProc();
32
+		});
33
+	}, 
34
+	change: function() {
35
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_WHS_ID').on('change', function () {
36
+			popPageObj.fnLocationList();
37
+		});
38
+	}, 	
39
+	fnStockInfo: function() {
40
+		var param = $.param(this.args);
41
+		fn_ajax_call(STOCK_MNG_INFO_STOCK, param, this.fnStockInfoCallback, 'GET');
42
+	}, 
43
+	fnStockInfoCallback: function(result) {
44
+		// alert(JSON.stringify(result))
45
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID').val(result.brandId);
46
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_WHS_ID').val(result.whsId);
47
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP_SOURCE_LOCATION').val(result.location);
48
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP_ITEM_ID').val(result.itemId);
49
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP .fnWhsNm').text(result.whsNm);
50
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP .fnLocationNm').text(result.locationNm);
51
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP .fnItemId').text(result.itemId);
52
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP .fnItemNm').text(result.itemNm);
53
+		$('#ITP_FORM_PO_STOCK_PROC_POPUP .fnStckQty').text(result.stckQty);
54
+		
55
+		// 창고 및 로케이션 리스트
56
+		popPageObj.fnWhsList(function() {
57
+			popPageObj.fnLocationList();
27 58
 		});
59
+	}, 
60
+	fnStockProc: function() {
61
+		const formId = '#ITP_FORM_PO_STOCK_PROC_POPUP';
62
+		itp_fn_form_clear_validate(null, formId);
63
+		
64
+		var vali_moveQty = itp_fn_form_validate(formId, formId + '_MOVE_QTY', ['empty','number'], undefined);
65
+		
66
+		if (vali_moveQty) {
67
+			
68
+			
69
+			let param = $(formId).serializeObject();
70
+			// param.gridInsertData = gridInsertData;
71
+			// console.log(JSON.stringify(param));
72
+			var callbackFn = function() {
73
+				// 팝업닫기
74
+			};
75
+			fn_ajax_call(STOCK_MNG_PROC_STOCK, JSON.stringify(param), callbackFn, 'POST');
76
+		}
77
+	}, 
78
+	fnWhsList: function(fnCall) {
79
+		const brandIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID').val();	
80
+		const param = {sbrandId: brandIdVal, pagingYn: false};
81
+		
82
+		fn_ajax_call(WHS_MNG_DETAIL_GRID_LIST, JSON.stringify(param), function(result) {
83
+			
84
+			fn_make_select_whs(result.gridRows, 'ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_WHS_ID');
85
+			
86
+			if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
87
+					
88
+		}, 'POST');
89
+	}, 
90
+	fnLocationList: function(fnCall) {
91
+		const brandIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_BRAND_ID').val();	
92
+		const whsIdVal = $('#ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_WHS_ID').val();	
93
+		const param = {brandId: brandIdVal, whsId: whsIdVal, pagingYn: false};
94
+		
95
+		fn_ajax_call(WHS_MNG_LOCATION_GRID_LIST, JSON.stringify(param), function(result) {
96
+			
97
+			fn_make_select_location(result.gridRows, 'ITP_FORM_PO_STOCK_PROC_POPUP_TARGET_LOCATION');
98
+			
99
+			if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
100
+					
101
+		}, 'POST');
28 102
 	}
29 103
 };
30 104
 

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

@@ -33,8 +33,8 @@ const gridColModel = {
33 33
 			sortable: false, hidden: true
34 34
 		},
35 35
 		{
36
-			index: 'STORE_ID', name: 'storeId',
37
-			label: "매장ID", 
36
+			index: 'LOCATION', name: 'location',
37
+			label: "로케이션", 
38 38
 			width: '0', fixed: false, align: 'center',
39 39
 			sortable: false, hidden: true
40 40
 		},
@@ -243,10 +243,26 @@ let listObj = {
243 243
 			$(STOCKMNG01010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
244 244
 		}, 
245 245
 		clickStockProc: function() {
246
-			// var agrs = {'afflShopId': $('#ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP_ID').val()};
246
+			// 그리드에서 최소1개는 선택해야 함
247
+			const rowKey = $(STOCKMNG01010_GRID_ID).getGridParam('selrow');
248
+		    if (!rowKey) {
249
+				itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.noData);
250
+		    	return;
251
+		    }
252
+			var selectedIds = $(STOCKMNG01010_GRID_ID).getGridParam('selarrrow');
253
+			if (selectedIds.length > 1) {
254
+				itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.noSingleData);
255
+		    	return;
256
+			}
257
+			var brandId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).brandId;
258
+			var whsId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).whsId;
259
+			var location = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).location;
260
+			var itemId = $(STOCKMNG01010_GRID_ID).jqGrid('getRowData', selectedIds[0]).itemId;
261
+			
262
+			var args = {'brandId': brandId, 'whsId': whsId, 'location': location, 'itemId': itemId};			
247 263
 			fn_call_popup('biz', 'BIZPOP_PO_STOCK_PROC', '#ITP_ASIDE', function(rowDataPop) {
248 264
 				
249
-			}, null, 'S');
265
+			}, args, 'S');
250 266
 		}, 
251 267
 		clickStockHist: function() {
252 268