Przeglądaj źródła

입금관리 완료

marseyes 2 lat temu
rodzic
commit
6097716c2d

+ 3 - 2
src/main/webapp/app/loanmng/LOANMNG02010.html

@@ -20,11 +20,11 @@
20 20
 							<div class="col-xs-12">
21 21
 								<form id="ITP_FORM_LOANMNG02010_SEARCH" class="form-horizontal">
22 22
 									<input type="hidden" id="ITP_FORM_LOANMNG02010_SEARCH_BRAND_ID" name="sbrandId" value="">
23
-									<input type="hidden" id="ITP_FORM_LOANMNG02010_SEARCH_STORE_ID" name="sstoreId" value="STR221000002">
23
+									<input type="hidden" id="ITP_FORM_LOANMNG02010_SEARCH_STORE_ID" name="sstoreId" value="">
24 24
 								
25 25
 									<div class="form-group">
26 26
 										<div class="col-xs-2 itp_ip itp_noMar">
27
-											<input type="text" id="ITP_FORM_LOANMNG02010_SEARCH_STORE_NM" class="form-control itp_input" placeholder="매장선택" readonly="readonly" value="매장가맹" />
27
+											<input type="text" id="ITP_FORM_LOANMNG02010_SEARCH_STORE_NM" class="form-control itp_input" placeholder="매장선택" readonly="readonly" value="" />
28 28
 										</div>
29 29
 										<div class="col-xs-1 itp_ip itp_noMar">
30 30
 											<button type="button" id="ITP_BTN_LOANMNG02010_SEARCH_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i></button>
@@ -144,6 +144,7 @@
144 144
 								<input type="hidden" id="ITP_FORM_LOANMNG02010_VIEW_DSPT_MGNT_NO" name="dsptMgntNo" value="">
145 145
 								<input type="hidden" id="ITP_FORM_LOANMNG02010_VIEW_BRAND_ID" name="brandId" value="">
146 146
 								<input type="hidden" id="ITP_FORM_LOANMNG02010_VIEW_STORE_ID" name="storeId" value="">								
147
+								<input type="hidden" id="ITP_FORM_LOANMNG02010_VIEW_DPST_ST_CD" name="dpstStCd" value="">								
147 148
 								
148 149
 								<section class="itp_form_sec">
149 150
 									<h4 class="itp_form_tit">입금정보</h4>

+ 32 - 0
src/main/webapp/app/popup/biz/BIZPOP_PO_REJECT_REASON.html

@@ -0,0 +1,32 @@
1
+<div id="ITP_BIZPOP_PO_REJECT_REASON" class="modal itp_modal">
2
+	<div class="modal-dialog">
3
+		<div class="modal-content">
4
+			<div class="modal-header">
5
+				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
6
+				<h5 class="modal-title">반려사유</h5>
7
+			</div>
8
+			<div class="modal-body">
9
+				<div class="itp_form itp_type1 fix">
10
+					<div class="col-xs-12">
11
+						<div class="form-horizontal">
12
+							<form id="ITP_FORM_PO_REJECT_REASON_POPUP">
13
+								<div class="form-group">
14
+									<label class="col-xs-2 itp_lb">반려사유</label>
15
+									<div class="col-xs-10 itp_ip">
16
+									<input type="text" id="ITP_FORM_PO_REJECT_REASON_POPUP_DSPT_RJCT_RSN" class="form-control itp_input" name="dsptRjctRsn" />
17
+									</div>									
18
+								</div>								
19
+							</form>
20
+						</div>
21
+					</div>
22
+				</div>
23
+			</div>
24
+			<div class="modal-footer">
25
+				<button type="button" id="ITP_BTN_PO_REJECT_REASON_CLOSE_POP" class="btn btn-danger btn-sm CLB">&nbsp;&nbsp;취소&nbsp;&nbsp;</button>
26
+				<button type="button" id="ITP_BTN_PO_REJECT_REASON_CONFIRM_POP" class="btn btn-primary btn-sm SAB" style="display: inline-block;">&nbsp;&nbsp;확인&nbsp;&nbsp;</button>
27
+			</div>
28
+		</div>
29
+	</div>
30
+
31
+	<div id="ITP_POPUP_JS"></div>
32
+</div>

+ 130 - 4
src/main/webapp/js/app/loanmng/ITP_LOANMNG02010.js

@@ -24,6 +24,10 @@ let DSPT_MNG_DETAIL_GRID_LIST = '/api/dspt/mng/detail-grid-list';
24 24
 let DSPT_MNG_INFO_DSPT = '/api/dspt/mng/info-dspt';
25 25
 let DSPT_MNG_REQUEST_DSPT = '/api/dspt/mng/request-dspt';
