|
@@ -1,6 +1,7 @@
|
1
|
1
|
require(['config'], function() {
|
2
|
2
|
require([
|
3
|
|
- 'jquery.bootstrap.fileUpload' //파일 업로드가 있는 페이지에서 로딩
|
|
3
|
+ 'jquery.bootstrap.fileUpload', //파일 업로드가 있는 페이지에서 로딩
|
|
4
|
+ 'xlsx' // 엑셀 다운로드
|
4
|
5
|
], function($) {
|
5
|
6
|
pageObj.init();
|
6
|
7
|
});
|
|
@@ -24,6 +25,11 @@ const STINFO04010_GRID_LIST = '#ITP_STINFO04010_jqGrid_list';
|
24
|
25
|
const STINFO04010_GRID_PAGER = '#ITP_STINFO04010_jqGridPager';
|
25
|
26
|
const STINFO04010_GRID_EMPTY = '#ITP_STINFO04010_jqGridEmpty';
|
26
|
27
|
|
|
28
|
+const STINFO04010_UPLOAD_GRID_ID = '#ITP_STINFO04010_UPLOAD_jqGrid';
|
|
29
|
+const STINFO04010_UPLOAD_GRID_LIST = '#ITP_STINFO04010_UPLOAD_jqGrid_list';
|
|
30
|
+const STINFO04010_UPLOAD_GRID_PAGER = '#ITP_STINFO04010_UPLOAD_jqGridPager';
|
|
31
|
+const STINFO04010_UPLOAD_GRID_EMPTY = '#ITP_STINFO04010_UPLOAD_jqGridEmpty';
|
|
32
|
+
|
27
|
33
|
const STINFO04010_VIEW_GRID_ID = '#ITP_STINFO04010_VIEW_jqGrid';
|
28
|
34
|
const STINFO04010_VIEW_GRID_LIST = '#ITP_STINFO04010_VIEW_jqGrid_list';
|
29
|
35
|
const STINFO04010_VIEW_GRID_PAGER = '#ITP_STINFO04010_VIEW_jqGridPager';
|
|
@@ -37,13 +43,18 @@ const STINFO04010_DETAIL_GRID_EMPTY = '#ITP_STINFO04010_DETAIL_jqGridEmpty';
|
37
|
43
|
let ITP_FORM_STINFO04010_DETAIL_IS_DUPLICATE = false;
|
38
|
44
|
let ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
|
39
|
45
|
|
|
46
|
+let STINFO04010_UPLOAD_GRID_LAST_ROW_ID;
|
|
47
|
+
|
40
|
48
|
/*API URL*/
|
41
|
49
|
let API_DETAIL_GRID_LIST = '/api/item/detail-grid-list'; // 목록
|
42
|
50
|
let API_DETAIL_INFO = '/api/item/info-item'; // 상세
|
43
|
51
|
let API_DETAIL_SAVE = '/api/item/save-item'; // 저장
|
|
52
|
+let API_DETAIL_SAVE_LIST = '/api/item/save-item-list'; // 일괄저장
|
44
|
53
|
let API_ITEM_CLASS_LEVEL = '/api/item/class-level-list'; //품목분류 level 검색
|
45
|
54
|
let API_GET_KEY = '/api/session/get-key';
|
46
|
55
|
|
|
56
|
+let SCREEN_MODE;
|
|
57
|
+
|
47
|
58
|
/*화면 Grid ColModel*/
|
48
|
59
|
const gridColModel = {
|
49
|
60
|
list: [
|
|
@@ -113,6 +124,184 @@ const gridColModel = {
|
113
|
124
|
width: '8', fixed: false, align: 'center',
|
114
|
125
|
sortable: false, hidden: false
|
115
|
126
|
},
|
|
127
|
+ ],
|
|
128
|
+ upload: [
|
|
129
|
+ {
|
|
130
|
+ index: 'VIEW_CD', name: 'viewCd',
|
|
131
|
+ label: ITP_MSG_LOCALE.label.viewCd,
|
|
132
|
+ width: '10', fixed: false, align: 'center',
|
|
133
|
+ sortable: false, hidden: true
|
|
134
|
+ },
|
|
135
|
+ {
|
|
136
|
+ index: 'NORMAL_YN', name: 'normalYn',
|
|
137
|
+ label: "정상여부",
|
|
138
|
+ width: '10', fixed: false, align: 'center',
|
|
139
|
+ minwidth: 150, maxwidth: 250,
|
|
140
|
+ sortable: false, editable: false, edittype: 'text',
|
|
141
|
+ editrules: {required: false}
|
|
142
|
+ },
|
|
143
|
+ {
|
|
144
|
+ index: 'ERROR_MSG', name: 'errorMsg',
|
|
145
|
+ label: "에러메시지",
|
|
146
|
+ width: '15', fixed: false, align: 'center',
|
|
147
|
+ minwidth: 150, maxwidth: 300,
|
|
148
|
+ sortable: false, editable: false, edittype: 'text',
|
|
149
|
+ editrules: {required: false}
|
|
150
|
+ },
|
|
151
|
+ {
|
|
152
|
+ index: 'ITEM_NM', name: 'itemNm',
|
|
153
|
+ label: ITP_MSG_LOCALE.label.itemNm, //품목명
|
|
154
|
+ width: '13', fixed: false, align: 'left',
|
|
155
|
+ minwidth: 150, maxwidth: 250,
|
|
156
|
+ sortable: false, hidden: false
|
|
157
|
+ },
|
|
158
|
+ {
|
|
159
|
+ index: 'ITEM_TYPE_NM', name: 'itemTypeNm',
|
|
160
|
+ label: ITP_MSG_LOCALE.label.itemTypeNm, //품목유형
|
|
161
|
+ width: '10', fixed: false, align: 'center',
|
|
162
|
+ minwidth: 150, maxwidth: 250,
|
|
163
|
+ sortable: false, hidden: false
|
|
164
|
+ },
|
|
165
|
+ {
|
|
166
|
+ index: 'IMP_DVSN_NM', name: 'impDvsnNm',
|
|
167
|
+ label: '내외자구분',
|
|
168
|
+ width: '10', fixed: false, align: 'center',
|
|
169
|
+ minwidth: 150, maxwidth: 250,
|
|
170
|
+ sortable: false, hidden: false
|
|
171
|
+ },
|
|
172
|
+ {
|
|
173
|
+ index: 'PODR_PSSBL_DVSN_NM', name: 'podrPssblDvsnNm',
|
|
174
|
+ label: '발주여부',
|
|
175
|
+ width: '10', fixed: false, align: 'center',
|
|
176
|
+ minwidth: 150, maxwidth: 250,
|
|
177
|
+ sortable: false, hidden: false
|
|
178
|
+ },
|
|
179
|
+ {
|
|
180
|
+ index: 'UNIT_NM', name: 'unitNm',
|
|
181
|
+ label: '기본단위',
|
|
182
|
+ width: '10', fixed: false, align: 'center',
|
|
183
|
+ minwidth: 150, maxwidth: 250,
|
|
184
|
+ sortable: false, hidden: false
|
|
185
|
+ },
|
|
186
|
+ {
|
|
187
|
+ index: 'PCH_ITEM_YN', name: 'pchItemYn',
|
|
188
|
+ label: '구매품목여부',
|
|
189
|
+ width: '10', fixed: false, align: 'center',
|
|
190
|
+ minwidth: 150, maxwidth: 250,
|
|
191
|
+ sortable: false, hidden: false
|
|
192
|
+ },
|
|
193
|
+ {
|
|
194
|
+ index: 'SALE_ITEM_YN', name: 'saleItemYn',
|
|
195
|
+ label: '판매품목여부',
|
|
196
|
+ width: '10', fixed: false, align: 'center',
|
|
197
|
+ minwidth: 150, maxwidth: 250,
|
|
198
|
+ sortable: false, hidden: false
|
|
199
|
+ },
|
|
200
|
+ {
|
|
201
|
+ index: 'WEIGHT', name: 'weight',
|
|
202
|
+ label: '중량 값',
|
|
203
|
+ width: '6', fixed: false, align: 'center',
|
|
204
|
+ minwidth: 150, maxwidth: 250,
|
|
205
|
+ sortable: false, hidden: false
|
|
206
|
+ },
|
|
207
|
+ {
|
|
208
|
+ index: 'WEIGHT_UNIT_NM', name: 'weightUnitNm',
|
|
209
|
+ label: '중량 단위',
|
|
210
|
+ width: '6', fixed: false, align: 'center',
|
|
211
|
+ minwidth: 150, maxwidth: 250,
|
|
212
|
+ sortable: false, hidden: false
|
|
213
|
+ },
|
|
214
|
+ {
|
|
215
|
+ index: 'VOLUME', name: 'volume',
|
|
216
|
+ label: '부피 값',
|
|
217
|
+ width: '6', fixed: false, align: 'center',
|
|
218
|
+ minwidth: 150, maxwidth: 250,
|
|
219
|
+ sortable: false, hidden: false
|
|
220
|
+ },
|
|
221
|
+ {
|
|
222
|
+ index: 'VOLUME_UNIT_NM', name: 'volumeUnitNm',
|
|
223
|
+ label: '부피 단위',
|
|
224
|
+ width: '6', fixed: false, align: 'center',
|
|
225
|
+ minwidth: 150, maxwidth: 250,
|
|
226
|
+ sortable: false, hidden: false
|
|
227
|
+ },
|
|
228
|
+ {
|
|
229
|
+ index: 'WIDTH', name: 'width',
|
|
230
|
+ label: '가로 값',
|
|
231
|
+ width: '6', fixed: false, align: 'center',
|
|
232
|
+ minwidth: 150, maxwidth: 250,
|
|
233
|
+ sortable: false, hidden: false
|
|
234
|
+ },
|
|
235
|
+ {
|
|
236
|
+ index: 'WIDTH_UNIT_NM', name: 'widthUnitNm',
|
|
237
|
+ label: '가로 단위',
|
|
238
|
+ width: '6', fixed: false, align: 'center',
|
|
239
|
+ minwidth: 150, maxwidth: 250,
|
|
240
|
+ sortable: false, hidden: false
|
|
241
|
+ },
|
|
242
|
+ {
|
|
243
|
+ index: 'HEIGHT', name: 'height',
|
|
244
|
+ label: '세로 값',
|
|
245
|
+ width: '6', fixed: false, align: 'center',
|
|
246
|
+ minwidth: 150, maxwidth: 250,
|
|
247
|
+ sortable: false, hidden: false
|
|
248
|
+ },
|
|
249
|
+ {
|
|
250
|
+ index: 'HEIGHT_UNIT_NM', name: 'heightUnitNm',
|
|
251
|
+ label: '세로 단위',
|
|
252
|
+ width: '6', fixed: false, align: 'center',
|
|
253
|
+ minwidth: 150, maxwidth: 250,
|
|
254
|
+ sortable: false, hidden: false
|
|
255
|
+ },
|
|
256
|
+ {
|
|
257
|
+ index: 'HIGH', name: 'high',
|
|
258
|
+ label: '높이 값',
|
|
259
|
+ width: '6', fixed: false, align: 'center',
|
|
260
|
+ minwidth: 150, maxwidth: 250,
|
|
261
|
+ sortable: false, hidden: false
|
|
262
|
+ },
|
|
263
|
+ {
|
|
264
|
+ index: 'HIGH_UNIT_NM', name: 'highUnitNm',
|
|
265
|
+ label: '높이 단위',
|
|
266
|
+ width: '6', fixed: false, align: 'center',
|
|
267
|
+ minwidth: 150, maxwidth: 250,
|
|
268
|
+ sortable: false, hidden: false
|
|
269
|
+ },
|
|
270
|
+ {
|
|
271
|
+ index: 'EXPRY_YN', name: 'expryYn',
|
|
272
|
+ label: '유통기한여부',
|
|
273
|
+ width: '10', fixed: false, align: 'center',
|
|
274
|
+ minwidth: 150, maxwidth: 250,
|
|
275
|
+ sortable: false, hidden: false
|
|
276
|
+ },
|
|
277
|
+ {
|
|
278
|
+ index: 'EXPRY_PERIOD', name: 'expryPeriod',
|
|
279
|
+ label: '유통가능기간',
|
|
280
|
+ width: '10', fixed: false, align: 'center',
|
|
281
|
+ minwidth: 150, maxwidth: 250,
|
|
282
|
+ sortable: false, hidden: false
|
|
283
|
+ },
|
|
284
|
+ {
|
|
285
|
+ index: 'RTN_PSSBL_YN', name: 'rtnPssblYn',
|
|
286
|
+ label: '반품가능여부',
|
|
287
|
+ width: '10', fixed: false, align: 'center',
|
|
288
|
+ minwidth: 150, maxwidth: 250,
|
|
289
|
+ sortable: false, hidden: false
|
|
290
|
+ },
|
|
291
|
+ {
|
|
292
|
+ index: 'RTN_DVSN_NM', name: 'rtnDvsnNm',
|
|
293
|
+ label: '반품구분',
|
|
294
|
+ width: '10', fixed: false, align: 'center',
|
|
295
|
+ minwidth: 150, maxwidth: 250,
|
|
296
|
+ sortable: false, hidden: false
|
|
297
|
+ },
|
|
298
|
+ {
|
|
299
|
+ index: 'BARCODE', name: 'barcode',
|
|
300
|
+ label: '바코드',
|
|
301
|
+ width: '10', fixed: false, align: 'center',
|
|
302
|
+ minwidth: 150, maxwidth: 250,
|
|
303
|
+ sortable: false, hidden: false
|
|
304
|
+ }
|
116
|
305
|
],
|
117
|
306
|
detail: [
|
118
|
307
|
{
|
|
@@ -199,10 +388,13 @@ let pageObj = {
|
199
|
388
|
case 'ITP_BTN_STINFO04010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
|
200
|
389
|
case 'ITP_BTN_STINFO04010_MODIFY' : modifyObj.button.modify(); break; // 수정 버튼
|
201
|
390
|
case 'ITP_BTN_STINFO04010_CANCELLIST' : createObj.button.cancel(); break; // 취소/목록 버튼
|
|
391
|
+ case 'ITP_BTN_STINFO04010_UPLOAD' : listObj.button.upload(); break; // 엑셀업로드 버튼
|
202
|
392
|
case 'ITP_BTN_STINFO04010_DELETE' : break; // 삭제 버튼
|
203
|
393
|
case 'ITP_BTN_STINFO04010_SAVE' : createObj.button.save(); break; // 저장 버튼
|
204
|
394
|
case 'ITP_FORM_STINFO04010_DETAIL_DUP' : createObj.button.duplicate(); break; // 중복체크
|
205
|
395
|
case 'ITP_BTN_STINFO04010_RESET_PW' : createObj.button.resetPass(); break; // 상세:비밀번호 초기화
|
|
396
|
+ case 'ITP_BTN_STINFO04010_TEMPLATE_DOWNLOAD' : uploadObj.button.downTemplate(); break; // 템플릿 다운로드
|
|
397
|
+ case 'ITP_BTN_STINFO04010_FILE_UPLOAD' : uploadObj.button.uploadFile(); break; // 파일 업로드
|
206
|
398
|
}
|
207
|
399
|
});
|
208
|
400
|
});
|
|
@@ -229,6 +421,8 @@ let pageObj = {
|
229
|
421
|
itp_fn_set_file_upload('ITP_' + id + '_DETAIL_UPLOAD', 'affl', true, false, id, fileArgs);
|
230
|
422
|
},
|
231
|
423
|
switchScreen: function(mode) {
|
|
424
|
+ SCREEN_MODE = mode;
|
|
425
|
+
|
232
|
426
|
$('.itp_det_head').find('button[id^="ITP_BTN_STINFO04010_"]').each(function(i) {
|
233
|
427
|
$(this).hide();
|
234
|
428
|
});
|
|
@@ -237,8 +431,14 @@ let pageObj = {
|
237
|
431
|
});
|
238
|
432
|
if(mode == 'LIST') { // 목록
|
239
|
433
|
$('#ITP_AJAX_STINFO04010_LIST_CONTAINER').show();
|
240
|
|
- fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_SRH', '#ITP_BTN_STINFO04010_NEWREG']);
|
|
434
|
+ fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_SRH', '#ITP_BTN_STINFO04010_NEWREG', '#ITP_BTN_STINFO04010_UPLOAD']);
|
241
|
435
|
$('#ITP_FORM_STINFO04010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
|
|
436
|
+
|
|
437
|
+ } else if(mode == 'UPLOAD') { // 엑셀업로드
|
|
438
|
+ $('#ITP_AJAX_STINFO04010_UPLOAD_CONTAINER').show();
|
|
439
|
+ fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_FILE_UPLOAD','#ITP_BTN_STINFO04010_TEMPLATE_DOWNLOAD','#ITP_BTN_STINFO04010_SAVE', '#ITP_BTN_STINFO04010_CANCELLIST']);
|
|
440
|
+ $('#ITP_FORM_STINFO04010_UPLOAD_BRAND_ID').val(fn_make_user_info.get('brandId'));
|
|
441
|
+
|
242
|
442
|
} else if(mode == 'ADD') { // 등록
|
243
|
443
|
$('#ITP_AJAX_STINFO04010_DETAIL_CONTAINER').show();
|
244
|
444
|
fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_CANCELLIST', '#ITP_BTN_STINFO04010_SAVE']);
|
|
@@ -300,7 +500,12 @@ let listObj = {
|
300
|
500
|
if(!fn_make_user_info.isEmpty()) {
|
301
|
501
|
createObj.init();
|
302
|
502
|
}
|
303
|
|
- }
|
|
503
|
+ },
|
|
504
|
+ upload: function() {
|
|
505
|
+ if(!fn_make_user_info.isEmpty()) {
|
|
506
|
+ uploadObj.init();
|
|
507
|
+ }
|
|
508
|
+ }
|
304
|
509
|
},
|
305
|
510
|
form: function() {
|
306
|
511
|
$('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS1').on('change', function() {
|
|
@@ -453,7 +658,6 @@ let viewObj = {
|
453
|
658
|
$('#ITP_FORM_STINFO04010_VIEW .fnOqMenuCd').text(result.oqMenuCd);
|
454
|
659
|
$('#ITP_FORM_STINFO04010_VIEWL #ITP_FORM_STINFO04010_VIEW_OQ_BRAND_ID').val(result.oqBrandId);
|
455
|
660
|
|
456
|
|
-
|
457
|
661
|
itp_fn_attach_file.view('ITP_FORM_STINFO04010_VIEW_FILE', result.imageFileNoList
|
458
|
662
|
, 'form-control itp_input', 'border:none; top:12px; left:12px; height:100px; width:125px; position:absolute;');
|
459
|
663
|
|
|
@@ -526,6 +730,231 @@ let modifyObj = {
|
526
|
730
|
}
|
527
|
731
|
};
|
528
|
732
|
|
|
733
|
+/* 엑셀업로드 화면 */
|
|
734
|
+let uploadObj = {
|
|
735
|
+ init: function () {
|
|
736
|
+ this.grid.init();
|
|
737
|
+ this.change();
|
|
738
|
+ },
|
|
739
|
+ button: {
|
|
740
|
+ downTemplate: function() {
|
|
741
|
+ var lidx = window.location.href.lastIndexOf('/');
|
|
742
|
+ window.location.assign(window.location.href.substring(0, lidx) + '/excel_template/item_upload_v1.xlsx');
|
|
743
|
+ },
|
|
744
|
+ uploadFile: function() {
|
|
745
|
+ uploadObj.grid.clearData();
|
|
746
|
+ // 파일선택
|
|
747
|
+ $('#ITP_FORM_STINFO04010_UPLOAD_EXCEL_UPLOAD_SELECT_FILE').click();
|
|
748
|
+ },
|
|
749
|
+ makeExcelDataList: function(excelData) {
|
|
750
|
+ var processArray = [];
|
|
751
|
+
|
|
752
|
+ excelData.shift();
|
|
753
|
+ excelData.shift();
|
|
754
|
+ excelData.some(function(data) {
|
|
755
|
+ var processData = {};
|
|
756
|
+ processData.itemNm = data.A.toString();
|
|
757
|
+ processData.itemTypeNm = data.B.toString();
|
|
758
|
+ processData.impDvsnNm = data.C.toString();
|
|
759
|
+ processData.podrPssblDvsnNm = data.D.toString();
|
|
760
|
+ processData.unitNm = data.E.toString();
|
|
761
|
+ processData.pchItemYn = data.F.toString();
|
|
762
|
+ processData.saleItemYn = data.G.toString();
|
|
763
|
+ processData.weight = data.H.toString();
|
|
764
|
+ processData.weightUnitNm = data.I.toString();
|
|
765
|
+ processData.volume = data.J.toString();
|
|
766
|
+ processData.volumeUnitNm = data.K.toString();
|
|
767
|
+ processData.width = data.L.toString();
|
|
768
|
+ processData.widthUnitNm = data.M.toString();
|
|
769
|
+ processData.height = data.N.toString();
|
|
770
|
+ processData.heightUnitNm = data.O.toString();
|
|
771
|
+ processData.high = data.P.toString();
|
|
772
|
+ processData.highUnitNm = data.Q.toString();
|
|
773
|
+ processData.expryYn = data.R.toString();
|
|
774
|
+ processData.expryPeriod = data.S.toString();
|
|
775
|
+ processData.rtnPssblYn = data.T.toString();
|
|
776
|
+ processData.rtnDvsnNm = data.U.toString();
|
|
777
|
+ processData.barcode = data.V.toString();
|
|
778
|
+ processArray.push(processData);
|
|
779
|
+ });
|
|
780
|
+
|
|
781
|
+ $.each(processArray, function(key, value) {
|
|
782
|
+
|
|
783
|
+ var normalYn = 'Y';
|
|
784
|
+ var errorMsg = '';
|
|
785
|
+
|
|
786
|
+ // console.log(JSON.stringify(value));
|
|
787
|
+ // 코드값 체크
|
|
788
|
+ if("소모품:자산용".indexOf(value.itemTypeNm) < 0) {
|
|
789
|
+ normalYn = 'N';
|
|
790
|
+ errorMsg += '품목유형;';
|
|
791
|
+ }
|
|
792
|
+ if("국내:수입".indexOf(value.impDvsnNm) < 0) {
|
|
793
|
+ normalYn = 'N';
|
|
794
|
+ errorMsg += '내외자구분;';
|
|
795
|
+ }
|
|
796
|
+ if("발주가능:발주불가".indexOf(value.podrPssblDvsnNm) < 0) {
|
|
797
|
+ normalYn = 'N';
|
|
798
|
+ errorMsg += '발주여부;';
|
|
799
|
+ }
|
|
800
|
+ if("부피:개수:박스".indexOf(value.unitNm) < 0) {
|
|
801
|
+ normalYn = 'N';
|
|
802
|
+ errorMsg += '기본단위;';
|
|
803
|
+ }
|
|
804
|
+ if("Y:N".indexOf(value.pchItemYn) < 0) {
|
|
805
|
+ normalYn = 'N';
|
|
806
|
+ errorMsg += '구매품목여부;';
|
|
807
|
+ }
|
|
808
|
+ if("Y:N".indexOf(value.saleItemYn) < 0) {
|
|
809
|
+ normalYn = 'N';
|
|
810
|
+ errorMsg += '판매품목여부;';
|
|
811
|
+ }
|
|
812
|
+ if("kg:g:mg:ton".indexOf(value.weightUnitNm) < 0) {
|
|
813
|
+ normalYn = 'N';
|
|
814
|
+ errorMsg += '중량단위;';
|
|
815
|
+ }
|
|
816
|
+ if("cm³:m³:L:ml".indexOf(value.volumeUnitNm) < 0) {
|
|
817
|
+ normalYn = 'N';
|
|
818
|
+ errorMsg += '부피단위;';
|
|
819
|
+ }
|
|
820
|
+ if("cm:m:mm:km:inch:ft:yd".indexOf(value.widthUnitNm) < 0) {
|
|
821
|
+ normalYn = 'N';
|
|
822
|
+ errorMsg += '가로단위;';
|
|
823
|
+ }
|
|
824
|
+ if("cm:m:mm:km:inch:ft:yd".indexOf(value.heightUnitNm) < 0) {
|
|
825
|
+ normalYn = 'N';
|
|
826
|
+ errorMsg += '세로단위;';
|
|
827
|
+ }
|
|
828
|
+ if("cm:m:mm:km:inch:ft:yd".indexOf(value.highUnitNm) < 0) {
|
|
829
|
+ normalYn = 'N';
|
|
830
|
+ errorMsg += '높이단위;';
|
|
831
|
+ }
|
|
832
|
+ if("Y:N".indexOf(value.expryYn) < 0) {
|
|
833
|
+ normalYn = 'N';
|
|
834
|
+ errorMsg += '유통기한여부;';
|
|
835
|
+ }
|
|
836
|
+ if("Y:N".indexOf(value.rtnPssblYn) < 0) {
|
|
837
|
+ normalYn = 'N';
|
|
838
|
+ errorMsg += '반품가능여부;';
|
|
839
|
+ }
|
|
840
|
+ if("실물반품:폐기반품".indexOf(value.rtnDvsnNm) < 0) {
|
|
841
|
+ normalYn = 'N';
|
|
842
|
+ errorMsg += '반품구분;';
|
|
843
|
+ }
|
|
844
|
+
|
|
845
|
+ // 행추가
|
|
846
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('addRow', {position: 'last'});
|
|
847
|
+ var rids = $(STINFO04010_UPLOAD_GRID_ID).jqGrid('getDataIDs');
|
|
848
|
+ var last_row_id = rids[rids.length - 1];
|
|
849
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
|
|
850
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'normalYn', normalYn); // 정상여부
|
|
851
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'errorMsg', errorMsg);
|
|
852
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'itemNm', value.itemNm);
|
|
853
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'itemTypeNm', value.itemTypeNm);
|
|
854
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'impDvsnNm', value.impDvsnNm);
|
|
855
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'podrPssblDvsnNm', value.podrPssblDvsnNm);
|
|
856
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'unitNm', value.unitNm);
|
|
857
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'pchItemYn', value.pchItemYn);
|
|
858
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'saleItemYn', value.saleItemYn);
|
|
859
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'weight', value.weight);
|
|
860
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'weightUnitNm', value.weightUnitNm);
|
|
861
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'volume', value.volume);
|
|
862
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'volumeUnitNm', value.volumeUnitNm);
|
|
863
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'width', value.width);
|
|
864
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'widthUnitNm', value.widthUnitNm);
|
|
865
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'height', value.height);
|
|
866
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'heightUnitNm', value.heightUnitNm);
|
|
867
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'high', value.high);
|
|
868
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'highUnitNm', value.highUnitNm);
|
|
869
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'expryYn', value.expryYn);
|
|
870
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'expryPeriod', value.expryPeriod);
|
|
871
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'rtnPssblYn', value.rtnPssblYn);
|
|
872
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'rtnDvsnNm', value.rtnDvsnNm);
|
|
873
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('setCell', last_row_id, 'barcode', value.barcode);
|
|
874
|
+ });
|
|
875
|
+ $(STINFO04010_UPLOAD_GRID_EMPTY).hide();
|
|
876
|
+
|
|
877
|
+ }
|
|
878
|
+ },
|
|
879
|
+ change: function() {
|
|
880
|
+ // 파일선택
|
|
881
|
+ $(document).on('change', '#ITP_FORM_STINFO04010_UPLOAD_EXCEL_UPLOAD_SELECT_FILE', function(obj) {
|
|
882
|
+ var input = obj.target;
|
|
883
|
+ var reader = new FileReader();
|
|
884
|
+ var rABS = !!reader.readAsBinaryString;
|
|
885
|
+ reader.onload = function(){
|
|
886
|
+ var fileData = reader.result;
|
|
887
|
+ var wb = XLSX.read(fileData, {type : rABS ? 'binary' : 'array'});
|
|
888
|
+ var sheetNameList = wb.SheetNames; // 시트 이름 목록 가져오기
|
|
889
|
+ var firstSheetName = sheetNameList[0]; // 첫번째 시트명
|
|
890
|
+ var firstSheet = wb.Sheets[firstSheetName]; // 첫번째 시트
|
|
891
|
+ var rowObj =XLSX.utils.sheet_to_json(firstSheet, {header:"A", defval: ""});
|
|
892
|
+
|
|
893
|
+ console.log(JSON.stringify(rowObj));
|
|
894
|
+ // console.log(rowObj.length);
|
|
895
|
+
|
|
896
|
+ $('#ITP_FORM_STINFO04010_UPLOAD_EXCEL_UPLOAD_SELECT_FILE').val('');
|
|
897
|
+ if(rowObj.length < 3) {
|
|
898
|
+ itp_fn_modal_alert_ajax('엑셀파일에 품목 데이터를 기술하세요.');
|
|
899
|
+ return;
|
|
900
|
+ } else if(rowObj.length > 1001) {
|
|
901
|
+ itp_fn_modal_alert_ajax('엑셀 일괄처리는 최대 1000건까지 가능합니다.');
|
|
902
|
+ return;
|
|
903
|
+ }
|
|
904
|
+
|
|
905
|
+ uploadObj.button.makeExcelDataList(rowObj);
|
|
906
|
+ };
|
|
907
|
+ if(rABS) reader.readAsBinaryString(input.files[0]);
|
|
908
|
+ else reader.readAsArrayBuffer(input.files[0]);
|
|
909
|
+ });
|
|
910
|
+ },
|
|
911
|
+ grid: {
|
|
912
|
+ init: function () {
|
|
913
|
+ this.search();
|
|
914
|
+ },
|
|
915
|
+ colModel: gridColModel.upload,
|
|
916
|
+ search: function() {
|
|
917
|
+ pageObj.switchScreen('UPLOAD');
|
|
918
|
+ this.unload();
|
|
919
|
+ this.load();
|
|
920
|
+ },
|
|
921
|
+ load: function() {
|
|
922
|
+ let param = $('#ITP_FORM_STINFO04010_SEARCH').serializeObject();
|
|
923
|
+ param.gridSize = $.jgrid.defaults.rowNum;
|
|
924
|
+ param.sbrandId = fn_make_user_info.get('brandId');
|
|
925
|
+ param.uploadYn = "Y"; // 엑셀업로드 여부
|
|
926
|
+
|
|
927
|
+ var option = {
|
|
928
|
+ gridId: STINFO04010_UPLOAD_GRID_ID,
|
|
929
|
+ colModel: gridColModel.upload,
|
|
930
|
+ param: param,
|
|
931
|
+ url: DOMAIN + API_DETAIL_GRID_LIST,
|
|
932
|
+ pager: STINFO04010_UPLOAD_GRID_PAGER,
|
|
933
|
+ onCellSelect: function(rowId, cellIdx, cellValue) {
|
|
934
|
+ // STINFO04010_UPLOAD_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, STINFO04010_UPLOAD_GRID_LAST_ROW_ID, STINFO04010_UPLOAD_GRID_ID, ['itemId']);
|
|
935
|
+ },
|
|
936
|
+ loadComplete: function(data) {
|
|
937
|
+ // console.log(data);
|
|
938
|
+ itp_fn_grid_load_complete(data, STINFO04010_UPLOAD_GRID_ID, true, 'number', 'STINFO04010', listObj.itp_STINFO04010_search, listObj.empty, true, data.gridRecords, true);
|
|
939
|
+ },
|
|
940
|
+ onPaging: function(action) {
|
|
941
|
+ itp_fn_grid_paging(STINFO04010_UPLOAD_GRID_ID, action, param);
|
|
942
|
+ }
|
|
943
|
+ };
|
|
944
|
+ itp_fn_grid_make_remote(option);
|
|
945
|
+ },
|
|
946
|
+ clearData : function() {
|
|
947
|
+ $(STINFO04010_UPLOAD_GRID_ID).jqGrid('clearGridData', true);
|
|
948
|
+ $(STINFO04010_UPLOAD_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
|
|
949
|
+ $(STINFO04010_UPLOAD_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
|
|
950
|
+ $(STINFO04010_UPLOAD_GRID_EMPTY).show();
|
|
951
|
+ },
|
|
952
|
+ unload : function() {
|
|
953
|
+ $.jgrid.gridUnload(STINFO04010_UPLOAD_GRID_ID);
|
|
954
|
+ }
|
|
955
|
+ }
|
|
956
|
+}
|
|
957
|
+
|
529
|
958
|
/*신규화면 Object*/
|
530
|
959
|
let createObj = {
|
531
|
960
|
init: function () {
|
|
@@ -537,7 +966,7 @@ let createObj = {
|
537
|
966
|
itemClassLevel.make(1, 'ADD');
|
538
|
967
|
},
|
539
|
968
|
load: function() {
|
540
|
|
- console.log("====================");
|
|
969
|
+ // console.log("====================");
|
541
|
970
|
var param = {keyType:"It"};
|
542
|
971
|
fn_ajax_call(API_GET_KEY, param, this.callback, 'GET');
|
543
|
972
|
},
|
|
@@ -565,18 +994,61 @@ let createObj = {
|
565
|
994
|
listObj.grid.search();
|
566
|
995
|
},
|
567
|
996
|
save: function() {
|
568
|
|
- const formId = '#ITP_FORM_STINFO04010_DETAIL';
|
569
|
|
- itp_fn_form_clear_validate(null, formId);
|
570
|
|
-
|
571
|
|
- if (itp_fn_form_event.isValid(formId)) {
|
572
|
|
- let param = $(formId).serializeObject();
|
573
|
|
- console.log(JSON.stringify(param));
|
574
|
|
- var searhFn = function() {
|
575
|
|
- ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
|
576
|
|
- listObj.grid.search();
|
577
|
|
- };
|
578
|
|
- fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
|
579
|
|
- }
|
|
997
|
+ if(SCREEN_MODE == 'UPLOAD') { // 엑셀 일괄저장
|
|
998
|
+ // 그리드 체크
|
|
999
|
+ var reccount = $(STINFO04010_UPLOAD_GRID_ID).getGridParam("reccount");
|
|
1000
|
+ if(reccount < 1) {
|
|
1001
|
+ return;
|
|
1002
|
+ }
|
|
1003
|
+ let check = true;
|
|
1004
|
+ const rowData = $(STINFO04010_UPLOAD_GRID_ID).getRowData();
|
|
1005
|
+ $.each(rowData, function(key, value) {
|
|
1006
|
+ if(check) {
|
|
1007
|
+ if(value.normalYn == 'N') {
|
|
1008
|
+ check = false;
|
|
1009
|
+ }
|
|
1010
|
+ }
|
|
1011
|
+ });
|
|
1012
|
+ if(!check) {
|
|
1013
|
+ itp_fn_modal_alert_ajax('비정상 데이터가 포함되어 있습니다.');
|
|
1014
|
+ return;
|
|
1015
|
+ }
|
|
1016
|
+
|
|
1017
|
+ var modalFn = {
|
|
1018
|
+ callBack: () => {
|
|
1019
|
+ const formId = '#ITP_FORM_STINFO04010_UPLOAD';
|
|
1020
|
+
|
|
1021
|
+ let gridInsertData = [];
|
|
1022
|
+ $.each(rowData, function(key, value) {
|
|
1023
|
+ gridInsertData.push(value);
|
|
1024
|
+ });
|
|
1025
|
+
|
|
1026
|
+ let param = $(formId).serializeObject();
|
|
1027
|
+ param.list = gridInsertData;
|
|
1028
|
+
|
|
1029
|
+ var searhFn = function() {
|
|
1030
|
+ ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
|
|
1031
|
+ listObj.grid.search();
|
|
1032
|
+ };
|
|
1033
|
+ fn_ajax_call(API_DETAIL_SAVE_LIST, JSON.stringify(param), searhFn, 'POST');
|
|
1034
|
+ }
|
|
1035
|
+ };
|
|
1036
|
+ itp_fn_modal_confirm('저장 하시겠습니까?', modalFn);
|
|
1037
|
+
|
|
1038
|
+ } else {
|
|
1039
|
+ const formId = '#ITP_FORM_STINFO04010_DETAIL';
|
|
1040
|
+ itp_fn_form_clear_validate(null, formId);
|
|
1041
|
+
|
|
1042
|
+ if (itp_fn_form_event.isValid(formId)) {
|
|
1043
|
+ let param = $(formId).serializeObject();
|
|
1044
|
+ // console.log(JSON.stringify(param));
|
|
1045
|
+ var searhFn = function() {
|
|
1046
|
+ ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
|
|
1047
|
+ listObj.grid.search();
|
|
1048
|
+ };
|
|
1049
|
+ fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
|
|
1050
|
+ }
|
|
1051
|
+ }
|
580
|
1052
|
}
|
581
|
1053
|
}
|
582
|
1054
|
};
|