482 lines
17 KiB
Plaintext
482 lines
17 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file="/init_jqGrid.jsp"%><%--Expression Language ::: ${fn:escapeXml(str1)} --%>
|
|
<%
|
|
Map info = (HashMap)(request.getAttribute("info"));
|
|
boolean isModify = true;
|
|
//if(info!=null &&
|
|
// ( CommonUtils.checkNull(info.get("ACT_STATUS")).equals( "0001065" ) //발주완료
|
|
// )
|
|
//){
|
|
// isModify = false;
|
|
//}
|
|
|
|
boolean isStandard = CommonUtils.checkNull(request.getParameter("actionType")).equals("STANDARD"); //기본정보
|
|
boolean isInput = CommonUtils.checkNull(request.getParameter("actionType")).equals("INPUT" ); //자제투입
|
|
boolean isPredict = CommonUtils.checkNull(request.getParameter("actionType")).equals("PREDICT" ); //장납기예측수량정보
|
|
%>
|
|
<c:set var="now" value="<%=new java.util.Date() %>"/>
|
|
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
</head>
|
|
|
|
<style type="text/css">
|
|
|
|
.ui-jqgrid .ui-jqgrid-bdiv{ overflow-x: scroll; }
|
|
|
|
.ui-jqgrid .ui-jqgrid-htable {
|
|
table-layout:auto;
|
|
margin:0em;
|
|
overflow :hidden;
|
|
} //for header - auto table layout.
|
|
|
|
/*
|
|
table td {
|
|
padding: 5px;
|
|
border: solid 1px #e8eef4;
|
|
}
|
|
table th {
|
|
padding: 6px 5px;
|
|
text-align: left;
|
|
}
|
|
*/
|
|
</style>
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
$(document).ready(function(){
|
|
|
|
/* */
|
|
$(window).on('resize', function () {
|
|
gridHeight = window.innerHeight - 600; //utobj.conf.grid.height;
|
|
gridWidth = window.innerWidth - $(".plm_table_wrap").width(); //utobj.conf.grid.resizeWidth;
|
|
$('#grid1').setGridHeight( gridHeight );
|
|
$("#grid1").setGridWidth( gridWidth);
|
|
$(".ui-jqgrid-htable").css("width",gridWidth);
|
|
$(".ui-jqgrid-btable").css("width",gridWidth);
|
|
}).trigger('resize');
|
|
|
|
|
|
$('.select2').select2();
|
|
fnc_datepick();
|
|
|
|
var jqGridSelect_CONTRACT_OBJID = $.parseJSON( fnc_checkNullDefaultValue($("#jqGridSelect_CONTRACT_OBJID").val(),"[]") ); //계약-프로젝트번호
|
|
var jqGridSelect_SUPPLY_OBJID = $.parseJSON( fnc_checkNullDefaultValue($("#jqGridSelect_SUPPLY_OBJID").val(),"[]") ); //용처
|
|
|
|
//투입정보 그리드
|
|
grid1 = $("#grid1").jqGrid({
|
|
url: ""
|
|
,datatype: "local"
|
|
,data : $.parseJSON( fnc_checkNullDefaultValue($("#grid1Data").val(),"[]") )
|
|
,colNames: ["OBJID"
|
|
,"프로젝트번호","투입수량","투입일자"
|
|
]
|
|
,colModel: [
|
|
{name:"OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
|
|
,{name:"CONTRACT_OBJID", index:"", width:100, align:"center", hidden:false, sortable:false, editable: true
|
|
,edittype :"select"
|
|
,formatter :"select"
|
|
,editoptions:{
|
|
value: jqGridSelect_CONTRACT_OBJID
|
|
,dataInit: function(e){ e.style.width = "92%"; e.style.fontSize = 13; }
|
|
,dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
//var row = $(e.target).closest("tr.jqgrow");
|
|
//gridFn.getStep2Cd(this);
|
|
}}
|
|
]
|
|
}
|
|
}
|
|
,{name:"INPUT_QTY" , index:"", width:100, align: "right", hidden:false, sortable:false, editable: true
|
|
, formatter: "integer", formatoptions:{thousandsSeparator:","}
|
|
,editoptions:{
|
|
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
|
|
,dataEvents: [ {type:"change", fn:function(e) {
|
|
//gridPartFn.footerSummary();
|
|
}}]
|
|
}
|
|
}
|
|
,{name:"INPUT_DATE" , index:"", width:100, align:"center", hidden:false, sortable:false, editable: true
|
|
,editoptions:{
|
|
dataInit: function(e){ $(e).datepicker({changeMonth:true, changeYear:true}); }
|
|
}
|
|
}
|
|
]
|
|
,ignoreCase : true //로컬 검색 및 정렬이 대,소문자를 구분하지 않도록 하려면true
|
|
,rownumbers : false //row번호 표시
|
|
,viewrecords : true //pager가 있을경우 표시되는 record number
|
|
,autowidth : true //그리드 너비가 자동으로 부모 요소의 너비로 다시 계산
|
|
,sortable : false //마우스로 열을 끌어다 놓아 열을 재정렬
|
|
,shrinkToFit : true //모든 열은 너비에 비례하여 크기가 조정
|
|
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
|
|
,multiselect : true //선택가능. 체크박스표시
|
|
,height : 200
|
|
,rowNum : 1000
|
|
,jsonReader : {repeatitems: false}
|
|
,mtype :"POST"
|
|
,footerrow : false //바닥합계
|
|
,userDataOnFooter: true //바닥합계
|
|
//,caption :"제목"
|
|
//,pager :"#grid1Pager"
|
|
,loadComplete: function(data){ //모든 서버 요청 직후에 실행
|
|
var gid = $(this).attr("id");
|
|
var grid_wrap_div = $("#gbox_"+gid);
|
|
//setTimeout("fn_jqGrid_init($('#"+gid+"'), true);", 50); //윈도우크기 비례 자동조절
|
|
//footer 커스텀..
|
|
}
|
|
});
|
|
|
|
//예측수량 그리드
|
|
grid2 = $("#grid2").jqGrid({
|
|
url: ""
|
|
,datatype: "local"
|
|
,data : $.parseJSON( fnc_checkNullDefaultValue($("#grid2Data").val(),"[]") )
|
|
,colNames: ["OBJID"
|
|
,"월(MONTH)","당사프로젝트번호","소요수량","비고"
|
|
]
|
|
,colModel: [
|
|
{name:"OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
|
|
,{name:"MONTH" , index:"", width:100, align:"center", hidden:false, sortable:false, editable: true
|
|
,edittype :"select"
|
|
,formatter :"select"
|
|
,editoptions:{
|
|
value: {"":"선택","1":"1월","2":"2월","3":"3월","4":"4월","5":"5월","6":"6월","7":"7월","8":"8월","9":"9월","10":"10월","11":"11월","12":"12월"}
|
|
,dataInit: function(e){ e.style.width = "92%"; e.style.fontSize = 13; }
|
|
,dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
//var row = $(e.target).closest("tr.jqgrow");
|
|
//gridFn.getStep2Cd(this);
|
|
}}
|
|
]
|
|
}
|
|
}
|
|
,{name:"CONTRACT_OBJID", index:"", width:100, align:"center", hidden:false, sortable:false, editable: true
|
|
,edittype :"select"
|
|
,formatter :"select"
|
|
,editoptions:{
|
|
value: jqGridSelect_CONTRACT_OBJID
|
|
,dataInit: function(e){ e.style.width = "92%"; e.style.fontSize = 13; }
|
|
,dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
//var row = $(e.target).closest("tr.jqgrow");
|
|
//gridFn.getStep2Cd(this);
|
|
}}
|
|
]
|
|
}
|
|
}
|
|
/* ,{name:"USE_PLACE", index:"", width:100, align:"center", hidden:false, sortable:false, editable: true
|
|
,edittype :"select"
|
|
,formatter :"select"
|
|
,editoptions:{
|
|
value: jqGridSelect_SUPPLY_OBJID
|
|
,dataInit: function(e){ e.style.width = "92%"; e.style.fontSize = 13; }
|
|
,dataEvents: [
|
|
{type:"change", fn:function(e) {
|
|
//var row = $(e.target).closest("tr.jqgrow");
|
|
//gridFn.getStep2Cd(this);
|
|
}}
|
|
]
|
|
}
|
|
} */
|
|
,{name:"QTY" , index:"", width:100, align: "right", hidden:false, sortable:false, editable: true
|
|
, formatter: "integer", formatoptions:{thousandsSeparator:","}
|
|
,editoptions:{
|
|
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
|
|
,dataEvents: [ {type:"change", fn:function(e) {
|
|
//gridPartFn.footerSummary();
|
|
}}]
|
|
}
|
|
}
|
|
,{name:"NOTE" , index:"", width:300, align: "center", hidden:false, sortable:false, editable: true
|
|
,editoptions:{
|
|
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
|
|
,dataEvents: [ {type:"change", fn:function(e) {
|
|
//gridPartFn.footerSummary();
|
|
}}]
|
|
}
|
|
}
|
|
]
|
|
,ignoreCase : true //로컬 검색 및 정렬이 대,소문자를 구분하지 않도록 하려면true
|
|
,rownumbers : false //row번호 표시
|
|
,viewrecords : true //pager가 있을경우 표시되는 record number
|
|
,autowidth : true //그리드 너비가 자동으로 부모 요소의 너비로 다시 계산
|
|
,sortable : false //마우스로 열을 끌어다 놓아 열을 재정렬
|
|
,shrinkToFit : true //모든 열은 너비에 비례하여 크기가 조정
|
|
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
|
|
,multiselect : true //선택가능. 체크박스표시
|
|
,height : 200
|
|
,rowNum : 1000
|
|
,jsonReader : {repeatitems: false}
|
|
,mtype :"POST"
|
|
,footerrow : false //바닥합계
|
|
,userDataOnFooter: true //바닥합계
|
|
//,caption :"제목"
|
|
//,pager :"#grid1Pager"
|
|
,loadComplete: function(data){ //모든 서버 요청 직후에 실행
|
|
var gid = $(this).attr("id");
|
|
var grid_wrap_div = $("#gbox_"+gid);
|
|
//setTimeout("fn_jqGrid_init($('#"+gid+"'), true);", 50); //윈도우크기 비례 자동조절
|
|
//footer 커스텀..
|
|
}
|
|
});
|
|
|
|
<% if(!isStandard){ %>
|
|
$("#LD_PART_NAME, #SPEC, #FORM_NO, #MAKER, #MATERIAL_CODE").attr("readonly","");
|
|
$("#SUPPLY_OBJID").prop("disabled", true);
|
|
<% } %>
|
|
|
|
|
|
<% if(isModify){ %>
|
|
grid1Fn.opennEdit(); //수정가능
|
|
$("#btnGridAdd1").click(function(){ grid1Fn.addRow(); });
|
|
$("#btnGridDel1").click(function(){ grid1Fn.delRow(); });
|
|
|
|
grid2Fn.opennEdit(); //수정가능
|
|
$("#btnGridAdd2").click(function(){ grid2Fn.addRow(); });
|
|
$("#btnGridDel2").click(function(){ grid2Fn.delRow(); });
|
|
|
|
$("#btnSave" ).click(function(){ fn_save(); });
|
|
<% } %>
|
|
});
|
|
|
|
function fn_save(){
|
|
if(fnc_validate('form1')){
|
|
if(confirm("저장하시겠습니까?")){
|
|
|
|
$("input[numberOnly='']").each(function(){
|
|
$(this).val($(this).val().replace(/,/gi,""));
|
|
});
|
|
|
|
|
|
$("#SUPPLY_OBJID").prop("disabled", false);
|
|
var params = "";
|
|
|
|
grid1Fn.closeEdit();
|
|
grid2Fn.closeEdit();
|
|
var jqGridInputData = JSON.stringify(grid1.getRowData()); //투입정보
|
|
var jqGridPredictData = JSON.stringify(grid2.getRowData()); //예측수량
|
|
<% if(isStandard){ %>
|
|
jqGridInputData = "[]";
|
|
jqGridPredictData = "[]";
|
|
<% }else if(isInput){ %>
|
|
jqGridPredictData = "[]";
|
|
<% }else if(isPredict){ %>
|
|
jqGridInputData = "[]";
|
|
<% } %>
|
|
|
|
$.ajax({
|
|
url:"/salesMng/saveSalesLongDeliveryInfo.do"
|
|
,type:"POST"
|
|
,data: $("#form1").serialize() +"&jqGridInput="+jqGridInputData +"&jqGridPredict="+jqGridPredictData
|
|
,dataType:"json"
|
|
,async:false
|
|
,success:function(data){
|
|
alert(data.message);
|
|
opener.fn_search();
|
|
self.close();
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
var grid1Fn = {
|
|
addRow : function() {
|
|
var newId = grid1.getGridParam("reccount")+1;
|
|
var addData = {
|
|
"OBJID" : ""
|
|
,"CONTRACT_OBJID": ""
|
|
,"INPUT_QTY" : ""
|
|
,"INPUT_DATE" : ""
|
|
};
|
|
grid1.addRowData(newId, addData);
|
|
grid1.jqGrid("editRow", newId);
|
|
}
|
|
,delRow : function(){
|
|
var selectedRowIds = grid1.jqGrid("getGridParam","selarrrow");
|
|
if(selectedRowIds.length==0){
|
|
Swal.fire("삭제할 행을 선택해주십시오.");
|
|
return false;
|
|
}
|
|
for(var i = selectedRowIds.length - 1; i >= 0; i--){
|
|
grid1.delRowData(selectedRowIds[i]);
|
|
}
|
|
//grid1Fn.footerSummary();
|
|
}
|
|
,opennEdit : function() { //수정가능
|
|
var ids = grid1.jqGrid("getDataIDs");
|
|
for (var i = 0; i < ids.length; i++) {
|
|
grid1.jqGrid("editRow",ids[i]);
|
|
}
|
|
}
|
|
,closeEdit : function() { //수정불가
|
|
var ids = grid1.jqGrid("getDataIDs");
|
|
for (var i = 0; i < ids.length; i++) {
|
|
grid1.jqGrid("saveRow", ids[i], /*successFunction*/null, /*url*/"clientArray"/*, extraparam, aftersavefunc,errorfunc, afterrestorefunc*/);
|
|
}
|
|
}
|
|
}
|
|
var grid2Fn = {
|
|
addRow : function() {
|
|
var newId = grid2.getGridParam("reccount")+1;
|
|
var addData = {
|
|
"OBJID" : ""
|
|
,"MONTH" : ""
|
|
,"USE_PLACE": ""
|
|
,"QTY" : ""
|
|
};
|
|
grid2.addRowData(newId, addData);
|
|
grid2.jqGrid("editRow", newId);
|
|
}
|
|
,delRow : function(){
|
|
var selectedRowIds = grid2.jqGrid("getGridParam","selarrrow");
|
|
if(selectedRowIds.length==0){
|
|
Swal.fire("삭제할 행을 선택해주십시오.");
|
|
return false;
|
|
}
|
|
for(var i = selectedRowIds.length - 1; i >= 0; i--){
|
|
grid2.delRowData(selectedRowIds[i]);
|
|
}
|
|
//grid2Fn.footerSummary();
|
|
}
|
|
,opennEdit : function() { //수정가능
|
|
var ids = grid2.jqGrid("getDataIDs");
|
|
for (var i = 0; i < ids.length; i++) {
|
|
grid2.jqGrid("editRow",ids[i]);
|
|
}
|
|
}
|
|
,closeEdit : function() { //수정불가
|
|
var ids = grid2.jqGrid("getDataIDs");
|
|
for (var i = 0; i < ids.length; i++) {
|
|
grid2.jqGrid("saveRow", ids[i], /*successFunction*/null, /*url*/"clientArray"/*, extraparam, aftersavefunc,errorfunc, afterrestorefunc*/);
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="OBJID" id="OBJID" value="${info.OBJID }">
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="jqGridSelect_CONTRACT_OBJID">${code_map.jqGridSelect_CONTRACT_OBJID}</textarea><!-- 코드동적설정 -->
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="jqGridSelect_SUPPLY_OBJID">${code_map.jqGridSelect_SUPPLY_OBJID}</textarea><!-- 코드동적설정 -->
|
|
|
|
<section>
|
|
<div id="businessPopupFormWrap">
|
|
<div>
|
|
<table class="pmsPopupForm">
|
|
<colgroup>
|
|
<col width="20%">
|
|
<col width="80%">
|
|
</colgroup>
|
|
<tr>
|
|
<td class="input_title"><label for="">품명</label></td>
|
|
<td class="input_sub_title"><input type="text" name="LD_PART_NAME" id="LD_PART_NAME" value="${info.LD_PART_NAME }" required reqTitle="품명" ></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title"><label for="">사양(규격)</label></td>
|
|
<td class="input_sub_title"><input type="text" name="SPEC" id="SPEC" value="${info.SPEC }" ></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title"><label for="">Location</label></td>
|
|
<td class="input_sub_title"><select name="LOCATION" id="LOCATION" class="select2" type="select" required reqTitle="LOCATION"><option value="">선택</option>${code_map.LOCATION}</select></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title"><label for="">내자/외자</label></td>
|
|
<td class="input_sub_title"><input type="text" name="FORM_NO" id="FORM_NO" value="${info.FORM_NO }" ></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title"><label for="">메이커</label></td>
|
|
<td class="input_sub_title"><input type="text" name="MAKER" id="MAKER" value="${info.MAKER }" ></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title"><label for="">자재코드</label></td>
|
|
<td class="input_sub_title"><input type="text" name="MATERIAL_CODE" id="MATERIAL_CODE" value="${info.MATERIAL_CODE }" ></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title"><label for="">공급업체</label></td>
|
|
<td class="input_sub_title"><select name="SUPPLY_OBJID" id="SUPPLY_OBJID" class="select2" type="select" required reqTitle="공급업체"><option value="">선택</option>${code_map.SUPPLY_OBJID}</select></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="input_title"><label for="">단가</label></td>
|
|
<td class="input_sub_title"><input type="text" name="PRICE" id="PRICE" value="<fmt:formatNumber value="${info.PRICE}" pattern="#,###" />" numberOnly reqTitle="단가"></td>
|
|
</tr>
|
|
|
|
<% if(isInput){ %>
|
|
<tr>
|
|
<td class="input_title"><label for="">투입정보</label></td>
|
|
<td class="input_sub_title">
|
|
<% if(isModify){ %>
|
|
<table style="width: 100%;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="90%">
|
|
</colgroup>
|
|
<tr>
|
|
<td></td>
|
|
<td style="float:right; margin-top:5px;">
|
|
<input type="button" value="추가" class="plm_btns" id="btnGridAdd1">
|
|
<input type="button" value="삭제" class="plm_btns" id="btnGridDel1">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<% } %>
|
|
<div class="plm_table_wrap" style="overflow-x: auto;">
|
|
<table id="grid1"></table>
|
|
<!-- <div id="grid1Pager"></div> -->
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="grid1Data">${inputList}<c:if test="${empty inputList}">[]</c:if></textarea><!-- [{},{},{}] -->
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<% } %>
|
|
<% if(isPredict){ %>
|
|
<tr>
|
|
<td class="input_title"><label for="">예측수량</label></td>
|
|
<td class="input_sub_title">
|
|
<% if(isModify){ %>
|
|
<table style="width: 100%;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="90%">
|
|
</colgroup>
|
|
<tr>
|
|
<td></td>
|
|
<td style="float:right; margin-top:5px;">
|
|
<input type="button" value="추가" class="plm_btns" id="btnGridAdd2">
|
|
<input type="button" value="삭제" class="plm_btns" id="btnGridDel2">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<% } %>
|
|
<div class="plm_table_wrap" style="overflow-x: auto;">
|
|
<table id="grid2"></table>
|
|
<!-- <div id="grid1Pager"></div> -->
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="grid2Data">${predictList}<c:if test="${empty predictList}">[]</c:if></textarea><!-- [{},{},{}] -->
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<% } %>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="btn_wrap" style="height: 50px;">
|
|
<div class="plm_btn_wrap_center">
|
|
<% if(isModify){ %>
|
|
<input type="button" value="저장" id="btnSave" class="plm_btns create">
|
|
<% } %>
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns" onclick="javascript: self.close(0); return false;">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html> |