marseyes před 2 roky
rodič
revize
277fc0024f

+ 8 - 14
src/main/webapp/app/popup/biz/BIZPOP_PO_STOCK_ITEM_ADD.html

@@ -1,16 +1,10 @@
1 1
 <div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD" class="modal itp_modal">
2 2
 	<div class="modal-dialog">
3 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 4
 			<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="">
5
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_BRAND_ID" name="sbrandId" value="">
6
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_WHS_ID" name="swhsId" value="">
7
+			<input type="hidden" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_LOCATION" name="slocation" value="">
14 8
 			
15 9
 				<div class="modal-header">
16 10
 					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
@@ -21,16 +15,16 @@
21 15
 						<div class="col-xs-12 itp_form_inline">
22 16
 							<div class="form-horizontal fix">
23 17
 								<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>
18
+									<select id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_ITEM_ST_CD" data-select-code="ST_CD" class="form-control itp_input" name="sitemStCd"></select>
25 19
 								</div>
26 20
 								<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>									
21
+									<select id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_ITEM_GUBUN" data-select-code="ITEM_GUBUN" class="form-control itp_input" name="sitemGubun"></select>																		
28 22
 								</div>
29 23
 								<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="상품명" />								
24
+									<select id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_ITEM_TYPE" data-select-code="ITEM_TYPE" class="form-control itp_input" name="sitemType"></select>																										
31 25
 								</div>
32 26
 								<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="바코드" />
27
+									<input type="text" id="ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_ITEM_NM" class="form-control itp_input" name="sitemNm" placeholder="품목번호 or 품목명" />
34 28
 								</div>
35 29
 							</div>
36 30
 						</div>
@@ -38,7 +32,7 @@
38 32
 					<div class="itp_form fix">
39 33
 						<div class="pull-right itp_cicon">
40 34
 							<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>
35
+							<button type="button" class="btn btn-primary btn-sm" id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SELECT"><i class="glyphicon glyphicon-ok"></i> 선택</button>
42 36
 						</div>
43 37
 					</div>
44 38
 					<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGrid_list" class="itp_tb_list" data-total-cnt="">

+ 65 - 42
src/main/webapp/app/stockmng/STOCKMNG02010.html

@@ -17,6 +17,7 @@
17 17
 							<div class="col-xs-12">
18 18
 								<form id="ITP_FORM_STOCKMNG02010_SEARCH" class="form-horizontal">
19 19
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID" name="sbrandId" value="">
20
+									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_BRAND_NM" value="">
20 21
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID" name="sstoreId" value="">
21 22
 								
22 23
 									<div class="form-group">
@@ -59,6 +60,7 @@
59 60
 						<div class="itp_srh_border fix">
60 61
 							<div class="col-xs-12">
61 62
 								<form id="ITP_FORM_STOCKMNG02010_DETAIL" class="form-horizontal">
63
+									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_VIEW_CD" name="viewCd" value="C">
62 64
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID" name="brandId" value="">
63 65
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_STORE_ID" name="storeId" value="">
64 66
 								
@@ -78,6 +80,9 @@
78 80
 											<div class="col-xs-3 itp_ip itp_noMar">
79 81
 												<select id="ITP_FORM_STOCKMNG02010_DETAIL_LOCATION" class="form-control itp_input" name="location" disabled="disabled"></select>										
80 82
 											</div>
83
+											<div class="col-xs-2 itp_ip itp_noMar">
84
+												<select id="ITP_FORM_STOCKMNG02010_DETAIL_CDD_DVSN" data-select-code="CDD_DVSN" class="form-control itp_input" name="cddDvsn"></select>										
85
+											</div>
81 86
 											<div class="col-xs-2 itp_ip">
82 87
 												<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>
83 88
 											</div>
@@ -102,48 +107,66 @@
102 107
 					</div>
103 108
 				</div>
104 109
 				<div id="ITP_AJAX_STOCKMNG02010_VIEW_CONTAINER">