26 26
 let DSPT_MNG_REMOVE_DSPT = '/api/dspt/mng/remove-dspt';
27
+let DSPT_MNG_APPROVE_DSPT = '/api/dspt/mng/approve-dspt';
28
+let DSPT_MNG_REJECT_DSPT = '/api/dspt/mng/reject-dspt';
29
+
30
+let SCREEN_MODE = 'LIST';
27 31
 
28 32
 /*화면 Grid ColModel*/
29 33
 const gridColModel = {
@@ -83,6 +87,12 @@ const gridColModel = {
83 87
 			width: '8', fixed: false, align: 'center',
84 88
 			sortable: false, hidden: false
85 89
 		},
90
+		{
91
+			index: 'DPST_ST_CD', name: 'dpstStCd',
92
+			label: "입금상태", 
93
+			width: '0', fixed: false, align: 'center',
94
+			sortable: false, hidden: true
95
+		},
86 96
 		{
87 97
 			index: 'DPST_ST_NM', name: 'dpstStNm',
88 98
 			label: "입금상태", 
@@ -191,6 +201,8 @@ let pageObj = {
191 201
 						case 'ITP_BTN_LOANMNG02010_REQUEST'			: createObj.button.request(); 		break;	// 요청 버튼
192 202
 						case 'ITP_BTN_LOANMNG02010_SEARCH_SRH'		: createObj.button.popupStore();	break;	// 매장선택 팝업
193 203
 						case 'ITP_BTN_LOANMNG02010_SEARCH_MODIFY'	: createObj.button.eraseStore();	break;	// 매장선택 삭제
204
+						case 'ITP_BTN_LOANMNG02010_AGREE'			: listObj.button.agree();		break;	// 승인
205
+						case 'ITP_BTN_LOANMNG02010_REJECT'			: listObj.button.reject();		break;	// 반려
194 206
 					}
195 207
 				});
196 208
 			});
@@ -198,10 +210,10 @@ let pageObj = {
198 210
 			$('body').on('click', function(e) {
199 211
 
200 212
 			});
201
-
202 213
 		}
203 214
 	},
