Bläddra i källkod

재고관리 개발중

marseyes 2 år sedan
förälder
incheckning
e5361654ab

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

@@ -386,7 +386,7 @@ let listObj = {
386 386
 			this.load();
387 387
 		},
388 388
 		load: function() {
389
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
389
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
390 390
 			$('#ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID').val(data.brandId);
391 391
 			
392 392
 			let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();

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

@@ -0,0 +1,57 @@
1
+<div id="ITP_BIZPOP_PO_STOCK_PROC" class="modal itp_modal">
2
+	<div class="modal-dialog">
3
+		<div class="modal-content">
4
+			<div class="modal-header">
5
+				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
6
+				<h5 class="modal-title">재고처리</h5>
7
+			</div>
8
+			<div class="modal-body">
9
+				<div class="itp_form itp_type1 fix">
10
+					<div class="col-xs-12">
11
+						<div class="form-horizontal">
12
+							<form id="ITP_FORM_PO_STOCK_PROC_POPUP">
13
+								<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>
37
+								</div>
38
+								<div class="form-group">
39
+									<label class="col-xs-3 itp_lb">분류 코드 </label>
40
+									<div class="col-xs-9 itp_ip ITEM_ST_CD">
41
+									</div>
42
+								</div>
43
+								
44
+							</form>
45
+						</div>
46
+					</div>
47
+				</div>
48
+			</div>
49
+			<div class="modal-footer">
50
+				<button type="button" id="ITP_BTN_PO_STOCK_PROC_CLOSE_POP" class="btn btn-danger btn-sm CLB">&nbsp;&nbsp;취소&nbsp;&nbsp;</button>
51
+				<button type="button" id="ITP_BTN_PO_STOCK_PROC_SAVE_POP" class="btn btn-primary btn-sm SAB" style="display: inline-block;">&nbsp;&nbsp;저장&nbsp;&nbsp;</button>
52
+			</div>
53
+		</div>
54
+	</div>
55
+
56
+	<div id="ITP_POPUP_JS"></div>
57
+</div>

+ 42 - 0
src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_PROC.js

@@ -0,0 +1,42 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+
6
+	});
7
+});
8
+
9
+let AFFL_POP_GRID_LIST 			= '/api/affl/pop-grid-list';
10
+
11
+var popPageObj = {
12
+	init: function () {
13
+		this.button();
14
+		this.brandInfo = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
15
+		// popItemClassLevel.list(1, true);
16
+	},
17
+	brandInfo: {},
18
+	parentPopFn: null,
19
+	args: null,
20
+	returnType: null,
21
+	button: function() {
22
+		$('#ITP_BTN_PO_STOCK_PROC_CLOSE_POP').on('click', function () {
23
+			$('#ITP_BIZPOP_PO_STOCK_PROC').modal('hide'); // 팝업닫기
24
+		});
25
+		$('#ITP_BTN_PO_STOCK_PROC_SAVE_POP').on('click', function () {
26
+			
27
+		});
28
+	}
29
+};
30
+
31
+function itp_fn_BIZPOP_PO_STOCK_PROC(parentPopFn, args, returnType) {
32
+	$('#ITP_BIZPOP_PO_STOCK_PROC').one('shown.bs.modal', function(e) {
33
+		itp_fn_fire_window_resize();
34
+	}).one('hidden.bs.modal', function(e) {
35
+		$('#ITP_BIZPOP_PO_STOCK_PROC').remove();
36
+	}).modal('show');
37
+
38
+	popPageObj.parentPopFn = parentPopFn;
39
+	popPageObj.args = args;
40
+	popPageObj.returnType = returnType;
41
+	popPageObj.init();
42
+}

+ 68 - 31
src/main/webapp/js/app/stockmng/ITP_STOCKMNG01010.js

@@ -5,10 +5,6 @@
5 5
  * const gridColModel = {}	: 화면 Grid Object			*
6 6
  * let pageObj = {}			: 화면공통 Object			*
7 7
  * let listObj = {}			: 목록화면 Object			*
8
- * let viewObj = {}			: 상세화면 Object			*
9
- * let modifyObj = {}		: 수정화면 Object			*
10
- * let createObj = {}		: 신규화면 Object			*
11
- * let locInfoObj = {}		: 로케이션정보 Object				*
12 8
  *******************************************************/
13 9
 
14 10
 /*화면 변수*/
