Browse Source

재고실사

marseyes 2 years ago
parent
commit
277fc0024f

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

@@ -1,16 +1,10 @@
1
 <div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD" class="modal itp_modal">
1
 <div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD" class="modal itp_modal">
2
 	<div class="modal-dialog">
2
 	<div class="modal-dialog">
3
 		<div class="modal-content">		
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">
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
 				<div class="modal-header">
9
 				<div class="modal-header">
16
 					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
10
 					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
@@ -21,16 +15,16 @@
21
 						<div class="col-xs-12 itp_form_inline">
15
 						<div class="col-xs-12 itp_form_inline">
22
 							<div class="form-horizontal fix">
16
 							<div class="form-horizontal fix">
23
 								<div class="col-xs-3 itp_ip itp_pr">
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
 								</div>
19
 								</div>
26
 								<div class="col-xs-3 itp_ip itp_pr">
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
 								</div>
22
 								</div>
29
 								<div class="col-xs-3 itp_ip itp_pr">
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
 								</div>
25
 								</div>
32
 								<div class="col-xs-3 itp_ip itp_noMar">
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
 								</div>
28
 								</div>
35
 							</div>
29
 							</div>
36
 						</div>
30
 						</div>
@@ -38,7 +32,7 @@
38
 					<div class="itp_form fix">
32
 					<div class="itp_form fix">
39
 						<div class="pull-right itp_cicon">
33
 						<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>
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
 						</div>
36
 						</div>
43
 					</div>
37
 					</div>
44
 					<div id="ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGrid_list" class="itp_tb_list" data-total-cnt="">
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
 							<div class="col-xs-12">
17
 							<div class="col-xs-12">
18
 								<form id="ITP_FORM_STOCKMNG02010_SEARCH" class="form-horizontal">
18
 								<form id="ITP_FORM_STOCKMNG02010_SEARCH" class="form-horizontal">
19
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID" name="sbrandId" value="">
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
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID" name="sstoreId" value="">
21
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_SEARCH_STORE_ID" name="sstoreId" value="">
21
 								
22
 								
22
 									<div class="form-group">
23
 									<div class="form-group">
@@ -59,6 +60,7 @@
59
 						<div class="itp_srh_border fix">
60
 						<div class="itp_srh_border fix">
60
 							<div class="col-xs-12">
61
 							<div class="col-xs-12">
61
 								<form id="ITP_FORM_STOCKMNG02010_DETAIL" class="form-horizontal">
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
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID" name="brandId" value="">
64
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID" name="brandId" value="">
63
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_STORE_ID" name="storeId" value="">
65
 									<input type="hidden" id="ITP_FORM_STOCKMNG02010_DETAIL_STORE_ID" name="storeId" value="">
64
 								
66
 								
@@ -78,6 +80,9 @@
78
 											<div class="col-xs-3 itp_ip itp_noMar">
80
 											<div class="col-xs-3 itp_ip itp_noMar">
79
 												<select id="ITP_FORM_STOCKMNG02010_DETAIL_LOCATION" class="form-control itp_input" name="location" disabled="disabled"></select>										
81
 												<select id="ITP_FORM_STOCKMNG02010_DETAIL_LOCATION" class="form-control itp_input" name="location" disabled="disabled"></select>										
80
 											</div>
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
 											<div class="col-xs-2 itp_ip">
86
 											<div class="col-xs-2 itp_ip">
82
 												<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>
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
 											</div>
88
 											</div>
@@ -102,48 +107,66 @@
102
 					</div>
107
 					</div>
103
 				</div>
108
 				</div>
104
 				<div id="ITP_AJAX_STOCKMNG02010_VIEW_CONTAINER">
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
 					</div>
170
 					</div>
148
 				</div>
171
 				</div>