204
-	switchScreen: function(mode) {
215
+	switchScreen: function(mode) {		
216
+		SCREEN_MODE = mode;		
205 217
 		if(mode == 'LIST') { // 목록
206 218
 			$('#ITP_BTN_LOANMNG02010_MODIFY').hide();
207 219
 			$('#ITP_BTN_LOANMNG02010_CANCELLIST').hide();
@@ -269,7 +281,7 @@ let listObj = {
269 281
 	},
270 282
 	itp_LOANMNG02010_search: false,
271 283
 	button: {
272
-		search: function() {
284
+		search: function() {			
273 285
 			listObj.itp_LOANMNG02010_search = true;
274 286
 			let param = $('#ITP_FORM_LOANMNG02010_SEARCH').serializeObject();
275 287
 			param.gridSize = $.jgrid.defaults.rowNum;
@@ -279,12 +291,114 @@ let listObj = {
279 291
 		create: function() {
280 292
 			// 매장선택 체크
281 293
 			if($('#ITP_FORM_LOANMNG02010_SEARCH_STORE_ID').val() == '') {
282
-				alert('신규입금 처리를 위한 매장을 선택하세요.');
294
+				itp_fn_modal_alert_ajax('신규입금 처리를 위한 매장을 선택하세요.');
283 295
 				return;
284 296
 			}			
285 297
 			pageObj.switchScreen('ADD');			
286 298
 			itp_fn_form_clear_validate(null, '#ITP_FORM_LOANMNG02010_DETAIL');						
287 299
 			createObj.init();
300
+		}, 
301
+		agree: function() {
302
+			if(SCREEN_MODE == 'LIST') {
303
+				// 그리드에서 최소1개는 선택해야 함
304
+				const rowKey = $(LOANMNG02010_GRID_ID).getGridParam('selrow');
305
+			    if (!rowKey) {
306
+					itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.noData);
307
+			    	return;
308
+			    }
309
+				var selectedIds = $(LOANMNG02010_GRID_ID).getGridParam('selarrrow');
310
+				let dsptMgntNoList = [];
311
+				var check = true;
312
+				$.each(selectedIds, function(key, value) {				
313
+					var dsptMgntNo = $(LOANMNG02010_GRID_ID).jqGrid('getRowData', value).dsptMgntNo;				
314
+					var dpstStCd = $(LOANMNG02010_GRID_ID).jqGrid('getRowData', value).dpstStCd;
315
+									
316
+					if('DP01' != dpstStCd) { // 요청 체크
317
+						check = false;	
318
+					}							
319
+					dsptMgntNoList.push(dsptMgntNo);
320
+				});
321
+				if(!check) {
322
+					itp_fn_modal_alert_ajax('입금요청 건만 승인처리를 할 수 있습니다.');
323
+					return;
324
+				}			
325
+				// itp_fn_modal_confirm('승인 하시겠습니까?', function() {					
326
+				// }, null);
327
+				
328
+				let param = {};
329
+				param.dsptMgntNoList = dsptMgntNoList;
330
+				fn_ajax_call(DSPT_MNG_APPROVE_DSPT, JSON.stringify(param), function() {
331
+					listObj.button.search();
332
+				}, 'POST');	
333
+			} else if(SCREEN_MODE == 'VIEW') {
334
+				
335
+				// itp_fn_modal_confirm(ITP_MSG_LOCALE.message.form.procData, function() {											
336
+				// }, null);
337
+				
338
+				let dsptMgntNoList = [];
339
+				dsptMgntNoList.push($('#ITP_FORM_LOANMNG02010_VIEW_DSPT_MGNT_NO').val());
340
+				let param = {};
341
+				param.dsptMgntNoList = dsptMgntNoList;
342
+				fn_ajax_call(DSPT_MNG_APPROVE_DSPT, JSON.stringify(param), function() {					
343
+					pageObj.switchScreen('LIST');
344
+					listObj.button.search();					
345
+				}, 'POST');
346
+								
347
+			}
348
+		}, 
349
+		reject: function() {
350
+			if(SCREEN_MODE == 'LIST') {
351
+				// 그리드에서 최소1개는 선택해야 함
352
+				const rowKey = $(LOANMNG02010_GRID_ID).getGridParam('selrow');
353
+			    if (!rowKey) {
354
+					itp_fn_modal_alert_ajax(ITP_MSG_LOCALE.message.ajax.noData);
355
+			    	return;
356
+			    }
357
+				var selectedIds = $(LOANMNG02010_GRID_ID).getGridParam('selarrrow');
358
+				let dsptMgntNoList = [];
359
+				var check = true;
360
+				$.each(selectedIds, function(key, value) {				
361
+					var dsptMgntNo = $(LOANMNG02010_GRID_ID).jqGrid('getRowData', value).dsptMgntNo;				
362
+					var dpstStCd = $(LOANMNG02010_GRID_ID).jqGrid('getRowData', value).dpstStCd;
363
+									
364
+					if('DP01' != dpstStCd) { // 요청 체크
365
+						check = false;	
366
+					}							
367
+					dsptMgntNoList.push(dsptMgntNo);
368
+				});
369
+				if(!check) {
370
+					itp_fn_modal_alert_ajax('입금요청 건만 반려처리를 할 수 있습니다.');
371
+					return;
372
+				}		
373
+				
374
+				fn_call_popup('biz', 'BIZPOP_PO_REJECT_REASON', '#ITP_ASIDE', function(result) {
375
+					// API 호출
376
+					let param = {};
377
+					param.dsptMgntNoList = dsptMgntNoList;
378
+					param.dsptRjctRsn = result;
379
+					fn_ajax_call(DSPT_MNG_REJECT_DSPT, JSON.stringify(param), function() {
380
+						listObj.button.search();
381
+					}, 'POST');				
382
+				}, null, 'S');					
383
+			} else if(SCREEN_MODE == 'VIEW') {
384
+				
385
+				let dsptMgntNoList = [];
386
+				dsptMgntNoList.push($('#ITP_FORM_LOANMNG02010_VIEW_DSPT_MGNT_NO').val());
387
+				
388
+				fn_call_popup('biz', 'BIZPOP_PO_REJECT_REASON', '#ITP_ASIDE', function(result) {
389
+					// API 호출
390
+					let param = {};
391
+					param.dsptMgntNoList = dsptMgntNoList;
392
+					param.dsptRjctRsn = result;
393
+					fn_ajax_call(DSPT_MNG_REJECT_DSPT, JSON.stringify(param), function() {						 
394
+						// listObj.button.search();
395
+						pageObj.switchScreen('LIST');
396
+						listObj.grid.unload();
397
+						listObj.grid.load();
398
+						
399
+					}, 'POST');				
400
+				}, null, 'S');				
401
+			}
288 402
 		}
289 403
 	},
290 404
 	empty: {
@@ -402,6 +516,7 @@ let viewObj = {
402 516
 		$('#ITP_FORM_LOANMNG02010_VIEW_BRAND_ID').val(result.brandId);
403 517
 		$('#ITP_FORM_LOANMNG02010_VIEW_STORE_ID').val(result.storeId);
404 518
 		$('#ITP_FORM_LOANMNG02010_VIEW_DSPT_MGNT_NO').val(result.dsptMgntNo);
519
+		$('#ITP_FORM_LOANMNG02010_VIEW_DPST_ST_CD').val(result.dpstStCd);
405 520
 		
406 521
 		$('#ITP_FORM_LOANMNG02010_VIEW .fnBrandNm').text(result.brandNm);
407 522
 		$('#ITP_FORM_LOANMNG02010_VIEW .fnStoreNm').text(result.storeNm);
@@ -410,6 +525,17 @@ let viewObj = {
410 525
 		$('#ITP_FORM_LOANMNG02010_VIEW .fnDpstBnkNm').text(result.dpstBnkNm);
411 526
 		$('#ITP_FORM_LOANMNG02010_VIEW .fnRcvAcctNo').text(result.rcvAcctNo);
412 527
 		$('#ITP_FORM_LOANMNG02010_VIEW .fnDpstAmt').text(itp_fn_number_comma(result.dpstAmt));		
528
+		
529
+		// 입금정보 상태에 따라 버튼 처리
530
+		if(result.dpstStCd == 'DP01') {
531
+			$('#ITP_BTN_LOANMNG02010_AGREE').show();
532
+			$('#ITP_BTN_LOANMNG02010_REJECT').show();
533
+			$('#ITP_BTN_LOANMNG02010_DELETE').show();
534
+		} else {
535
+			$('#ITP_BTN_LOANMNG02010_AGREE').hide();
536
+			$('#ITP_BTN_LOANMNG02010_REJECT').hide();
537
+			$('#ITP_BTN_LOANMNG02010_DELETE').hide();
538
+		}
413 539
 	}
414 540
 };
415 541
 

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

@@ -266,6 +266,7 @@ const ITP_MSG_LOCALE = (function() {
266 266
 				"wrongpassword": "영문, 숫자, 특수문자의 조합으로 8~16자리를 사용해야 합니다.",
267 267
 				"duplicate": "{0} 중복체크를 해주세요.",
268 268
 				"deleteData": "삭제 하시겠습니까?",
269
+				"procData": "처리 하시겠습니까?",
269 270
 				"wrongPwd": "비밀번호가 일치하지 않습니다.",
270 271
 				"selectDt": "날짜를 선택하세요.",
271 272
 				"onlyImage": "jpg, jpeg 파일만 선택해 주세요.",

+ 52 - 0
src/main/webapp/js/app/popup/biz/ITP_BIZPOP_PO_REJECT_REASON.js

@@ -0,0 +1,52 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+
6
+	});
7
+});
8
+
9
+var popPageObj = {
10
+	init: function () {
11
+		this.button();
12
+		this.change();
13
+	},
14
+	parentPopFn: null,
15
+	args: null,
16
+	returnType: null,
17
+	button: function() {
18
+		$('#ITP_BTN_PO_REJECT_REASON_CLOSE_POP').on('click', function () {
19
+			$('#ITP_BIZPOP_PO_REJECT_REASON').modal('hide'); // 팝업닫기
20
+		});
21
+		$('#ITP_BTN_PO_REJECT_REASON_CONFIRM_POP').on('click', function () {
22
+			popPageObj.fnRjctRsnConfirm();
23
+		});
24
+	}, 
25
+	change: function() {
26
+	}, 	
27
+	fnRjctRsnConfirm: function() {
28
+		const formId = '#ITP_FORM_PO_REJECT_REASON_POPUP';
29
+		itp_fn_form_clear_validate(null, formId);
30
+		
31
+		var vali_dsptRjctRsn = itp_fn_form_validate(formId, formId + '_DSPT_RJCT_RSN', ['empty'], undefined);
32
+		
33
+		if (vali_dsptRjctRsn) {		
34
+			var dsptRjctRsn = $('#ITP_FORM_PO_REJECT_REASON_POPUP_DSPT_RJCT_RSN').val();	
35
+			popPageObj.parentPopFn(dsptRjctRsn);
36
+			$('#ITP_BIZPOP_PO_REJECT_REASON').modal('hide'); // 팝업닫기
37
+		}
38
+	} 
39
+};
40
+
41
+function itp_fn_BIZPOP_PO_REJECT_REASON(parentPopFn, args, returnType) {
42
+	$('#ITP_BIZPOP_PO_REJECT_REASON').one('shown.bs.modal', function(e) {
43
+		itp_fn_fire_window_resize();
44
+	}).one('hidden.bs.modal', function(e) {
45
+		$('#ITP_BIZPOP_PO_REJECT_REASON').remove();
46
+	}).modal('show');
47
+
48
+	popPageObj.parentPopFn = parentPopFn;
49
+	popPageObj.args = args;
50
+	popPageObj.returnType = returnType;
51
+	popPageObj.init();
52
+}