Browse Source

재고기준정보 관리

marseyes 2 years ago
parent
commit
34f43c1c1b

+ 7 - 0
src/main/webapp/app/stockmng/STOCKMNG03010.html

@@ -20,6 +20,7 @@
20
 								</form>
20
 								</form>
21
 								<form id="ITP_FORM_STOCKMNG03010_SEARCH" class="form-horizontal">
21
 								<form id="ITP_FORM_STOCKMNG03010_SEARCH" class="form-horizontal">
22
 									<input type="hidden" id="ITP_FORM_STOCKMNG03010_SEARCH_BRAND_ID" name="sbrandId" value="">
22
 									<input type="hidden" id="ITP_FORM_STOCKMNG03010_SEARCH_BRAND_ID" name="sbrandId" value="">
23
+									<input type="hidden" id="ITP_FORM_STOCKMNG03010_SEARCH_BRAND_NM" value="">
23
 									<input type="hidden" id="ITP_FORM_STOCKMNG03010_SEARCH_STORE_ID" name="sstoreId" value="">
24
 									<input type="hidden" id="ITP_FORM_STOCKMNG03010_SEARCH_STORE_ID" name="sstoreId" value="">
24
 								
25
 								
25
 									<div class="form-group">
26
 									<div class="form-group">
@@ -63,6 +64,12 @@
63
 							</div>
64
 							</div>
64
 						</div>
65
 						</div>
65
 					</div>
66
 					</div>
67
+					<div class="fix" style="padding-right:15px;margin-bottom: 13px;">
68
+						<div class="pull-right itp_cicon">
69
+							<button type="button" id="ITP_BTN_STOCKMNG03010_DETAIL_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;품목추가&nbsp;&nbsp;</button>
70
+							<button type="button" id="ITP_BTN_STOCKMNG03010_DETAIL_DELROW" class="btn btn-primary btn-sm DRB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;품목삭제&nbsp;&nbsp;</button>
71
+						</div>
72
+					</div>
66
 					<div class="itp_table fix">
73
 					<div class="itp_table fix">
67
 						<div id="ITP_STOCKMNG03010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
74
 						<div id="ITP_STOCKMNG03010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
68
 							<div id="ITP_STOCKMNG03010_jqGridView" class="itp_views fix"></div>
75
 							<div id="ITP_STOCKMNG03010_jqGridView" class="itp_views fix"></div>

+ 65 - 5
src/main/webapp/js/app/stockmng/ITP_STOCKMNG03010.js

@@ -55,7 +55,7 @@ const gridColModel = {
55
 			index: 'STORE_NM', name: 'storeNm',
55
 			index: 'STORE_NM', name: 'storeNm',
56
 			label: "매장명", 
56
 			label: "매장명", 
57
 			width: '10', fixed: false, align: 'center',
57
 			width: '10', fixed: false, align: 'center',
58
-			sortable: false, hidden: false
58
+			sortable: false, hidden: true
59
 		},
59
 		},
60
 		{
60
 		{
61
 			index: 'WHS_ID', name: 'whsId',
61
 			index: 'WHS_ID', name: 'whsId',
@@ -171,6 +171,8 @@ let pageObj = {
171
 					switch (id) {
171
 					switch (id) {
172
 						case 'ITP_BTN_STOCKMNG03010_SRH'		: listObj.button.search();		break;	// 조회 버튼
172
 						case 'ITP_BTN_STOCKMNG03010_SRH'		: listObj.button.search();		break;	// 조회 버튼
173
 						case 'ITP_BTN_STOCKMNG03010_SAVE'		: listObj.button.save();		break;	// 저장 버튼
173
 						case 'ITP_BTN_STOCKMNG03010_SAVE'		: listObj.button.save();		break;	// 저장 버튼
174
+						case 'ITP_BTN_STOCKMNG03010_DETAIL_ADDROW'		: listObj.button.addItem();		break;	// 품목추가 버튼
175
+						case 'ITP_BTN_STOCKMNG03010_DETAIL_DELROW'		: listObj.button.removeItem();		break;	// 품목삭제 버튼
174
 					}
176
 					}
175
 				});
177
 				});
176
 			});
178
 			});
