diff --git a/WebContent/WEB-INF/view/partMng/structureBomCopyFormPopup.jsp b/WebContent/WEB-INF/view/partMng/structureBomCopyFormPopup.jsp
index 7438365..6fb8dc7 100644
--- a/WebContent/WEB-INF/view/partMng/structureBomCopyFormPopup.jsp
+++ b/WebContent/WEB-INF/view/partMng/structureBomCopyFormPopup.jsp
@@ -134,12 +134,21 @@ var selectedBomType = null; // 'EBOM' 또는 'MBOM'
var bomGridData = []; // BOM 그리드 데이터
$(function(){
- // 페이지 로드 시 프로젝트 정보가 있으면 품번/품명 자동 입력
+ // 페이지 로드 시 URL 파라미터 또는 프로젝트 정보에서 품번/품명 자동 입력
+ var urlPartNo = "${param.partNo}";
+ var urlPartName = "${param.partName}";
+
+ if(urlPartNo && urlPartNo !== "") {
+ console.log("URL 파라미터에서 품번/품명 설정 중...");
+ $("#COPY_PART_NO").val(decodeURIComponent(urlPartNo));
+ $("#COPY_PART_NAME").val(decodeURIComponent(urlPartName));
+ }
+ else {
console.log("projectInfo가 있습니다. 품번/품명 설정 중...");
$("#COPY_PART_NO").val("${projectInfo.PART_NO}");
$("#COPY_PART_NAME").val("${projectInfo.PART_NAME}");
- // E-BOM 품번은 사용자가 직접 입력하도록 비워둠 (M-BOM 품번과 다를 수 있음)
+ }
// 담기 버튼 - 선택한 BOM을 복사 대상으로 설정
@@ -526,9 +535,19 @@ function fn_saveBomCopy() {
text: 'M-BOM이 성공적으로 생성되었습니다.',
icon: 'success'
}).then(() => {
- // 부모 창(M-BOM 관리) 새로고침하여 아이콘 업데이트
+ // 부모 창(M-BOM 관리)의 검색 함수만 호출하여 그리드 업데이트
if(window.opener && !window.opener.closed) {
- window.opener.location.reload();
+ // 부모 창의 검색 조건 유지하면서 그리드만 새로고침
+ if(typeof window.opener.fn_search === 'function') {
+ window.opener.fn_search();
+ }
+ // M-BOM 품번과 저장일을 부모 창 검색 조건에 설정
+ if(response.mbomPartNo) {
+ window.opener.$("#search_mbom_part_no").val(response.mbomPartNo);
+ }
+ if(response.saveDate) {
+ window.opener.$("#search_save_date").val(response.saveDate);
+ }
}
window.close();
});
diff --git a/WebContent/WEB-INF/view/productionplanning/mBomHeaderPopup.jsp b/WebContent/WEB-INF/view/productionplanning/mBomHeaderPopup.jsp
index 2f60269..ad23c1d 100644
--- a/WebContent/WEB-INF/view/productionplanning/mBomHeaderPopup.jsp
+++ b/WebContent/WEB-INF/view/productionplanning/mBomHeaderPopup.jsp
@@ -50,6 +50,14 @@ $(function(){
$('.select2').select2();
+ // 페이지 로드 시 프로젝트 정보로 검색 필드 자동 입력
+
+ $("#search_part_no").val("${info.PART_NO}");
+ $("#search_part_name").val("${info.PART_NAME}");
+ $("#search_mbom_part_no").val("${info.PART_NO}"); // M-BOM 품번은 품번과 동일
+ $("#search_save_date").val("${info.MBOM_REGDATE}");
+
+
//Part 연결
$("#moveLeft").click(function(){
// Tabulator에서 선택된 오른쪽 행 데이터 가져오기
diff --git a/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp b/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp
index a043b69..14e4f64 100644
--- a/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp
+++ b/WebContent/WEB-INF/view/productionplanning/mBomMgmtList.jsp
@@ -211,6 +211,12 @@ var columns = [
// 파란색(저장된 M-BOM)일 때만 팝업 열기
if(mbomStatus !== '' && mbomStatus !== '0') {
+ // 검색 조건에 해당 행의 데이터 자동 입력
+ $("#search_part_no").val(fnc_checkNull(rowData.PART_NO));
+ $("#search_part_name").val(fnc_checkNull(rowData.PART_NAME));
+ $("#search_mbom_part_no").val(fnc_checkNull(rowData.PART_NO)); // M-BOM 품번은 품번과 동일
+ $("#search_save_date").val(fnc_checkNull(rowData.MBOM_REGDATE));
+
fn_openMBomFormPopup(objid);
} else {
Swal.fire({
@@ -355,10 +361,20 @@ function fn_openBomCopyPopup() {
// BOM 복사 팝업 창 열기
function fn_openBomCopyPopupWindow(objId) {
- var popup_width = 1800;
- var popup_height = 900;
- var url = "/partMng/structureBomCopyFormPopup.do?objId=" + objId;
- fn_centerPopup(popup_width, popup_height, url, 'bomCopyPopup');
+ // 선택된 행의 데이터 가져오기
+ var selectedRow = _tabulGrid.searchRows("OBJID", "=", objId);
+ if(selectedRow.length > 0) {
+ var rowData = selectedRow[0].getData();
+ var partNo = encodeURIComponent(fnc_checkNull(rowData.PART_NO));
+ var partName = encodeURIComponent(fnc_checkNull(rowData.PART_NAME));
+
+ var popup_width = 1800;
+ var popup_height = 900;
+ var url = "/partMng/structureBomCopyFormPopup.do?objId=" + objId + "&partNo=" + partNo + "&partName=" + partName;
+ fn_centerPopup(popup_width, popup_height, url, 'bomCopyPopup');
+ } else {
+ Swal.fire('선택된 데이터를 찾을 수 없습니다.');
+ }
}
@@ -376,18 +392,25 @@ function fn_openBomCopyPopupWindow(objId) {
-
-
+
+
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
diff --git a/src/com/pms/controller/PartMngController.java b/src/com/pms/controller/PartMngController.java
index cfb469b..6fdd43c 100644
--- a/src/com/pms/controller/PartMngController.java
+++ b/src/com/pms/controller/PartMngController.java
@@ -982,6 +982,11 @@ public class PartMngController {
resultMap.put("result", "success");
resultMap.put("message", "M-BOM이 성공적으로 생성되었습니다.");
+ // M-BOM 품번과 저장일 추가 (부모 창 검색 조건에 사용)
+ resultMap.put("mbomPartNo", targetPartNo);
+ // 현재 날짜를 YYYY-MM-DD 형식으로 반환
+ java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
+ resultMap.put("saveDate", sdf.format(new java.util.Date()));
} finally {
if(sqlSession != null) {
sqlSession.close();