149
 			</div>
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
 function itp_fn_BIZPOP_PO_STOCK_ITEM_ADD(parentPopFn, schParam, returnType) {
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
 	let itp_BIZPOP_PO_STOCK_ITEM_ADD_param = {};
24
 	let itp_BIZPOP_PO_STOCK_ITEM_ADD_param = {};
35
 	let itp_BIZPOP_PO_STOCK_ITEM_ADD_search = false;
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
 	}).one('hidden.bs.modal', function(e) {
34
 	}).one('hidden.bs.modal', function(e) {
45
 		$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').remove();
35
 		$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD').remove();
46
 	}).modal('show');
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
 	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_BTN_SEARCH').on('click', function() {
38
 	$('#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);
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
 		const rowKey = $(THIS_GIRD_ID).getGridParam('selrow');
43
 		const rowKey = $(THIS_GIRD_ID).getGridParam('selrow');
65
 	    if (!rowKey) {
44
 	    if (!rowKey) {
66
 	    	return;
45
 	    	return;
67
 	    }
46
 	    }
68
 
47
 
69
-		var gridInsertData = [];
48
+		var list = [];
70
 	    var selectedIds = $(THIS_GIRD_ID).getGridParam('selarrrow');
49
 	    var selectedIds = $(THIS_GIRD_ID).getGridParam('selarrrow');
71
 		
50
 		
72
 	    for (var i=selectedIds.length-1; i>=0; i--) {
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
 	$('#ITP_BIZPOP_PO_STOCK_ITEM_ADD_jqGridEmpty').on('click', function() {
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
 			itp_BIZPOP_PO_STOCK_ITEM_ADD_param = param;
67
 			itp_BIZPOP_PO_STOCK_ITEM_ADD_param = param;
95
 		},
68
 		},
96
 		back: function() {
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
 	$(THIS_GIRD_ID).jqGrid({
81
 	$(THIS_GIRD_ID).jqGrid({
109
 		colModel: [
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
 				sortable: false, hidden: false
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
 				sortable: false, hidden: false
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
 		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
115
 		    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
144
 		},
116
 		},
145
 		postData: JSON.stringify(param),
117
 		postData: JSON.stringify(param),
146
-		url: DOMAIN + PO_STOCK_ITEM_ADD_POP_GRID_LIST,
118
+		url: DOMAIN + STOCK_MNG_DETAIL_GRID_LIST,
147
 		pager: THIS_GIRD_PAGER,
119
 		pager: THIS_GIRD_PAGER,
148
 		multiselect: true,
120
 		multiselect: true,
149
 		loadComplete: function(data) {
121
 		loadComplete: function(data) {
@@ -167,22 +139,3 @@ var itp_fn_BIZPOP_PO_STOCK_ITEM_ADD_search = function(FORM_ID, GRID_ID) {
167
 	param.gridPage = $.jgrid.defaults.page;
139
 	param.gridPage = $.jgrid.defaults.page;
168
 	$(GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
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
 // let ITP_COMMON_CD_LOC_ST_CD = fn_make_common_cd_list(CODE_LIST, 'LOC_ST_CD', true);
34
 // let ITP_COMMON_CD_LOC_ST_CD = fn_make_common_cd_list(CODE_LIST, 'LOC_ST_CD', true);
35
 
35
 
36
 /*API URL*/
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
 let STOCK_CDD_DETAIL_GRID_LIST = '/api/stock/cdd/detail-grid-list';
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
 let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
42
 let WHS_MNG_DETAIL_GRID_LIST = '/api/whs/mng/detail-grid-list';
44
 let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
43
 let WHS_MNG_LOCATION_GRID_LIST = '/api/whs/mng/location-grid-list';
45
 
44
 
46
 /*화면 Grid ColModel*/
45
 /*화면 Grid ColModel*/
47
 const gridColModel = {
46
 const gridColModel = {
48
 	list: [
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
 			index: 'BRAND_ID', name: 'brandId',
55
 			index: 'BRAND_ID', name: 'brandId',
51
 			label: "브랜드ID", 
56
 			label: "브랜드ID", 
@@ -119,32 +124,69 @@ const gridColModel = {
119
 			label: ITP_MSG_LOCALE.label.viewCd,
124
 			label: ITP_MSG_LOCALE.label.viewCd,
120
 			width: '10', fixed: false, align: 'center',
125
 			width: '10', fixed: false, align: 'center',
121
 			sortable: false, hidden: true
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
 			width: '10', fixed: false, align: 'center',
145
 			width: '10', fixed: false, align: 'center',
127
 			sortable: false, editable: false, edittype: 'text',
146
 			sortable: false, editable: false, edittype: 'text',
128
-			editrules: {required: true}
147
+			editrules: {required: false}
129
 		},
148
 		},
130
 		{
149
 		{
131
 			index: 'LOCATION_NM', name: 'locationNm',
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
 			width: '12', fixed: false, align: 'center',
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
 			width: '10', fixed: false, align: 'center',
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
 			width: '10', fixed: false, align: 'center',
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
 	detail: [
192
 	detail: [
@@ -215,7 +257,7 @@ const gridColModel = {
215
 			label: "실사수량",
257
 			label: "실사수량",
216
 			width: '10', fixed: false, align: 'center',
258
 			width: '10', fixed: false, align: 'center',
217
 			sortable: false, editable: true, edittype: 'text',
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
 			// 브랜드ID 지정
288
 			// 브랜드ID 지정
247
 			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
289
 			var data = JSON.parse(sessionStorage.getItem('itp_manage_brand_info'));
248
 			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val(data.brandId);
290
 			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_ID').val(data.brandId);
291
+			$('#ITP_FORM_STOCKMNG02010_SEARCH_BRAND_NM').val(data.brandNm); 
249
 			
292
 			
250
 			pageObj.fnWhsList(function() {
293
 			pageObj.fnWhsList(function() {
251
 				pageObj.fnLocationList();
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
 			var now = new Date();
305
 			var now = new Date();
@@ -463,11 +510,10 @@ let listObj = {
463
 				onCellSelect: function(rowId, cellIdx, cellValue) {
510
 				onCellSelect: function(rowId, cellIdx, cellValue) {
464
 					var cm = $(this).jqGrid('getGridParam', 'colModel');
511
 					var cm = $(this).jqGrid('getGridParam', 'colModel');
465
 					var colNm = cm[cellIdx].name;
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
 						var param = $.param(key);
517
 						var param = $.param(key);
472
 						viewObj.init(param);
518
 						viewObj.init(param);
473
 					}
519
 					}
@@ -477,7 +523,7 @@ let listObj = {
477
 					itp_fn_grid_load_complete(data, STOCKMNG02010_GRID_ID, true, 'number', 'STOCKMNG02010', listObj.itp_STOCKMNG02010_search, listObj.empty, true, data.gridRecords, true);
523
 					itp_fn_grid_load_complete(data, STOCKMNG02010_GRID_ID, true, 'number', 'STOCKMNG02010', listObj.itp_STOCKMNG02010_search, listObj.empty, true, data.gridRecords, true);
478
 					var ids = $(STOCKMNG02010_GRID_ID).getDataIDs();
524
 					var ids = $(STOCKMNG02010_GRID_ID).getDataIDs();
479
 					$.each(ids, function(idx, rowId) {
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
 				onPaging: function(action) {
529
 				onPaging: function(action) {
@@ -504,26 +550,20 @@ let viewObj = {
504
 		this.load(param);
550
 		this.load(param);
505
 	},
551
 	},
506
 	load: function(param) {
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
 	callback: function (result) {
555
 	callback: function (result) {
510
 		// console.log(result);
556
 		// console.log(result);
511
 		pageObj.switchScreen('VIEW');
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
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnBrandNm').text(result.brandNm);
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
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsId').text(result.whsId);
562
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsId').text(result.whsId);
519
 		$('#ITP_FORM_STOCKMNG02010_VIEW .fnWhsNm').text(result.whsNm);
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
 		viewObj.grid.init();
569
 		viewObj.grid.init();
@@ -536,13 +576,13 @@ let viewObj = {
536
 		load : function() {
576
 		load : function() {
537
 			let param = $('#ITP_FORM_STOCKMNG02010_VIEW').serializeObject();
577
 			let param = $('#ITP_FORM_STOCKMNG02010_VIEW').serializeObject();
538
 			param.gridSize = $.jgrid.defaults.rowNum;
578
 			param.gridSize = $.jgrid.defaults.rowNum;
539
-			param.pagingYn = false; // 페이징안함
579
+			param.pagingYn = true; 
540
 
580
 
541
 			var option = {
581
 			var option = {
542
 				gridId: STOCKMNG02010_VIEW_GRID_ID,
582
 				gridId: STOCKMNG02010_VIEW_GRID_ID,
543
 				colModel: gridColModel.view,
583
 				colModel: gridColModel.view,
544
 				param: JSON.stringify(param),
584
 				param: JSON.stringify(param),
545
-				url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
585
+				url: DOMAIN + STOCK_CDD_CDD_DETAIL_GRID_LIST,
546
 				pager: STOCKMNG02010_VIEW_GRID_PAGER,
586
 				pager: STOCKMNG02010_VIEW_GRID_PAGER,
547
 				loadComplete: function(data) {
587
 				loadComplete: function(data) {
548
 					itp_fn_grid_load_complete(data, STOCKMNG02010_VIEW_GRID_ID, true, undefined, 'STOCKMNG02010_VIEW');
588
 					itp_fn_grid_load_complete(data, STOCKMNG02010_VIEW_GRID_ID, true, undefined, 'STOCKMNG02010_VIEW');
@@ -600,46 +640,86 @@ let stockCddObj = {
600
 		},
640
 		},
601
 		addRow: function() {
641
 		addRow: function() {
602
 			var brandId = $('#ITP_FORM_STOCKMNG02010_DETAIL_BRAND_ID').val();
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
 		save: function() {
686
 		save: function() {
608
-			var detailViewCd = $('#ITP_FORM_STOCKMNG02010_DETAIL_VIEW_CD').val();
609
 			const formId = '#ITP_FORM_STOCKMNG02010_DETAIL';
687
 			const formId = '#ITP_FORM_STOCKMNG02010_DETAIL';
610
 			itp_fn_form_clear_validate(null, formId);
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
 				let gridInsertData = [];
694
 				let gridInsertData = [];
617
-				let gridUpdateData = [];
618
-				let gridDeleteData = [];
619
 				const rowData = $(STOCKMNG02010_DETAIL_GRID_ID).getRowData();
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
 				$.each(rowData, function(key, value) {
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
 				let param = $(formId).serializeObject();
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
 				param.gridInsertData = gridInsertData;
716
 				param.gridInsertData = gridInsertData;
635
-				param.gridUpdateData = gridUpdateData;
636
-				param.gridDeleteData = gridDeleteData;
637
 				//console.log(JSON.stringify(param));
717
 				//console.log(JSON.stringify(param));
638
 				var searhFn = function() {
718
 				var searhFn = function() {
639
 					ITP_FORM_STOCKMNG02010_DETAIL_IS_WRITING = false;
719
 					ITP_FORM_STOCKMNG02010_DETAIL_IS_WRITING = false;
640
 					listObj.grid.search();
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
 			url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
735
 			url: DOMAIN + WHS_MNG_LOCATION_GRID_LIST,
656
 			pager: STOCKMNG02010_DETAIL_GRID_PAGER,
736
 			pager: STOCKMNG02010_DETAIL_GRID_PAGER,
657
 			multiselect: true,
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
 			loadComplete: function(data) {
741
 			loadComplete: function(data) {
659
 				itp_fn_grid_load_complete(data, STOCKMNG02010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG02010_DETAIL');
742
 				itp_fn_grid_load_complete(data, STOCKMNG02010_DETAIL_GRID_ID, true, undefined, 'STOCKMNG02010_DETAIL');
660
 			},
743
 			},