영업번호 팝업창 수정
This commit is contained in:
@@ -63,11 +63,26 @@ $(document).ready(function(){
|
||||
|
||||
//영업활동 등록 팝업
|
||||
$(".btnRegist").click(function(){
|
||||
var selectedData = _tabulGrid.getSelectedData();
|
||||
var popup_width = 1400;
|
||||
var popup_height = 560;
|
||||
var params = "?actionType=regist"
|
||||
var url = "/contractMgmt/estimateRegistFormPopup.do"+params;
|
||||
//window.open("/ordermgmt/ordermgmtUpdateFormPopup.do"+params, "", "width=650, height=750","menubars=no, scrollbars=yes, resizable=yes");
|
||||
var popup_height = 560;
|
||||
var url = "";
|
||||
|
||||
// 선택된 행이 없으면 신규 등록
|
||||
if(selectedData.length === 0){
|
||||
url = "/contractMgmt/estimateRegistFormPopup.do?actionType=regist";
|
||||
}
|
||||
// 한 줄 선택된 경우 상세 팝업 (영업번호 클릭과 동일)
|
||||
else if(selectedData.length === 1){
|
||||
var objid = fnc_checkNull(selectedData[0].OBJID);
|
||||
url = "/contractMgmt/estimateRegistFormPopup.do?objId=" + objid;
|
||||
}
|
||||
// 여러 줄 선택된 경우 경고
|
||||
else {
|
||||
Swal.fire("한 개의 행만 선택해주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
});
|
||||
|
||||
@@ -502,11 +517,11 @@ function fn_FileRegist(objId, docType, docTypeName){
|
||||
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
//영업활동등록 상세
|
||||
//영업활동등록 상세 (뷰 전용 팝업)
|
||||
function fn_projectConceptDetail(objId){
|
||||
var popup_width = 1400;
|
||||
var popup_height = 560;
|
||||
var url = "/contractMgmt/estimateRegistFormPopup.do?objId="+objId;
|
||||
var popup_width = 900;
|
||||
var popup_height = 700;
|
||||
var url = "/contractMgmt/estimateViewPopup.do?objId="+objId;
|
||||
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
|
||||
201
WebContent/WEB-INF/view/contractMgmt/estimateViewPopup.jsp
Normal file
201
WebContent/WEB-INF/view/contractMgmt/estimateViewPopup.jsp
Normal file
@@ -0,0 +1,201 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ page import="com.pms.common.utils.*"%>
|
||||
<%@ page import="java.util.*"%>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@include file="/init_new.jsp"%>
|
||||
<%
|
||||
PersonBean person = (PersonBean) session.getAttribute(Constants.PERSON_BEAN);
|
||||
String userId = CommonUtils.checkNull(person.getUserId());
|
||||
%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title><%=Constants.SYSTEM_NAME%></title>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Malgun Gothic', sans-serif;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.popup-container {
|
||||
background-color: white;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
padding: 10px;
|
||||
background-color: #f8f9fa;
|
||||
border-left: 4px solid #007bff;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.info-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.info-table th {
|
||||
background-color: #f8f9fa;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
border: 1px solid #dee2e6;
|
||||
font-weight: bold;
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
.info-table td {
|
||||
padding: 10px;
|
||||
border: 1px solid #dee2e6;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.item-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.item-table thead th {
|
||||
background-color: #f8f9fa;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
border: 1px solid #dee2e6;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.item-table tbody td {
|
||||
padding: 8px;
|
||||
border: 1px solid #dee2e6;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.item-table tbody td.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.btn-area {
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.plm_btns {
|
||||
padding: 8px 20px;
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 13px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
.plm_btns:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#btnClose").click(function() {
|
||||
self.close();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="popup-container">
|
||||
<!-- 영업정보 섹션 -->
|
||||
<div class="section-title">영업정보</div>
|
||||
<table class="info-table">
|
||||
<colgroup>
|
||||
<col width="15%">
|
||||
<col width="35%">
|
||||
<col width="15%">
|
||||
<col width="35%">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th>주문유형</th>
|
||||
<td>${info.CATEGORY_NAME}</td>
|
||||
<th>제품구분</th>
|
||||
<td>${info.PRODUCT_NAME}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>유/무상</th>
|
||||
<td>${info.PAID_TYPE_NAME}</td>
|
||||
<th>접수일</th>
|
||||
<td>${info.RECEIPT_DATE}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>국내/해외</th>
|
||||
<td>${info.AREA_NAME}</td>
|
||||
<th>고객사</th>
|
||||
<td>${info.CUSTOMER_NAME}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- 품목정보 섹션 -->
|
||||
<div class="section-title">품목정보</div>
|
||||
<table class="item-table">
|
||||
<colgroup>
|
||||
<col width="5%">
|
||||
<col width="15%">
|
||||
<col width="25%">
|
||||
<col width="15%">
|
||||
<col width="10%">
|
||||
<col width="15%">
|
||||
<col width="15%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>품번</th>
|
||||
<th>품명</th>
|
||||
<th>S/N</th>
|
||||
<th>요청납기</th>
|
||||
<th>고객요청사항</th>
|
||||
<th>반납사유</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${empty itemList}">
|
||||
<tr>
|
||||
<td colspan="7" style="text-align:center; padding:30px; color:#999;">
|
||||
등록된 품목이 없습니다.
|
||||
</td>
|
||||
</tr>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:forEach items="${itemList}" var="item" varStatus="status">
|
||||
<tr>
|
||||
<td>${status.count}</td>
|
||||
<td>${item.part_no}</td>
|
||||
<td class="text-left">${item.part_name}</td>
|
||||
<td>${item.serial_nos}</td>
|
||||
<td>${item.due_date}</td>
|
||||
<td class="text-left">${item.customer_request}</td>
|
||||
<td>${item.return_reason}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- 버튼 영역 -->
|
||||
<div class="btn-area">
|
||||
<input type="button" value="닫기" class="plm_btns" id="btnClose">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -317,11 +317,11 @@ function fn_FileRegist(objId, docType, docTypeName){
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
|
||||
//영업활동등록 상세
|
||||
//영업활동등록 상세 (뷰 전용 팝업)
|
||||
function fn_projectConceptDetail(objId){
|
||||
var popup_width = 1400;
|
||||
var popup_height = 560;
|
||||
var url = "/contractMgmt/estimateRegistFormPopup.do?objId="+objId;
|
||||
var popup_width = 900;
|
||||
var popup_height = 700;
|
||||
var url = "/contractMgmt/estimateViewPopup.do?objId="+objId;
|
||||
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
|
||||
@@ -1813,6 +1813,40 @@ public class ContractMgmtController {
|
||||
return "/contractMgmt/estimateRegistFormPopup";
|
||||
}
|
||||
|
||||
/**
|
||||
* 견적요청 조회 전용 팝업 (View Only)
|
||||
* @param request
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
@RequestMapping("/contractMgmt/estimateViewPopup.do")
|
||||
public String estimateViewPopup(HttpSession session, HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
|
||||
String objId = CommonUtils.checkNull(paramMap.get("objId"));
|
||||
|
||||
try{
|
||||
Map info = null;
|
||||
List<Map<String, Object>> itemList = new ArrayList<Map<String, Object>>();
|
||||
|
||||
if(paramMap.get("objId")!=null){
|
||||
paramMap.put("objId",objId);
|
||||
info = CommonUtils.keyChangeUpperMap(contractMgmtService.getContractMgmtInfo(paramMap));
|
||||
|
||||
// 품목 목록 조회
|
||||
itemList = contractMgmtService.getContractItemList(objId);
|
||||
}
|
||||
|
||||
request.setAttribute("info", info);
|
||||
request.setAttribute("objId", objId);
|
||||
request.setAttribute("itemList", itemList);
|
||||
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return "/contractMgmt/estimateViewPopup";
|
||||
}
|
||||
|
||||
/**
|
||||
* 품번 검색 (AJAX용)
|
||||
*/
|
||||
|
||||
@@ -1411,8 +1411,11 @@
|
||||
SELECT
|
||||
A.OBJID
|
||||
,A.CATEGORY_CD
|
||||
,CODE_NAME(A.CATEGORY_CD) AS CATEGORY_NAME
|
||||
,A.CUSTOMER_OBJID
|
||||
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = A.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
||||
,A.PRODUCT
|
||||
,CODE_NAME(A.PRODUCT) AS PRODUCT_NAME
|
||||
,A.CUSTOMER_PROJECT_NAME
|
||||
,A.STATUS_CD
|
||||
,A.DUE_DATE
|
||||
@@ -1455,12 +1458,14 @@
|
||||
,A.EST_COMP_DATE
|
||||
,A.EST_RESULT_CD
|
||||
,A.AREA_CD
|
||||
,CODE_NAME(A.AREA_CD) AS AREA_NAME
|
||||
,A.TARGET_PROJECT_NO
|
||||
,A.TARGET_PROJECT_NO_DIRECT
|
||||
,A.CUSTOMER_PRODUCTION_NO
|
||||
,A.MECHANICAL_TYPE
|
||||
,A.OVERHAUL_ORDER
|
||||
,A.PAID_TYPE
|
||||
,(case when A.PAID_TYPE = 'paid' then '유상' when A.PAID_TYPE = 'free' then '무상' else A.PAID_TYPE end) AS PAID_TYPE_NAME
|
||||
,A.RECEIPT_DATE
|
||||
,A.PART_NO
|
||||
,A.PART_NAME
|
||||
|
||||
Reference in New Issue
Block a user