- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
582 lines
22 KiB
Plaintext
582 lines
22 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
<%@ 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>
|
|
var productTypeCodeList = fnc_getCodeList("<%=Constants.SALES_PRODUCT_TYPE_CODE%>");
|
|
|
|
var salesPartCodeList = fnc_getCodeList("<%=Constants.SALES_PART_CODE%>");
|
|
var paleteCodeList = fnc_getCodeList("<%=Constants.PALETTE_CODE%>");
|
|
var sourcingCodeList = fnc_getCodeList("<%=Constants.SOURCING_CODE%>");
|
|
var processCodeList = fnc_getCodeList("<%=Constants.PROCESS_CODE%>");
|
|
|
|
$(document).ready(function(){
|
|
|
|
$("._table1").scroll(function () {
|
|
$("._table2").scrollLeft($("._table1").scrollLeft());
|
|
});
|
|
$("._table2").scroll(function () {
|
|
$("._table1").scrollTop($("._table2").scrollTop());
|
|
$("._table1").scrollLeft($("._table2").scrollLeft());
|
|
});
|
|
|
|
$("#btnSave").click(function(){
|
|
fn_save();
|
|
});
|
|
|
|
$("#btnClose").click(function(){
|
|
opener.fn_search();
|
|
self.close();
|
|
});
|
|
|
|
$(".btnToggle").click(function(){
|
|
var src = $(this).attr("src");
|
|
if(src.indexOf("Plus")>-1){
|
|
$(this).attr("src", "/images/btnMinus.png");
|
|
}else if(src.indexOf("Minus")>-1){
|
|
$(this).attr("src", "/images/btnPlus.png");
|
|
}
|
|
|
|
var choosedTr = $(this).parents(".dataTr:first");
|
|
var choosedBRObjId = $(choosedTr).attr("data-BOM_REPORT_OBJID");
|
|
var choosedPath = $(choosedTr).attr("data-PATH").replaceAll("{","").replaceAll("}","");
|
|
|
|
$(".dataTr").each(function(i){
|
|
var _lev = $(this).attr("data-LEVEL");
|
|
var _BRObjId = $(this).attr("data-BOM_REPORT_OBJID");
|
|
var _Path = $(this).attr("data-PATH").replaceAll("{","").replaceAll("}","");
|
|
|
|
if(_lev == 1 || _BRObjId != choosedBRObjId){
|
|
return true;
|
|
}
|
|
|
|
if(_Path.indexOf(choosedPath)>-1){
|
|
$(this).toggle();
|
|
}
|
|
});
|
|
});
|
|
|
|
//level별 색상
|
|
$(".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");
|
|
}
|
|
});
|
|
|
|
$("input[name='OBJID']").each(function(i){
|
|
var targetObjId = $(this).val();
|
|
|
|
fn_setProductTypeCode(targetObjId, productTypeCodeList);
|
|
fn_setPartnerCode(targetObjId);
|
|
|
|
fn_setUnitPrice(targetObjId);
|
|
|
|
fn_setSelectAppend(salesPartCodeList,"sales_part_code_"+targetObjId,$("#TEMP_SALES_PART_CODE_"+targetObjId).val());
|
|
fn_setSelectAppend(paleteCodeList,"palette_code_"+targetObjId,$("#TEMP_PALETTE_CODE_"+targetObjId).val());
|
|
fn_setSelectAppend(sourcingCodeList,"sourcing_code_"+targetObjId,$("#TEMP_SOURCING_CODE_"+targetObjId).val());
|
|
fn_setSelectAppend(processCodeList,"process1_code_"+targetObjId,$("#TEMP_PROCESS1_CODE_"+targetObjId).val());
|
|
fn_setSelectAppend(processCodeList,"process2_code_"+targetObjId,$("#TEMP_PROCESS2_CODE_"+targetObjId).val());
|
|
fn_setSelectAppend(processCodeList,"process3_code_"+targetObjId,$("#TEMP_PROCESS3_CODE_"+targetObjId).val());
|
|
fn_setSelectAppend(processCodeList,"process4_code_"+targetObjId,$("#TEMP_PROCESS4_CODE_"+targetObjId).val());
|
|
});
|
|
});
|
|
|
|
function fn_setSelectAppend(resultList,selectboxId,selectedVal){
|
|
$("#"+selectboxId).empty();
|
|
|
|
$("#"+selectboxId).append("<option value=''>선택</option>");
|
|
|
|
if(resultList != null && 0 < resultList.length){
|
|
|
|
|
|
for (var i = 0; i < resultList.length; i++) {
|
|
var commonCodeId = resultList[i].CODE_ID;
|
|
var commonCodeName = resultList[i].CODE_NAME;
|
|
$("#"+selectboxId).append("<option value='"+commonCodeId+"'>"+commonCodeName+"</option>");
|
|
}
|
|
$("#"+selectboxId).val(selectedVal);
|
|
}
|
|
}
|
|
|
|
function fn_setUnitPrice(targetObjId){
|
|
|
|
$("#unit_price_"+targetObjId).empty();
|
|
|
|
var unitPrice = "";
|
|
var replacepartner_price = $("#partner_price_"+targetObjId).val();
|
|
if(replacepartner_price){
|
|
replacepartner_price = replacepartner_price.replace(/,/gi,"")
|
|
}
|
|
var partnerPrice = fnc_checkNull(replacepartner_price);
|
|
var qty = fnc_checkNull($("#QTY_"+targetObjId).val());
|
|
|
|
if("" != partnerPrice && "" != qty){
|
|
unitPrice = (partnerPrice * qty);
|
|
}
|
|
|
|
unitPrice = addComma(unitPrice);
|
|
|
|
$("#unit_price_"+targetObjId).append(unitPrice);
|
|
|
|
}
|
|
|
|
function fn_save(){
|
|
|
|
if(confirm("저장하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/salesMng/saveSalesMngBOM.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
Swal.fire(data.msg);
|
|
if(data.result){
|
|
opener.fn_search();
|
|
self.close(0);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function fn_setProductTypeCode(targetObjId,resultList){
|
|
|
|
var productTypeCodeName = "product_type_code_"+targetObjId;
|
|
|
|
var tempVal = $("#TEMP_PRODUCT_TYPE_CODE_"+targetObjId).val();
|
|
|
|
$("select[name='"+productTypeCodeName+"']").empty();
|
|
|
|
$("select[name='"+productTypeCodeName+"']").append("<option value=''>선택</option>");
|
|
|
|
if(resultList != null && 0 < resultList.length){
|
|
for (var i = 0; i < resultList.length; i++) {
|
|
var commonCodeId = resultList[i].CODE_ID;
|
|
var commonCodeName = resultList[i].CODE_NAME;
|
|
$("select[name='"+productTypeCodeName+"']").append("<option value='"+commonCodeId+"'>"+commonCodeName+"</option>");
|
|
}
|
|
|
|
$("select[name='"+productTypeCodeName+"']").val(tempVal);
|
|
}
|
|
}
|
|
|
|
//파트에 해당하는 발주특성의 정보를 가져온다.
|
|
function fn_getOrderSpecMngList(partObjId){
|
|
var resultList = null;
|
|
|
|
$.ajax({
|
|
url:"/salesMng/getOrderSpecMngList.do",
|
|
type:"POST",
|
|
data:{"PART_OBJID":partObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
resultList = data
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
|
|
return resultList;
|
|
}
|
|
|
|
function fn_setPartnerCode(targetObjId){
|
|
var partObjId = $("#PART_OBJID_"+targetObjId).val();
|
|
|
|
var partnerList = fn_getOrderSpecMngList(partObjId);
|
|
|
|
var tempPartnerVal = fnc_checkNull($("#TEMP_PARTNER_OBJID_"+targetObjId).val());
|
|
var tempPartnerPrice = fnc_checkNull($("#TEMP_PARTNER_PRICE_"+targetObjId).val());
|
|
var tempPartnerRemark = fnc_checkNull($("#TEMP_PARTNER_REMARK_"+targetObjId).val());
|
|
|
|
$("select[name='partner_objid_"+targetObjId+"']").empty();
|
|
|
|
$("select[name='partner_objid_"+targetObjId+"']").append("<option value=''>선택</option>");
|
|
|
|
if(partnerList != null && 0 < partnerList.length){
|
|
for (var i = 0; i < partnerList.length; i++){
|
|
var partnerObjId = partnerList[i].PARTNER_OBJID;
|
|
var partnerName = partnerList[i].PARTNER_NAME;
|
|
var partnerPrice = partnerList[i].PARTNER_PRICE;
|
|
var partnerRemark = partnerList[i].REMARK;
|
|
$("select[name='partner_objid_"+targetObjId+"']").append("<option value='"+partnerObjId+"' data-PARTNER_PRICE='"+partnerPrice+"' data-PARTNER_REMARK='"+partnerRemark+"'>"+partnerName+"</option>");
|
|
}
|
|
|
|
if("" != tempPartnerVal){
|
|
$("select[name='partner_objid_"+targetObjId+"']").val(tempPartnerVal);
|
|
$("select[name='partner_objid_"+targetObjId+"']").trigger("change");
|
|
|
|
if("" != tempPartnerPrice){
|
|
var commatempPartnerPrice = addComma(tempPartnerPrice);
|
|
$("input[name='partner_price_"+targetObjId+"']").val(commatempPartnerPrice);
|
|
fn_setUnitPrice(targetObjId);
|
|
}
|
|
|
|
if("" != tempPartnerRemark){
|
|
$("input[name='partner_remark_"+targetObjId+"']").val(tempPartnerRemark);
|
|
}
|
|
|
|
}else{
|
|
if(0 < partnerList.length){
|
|
$("select[name='partner_objid_"+targetObjId+"'] option:eq(1)").prop("selected", true);
|
|
$("select[name='partner_objid_"+targetObjId+"']").trigger("change");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function fn_search(){
|
|
document.form1.actionType.value = "search";
|
|
document.form1.action = "/partmgmt/structureDescendingList.do";
|
|
document.form1.submit();
|
|
}
|
|
|
|
function fn_excelExport(){
|
|
document.form1.actionType.value = "excel";
|
|
document.form1.action = "/partmgmt/structureAscendingListPopup.do";
|
|
document.form1.submit();
|
|
}
|
|
|
|
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=700, menubars=no, scrollbars=yes, resizable=yes");
|
|
|
|
hiddenForm.action = url;
|
|
hiddenForm.OBJID.value = objId;
|
|
hiddenForm.target = target;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
function fn_setOrderSpecMngInfo(targetObjId){
|
|
var selectedPartnerPrice = fnc_checkNull($("select[name='partner_objid_"+targetObjId+"'] option:selected").attr("data-PARTNER_PRICE"));
|
|
|
|
var commaselectedPartnerPrice = addComma(selectedPartnerPrice);
|
|
|
|
$("input[name='partner_price_"+targetObjId+"']").val(commaselectedPartnerPrice);
|
|
|
|
fn_setUnitPrice(targetObjId);
|
|
}
|
|
|
|
function fnc_numberOnly(obj){
|
|
$("#"+obj.attr("id")).val(addComma(obj.val().replace(/[^0-9]/g,"")));
|
|
//.replace(/[^0-9]/g,""))
|
|
}
|
|
|
|
function addComma(data) {
|
|
return data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
}
|
|
</script>
|
|
</head>
|
|
<body class="backcolor">
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="PART_OBJID" id="PART_OBJID">
|
|
<input type="hidden" name="OBJID" id="OBJID">
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="actionType" id="actionType" value="" />
|
|
<input type="hidden" name="bom_report_objid" value="${param.bom_report_objid}" />
|
|
|
|
<div class="min_part_enroll">
|
|
<div class="content-box">
|
|
<div class="content-box-s">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>구매 BOM 상세</span>
|
|
</h2>
|
|
</div>
|
|
<div id="plmSearchZon" style="display:none;">
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<td><label for="product_code">기종(모델)명</label></td>
|
|
<td>
|
|
<select name="product_code" id="product_code" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.product_code}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="product_mgmt_spec">사양</label></td>
|
|
<td>
|
|
<select name="product_mgmt_spec" id="product_mgmt_spec" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
</select>
|
|
</td>
|
|
<td><label for="">UPG_NO</label></td>
|
|
<td>
|
|
<select name="upg_no" id="upg_no" class="select2" style="width:250px;" autocomplete="off"></select>
|
|
</td>
|
|
<td class="align_r">
|
|
<label for="" class="">Part No</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="search_partNo" id="search_partNo" value="${param.search_partNo}" class="text_area" maxlength="15"/>
|
|
</td>
|
|
<td class="align_r">
|
|
<label for="" class="">Part Name</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="search_partName" id="search_partName" value="${param.search_partName}" class="text_area" style="width:350px;" maxlength="20" placeholder="ex) HEX. BOLT"/>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin">
|
|
<div class="in_table_scroll_wrap _table1" style="height:53px;width:99.2%;">
|
|
<table class="plm_table" style="height:53px;width:99.4%;">
|
|
<colgroup>
|
|
<col width="40px" />
|
|
<col width="120px" /><!-- 기종 -->
|
|
<col width="120px" /><!-- PART -->
|
|
<col width="80px" /><!-- 파렛트 -->
|
|
|
|
<c:forEach var="item" items="${COL_NAME_LIST}" varStatus="status">
|
|
<col width="35px" />
|
|
</c:forEach>
|
|
|
|
<col width="49px" /><!-- Revision -->
|
|
<col width="120px" /><!-- 품번 -->
|
|
<col width="120px" /><!-- 품명 -->
|
|
<col width="100px" /><!-- 형상 -->
|
|
<col width="100px" /><!-- 재질 -->
|
|
<col width="130px" /><!-- 규격 -->
|
|
<col width="60px" /><!-- 대당수량 -->
|
|
<col width="90px" /><!-- 소싱-->
|
|
<col width="90px" /><!-- P1-->
|
|
<col width="90px" /><!-- P2-->
|
|
<col width="90px" /><!-- P3-->
|
|
<col width="90px" /><!-- P4-->
|
|
<col width="140px" /><!-- 공급업체 -->
|
|
<col width="90px" /><!-- 단가 -->
|
|
<col width="110px" /><!-- 설변/추가 -->
|
|
<col width="110px" /><!-- 대당금액(대당수량*단가) -->
|
|
<col width="200px" /><!-- 비고 -->
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2"></td>
|
|
<td rowspan="2">기종</td>
|
|
<td rowspan="2">PART</td>
|
|
<td rowspan="2">파렛트</td>
|
|
<td colspan="${fn:length(COL_NAME_LIST)}">Level</td>
|
|
<td rowspan="2">R</td>
|
|
<td rowspan="2">품번</td>
|
|
<td rowspan="2">품명</td>
|
|
<td rowspan="2">형상</td>
|
|
<td rowspan="2">재질</td>
|
|
<td rowspan="2">규격</td>
|
|
<td rowspan="2">대당수량</td>
|
|
<td rowspan="2">소싱</td>
|
|
<td rowspan="2">P1</td>
|
|
<td rowspan="2">P2</td>
|
|
<td rowspan="2">P3</td>
|
|
<td rowspan="2">P4</td>
|
|
<td rowspan="2">업체명</td>
|
|
<td rowspan="2">단가</td>
|
|
<td rowspan="2">설변/추가</td>
|
|
<td rowspan="2">대당금액</br>(대당수량*단가)</td>
|
|
<td rowspan="2">비고</td>
|
|
</tr>
|
|
<tr class="plm_thead">
|
|
<c:forEach var="item" items="${COL_NAME_LIST}" varStatus="status">
|
|
<td>${item.COL_HEADER_VAL}</td>
|
|
</c:forEach>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="in_table_scroll_wrap _table2" style="height:580px; width:100%;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="40px" />
|
|
<col width="120px" /><!-- 기종 -->
|
|
<col width="120px" /><!-- PART -->
|
|
<col width="80px" /><!-- 파렛트 -->
|
|
|
|
<c:forEach var="item" items="${COL_NAME_LIST}" varStatus="status">
|
|
<col width="35px" />
|
|
</c:forEach>
|
|
|
|
<col width="49px" /><!-- Revision -->
|
|
<col width="120px" /><!-- 품번 -->
|
|
<col width="120px" /><!-- 품명 -->
|
|
<col width="100px" /><!-- 형상 -->
|
|
<col width="100px" /><!-- 재질 -->
|
|
<col width="130px" /><!-- 규격 -->
|
|
<col width="60px" /><!-- 대당수량 -->
|
|
<col width="90px" /><!-- 소싱-->
|
|
<col width="90px" /><!-- P1-->
|
|
<col width="90px" /><!-- P2-->
|
|
<col width="90px" /><!-- P3-->
|
|
<col width="90px" /><!-- P4-->
|
|
<col width="140px" /><!-- 공급업체 -->
|
|
<col width="90px" /><!-- 단가 -->
|
|
<col width="110px" /><!-- 설변/추가 -->
|
|
<col width="110px" /><!-- 대당금액(대당수량*단가) -->
|
|
<col width="200px" /><!-- 비고 -->
|
|
</colgroup>
|
|
<tbody>
|
|
<c:choose>
|
|
<c:when test="${empty LIST}">
|
|
<tr>
|
|
<td colspan="${fn:length(COL_NAME_LIST)+13}" align="center">조회된 정보가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${LIST}" varStatus="status">
|
|
<input type="hidden" name="OBJID" value="${item.OBJID}">
|
|
<input type="hidden" name="PART_OBJID_${item.OBJID}" id="PART_OBJID_${item.OBJID}" value="${item.PART_OBJID}">
|
|
<input type="hidden" name="SALES_BOM_OBJID_${item.OBJID}" id="SALES_BOM_OBJID_${item.OBJID}" value="${item.SALES_BOM_OBJID}">
|
|
<input type="hidden" name="QTY_${item.OBJID}" id="QTY_${item.OBJID}" value="${item.QTY}">
|
|
<input type="hidden" name="TEMP_PRODUCT_TYPE_CODE_${item.OBJID}" id="TEMP_PRODUCT_TYPE_CODE_${item.OBJID}" value="${item.PRODUCT_TYPE_CODE}">
|
|
|
|
<input type="hidden" name="TEMP_PARTNER_OBJID_${item.OBJID}" id="TEMP_PARTNER_OBJID_${item.OBJID}" value="${item.PARTNER_OBJID}">
|
|
<input type="hidden" name="TEMP_PARTNER_PRICE_${item.OBJID}" id="TEMP_PARTNER_PRICE_${item.OBJID}" value="${item.PARTNER_PRICE}">
|
|
<input type="hidden" name="TEMP_PARTNER_REMARK_${item.OBJID}" id="TEMP_PARTNER_REMARK_${item.OBJID}" value="${item.PARTNER_REMARK}">
|
|
|
|
<input type="hidden" name="TEMP_SALES_PART_CODE_${item.OBJID}" id="TEMP_SALES_PART_CODE_${item.OBJID}" value="${item.SALES_PART_CODE}">
|
|
<input type="hidden" name="TEMP_PALETTE_CODE_${item.OBJID}" id="TEMP_PALETTE_CODE_${item.OBJID}" value="${item.PALETTE_CODE}">
|
|
<input type="hidden" name="TEMP_SOURCING_CODE_${item.OBJID}" id="TEMP_SOURCING_CODE_${item.OBJID}" value="${item.SOURCING_CODE}">
|
|
<input type="hidden" name="TEMP_PROCESS1_CODE_${item.OBJID}" id="TEMP_PROCESS1_CODE_${item.OBJID}" value="${item.PROCESS1_CODE}">
|
|
<input type="hidden" name="TEMP_PROCESS2_CODE_${item.OBJID}" id="TEMP_PROCESS2_CODE_${item.OBJID}" value="${item.PROCESS2_CODE}">
|
|
<input type="hidden" name="TEMP_PROCESS3_CODE_${item.OBJID}" id="TEMP_PROCESS3_CODE_${item.OBJID}" value="${item.PROCESS3_CODE}">
|
|
<input type="hidden" name="TEMP_PROCESS4_CODE_${item.OBJID}" id="TEMP_PROCESS4_CODE_${item.OBJID}" value="${item.PROCESS4_CODE}">
|
|
|
|
<tr class="dataTr" data-LEVEL="${item.LEV}" data-BOM_REPORT_OBJID="${item.BOM_REPORT_OBJID}" data-PATH="${item.PATH}">
|
|
<td>
|
|
<c:if test="${item.LEV eq '1' and item.LEAF eq '0'}">
|
|
<img src="/images/btnMinus.png" width="13px" height="13px" class="btnToggle" style="${item.LEV eq '1' and item.LEAF eq '0'?'cursor:pointer;':''}">
|
|
</c:if>
|
|
</td>
|
|
|
|
<td title="${item.PRODUCT_CODE}" class="align_l">${item.PRODUCT_CODE}</td>
|
|
|
|
<td class="align_l">
|
|
<select name="sales_part_code_${item.OBJID}" id="sales_part_code_${item.OBJID}"></select>
|
|
</td>
|
|
|
|
<td class="align_l">
|
|
<select name="palette_code_${item.OBJID}" id="palette_code_${item.OBJID}"></select>
|
|
</td>
|
|
|
|
<c:forEach var="colListItem" items="${COL_NAME_LIST}" varStatus="status">
|
|
<c:set var="colName" value="${colListItem.COL_NAME}" />
|
|
<c:set var="colVal" value="${colListItem.COL_VAL}" />
|
|
|
|
<td title="${item[colName]}">${item[colVal]}</td>
|
|
</c:forEach>
|
|
|
|
<td title="${item.REVISION}" class="align_c">${item.REVISION}</td>
|
|
|
|
<td title="${item.PART_NO}" class="align_l"><a href="#" onclick="openPartMngPopup('${item.PART_OBJID}');">${item.PART_NO}</a></td>
|
|
|
|
<td style="text-align: left !important;" title="${item.PART_NAME}">
|
|
<a href="#" class="btnPartDetail" data-PART_OBJID="${item.PART_OBJID}">${item.PART_NAME}</a>
|
|
</td>
|
|
|
|
<td title="" class="align_c">
|
|
<c:if test="${!empty item.SAVED_FILE_NAME and !empty item.REAL_FILE_NAME and !empty item.FILE_PATH}">
|
|
<img src="#" height='85px' width='100%' onclick="fnc_openImagePopUp(this.src)" data-SRC="/common/viewImage.do?realFileName=${item.REAL_FILE_NAME}&savedFileName=${item.SAVED_FILE_NAME}&attDir=${item.FILE_PATH}" />
|
|
</c:if>
|
|
</td>
|
|
|
|
<td title="${item.MATERIAL}" class="align_c">${item.MATERIAL}</td>
|
|
|
|
<td title="${item.SPEC}" class="align_l">${item.SPEC}</td>
|
|
|
|
<td title="${item.QTY}" class="align_c">${item.QTY}</td>
|
|
|
|
<td class="align_l">
|
|
<select name="sourcing_code_${item.OBJID}" id="sourcing_code_${item.OBJID}"></select>
|
|
</td>
|
|
|
|
<td class="align_l">
|
|
<select name="process1_code_${item.OBJID}" id="process1_code_${item.OBJID}"></select>
|
|
</td>
|
|
<td class="align_l">
|
|
<select name="process2_code_${item.OBJID}" id="process2_code_${item.OBJID}"></select>
|
|
</td>
|
|
<td class="align_l">
|
|
<select name="process3_code_${item.OBJID}" id="process3_code_${item.OBJID}"></select>
|
|
</td>
|
|
<td class="align_l">
|
|
<select name="process4_code_${item.OBJID}" id="process4_code_${item.OBJID}"></select>
|
|
</td>
|
|
|
|
<td class="align_l" >
|
|
<select name="partner_objid_${item.OBJID}" onchange="fn_setOrderSpecMngInfo('${item.OBJID}');"></select>
|
|
</td>
|
|
|
|
<td class="align_l">
|
|
<input type="text" name="partner_price_${item.OBJID}" id="partner_price_${item.OBJID}" value="<fmt:formatNumber value="${item.PARTNER_PRICE}" pattern="#,###" />" onKeyup='javascript:fnc_numberOnly($(this))' onchange="fn_setUnitPrice('${item.OBJID}');">
|
|
</td>
|
|
|
|
<td title="${empty item.EO_DATE ? item.DESIGN_DATE : item.EO_DATE}" class="align_c">${empty item.EO_DATE ? item.DESIGN_DATE : item.EO_DATE}</td>
|
|
|
|
<td class="align_l" id="unit_price_${item.OBJID}"></td>
|
|
|
|
<td class="align_l">
|
|
<input type="text" name="partner_remark_${item.OBJID}" id="partner_remark_${item.OBJID}" value="${item.REMARK}">
|
|
</td>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="btn_wrap">
|
|
<div class="plm_btn_wrap_center">
|
|
<input type="button" value="저장" id="btnSave" class="plm_btns">
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns">
|
|
</div>
|
|
</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> |