@@ -45,13 +41,13 @@ const gridColModel = {
45 41
 		{
46 42
 			index: 'BRAND_NM', name: 'brandNm',
47 43
 			label: ITP_MSG_LOCALE.label.brandNm, //브랜드
48
-			width: '13', fixed: false, align: 'center',
44
+			width: '10', fixed: false, align: 'center',
49 45
 			sortable: false, hidden: false
50 46
 		},
51 47
 		{
52 48
 			index: 'STORE_NM', name: 'storeNm',
53 49
 			label: "매장명", 
54
-			width: '13', fixed: false, align: 'center',
50
+			width: '10', fixed: false, align: 'center',
55 51
 			sortable: false, hidden: false
56 52
 		},
57 53
 		{
@@ -67,23 +63,53 @@ const gridColModel = {
67 63
 			sortable: false, hidden: false
68 64
 		},
69 65
 		{
70
-			index: 'WHS_ST_NM', name: 'whsStNm',
71
-			label: ITP_MSG_LOCALE.label.status, //상태
72
-			width: '6', fixed: false, align: 'center',
66
+			index: 'LOCATION_NM', name: 'locationNm',
67
+			label: "Location명", 
68
+			width: '10', fixed: false, align: 'center',
73 69
 			sortable: false, hidden: false
74 70
 		},
75 71
 		{
76
-			index: 'MGR_NM', name: 'mgrNm',
77
-			label: "담당자명", 
72
+			index: 'ITEM_ID', name: 'itemId',
73
+			label: "품목번호", 
78 74
 			width: '8', fixed: false, align: 'center',
79 75
 			sortable: false, hidden: false
80 76
 		},
81 77
 		{
82
-			index: 'MGR_TEL_NO', name: 'mgrTelNo',
83
-			label: "연락처", 
78
+			index: 'ITEM_NM', name: 'itemNm',
79
+			label: "품목명", 
80
+			width: '10', fixed: false, align: 'center',
81
+			sortable: false, hidden: false
82
+		},
83
+		{
84
+			index: 'UNIT', name: 'unit',
85
+			label: "단위", 
84 86
 			width: '8', fixed: false, align: 'center',
85 87
 			sortable: false, hidden: false
86
-		}
88
+		},
89
+		{
90
+			index: 'STCK_QTY', name: 'stckQty',
91
+			label: "현재고수량", 
92
+			width: '8', fixed: false, align: 'center',
93
+			sortable: false, hidden: false
94
+		},
95
+		{
96
+			index: 'PRP_STCK_QTY', name: 'prpStckQty',
97
+			label: "적정재고수량", 
98
+			width: '8', fixed: false, align: 'center',
99
+			sortable: false, hidden: false
100
+		},
101
+		{
102
+			index: 'SFT_STCK_RT', name: 'sftStckRt',
103
+			label: "안전재고비율(%)", 
104
+			width: '10', fixed: false, align: 'center',
105
+			sortable: false, hidden: false
106
+		},
107
+		{
108
+			index: 'CUR_STCK_RT', name: 'curStckRt',
109
+			label: "현재고비율(%)", 
110
+			width: '10', fixed: false, align: 'center',
111
+			sortable: false, hidden: false
112
+		}		
87 113
 	]
88 114
 };
89 115
 
