Files
wace_plm/WebContent/WEB-INF/view/purchaseOrder/deliveryMngList_new.jsp
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- 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
2025-08-29 15:46:08 +09:00

318 lines
15 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)} --%>
<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>
<script type="text/javascript">
$(document).ready(function(){
fnc_changePaginationAndTotalCountArea();
$('.select2').select2();
fnc_datepick();
$("#delivery_status").val("${param.delivery_status}").trigger("change");;
//조회
$("#btnSearch").click(function(){
$("#page").val("1");
fn_search();
});
//수입검사등록
$("#btnAccept").click(function(){
fn_deliveryAcceptancePopUp();
});
//단가등록
$("#btnReg").click(function(){
fn_deliveryResultPopUp();
});
grid1 = $("#grid1").jqGrid({
url: ""
,datatype: "local"
,data : $.parseJSON($("#grid1Data").val())
,colNames: ["OBJID"
,"년도","고객사","프로젝트명","당사프로젝트번호","발주 No.","발주서_제목","입고요청일","구매/제작업체명"
//,"레이저업체","용접업체","가공업체" // TODO: 협의중
,"구매담당","발주일"
,"발주수량","입고일","입고수량","미입고수량","부적합수량","입고결과"
]
,colModel: [
{name:"OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
,{name:"CM_YEAR" , index:"", width: 60, align:"center", hidden:false, sortable:false, editable:false}
,{name:"CUSTOMER_NAME" , index:"", width:100, align: "left", hidden:false, sortable:false, editable:false}
,{name:"CUSTOMER_PROJECT_NAME", index:"", width:150, align: "left", hidden:false, sortable:false, editable:false}
,{name:"PROJECT_NO" , index:"", width:150, align:"center", hidden:false, sortable:false, editable:false}
,{name:"PURCHASE_ORDER_NO" , index:"", width:130, align:"center", hidden:false, sortable:false, editable:false, formatter: col_custom_fmt, unformat:col_custom_fmt_un}
,{name:"TITLE" , index:"", width:180, align: "left", hidden:false, sortable:false, editable:false}
,{name:"DELIVERY_DATE" , index:"", width:120, align:"center", hidden:false, sortable:false, editable:false}
,{name:"PARTNER_NAME" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false}
//,{name:"SUPPLY1" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false} // TODO: 협의중
//,{name:"SUPPLY2" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false} // TODO: 협의중
//,{name:"SUPPLY3" , index:"", width:110, align:"center", hidden:false, sortable:false, editable:false} // TODO: 협의중
,{name:"SALES_MNG_USER_NAME" , index:"", width:100, align:"center", hidden:false, sortable:false, editable:false}
,{name:"REGDATE" , index:"", width:120, align:"center", hidden:false, sortable:false, editable:false}
,{name:"TOTAL_PO_QTY" , index:"", width:120, align: "center", hidden:false, sortable:false, editable:false, formatter:"integer", formatoptions:{thousandsSeparator:","}}
,{name:"CUR_DELIVERY_DATE" , index:"", width:120, align:"center", hidden:false, sortable:false, editable:false}
,{name:"TOTAL_DELIVERY_QTY" , index:"", width:120, align: "center", hidden:false, sortable:false, editable:false, formatter:"integer", formatoptions:{thousandsSeparator:","}}
,{name:"NON_DELIVERY_QTY" , index:"", width:120, align: "center", hidden:false, sortable:false, editable:false, formatter:"integer", formatoptions:{thousandsSeparator:","}}
,{name:"TOTAL_DEFECT_QTY" , index:"", width:120, align: "center", hidden:false, sortable:false, editable:false, formatter:"integer", formatoptions:{thousandsSeparator:","}}
,{name:"DELIVERY_STATUS" , index:"", width:120, align:"center", hidden:false, sortable:false, editable:false, formatter: col_custom_fmt, unformat:col_custom_fmt_un}
]
,ignoreCase : true //로컬 검색 및 정렬이 대,소문자를 구분하지 않도록 하려면true
,rownumbers : false //row번호 표시
,viewrecords : true //pager가 있을경우 표시되는 record number
,autowidth : true //그리드 너비가 자동으로 부모 요소의 너비로 다시 계산
,sortable : false //마우스로 열을 끌어다 놓아 열을 재정렬
,shrinkToFit : true //모든 열은 너비에 비례하여 크기가 조정
,forceFit : false //컬럼의 width를 변화시킬때 그리드의 width를 고정 여부
,multiselect : true //선택가능. 체크박스표시
,height : 600
/* ,rowNum : "${countPerPage}" */
,rowNum : 90000
,jsonReader : {repeatitems: false}
,mtype :"POST"
,footerrow : false //바닥합계
,userDataOnFooter: false //바닥합계
//,caption :"제목"
//,pager :"#grid1Pager"
,loadComplete: function(data){ //모든 서버 요청 직후에 실행
var gid = this.id;
var grid_wrap_div = $("#gbox_"+gid);
setTimeout("fn_jqGrid_init($('#"+gid+"'), true);", 50); //윈도우크기 비례 자동조절
//footer 커스텀..
}
});
});
function fn_search(){
document.form1.action = "/purchaseOrder/deliveryMngList_new.do";
document.form1.submit();
}
//수입검사등록
function fn_deliveryAcceptancePopUp(){
var selrows = fn_jqGrid_selarrrow($("#grid1"));
if(selrows.length > 0){
var popup_width = 2000;
var popup_height = 550;
var hiddenForm = document.hiddenForm;
var target = "deliveryAcceptancePopUp";
var url = "/purchaseOrder/deliveryAcceptanceFormPopUp.do";
var checkArr = [];
$.each(selrows, function(i,o){ checkArr.push( grid1.getRowData(o).OBJID ); });
fn_centerPopup(popup_width, popup_height, "", target);
hiddenForm.action = url;
hiddenForm.checkArr.value = checkArr.join(",");
hiddenForm.target = target;
hiddenForm.submit();
}else{
Swal.fire("선택한 항목이 없습니다.");
return false;
}
}
//단가등록
function fn_deliveryResultPopUp(){
var selrows = fn_jqGrid_selarrrow($("#grid1"));
if(1 < selrows.length){
Swal.fire("한번에 1개의 내용만 등록 가능합니다. ");
return false;
}if(selrows.length > 0){
var popup_width = 2000;
var popup_height = 550;
var hiddenForm = document.hiddenForm;
var target = "deliveryResultPopUp";
var url = "/purchaseOrder/deliveryResultFormCostPopUp.do";
var checkArr = [];
$.each(selrows, function(i,o){ checkArr.push( grid1.getRowData(o).OBJID ); });
fn_centerPopup(popup_width, popup_height, "", target);
hiddenForm.action = url;
hiddenForm.checkArr.value = checkArr.join(",");
hiddenForm.PURCHASE_ORDER_MASTER_OBJID.value = checkArr.join(",");
hiddenForm.target = target;
hiddenForm.submit();
}else{
Swal.fire("선택한 항목이 없습니다.");
return false;
}
}
/*
Custom Formatter Parameters Description
◆ cellvalue: value to be formatted
◆ options : { rowId: rid, colModel: {name: , index, width, align, ...}}
◆ rowObject : row data
*/
function col_custom_fmt(cellvalue, options, rowObject) {
//console.log("rid : "+ options.rowId + " colModel["+JSON.stringify(options.colModel)+"]");
var return_fmt = "";
cellvalue = fnc_checkNull(cellvalue);
if(options.colModel.name == "PURCHASE_ORDER_NO" ){ //발주NO
//return_fmt = '<a href="#" onclick="javascript:fn_formPopUp(\''+rowObject.OBJID+'\');">'+cellvalue+'</a>';
/* var url = "/purchaseOrder/deliveryResultHistoryPopUp.do?PURCHASE_ORDER_MASTER_OBJID="+rowObject.OBJID;
return_fmt = '<a href="#" onclick="javascript:fn_centerPopup(1600, 550, \''+url+'\', \'deliveryResultHistoryPopUp\');">'+cellvalue+'</a>'; */
return_fmt = '<a href="#" onclick="javascript:fn_formPopUp(\''+rowObject.OBJID+'\');">'+cellvalue+'</a>';
//}else if(options.colModel.name == "APPR_STATUS_NAME" ){ //상태
// var url = "/approval/approvalDetail.do?approvalObjId="+rowObject.APPROVAL_OBJID+"&routeObjId="+rowObject.ROUTE_OBJID;
// var empty = ($.isNumeric(cellvalue) && Number(cellvalue) > 0) ? "" : "empty_";
// return_fmt = '<a href="#" onclick="javascript:fn_centerPopup(650, 460, \''+url+'\', \'approvalDetailPopup\');">'+cellvalue+'</a>';
}else if(options.colModel.name == "DELIVERY_STATUS"){
var url = "/purchaseOrder/deliveryResultHistoryPopUp.do?PURCHASE_ORDER_MASTER_OBJID="+rowObject.OBJID+"&PURCHASE_ORDER_NO="+rowObject.PURCHASE_ORDER_NO;
return_fmt = '<a href="#" onclick="javascript:fn_centerPopup(2000, 550, \''+url+'\', \'deliveryResultHistoryPopUp\');">'+cellvalue+'</a>';
}
return return_fmt;
}
//등록,수정,뷰
function fn_formPopUp(objId){
var popup_width = 1260;
var popup_height = 1050;
var hiddenForm = document.hiddenForm;
var target = "purchaseOrderFormPopup_new";
var url = "/purchaseOrder/purchaseOrderFormPopup_new.do";
fn_centerPopup(popup_width, popup_height, "", target);
hiddenForm.PURCHASE_ORDER_MASTER_OBJID.value = objId;
hiddenForm.action = url;
hiddenForm.target = target;
hiddenForm.submit();
}
/**
unFormatter : grid1.getRowData(), getCell(n,colname) 에서 값만 나오게하는 함수
*/
function col_custom_fmt_un(cellvalue, options, cell) {
return cellvalue;
}
</script>
<body>
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="checkArr" id="checkArr">
<input type="hidden" name="PURCHASE_ORDER_MASTER_OBJID" id="PURCHASE_ORDER_MASTER_OBJID">
</form>
<form name="form1" id="form1" action="" method="post">
<textarea style="width:0px; height:0px; visibility: hidden;" id="jsonLevel3_csmCategory">${code_map.jsonLevel3_csmCategory}</textarea><!-- 코드동적설정 -->
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name">
<h2>
<span>입고관리_단가관리</span>
</h2>
</div>
<div id="plmSearchZon">
<table>
<tr>
<td><label for="Year">년도</label></td>
<td>
<select name="Year" id="Year" class="select2" autocomplete="off" style="width:190px;">
<option value="">선택</option>
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
<option value="${req_year}"${param.Year eq req_year ? 'selected':'' }>${req_year}</option>
</c:forEach>
</select>
</td>
<td><label for="">고객사</label></td>
<td><select name="customer_cd" id="customer_cd" class="select2" autocomplete="off" style="width:250px;"><option value="">선택</option>${code_map.customer_cd}</select></td>
<td><label for="">고객사프로젝트명</label></td>
<td><input type="text" name="customer_project_name" id="customer_project_name" autocomplete="off" value="${param.custoer_project_name}" style="width:170px;"/></td>
<td><label for="">당사프로젝트번호</label></td>
<td><select name="project_no" id="project_no" class="select2" autocomplete="off" style="width:190px;"><option value="">선택</option>${code_map.project_no}</select></td>
<td><label for="">발주No.</label></td>
<td><input type="text" name="purchase_order_no" id="purchase_order_no" autocomplete="off" value="${param.purchase_order_no}" style="width:120px;"/></td>
<td><label for="">부품구분</label></td>
<td><select name="type" id="type" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.type}</select></td>
</tr>
<tr>
<td class=""><label>입고요청일</label></td>
<td>
<input type="text" name="delivery_start_date" id="delivery_start_date" style="width:90px;" autocomplete="off" value="${param.delivery_start_date}" class="date_icon">~
<input type="text" name="delivery_end_date" id="delivery_end_date" style="width:90px;" autocomplete="off" value="${param.delivery_end_date }" class="date_icon">
</td>
<td><label for="">공급업체</label></td>
<td><select name="partner_objid" id="partner_objid" class="select2" autocomplete="off" style="width:250px;"><option value="">선택</option>${code_map.partner_objid}</select></td>
<td><label for="">구매담당자</label></td>
<td><select name="sales_mng_user_id" id="sales_mng_user_id" class="select2" autocomplete="off" style="width:170px;"><option value="">선택</option>${code_map.sales_mng_user_id}</select></td>
<td class=""><label>발주일</label></td>
<td>
<input type="text" name="reg_start_date" id="reg_start_date" style="width:90px;" autocomplete="off" value="${param.reg_start_date}" class="date_icon">~
<input type="text" name="reg_end_date" id="reg_end_date" style="width:90px;" autocomplete="off" value="${param.reg_end_date }" class="date_icon">
</td>
<td><label for="">입고결과</label></td>
<td>
<select name="delivery_status" id="delivery_status" class="select2" autocomplete="off" style="width:120px;">
<option value="">선택</option>
<option value="입고중">입고중</option>
<option value="입고완료">입고완료</option>
<option value="지연">지연</option>
</select>
</td>
</tr>
</table>
</div>
<section class="contents_page_basic_margin">
<div class="btn_wrap">
<div class="plm_btn_wrap">
<!-- <input type="button" class="plm_btns" value="수입검사등록" id="btnAccept"> -->
<input type="button" class="plm_btns" value="단가등록" id="btnReg">
<input type="button" class="plm_btns" value="조회" id="btnSearch">
</div>
</div>
<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">${LIST}<c:if test="${empty LIST}">[]</c:if></textarea><!-- [{},{},{}] -->
</div>
<div class="pdm_page">${PAGE_HTML}</div>
</section>
</div>
</div>
</form>
</body>
</html>