ERP-node/WebContent/WEB-INF/view/costMgmt/expenseListPopup.jsp

534 lines
16 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*"%>
<%@include file="/init.jsp"%>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String connector = person.getUserId();
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<!-- //JSTL 페이징 변수선언 -->
<c:set var="totalCount" value="${empty TOTAL_COUNT?0:TOTAL_COUNT}" />
<c:set var="maxPage" value="${empty MAX_PAGE_SIZE?1:MAX_PAGE_SIZE}" />
<c:set var="nPage" value="${empty param.page?1:param.page}" />
<c:set var="pageIndex" value="${(nPage-1)/10}" />
<c:set var="nextPage" value="${empty NEXT_PAGE?1:NEXT_PAGE}" />
<c:set var="prevPage" value="${empty PREV_PAGE?1:PREV_PAGE}" />
<c:set var="now" value="<%=new java.util.Date() %>" />
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
<c:set var="connector" value="<%=connector %>" />
<style>
.select2-selection__choice {
font-size: 11px;
background-color: #fff !important;
border: none !important;
margin-right: 0px !important;
}
.select2-selection__choice__remove {
display: contents !important;
}
.select2-container .select2-selection--multiple {
min-height: 20px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
margin-top: 3.5px !important;
}
.select2-selection__rendered {
height: 18px !important;
}
.select2-container .select2-selection--multiple .select2-selection__rendered {
overflow: auto !important;
}
</style>
<script type="text/javascript">
var grid;
$(document).ready(function(){
$('.select2').select2();
/* $('#Year_ex' ).select2();
$('#Year' ).select2();
$('#expSortCd' ).select2();
$('#expStatusCd' ).select2();
$('#expCompanyCd' ).select2();
$('#expAreaCd' ).select2();
$('#projectNo' ).select2();
$('#busUsersDeptId').select2();
$('#regUserId' ).select2();
$('#vehicelUsed' ).select2(); */
$("#btnSearch").click(function(){
var expense_Year = $("#Year_ex").val();
$("#page").val("1");
fn_search();
});
$("#btnApply").click(function(){
fn_apply("","regist");
});
$("#btnConfirm").click(function(){
var targetObj = _tabulGrid.getSelectedData();
if(1 == targetObj.length){
var ObjId = fnc_checkNull(targetObj[0].EXPENSE_MASTER_OBJID);
var status = fnc_checkNull(targetObj[0].STATUS);
var settleAmount = fnc_checkNull(targetObj[0].SETTLE_AMOUNT);
if(status == '결재완료'){
fn_expensePayment(ObjId,settleAmount);
}else{
alert("결재완료상태인 데이터만 지급완료 가능합니다.");
return false;
}
//var productGroup = fnc_checkNull(targetObj[0].PRODUCT_GROUP);
//var product = fnc_checkNull(targetObj[0].PRODUCT);
//var releaseObjId = fnc_checkNull(targetObj[0].RELEASE_OBJID);
}else if(0 == targetObj.length){
Swal.fire("선택된 내용이 없습니다.");
return false;
}else if(1 < targetObj.length){
Swal.fire("한번에 1개의 내용만 등록 가능합니다. ");
return false;
}
//fn_confirm();
});
$(".btnApprovalDetail").click(function(){
var approvalObjId = $(this).attr("data-APPROVAL_OBJID");
var routeObjId = $(this).attr("data-ROUTE_OBJID");
//Swal.fire("approvalObjId : "+approvalObjId+", routeObjId : "+routeObjId);
var params = "?approvalObjId="+approvalObjId;
params += "&routeObjId="+routeObjId;
//Swal.fire("params : "+params);
window.open("/approval/approvalDetail.do"+params,"approvalDetailPopup","width=650 height=400 menubar=no status=no");
});
fn_search();
});
var columns = [
{title:'EXPENSE_MASTER_OBJID',field:'EXPENSE_MASTER_OBJID' ,visible:false },
{
title : '신청번호',
field : 'EXPENSE_ID',
headerHozAlign : 'center',
hozAlign : 'center',
width : '100',
formatter : fnc_createGridAnchorTag,
cellClick : function(e, cell) {
fn_apply(cell.getData().EXPENSE_MASTER_OBJID);
}
},
{
title : '구분',
field : 'EXP_SORT_NAME',
headerHozAlign : 'center',
hozAlign : 'center',
width : '90'
},
{
title : '프로젝트번호',
field : 'PROJECT_NO',
headerHozAlign : 'center',
hozAlign : 'left',
width : '110'
},
{
title : '단계',
field : 'EXP_STATUS_NAME',
headerHozAlign : 'center',
hozAlign : 'left',
width : '50'
},
{
title : '출장목적',
field : 'BUS_CONTENT_NAME',
headerHozAlign : 'center',
hozAlign : 'left',
headerSort : false/* ,
width : '200' */
},
{
title : '업체명',
field : 'EXP_COMPANY_NAME',
headerHozAlign : 'center',
hozAlign : 'left',
headerSort : false,
width : '160'
},
{
title : '출장지',
field : 'EXP_AREA_NAME',
headerHozAlign : 'center',
hozAlign : 'center',
headerSort : false,
width : '90'
},
{
title : '출장기간',
field : 'BNS_START_DATE',
headerHozAlign : 'center',
hozAlign : 'center',
headerSort : false,
width : '80'
},
{
title : '출장기간',
field : 'BNS_END_DATE',
headerHozAlign : 'center',
hozAlign : 'center',
headerSort : false,
width : '80'
},
{
title : '정산금액',
field : 'SETTLE_AMOUNT',
headerHozAlign : 'center',
hozAlign : 'right',
headerSort : false,
width : '100',
formatter:"money",
formatterParams:{
thousand:",",
symbolAfter:"p",
precision:false,
}
},
{
title : '팀명',
field : 'BUS_USERS_DEPT_NAME',
headerHozAlign : 'center',
hozAlign : 'center',
headerSort : false,
width : '80'
},
{
title : '작성자',
field : 'REG_USER_NAME', //WRITER_NAME
headerHozAlign : 'center',
hozAlign : 'center',
width : '80'
},
{
title : '작성일',
field : 'REG_DATE',
headerHozAlign : 'center',
hozAlign : 'center',
width : '80'
},
{
title : '지급금액',
field : 'AMOUNT_PAYMENT',
headerHozAlign : 'center',
hozAlign : 'right',
headerSort : false,
width : '100',
formatter:"money",
formatterParams:{
thousand:",",
symbolAfter:"p",
precision:false,
}
},
{
title : '지급일',
field : 'PAYMENT_DATE',
headerHozAlign : 'center',
hozAlign : 'center',
width : '80'
},
{
title : '비고',
field : 'REMARK',
headerHozAlign : 'center',
hozAlign : 'left',
width : '170'
},
, {
title : '상태',
field : 'STATUS',
headerHozAlign : 'center',
hozAlign : 'center',
width : '80',
formatter : fnc_createGridAnchorTag,
cellClick:function(e, cell){
var targetStatus = fnc_checkNull(cell.getData().APPR_STATUS).toUpperCase();
var status = fnc_checkNull(cell.getData().STATUS).toUpperCase();
//alert(targetStatus);
if("결재중" === targetStatus || "결재완료" === targetStatus) {
fnc_approvalDetail(cell.getData().APPROVAL_OBJID, cell.getData().ROUTE_OBJID);
}
}
}
];
//var grid;
function fn_search(){
var selectedValues = $("#projectNo").val();
$('<input>').attr({
type: 'hidden',
name: 'project_nos',
value: selectedValues
}).appendTo('#form1');
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/costMgmt/contractGridList.do", columns, true);
}
/* function fn_tabul_search(layoutParam, grid, searchURL, columnParam) {
if(!grid){
grid = new Tabulator("#mainGrid", {
height : "auto",
layout : fnc_checkNullDefaultValue(layoutParam, _tabul_layout_fitDataStretch),
placeholder : "조회된 정보가 없습니다.",
movableColumns : true,
selectable : true,
columns : columnParam
});
}else{
fn_tabu_searchAjax(grid, searchURL);
}
grid.on("tableBuilt", function(){
$(".tabulator-footer").hide();
fn_tabu_searchAjax(grid, searchURL);
});
}
function fn_tabu_searchAjax(grid, searchURL) {
$.ajax({
url: searchURL,
type:"POST",
data:$("#form1").serializeObject(),
dataType:"json",
async:false,
success:function(response){
grid.setData(response.RESULTLIST);
$(".table_paging_wrap").html(response.PAGE_HTML);
},
error: function(jqxhr, status, error){
}
});
} */
function fn_expenseSearch(expense_Year){
document.form1.action = "/costMgmt/expenseList.do?Year="+expense_Year;
document.form1.submit();
}
function fn_apply(objId,val){
var param = "&" + $("#form1").serialize();
var url = "/costMgmt/expenseApply.do";
if(objId != ""){
url = "/costMgmt/expenseApplyDetail.do";
}
window.open(url+"?objId="+objId+"&insertVal="+val+param, "", "width=1200, height=1000");
}
//지급완료 상태값 변경
function fn_confirm() {
var checkedObj = _tabulGrid.getSelectedData();
if(0 < checkedObj.length){
var checkArr = new Array();
for(var i=0;i<checkedObj.length;i++){
var objId = fnc_checkNull(checkedObj[i].EXPENSE_MASTER_OBJID);
var status = fnc_checkNull(checkedObj[i].STATUS);
if(status=='결재완료'){
checkArr.push(objId);
}
}
if(checkArr.length > 0){
//if(confirm("선택된 Part를 삭제하시겠습니까?")){
Swal.fire({
title: '선택된 데이터를 지급완료 처리하시겠습니까?',
text: '',
icon: 'warning',
showCancelButton: true, // cancel버튼 보이기. 기본은 원래 없음
confirmButtonColor: '#3085d6', // confrim 버튼 색깔 지정
cancelButtonColor: '#d33', // cancel 버튼 색깔 지정
confirmButtonText: '확인', // confirm 버튼 텍스트 지정
cancelButtonText: '취소', // cancel 버튼 텍스트 지정
reverseButtons: false, // 버튼 순서 거꾸로
}).then(result => {
// 만약 Promise리턴을 받으면,
if (result.isConfirmed) { // 만약 모달창에서 confirm 버튼을 눌렀다면
$.ajax({
url:"/costMgmt/expenseConfirm.do",
type:"POST",
data: {"checkArr":checkArr.join()},
dataType:"json",
success:function(data){
Swal.fire(data.msg);
fn_search();
},
error: function(jqxhr, status, error){
}
});
}
});
}else{
Swal.fire("결재완료상태인 데이터만 지급완료 가능합니다.");
return false;
}
}else{
Swal.fire("선택된 데이터가 없습니다.");
}
}
//경비지급 popup
function fn_expensePayment(ObjId,settleAmount){
var popup_width = 450;
var popup_height = 400;
var hiddenForm = document.hiddenForm;
var url = "";
var target = "openPopup"+ObjId;
var params = "?OBJID="+ObjId;
url = "/costMgmt/expensePaymentPopUp.do"+params;
fn_centerPopup(popup_width, popup_height, url, target);
hiddenForm.action = url;
hiddenForm.SETTLE_AMOUNT.value = settleAmount;
hiddenForm.target = target;
hiddenForm.submit();
}
</script>
</head>
<body>
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="SETTLE_AMOUNT" id="SETTLE_AMOUNT">
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="delKey" id="delKey">
<input type="hidden" name="nemu" value="${param.menu}">
<input type="hidden" name="contractObjid" id="contractObjid" value="${param.contractObjid}">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name_gdnsi">
<h2>
<span>투입원가관리_경비관리</span>
</h2>
<div class="btnArea">
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
<c:choose>
<c:when test="${param.menu ne 'costMgmt'}">
<input type="button" value="경비신청" class="plm_btns" id="btnApply" name="btnApply">
</c:when>
<c:otherwise>
<input type="button" value="경비지급" class="plm_btns" id="btnConfirm" name="btnConfirm">
</c:otherwise>
</c:choose>
</div>
</div>
<div id="plmSearchZon">
<table>
<tr>
<td><label for="Year">년도</label></td> <!-- 경비현황 연도 -->
<td>
<select name="Year_ex" id="Year_ex" class="select2" autocomplete="off">
<option value="">선택</option>
<c:forEach begin="${sysYear-4}" end="${sysYear+1}" var="req_year">
<%-- <option value="${req_year}">${req_year}</option> --%>
<option value="${req_year}" ${param.Year eq req_year ? 'selected':'' }>${req_year}</option>
</c:forEach>
</select>
</td>
<td><label for="expSortCd">구분</label></td>
<td>
<select name="expSortCd" id="expSortCd" required reqTitle="구분" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.expSortCd}
</select>
</td>
<td><label for="expSortCd">출장목적</label></td>
<td>
<select name="busContent" id="busContent" required reqTitle="출장목적" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.busContent}
</select>
</td>
<%-- <td><label for="projectNo">프로젝트번호</label></td>
<td>
<select name="projectNo" id="projectNo" required reqTitle="Project No" type="select" style="width:200px;" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.projectNo}
</select>
</td> --%>
<td><label for="projectNo">프로젝트번호</label></td>
<td>
<select name="projectNo" id="projectNo" style="width:300px;" class="select2" autocomplete="off" multiple="multiple">
<option value="">선택</option>
${code_map.projectNo}
</select>
</td>
<td><label for="busUsersDeptId">팀명</label></td>
<td>
<select name="busUsersDeptId" id="busUsersDeptId" required reqTitle="팀명" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.busUsersDeptId}
</select>
</td>
<td><label for="regUserId">작성자</label></td>
<td>
<select name="regUserId" id="regUserId" required reqTitle="작성자" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.regUserId}
</select>
</td>
<td><label for="expStatusCd">단계</label></td>
<td>
<select name="expStatusCd" id="expStatusCd" required reqTitle="단계" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.expStatusCd}
</select>
</td>
</tr>
<tr>
<td><label for="expCompanyCd">업체명</label></td>
<td>
<select name="expCompanyCd" id="expCompanyCd" required reqTitle="업체명" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.expCompanyCd}
</select>
</td>
<td><label for="expAreaCd">지역</label></td>
<td>
<select name="expAreaCd" id="expAreaCd" required reqTitle="지역" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.expAreaCd}
</select>
</td>
<td><label for="vehicelUsed">이용차량</label></td>
<td>
<select name="vehicelUsed" id="vehicelUsed" required reqTitle="이용차량" type="select" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.vehicelUsed}
</select>
</td>
</tr>
</table>
</div>
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
</div>
</div>
</form>
</body>
</html>