Browse Source

구매발주현황 처리함

dwkim 2 years ago
parent
commit
4407fad7ae

+ 25 - 16
src/main/webapp/app/pomng/POMNG03010.html

@@ -134,7 +134,7 @@
134 134
 											<div class="col-xs-4 itp_ip">
135 135
 												<div class="col-xs-5 itp_in itp_noMar">
136 136
 													<div class="input-daterange input-group date">
137
-														<input type="text" id="ITP_FORM_POMNG03010_DETAIL_DLV_REQ_DT" class="form-control itp_input" name="dlvReqDt" value="">
137
+														<input type="text" id="ITP_FORM_POMNG03010_DETAIL_DLV_REQ_DT" data-check-required="empty" class="form-control itp_input" name="dlvReqDt" value="">
138 138
 													</div>
139 139
 												</div>
140 140
 											</div>
@@ -144,8 +144,8 @@
144 144
 													<input type="text" id="ITP_FORM_POMNG03010_DETAIL_SHMT_WHS_NM" class="form-control itp_input" name="shmtWhsNm" />
145 145
 												</div>
146 146
 												<div class="col-xs-4 itp_in" style="padding-left: 3px;">
147
-													<button type="button" id="ITP_BTN_POMNG03010_SEARCH_SHMT_WHS_NM" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
148
-													<button type="button" id="ITP_BTN_POMNG03010_DELETE_SHMT_WHS_NM" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
147
+													<button type="button" id="ITP_BTN_POMNG03010_SEARCH_SHMT_WHS_NM" class="btn btn-success btn-sm SHOW" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
148
+													<button type="button" id="ITP_BTN_POMNG03010_DELETE_SHMT_WHS_NM" class="btn btn-primary btn-sm SHOW" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
149 149
 								                </div>
150 150
 											</div>
151 151
 										</div>
@@ -171,6 +171,15 @@
171 171
 						<div class="col-xs-12">
172 172
 							<form id="ITP_FORM_POMNG03010_NDETAIL" class="form-horizontal">
173 173
 								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_VIEW_CD" name="viewCd" value="C">
174
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_JOB_CD" name="jobCd" value="P">
175
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_BRAND_ID" name="brandId" value="">
176
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID" name="spplyId" value="">
177
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_WHS_ID" name="whsId" value="">
178
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_LOCATION" name="location" value="">
179
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_SHMT_WHS_ID" name="shmtWhsId" value="">
180
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_SHMT_LOCATION" name="shmtLocation" value="">
181
+								<input type="hidden" id="ITP_FORM_POMNG03010_NDETAIL_PODR_MGR_ID" name="podrMgrId" value="">
182
+								<input type="text" id="ITP_FORM_POMNG03010_NDETAIL_DLV_DVSN" name="dlvDvsn" value="">
174 183
 					
175 184
 								<section class="itp_form_sec">
176 185
 									<h4 class="itp_form_tit">구매발주상세-신규발주생성</h4>
@@ -179,35 +188,35 @@
179 188
 											<label class="col-xs-2 itp_lb">브랜드 *</label>
180 189
 											<div class="col-xs-4 itp_ip fnBrandNm"></div>
181 190
 											<label class="col-xs-2 itp_lb">발주번호</label>
182
-											<div class="col-xs-4 itp_ip fnPchReqUnqNo"></div>
191
+											<div class="col-xs-4 itp_ip fnPchOdrUnqNo"></div>
183 192
 										</div>
184 193
 									</div>
185 194
 									<div class="itp_form_in">
186 195
 										<div class="form-group">
187
-											<label class="col-xs-2 itp_lb">공급업체명</label>
196
+											<label class="col-xs-2 itp_lb">공급업체명*</label>
188 197
 											<div class="col-xs-4 itp_ip">
189 198
 												<div class="col-xs-5 itp_in">
190
-													<input type="text" id="ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM" class="form-control itp_input" name="spplyNm" />
199
+													<input type="text" id="ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM" data-check-required="empty" class="form-control itp_input" name="spplyNm" />
191 200
 												</div>
192 201
 												<div class="col-xs-4 itp_in" style="padding-left: 3px;">
193
-													<button type="button" id="ITP_BTN_POMNG03010_SEARCH_SPPLY_NM" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
194
-													<button type="button" id="ITP_BTN_POMNG03010_DELETE_SPPLY_NM" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
202
+													<button type="button" id="ITP_BTN_POMNG03010_NDETAIL_SEARCH_SPPLY_NM" class="btn btn-success btn-sm SHOW" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
203
+													<button type="button" id="ITP_BTN_POMNG03010_NDETAIL_DELETE_SPPLY_NM" class="btn btn-primary btn-sm SHOW" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
195 204
 								                </div>
196 205
 											</div>
197 206
 											<label class="col-xs-2 itp_lb">발주일자</label>
198
-											<div class="col-xs-4 itp_ip fnPoorDt"></div>
207
+											<div class="col-xs-4 itp_ip fnPodrDt"></div>
199 208
 										</div>
