Files
wace_plm/WebContent/WEB-INF/view/approval/approvalDetail.jsp
hjjeong c3c86ae9cf feat: 견적관리 기능 추가 및 검색조건 확장
- 견적요청등록 팝업 신규 개발 (estimateRegistFormPopup.jsp)
  * S/N 관리 기능 (개별 추가, 연속번호 생성)
  * 유/무상, 품번, 품명, 수량, 환율 등 필드 추가
  * actionType=view 시 닫기 버튼만 표시
- 견적관리 리스트 검색조건 추가
  * 주문유형, 제품구분, 국내/해외, 고객사
  * 유/무상, 품번, 품명, S/N
  * 접수일, 요청납기일 기간 검색
  * 결재상태
- 결재상신 버튼 기능 수정
- 결재 상태 컬럼 추가 및 결재 상세 팝업 연동
- contractBase SQL에 견적관리 필드 추가
2025-10-15 14:28:20 +09:00

271 lines
12 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<script type="text/javascript">
var callbackFnc = "${param.callbackFnc}";
$(function(){
$("#btnTargetLink").click(function(){
var targetObjId = $(this).attr("data-TARGET_OBJID");
var targetType = $(this).attr("data-TARGET_TYPE");
var url = "";
//Swal.fire("targetType : "+targetType+", targetObjId : "+targetObjId);
if(targetType == "EO"){
url = "/eo/eoDetailViewPopup.do?objId="+targetObjId+"&isApprovalLine=true";
window.open(url,"temporaryPopup","width=1500,height=700");
}else if(targetType == "PROBLEM"){
url = "/problem/problemRegistListPopup.do?targetObjId="+targetObjId
window.open(url, "", "width=1505, height=705");
}else if(targetType == "DESIGN_CHECK_LIST"){
url = "/productDevMng/designCheckList/checkListDetailPopUp.do?targetObjId="+targetObjId;
window.open(url, "", "width=1800, height=810");
}else if(targetType == "ISSUE_RELEASE"){
url = "/project/issueDetailPopup.do?objId="+targetObjId;
window.open(url, "", "width=1350, height=630");
}else if(targetType == "EXPENSE_APPLY"){
url = "/costMgmt/expenseApplyDetail.do?objId="+targetObjId;
window.open(url, "", "width=1200, height=850");
}else if(targetType == "MATERIAL_APPLY"){
url = "/materMgmt/materViwer.do?objId="+targetObjId;
window.open(url, "", "width=1500, height=680");
}else if(targetType == "MATERIAL_SORTAPPLY"){
url = "/materMgmt/materViwer.do?objId="+targetObjId;
window.open(url, "", "width=950, height=765");
}else if(targetType == "USED_MNG"){
url = "/usedMng/usedMngDetailPopUp.do?OBJID="+targetObjId;
window.open(url, "", "width=1000, height=600");
}else if(targetType == "CUSTOMER_MNG"){
url = "/customerMng/customerMngDetailPopUp.do?OBJID="+targetObjId;
window.open(url, "", "width=1000, height=800");
}else if(targetType == "CHECK_REPORT_MNG"){
url = "/checkReportMng/checkReportMngDetailPopUp.do?OBJID="+targetObjId;
window.open(url, "", "width=1000, height=950");
}else if(targetType == "CHECK_REPORT_MNG"){
url = "/checkReportMng/checkReportMngDetailPopUp.do?OBJID="+targetObjId;
window.open(url, "", "width=1000, height=950");
}else if(targetType == "EO_MNG"){
url = "/eoMng/eoMngDetailPopUp.do?OBJID="+targetObjId+"&";
window.open(url, "", "width=1000, height=800");
}else if(targetType == "ECR_MNG"){
url = "/ecr/ecrMngDetailPopUp.do?objId="+targetObjId;
window.open(url, "", "width=1000, height=800");
}else if(targetType == "AS_MNG"){
url = "/as/asMngDetailPopUp.do?objId="+targetObjId;
window.open(url, "", "width=1400, height=950");
}else if(targetType == "CSM"){
url = "/as/asMngDetailPopUp_CS.do?objId="+targetObjId;
window.open(url, "", "width=1400, height=950");
}else if(targetType == "SALES_REQUEST"){
url = "/salesMng/salesRequestDetailPopUp.do?SALES_REQUEST_MASTER_OBJID="+targetObjId;
window.open(url, "", "width=1100,height=600");
}else if(targetType == "PURCHASE_ORDER"){
url = "/purchaseOrder/purchaseOrderFormPopup_new.do?PURCHASE_ORDER_MASTER_OBJID="+targetObjId;
window.open(url, "", "width=1220,height=960");
}else if(targetType == "DEFECT_ACTION"){
url = "/purchaseOrder/invalidActionFormPopUp.do?checkArr="+targetObjId;
window.open(url, "", "width=920,height=820");
}else if(targetType == "INVOICE"){
url = "/supplyChainMgmt/invoiceFormPopUp.do?checkArr="+targetObjId+"&actionType=view";
window.open(url, "", "width=1000,height=880");
}else if(targetType == "CONTRACT_ESTIMATE"){
url = "/contractMgmt/estimateRegistFormPopup.do?objId="+targetObjId+"&actionType=view";
window.open(url, "", "width=650,height=400");
}
});
$(".btnApprovalResult").click(function(){
var approvalObjId = $(this).attr("data-APPROVAL_OBJID");
var routeObjId = $(this).attr("data-ROUTE_OBJID");
var targetUserId = $(this).attr("data-TARGET_USER_ID");
var targetType = $(this).attr("data-TARGET_TYPE");
var seq = $(this).attr("data-SEQ");
var inboxtaskObjId = $(this).attr("data-INBOXTASK_OBJID");
var approvalType = $(this).attr("data-APPROVAL_TYPE");
var params = "";
params += "?approvalObjId="+approvalObjId;
params += "&routeObjId="+routeObjId;
params += "&seq="+seq;
params += "&targetUserId="+targetUserId;
params += "&targetType="+targetType;
params += "&inboxtaskObjId="+inboxtaskObjId;
params += "&approvalType="+approvalType;
//Swal.fire(params);
window.open("/approval/approvalDetailResultPopup.do"+params, "", "width=550, height=285");
});
$("#routeNo").change(function(){
var approvalObjId = $("#routeNo option:selected").attr("data-APPROVAL_OBJID");
var routeObjId = $("#routeNo option:selected").attr("data-ROUTE_OBJID");
//Swal.fire("approvalObjId : "+approvalObjId+", routeObjId : "+routeObjId);
document.form1.action = "/approval/approvalDetail.do?approvalObjId="+approvalObjId+"&routeObjId="+routeObjId;
document.form1.submit();
});
$('#btn_close').click(function(){
if(fnc_checkNull(callbackFnc) != ""){
eval(callbackFnc+"();");
}else if(typeof(opener.fn_search) == "function"){
opener.fn_search();
}else{
top.opener.window.location.reload();
}
self.close();
});
});
function openerReload(){
location.reload();
if(fnc_checkNull(callbackFnc) != ""){
eval(callbackFnc+"();");
}else if(typeof(opener.fn_search) == "function"){
opener.fn_search();
}else{
top.opener.window.location.reload();
}
}
</script>
</head>
<body class="backcolor_light_blue">
<form name="form1" action="" method="post">
<!--가로 730px 세로 670px-->
<section>
<div class="plm_menu_name">
<h2>
<span>결재 상세</span>
</h2>
</div>
<div id="businessPopupFormWrap">
<div class="form_popup_title">&nbsp;&nbsp;&nbsp;결재 내용</div>
<table class="pmsPopupForm">
<colgroup>
<col width="15%">
<col width="*">
</colgroup>
<tr>
<td class="input_title">
<label for="">결재번호/이력</label>
</td>
<td colspan="5" >
<select name="routeNo" id="routeNo">
<c:forEach var="item" items="${routeList}" varStatus="status">
<option value="" data-APPROVAL_OBJID="${item.APPROVAL_OBJID}" data-ROUTE_OBJID="${item.ROUTE_OBJID}" ${param.routeObjId eq item.ROUTE_OBJID?'selected':''}>${item.ROUTE_NO}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">제목</label>
</td>
<td colspan="5" class="tr_data_border_bottom" title="${routeInfo.APPROVAL_TITLE}">
${routeInfo.APPROVAL_TITLE}
</td>
</tr>
<tr>
<td class="input_title">
<label for="">내용</label>
</td>
<td colspan="5" class="tr_data_border_bottom" title="${routeInfo.APPROVAL_DESC}">
${routeInfo.APPROVAL_DESC}
</td>
</tr>
<tr>
<td class="input_title">
<label for="">해당문서</label>
</td>
<td colspan="5" class="tr_data_border_bottom">
<a href="#"><img src="/images/documentImg.png" height="25px" width="25px" data-TARGET_TYPE="${routeInfo.TARGET_TYPE}" data-TARGET_OBJID="${routeInfo.TARGET_OBJID}" id="btnTargetLink" /></a>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">결재</label>
</td>
<td colspan="5">
<div style="overflow-y:scroll;">
<table class="project_form_in_table" style="width:100%;">
<colgroup>
<col width="7%">
<col width="15%">
<col width="10%">
<col width="15%">
<col width="8%">
<col width="*">
</colgroup>
<thead>
<tr>
<td>순번</td>
<td>팀명</td>
<td>이름</td>
<td>결재일</td>
<td>상태</td>
<td>결재내용</td>
</tr>
</thead>
</table>
</div>
<div class="in_table_scroll_wrap" style="width:100%; height:100px;">
<table class="plm_table">
<colgroup>
<col width="7%">
<col width="15%">
<col width="10%">
<col width="15%">
<col width="8%">
<col width="*">
</colgroup>
<tbody>
<c:forEach var="item" items="${normalList}" varStatus="status">
<tr>
<td>${item.SEQ}</td>
<td class="align_l" title="${item.DEPT_NAME}">${item.DEPT_NAME}</td>
<td class="align_l" title="${item.USER_NAME}">${item.USER_NAME}</td>
<td title="${!empty item.PROC_DATE?item.PROC_DATE:'-'}">${!empty item.PROC_DATE?item.PROC_DATE:'-'}</td>
<td class="" >
<c:choose>
<c:when test="${item.STATUS eq 'ready'}">
<c:choose>
<c:when test="${routeInfo.STATUS ne 'cancel' and (item.TARGET_USER_ID eq connectUserId or 'plm_admin' eq connectUserId) }">
<a href="#" class="btnApprovalResult" data-APPROVAL_OBJID="${routeInfo.APPROVAL_OBJID}" data-ROUTE_OBJID="${routeInfo.ROUTE_OBJID}" data-TARGET_USER_ID="${item.TARGET_USER_ID}" data-SEQ="${item.SEQ}" data-INBOXTASK_OBJID="${item.INBOXTASK_OBJID}" data-APPROVAL_TYPE="normal" data-TARGET_TYPE="${routeInfo.TARGET_TYPE}">진행중</a>
</c:when>
<c:otherwise>
진행중
</c:otherwise>
</c:choose>
</c:when>
<c:when test="${item.STATUS eq 'standby'}">대기중</c:when>
<c:when test="${item.STATUS eq 'complete'}">승인</c:when>
<c:when test="${item.STATUS eq 'cancel'}">취소</c:when>
<c:when test="${item.STATUS eq 'reject'}">반려</c:when>
<c:otherwise>${item.STATUS}</c:otherwise>
</c:choose>
</td>
<td class="align_l" title="${not empty item.RESULT_MESSAGE ? item.RESULT_MESSAGE:''}">${not empty item.RESULT_MESSAGE ? item.RESULT_MESSAGE:''}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</table>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<br>
<input type="button" value="닫기" id="btn_close" class="plm_btns">
</div>
</div>
</div>
</section>
</form>
</body>
</html>