@@ -245,13 +247,17 @@ let listObj = {
245
 			$(STOCKMNG03010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
247
 			$(STOCKMNG03010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
246
 		}, 
248
 		}, 
247
 		save: function() {
249
 		save: function() {
250
+			$('body').trigger('click');
251
+			
248
 			$('#ITP_FORM_STOCKMNG03010_WHS_ID').val($('#ITP_FORM_STOCKMNG03010_SEARCH_WHS_ID').val());
252
 			$('#ITP_FORM_STOCKMNG03010_WHS_ID').val($('#ITP_FORM_STOCKMNG03010_SEARCH_WHS_ID').val());
249
 			$('#ITP_FORM_STOCKMNG03010_LOCATION').val($('#ITP_FORM_STOCKMNG03010_SEARCH_LOCATION').val());
253
 			$('#ITP_FORM_STOCKMNG03010_LOCATION').val($('#ITP_FORM_STOCKMNG03010_SEARCH_LOCATION').val());
250
 			
254
 			
251
 			const formId = '#ITP_FORM_STOCKMNG03010';
255
 			const formId = '#ITP_FORM_STOCKMNG03010';
252
 			itp_fn_form_clear_validate(null, formId);
256
 			itp_fn_form_clear_validate(null, formId);
253
 			
257
 			
258
+			let gridInsertData = [];
254
 			let gridUpdateData = [];
259
 			let gridUpdateData = [];
260
+			let gridDeleteData = [];
255
 			const rowData = $(STOCKMNG03010_GRID_ID).getRowData();			
261
 			const rowData = $(STOCKMNG03010_GRID_ID).getRowData();			
256
 			if(rowData.length < 1) {
262
 			if(rowData.length < 1) {
257
 				itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.grid.noData);
263
 				itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.grid.noData);
@@ -259,23 +265,75 @@ let listObj = {
259
 			}	
265
 			}	
260
 			$.each(rowData, function(key, value) {
266
 			$.each(rowData, function(key, value) {
261
 				if (value.viewCd != 'R') {
267
 				if (value.viewCd != 'R') {
262
-					if (value.viewCd == 'U') {
268
+					if (value.viewCd == 'C') {
269
+						gridInsertData.push(value);
270
+					} else if (value.viewCd == 'U') {
263
 						gridUpdateData.push(value);
271
 						gridUpdateData.push(value);
264
-					} 
272
+					} else if (value.viewCd == 'D') {
273
+						gridDeleteData.push(value);
274
+					}
265
 				}
275
 				}
266
 			});
276
 			});
267
-			if(gridUpdateData.length < 1) {
277
+			if(gridInsertData.length < 1 && gridUpdateData.length < 1 && gridDeleteData.length < 1) {
268
 				itp_fn_modal_alert_ajax('변경된 데이터가 없습니다.');
278
 				itp_fn_modal_alert_ajax('변경된 데이터가 없습니다.');
269
 				return;
279
 				return;
270
 			}
280
 			}
271
-			let param = $(formId).serializeObject();			
281
+			let param = $(formId).serializeObject();
282
+			param.gridInsertData = gridInsertData;
272
 			param.gridUpdateData = gridUpdateData;
283
 			param.gridUpdateData = gridUpdateData;
284
+			param.gridDeleteData = gridDeleteData;			
273
 			//console.log(JSON.stringify(param));
285
 			//console.log(JSON.stringify(param));
274
 			var searhFn = function() {
286
 			var searhFn = function() {
275
 				ITP_FORM_STOCKMNG03010_DETAIL_IS_WRITING = false;
287
 				ITP_FORM_STOCKMNG03010_DETAIL_IS_WRITING = false;
276
 				listObj.grid.search();
288
 				listObj.grid.search();
277
 			};
289
 			};
278
 			fn_ajax_call(STOCK_BASE_MNG_SAVE, JSON.stringify(param), searhFn, 'POST');
290
 			fn_ajax_call(STOCK_BASE_MNG_SAVE, JSON.stringify(param), searhFn, 'POST');
291
+		}, 
292
+		addItem: function() {
293
+			var brandId = $('#ITP_FORM_STOCKMNG03010_SEARCH_BRAND_ID').val();
294
+			
295
+			var args = {'brandId': brandId};
296
+			fn_call_popup('biz', 'BIZPOP_ITEM', '#ITP_ASIDE', listObj.button.addRowCallback, args, 'S');
297
+		}, 
298
+		addRowCallback: function(rowDataPop) {
299
+			var brandId = $('#ITP_FORM_STOCKMNG03010_SEARCH_BRAND_ID').val();
300
+			var brandNm = $('#ITP_FORM_STOCKMNG03010_SEARCH_BRAND_NM').val();
301
+			var whsId = $('#ITP_FORM_STOCKMNG03010_SEARCH_WHS_ID').val();
302
+			var whsNm = $('#ITP_FORM_STOCKMNG03010_SEARCH_WHS_ID option:selected').text();
303
+			var location = $('#ITP_FORM_STOCKMNG03010_SEARCH_LOCATION').val();
304
+			var locationNm = $('#ITP_FORM_STOCKMNG03010_SEARCH_LOCATION option:selected').text();
305
+			
306
+			// 기존등록 데이터 체크
307
+			var exists = '';
308
+			const rowData = $(STOCKMNG03010_GRID_ID).getRowData();
309
+			$.each(rowData, function(key, value) {
310
+				exists = exists + value.itemId + ';';
311
+			});
312
+
313
+			$.each(rowDataPop, function(key, value) {
314
+				if(exists.indexOf(value.itemId) < 0) {
315
+					// 행추가
316
+					$(STOCKMNG03010_GRID_ID).jqGrid('addRow', {position: 'last'});
317
+					var rids = $(STOCKMNG03010_GRID_ID).jqGrid('getDataIDs');
318
+					var last_row_id = rids[rids.length - 1];
319
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');					
320
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'normalYn', 'Y'); // 정상여부
321
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'brandId', brandId);
322
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'brandNm', brandNm);
323
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'whsId', whsId);
324
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'whsNm', whsNm);
325
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'location', location);
326
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'locationNm', locationNm);
327
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'itemId', value.itemId);
328
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'itemNm', value.itemNm);
329
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'unit', value.unit);
330
+					$(STOCKMNG03010_GRID_ID).jqGrid('setCell', last_row_id, 'stckQty', value.stckQty);
331
+				}
332
+			});
333
+			$(STOCKMNG03010_GRID_EMPTY).hide();
334
+		}, 
335
+		removeItem: function() {
336
+			itp_fn_grid_del_row(STOCKMNG03010_GRID_ID);
279
 		}
