marseyes 2 роки тому
батько
коміт
549bf289d5

+ 56 - 0
src/main/webapp/app/popup/biz/BIZPOP_PO_STOCK_ITEM_ADD.html

@@ -0,0 +1,56 @@
1
+<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD" class="modal itp_modal">
2
+	<div class="modal-dialog">
3
+		<div class="modal-content">		
4
+			<form id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE">
5
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_VIEW_CD" name="viewCd" value="C">
6
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_BRAND_CD" name="brandCd" value="">
7
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_STORE_NO" name="storeNo" value="">
8
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_EVENT_CD" name="eventNo" value="">
9
+			</form>
10
+			<form id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD">
11
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_CMPY_CD" name="scmpyCd" value="">
12
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_BRAND_CD" name="sbrandCd" value="">
13
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_STORE_NO" name="sstoreNo" value="">
14
+			
15
+				<div class="modal-header">
16
+					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
17
+					<h5 class="modal-title">품목추가</h5>
18
+				</div>
19
+				<div class="modal-body">
20
+					<div class="itp_form fix">
21
+						<div class="col-xs-12 itp_form_inline">
22
+							<div class="form-horizontal fix">
23
+								<div class="col-xs-3 itp_ip itp_pr">
24
+									<select id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_TYPE" class="form-control itp_input" name="sprdtType"></select>
25
+								</div>
26
+								<div class="col-xs-3 itp_ip itp_pr">
27
+									<select id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_CLASS_CD" class="form-control itp_input" name="sclassCd"></select>									
28
+								</div>
29
+								<div class="col-xs-3 itp_ip itp_pr">
30
+									<input type="text" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_NM" class="form-control itp_input" name="sprdtNm" placeholder="상품명" />								
31
+								</div>
32
+								<div class="col-xs-3 itp_ip itp_noMar">
33
+									<input type="text" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_BARCODE_NO" class="form-control itp_input" name="sbarcodeNo" placeholder="바코드" />
34
+								</div>
35
+							</div>
36
+						</div>
37
+					</div>
38
+					<div class="itp_form fix">
39
+						<div class="pull-right itp_cicon">
40
+							<button type="button" class="btn btn-success btn-sm" id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SEARCH" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
41
+							<button type="button" class="btn btn-primary btn-sm" id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SAVE"><i class="glyphicon glyphicon-ok"></i> 저장</button>
42
+						</div>
43
+					</div>
44
+					<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGrid_list" class="itp_tb_list" data-total-cnt="">
45
+						<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridView" class="itp_views fix"></div>
46
+						<table id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGrid"></table>
47
+						<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridPager"></div>
48
+						<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridEmpty" class="itp_no_data"></div>
49
+					</div>
50
+				</div>
51
+			</form>
52
+		</div>
53
+	</div>
54
+
55
+	<div id="ITP_POPUP_JS"></div>
56
+</div>

+ 188 - 0
src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_ITEM_ADD.js

