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

539 lines
18 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"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<script>
$(document).ready(function(){
$("input[type=text]").keyup(function(e){
if(e.keyCode == 13){
$("#btnSearch").trigger("click");
}
});
$("#customer_cd").change(function(){
//fnc_productUPGNEWList(this.value,"","upg_no", "");
fn_projectNameList(this.value, "project_name", "");
});
$("#project_name").change(function(){
fn_UnitCodeList(this.value, "unit_code", "");
});
if("${param.customer_cd}"!=""){
fn_projectNameList("${param.customer_cd}", "project_name","");
$("#project_name").val("${param.project_name}");
}
if("${param.project_name}"!=""){
fn_UnitCodeList("${param.project_name}", "unit_code","");
$("#unit_code").val("${param.unit_code}");
}
$("#btnSearch").click(function(){
$("#search_partNo").val($.trim($("#search_partNo").val()));
$("#search_partName").val($.trim($("#search_partName").val()));
/*
if($("#customer_cd").val()==""){
Swal.fire('고객사를 선택해 주세요');
return;
}
if($("#project_name").val()==""){
Swal.fire('당사프로젝트를 선택해 주세요');
return;
}
if($("#unit_code").val()==""){
Swal.fire('유닛명을 선택해 주세요');
return;
} */
fn_search();
});
$("#btnExcel").click(function(){
$("#search_partNo").val($.trim($("#search_partNo").val()));
$("#search_partName").val($.trim($("#search_partName").val()));
fn_excelExport($("#mainGrid"),"BOM_REPORT_정전개");
});
var search_level = '${param.search_level}';
$(".dataTr").each(function(i){
var lev = $(this).attr("data-LEVEL");
//if(lev == 1){ //1level만 활성화
if(!fnc_isEmpty(search_level)){ //검색조건 LEVEL까지만 활성화
if(Number(lev) <= Number(search_level)){ //검색조건 LEVEL까지만 활성화
$(this).show();
}
}else{
$(this).show(); //전체 펼치기
}
});
/*
//클릭시 하위정보를 토글한다.
$(".dataTr").click(function(){
var choosedLev = $(this).attr("data-LEVEL");
var choosedBomObjId = $(this).attr("data-BOM_REPORT_OBJID");
$(".dataTr").each(function(i){
var bomReportObjId = $(this).attr("data-BOM_REPORT_OBJID");
var lev = $(this).attr("data-LEVEL");
if(bomReportObjId == choosedBomObjId){
//Swal.fire("bomReportObjId : "+bomReportObjId+", choosedBomObjId : "+choosedBomObjId);
if(lev != "1"){
$(this).toggle();
}
}
});
});
*/
$(".btnToggle").click(function(){
var choosedIsMinus = false;
var choosedSrc = $(this).attr("src");
if(choosedSrc.indexOf("Minus")>-1){
$(this).attr("src", "/images/btnPlus.png");
choosedIsMinus = true;
}else if(choosedSrc.indexOf("Plus")>-1){
$(this).attr("src", "/images/btnMinus.png");
}
var choosedBomObjId = $(this).attr("data-BOM_REPORT_OBJID");
var choosedObjId = $(this).attr("data-OBJID");
var choosedTopObjId = $(this).attr("data-TOP_OBJID");
var choosedSubTopObjId = $(this).attr("data-SUB_TOP_OBJID");
var choosedLev = $(this).attr("data-REAL_LEVEL");
//Swal.fire("choosedBomObjId : "+choosedBomObjId+"\nchoosedObjId : "+choosedObjId+"\nchoosedTopObjId : "+choosedTopObjId+"\nchoosedSubTopObjId : "+choosedSubTopObjId);
var isSelectedTopRow = false; //클릭한 최상위 로우 여부
var isBeforeSub = false; //이전의 자식 여부
var isBeforeMinus = false;
var isBeforePlus = false; //+버튼이 있을때(하위는 hide상태)
var isBeforePlusLev = '';
var isBeforeLev = '';
$(".dataTr").each(function(i){
var src = $(this).find("img").attr("src");
var bomReportObjId = $(this).attr("data-BOM_REPORT_OBJID");
var objId = $(this).attr("data-OBJID");
var topObjId = $(this).attr("data-TOP_OBJID");
var subTopObjId = $(this).attr("data-SUB_TOP_OBJID");
var lev = $(this).attr("data-REAL_LEVEL");
if(isBeforePlusLev >= lev){
isBeforePlus = false;
}else{
if(isBeforePlus && !choosedIsMinus){//+눌러서 보여줄때
return; //하위의 +인 하위는 pass(숨김상태)
}
}
//Swal.fire("bomReportObjId : "+bomReportObjId+"\nobjId : "+objId+"\ntopObjId : "+topObjId+"\nsubTopObjId : "+subTopObjId);
//console.log("1 " + choosedObjId + ":" + objId + ":" + choosedLev + ":" + lev + ":" + isSelectedTopRow + ":" + isBeforeSub);
if(isSelectedTopRow && Number(choosedLev) < Number(lev)){
//$(this).toggle();
if(choosedIsMinus){
$(this).hide();
}else{
if(!isBeforePlus) //중간에 +인 상태가 있으면 하위는 패스(숨김)
$(this).show();
}
}else{
isBeforeSub = false; //레벨이 높은게 나오면 자식 아님
}
//console.log("2 " + choosedObjId + ":" + objId + ":" + choosedLev + ":" + lev + ":" + isSelectedTopRow + ":" + isBeforeSub);
if(isBeforeSub || choosedObjId == objId){
isSelectedTopRow = true;
isBeforeSub = true;
}else{
isSelectedTopRow = false; //하위로 내려가다가 레벨이 바뀌면 false로 변경
}
//var isMinus = false;
//var src = $(this).attr("src");
if(src && src.indexOf("Minus")>-1 && choosedObjId != objId){
//$(this).attr("src", "/images/btnPlus.png");
isBeforeMinus = true;
isBeforePlus = false;
}else if(src && src.indexOf("Plus")>-1 && choosedObjId != objId){
//$(this).attr("src", "/images/btnMinus.png");
isBeforeMinus = false;
isBeforePlus = true;
isBeforePlusLev = lev;
}else{
//isBeforeMinus = false;
//isBeforePlus = false;
}
//console.log("3 " + choosedObjId + ":" + objId + ":" + choosedLev + ":" + lev + ":" + isSelectedTopRow + ":" + isBeforeSub);
/* 기존 로직(1단계에서만 +- 가능)
if(choosedTopObjId == topObjId){
//Swal.fire("bomReportObjId : "+bomReportObjId+", choosedBomObjId : "+choosedBomObjId);
if(lev != "1"){
var topObjId = $(this).attr("data-TOP_OBJID");
var realLevel = $(this).attr("data-REAL_LEVEL");
//Swal.fire(realLevel);
//Swal.fire("11 choosedObjId : "+choosedObjId+", topObjId : "+topObjId);
if(realLevel != "1"){
topObjId = $(this).attr("data-SUB_TOP_OBJID");
}
//Swal.fire("22 choosedObjId : "+choosedObjId+", topObjId : "+topObjId);
if(choosedObjId == topObjId){
$(this).toggle();
}
}
}
*/
isBeforeLev = lev;
});
});
//level별 색상
$(".tabulator-row tabulator-selectable tabulator-row-odd").each(function(i){
var lev = fnc_checkNull(cell.getData().LEVEL);
console.log("lev::"+lev)
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");
}
});
$(".btnEODetail").click(function(){
var objId = $(this).attr("data-EO_OBJID");
fn_openEOPopup(objId);
});
$(".btnPartDetail").click(function(){
var objId = $(this).attr("data-PART_OBJID");
fn_openPartPopup(objId);
});
$("#search_product_mgmt_objId").change(function(){
fnc_getSpecNameListAppend(this.value,"search_spec_name","${param.search_spec_name}");
});
//fnc_getSpecNameListAppend("${param.search_product_mgmt_objId}","search_spec_name","${param.search_spec_name}");
fn_search();
});
var columns = [
{title:'OBJID', field:'OBJID' ,visible:false },
{title:'PART_OBJID', field:'PART_OBJID' ,visible:false },
{title:'LEVEL', field:'LEVEL' ,visible:false },
<c:forEach var="i" begin="1" end="3">
{headerHozAlign : 'center', hozAlign : 'center', width : '30', title : '${i}', field : '${(cell.getData().LEVEL) eq i ? "*" : ""}' },
</c:forEach>
{headerHozAlign : 'center', hozAlign : 'left', width : '180', title : '품번', field : 'PART_NO',
formatter:fnc_createGridAnchorTag,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().PART_OBJID);
fn_openPartPopup(objid);
}
},
{headerHozAlign : 'center', hozAlign : 'left', /* width : '270', */ title : '품명', field : 'PART_NAME' },
{headerHozAlign : 'center', hozAlign : 'center', width : '70', title : '수량', field : 'QTY' },
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '3D', field : 'FILE_3D_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().PART_OBJID);
var docType = '3D_CAD';
var docTypeName = '3D CAD 첨부파일';
fn_FileRegist(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : '2D', field : 'FILE_2D_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().PART_OBJID);
var docType = '2D_DRAWING_CAD';
var docTypeName = '2D(Drawing) CAD 첨부파일';
fn_FileRegist(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '60', title : 'PDF', field : 'FILE_PDF_CNT',
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().PART_OBJID);
var docType = '2D_PDF_CAD';
var docTypeName = '2D(PDF) CAD 첨부파일';
fn_FileRegist(objid, docType, docTypeName);
}
},
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '재질', field : 'MATERIAL' },
{headerHozAlign : 'center', hozAlign : 'left', width : '190', title : '사양(규격)', field : 'SPEC' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '후처리', field : 'POST_PROCESSING' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'MAKER', field : 'MAKER' },
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : 'Revision', field : 'REVISION' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'EO No', field : 'EO_NO' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'EO Date', field : 'EO_DATE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'PART 구분', field : 'PART_TYPE_TITLE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'REMARK', field : 'REMARK' }
];
//var grid;
function fn_search(){
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/partMng/selectStructureAscendingGridList.do", columns, true, null, null, null, true);
}
function fn_check(){
var partNo = fnc_checkNull($("#search_partNo").val());
var partName = fnc_checkNull($("#search_partName").val());
if(partNo == "" && partName == ""){
Swal.fire("조회조건을 설정해주시기 바랍니다.");
return false;
}
if(partName == "" && partNo.length < 5){
Swal.fire("품번은 최소 5자이상 입력하시기 바랍니다.");
return false;
}
if(partNo == "" && partName.length < 5){
Swal.fire("품명은 최소 5자이상 입력하시기 바랍니다.");
return false;
}
return true;
}
function fn_openEOPopup(objId){
window.open("",target,"width=1000,height=800");
window.open("/eoMng/eoMngDetailPopUp.do?OBJID="+objId, "tempEoListPopup","width=1000,height=800,toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
function fn_openPartPopup(objId){
window.open("/partMng/partMngDetailPopUp.do?OBJID="+objId, "tempPartListPopup", "width=600, height=700, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
function openPartMngPopup(objId){
var hiddenForm = document.hiddenForm;
var url = "/partMng/partMngFormPopUp.do";
if("" != objId){
url = "/partMng/partMngDetailPopUp.do";
}
var target = "partMngPopUp";
window.open(url,target,"width=600, height=730, menubars=no, scrollbars=yes, resizable=yes");
hiddenForm.action = url;
hiddenForm.OBJID.value = objId;
hiddenForm.target = target;
hiddenForm.submit();
}
function fn_FileRegist(objId, docType, docTypeName){
var popup_width = 800;
var popup_height = 335;
var objId = objId;
var docType = docType;
var docTypeName = docTypeName;
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
var url = "/projectConcept/FileRegistPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
}
/* function fn_search(){
_startLoading("검색중입니다.");
document.form1.action = "";
document.form1.submit();
} */
function fn_excelExport(pGridObj,pFileName){
var mya = pGridObj.getDataIDs();
var data = pGridObj.getRowData(mya[0]);
var colNames=new Array();
var ii=0;
for (var d in data){ colNames[ii++] = d; }
//컬럼 헤더 가져오기
var columnHeader = pGridObj.jqGrid('getGridParam','colNames') + '';
var arrHeader = columnHeader.split(',');
var html="<table border=1><tr>";
for ( var y = 0; y < arrHeader.length; y++ ) {
var hName = arrHeader[y];
if("PART_OBJID" == hName || "EO_OBJID" == hName){
continue;
}
html = html + "<td><b>" + arrHeader[y] + "</b></td>";
}
html = html + "</tr>";
//값 불러오기
for(var i=0;i< mya.length;i++) {
var datac= pGridObj.getRowData(mya[i]);
html = html +"<tr>";
for(var j=0; j< colNames.length;j++){
if("PART_OBJID" == colNames[j] || "EO_OBJID" == colNames[j]){
continue;
}
html=html + '<td>' + datac[colNames[j]]+"</td>";
}
html = html+"</tr>";
}
html=html+"</table>"; // end of line at the end
document.EXCEL_.csvBuffer.value = html;
document.EXCEL_.fileName.value = pFileName;
document.EXCEL_.target='_new';
document.EXCEL_.submit();
}
</script>
</head>
<body class="backcolor">
<form id="EXCEL_" name="EXCEL_" action="/partMng/structureAscendingExcelList.do" method="post">
<input type="hidden" name="csvBuffer" id="csvBuffer" value="">
<input type="hidden" name="fileName" id="fileName" value="">
</form>
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="OBJID" id="OBJID">
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="search" id="search" value="Y">
<input type="hidden" name="actionType" id="actionType" value="" />
<div class="min_part_enroll">
<div class="content-box">
<div class=""> <!-- content-box-s -->
<div class="plm_menu_name_gdnsi">
<h2>
<span>제품관리_BOM 조회</span>
</h2>
<div class="btnArea">
<!-- <input type="button" value="Excel Download" class="plm_btns" id="btnExcel"> -->
<input type="button" value="조회" class="plm_btns" id="btnSearch">
</div>
</div>
<div id="plmSearchZon">
<table>
<tbody>
<tr>
<%-- <td><label for="product_code">기종(모델)명</label></td>
<td>
<select name="search_product_mgmt_objId" id="search_product_mgmt_objId" class="select2" style="width:200px;" autocomplete="off" type="select" title="기종명" required>
<option value="">선택</option>
${code_map.product_code}
</select>
</td> --%>
<td><label for="customer_cd">고객사</label></td>
<td>
<select name="customer_cd" id="customer_cd" style="" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.customer_cd}
</select>
</td>
<td><label for="project_name">프로젝트번호</label></td>
<td>
<select name="project_name" id="project_name" style="width:170px" class="select2" autocomplete="off">
</select>
</td>
<td><label for="unit_code">유닛명</label></td>
<td>
<select name="unit_code" id="unit_code" style="width:350px" class="select2" autocomplete="off">
</select>
</td>
<!-- <td><label for="">사양명</label></td>
<td>
<select name="search_spec_name" id="search_spec_name" class="select2" style="width:200px;" autocomplete="off" type="select"></select>
</td> -->
<td class="align_r">
<label for="" class="">품번</label>
</td>
<td>
<input type="text" name="search_partNo" id="search_partNo" value="${param.search_partNo}" class="text_area" style="width:200px;"/>
</td>
<%--
<td class="align_r">
<label for="" class="">품명</label>
</td>
<td>
<input type="text" name="search_partName" id="search_partName" value="${param.search_partName}" class="text_area" style="width:200px;"/>
</td>
--%>
<td class="align_r">
<label for="" class="">LEVEL</label>
</td>
<td>
<select id="search_level" name="search_level">
<option value="">전체</option>
<option value="1" ${param.search_level eq '1'?'selected':''}>1</option>
<option value="2" ${param.search_level eq '2'?'selected':''}>2</option>
<option value="3" ${param.search_level eq '3'?'selected':''}>3</option>
<option value="4" ${param.search_level eq '4'?'selected':''}>4</option>
<option value="5" ${param.search_level eq '5'?'selected':''}>5</option>
<option value="6" ${param.search_level eq '6'?'selected':''}>6</option>
</select>
</td>
</tr>
</tbody>
</table>
</div>
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
</div>
</div>
</div>
</form>
</body>
<style>
.container::-webkit-scrollbar-thumb {background: linear-gradient(to bottom, #f5d78e, #f5d78e) !important;}
.container::-webkit-scrollbar-track {background-color: white !important;}
.container::-webkit-scrollbar-button { display: none !important;}
</style>
</html>