337
 		}
280
 	},
338
 	},
281
 	form: function() {
339
 	form: function() {
@@ -329,6 +387,7 @@ let listObj = {
329
 		load: function() {
387
 		load: function() {
330
 			$('#ITP_FORM_STOCKMNG03010_BRAND_ID').val(fn_make_user_info.get('brandId'));
388
 			$('#ITP_FORM_STOCKMNG03010_BRAND_ID').val(fn_make_user_info.get('brandId'));
331
 			$('#ITP_FORM_STOCKMNG03010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
389
 			$('#ITP_FORM_STOCKMNG03010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
390
+			$('#ITP_FORM_STOCKMNG03010_SEARCH_BRAND_NM').val(fn_make_user_info.get('brandNm'));
332
 			
391
 			
333
 			let param = $('#ITP_FORM_STOCKMNG03010_SEARCH').serializeObject();
392
 			let param = $('#ITP_FORM_STOCKMNG03010_SEARCH').serializeObject();
334
 			param.gridSize = $.jgrid.defaults.rowNum;
393
 			param.gridSize = $.jgrid.defaults.rowNum;
@@ -339,6 +398,7 @@ let listObj = {
339
 				param: param,
398
 				param: param,
340
 				url: DOMAIN + STOCK_BASE_MNG_DETAIL_GRID_LIST,
399
 				url: DOMAIN + STOCK_BASE_MNG_DETAIL_GRID_LIST,
341
 				pager: STOCKMNG03010_GRID_PAGER,
400
 				pager: STOCKMNG03010_GRID_PAGER,
401
+				multiselect: true, 
342
 				onCellSelect: function(rowId, cellIdx, cellValue) {
402
 				onCellSelect: function(rowId, cellIdx, cellValue) {
343
 					STOCKMNG03010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STOCKMNG03010_GRID_LAST_ROW_ID, STOCKMNG03010_GRID_ID); 
403
 					STOCKMNG03010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STOCKMNG03010_GRID_LAST_ROW_ID, STOCKMNG03010_GRID_ID); 
344
 		   		},
404
 		   		},