ERP-node/WebContent/WEB-INF/view/salesMng/salesLongDeliveryFormPopup.jsp

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>