105
-					<div class="itp_lg_form itp_type1 fix">
106
-						<div class="itp_srh_border fix">
107
-							<div class="col-xs-12">
108
-								<form id="ITP_FORM_STOCKMNG02010_VIEW_SEARCH" class="form-horizontal">
109
-									<div class="form-group">
110
-										<div class="col-xs-10">
111
-											<div class="col-xs-2 itp_ip itp_noMar">
112
-												<select id="ITP_FORM_STOCKMNG02010_VIEW_SERVICE_CDD_DT" class="form-control itp_input" name="serviceCddDt">
113
-													<option value="">실사기준일</option>											
114
-												</select>
115
-											</div>
116
-											<div class="col-xs-2 itp_ip itp_noMar">
117
-												<select id="ITP_FORM_STOCKMNG02010_VIEW_SERVICE_WHS_NM" class="form-control itp_input" name="servicewhsNm">
118
-													<option value="">창고</option>											
119
-												</select>	
120
-											</div>
121
-											<div class="col-xs-3 itp_ip itp_noMar">
122
-												<select id="ITP_FORM_STOCKMNG02010_VIEW_SEARCH_STCK_DVSN" class="form-control itp_input" name="sStckDvsn">
123
-												<option value="">판매용/B품/폐기품</option>											
124
-												</select>										
125
-											</div>
126
-											<div class="col-xs-2 itp_ip">
127
-												<button type="button" id="ITP_BTN_STOCKMNG02010_VIEW_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon "></i>&nbsp;&nbsp;엑셀업로드&nbsp;&nbsp;</button>
128
-											</div>
129
-										</div>
130
-									</div>
131
-								</form>
132
-							</div>
133
-						</div>
134
-					</div>
135
-					<div class="fix" style="padding-right:10px;">
136
-						<div class="pull-right itp_cicon">
137
-							<button type="button" id="ITP_BTN_STOCKMNG02010_VIEW_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon"></i>&nbsp;&nbsp;품목추가&nbsp;&nbsp;</button>
138
-						</div>
139
-					</div>
140
-					<div class="itp_table fix">
141
-						<div id="ITP_STOCKMNG02010_VIEW_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
142
-							<div id="ITP_STOCKMNG02010_VIEW_jqGridView" class="itp_views fix"></div>
143
-							<table id="ITP_STOCKMNG02010_VIEW_jqGrid"></table>
144
-							<div id="ITP_STOCKMNG02010_VIEW_jqGridPager"></div>
145
-							<div id="ITP_STOCKMNG02010_VIEW_jqGridEmpty" class="itp_no_data"></div>
146
-						</div>
110
+					<div class="itp_form itp_type1 fix">
111
+				        <div class="col-xs-12">
112
+				            <form id="ITP_FORM_STOCKMNG02010_VIEW" class="form-horizontal">
113
+				                <input type="hidden" id="ITP_FORM_STOCKMNG02010_VIEW_VIEW_CD" name="viewCd" value="R">
114
+				                <input type="hidden" id="ITP_FORM_STOCKMNG02010_VIEW_CDD_ID" name="cddId" value="">
115
+				    
116
+				                <section class="itp_form_sec">
117
+				                    <h4 class="itp_form_tit">재고실사 정보</h4>
118
+				                    <div class="itp_form_in">
119
+				                        <div class="form-group">
120
+				                            <label class="col-xs-2 itp_lb">브랜드명</label>
121
+				                                <div class="col-xs-4 itp_ip">
122
+				                                    <div class="col-xs-9 itp_in fnBrandNm"></div>												
123
+				                                </div>
124
+				                            <label class="col-xs-2 itp_lb">실사담당자</label>
125
+				                            <div class="col-xs-4 itp_ip">
126
+				                                <div class="col-xs-8 itp_in fnCddMgrNm"></div>
127
+				                            </div>
128
+				                        </div>
129
+				                        <div class="form-group">
130
+				                            <label class="col-xs-2 itp_lb">창고코드 </label>
131
+				                            <div class="col-xs-4 itp_ip">
132
+				                                <div class="col-xs-8 itp_in fnWhsId"></div>
133
+				                            </div>
134
+				                            <label class="col-xs-2 itp_lb">창고명</label>
135
+				                            <div class="col-xs-4 itp_ip">
136
+				                                <div class="col-xs-8 itp_in fnWhsNm"></div>
137
+				                            </div>
138
+				                        </div>
139
+				                        <div class="form-group">
140
+				                            <label class="col-xs-2 itp_lb">Location</label>
141
+				                            <div class="col-xs-4 itp_ip">
142
+				                                <div class="col-xs-8 itp_in fnLocation"></div>
143
+				                            </div>
144
+				                            <label class="col-xs-2 itp_lb">매장명</label>
145
+				                            <div class="col-xs-4 itp_ip">
146
+				                                <div class="col-xs-8 itp_in fnStoreNm"></div>
147
+				                            </div>
148
+				                        </div>				                        
149
+				                    </div>
150
+			                        <div class="itp_form_in">	
151
+			                            <div class="form-group">
152
+			                                <label class="col-xs-2 itp_lb">실사일시</label>
153
+			                                <div class="col-xs-10 itp_ip fnCddDtm"></div>
154
+			                            </div>	
155
+			                        </div>	
156
+				                </section>								
157
+				            </form>
158
+				        </div>
159
+				    </div>
160
+				    <div class="itp_table fix">
161
+					    <div class="itp_table_head fix" style="background:#f5f5f5;">
162
+					        <h4 class="itp_table_tit">실사 품목 정보</h4>
163
+					    </div>
164
+					    <div id="ITP_STOCKMNG02010_VIEW_jqGrid_list" class="itp_tb_list">
165
+					        <div id="ITP_STOCKMNG02010_VIEW_jqGridView" class="itp_views fix"></div>
166
+					        <table id="ITP_STOCKMNG02010_VIEW_jqGrid"></table>
167
+					        <div id="ITP_STOCKMNG02010_VIEW_jqGridPager"></div>
168
+					        <div id="ITP_STOCKMNG02010_VIEW_jqGridEmpty" class="itp_no_data"></div>
169
+					    </div>
147 170
 					</div>