@@ -0,0 +1,188 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+
6
+	});
7
+});
8
+
9
+let PO_STOCK_ITEM_ADD_POP_GRID_LIST = '/api/nk/product/grid-list';
10
+let NK_LIST_CLASS = '/api/nk/class/list-class'; // 카테고리리스트
11
+let NK_SAVE_EVENT_PRODUCT = '/api/nk/event/save-event-product'; // 이벤트 상품정보 저장
12
+
13
+function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
14
+	
15
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_BRAND_CD').val(schParam.brandCd);
16
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_STORE_NO').val(schParam.storeNo);
17
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE_EVENT_CD').val(schParam.eventNo);
18
+	
19
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_CMPY_CD').val(schParam.cmpyCd);
20
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_BRAND_CD').val(schParam.brandCd);
21
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_STORE_NO').val(schParam.storeNo);
22
+	
23
+	// 공통코드 표시
24
+	if(schParam.manageType == 'B') {
25
+		$('<option/>', {'value': 'B', 'text': '본사상품'}).appendTo($('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_TYPE'));	
26
+	} else if(schParam.manageType == 'S') {
27
+		$('<option/>', {'value': 'S', 'text': '매장상품'}).appendTo($('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_TYPE'));
28
+		$('<option/>', {'value': 'B', 'text': '본사상품'}).appendTo($('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_TYPE'));
29
+	}
30
+	
31
+	// 카테고리리스트
32
+	itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_class_list();
33
+	
34
+	let itp_BIZPOP_PO_STOCK_ITEM_ADD_param = {};
35
+	let itp_BIZPOP_PO_STOCK_ITEM_ADD_search = false;
36
+
37
+	const THIS_FORM_ID = '#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD';
38
+	const THIS_GIRD_ID = '#ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGrid';
39
+	const THIS_GIRD_PAGER = '#ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridPager';
40
+	
41
+	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').one('shown.bs.modal', function(e) {
42
+		itp_fn_jqgrid_resize(THIS_GIRD_ID, '#ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGrid_list', '');
43
+		itp_fn_fire_window_resize();
44
+	}).one('hidden.bs.modal', function(e) {
45
+		$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').remove();
46
+	}).modal('show');
47
+	
48
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_TYPE').on('change', function() {
49
+		// 카테고리리스트
50
+		itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_class_list(function() {
51
+			itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search(THIS_FORM_ID, THIS_GIRD_ID);	
52
+		});	
53
+	});
54
+	
55
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_CLASS_CD').on('change', function() {
56
+		itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search(THIS_FORM_ID, THIS_GIRD_ID);	
57
+	});
58
+
59
+	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SEARCH').on('click', function() {
60
+		itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search(THIS_FORM_ID, THIS_GIRD_ID);
61
+	});
62
+	
63
+	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SAVE').on('click', function() {		
64
+		const rowKey = $(THIS_GIRD_ID).getGridParam('selrow');
65
+	    if (!rowKey) {
66
+	    	return;
67
+	    }
68
+
69
+		var gridInsertData = [];
70
+	    var selectedIds = $(THIS_GIRD_ID).getGridParam('selarrrow');
71
+		
72
+	    for (var i=selectedIds.length-1; i>=0; i--) {
73
+			gridInsertData.push($(THIS_GIRD_ID).jqGrid('getRowData', selectedIds[i]));	
74
+		}
75
+		
76
+		let param = $('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_SAVE').serializeObject();
77
+		param.gridInsertData = gridInsertData;
78
+		
79
+		fn_ajax_call(NK_SAVE_EVENT_PRODUCT, JSON.stringify(param), function() {			
80
+			parentPopFn();
81
+			$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').modal('hide'); // 팝업닫기			
82
+		}, 'POST');
83
+	});
84
+
85
+	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridEmpty').on('click', function() {
86
+		itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_empty.back();
87
+		itp_BIZPOP_PO_STOCK_ITEM_ADD_param.gridSize = 10;
88
+		$(THIS_GIRD_ID).setGridParam({'postData': JSON.stringify(itp_BIZPOP_PO_STOCK_ITEM_ADD_param)}).trigger('reloadGrid');
89
+	});
90
+
91
+	var itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_empty = {
92
+		push: function() {
93
+			let param = $(THIS_FORM_ID).serializeObject();
94
+			itp_BIZPOP_PO_STOCK_ITEM_ADD_param = param;
95
+		},
96
+		back: function() {
97
+			$(THIS_FORM_ID + '_PRDT_TYPE').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sprdtType);
98
+			$(THIS_FORM_ID + '_CLASS_CD').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sclassCd);
99
+			$(THIS_FORM_ID + '_PRDT_NM').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sprdtNm);
100
+			$(THIS_FORM_ID + '_BARCODE_NO').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sbarcodeNo);
101
+		}
102
+	};
103
+
104
+	itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_empty.push();
105
+	let param = $('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD').serializeObject();
106
+	param.gridSize = 10;
107
+
108
+	$(THIS_GIRD_ID).jqGrid({
109
+		colModel: [
110
+			{
111
+				index: 'CLASS_NM', name: 'classNm',
112
+				label: '카테고리', 
113
+				width: '10', fixed: false, align: 'center',
114
+				sortable: false, hidden: false
115
+			},
116
+			{
117
+				index: 'PRDT_NO', name: 'prdtNo',
118
+				label: '상품번호', // 
119
+				width: '10', fixed: false, align: 'center',
120
+				sortable: false, hidden: false
121
+			},
122
+			{
123
+				index: 'PRDT_NM', name: 'prdtNm',
124
+				label: '상품명', // 
125
+				width: '15', fixed: false, align: 'center',
126
+				sortable: false, hidden: false
127
+			},
128
+			{
129
+				index: 'SALE_PRICE', name: 'salePrice',
130
+				label: '상품가격', //
131
+				width: '10', fixed: false, align: 'center',
132
+				sortable: false, hidden: false, 
133
+				formatter:'integer',formatoptions: { defaultValue: '', thousandsSeparator: ',' }
134
+			},
135
+			{
136
+				index: 'BARCODE_NO', name: 'barcodeNo',
137
+				label: '바코드', //
138
+				width: '10', fixed: false, align: 'center',
139
+				sortable: false, hidden: false
140
+			}
141
+		],
142
+		loadBeforeSend: function(jqXHR) {
143
+		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
144
+		},
145
+		postData: JSON.stringify(param),
146
+		url: DOMAIN + PO_STOCK_ITEM_ADD_POP_GRID_LIST,
147
+		pager: THIS_GIRD_PAGER,
148
+		multiselect: true,
149
+		loadComplete: function(data) {
150
+			itp_fn_grid_load_complete(data, THIS_GIRD_ID, true, undefined, 'BIZPOP_PO_STOCK_ITEM_ADD', itp_BIZPOP_PO_STOCK_ITEM_ADD_search, itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_empty, true, data.gridRecords, false);
151
+	    },
152
+	    loadError: function(jqXHR, textStatus, errorThrown) {
153
+	    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
154
+	    },
155
+	    onPaging: function(action) {
156
+			param = $('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD').serializeObject();
157
+			param.gridSize = 10;
158
+	    	itp_fn_grid_paging(THIS_GIRD_ID, action, param);
159
+	    }
160
+	}).navGrid(THIS_GIRD_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
161
+};
162
+
163
+var itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search = function(FORM_ID, GRID_ID) {	
164
+	itp_BIZPOP_PO_STOCK_ITEM_ADD_search = true;
165
+	let param = $(FORM_ID).serializeObject();
166
+	param.gridSize = 10;
167
+	param.gridPage = $.jgrid.defaults.page;
168
+	$(GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
169
+};
170
+
171
+var itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_class_list = function(fnCall) {
172
+	
173
+	const prdtType = $('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_PRDT_TYPE').val();
174
+	const brandCdVal = $('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_BRAND_CD').val();
175
+	let storeNoVal = $('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_STORE_NO').val();
176
+	// 본사상품	
177
+	if(prdtType == 'B') storeNoVal = '0000';
178
+	
179
+	const key = {brandCd: brandCdVal, storeNo: storeNoVal};
180
+	var param = $.param(key);
181
+	fn_ajax_call(NK_LIST_CLASS, param, function(result) {
182
+		
183
+		fn_make_select_class(result, 'ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_CLASS_CD', true, '카테고리');
184
+		
185
+		if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
186
+		 	
187
+	}, 'GET');
188
+};

+ 7 - 2
src/main/webapp/js/app/stockmng/ITP_STOCKMNG02010.js

@@ -285,9 +285,8 @@ let pageObj = {
285 285
 						case 'ITP_BTN_STOCKMNG02010_SRH'				: listObj.button.search();		break;	// 조회 버튼 클릭
286 286
 						case 'ITP_BTN_STOCKMNG02010_STOCK_CDD'			: listObj.button.fnStockCdd(); 	break;	// 재고실사 버튼
287 287
 						case 'ITP_BTN_STOCKMNG02010_CANCELLIST'			: stockCddObj.button.cancel(); 	break;	// 취소/목록 버튼
288
-						// case 'ITP_BTN_STOCKMNG02010_DELETE'				: 								break;	// 삭제 버튼
289 288
 						case 'ITP_BTN_STOCKMNG02010_SAVE'				: stockCddObj.button.save(); 		break;	// 저장 버튼
290
-						// case 'ITP_BTN_STOCKMNG02010_DETAIL_ADDROW'		: locInfoObj.button.addRow();	break;	// 상세:추가버튼
289
+						case 'ITP_BTN_STOCKMNG02010_DETAIL_ADDROW'		: stockCddObj.button.addRow();	break;	// 품목추가 버튼
291 290
 						// case 'ITP_BTN_STOCKMNG02010_DETAIL_DELROW'		: locInfoObj.button.delRow();	break;	// 상세:삭제버튼
292 291
 					}
293 292
 				});
@@ -599,6 +598,12 @@ let stockCddObj = {
599 598
 		cancel: function() {
600 599
 			listObj.grid.search();
601 600
 		},
601
+		addRow: function() {
602
+			var brandId = $('#ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID').val();
603
+			
604
+			var args = {'brandId': brandId};
605
+			fn_call_popup('biz', 'BIZPOP_PO_STOCK_ITEM_ADD', '#ITP_ASIDE', null, args, 'S');
606
+		}, 
602 607
 		save: function() {
603 608
 			var detailViewCd = $('#ITP_FORM_STOCKMNG02010_DETAIL_VIEW_CD').val();
604 609
 			const formId = '#ITP_FORM_STOCKMNG02010_DETAIL';