영업번호 팝업창 수정

This commit is contained in:
2025-11-13 17:30:14 +09:00
parent 6a97bf72e1
commit dcef82cdca
5 changed files with 267 additions and 12 deletions

View File

@@ -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);
}

View 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>

View File

@@ -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);
}

View File

@@ -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용)
*/

View File

@@ -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