148 171
 				</div>
149 172
 			</div>

+ 43 - 90
src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_STOCK_ITEM_ADD.js

@@ -6,30 +6,20 @@ require(['config'], function() {
6 6
 	});
7 7
 });
8 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'; // 이벤트 상품정보 저장
9
+let STOCK_MNG_DETAIL_GRID_LIST = '/api/stock/mng/detail-grid-list';
12 10
 
13 11
 function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
14 12
 	
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);
13
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_BRAND_ID').val(schParam.brandId);
14
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_WHS_ID').val(schParam.whsId);
15
+	$('#ITP_FORM_BIZPOP_PO_STOCK_ITEM_ADD_LOCATION').val(schParam.location);
22 16
 	
23 17
 	// 공통코드 표시
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();
18
+    $('select').each(function() {
19
+        if($(this).data('select-code')) {
20
+            fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
21
+        }
22
+    });
33 23
 	
34 24
 	let itp_BIZPOP_PO_STOCK_ITEM_ADD_param = {};
35 25
 	let itp_BIZPOP_PO_STOCK_ITEM_ADD_search = false;
@@ -44,42 +34,25 @@ function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
44 34
 	}).one('hidden.bs.modal', function(e) {
45 35
 		$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').remove();
46 36
 	}).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 37
 
59 38
 	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SEARCH').on('click', function() {
60 39
 		itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search(THIS_FORM_ID, THIS_GIRD_ID);
61 40
 	});
62 41
 	
63
-	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SAVE').on('click', function() {		
42
+	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SELECT').on('click', function() {		
64 43
 		const rowKey = $(THIS_GIRD_ID).getGridParam('selrow');
65 44
 	    if (!rowKey) {
66 45
 	    	return;
67 46
 	    }
68 47
 
69
-		var gridInsertData = [];
48
+		var list = [];
70 49
 	    var selectedIds = $(THIS_GIRD_ID).getGridParam('selarrrow');
71 50
 		
72 51
 	    for (var i=selectedIds.length-1; i>=0; i--) {
73
-			gridInsertData.push($(THIS_GIRD_ID).jqGrid('getRowData', selectedIds[i]));	
52
+			list.push($(THIS_GIRD_ID).jqGrid('getRowData', selectedIds[i]));	
74 53
 		}
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');
54
+		parentPopFn(list);
55
+		$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').modal('hide'); // 팝업닫기		
83 56
 	});
84 57
 
85 58
 	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridEmpty').on('click', function() {