200 209
 									</div>
201 210
 									<div class="itp_form_in">	
202 211
 										<div class="form-group">
203
-											<label class="col-xs-2 itp_lb">납품장소</label>
212
+											<label class="col-xs-2 itp_lb">납품장소 *</label>
204 213
 											<div class="col-xs-4 itp_ip">
205 214
 												<div class="col-xs-5 itp_in">
206
-													<input type="text" id="ITP_FORM_POMNG03010_NDETAIL_WHS_NM" class="form-control itp_input" name="whsNm"  />
215
+													<input type="text" id="ITP_FORM_POMNG03010_NDETAIL_WHS_NM" data-check-required="empty" class="form-control itp_input" name="whsNm"  />
207 216
 												</div>
208 217
 												<div class="col-xs-4 itp_in" style="padding-left: 3px;">
209
-													<button type="button" id="ITP_BTN_POMNG03010_SEARCH_WHS_NM" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
210
-													<button type="button" id="ITP_BTN_POMNG03010_DELETE_WHS_NM" class="btn btn-primary btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
218
+													<button type="button" id="ITP_BTN_POMNG03010_SEARCH_WHS_NM" class="btn btn-success btn-sm SHOW" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
219
+													<button type="button" id="ITP_BTN_POMNG03010_DELETE_WHS_NM" class="btn btn-primary btn-sm SHOW" style="display: inline-block;"><i class="glyphicon glyphicon-erase"></i></button>
211 220
 								                </div>
212 221
 											</div>
213 222
 											<label class="col-xs-2 itp_lb">발주 총 금액</label>
@@ -219,18 +228,18 @@
219 228
 											<label class="col-xs-2 itp_lb">발주담당자</label>
220 229
 											<div class="col-xs-4 itp_ip fnPodrMgrNm"></div>
221 230
 											<label class="col-xs-2 itp_lb">배송구분</label>
222
-											<div class="col-xs-4 itp_ip fnDlvDvsn"></div>
231
+											<div class="col-xs-4 itp_ip fnDlvDvsnNm"></div>
223 232
 										</div>
224 233
 									</div>
225 234
 									<div class="itp_form_in">	
226 235
 										<div class="form-group">
227 236
 											<label class="col-xs-2 itp_lb">발주담당자연락처</label>
228 237
 											<div class="col-xs-4 itp_ip fnPodrMgrNo"></div>
229
-											<label class="col-xs-2 itp_lb">납품요청일</label>
238
+											<label class="col-xs-2 itp_lb">납품요청일*</label>
230 239
 											<div class="col-xs-4 itp_ip">
231 240
 												<div class="col-xs-5 itp_in itp_noMar">
232 241
 													<div class="input-daterange input-group date">
233
-														<input type="text" id="ITP_FORM_POMNG03010_DETAIL_DLV_REQ_DT" class="form-control itp_input" name="dlvReqDt" value="">
242
+														<input type="text" id="ITP_FORM_POMNG03010_NDETAIL_DLV_REQ_DT" data-check-required="empty" class="form-control itp_input" name="dlvReqDt" value="">
234 243
 													</div>
235 244
 												</div>
236 245
 											</div>

+ 2 - 1
src/main/webapp/js/app/locales/locale-ko.js

