품번, 품명만 입력하고 저장시 빈 내용으로 이봄 리스트 생성(완료)

This commit is contained in:
Johngreen
2025-10-31 09:30:26 +09:00
parent f6d26de480
commit 5e92d29028
2 changed files with 171 additions and 161 deletions

View File

@@ -516,108 +516,111 @@ function fn_checkDuplicatePartNo(){
function fn_save(){
var ids = grid.jqGrid("getDataIDs");
if(ids!=""){
if(fnc_valitate("form1")){
var valid = true;
var existPart = true;
var part = "";
if (fnc_isEmpty(${bomInfo.OBJID})) {
var partNo1 = "";
gridFn.closeEdit();
$.each(grid.getRowData(), function(i, d) {
if (i == 0) {
partNo1 = d["PART_NO"];
}
var partType = d["PART_TYPE"];
var partNo = d["PART_NO"];
if (partType == '0001788') {
if (!fn_existPartNo(partNo)) {
existPart = false;
part = partNo;
return false; // Exit the loop
}
}
if(!fnc_isEmpty(d["NOTE"])){
valid = false;
}
});
gridFn.opennEdit();
var project_no = $("#project_name").find("option:selected").text();
if (partNo1.indexOf(project_no) < 0) {
valid = false;
}
}
if (!existPart) {
Swal.fire(part+'품번에 해당하는 구매품표준이 없습니다. 확인해 주세요.');
return;
}
if (!valid) {
Swal.fire('1레벨 품번에 프로젝트번호가 없습니다. 확인해 주세요.');
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(){
for(var i=0; i<ARR_APPLICATION_PROJECT_NO.length; i++){
if(this.value != '' && ARR_APPLICATION_PROJECT_NO[i] == this.value){
existsDup = true;
break;
}
}
ARR_APPLICATION_PROJECT_NO.push($(this).val());
});
if(existsDup){
Swal.fire('동시적용 프로젝트번호에 중복건이 존재합니다.');
return;
}
if(confirm("저장 하시겠습니까?")){
// 품번, 품명만 입력하고 그리드 데이터가 없어도 저장 가능하도록 수정
if(fnc_valitate("form1")){
var valid = true;
var existPart = true;
var part = "";
// 그리드에 데이터가 있는 경우에만 검증
if (ids && ids.length > 0) {
if (fnc_isEmpty(${bomInfo.OBJID})) {
var partNo1 = "";
gridFn.closeEdit();
$.ajax({
url:"/partMng/partBomApplySave.do"
,type:"POST"
,data: $("#form1").serialize() + "&jqGrid="+ encodeURIComponent(JSON.stringify(grid.getRowData()))
,dataType:"json"
,success:function(data){
/*
if(data =="SUCCESS"){
alert("저장되었습니다.");
top.opener.fn_search();
self.close();
};
*/
console.log(data);
if(data && data.RESULT == 'S'){
alert("저장되었습니다.");
if(typeof opener.fn_search =="function"){ opener.fn_search() };
self.close();
}else{
alert(data.MSG);
$.each(grid.getRowData(), function(i, d) {
if (i == 0) {
partNo1 = d["PART_NO"];
}
var partType = d["PART_TYPE"];
var partNo = d["PART_NO"];
if (partType == '0001788') {
if (!fn_existPartNo(partNo)) {
existPart = false;
part = partNo;
return false; // Exit the loop
}
}
,error: function(jqxhr, status, error){
alert('에러가 발생하였습니다. 시스템 관리자에게 문의하여 주세요.');
if(!fnc_isEmpty(d["NOTE"])){
valid = false;
}
});
gridFn.opennEdit();
var project_no = $("#project_name").find("option:selected").text();
if (partNo1 && partNo1.indexOf(project_no) < 0) {
valid = false;
}
}
if (!existPart) {
Swal.fire(part+'품번에 해당하는 구매품표준이 없습니다. 확인해 주세요.');
return;
}
if (!valid) {
Swal.fire('1레벨 품번에 프로젝트번호가 없습니다. 확인해 주세요.');
return;
}
}
}else{
Swal.fire('저장할 데이터가 없습니다.');
// 품번 중복 검증 (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(){
for(var i=0; i<ARR_APPLICATION_PROJECT_NO.length; i++){
if(this.value != '' && ARR_APPLICATION_PROJECT_NO[i] == this.value){
existsDup = true;
break;
}
}
ARR_APPLICATION_PROJECT_NO.push($(this).val());
});
if(existsDup){
Swal.fire('동시적용 프로젝트번호에 중복건이 존재합니다.');
return;
}
// 그리드 데이터가 없어도 저장 가능 (빈 BOM 생성)
var confirmMsg = ids && ids.length > 0 ? "저장 하시겠습니까?" : "품번, 품명으로 빈 E-BOM을 생성하시겠습니까?";
if(confirm(confirmMsg)){
if(ids && ids.length > 0) {
gridFn.closeEdit();
}
// 그리드 데이터가 없으면 빈 배열 전송
var gridData = ids && ids.length > 0 ? grid.getRowData() : [];
$.ajax({
url:"/partMng/partBomApplySave.do"
,type:"POST"
,data: $("#form1").serialize() + "&jqGrid="+ encodeURIComponent(JSON.stringify(gridData))
,dataType:"json"
,success:function(data){
console.log(data);
if(data && data.RESULT == 'S'){
alert("저장되었습니다.");
if(typeof opener.fn_search =="function"){ opener.fn_search() };
self.close();
}else{
alert(data.MSG);
}
}
,error: function(jqxhr, status, error){
alert('에러가 발생하였습니다. 시스템 관리자에게 문의하여 주세요.');
}
});
}
}
}