@@ -94,10 +67,10 @@ function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
94 67
 			itp_BIZPOP_PO_STOCK_ITEM_ADD_param = param;
95 68
 		},
96 69
 		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);
70
+			$(THIS_FORM_ID + '_ITEM_ST_CD').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sitemStCd);
71
+			$(THIS_FORM_ID + '_ITEM_GUBUN').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sitemGubun);
72
+			$(THIS_FORM_ID + '_ITEM_TYPE').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sitemType);
73
+			$(THIS_FORM_ID + '_ITEM_NM').val(itp_BIZPOP_PO_STOCK_ITEM_ADD_param.sitemNm);
101 74
 		}
102 75
 	};
103 76
 
@@ -108,34 +81,33 @@ function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
108 81
 	$(THIS_GIRD_ID).jqGrid({
109 82
 		colModel: [
110 83
 			{
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',
84
+	            index: 'BRAND_ID', name: 'brandId',
85
+	            label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
86
+	            width: '10', fixed: false, align: 'center',
87
+	            sortable: false, hidden: true
88
+	        },
89
+	        {
90
+	            index: 'ITEM_ID', name: 'itemId',
91
+	            label: ITP_MSG_LOCALE.label.itemId, //품목번호
92
+	            width: '10', fixed: false, align: 'center',
93
+	            sortable: false, hidden: false
94
+	        },
95
+	        {
96
+	            index: 'ITEM_NM', name: 'itemNm',
97
+	            label: ITP_MSG_LOCALE.label.itemNm, //품목명
98
+	            width: '13', fixed: false, align: 'center',
99
+	            sortable: false, hidden: false
100
+	        },
101
+	        {
102
+				index: 'UNIT', name: 'unit',
103
+				label: "단위", 
104
+				width: '7', fixed: false, align: 'center',
120 105
 				sortable: false, hidden: false
121 106
 			},
122 107
 			{
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',
108
+				index: 'STCK_QTY', name: 'stckQty',
109
+				label: "현재고수량", 
110
+				width: '8', fixed: false, align: 'center',
139 111
 				sortable: false, hidden: false
140 112
 			}
141 113
 		],
@@ -143,7 +115,7 @@ function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
143 115
 		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
144 116
 		},
145 117
 		postData: JSON.stringify(param),
146
-		url: DOMAIN + PO_STOCK_ITEM_ADD_POP_GRID_LIST,
118
+		url: DOMAIN + STOCK_MNG_DETAIL_GRID_LIST,
147 119
 		pager: THIS_GIRD_PAGER,
148 120
 		multiselect: true,
149 121
 		loadComplete: function(data) {
@@ -167,22 +139,3 @@ var itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search = function(FORM_ID, GRID_ID) {
167 139
 	param.gridPage = $.jgrid.defaults.page;
168 140
 	$(GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
169 141
 };
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
-};

+ 143 - 60
src/main/webapp/js/app/stockmng/ITP_STOCKMNG02010.js

@@ -34,18 +34,23 @@ let STOCKMNG02010_DETAIL_GRID_LAST_ROW_ID;
34 34
 // let ITP_COMMON_CD_LOC_ST_CD = fn_make_common_cd_list(CODE_LIST, 'LOC_ST_CD', true);
35 35
 
36 36
 /*API URL*/
37
-let WHS_MNG_INFO_WHS = '/api/whs/mng/info-whs';
38
-let WHS_MNG_ADD_WHS = '/api/whs/mng/add-whs';
39
-let WHS_MNG_MIDIFY_WHS = '/api/whs/mng/modify-whs';
40
-let WHS_MNG_REMOVE_WHS = '/api/whs/mng/remove-whs'; 
37
+let STOCK_CDD_INFO_CDD = '/api/stock/cdd/info-cdd';
38
+let STOCK_CDD_SAVE_STOCK_CDD = '/api/stock/cdd/save-stock-cdd'; // 재고실사 저장
41 39
 
42 40
 let STOCK_CDD_DETAIL_GRID_LIST = '/api/stock/cdd/detail-grid-list';
41
+let STOCK_CDD_CDD_DETAIL_GRID_LIST = '/api/stock/cdd/cdd-detail-grid-list';
43 42
 let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
44 43
 let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
45 44
 
46 45
 /*화면 Grid ColModel*/
47 46
 const gridColModel = {
48 47
 	list: [
48
+		{
49
+			index: 'CDD_ID', name: 'cddId',
50
+			label: "실사번호", 
51
+			width: '6', fixed: false, align: 'center',
52
+			sortable: false, hidden: false
53
+		},
49 54
 		{
50 55
 			index: 'BRAND_ID', name: 'brandId',
51 56
 			label: "브랜드ID", 
@@ -119,32 +124,69 @@ const gridColModel = {
119 124
 			label: ITP_MSG_LOCALE.label.viewCd,
120 125
 			width: '10', fixed: false, align: 'center',
121 126
 			sortable: false, hidden: true
122
-		},		
127
+		},
128
+		{
129
+			index: 'BRAND_NM', name: 'brandNm',
130
+			label: "브랜드",
131
+			width: '10', fixed: false, align: 'center',
132
+			sortable: false, editable: false, edittype: 'text',
133
+			editrules: {required: false}
134
+		},
135
+		{
136
+			index: 'WHS_ID', name: 'whsId',
137
+			label: "창고번호",
138
+			width: '10', fixed: false, align: 'center',
139
+			sortable: false, editable: false, edittype: 'text',
140
+			editrules: {required: false}
141
+		},
123 142
 		{
124
-			index: 'LOCATION', name: 'location',
125
-			label: "로케이션",
143
+			index: 'WHS_NM', name: 'whsNm',
144
+			label: "창고명",
126 145
 			width: '10', fixed: false, align: 'center',
127 146
 			sortable: false, editable: false, edittype: 'text',
128
-			editrules: {required: true}
147
+			editrules: {required: false}
129 148
 		},
130 149
 		{
131 150
 			index: 'LOCATION_NM', name: 'locationNm',
132
-			label: "로케이션명",
151
+			label: "Location",
152
+			width: '10', fixed: false, align: 'center',
153
+			sortable: false, editable: false, edittype: 'text',
154
+			editrules: {required: false}
155
+		},
156
+		{
157
+			index: 'ITEM_ID', name: 'itemId',
158
+			label: "품목번호",
133 159
 			width: '12', fixed: false, align: 'center',
134
-			sortable: true, editable: false, edittype: 'text',
135
-			editrules: {required: true}
160
+			sortable: false, editable: false, edittype: 'text',
161
+			editrules: {required: false}
136 162
 		},
137 163
 		{
138
-			index: 'STCK_DVSN_NM', name: 'stckDvsnNm',
139
-			label: "관리등록",
164
+			index: 'ITEM_NM', name: 'itemNm',
165
+			label: "품목명",
140 166
 			width: '10', fixed: false, align: 'center',
141
-			sortable: false, editable: false, edittype: 'text'
167
+			sortable: false, editable: false, edittype: 'text',
168
+			editrules: {required: false}
169
+		},
170
+		{
171
+			index: 'UNIT', name: 'unit',
172
+			label: "단위",
173
+			width: '8', fixed: false, align: 'center',
174
+			sortable: false, editable: false, edittype: 'text',
175
+			editrules: {required: false}
176
+		},
177
+		{
178
+			index: 'COM_EXST_QTY', name: 'comExstQty',
179
+			label: "현재고수량",
180
+			width: '8', fixed: false, align: 'center',
181
+			sortable: false, editable: false, edittype: 'text',
182
+			editrules: {required: false}
142 183
 		},
143 184
 		{
144
-			index: 'LOC_ST_NM', name: 'locStNm',
145
-			label: "상태",
185
+			index: 'CDD_QTY', name: 'cddQty',
186
+			label: "실사수량",
146 187
 			width: '10', fixed: false, align: 'center',
147
-			sortable: false, editable: false, edittype: 'text'
188
+			sortable: false, editable: false, edittype: 'text',
189
+			editrules: {required: false}
148 190
 		}
149 191
 	],
150 192
 	detail: [
@@ -215,7 +257,7 @@ const gridColModel = {
215 257
 			label: "실사수량",
216 258
 			width: '10', fixed: false, align: 'center',
217 259
 			sortable: false, editable: true, edittype: 'text',
218
-			editrules: {required: true}
260
+			editrules: {required: false}
219 261
 		}
220 262
 	]
221 263
 };
@@ -246,13 +288,18 @@ let pageObj = {
246 288
 			// 브랜드ID 지정
247 289
 			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
248 290
 			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val(data.brandId);
291
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_NM').val(data.brandNm); 
249 292
 			
250 293
 			pageObj.fnWhsList(function() {
251 294
 				pageObj.fnLocationList();
252 295
 			}); // 창고리스트
253 296
 			
254 297
 			// 공통코드 표시
255
-			// fn_make_select(CODE_LIST, 'WHS_DVSN', 'ITP_FORM_STOCKMNG02010_WHS_DVSN');			
298
+			$('select').each(function() {
299
+		        if($(this).data('select-code')) {
300
+		            fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
301
+		        }
302
+		    });			
256 303
 
257 304
 			// 조회일자 지정
258 305
 			var now = new Date();
@@ -463,11 +510,10 @@ let listObj = {
463 510
 				onCellSelect: function(rowId, cellIdx, cellValue) {
464 511
 					var cm = $(this).jqGrid('getGridParam', 'colModel');
465 512
 					var colNm = cm[cellIdx].name;
466
-					if (colNm == 'whsNm') {
467
-						const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
468
-						const whsIdVal = $(this).jqGrid('getCell', rowId, 'whsId');
513
+					if (colNm == 'cddDt') {
514
+						const cddIdVal = $(this).jqGrid('getCell', rowId, 'cddId');
469 515
 						
470
-						const key = {brandId: brandIdVal, whsId: whsIdVal, viewCd: 'R'};
516
+						const key = {cddId: cddIdVal, viewCd: 'R'};
471 517
 						var param = $.param(key);
472 518
 						viewObj.init(param);
473 519
 					}
@@ -477,7 +523,7 @@ let listObj = {
477 523
 					itp_fn_grid_load_complete(data, STOCKMNG02010_GRID_ID, true, 'number', 'STOCKMNG02010', listObj.itp_STOCKMNG02010_search, listObj.empty, true, data.gridRecords, true);
478 524
 					var ids = $(STOCKMNG02010_GRID_ID).getDataIDs();
479 525
 					$.each(ids, function(idx, rowId) {
480
-						$(STOCKMNG02010_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', ITP_GRID_COL_STYLE.link);
526
+						$(STOCKMNG02010_GRID_ID).jqGrid('setCell', rowId, 'cddDt', '', ITP_GRID_COL_STYLE.link);
481 527
 					});
482 528
 				},
483 529
 				onPaging: function(action) {
@@ -504,26 +550,20 @@ let viewObj = {
504 550
 		this.load(param);
505 551
 	},
506 552
 	load: function(param) {
507
-		fn_ajax_call(WHS_MNG_INFO_WHS, param, this.callback, 'GET');
553
+		fn_ajax_call(STOCK_CDD_INFO_CDD, param, this.callback, 'GET');
508 554
 	},
509 555
 	callback: function (result) {
510 556
 		// console.log(result);
511 557
 		pageObj.switchScreen('VIEW');
512
-		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_BRAND_ID').val(result.brandId);
513
-		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_STORE_ID').val(result.storeId);
514
-		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_WHS_ID').val(result.whsId);
558
+		$('#ITP_FORM_STOCKMNG02010_VIEW #ITP_FORM_STOCKMNG02010_VIEW_CDD_ID').val(result.cddId);
515 559
 		
516 560
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnBrandNm').text(result.brandNm);
517
-		$('#ITP_FORM_STOCKMNG02010_VIEW .fnStCd').text(result.whsStNm);
561
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnCddMgrNm').text(result.cddMgrNm);
518 562
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsId').text(result.whsId);
519 563
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsNm').text(result.whsNm);
520
-		$('#ITP_FORM_STOCKMNG02010_VIEW .fnTelNo').text(result.mgrTelNo);
521
-		$('#ITP_FORM_STOCKMNG02010_VIEW .fnMgrNm').text(result.mgrNm);		
522
-		$('#ITP_FORM_STOCKMNG02010_VIEW .fnSpplyNm').text(result.storeNm ? result.storeNm : '');		
523
-		$('#ITP_FORM_STOCKMNG02010_VIEW .fnRegDtm').text(result.sysRegDttm);
524
-		if(result.zipNo) {
525
-			$('#ITP_FORM_STOCKMNG02010_VIEW .fnAddress').text('('+result.zipNo+') ' + result.addr1 + ' ' + result.addr2);	
526
-		}		
564
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnLocation').text(result.locationNm);
565
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnStoreNm').text(result.storeNm == null ? '' : result.storeNm);
566
+		$('#ITP_FORM_STOCKMNG02010_VIEW .fnCddDtm').text(result.cddDt + ' ' + (result.cddTm == null ? '' : result.cddTm));
527 567
 
528 568
 		// 권한정보 리스트 조회
529 569
 		viewObj.grid.init();
@@ -536,13 +576,13 @@ let viewObj = {
536 576
 		load : function() {
537 577
 			let param = $('#ITP_FORM_STOCKMNG02010_VIEW').serializeObject();
538 578
 			param.gridSize = $.jgrid.defaults.rowNum;
539
-			param.pagingYn = false; // 페이징안함
579
+			param.pagingYn = true; 
540 580
 
541 581
 			var option = {
542 582
 				gridId: STOCKMNG02010_VIEW_GRID_ID,
543 583
 				colModel: gridColModel.view,
544 584
 				param: JSON.stringify(param),
545
-				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
585
+				url: DOMAIN + STOCK_CDD_CDD_DETAIL_GRID_LIST,
546 586
 				pager: STOCKMNG02010_VIEW_GRID_PAGER,
547 587
 				loadComplete: function(data) {
548 588
 					itp_fn_grid_load_complete(data, STOCKMNG02010_VIEW_GRID_ID, true, undefined, 'STOCKMNG02010_VIEW');
@@ -600,46 +640,86 @@ let stockCddObj = {
600 640
 		},
601 641
 		addRow: function() {
602 642
 			var brandId = $('#ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID').val();
643
+			var whsId = $('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID').val();
644
+			var location = $('#ITP_FORM_STOCKMNG02010_DETAIL_LOCATION').val();
645
+			
646
+			var args = {'brandId': brandId, 'whsId': whsId, 'location': location};
647
+			fn_call_popup('biz', 'BIZPOP_PO_STOCK_ITEM_ADD', '#ITP_ASIDE', stockCddObj.button.addRowCallback, args, 'S');
648
+		}, 
649
+		addRowCallback: function(rowDataPop) {
650
+			var brandId = $('#ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID').val();
651
+			var brandNm = $('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_NM').val();
652
+			var whsId = $('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID').val();
653
+			var whsNm = $('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID option:selected').text();
654
+			var location = $('#ITP_FORM_STOCKMNG02010_DETAIL_LOCATION').val();
655
+			var locationNm = $('#ITP_FORM_STOCKMNG02010_DETAIL_LOCATION option:selected').text();
656
+			
603 657
 			
604
-			var args = {'brandId': brandId};
605
-			fn_call_popup('biz', 'BIZPOP_PO_STOCK_ITEM_ADD', '#ITP_ASIDE', null, args, 'S');
658
+			// 기존등록 데이터 체크
659
+			var exists = '';
660
+			const rowData = $(STOCKMNG02010_DETAIL_GRID_ID).getRowData();
661
+			$.each(rowData, function(key, value) {
662
+				exists = exists + value.itemId + ';';
663
+			});
664
+
665
+			$.each(rowDataPop, function(key, value) {
666
+				if(exists.indexOf(value.itemId) < 0) {
667
+					// 행추가
668
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
669
+					var rids = $(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
670
+					var last_row_id = rids[rids.length - 1];
671
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');					
672
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'brandId', brandId);
673
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'brandNm', brandNm);
674
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'whsId', whsId);
675
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'whsNm', whsNm);
676
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'location', location);
677
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'locationNm', locationNm);
678
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'itemId', value.itemId);
679
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'itemNm', value.itemNm);
680
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'unit', value.unit);
681
+					$(STOCKMNG02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'stckQty', value.stckQty);
682
+				}
683
+			});
684
+			$(STOCKMNG02010_DETAIL_GRID_EMPTY).hide();
606 685
 		}, 
607 686
 		save: function() {
608
-			var detailViewCd = $('#ITP_FORM_STOCKMNG02010_DETAIL_VIEW_CD').val();
609 687
 			const formId = '#ITP_FORM_STOCKMNG02010_DETAIL';
610 688
 			itp_fn_form_clear_validate(null, formId);
611 689
 			
612
-			var vali_whsStatCd = itp_fn_form_validate(formId, formId + '_WHS_ST_CD', ['empty'], undefined); // 상태
613
-			var vali_whsNm = itp_fn_form_validate(formId, formId + '_WHS_NM', ['empty'], undefined);
690
+			var vali_cddDt = itp_fn_form_validate(formId, formId + '_CDD_DT', ['empty'], undefined); 
691
+			var vali_cddDvsn = itp_fn_form_validate(formId, formId + '_CDD_DVSN', ['empty'], undefined);
614 692
 			
615
-			if (vali_whsStatCd && vali_whsNm) {
693
+			if (vali_cddDt && vali_cddDvsn) {
616 694
 				let gridInsertData = [];
617
-				let gridUpdateData = [];
618
-				let gridDeleteData = [];
619 695
 				const rowData = $(STOCKMNG02010_DETAIL_GRID_ID).getRowData();
620
-				// const keyValue = $(formId + '_WHS_ID').val();
696
+				
697
+				if(rowData.length < 1) {
698
+					itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.grid.noData);
699
+					return;
700
+				}	
701
+				var dataCheck = true;			
621 702
 				$.each(rowData, function(key, value) {
622
-					if (value.viewCd != 'R') {
623
-						// value.whsId = keyValue;
624
-						if (value.viewCd == 'C') {
625
-							gridInsertData.push(value);
626
-						} else if (value.viewCd == 'U') {
627
-							gridUpdateData.push(value);
628
-						} else if (value.viewCd == 'D') {
629
-							gridDeleteData.push(value);
630
-						}
631
-					}
703
+					if (value.cddQty == '' || isNaN(value.cddQty)) {
704
+						dataCheck = false;
705
+					}					
706
+					gridInsertData.push(value);
632 707
 				});
708
+				// 데이터 체크
709
+				if(!dataCheck) {
710
+					itp_fn_modal_alert_ajax('실사수량을 입력하세요.');
711
+					return;
712
+				}				
633 713
 				let param = $(formId).serializeObject();
714
+				param.whsId = $('#ITP_FORM_STOCKMNG02010_DETAIL_WHS_ID').val();
715
+				param.location = $('#ITP_FORM_STOCKMNG02010_DETAIL_LOCATION').val();
634 716
 				param.gridInsertData = gridInsertData;
635
-				param.gridUpdateData = gridUpdateData;
636
-				param.gridDeleteData = gridDeleteData;
637 717
 				//console.log(JSON.stringify(param));
638 718
 				var searhFn = function() {
639 719
 					ITP_FORM_STOCKMNG02010_DETAIL_IS_WRITING = false;
640 720
 					listObj.grid.search();
641 721
 				};
642
-				fn_ajax_call(detailViewCd == 'C' ? WHS_MNG_ADD_WHS : WHS_MNG_MIDIFY_WHS, JSON.stringify(param), searhFn, 'POST');
722
+				fn_ajax_call(STOCK_CDD_SAVE_STOCK_CDD, JSON.stringify(param), searhFn, 'POST');
643 723
 			}
644 724
 		}
645 725
 	},
@@ -655,6 +735,9 @@ let stockCddObj = {
655 735
 			url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
656 736
 			pager: STOCKMNG02010_DETAIL_GRID_PAGER,
657 737
 			multiselect: true,
738
+			onCellSelect: function(rowId, cellIdx, cellValue) {
739
+				STOCKMNG02010_DETAIL_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STOCKMNG02010_DETAIL_GRID_LAST_ROW_ID, STOCKMNG02010_DETAIL_GRID_ID);
740
+	   		},
658 741
 			loadComplete: function(data) {
659 742
 				itp_fn_grid_load_complete(data, STOCKMNG02010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG02010_DETAIL');
660 743
 			},