@@ -307,7 +307,8 @@ const ITP_MSG_LOCALE = (function() {
307 307
 				"reqSave": "구매요청 하시겠습니까?",
308 308
                 "lackReqAmt": "구매한도가 부족합니다.",
309 309
                 "diffWrite": "수정은 작성자만 가능합니다.",
310
-                "notWrite": "수정할 수 없는 상태입니다."
310
+                "notWrite": "수정할 수 없는 상태입니다.",
311
+				"delAllItem": "공급업체 변경 또는 삭제시  품목까지 삭제 처리되어집니다. 공급업체 삭제 하시겠습니까?"
311 312
 			},
312 313
 			"login": {
313 314
 				"help": "아이디와 비밀번호를 입력하세요.",

+ 233 - 46
src/main/webapp/js/app/pomng/ITP_POMNG03010.js

@@ -36,6 +36,7 @@ const POMNG03010_NDETAIL_GRID_EMPTY = '#ITP_POMNG03010_NDETAIL_jqGridEmpty';
36 36
 
37 37
 let ITP_FORM_POMNG03010_DETAIL_IS_WRITING = false;
38 38
 let POMNG03010_GRID_LAST_ROW_ID;
39
+let SCREEN_MODE ;
39 40
 
40 41
 /*API URL*/
41 42
 let API_DETAIL_GRID_LIST 		= '/api/pomng/po-target-grid-list';	// 목록
@@ -322,12 +323,10 @@ let pageObj = {
322 323
 		var _this = this;
323 324
 		// 검색 납품장소
324 325
 		$('#ITP_FORM_POMNG03010_SSEARCH_SWHS_NM').on('click', function() {
325
-			console.log("=================================");
326 326
 			_this.popup('SW');
327 327
 		});
328 328
 		// 검색 납품장소 텍스트 삭제 버튼 클릭
329 329
 		$('#ITP_FORM_POMNG03010_SDELETE_SWHS_NM').on('click', function() {
330
-			console.log("=================================");
331 330
 			$('#ITP_FORM_POMNG03010_SEARCH_SWHS_NM').val('');
332 331
 			$('#ITP_FORM_POMNG03010_SEARCH_SWHS_ID').val('');
333 332
 			
@@ -335,12 +334,10 @@ let pageObj = {
335 334
 		
336 335
 		// 검색 공급사 
337 336
 		$('#ITP_FORM_POMNG03010_SSEARCH_SSPPLY_NM').on('click', function() {
338
-			console.log("=================================");
339 337
 			_this.popup('SS');
340 338
 		});
341 339
 		// 검색 텍스트 삭제 버튼 클릭
342 340
 		$('#ITP_FORM_POMNG03010_SDELETE_SSPPLY_NM').on('click', function() {
343
-			console.log("=================================");
344 341
 			$('#ITP_FORM_POMNG03010_SEARCH_SSPPLY_NM').val('');
345 342
 			$('#ITP_FORM_POMNG03010_SEARCH_SSPPLY_ID').val('');
346 343
 			
@@ -349,18 +346,61 @@ let pageObj = {
349 346
 		
350 347
 		// 상세 출하창고
351 348
 		$('#ITP_BTN_POMNG03010_SEARCH_SHMT_WHS_NM').on('click', function() {
352
-			console.log("=================================");
353 349
 			_this.popup('SHW');
354 350
 		});
355 351
 		// 검색 납품장소 텍스트 삭제 버튼 클릭
356 352
 		$('#ITP_BTN_POMNG03010_DELETE_SHMT_WHS_NM').on('click', function() {
357
-			console.log("=================================");
358 353
 			$('#ITP_FORM_POMNG03010_DETAIL_SHMT_WHS_ID').val('');
359 354
 			$('#ITP_FORM_POMNG03010_DETAIL_SHMT_LOCATION').val('');
360 355
 			$('#ITP_FORM_POMNG03010_DETAIL_SHMT_WHS_NM').val('');
361 356
 			
362 357
 		});
363 358
 		
359
+		
360
+		// 검색 공급사 
361
+		$('#ITP_BTN_POMNG03010_NDETAIL_SEARCH_SPPLY_NM').on('click', function() {
362
+			_this.popup('NS');
363
+		});
364
+		// 검색 텍스트 삭제 버튼 클릭
365
+		$('#ITP_BTN_POMNG03010_NDETAIL_DELETE_SPPLY_NM').on('click', function() {
366
+			
367
+			var spplyId = $('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val();
368
+			
369
+			
370
+			var records = $(POMNG03010_NDETAIL_GRID_ID).getGridParam('reccount')
371
+			
372
+			if (spplyId != '' && records != 0 ) {
373
+				// 공급업체 삭제시 품목까지 삭제 처리되어집니다. 삭제 하시겠습니까?
374
+				var delSpply = {
375
+						callBack: function(args) {
376
+								$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM').val('');
377
+								$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val('');	
378
+								
379
+								// 품목그리드삭제 처리	
380
+								pageObj.grid.clearData('NPC');
381
+								$('#ITP_FORM_POMNG03010_NDETAIL .fnPodrAmt').text('');	
382
+							}
383
+					};
384
+					itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.delAllItem, delSpply, null);
385
+			} else {
386
+				$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM').val('');
387
+				$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val('')
388
+			}
389
+		});
390
+		
391
+		// 상세 출하창고
392
+		$('#ITP_BTN_POMNG03010_SEARCH_WHS_NM').on('click', function() {
393
+			_this.popup('NHW');
394
+		});
395
+		// 검색 납품장소 텍스트 삭제 버튼 클릭
396
+		$('#ITP_BTN_POMNG03010_DELETE_WHS_NM').on('click', function() {
397
+			$('#ITP_FORM_POMNG03010_NDETAIL_WHS_ID').val('');
398
+			$('#ITP_FORM_POMNG03010_NDETAIL_LOCATION').val('');
399
+			$('#ITP_FORM_POMNG03010_NDETAIL_WHS_NM').val('');
400
+			
401
+		});
402
+		
403
+		
364 404
 	},
365 405
 	popup: function (arg) {
366 406
 		var popFn ;
@@ -371,14 +411,18 @@ let pageObj = {
371 411
 			popFn = this.callback.searSpply;
372 412
 		}  else if (arg == "SHW") {
373 413
 			popFn = this.callback.searShmtWhs;
374
-		}
414
+		} else if (arg == "NS") {
415
+			popFn = this.callback.searNSpply;
416
+		} else if (arg == "NHW") {
417
+			popFn = this.callback.searNWhs;
418
+		} 
375 419
 		
376 420
 		const key = {brandId:fn_make_user_info.get('brandId'),storeId:fn_make_user_info.get('storeId')};
377
-		if (arg == "SW") {
421
+		if (arg == "SW" ) {
378 422
 			fn_call_popup('biz', 'BIZPOP_WHS_LOCATION', '#ITP_ASIDE', popFn, key, 'S');
379
-		} else if (arg == "SS") {
423
+		} else if (arg == "SS" || arg == "NS" ) {
380 424
 			fn_call_popup('biz', 'BIZPOP_STORE_SPPLY', '#ITP_ASIDE', popFn, key, 'S');
381
-		} else if (arg == "SHW") {
425
+		} else if (arg == "SHW" || arg == "NHW") {
382 426
 			const key1 = {brandId:fn_make_user_info.get('brandId')};
383 427
 			fn_call_popup('biz', 'BIZPOP_WHS_LOCATION', '#ITP_ASIDE', popFn, key1, 'S');
384 428
 		}
@@ -387,7 +431,6 @@ let pageObj = {
387 431
 	},
388 432
 	callback: {
389 433
 		searWhs: function(rowDataPop) {
390
-			console.log(rowDataPop);
391 434
 			if(rowDataPop) {
392 435
 				$('#ITP_FORM_POMNG03010_SEARCH_SWHS_NM').val(rowDataPop.whsNm);
393 436
 				$('#ITP_FORM_POMNG03010_SEARCH_SWHS_ID').val(rowDataPop.whsId);
@@ -395,15 +438,33 @@ let pageObj = {
395 438
 			
396 439
 		},
397 440
 		searSpply: function(rowDataPop) {
398
-			console.log(rowDataPop);
399 441
 			if(rowDataPop) {
400 442
 				$('#ITP_FORM_POMNG03010_SEARCH_SSPPLY_NM').val(rowDataPop.spplyNm);
401 443
 				$('#ITP_FORM_POMNG03010_SEARCH_SSPPLY_ID').val(rowDataPop.spplyId);
402 444
 			}
403 445
 			
446
+		},
447
+		searNSpply: function(rowDataPop) {
448
+			if(rowDataPop) {
449
+				var pspplyId = $('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val();
450
+				if (pspplyId == "") {
451
+					$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM').val(rowDataPop.spplyNm);
452
+					$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val(rowDataPop.spplyId);
453
+				} else {
454
+					//$('#Table_ID').getGridParam('reccount');
455
+					var records = $(POMNG03010_NDETAIL_GRID_ID).getGridParam('reccount')
456
+					if (records != 0) {
457
+						if (pspplyId != rowDataPop.spplyId ) {
458
+							alert( "추가한 품목의 공급사와 서로 틀립니다 !");
459
+							return ;
460
+						}
461
+					}
462
+					
463
+				}
464
+			}
465
+			
404 466
 		},
405 467
 		searShmtWhs: function(rowDataPop) {
406
-			console.log(rowDataPop);
407 468
 			if(rowDataPop) {
408 469
 				$('#ITP_FORM_POMNG03010_DETAIL_SHMT_WHS_NM').val(rowDataPop.whsNm + " - " + rowDataPop.locationNm);
409 470
 				$('#ITP_FORM_POMNG03010_DETAIL_SHMT_WHS_ID').val(rowDataPop.whsId);
@@ -411,6 +472,7 @@ let pageObj = {
411 472
 				
412 473
 				// 본사배송일경우 해당 창고의 재고를 가져와 출고가능수량에 기입한다.
413 474
 				// 만약 본사 배송일 경우 진행 처리함
475
+				/*
414 476
 				var param = {brandId: fn_make_user_info.get('brandId'), whsId:rowDataPop.whsId , location:rowDataPop.location };
415 477
 				let gridItemData = [];
416 478
 				const rowData = $(POMNG03010_DETAIL_GRID_ID).getRowData();
@@ -424,12 +486,15 @@ let pageObj = {
424 486
 				param.gridItemData = gridItemData;
425 487
 					
426 488
 				modifyObj.whsPassQty(param);
489
+				*/
490
+			}
491
+		},
492
+		searNWhs: function(rowDataPop) {
493
+			if(rowDataPop) {
494
+				$('#ITP_FORM_POMNG03010_NDETAIL_WHS_NM').val(rowDataPop.whsNm + " - " + rowDataPop.locationNm);
495
+				$('#ITP_FORM_POMNG03010_NDETAIL_WHS_ID').val(rowDataPop.whsId);
496
+				$('#ITP_FORM_POMNG03010_NDETAIL_LOCATION').val(rowDataPop.location);
427 497
 			}
428
-			
429
-			
430
-			
431
-			
432
-			
433 498
 		}
434 499
 	},
435 500
 	event: {
@@ -448,8 +513,8 @@ let pageObj = {
448 513
 						case 'ITP_BTN_POMNG03010_REJECT'				: listObj.button.reject(); 		break;	// 반려
449 514
 						case 'ITP_BTN_POMNG03010_PO'					: modifyObj.button.save(); 			break;	// 발주
450 515
 						case 'ITP_BTN_POMNG03010_CANCELLIST'			: modifyObj.button.cancel(); 		break;	// 취소/목록 버튼
451
-						case 'ITP_BTN_POMNG03010_DETAIL_ADDROW'			: pageObj.grid.button.addRow(); 	break;	// 품목추가
452
-						case 'ITP_BTN_POMNG03010_DETAIL_DELROW'			: pageObj.grid.button.delRow(); 	break;	// 품목삭제
516
+						case 'ITP_BTN_POMNG03010_NDETAIL_ADDROW'			: pageObj.grid.button.addRow(); 	break;	// 품목추가
517
+						case 'ITP_BTN_POMNG03010_NDETAIL_DELROW'			: pageObj.grid.button.delRow(); 	break;	// 품목삭제
453 518
 					}
454 519
 				});
455 520
 			});
@@ -468,7 +533,13 @@ let pageObj = {
468 533
 			fn_show_btn_auth_array(['#ITP_BTN_POMNG03010_SRH', '#ITP_BTN_POMNG03010_POCREATE','#ITP_BTN_POMNG03010_NEWPOCREATE', '#ITP_BTN_POMNG03010_REJECT']);
469 534
 			$('#ITP_FORM_POMNG03010_DETAIL_SBRAND_ID').val(fn_make_user_info.get('brandId'));
470 535
 			$('#ITP_FORM_POMNG03010_DETAIL_SSTORE_ID').val(fn_make_user_info.get('storeId'));
536
+			SCREEN_MODE = 'LIST' ;
471 537
 		} else if(mode == 'NPC') { // 신규발주등록
538
+			$('#ITP_AJAX_POMNG03010_NDETAIL_CONTAINER').show();
539
+			fn_show_btn_auth_array(['#ITP_BTN_POMNG03010_PO', '#ITP_BTN_POMNG03010_CANCELLIST', '#ITP_BTN_POMNG03010_NDETAIL_ADDROW','#ITP_BTN_POMNG03010_NDETAIL_DELROW']);
540
+			$('#ITP_FORM_POMNG03010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
541
+			SCREEN_MODE = 'NPC' ;
542
+			pageObj.grid.init('NPC');
472 543
 		/*
473 544
 			$('#ITP_AJAX_POMNG03010_DETAIL_CONTAINER').show();
474 545
 			fn_show_btn_auth_array(['#ITP_BTN_POMNG03010_PO', '#ITP_BTN_POMNG03010_CANCELLIST', '#ITP_BTN_POMNG03010_NDETAIL_ADDROW', '#ITP_BTN_POMNG03010_NDETAIL_DELROW']);
@@ -491,12 +562,14 @@ let pageObj = {
491 562
 			fn_show_btn_auth_array(['#ITP_BTN_POMNG03010_PO', '#ITP_BTN_POMNG03010_CANCELLIST']);
492 563
 			$('#ITP_FORM_POMNG03010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
493 564
 			$('#ITP_FORM_POMNG03010_DETAIL_STORE_ID').val(fn_make_user_info.get('storeId'));
565
+			SCREEN_MODE = 'POC' ;
566
+			
494 567
 			
495 568
 		}
496 569
 	},
497 570
 	grid: {
498 571
 		init: function(mode, gridRows) {
499
-			this.gridId = (mode === 'NPC') ? POMNG03010_VIEW_NDETAIL_ID : POMNG03010_DETAIL_GRID_ID;
572
+			this.gridId = (mode === 'NPC') ? POMNG03010_NDETAIL_GRID_ID : POMNG03010_DETAIL_GRID_ID;
500 573
 			this.gridList = (mode === 'NPC') ? POMNG03010_NDETAIL_GRID_LIST : POMNG03010_DETAIL_GRID_LIST;
501 574
 			this.gridEmpty = (mode === 'NPC') ? POMNG03010_NDETAIL_GRID_EMPTY : POMNG03010_DETAIL_GRID_EMPTY;
502 575
 			this.gridRows = gridRows;
@@ -505,28 +578,112 @@ let pageObj = {
505 578
 			
506 579
 		},
507 580
 		gridId: '',
508
-		mode: 'DETAIL',
509
-		button: {},
581
+		button: {
582
+			addRow: function() {
583
+				// 팝업
584
+				var popFn = function(rowDataPop) {
585
+					// 기존등록 데이터
586
+					var exists = '';
587
+					const rowData = $(POMNG03010_NDETAIL_GRID_ID).getRowData();
588
+					$.each(rowData, function(key, value) {
589
+						if (value.viewCd != "D") {
590
+							exists = exists + value.brandUnitUnqNo + ';';	
591
+						}
592
+					});
593
+					
594
+					var diffchk = "N";
595
+					var spplyId = $('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val();
596
+					var spplyNm = $('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM').val();
597
+					
598
+					// 넘어오는 데이타가 서로 상이한 공급업체인지 파악
599
+					var chkSpplyId = "";
600
+					var chkSpplyNm = "";
601
+					$.each(rowDataPop, function(key, value) {
602
+						
603
+						if (chkSpplyId != "" ) {
604
+							if (value.spplyId != chkSpplyId ) {
605
+								alert("서로다른 공급사 품목을 발주 진행 할 수 없습니다.");
606
+								diffchk = "Y" ;
607
+								return false ;
608
+							} 
609
+						} else {
610
+							chkSpplyId = value.spplyId;
611
+							chkSpplyNm = value.spplyNm;
612
+						}
613
+					});
614
+					
615
+					if (diffchk == "Y") return;
616
+					
617
+					if (spplyId == "" ) {
618
+						$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_ID').val(chkSpplyId);
619
+						$('#ITP_FORM_POMNG03010_NDETAIL_SPPLY_NM').val(chkSpplyNm);
620
+					} else {
621
+						if (spplyId != chkSpplyId ) {
622
+							alert("납품 공급사와 품목 공급사 정보가 서로 다릅니다.");
623
+							diffchk = "Y" ;
624
+						}
625
+					}
626
+					
627
+					if (diffchk == "Y") return;
628
+					
629
+					/*
630
+					$.each(rowDataPop, function(key, value) {
631
+						// 공급업체가 상이사면 오류 알럿 출력
632
+						$.each(rowData, function(pkey, pvalue) {
633
+							console.log(rowData);
634
+							if (value.spplyId != pvalue.spplyId ) {
635
+								alert("2 서로다른 공급사 품목을 발주 진행 할 수 없습니다.")
636
+								diffchk = "Y";
637
+								return false;
638
+							}
639
+						});
640
+						if (diffchk == "Y") {
641
+							return false;
642
+						}
643
+					});
644
+					
645
+					if (diffchk == "Y") return;
646
+					*/
647
+					
648
+					$.each(rowDataPop, function(key, value) {
649
+						// 공급업체가 상이사면 오류 알럿 출력
650
+						if (exists.indexOf(value.brandUnitUnqNo) < 0 && value.podrPssblDvsn == 'PO01') {
651
+							value['viewCd'] = "C";
652
+							
653
+							$(POMNG03010_NDETAIL_GRID_ID).jqGrid('addRowData', value.brandUnitUnqNo, value, 'last');
654
+						}
655
+					});
656
+					$(POMNG03010_NDETAIL_GRID_EMPTY).hide();
657
+					
658
+				};
659
+				const key = {brandId:fn_make_user_info.get('brandId')};
660
+				fn_call_popup('biz', 'BIZPOP_ITEM', '#ITP_ASIDE', popFn, key, 'S');  // ==>dwkim 추후 작업 진행  파라메타 설명필요
661
+			},
662
+			delRow: function() {
663
+				itp_fn_grid_del_row(POMNG03010_NDETAIL_GRID_ID);
664
+				pageObj.grid.recal();
665
+			}
666
+			
667
+		},
510 668
 		gridList: '',
511 669
 		gridEmpty: '',
512 670
 		gridRows: '',
513 671
 		load: function(mode, gridRows) {
672
+			
514 673
 			var _this = this;
515 674
 			var option = {
516 675
 				gridId: _this.gridId,
517 676
 				colModel: gridColModel.detail,
518 677
 				data: gridRows,
519 678
 				cellEdit: true,
520
-				multiselect: (mode !== 'NPC'),
679
+				multiselect: (mode === 'NPC'),
521 680
 				loadComplete: function(data) {
522
-					console.log(data);
681
+					$(mode === 'NPC' ? POMNG03010_NDETAIL_GRID_LIST : POMNG03010_DETAIL_GRID_LIST).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
523 682
 					
524
-					$(_this.mode === 'NPC' ? POMNG03010_NDETAIL_GRID_LIST : POMNG03010_DETAIL_GRID_LIST).find('.ui-jqgrid .ui-jqgrid-bdiv').css('overflow-x', 'hidden');
525
-					data.records === 0 ? _this.clearData(_this.mode) : $(_this.mode === 'VIEW' ? POMNG03010_NDETAIL_GRID_EMPTY : POMNG03010_DETAIL_GRID_EMPTY).hide();
683
+					data.records === 0 ? _this.clearData(mode) : $(_this.mode === 'NPC' ? _this.clearData(mode) : POMNG03010_DETAIL_GRID_EMPTY).hide();
526 684
 					
527 685
 				},
528 686
 				onCellSelect: function(rowid, cellIdx, cellValue) {
529
-					console.log('mode ===> ' + mode);
530 687
 					//POMNG03010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowid, cellIdx, POMNG03010_GRID_LAST_ROW_ID, _this.gridId, ['actionId']);
531 688
 				},
532 689
 				afterSaveCell: function(rowid,name,val,iRow,iCol) {
@@ -535,19 +692,16 @@ let pageObj = {
535 692
 					jQuery(_this.gridId).jqGrid('setRowData',rowid,{podrAmt: parseInt(val)*parseInt(unitAmt)});	
536 693
 					
537 694
 					// 그리드 포문으로 금액 재계산후 구매요청금액에 넣어줌
538
-					pageObj.grid.recal(_this.mode,_this.gridId);
695
+					pageObj.grid.recal( mode,_this.gridId);
539 696
 				}
540 697
 			};
541 698
 			itp_fn_grid_make_local(option);
542 699
 		},
543 700
 		recal: function(mode, gridId) {
544 701
 			//PCH_REQ_AMT
545
-			console.log(gridId);
546 702
 			const rowData = $(gridId).getRowData();
547 703
 			var podrAmt = 0 ;
548
-			console.log("####################################");
549 704
 			$.each(rowData, function(key, value) {
550
-				console.log(rowData);
551 705
 				if (value.podrAmt != null && value.podrAmt != "" && value.viewCd != "D") {
552 706
 					podrAmt = podrAmt + parseInt(value.podrAmt) ;
553 707
 				}
@@ -594,7 +748,7 @@ let listObj = {
594 748
 		},
595 749
 		newpocreate: function() {
596 750
 			pageObj.switchScreen('NPC');
597
-			itp_fn_form_clear_validate(null, '#ITP_FORM_POMNG03010_DETAIL');
751
+			itp_fn_form_clear_validate(null, '#ITP_FORM_POMNG03010_NDETAIL');
598 752
 			createObj.init();
599 753
 		},
600 754
 		reject: function() {
@@ -619,9 +773,7 @@ let listObj = {
619 773
 			let param = {};
620 774
 			param.brandId=fn_make_user_info.get('brandId');
621 775
 			param.gridUpdateData = gridUpdateData;
622
-			console.log(JSON.stringify(param));
623 776
 			var chkFn = function(result) {
624
-				console.log(result);
625 777
 				if (result.code == "Y") {
626 778
 					//발수 생성화면으로 전화 
627 779
 					listObj.button.pocreate(param);
@@ -683,7 +835,6 @@ let listObj = {
683 835
 				url: DOMAIN + API_DETAIL_GRID_LIST,
684 836
 				pager: POMNG03010_GRID_PAGER,
685 837
 				loadComplete: function(data) {
686
-					console.log(data);
687 838
 					itp_fn_grid_load_complete(data, POMNG03010_GRID_ID, true, 'number', 'POMNG03010', listObj.itp_POMNG03010_search, listObj.empty, true, data.gridRecords, true);
688 839
 					var ids = $(POMNG03010_GRID_ID).getDataIDs();
689 840
 					$.each(ids, function(idx, rowId) {
@@ -729,17 +880,25 @@ let modifyObj = {
729 880
 			listObj.grid.search();
730 881
 		},
731 882
 		save: function() {
732
-			const formId = '#ITP_FORM_POMNG03010_DETAIL';
883
+			
884
+			const formId = (SCREEN_MODE == 'NPC' ? '#ITP_FORM_POMNG03010_NDETAIL' : '#ITP_FORM_POMNG03010_DETAIL');
733 885
 			itp_fn_form_clear_validate(null, formId);
734 886
 
735
-			// console.log($(formId).serializeObject());
736 887
 			if (itp_fn_form_event.isValid(formId)) {
888
+
737 889
 				var modalFn = {
738 890
 					callBack: () => {
739
-						itp_fn_form_event.removeChar('#ITP_FORM_OPER03010_DETAIL');
891
+						
892
+						if (SCREEN_MODE == 'NPC') {
893
+							itp_fn_form_event.removeChar('#ITP_FORM_OPER03010_NDETAIL');
894
+						} else {
895
+							itp_fn_form_event.removeChar('#ITP_FORM_OPER03010_DETAIL');
896
+						}
897
+						
740 898
 						
741 899
 						let gridInsertData = [];
742
-						const rowData = $(POMNG03010_DETAIL_GRID_ID).getRowData();
900
+						const rowData = (SCREEN_MODE == 'NPC' ? $(POMNG03010_NDETAIL_GRID_ID).getRowData() : $(POMNG03010_DETAIL_GRID_ID).getRowData());
901
+						 
743 902
 						
744 903
 						$.each(rowData, function(key, value) {
745 904
 							gridInsertData.push(value);
@@ -789,12 +948,13 @@ let modifyObj = {
789 948
 		$('#ITP_FORM_POMNG03010_DETAIL #ITP_FORM_POMNG03010_DETAIL_SHMT_LOCATION').val(result.shmtLocation);
790 949
 		
791 950
 		// 품목  리스트 조회
792
-		pageObj.grid.init('DETAIL', result.itemList);
951
+		pageObj.grid.init('POC', result.itemList);
793 952
 		// modifyObj.grid.load(result.spplyMgrList);
794 953
 	},
795 954
 	whsPassQty: function(param) {
796 955
 		console.log(JSON.stringify(param));
797
-		fn_ajax_call(API_DETAIL_PASSQTY, JSON.stringify(param), this.passQtyCallback, 'POST');
956
+		// 추후작업 진행
957
+		//fn_ajax_call(API_DETAIL_PASSQTY, JSON.stringify(param), this.passQtyCallback, 'POST');
798 958
 	},
799 959
 	passQtyCallback: function (result) {
800 960
 		
@@ -815,8 +975,11 @@ let modifyObj = {
815 975
 /*신규화면 Object*/
816 976
 let createObj = {
817 977
 	init: function () {
818
-		$('#ITP_FORM_POMNG03010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
819
-		$('#ITP_FORM_POMNG03010_DETAIL_STORE_ID').val(fn_make_user_info.get('storeId'));
978
+		$('#ITP_FORM_POMNG03010_NDETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
979
+		itp_fn_form_clear_validate(null, '#ITP_FORM_POMNG03010_NDETAIL');
980
+		const key = {brandId:fn_make_user_info.get('brandId'), viewCd: 'R'};
981
+		var param = $.param(key);
982
+		createObj.load(param);
820 983
 		
821 984
 	},
822 985
 	button: {
@@ -828,13 +991,11 @@ let createObj = {
828 991
 			const formId = '#ITP_FORM_POMNG03010_DETAIL';
829 992
 			itp_fn_form_clear_validate(null, formId);
830 993
 
831
-			// console.log($(formId).serializeObject());
832 994
 			if (itp_fn_form_event.isValid(formId)) {
833 995
 				var modalFn = {
834 996
 					callBack: (args) => {
835 997
 						itp_fn_form_event.removeChar('#ITP_FORM_OPER03010_DETAIL');
836 998
 						let param = $(formId).serializeObject();
837
-						console.log(JSON.stringify(param));
838 999
 						var searhFn = function () {
839 1000
 							ITP_FORM_POMNG03010_DETAIL_IS_WRITING = false;
840 1001
 							listObj.grid.search();
@@ -845,5 +1006,31 @@ let createObj = {
845 1006
 				itp_fn_modal_confirm('저장 하시겠습니까?', modalFn);
846 1007
 			}
847 1008
 		}
1009
+	},
1010
+	load: function(param) {
1011
+		fn_ajax_call(API_DETAIL_NEW_INIT_INFO, param, this.callback, 'GET');
1012
+	},
1013
+	callback: function (result) {
1014
+		
1015
+		//pageObj.switchScreen('NPC');
1016
+		
1017
+		$('#ITP_FORM_POMNG03010_NDETAIL #ITP_FORM_POMNG03010_DETAIL_VIEW_CD').val('C');
1018
+		$('#ITP_FORM_POMNG03010_NDETAIL .fnBrandNm').text(result.brandNm);
1019
+		$('#ITP_FORM_POMNG03010_NDETAIL #ITP_FORM_POMNG03010_NDETAIL_BRAND_ID').val(result.brandId);
1020
+		$('#ITP_FORM_POMNG03010_NDETAIL .fnDlvDvsnNm').text(result.dlvDvsnNm);
1021
+		$('#ITP_FORM_POMNG03010_NDETAIL #ITP_FORM_POMNG03010_NDETAIL_DLV_DVSN').val(result.dlvDvsn);
1022
+		$('#ITP_FORM_POMNG03010_NDETAIL .fnPodrDt').text(result.podrDt);
1023
+		$('#ITP_FORM_POMNG03010_NDETAIL .podrMgrId').text(result.podrMgrId);
1024
+		$('#ITP_FORM_POMNG03010_NDETAIL .fnPodrMgrNm').text(result.podrMgrNm);
1025
+		$('#ITP_FORM_POMNG03010_NDETAIL .fnPodrMgrNo').text(result.podrMgrTelNo);
1026
+		
1027
+		var now = new Date();
1028
+		$('#ITP_TAB_POMNG03010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
1029
+		$('#ITP_FORM_POMNG03010_NDETAIL_DLV_REQ_DT').datepicker('setDate', new Date(now.setDate(now.getDate()+5)));
1030
+		
1031
+		// 품목  리스트 조회
1032
+		//pageObj.grid.init('DETAIL', result.itemList);
1033
+		
1034
+		
848 1035
 	}
849 1036
 };

+ 12 - 0
src/main/webapp/js/app/popup/biz/ITP_BIZPOP_ITEM.js

@@ -147,6 +147,18 @@ function itp_fn_BIZPOP_ITEM(parentPopFn, args, returnType) {
147 147
 				label: '출고가능수량', //
148 148
 				width: '10', fixed: false, align: 'center',
149 149
 				sortable: false, hidden: true
150
+			},   
151
+			{
152
+				index: 'SPPLY_ID', name: 'spplyId',
153
+				label: '공급업체', //
154
+				width: '10', fixed: false, align: 'center',
155
+				sortable: false, hidden: true
156
+			},   
157
+			{
158
+				index: 'SPPLY_NM', name: 'spplyNm',
159
+				label: '공급업체명', //
160
+				width: '10', fixed: false, align: 'left',
161
+				sortable: false, hidden: false
150 162
 			}
151 163
 		],
152 164
 		loadBeforeSend: function(jqXHR) {