ERP-node/WebContent/WEB-INF/view/orderMng/orderMngList.jsp

688 lines
22 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.jsp" %>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String connector = person.getUserId();
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<!-- //JSTL 페이징 변수선언 -->
<c:set var="totalCount" value="${empty TOTAL_COUNT?0:TOTAL_COUNT}" />
<c:set var="maxPage" value="${empty MAX_PAGE_SIZE?1:MAX_PAGE_SIZE}" />
<c:set var="nPage" value="${empty param.page?1:param.page}" />
<c:set var="pageIndex" value="${(nPage-1)/10}" />
<c:set var="nextPage" value="${empty NEXT_PAGE?1:NEXT_PAGE}" />
<c:set var="prevPage" value="${empty PREV_PAGE?1:PREV_PAGE}" />
<c:set var="now" value="<%=new java.util.Date() %>"/>
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
<c:set var="connector" value="<%=connector %>" />
<script type="text/javascript">
$(function(){
$(document).ready(function(){
$('.select2').select2();
fnc_datepick();
$("input[type=text]").keyup(function(e){
if(e.keyCode == 13) search();
});
//image src encoding
$("img").each(function(i){
var imgSrc = $(this).attr("data-SRC");
$(this).attr("src", encodeURI(imgSrc));
});
$(".btnRevision").click(function(){
var partNo = $(this).attr("data-PART_NO");
fn_openPartListPop(partNo);
});
$("#btnExcelDown").click(function(){
fnExcelDownload("exportArea", "발주 관리");
});
//체크박스 전체선택/전체해제
$("#allCheck").click(function(){
if($("#allCheck").prop("checked")) {
$("input[type=checkbox]").prop("checked",true);
} else {
$("input[type=checkbox]").prop("checked",false);
}
});
$("#btnSearch").click(function(){
$("#page").val("1");
fn_search();
});
$("#btnOrderReg").click(function(){
fn_orderMngPopUp();
});
//발주
$("#relemater").click(function(){
fn_relemater();
});
//접수
$("#btnReg").click(function(){
fn_regmater();
});
//발주서 다운
$("#btnDown").click(function(){
fn_downmater();
});
$("#btnSupSave").click(function(){
fn_materSupWrite();
});
$("#btnrevSave").click(function(){
fn_RecSavePopup();
});
$("#btnDelete").click(function(){
fn_deletemater();
});
$(".btnApprovalDetail").click(function(){
var approvalObjId = $(this).attr("data-APPROVAL_OBJID");
var routeObjId = $(this).attr("data-ROUTE_OBJID");
//Swal.fire("approvalObjId : "+approvalObjId+", routeObjId : "+routeObjId);
var params = "?approvalObjId="+approvalObjId;
params += "&routeObjId="+routeObjId;
//Swal.fire("params : "+params);
window.open("/approval/approvalDetail.do"+params,"approvalDetailPopup","width=650 height=560 menubar=no status=no");
});
//체크박스 전체선택/전체해제
$("#allCheck").click(function(){
if($("#allCheck").prop("checked")) {
$("input[type=checkbox]").prop("checked",true);
} else {
$("input[type=checkbox]").prop("checked",false);
}
});
$(".File").click(function(){
var objId = $(this).attr("data-OBJID");
var docType =$(this).attr("data-docType");
var docTypeName = $(this).attr("data-docTypeName");
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
window.open("/common/FileRegistPopup.do"+params, "", "width=800, height=335");
});
});
});
function fnExcelDownload(id, title) {
var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
tab_text += '<head><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
tab_text += '<xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'
tab_text += '<x:Name>Sheet</x:Name>';
tab_text += '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
tab_text += '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';
tab_text += "<table border='1px'>";
var exportTable = $('#' + id).clone();
exportTable.find('input').each(function (index, elem) { $(elem).remove(); });
tab_text += exportTable.html();
tab_text += '</table></body></html>';
var data_type = 'data:application/vnd.ms-excel';
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var fileName = title + '.xls';
// IE 환경에서 다운로드
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11./)) {
if (window.navigator.msSaveBlob) {
var blob = new Blob([tab_text], {
type: "application/csv;charset=utf-8;"
});
navigator.msSaveBlob(blob, fileName);
}
} else {
var blob2 = new Blob([tab_text], {
type: "application/csv;charset=utf-8;"
});
var filename = fileName;
var elem = window.document.createElement('a');
elem.href = window.URL.createObjectURL(blob2);
elem.download = filename;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
}
};
function excelExport(){
var form = document.form1;
form.target = "_self";
form.actionType.value = "excel"
form.action = "/partmgmt/partmgmtList.do";
form1.submit();
}
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,"partListShapeImgPopUp","width="+img_width+",height="+height+", menubars=no, scrollbars=yes, resizable=yes'");
}
//Revision 클릭 시 해당 파트의 모든 Revision을 보여준다.
function fn_openPartListPop(partNo){
window.open("/part/openRevisionPartPopUp.do?partNo="+partNo,"openPartListPop","width=1500 height=560 menubar=no status=no");
}
//수주활동 검색 기능
function fn_search(){
var orderDateFrom = document.form1.ordDateFrom.value;
var orderDateTo = document.form1.ordDateTo.value;
document.form1.ordDateFrom.value = orderDateFrom.replace(/-/gi, "");
document.form1.ordDateTo.value = orderDateTo.replace(/-/gi, "");
var initDateFrom = document.form1.initDateFrom.value;
var initDateTo = document.form1.initDateTo.value;
document.form1.initDateFrom.value = initDateFrom.replace(/-/gi, "");
document.form1.initDateTo.value = initDateTo.replace(/-/gi, "");
document.form1.action = "/materMgmt/matermgmtList.do";
document.form1.submit();
}
function fn_orderMngPopUp(objId){
var _width = '1190';
var _height = '880';
// 팝업을 가운데 위치시키기 위해 아래와 같이 값 구하기
var _left = Math.ceil(( window.screen.width - _width )/2);
var _top = Math.ceil(( window.screen.width - _height )/2);
window.open("/orderMng/orderMngFormPopUp.do", "", 'width='+ _width +', height='+ _height +', left=' + _left);
}
function fn_materSupWrite(){
var _width = '1600';
var _height = '600';
// 팝업을 가운데 위치시키기 위해 아래와 같이 값 구하기
var _left = Math.ceil(( window.screen.width - _width )/2);
var _top = Math.ceil(( window.screen.width - _height )/2);
window.open("/materMgmt/materSupWrite.do", "", 'width='+ _width +', height='+ _height +', left=' + _left);
}
function fn_MaterModifyPopup(objId, orderId, status_cd){
console.log("fn_MaterModifyPopup objid > " + objId);
//'${item.MATERIAL_MASTER_OBJID}','${item.PROJECT_MGMT_OBJID}','${item.STATUS_CD}')"
var _width = '1200';
var _height = '930';
// 팝업을 가운데 위치시키기 위해 아래와 같이 값 구하기
var _left = Math.ceil(( window.screen.width - _width )/2);
var _top = Math.ceil(( window.screen.width - _height )/2);
/*
PURSTCD00100 5 >> 작성중 0000105
PURSTCD00800 99 >> 결재완료 0000107
PURSTCD00500 >> 결재중 0000106
*/
window.open("/materMgmt/materModifyDetailPopup.do?objId="+objId+"&orderId="+orderId, "", 'width='+ _width +', height=930, left=' + _left);
/* if(status_cd=="0000105"){
window.open("/materMgmt/materModify.do?objId="+objId+"&orderId="+orderId, "", 'width='+ _width + ', height='+ _height +', left=' + _left);
}else{
window.open("/materMgmt/materModifyDetailPopup.do?objId="+objId+"&orderId="+orderId, "", 'width='+ _width +', height=930, left=' + _left);
} */
}
function fn_RecSavePopup(){
var _width = '1800';
var _height = '500';
var _left = Math.ceil(( window.screen.width - _width )/2);
var _top = Math.ceil(( window.screen.width - _height )/2);
var partLength = $("input[name=partCheckBox]:checked").length;
if(0 < partLength){
var checkArr = new Array();
var statusFlag = false;
var view="";
/*
PURSTCD00100 5 >> 작성중 0000105
PURSTCD00800 99 >> 결재완료 0000107
PURSTCD00500 >> 결재중 0000106
>> 발주완료 0000108
0000105 - - 작성중
0000106 - - 결재중
0000107 - - 결재완료
0000108 - - 발주완료
0000109 - - 지연
0000110 - - 입고완료
0000130 - - 입고진행
*/
$("input[name=partCheckBox]:checked").each(function(){
var objId = fnc_checkNull($(this).attr("data-objId").replace(" ",""));
var ststus_cd = fnc_checkNull($(this).attr("data-STATUS_CD").replace(" ",""));
//if(ststus_cd=="PURSTCD00700" || ststus_cd=="PURSTCD00800"){
if(ststus_cd=="0000108" || ststus_cd=="0000130"){
checkArr.push(objId);
statusFlag = true;
}else if(ststus_cd=="0000110"){
checkArr.push(objId);
statusFlag = true;
view="Y";
}
});
if(1 < checkArr.length){
Swal.fire('1건씩만 입고결과 등록이 가능합니다.');
return;
}
if(statusFlag){
//window.open("/materMgmt/materRecSave.do?objId="+checkArr[0], "", 'width='+ _width +', height=500, left=' + _left);
if(view=="Y"){
window.open("/materMgmt/materRecSave.do?objId="+checkArr[0]+"&view=Y", "", 'width=1260, height=400, left=' + _left,"scrollbars=no, resizable=no");
}else{
window.open("/materMgmt/materRecSave.do?objId="+checkArr[0], "", 'width=1260, height=400, left=' + _left,"scrollbars=no, resizable=no");
}
}else{
Swal.fire("입고결과등록 가능한 항목이 없습니다.");
}
}else{
Swal.fire("선택한 항목이 없습니다.");
}
}
function fn_regmater(){
var partLength = $("input[name=partCheckBox]:checked").length;
//초기화
$("#materRegObjId").val("");
if(0 < partLength){
var checkArr = new Array();
var statusFlag = false;
$("input[name=partCheckBox]:checked").each(function(){
var objId = fnc_checkNull($(this).attr("data-objId").replace(" ",""));
var ststus_cd = fnc_checkNull($(this).attr("data-STATUS_CD").replace(" ",""));
if(ststus_cd=="PURSTCD00300"){
checkArr.push(objId);
statusFlag = true;
}
});
$("#materRegObjId").val(checkArr);
if(statusFlag){
if(confirm("선택한 항목을 접수하시겠습니까?")){
var param = $("#hiddenForm").serialize();
$.ajax({
type : "POST",
url : "/materMgmt/changeMaterRegStatus.do",
data: param,
dataType:"json",
success:function(data){
if(data=="SUCCESS"){
Swal.fire("접수되었습니다.");
fn_search();
};
}
,error: function(jqxhr, status, error){
}
});
}
}else{
Swal.fire("접수가능한 항목이 없습니다.");
}
}else{
Swal.fire("접수가능한 항목이 없습니다.");
}
}
function fn_deletemater(){
var partLength = $("input[name=partCheckBox]:checked").length;
//초기화
$("#materOrdObjId").val("");
if(0 < partLength){
var checkArr = new Array();
var statusFlag = false;
$("input[name=partCheckBox]:checked").each(function(){
var objId = fnc_checkNull($(this).attr("data-objId").replace(" ",""));
var ststus_cd = fnc_checkNull($(this).attr("data-STATUS_CD").replace(" ",""));
console.log("ststus_cd >> " + ststus_cd);
//if(ststus_cd=="PURSTCD00100"){
if(ststus_cd=="0000105" || ststus_cd=="0000106"){
checkArr.push(objId);
statusFlag = true;
}
});
//작성중 결재중 결재완. 상태에서 삭제 가능
console.log("statusFlag >> " + statusFlag);
$("#materOrdObjId").val(checkArr);
if(statusFlag){
if(confirm("선택한 발주서를 삭제하시겠습니까?")){
var param = $("#hiddenForm").serialize();
$.ajax({
type : "POST",
url : "/materMgmt/materDelete.do",
data: param,
dataType:"json",
success:function(data){
if(data =="SUCCESS"){
Swal.fire("삭제되었습니다.");
fn_search();
};
}
,error: function(jqxhr, status, error){
}
});
}
}else{
Swal.fire("삭제 가능한 항목이 없습니다.");
}
}else{
Swal.fire("선택한 항목이 없습니다.");
}
}
function fn_downmater(){
var partLength = $("input[name=partCheckBox]:checked").length;
if(0 < partLength){
var checkArr = new Array();
var projectArr = new Array();
var statusFlag = false;
$("input[name=partCheckBox]:checked").each(function(){
var objId = fnc_checkNull($(this).attr("data-objId").replace(" ",""));
var projectno = fnc_checkNull($(this).attr("data-project").replace(" ",""));
var ststus_cd = fnc_checkNull($(this).attr("data-STATUS_CD").replace(" ",""));
//if(ststus_cd=="PURSTCD00600" || ststus_cd=="PURSTCD00700" || ststus_cd=="PURSTCD00800"){
if(ststus_cd=="0000107" || ststus_cd=="0000130" || ststus_cd=="0000108" || ststus_cd=="0000110"){ //결재완료
checkArr.push(objId);
projectArr.push(projectno);
statusFlag = true;
}
});
if(1 < checkArr.length){
Swal.fire('1건씩만 발주서 다운로드가 가능합니다.');
return;
}
if(statusFlag){
$("#STATUS_CD").val("0000108"); //발주완료
document.form1.action = "/materMgmt/materOrderDown.do?objId="+checkArr[0]+"&projectno="+projectArr[0];
document.form1.submit();
}else{
Swal.fire("발주다운 가능한 항목이 없습니다.");
}
}else{
Swal.fire("선택한 항목이 없습니다.");
}
}
function fn_relemater(){
var partLength = $("input[name=partCheckBox]:checked").length;
//초기화
$("#materOrdObjId").val("");
if(0 < partLength){
var checkArr = new Array();
var statusFlag = false;
$("input[name=partCheckBox]:checked").each(function(){
var objId = fnc_checkNull($(this).attr("data-objId").replace(" ",""));
var ststus_cd = fnc_checkNull($(this).attr("data-STATUS_CD").replace(" ",""));
if(ststus_cd=="PURSTCD00600"){
checkArr.push(objId);
statusFlag = true;
}
});
$("#materOrdObjId").val(checkArr);
if(statusFlag){
if(confirm("선택한 항목을 발주 하시겠습니까?")){
var param = $("#hiddenForm").serialize();
$.ajax({
type : "POST",
url : "/materMgmt/changeMaterOrdStatus.do",
data: param,
dataType:"json",
success:function(data){
if(data=="SUCCESS"){
Swal.fire("발주되었습니다.");
fn_search();
};
}
,error: function(jqxhr, status, error){
}
});
}
}else{
Swal.fire("발주가능한 항목이 없습니다.");
}
}else{
Swal.fire("발주가능한 항목이 없습니다.");
}
}
</script>
</head>
<body class="backcolor">
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="actionType" id="actionType">
<input type="hidden" name="objId" id="objId">
<input type="hidden" name="objid" id="objid">
<input type="hidden" name="pjMoId" id="pjMoId">
<input type="hidden" name="materRegObjId" id="materRegObjId">
<input type="hidden" name="materOrdObjId" id="materOrdObjId">
<input type="hidden" name="STATUS_CD" id="STATUS_CD">
</form>
<form name="form1" id="form1" method="post">
<input type="hidden" name="actionType">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name">
<h2>
<span>자재관리_발주 관리</span>
</h2>
</div>
<div id="plmSearchZon">
<table>
<tbody>
<tr>
<td><label for="Year">연도</label></td>
<td>
<select name="Year" id="Year" class="select2" autocomplete="off" style="width:70px;" class="select2" autocomplete="off">
<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 class="align_r">
<label for="" class="">PO No.</label>
</td>
<td>
<select name="orderno" id="orderno" style="width:120px;" class="select2" autocomplete="off">
<option value="">전체</option>
${code_map.orderno}
</select>
</td>
<td class="align_r">
<label for="" class="">공급업체</label>
</td>
<td>
<select name="supply_cd" id="supply_cd" style="width:140px;" class="select2" autocomplete="off">
<option value="">전체</option>
${code_map.supply_cd}
</select>
</td>
<td class="align_r">
<label for="" class="">발주일</label>
</td>
<td>
<input type="text" id="ordDateFrom" name="ordDateFrom" class="date_margin" value="${param.ordDateFrom}" style="width:80px;"> ~ <input type="text" id="ordDateTo" name="ordDateTo" value="${param.ordDateTo}" style="width:80px;">
</td>
<td class="align_r">
<label for="" class="">입고일</label>
</td>
<td>
<input type="text" id="initDateFrom" name="initDateFrom" class="date_margin" value="${param.initDateFrom}" style="width:80px;"> ~ <input type="text" id="initDateTo" name="initDateTo" value="${param.initDateTo}" style="width:80px;">
</td>
<td class="align_r">
<label for="" class="">상태</label> <!-- 결재상태 -->
</td>
<td>
<select name="status_cd" id="status_cd" style="width: 180px;" class="select2" autocomplete="off">
<option value="">전체</option>
${code_map.status_cd}
</select>
</td>
</tr>
</tbody>
</table>
</div>
<section class="contents_page_basic_margin">
<div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="Excel Download" class="plm_btns" id="btnExcelDown">
<input type="button" value="입고결과등록" class="plm_btns" id="btnrevSave">
<input type="button" value="발주서다운로드" class="plm_btns" id="btnDown">
<!-- <input type="button" value="결재상신" class="plm_btns" > --><!-- id="btnSupSave" -->
<input type="button" value="발주서작성" class="plm_btns" id="btnOrderReg">
<input type="button" value="삭제" class="plm_btns" id="btnDelete"><!-- id="btnDelete" -->
<input type="button" value="조회" class="plm_btns" id="btnSearch">
</div>
</div>
<div class="ascendig_text">
<font size="3px">총 ${fn:length(LIST)}건</font>
</div>
<div class="plm_table_wrap" id="exportArea">
<div class="in_table_scroll_wrap _table1" style="height:26px;width:99.5%;">
<table class="plm_table">
<colgroup>
<col width="4%" /><!-- checkbox -->
<col width="6%" /><!-- No -->
<col width="16%" /><!-- 관리번호 -->
<col width="15%" /><!-- 제품구분 -->
<col width="16%" /><!-- 제품군 -->
<col width="16%" /><!-- 제품 -->
<col width="15%" /><!-- 공급업체 -->
<col width="13%" /><!-- 수량 -->
<col width="13%" /><!-- 공급가 -->
<col width="13%" /><!-- 납기일자 -->
<col width="13%" /><!-- 작성자 -->
<col width="13%" /><!-- 작성일자 -->
<col width="13%" /><!-- 상태 -->
</colgroup>
<thead>
<tr class="plm_thead">
<td><input type="checkbox" id="allCheck" class="checkBox"></td>
<td>No</td>
<td>관리번호</td>
<td>제품구분</td>
<td>제품군</td>
<td>제품</td>
<td>공급업체</td>
<td>수량</td>
<td>공급가</td>
<td>납기일자</td>
<td>작성자</td>
<td>작성일</td>
<td>상태</td>
</tr>
</thead>
</table>
</div>
<div class="in_table_scroll_wrap _table2" style="height:500px; width:100%;">
<table class="plm_table">
<colgroup>
<col width="4%" /><!-- checkbox -->
<col width="6%" /><!-- No -->
<col width="16%" /><!-- 관리번호 -->
<col width="15%" /><!-- 제품구분 -->
<col width="16%" /><!-- 제품군 -->
<col width="16%" /><!-- 제품 -->
<col width="15%" /><!-- 공급업체 -->
<col width="13%" /><!-- 수량 -->
<col width="13%" /><!-- 공급가 -->
<col width="13%" /><!-- 납기일자 -->
<col width="13%" /><!-- 작성자 -->
<col width="13%" /><!-- 작성일자 -->
<col width="13%" /><!-- 상태 -->
</colgroup>
<c:choose>
<c:when test="${empty LIST}">
<tr style="text-align:center;">
<td align="center" colspan="13">조회된 데이터가 없습니다.</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="item" items="${LIST}" varStatus="varStatus">
<tr>
<td>
<input type="checkbox" name="OBJID" value="${item.OBJID}">
</td>
<td>${item.RNUM}</td>
<td><a href="#" onclick="fn_orderMngPopUp('${item.OBJID}');">${item.PURCHASE_ORDER_NO}</a></td>
<td>${item.CATEGORY_CD_NAME}</td>
<td>${item.PRODUCT_GROUP_NAME}</td>
<td>${item.PRODUCT_NAME}</td>
<td>${item.PARTNER_NAME}</td>
<td>${item.TOTAL_ORDER_QTY}</td>
<td>${item.TOTAL_PRICE}</td>
<td>${item.DELIVERY_DATE}</td>
<td>${item.REGDATE_TITLE}</td>
<td>${item.WRITER_NAME}</td>
<td>${item.STATUS_TITLE}</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
</div>
</div>
</section>
</div>
</div>
</form>
</body>
</html>