188 lines
6.3 KiB
Plaintext
188 lines
6.3 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_jqGrid.jsp"%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
</head>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
$('.select2').select2();
|
|
fnc_datepick();
|
|
|
|
var jqGridSelect_defectReason = $.parseJSON($("#jqGridSelect_defectReason").val()); //불량사유
|
|
|
|
grid1 = $("#grid1").jqGrid({
|
|
url: ""
|
|
,datatype: "local"
|
|
,data : $.parseJSON($("#grid1Data").val())
|
|
,colNames: ["불량품수량","사유"]
|
|
,colModel: [
|
|
{name:"DEFECT_QTY" , index:"", width:100, align: "right", hidden:false, sortable:false, editable: true, formatter: "integer", formatoptions:{thousandsSeparator:","} }
|
|
,{name:"DEFECT_REASON_CD", index:"", width:100, align:"center", hidden:false, sortable:false, editable: true
|
|
,edittype :"select"
|
|
,formatter :"select"
|
|
,editoptions:{
|
|
value: jqGridSelect_defectReason
|
|
,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);
|
|
}}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
,ignoreCase : true //로컬 검색 및 정렬이 대,소문자를 구분하지 않도록 하려면true
|
|
,rownumbers : false //row번호 표시
|
|
,viewrecords : true //pager가 있을경우 표시되는 record number
|
|
,autowidth : true //그리드 너비가 자동으로 부모 요소의 너비로 다시 계산
|
|
,sortable : false //마우스로 열을 끌어다 놓아 열을 재정렬
|
|
,shrinkToFit : true //모든 열은 너비에 비례하여 크기가 조정
|
|
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
|
|
,multiselect : true //선택가능. 체크박스표시
|
|
,height : 120
|
|
,rowNum : "${countPerPage}"
|
|
,jsonReader : {repeatitems: false}
|
|
,mtype :"POST"
|
|
,footerrow : false //바닥합계
|
|
,userDataOnFooter: false //바닥합계
|
|
,loadComplete: function(data){ //모든 서버 요청 직후에 실행
|
|
var gid = $(this).attr("id");
|
|
var grid_wrap_div = $("#gbox_"+gid);
|
|
setTimeout("fn_jqGrid_init($('#"+gid+"'), false);", 50); //윈도우크기 비례 자동조절
|
|
}
|
|
,gridComplete: function(){ //모든 프로세스가 완료된 후에 발생,페이징 등을 정렬 한 후에 발생
|
|
}
|
|
});
|
|
|
|
|
|
$("#btnSave" ).click(function(){ fn_save(); });
|
|
|
|
grid1Fn.opennEdit(); //수정가능
|
|
$("#btnAdd" ).click(function(){ grid1Fn.addRow(); });
|
|
$("#btnDel" ).click(function(){ grid1Fn.delRow(); });
|
|
});
|
|
|
|
|
|
var grid1Fn = {
|
|
addRow : function() {
|
|
var newId = grid1.getGridParam("reccount")+1;
|
|
var addData = {
|
|
"DEFECT_QTY" : ""
|
|
,"DEFECT_REASON_CD": ""
|
|
};
|
|
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]);
|
|
}
|
|
}
|
|
,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*/);
|
|
}
|
|
}
|
|
,footerSummary: function(){ //자동합계
|
|
}
|
|
}
|
|
|
|
function fn_save(){
|
|
if(fnc_validate('form1')){
|
|
if(confirm("저장하시겠습니까?")){
|
|
grid1Fn.closeEdit();
|
|
|
|
if(grid1.getRowData().length == 0){
|
|
Swal.fire('저장할 불략내역이 존재 하지 않습니다');
|
|
grid1Fn.opennEdit();
|
|
return;
|
|
}
|
|
|
|
var total_defect_qty = 0;
|
|
for(var i=1; i<=grid1.getRowData().length; i++){
|
|
var qty = grid1.getRowData(i).DEFECT_QTY;
|
|
var cd = grid1.getRowData(i).DEFECT_REASON_CD;
|
|
|
|
if(qty == ""){
|
|
Swal.fire('불량품수량을 입력해주세요');
|
|
grid1Fn.opennEdit();
|
|
return;
|
|
}
|
|
if(!$.isNumeric(qty)){
|
|
Swal.fire('불량품수량은 숫자만 입력해주세요');
|
|
grid1Fn.opennEdit();
|
|
return;
|
|
}
|
|
if(cd == ""){
|
|
Swal.fire('사유를 선택해주세요');
|
|
grid1Fn.opennEdit();
|
|
return;
|
|
}
|
|
|
|
total_defect_qty += Number( qty );
|
|
}
|
|
|
|
var data = JSON.stringify(grid1.getRowData());
|
|
opener.fn_callbackDefectPopup("${param.OBJID}", total_defect_qty, data);
|
|
self.close();
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="objId" id="objId" value="${param.OBJID}">
|
|
|
|
<textarea style="width:0px; height:0px; visibility: hidden;" id="jqGridSelect_defectReason">${code_map.jqGridSelect_defectReason}</textarea><!-- 코드동적설정 -->
|
|
|
|
<section>
|
|
<div id="businessPopupFormWrap">
|
|
<table style="width: 100%;">
|
|
<colgroup>
|
|
<col width="30%">
|
|
<col width="70%">
|
|
</colgroup>
|
|
<tr>
|
|
<td><h3 style="margin-top:0px;">불량내역</h3></td>
|
|
<td style="float:right; margin-top:5px;">
|
|
<input type="button" value="추가" class="plm_btns" id="btnAdd">
|
|
<input type="button" value="삭제" class="plm_btns" id="btnDel">
|
|
</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">${param.grid1Data}<c:if test="${empty param.grid1Data}">[]</c:if></textarea><!-- [{},{},{}] -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="btn_wrap" style="height: 50px;">
|
|
<div class="plm_btn_wrap_center">
|
|
<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> |