ERP-node/WebContent/WEB-INF/view/part/structurePopupCenter.jsp

195 lines
6.9 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<script>
$(function(){
//Part 연결
$("#moveLeft").click(function(){
var rightPartArr = $(".partChks:checked", parent.frames['rightFrame'].document);
var leftPartNo = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).val();
var leftParentObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-OBJID");
//Swal.fire("leftPartNo : "+leftPartNo+", leftPartObjId : "+leftPartObjId);
//같은 Part를 연결한건지 체크
var isSamePart = false;
$(rightPartArr).each(function(i){
var rightPartNo = $(this).val();
if(rightPartNo == leftPartNo){
Swal.fire("오류 Part No : ["+rightPartNo+"]\n같은 Part No끼리 연결할 수 없습니다.");
isSamePart = true;
return;
}
});
if(isSamePart) return;
//같은 Part 체크 end.
//연결하려는 part가 상위에 있는 part인지 확인.
var leftParentParts = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PARENT_PARTS");
var deniedPartArr = [];
if(fnc_checkNull(leftParentParts).indexOf(",") > 0){
deniedPartArr = leftParentParts.split(",");
}
var isDeniedPart = false;
$(rightPartArr).each(function(i){
var rightPartNo = $(this).val();
for(var i = 0 ; i < deniedPartArr.length ; i++){
if(rightPartNo == deniedPartArr[i]){
Swal.fire("오류 Part No : "+"["+rightPartNo+"]\n이미 상위에 등록된 Part No 입니다.");
isDeniedPart = true;
return;
}
}
});
if(isDeniedPart) return;
//연결하려는 part가 상위에 있는 part인지 확인. end
var rightCheckedArr = [];
$(rightPartArr).each(function(i){
rightCheckedArr.push($(this).val());
});
if(fnc_checkNull(leftPartNo) == ""){
var flag = fn_checkSameTopPartNo(rightCheckedArr);
if(flag == "true"){
Swal.fire("1레벨에 같은 Part No가 중복 등록될 수 없습니다.");
return;
}
}
fn_relatePartInfo(leftPartNo, rightCheckedArr, leftParentObjId);
});
//end of Part 연결
//연결된 part 삭제
$("#moveRight").click(function(){
var leftPartNo = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PART_NO");
var leftParentPartNo = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PARENT_PART_NO");
var leftParentObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-OBJID");
/* Swal.fire('leftPartNo ->'+leftPartNo+".");
Swal.fire('leftParentObjId ->'+leftParentObjId+".");
Swal.fire('leftParentPartNo ->'+leftParentPartNo+"."); */
fn_deletePartRelateInfo(leftPartNo, leftParentPartNo, leftParentObjId);
});
//end of 연결된 part 삭제
});
//1레벨에 같은 Part No가 등록되어있는지 확인.
function fn_checkSameTopPartNo(rightCheckedArr){
var result = false;
$.ajax({
url: "/part/checkSameTopPartNo.do",
method: 'post',
data: {"objId":$("#objId").val(), "rightCheckedArr":rightCheckedArr},
dataType: 'json',
async:false,
success: function(data) {
result = data.result;
}
, error: function(jqxhr, status, error){
/* Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText); */
}
});
return result;
}
//end of 1레벨에 같은 Part No가 등록되어있는지 확인.
//구조 연결 해제
function fn_deletePartRelateInfo(leftPartNo, leftParentPartNo, leftParentObjId){
if(leftPartNo == null){
Swal.fire("연결 해제할 Part를 선택해 주시기 바랍니다.")
return;
}
if(!confirm("연결 해제하시겠습니까?")) return;
$.ajax({
url: "/part/deletePartRelateInfo.do",
method: 'post',
data: {"objId":$("#objId").val(), "leftPartNo":leftPartNo, "leftPartObjId":leftParentObjId, "leftParentPartNo":leftParentPartNo},
dataType: 'json',
success: function(data) {
if(data.result){
$(parent.frames['leftFrame'].document.location.reload());
}
}
, error: function(jqxhr, status, error){
/* Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText); */
}
});
}
//end of 구조 연결 해제
//구조 연결
function fn_relatePartInfo(leftPartNo, rightCheckedArr, leftParentObjId){
if(typeof rightCheckedArr != "undefined" && rightCheckedArr.length == 0){
Swal.fire("선택된 Part가 없습니다.");
return;
}
if(leftPartNo == null){
if(!confirm("좌측에 선택된 Part정보가 없습니다.\n이대로 연결하면 1레벨로 등록됩니다.\n진행하시겠습니까?")){
return;
}
}
$.ajax({
url: "/part/relatePartInfo.do",
method: 'post',
data: {"leftPartObjId":leftParentObjId, "leftPartNo":leftPartNo, "objId":$("#objId").val(), "rightCheckedArr":rightCheckedArr},
dataType: 'json',
async:false,
success: function(data) {
if(data.result){
$(parent.frames['leftFrame'].document.location.reload());
$(".partChks", parent.frames['rightFrame'].document).prop("checked", false);
//좌측에 선택된 정보를 유지하기위해 0.1초간의 딜레이(새로고침시간)을 주고 10번 기존에 선택된 정보를 선택하도록 한다. 10번사이 선택이 된다면 loop break;
for(var i = 0 ; i < 10 ; i++){
var leftPartChkLength = $("input[name='checkecPartNo']:checked", parent.frames['leftFrame'].document).length;
setTimeout(function(){
$("input[name='checkedPartNo']:radio[value='"+leftPartNo+"']", parent.frames['leftFrame'].document).prop("checked", true);
}, 100);
if(leftPartChkLength > 0) break;
}
//end for
}
}
, error: function(jqxhr, status, error){
/* Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText); */
}
});
}
//end of 구조 연결
</script>
</head>
<body class="backcolor">
<form name="form1" action="" method="post">
<input type="hidden" name="objId" id="objId" value="${param.objId}" />
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div id="structurePopupBtnW">
<input type="button" value="<<" class="plm_btns" id="moveLeft" style="margin-left:18px;">
<br><br>
<input type="button" value=">>" class="plm_btns" id="moveRight" style="margin-left:18px;">
</div>
</form>
</body>
</html>