@@ -111,7 +137,7 @@ let pageObj = {
111 137
 			fn_proc_btn_auth('STOCKMNG01010');
112 138
 			
113 139
 			// 브랜드ID 지정
114
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
140
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
115 141
 			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(data.brandId);
116 142
 			
117 143
 			pageObj.fnWhsList(function() {
@@ -136,6 +162,7 @@ let pageObj = {
136 162
 	event: {
137 163
 		init: function () {
138 164
 			this.button();
165
+			this.change();
139 166
 		},
140 167
 		button: function () {
141 168
 			// 버튼 클릭 이벤트
@@ -144,8 +171,8 @@ let pageObj = {
144 171
 				$(this).on('click', function() {
145 172
 					switch (id) {
146 173
 						case 'ITP_BTN_STOCKMNG01010_SRH'		: listObj.button.search();		break;	// 조회 버튼
147
-						case 'ITP_BTN_STOCKMNG01010_ADDROW'		: locInfoObj.button.addRow();	break;	// 재고처리 버튼
148
-						case 'ITP_BTN_STOCKMNG01010_DELROW'		: locInfoObj.button.delRow();	break;	// 재고이력 버튼
174
+						case 'ITP_BTN_STOCKMNG01010_ADDROW'		: listObj.button.clickStockProc();	break;	// 재고처리 버튼
175
+						case 'ITP_BTN_STOCKMNG01010_DELROW'		: listObj.button.clickStockHist();	break;	// 재고이력 버튼
149 176
 					}
150 177
 				});
151 178
 			});
@@ -153,7 +180,18 @@ let pageObj = {
153 180
 			$('body').on('click', function(e) {
154 181
 				
155 182
 			});
156
-
183
+		}, 
184
+		change: function () {
185
+			// 창고 변경
186
+			$('#ITP_FORM_STOCKMNG01010_SEARCH_WHS_ID').on('change', function() {
187
+				pageObj.fnLocationList(function() {
188
+					listObj.button.search(); // 조회	
189
+				}); // 로케이션 리스트
190
+			});
191
+			$('#ITP_FORM_STOCKMNG01010_SEARCH_LOCATION').on('change', function() {
192
+				listObj.button.search(); // 조회
193
+			});
194
+			
157 195
 		}
158 196
 	},
159 197
 	switchScreen: function(mode) {
@@ -203,12 +241,15 @@ let listObj = {
203 241
 			param.gridSize = $.jgrid.defaults.rowNum;
204 242
 			param.gridPage = $.jgrid.defaults.page;
205 243
 			$(STOCKMNG01010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
206
-		},
207
-		create: function() {
208
-			pageObj.switchScreen('ADD');			
209
-			itp_fn_form_clear_validate(null, '#ITP_FORM_STOCKMNG01010_DETAIL');						
210
-			// 로케이션 리스트 조회
211
-			createObj.init();
244
+		}, 
245
+		clickStockProc: function() {
246
+			// var agrs = {'afflShopId': $('#ITP_FORM_OPER02010_DETAIL_SEARCH_AFFL_SHOP_ID').val()};
247
+			fn_call_popup('biz', 'BIZPOP_PO_STOCK_PROC', '#ITP_ASIDE', function(rowDataPop) {
248
+				
249
+			}, null, 'S');
250
+		}, 
251
+		clickStockHist: function() {
252
+			
212 253
 		}
213 254
 	},
214 255
 	empty: {
@@ -250,7 +291,7 @@ let listObj = {
250 291
 			this.load();
251 292
 		},
252 293
 		load: function() {
253
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
294
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
254 295
 			$('#ITP_FORM_STOCKMNG01010_SEARCH_BRAND_ID').val(data.brandId);
255 296
 			
256 297
 			let param = $('#ITP_FORM_STOCKMNG01010_SEARCH').serializeObject();
@@ -262,16 +303,12 @@ let listObj = {
262 303
 				param: JSON.stringify(param),
263 304
 				url: DOMAIN + STOCK_MNG_DETAIL_GRID_LIST,
264 305
 				pager: STOCKMNG01010_GRID_PAGER,
306
+				multiselect: true,
265 307
 				onCellSelect: function(rowId, cellIdx, cellValue) {
266 308
 					var cm = $(this).jqGrid('getGridParam', 'colModel');
267 309
 					var colNm = cm[cellIdx].name;
268 310
 					if (colNm == 'whsNm') {
269
-						const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
270
-						const whsIdVal = $(this).jqGrid('getCell', rowId, 'whsId');
271 311
 						
272
-						const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
273
-						var param = $.param(key);
274
-						viewObj.init(param);
275 312
 					}
276 313
 				},
277 314
 				loadComplete: function(data) {
@@ -279,7 +316,7 @@ let listObj = {
279 316
 					itp_fn_grid_load_complete(data, STOCKMNG01010_GRID_ID, true, 'number', 'STOCKMNG01010', listObj.itp_STOCKMNG01010_search, listObj.empty, true, data.gridRecords, true);
280 317
 					var ids = $(STOCKMNG01010_GRID_ID).getDataIDs();
281 318
 					$.each(ids, function(idx, rowId) {
282
-						$(STOCKMNG01010_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', ITP_GRID_COL_STYLE.link);
319
+						// $(STOCKMNG01010_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', ITP_GRID_COL_STYLE.link);
283 320
 					});
284 321
 				},
285 322
 				onPaging: function(action) {

+ 2 - 2
src/main/webapp/js/app/stockmng/ITP_STOCKMNG04010.js

@@ -274,7 +274,7 @@ let pageObj = {
274 274
 			$('#ITP_AJAX_STOCKMNG04010_DETAIL_CONTAINER').show();
275 275
 			$('#ITP_AJAX_STOCKMNG04010_VIEW_CONTAINER').hide();
276 276
 						
277
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
277
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
278 278
 			$('#ITP_FORM_STOCKMNG04010_DETAIL_VIEW_CD').val('C');
279 279
 			$('#ITP_FORM_STOCKMNG04010_DETAIL_BRAND_ID').val(data.brandId);
280 280
 			$('#ITP_FORM_STOCKMNG04010_DETAIL .fnBrandNm').text(data.brandNm);
@@ -385,7 +385,7 @@ let listObj = {
385 385
 			this.load();
386 386
 		},
387 387
 		load: function() {
388
-			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_cd'));
388
+			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
389 389
 			$('#ITP_FORM_STOCKMNG04010_SEARCH_BRAND_ID').val(data.brandId);
390 390
 			
391 391
 			let param = $('#ITP_FORM_STOCKMNG04010_SEARCH').serializeObject();