ERP-node/WebContent/WEB-INF/view/partMng/structurePopupLeft.jsp

373 lines
13 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" %>
<%
ArrayList TREELIST = new ArrayList();
TREELIST = (ArrayList)request.getAttribute("tree");
int z = 0;
int Maxlevel = 0;
//int[] levelarr;
int[] levelarr = new int[TREELIST.size()];
//if(TREELIST != null){
//levelarr = new int[TREELIST.size()];
for(int i=0; i< TREELIST.size(); i++){
HashMap treemap = (HashMap)TREELIST.get(i);
int level = Integer.parseInt(CommonUtils.checkNull(treemap.get("LEVEL")));
// System.out.println("level : "+level);
levelarr[i] = level;
}
if(null != TREELIST && 0 < TREELIST.size()){
HashMap MaxlevelMap = (HashMap)TREELIST.get(0);
Maxlevel = Integer.parseInt(CommonUtils.checkNull(MaxlevelMap.get("MAX_LEVEL")));
}
//}
%>
<style>
::-webkit-scrollbar {
width: 10px;
height: 15px;
}
#structureTableWrap1 {
top: 56px;
}
</style>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<script>
$(function(){
if('${param.readonly}' == 'readonly'){
$("#structureName2").hide();
}
$(".qty").keyup(function(e){
var key = e.keyCode;
if(key == 13){
var leftObjId = $(this).attr("data-CHILD_OBJID");
var leftQtyParObjId = $(this).attr("data-PART_OBJID");
var leftPartLastObjId = $(this).attr("data-LAST_PART_OBJID");
var leftPartNo = $(this).attr("data-PART_NO");
var qty = $(this).val();
/* var isNumeric = $.isNumeric(qty);
if(!isNumeric){
Swal.fire("숫자만 입력 가능합니다. 수량을 1개로 조정합니다.");
$(this).val(1);
fn_saveQty(leftObjId, 1);
return;
} */
fn_saveQty(leftObjId, qty, leftPartNo, leftQtyParObjId, leftPartLastObjId);
}
});
$("#btnExcel").click(function() {
fn_excel();
});
//첨부팝업
$(".File").click(function(){
var popup_width = 800;
var popup_height = 335;
var objId = $(this).attr("data-OBJID");
var docType =$(this).attr("data-docType");
var docTypeName = $(this).attr("data-docTypeName");
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
var url = "/projectConcept/FileRegistPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
});
$(".seq").keyup(function(e){
var key = e.keyCode;
if(key == 13){
var leftObjId = $(this).attr("data-CHILD_OBJID");
var leftPartNo = $(this).attr("data-PART_NO");
var seq = $(this).val();
var partNo = $(this).attr("data-PART_NO");
var isNumeric = $.isNumeric(seq);
if(!isNumeric){
Swal.fire("숫자만 입력 가능합니다.");
$(this).val(1);
fn_saveSeq(leftObjId, 1,partNo);
return;
}
fn_saveSeq(leftObjId, seq,partNo);
}
});
/*
$(".qty").blur(function(){
var objId = $(this).attr("data-OBJID");
var qty = $(this).val();
fn_saveQty(objId, qty);
});
*/
$(document).ready(function(){
$(".dataTr").each(function(i){
var lev = $(this).attr("data-LEVEL");
if(lev == 1){
$(this).css("background-color", "#fde9d9");
}else if(lev == 2){
$(this).css("background-color", "#daeef3");
}else if(lev == 3){
$(this).css("background-color", "#e4dfec");
}else if(lev == 4){
$(this).css("background-color", "#ebf1de");
}else if(lev == 5){
$(this).css("background-color", "#f2f2f2");
}else if(lev == 6){
$(this).css("background-color", "#f2dcdb");
}else if(lev == 7){
$(this).css("background-color", "#eeece1");
}else if(lev == 8){
$(this).css("background-color", "#dce6f1");
}else if(lev == 9){
$(this).css("background-color", "#FFFFEB");
}else if(lev == 10){
$(this).css("background-color", "#ffffff");
}
});
});
});
function fn_saveQty(leftObjId,qty, leftQtyParObjId){
$.ajax({
url: "/partMng/structureQtySave.do",
method: 'post',
//data: {"CHILD_OBJID":leftObjId,"QTY":qty}, //231211 아래로 변경(설변)
data: {"BOM_REPORT_OBJID":"${info.OBJID}","CHILD_OBJID":leftObjId,"QTY_TEMP":qty, "OBJID":leftQtyParObjId},
dataType: 'json',
success: function(data) {
if(data.result){
Swal.fire('저장하였습니다.');
}
}
, error: function(jqxhr, status, error){
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText);
}
});
}
function fn_saveSeq(leftObjId,seq,partNo){
var foucs = "seq_"+partNo;
$.ajax({
url: "/partMng/structureSeqSave.do",
method: 'post',
data: {"BOM_REPORT_OBJID":"${info.OBJID}","CHILD_OBJID":leftObjId,"SEQ":seq},
dataType: 'json',
async : false,
success: function(data) {
Swal.fire('변경되었습니다');
var url = window.location.href;
url = url + "&foucs="+foucs;
location.href = url;
//Swal.fire("#"+seq+"_"+partNo);
//$("#"+seq+"_"+partNo).focus();
//parent.frames['leftFrame'].reload();
}
, error: function(jqxhr, status, error){
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText);
}
});
}
function openPartMngPopup(objId, lastPartObjid, childObjid, BOM_LAST_PART_OBJID){
var popup_width = 800;
var popup_height = 500;
var hiddenForm = document.hiddenForm;
var url = "/partMng/partMngFormPopUp.do";
if("" != objId){
url = "/partMng/partMngDetailPopUp.do?ACTION_TYPE=work";
}
var target = "partMngPopUp";
fn_centerPopup(popup_width, popup_height, url, target);
hiddenForm.action = url;
hiddenForm.OBJID.value = fnc_checkNull(BOM_LAST_PART_OBJID, objId);
if('working' == '${param.actionType}')
hiddenForm.OBJID.value = lastPartObjid; //231211 최신 파트로 조회
hiddenForm.LAST_PART_OBJID.value = lastPartObjid;
hiddenForm.CHILD_OBJID.value = childObjid;
hiddenForm.target = target;
hiddenForm.submit();
}
function fn_excel() {
document.form1.actionType.value = "excel";
var form = document.form1;
form.action="/partMng/structurePopupLeft.do";
form.submit();
}
</script>
</head>
<body class="backcolor">
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="OBJID" id="OBJID">
<input type="hidden" name="LAST_PART_OBJID" id="LAST_PART_OBJID">
<input type="hidden" name="CHILD_OBJID" id="CHILD_OBJID">
</form>
<form name="form1" action="" method="post" onsubmit="return false;">
<input type="hidden" name="objid" id="objid" value="${info.OBJID}" />
<input type="hidden" name="objId" id="objId" value="${info.OBJID}" />
<input type="hidden" name="actionType" value="" />
<div id="structureTableWrap1" style="width: 99%;">
<div id="structureName">(${info.CUSTOMER_NAME}_${info.CUSTOMER_PROJECT_NAME}_${info.UNIT_NAME})_${info.REV}<input type="button" value="Excel Download" class="plm_btns structure_btn" id="btnExcel" style="float:right;"></div>
<div id="structureName2"><font size="2px">※수량 변경 후, 엔터치시면 저장됩니다.(신규 추가 파트만 가능)</font></div>
<div class="plm_scroll_table" style="height:90%;overflow-y:scroll;">
<table id="structurePopupTableHead" class="plm_table">
<colgroup>
<% if(Maxlevel == 0){%>
<col width="25px" />
<%}else{%>
<col width="25px" />
<%}
for(int i=0; i< Maxlevel; i++){%>
<col width="25px" />
<%}%>
<col width="130px" />
<col width="160px" />
<col width="50px" />
<col width="30px" /> <!-- 3D -->
<col width="30px" /> <!-- 2D -->
<col width="30px" /> <!-- 2D PDF -->
<col width="70px" /> <!-- Material -->
<col width="190px" /> <!-- SPEC. -->
<col width="90px" /> <!-- MAKER. -->
<col width="70px" /> <!-- Revision -->
<col width="75px" /> <!-- EO no -->
<col width="75px" /> <!-- EO Date -->
<col width="70px" /> <!-- 부품 유향 -->
<!-- <col width="15%" /> -->
</colgroup>
<tr class="plm_thead">
<td colspan="${MAXLEV + 1}">Level</td>
<td>품번</td>
<td>품명</td>
<td>수량</td>
<td>3D</td>
<td>2D</td>
<td>PDF</td>
<td>재질</td>
<td>사양(규격)</td>
<td>MAKER</td>
<td>Revision</td>
<td>EO No</td>
<td>EO Date</td>
<td>PART 구분</td>
<!-- <td>순번</td> -->
</tr>
</table>
<table id="structurePopupTable2" class="plm_table">
<colgroup>
<% if(Maxlevel == 0){%>
<col width="25px" />
<%}else{%>
<col width="25px" />
<%}
for(int i=0; i< Maxlevel; i++){%>
<col width="25px" />
<%}%>
<col width="130px" />
<col width="160px" />
<col width="50px" />
<col width="30px" /> <!-- 3D -->
<col width="30px" /> <!-- 2D -->
<col width="30px" /> <!-- 2D PDF -->
<col width="70px" /> <!-- Material -->
<col width="190px" /> <!-- SPEC. -->
<col width="90px" /> <!-- MAKER. -->
<col width="70px" /> <!-- Revision -->
<col width="75px" /> <!-- EO no -->
<col width="75px" /> <!-- EO Date -->
<col width="70px" /> <!-- 부품 유향 -->
<!-- <col width="15%" /> -->
</colgroup>
<c:choose>
<c:when test="${!empty tree}">
<c:forEach var="item" items="${tree}" varStatus="status">
<tr class="dataTr" data-LEVEL="${item.LEVEL}">
<td><input type="radio" name="checkedPartNo" value="${item.CHILD_OBJID}" data-OBJID="${item.OBJID}" data-PART_NO="${item.PART_NO}"
data-PARENT_PART_NO="${item.PARENT_PART_NO}" data-PART_NO_QTY="${item.LAST_PART_OBJID}"
data-PARENT_PARTS="${item.PARENT_PARTS}" data-LAST_PART_OBJID="${item.LAST_PART_OBJID}"
data-PARENT_OBJID="${item.PARENT_OBJID}" data-PART_OBJID="${item.PART_OBJID}"
data-BOM_LAST_PART_OBJID="${item.BOM_LAST_PART_OBJID}"
>
</td>
<%
for(int i=0; i< Maxlevel; i++){
if(levelarr[z] == (i+1)){%>
<td>*</td>
<% }else{ %>
<td> </td>
<% }
}
z++;
%>
<td style="text-align:left !important;" id="lpadpartno"><pre><a href="#" onclick="openPartMngPopup('${item.PART_OBJID}','${item.LAST_PART_OBJID}','${item.CHILD_OBJID}','${item.BOM_LAST_PART_OBJID}');">${item.PART_NO}</a></pre></td>
<td class="align_l">${item.PART_NAME}</td>
<c:if test="${item.STATUS ne 'adding'}">
<td class="align_c">${item.QTY_TEMP}</td>
</c:if>
<c:if test="${item.STATUS eq 'adding'}">
<td class="align_c"><input type="text" name="qty_${item.PART_NO}" id="qty_${item.PART_NO}" class="qty" style="width:40px; text-align:center;" maxlength="3" value="${empty item.QTY_TEMP?'0':item.QTY_TEMP}" data-CHILD_OBJID="${item.CHILD_OBJID}" data-PART_NO="${item.PART_NO}" data-PARENT_PART_NO="${item.PARENT_PART_NO}" ></td>
</c:if>
<td><a href="#" class="File file_${item.CU01_CNT eq 0?'empty_':''}icon" data-OBJID="${item.LAST_PART_OBJID}" data-docType="3D_CAD" data-docTypeName="3D CAD 첨부파일"></a></td>
<td><a href="#" class="File file_${item.CU02_CNT eq 0?'empty_':''}icon" data-OBJID="${item.LAST_PART_OBJID}" data-docType="2D_DRAWING_CAD" data-docTypeName="2D(Drawing) CAD 첨부파일"></a></td>
<td><a href="#" class="File file_${item.CU03_CNT eq 0?'empty_':''}icon" data-OBJID="${item.LAST_PART_OBJID}" data-docType="2D_PDF_CAD" data-docTypeName="2D(PDF) CAD 첨부파일"></a></td>
<td title="${item.MATERIAL}" class="align_l" style="text-align: left; padding-left: 10px;">${item.MATERIAL}</td><!-- 재질 -->
<td title="${item.SPEC}" class="align_l" style="text-align: left; padding-left: 10px;">${item.SPEC}</td><!-- SPEC -->
<td title="${item.MAKER}" class="align_l" style="text-align: left; padding-left: 10px;">${item.MAKER}</td><!-- SPEC -->
<td title="${item.REVISION}" class="align_l" style="text-align: left; padding-left: 10px;">${item.REVISION}</td><!-- REVISION -->
<td title="${item.EO_NO}" class="align_c">${item.EO_NO}</td><!-- REVISION -->
<td title="${item.EO_DATE}" class="align_c">${item.EO_DATE}</td><!-- REVISION -->
<td title="${item.PART_TYPE_TITLE}" class="align_c">${item.PART_TYPE_TITLE}</td><!-- SIZE -->
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="5" align="center">등록된 구조정보가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</table>
</div>
</div>
</div>
</form>
</body>
</html>