diff --git a/WebContent/WEB-INF/view/partMng/openBomReportExcelImportPopUp.jsp b/WebContent/WEB-INF/view/partMng/openBomReportExcelImportPopUp.jsp
index 548b403..e330907 100644
--- a/WebContent/WEB-INF/view/partMng/openBomReportExcelImportPopUp.jsp
+++ b/WebContent/WEB-INF/view/partMng/openBomReportExcelImportPopUp.jsp
@@ -443,6 +443,39 @@ var gridFn = {
}
}
+// 품번 중복 검증 함수 (PART_BOM_REPORT 테이블에서 헤더 품번 중복 체크)
+function fn_checkDuplicatePartNo(){
+ var isDuplicate = false;
+
+ // 헤더의 품번 가져오기
+ var bomPartNo = $('#bom_part_no').val();
+ if(!bomPartNo || bomPartNo.trim() == ""){
+ return false; // 품번이 없으면 중복 아님
+ }
+
+ // 동기 AJAX로 DB에서 중복 체크
+ $.ajax({
+ url: "/partMng/checkDuplicatePartNo.do",
+ type: "POST",
+ data: {
+ partNo: bomPartNo.trim(),
+ bomReportObjid: $('#BOM_REPORT_OBJID').val() // 현재 수정 중인 BOM은 제외
+ },
+ dataType: "json",
+ async: false, // 동기 처리
+ success: function(data){
+ if(data && data.isDuplicate){
+ isDuplicate = true;
+ }
+ },
+ error: function(jqxhr, status, error){
+ console.error("품번 중복 체크 오류:", error);
+ }
+ });
+
+ return isDuplicate;
+}
+
function fn_save(){
var ids = grid.jqGrid("getDataIDs");
@@ -493,6 +526,13 @@ function fn_save(){
return;
}
+ // 품번 중복 검증 (PART_BOM_REPORT 테이블 - 헤더 품번)
+ if(fn_checkDuplicatePartNo()){
+ Swal.fire('입력한 품번이 이미 존재합니다. 다른 품번을 입력해주세요.');
+ $('#bom_part_no').focus();
+ return;
+ }
+
var existsDup = false;
var ARR_APPLICATION_PROJECT_NO = new Array();
$(".APPLICATION_PROJECT_NO").each(function(){
@@ -863,7 +903,7 @@ function fn_save(){
Template Download