376 lines
14 KiB
Plaintext
376 lines
14 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(){
|
|
|
|
if(isCreateBom()){
|
|
visibleChangeTalbe(false);
|
|
}
|
|
|
|
$('.select2').select2();
|
|
|
|
//0001055 - - 고객요청
|
|
//0001056 - - 자체설변
|
|
$('#CHANGE_TYPE option').not($('#CHANGE_TYPE').find('[value=""],[value=0001055],[value=0001056]')).remove();
|
|
//0001610 - - 파트삭제 test
|
|
//0001611 - - 파트추가
|
|
//0001626 - - 파트추가 real
|
|
//0001637 - - 파트삭제
|
|
//$('#CHANGE_OPTION option').not($('#CHANGE_OPTION').find('[value=""],[value=0001610],[value=0001611]')).remove(); //test
|
|
$('#CHANGE_OPTION option').not($('#CHANGE_OPTION').find('[value=""],[value=0001626],[value=0001637],[value=0001790]')).remove();
|
|
$('.select2').select2();
|
|
|
|
//Part 연결
|
|
$("#moveLeft").click(function(){
|
|
var rightPartArr = $(".partChks:checked", parent.frames['rightFrame'].document);
|
|
var leftPartNoObj = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document);
|
|
var leftPartChildObjId = leftPartNoObj.val();
|
|
var leftPartNo = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PART_NO");
|
|
var leftPartNoQty = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PART_NO_QTY");
|
|
var leftParentObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-OBJID");
|
|
var leftPartLastObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-LAST_PART_OBJID");
|
|
var leftQtyParObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PART_OBJID");
|
|
|
|
//같은 Part를 연결한건지 체크
|
|
var isSamePart = false;
|
|
$(rightPartArr).each(function(i){
|
|
var rightPartNo = $(this).val();
|
|
if(rightPartNo == leftPartNo){
|
|
alert("오류 Part No : ["+rightPartNo+"]\n같은 Part No끼리 연결할 수 없습니다.");
|
|
isSamePart = true;
|
|
}
|
|
});
|
|
|
|
if(isSamePart) return false;
|
|
|
|
//연결하려는 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();
|
|
var rightPartType = $(this).attr("data-PART_TYPE");
|
|
|
|
if("unique" == rightPartType){
|
|
for(var i = 0 ; i < deniedPartArr.length ; i++){
|
|
if(rightPartNo == deniedPartArr[i]){
|
|
alert("오류 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"){
|
|
alert("1레벨에 같은 Part No가 중복 등록될 수 없습니다.");
|
|
return;
|
|
}
|
|
}
|
|
|
|
if(!fnc_validate2('form1')){
|
|
return;
|
|
}
|
|
|
|
//0001611 - - 파트추가
|
|
//0001610 - - 파트삭제
|
|
if(!isCreateBom() && '0001626' != $('#CHANGE_OPTION').val()){
|
|
alert('설변사유는 파트추가만 가능합니다.');
|
|
$('#CHANGE_OPTION').val('0001626');
|
|
$('.select2').select2();
|
|
return;
|
|
}
|
|
|
|
fn_relatePartInfo(leftPartNoObj.val(), rightCheckedArr, leftPartNoQty, leftPartLastObjId, leftPartChildObjId, leftQtyParObjId);
|
|
});
|
|
//end of Part 연결
|
|
|
|
//연결된 part 삭제
|
|
$("#moveRight").click(function(){
|
|
var leftPartNoObj = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document);
|
|
var leftPartChildObjId = leftPartNoObj.val();
|
|
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-PARENT_OBJID");
|
|
var leftPartLastObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-LAST_PART_OBJID");
|
|
|
|
/* alert('leftPartNo ->'+leftPartNo+".");
|
|
alert('leftParentObjId ->'+leftParentObjId+".");
|
|
alert('leftParentPartNo ->'+leftParentPartNo+"."); */
|
|
|
|
if(!fnc_validate2('form1')){
|
|
return;
|
|
}
|
|
|
|
//0001611 - - 파트추가
|
|
//0001610 - - 파트삭제
|
|
if(!isCreateBom() && '0001637' != $('#CHANGE_OPTION').val()){
|
|
alert('설변사유는 파트삭제만 가능합니다.');
|
|
$('#CHANGE_OPTION').val('0001637');
|
|
$('.select2').select2();
|
|
return;
|
|
}
|
|
|
|
fn_deletePartRelateInfo(leftPartNoObj.val(), leftPartLastObjId, leftParentPartNo, leftParentObjId, leftPartChildObjId);
|
|
});
|
|
//end of 연결된 part 삭제
|
|
|
|
//연결된 part 변경
|
|
$("#moveChange").click(function(){
|
|
var leftPartNoList = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document);
|
|
var leftPartNo = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PART_NO");
|
|
var leftPartObjid = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-BOM_LAST_PART_OBJID");
|
|
var leftParentPartObjid = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PARENT_PART_NO");
|
|
var rightPartNoList = $(".partChks:checked", parent.frames['rightFrame'].document);
|
|
var rightPartNo = $(".partChks:checked", parent.frames['rightFrame'].document).attr("data-PART_NO");
|
|
var rightPartRev = $(".partChks:checked", parent.frames['rightFrame'].document).attr("data-PART_REV");
|
|
|
|
var leftPartChildObjId = leftPartNoList.val();
|
|
//var leftPartNoQty = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-PART_NO_QTY");
|
|
|
|
//alert("leftPartObjid::"+leftPartObjid);
|
|
var leftPartBomQtyObjId = $("input[name=checkedPartNo]:checked", parent.frames['leftFrame'].document).attr("data-OBJID");
|
|
|
|
if(!fnc_validate2('form1')){
|
|
return;
|
|
}
|
|
|
|
if(0 == leftPartNoList.length){
|
|
alert("선택된 파트가 없습니다.");
|
|
return false;
|
|
}else if(1 == leftPartNoList.length){
|
|
if(0 == rightPartNoList.length){
|
|
alert("선택된 파트가 없습니다.");
|
|
return false;
|
|
}else if(1 == rightPartNoList.length){
|
|
fn_changeRelatePartInfo(leftPartBomQtyObjId,rightPartNoList.val(),leftPartNoList.val(),leftParentPartObjid,leftPartChildObjId,leftPartObjid,rightPartNo,rightPartRev);
|
|
}else{
|
|
alert("한번에 1개의 파트만 변경가능합니다.");
|
|
return false;
|
|
}
|
|
}else{
|
|
alert("한번에 1개의 파트만 변경가능합니다.");
|
|
return false;
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
function isCreateBom(){
|
|
return '${info.STATUS}' == 'create';
|
|
}
|
|
|
|
//1레벨에 같은 Part No가 등록되어있는지 확인.
|
|
function fn_checkSameTopPartNo(rightCheckedArr){
|
|
var result = false;
|
|
|
|
$.ajax({
|
|
url: "/partMng/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){
|
|
/* alert(jqxhr.statusText + ", " + status + ", " + error);
|
|
alert(jqxhr.status);
|
|
alert(jqxhr.responseText); */
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
//end of 1레벨에 같은 Part No가 등록되어있는지 확인.
|
|
|
|
function resetChange(){
|
|
$('#CHANGE_TYPE').val();
|
|
$('#CHANGE_OPTION').val();
|
|
}
|
|
|
|
//구조 연결 해제
|
|
function fn_deletePartRelateInfo(leftObjId, leftPartLastObjId, leftParentPartNo, leftParentObjId, leftPartChildObjId){
|
|
if(leftObjId == null){
|
|
alert("연결 해제할 Part를 선택해 주시기 바랍니다.")
|
|
return;
|
|
}
|
|
|
|
if(!confirm("연결 해제하시겠습니까?")) return;
|
|
|
|
$.ajax({
|
|
//url: "/partMng/deletePartRelateInfo.do",
|
|
url: "/partMng/deleteStatusPartRelateInfo.do", //231211 위에서 변경
|
|
method: 'post',
|
|
data: {"OBJID":$("#objId").val(), "leftObjId":leftObjId, "partObjId":leftPartLastObjId, "BOM_REPORT_OBJID":$("#objId").val()
|
|
, "leftPartChildObjId":leftPartChildObjId, "leftParentPartNo":leftParentPartNo, "leftParentObjId":leftParentObjId,
|
|
"CHANGE_TYPE":$('#CHANGE_TYPE').val(), "CHANGE_OPTION":$('#CHANGE_OPTION').val() },
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
if(data.result){
|
|
$(parent.frames['leftFrame'].document.location.reload());
|
|
//$(parent.frames['rightFrame'].fn_searchPart());
|
|
}
|
|
}
|
|
, error: function(jqxhr, status, error){
|
|
/* alert(jqxhr.statusText + ", " + status + ", " + error);
|
|
alert(jqxhr.status);
|
|
alert(jqxhr.responseText); */
|
|
}
|
|
});
|
|
}
|
|
//end of 구조 연결 해제
|
|
|
|
//구조 연결
|
|
function fn_relatePartInfo(leftObjId, rightCheckedArr, leftPartNoQty, leftPartLastObjId, leftPartChildObjId, leftQtyParObjId){
|
|
if(typeof rightCheckedArr != "undefined" && rightCheckedArr.length == 0){
|
|
alert("선택된 Part가 없습니다.");
|
|
return;
|
|
}
|
|
|
|
if(leftObjId == null){
|
|
if(!confirm("좌측에 선택된 Part정보가 없습니다.\n이대로 연결하면 1레벨로 등록됩니다.\n진행하시겠습니까?")){
|
|
return;
|
|
}
|
|
}
|
|
|
|
$.ajax({
|
|
url: "/partMng/relatePartInfo.do",
|
|
method: 'post',
|
|
data: {"leftObjId":leftObjId,"leftPartNoQty":leftPartNoQty, "OBJID":$("#objId").val(), "rightCheckedArr":rightCheckedArr, "partObjId":leftPartLastObjId, "BOM_REPORT_OBJID":$("#objId").val(),
|
|
"leftPartChildObjId":leftPartChildObjId, "leftQtyParObjId":leftQtyParObjId,
|
|
"CHANGE_TYPE":$('#CHANGE_TYPE').val(), "CHANGE_OPTION":$('#CHANGE_OPTION').val()},
|
|
dataType: 'json',
|
|
async:false,
|
|
success: function(data) {
|
|
if(data.result){
|
|
$(parent.frames['leftFrame'].document.location.reload());
|
|
//$(parent.frames['rightFrame'].fn_searchPart());
|
|
|
|
$(".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){
|
|
/* alert(jqxhr.statusText + ", " + status + ", " + error);
|
|
alert(jqxhr.status);
|
|
alert(jqxhr.responseText); */
|
|
}
|
|
});
|
|
}
|
|
//end of 구조 연결
|
|
|
|
function visibleChangeTalbe(visible){
|
|
if(visible){
|
|
$("#changeTable").show();
|
|
}else{
|
|
$("#changeTable").hide();
|
|
}
|
|
$('#CHANGE_TYPE,#CHANGE_OPTION').attr('required', visible);
|
|
}
|
|
|
|
//구조 연결 변경
|
|
function fn_changeRelatePartInfo(objId,rightObjId,leftObjId,leftPartNoQty,leftPartChildObjId,leftPartObjid,rightPartNo,rightPartRev){
|
|
$.ajax({
|
|
url: "/partMng/changeRelatePartInfo.do",
|
|
method: 'post',
|
|
data: {"rightObjId":rightObjId, "OBJID":objId,"BOM_REPORT_OBJID":$("#objId").val(),"CHANGE_TYPE":$('#CHANGE_TYPE').val(),
|
|
"CHANGE_OPTION":$('#CHANGE_OPTION').val(), "leftObjId":leftObjId,"leftPartNoQty":leftPartNoQty,"leftPartChildObjId":leftPartChildObjId,
|
|
"leftPartObjid":leftPartObjid, "rightPartNo":rightPartNo, "rightPartRev":rightPartRev},
|
|
dataType: 'json',
|
|
async:false,
|
|
success: function(data) {
|
|
if(data.result){
|
|
$(parent.frames['leftFrame'].document.location.reload());
|
|
|
|
$(parent.frames['rightFrame'].fn_searchPart());
|
|
|
|
$(".partChks", parent.frames['rightFrame'].document).prop("checked", false);
|
|
}
|
|
}
|
|
, error: function(jqxhr, status, error){
|
|
/* alert(jqxhr.statusText + ", " + status + ", " + error);
|
|
alert(jqxhr.status);
|
|
alert(jqxhr.responseText); */
|
|
}
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body class="backcolor" style="border:border:1px solid #ccc;">
|
|
<form name="form1" id="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>
|
|
-->
|
|
<table class="pmsPopupForm" id="changeTable">
|
|
<colgroup>
|
|
<!--
|
|
<col width="15%">
|
|
-->
|
|
<col width="*">
|
|
</colgroup>
|
|
<tr>
|
|
<td class="input_title" >
|
|
<label for="">설변구분</label>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_sub_title" colspan="">
|
|
<select name="CHANGE_TYPE" id="CHANGE_TYPE" class="select2" type="select" required reqTitle="설변구분"><option value="">선택</option>${code_map.CHANGE_TYPE}</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">설변사유</label>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_sub_title">
|
|
<select name="CHANGE_OPTION" id="CHANGE_OPTION" class="select2" type="select" required reqTitle="설변사유"><option value="">선택</option>${code_map.CHANGE_OPTION}</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
|
|
<div id="structurePopupBtnW" style="padding-top:0px;">
|
|
<input type="button" value="변경" class="plm_btns" id="moveChange">
|
|
<br>
|
|
<input type="button" value="<<" class="plm_btns" id="moveLeft" style="margin-left:0px;">
|
|
<br>
|
|
<input type="button" value=">>" class="plm_btns" id="moveRight" style="margin-left:0px;">
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |