210 lines
7.3 KiB
Plaintext
210 lines
7.3 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(){
|
|
$("#btnClose").click(function(){
|
|
self.close();
|
|
});
|
|
|
|
//취소
|
|
$("#btnCancel").click(function(){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var params = "?objId="+objId;
|
|
document.form1.action ="/protoDevMng/protoStockDetailPopUp.do"+params;
|
|
document.form1.submit();
|
|
});
|
|
|
|
$(".btnDetailPart").click(function(){
|
|
var partNo = $(this).attr("data-PART_NO");
|
|
fnc_openPartDetailPopup("${connectUserId}", partNo);
|
|
});
|
|
});
|
|
</script>
|
|
<script>
|
|
//작성된 Part 별 입고내용을 저장한다.
|
|
function fn_saveProtoStockPartInfo(){
|
|
if(confirm("저장하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/protoDevMng/saveProtoStockPartInfo.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data.result == "true" || data.result == true || data.result){
|
|
Swal.fire("저장되었습니다.");
|
|
opener.fn_search();
|
|
self.close();
|
|
}else{
|
|
Swal.fire("저장에 실패하였습니다.");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
//입력된 값으로 비율을 계산한다.
|
|
function fn_calculate(targetObjId){
|
|
var totalCnt = eval($("#totalRequired_"+targetObjId).val());
|
|
var stockCnt = eval($("#receiveCount_"+targetObjId).val());
|
|
|
|
//Swal.fire("totalCnt:"+totalCnt+", stockCnt:"+stockCnt+" ?? : "+(totalCnt < stockCnt));
|
|
//Swal.fire("stockCnt:"+stockCnt);
|
|
|
|
var persent = "";
|
|
if("" != fnc_checkNull(totalCnt) && "" != fnc_checkNull(stockCnt)){
|
|
persent = stockCnt/totalCnt*100;
|
|
$("#stockRatio_"+targetObjId).empty();
|
|
$("#stockRatio_"+targetObjId).append(persent.toFixed(1));
|
|
|
|
if(totalCnt < stockCnt){
|
|
Swal.fire("입고량은 총수요량보다 많을 수 없습니다.");
|
|
$("#receiveCount_"+targetObjId).val(0);
|
|
$("#stockRatio_"+targetObjId).empty();
|
|
$("#receiveCount_"+targetObjId).focus();
|
|
}
|
|
}
|
|
}
|
|
|
|
//첨부파일 미리보기
|
|
function openImagePopUp(url){
|
|
var img=new Image();
|
|
img.src=url;
|
|
var img_width=img.width;
|
|
var img_height=img.height;
|
|
var win_width=img.width+25;
|
|
var height=img.height+30;
|
|
|
|
window.open(url,"protoStockListShapeImgPopUp","width="+img_width+",height="+height+", menubars=no, scrollbars=yes'");
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="targetObjId" id="targetObjId" value="${param.objId}">
|
|
<div id="">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>시작품 입고현황</span>
|
|
</h2>
|
|
</div>
|
|
<section class="contents_page_basic_margin">
|
|
<section id="prototypeStatusTable">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table prototype_Status_Table" style="width:100%">
|
|
<colgroup>
|
|
<col width="5%">
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2">No</td>
|
|
<td rowspan="2">품번</td>
|
|
<td rowspan="2">품명</td>
|
|
<td rowspan="2">형상</td>
|
|
<td colspan="3">EO</td>
|
|
<td colspan="4">입고현황</td>
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<td>No</td>
|
|
<td>Date</td>
|
|
<td>Rev</td>
|
|
<td>총소요</td>
|
|
<td>입고</td>
|
|
<td>납입율(%)</td>
|
|
<td>입고지연</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_table_wrap">
|
|
<div class="plm_scroll_table" style="width:100%; height:500px;">
|
|
<table class="plm_table prototype_Status_Table">
|
|
<colgroup>
|
|
<col width="5%">
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
<col width="5%">
|
|
</colgroup>
|
|
<tbody>
|
|
<c:choose>
|
|
<c:when test="${empty partList}">
|
|
<tr style="text-align:center;">
|
|
<td align="center" colspan="11">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${partList}" varStatus="varStatus">
|
|
<input type="hidden" name="relObjId" value="${item.STOCK_REL_OBJID}">
|
|
<input type="hidden" name="partNo_${item.STOCK_REL_OBJID}" value="${item.PART_NO}">
|
|
<tr>
|
|
<td>${item.RNUM}</td>
|
|
<td title="${item.PART_NO}"><a href="#" class="btnDetailPart" data-PART_NO="${item.PART_NO}">${item.PART_NO}</a></td>
|
|
<td title="${item.PART_NAME}"><a href="#" class="btnDetailPart" data-PART_NO="${item.PART_NO}">${item.PART_NAME}</a></td>
|
|
<td>
|
|
<c:choose>
|
|
<c:when test="${empty item.PROTO_RESULT_ATTACH_REAL_FILE_NAME}">
|
|
<div class="no_img_icon"></div>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<script>
|
|
var srcLocation = encodeURI("/common/viewImage.do?realFileName=${item.PROTO_RESULT_ATTACH_REAL_FILE_NAME}&savedFileName=${item.PROTO_RESULT_ATTACH_SAVED_FILE_NAME}&attDir=${item.PROTO_RESULT_ATTACH_FILE_PATH}");
|
|
document.write("<img src='"+srcLocation+"' height='68px' width='auto' onclick='openImagePopUp(this.src)' style='cursor:pointer;'/>");
|
|
</script>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</td>
|
|
<td>${item.EO_NO}</td>
|
|
<td>${item.EO_ISSUE_DATE_TITLE}</td>
|
|
<td>${item.REV}</td>
|
|
<td><input type="number" name="totalRequired_${item.STOCK_REL_OBJID}" id="totalRequired_${item.STOCK_REL_OBJID}" class="form_input" value="${item.TOTAL_REQUIRED}" onkeyup="fn_calculate('${item.STOCK_REL_OBJID}');"></td>
|
|
<td><input type="number" name="receiveCount_${item.STOCK_REL_OBJID}" id="receiveCount_${item.STOCK_REL_OBJID}" class="form_input" value="${item.RECEIVE_COUNT}" onkeyup="fn_calculate('${item.STOCK_REL_OBJID}');"></td>
|
|
<td id="stockRatio_${item.STOCK_REL_OBJID}">${item.STOCK_RATIO}</td><!-- 납입율 -->
|
|
<td><input type="number" name="delayReceiveCount_${item.STOCK_REL_OBJID}" id="delayReceiveCount_${item.STOCK_REL_OBJID}" class="form_input" value="${item.DELAY_RECEIVE_COUNT}"></td><!-- 입고지연 -->
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="btn_wrap">
|
|
<div class="plm_btn_wrap_center">
|
|
<input type="button" value="저장" class="plm_btns" onclick="fn_saveProtoStockPartInfo();">
|
|
<input type="button" id="btnCancel" value="취소" class="plm_btns" data-OBJID="${param.objId}">
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |