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

433 lines
14 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ 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>
<script>
$(document).ready(function(){
$("#allCheck").click(function() {
if ($("#allCheck").prop("checked")) {
$("input[type=checkbox]").prop("checked", true);
} else {
$("input[type=checkbox]").prop("checked", false);
}
});
$("input[type=text]").keyup(function(e){
if(e.keyCode == 13){
$("#btnSearch").trigger("click");
}
});
$("#btnSearch").click(function(){
fn_search();
});
$("#btnRelease").click(function(){
var targetObj = $("input[name=REQUEST_OBJID]:checked");
if(0 < targetObj.length){
fn_releaseSalesRequest();
}else{
Swal.fire("선택된 내용이 없습니다.");
}
});
$("#btnExcel").click(function(){
fn_excelExport($("#mainGrid"),"BOM_REPORT_역전개");
});
$("#btnOrderReg").click(function(){
fn_openSalesRequestPopUp("");
});
$("#btnOrderBOMReg").click(function(){
fn_salesRequestTargetBOMListPopUp();
});
$("#btnDelete").click(function(){
fn_delete();
});
$("#btnApproval").click(function(){
var checkedObj = $("input[name=REQUEST_OBJID]:checked");
var title = "";
if(1 < checkedObj){
Swal.fire("한번에 한개의 결재만 가능합니다.");
return false;
}else{
var targetStatus = checkedObj.attr("data-STATUS");
var objId = checkedObj.val();
var targeType = "SALES_REQUEST";
if(targetStatus == "create" || targetStatus == "reception" || targetStatus == "reject"){
window.open("/approval/registApproval.do?targetType="+targeType+"&targetObjId="+objId+"&approvalTitle="+title+"&callbackFnc=fn_search","registApproval","width=700,height=700");
}else{
Swal.fire("이미 결재완료 또는 결재중 상태입니다.");
return false;
}
}
});
$(".btnApprovalDetail").click(function(){
var approvalObjId = $(this).attr("data-APPROVAL_OBJID");
var routeObjId = $(this).attr("data-ROUTE_OBJID");
var params = "?approvalObjId="+approvalObjId;
params += "&routeObjId="+routeObjId;
//Swal.fire("params : "+params);
window.open("/approval/approvalDetail.do"+params,"approvalDetailPopup","width=650 height=400 menubar=no status=no");
});
fnc_getAjaxProductMgmtList("SEARCH_PRODUCT_CODE", "", "", "${param.SEARCH_PRODUCT_CODE}");
});
function fn_delete(){
var selectedObj = $("input[name=REQUEST_OBJID]:checked");
if(0 < selectedObj.length){
if(confirm("선택된 정보를 삭제하시겠습니까?")){
$.ajax({
url:"/salesMng/deleteSalesRequestMng.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
success:function(data){
Swal.fire(data.msg);
fn_search();
},
error: function(jqxhr, status, error){
}
});
}
}else{
Swal.fire("선택된 정보가 없습니다.");
return false;
}
}
//구매의뢰서(BOM) 작성 시 사용
function fn_salesRequestTargetBOMListPopUp(){
var url = "/salesMng/salesRequestTargetBOMList.do";
window.open(url,"salesRequestTargetBOMListPopUp","width=1300,height=550");
}
//구매의뢰 요청 팝업
function fn_openSalesRequestPopUp(objId){
var url = "";
if("" == objId){
url = "/salesMng/salesRequestFormPopUp.do?SALES_REQUEST_MASTER_OBJID="+objId;
}else{
url = "/salesMng/salesRequestDetailPopUp.do?SALES_REQUEST_MASTER_OBJID="+objId;
}
window.open(url,"salesRequestPopUp","width=1100,height=900");
}
function fn_releaseSalesRequest(){
var checkArr = new Array();
var ngCnt = 0;
$("input[name=REQUEST_OBJID]:checked").each(function(){
var objId = $(this).val();
var status = $(this).attr("data-STATUS");
if("create" != status){
ngCnt++;
}
checkArr.push(objId);
});
if(0 < ngCnt){
Swal.fire("이미 제출된 정보입니다.\n대상을 확인하시기 바랍니다.");
return false;
}else{
if(confirm("선택된 정보를 구매당당자에게 제출 하시겠습니까?")){
$.ajax({
type : "POST",
url : "/salesMng/releaseSalesRequest.do",
data: {"checkArr":checkArr.join(),"status":"release"},
dataType:"json",
success:function(data){
Swal.fire(data.msg);
if(data.result){
fn_search();
}
}
,error: function(jqxhr, status, error){
}
});
}
}
}
//양산제품에 해당하는 SPEC 정보 목록을 가져온다.
function fn_productSpecList(productObjId,selectboxId,selectedVal){
$("#"+selectboxId).empty();
$("#"+selectboxId).append("<option value=''>선택</option>");
if("" != productObjId){
$.ajax({
url:"/common/getProductSPECList.do",
type:"POST",
data:{"isJson":true,"TARGET_OBJID":productObjId},
dataType:"json",
async:false,
success:function(data){
resultList = data
if(0 < resultList.length){
for (var i = 0; i < resultList.length; i++) {
var commonCodeId = resultList[i].OBJID;
var commonCodeName = resultList[i].SPEC_NAME;
$("#"+selectboxId).append("<option value='"+commonCodeId+"'>"+commonCodeName+"</option>");
}
$("#"+selectboxId).val(selectedVal);
}
},
error: function(jqxhr, status, error){
}
});
}
}
function fn_search() {
document.form1.action = "/salesMng/salesRequestMngList.do";
document.form1.submit();
}
function fn_excelExport(pGridObj,pFileName){
var mya = pGridObj.getDataIDs();
var data = pGridObj.getRowData(mya[0]);
var colNames=new Array();
var ii=0;
for (var d in data){ colNames[ii++] = d; }
//컬럼 헤더 가져오기
var columnHeader = pGridObj.jqGrid('getGridParam','colNames') + '';
var arrHeader = columnHeader.split(',');
var html="<table border=1><tr>";
for ( var y = 0; y < arrHeader.length; y++ ) {
var hName = arrHeader[y];
if("PART_OBJID" == hName || "EO_OBJID" == hName){
continue;
}
html = html + "<td><b>" + arrHeader[y] + "</b></td>";
}
html = html + "</tr>";
//값 불러오기
for(var i=0;i< mya.length;i++) {
var datac= pGridObj.getRowData(mya[i]);
html = html +"<tr>";
for(var j=0; j< colNames.length;j++){
if("PART_OBJID" == colNames[j] || "EO_OBJID" == colNames[j]){
continue;
}
html=html + '<td>' + datac[colNames[j]]+"</td>";
}
html = html+"</tr>";
}
html=html+"</table>"; // end of line at the end
document.EXCEL_.csvBuffer.value = html;
document.EXCEL_.fileName.value = pFileName;
document.EXCEL_.target='_new';
document.EXCEL_.submit();
}
function fn_str_openPopup(bom_report_objid, product_code, product_mgmt_spec, upg_no, search_partNo, search_partName){
var param = "actionType=search"
+"&bom_report_objid=" + bom_report_objid
+"&product_code=" + product_code
+"&product_mgmt_spec=" + product_mgmt_spec
+"&upg_no=" + upg_no
+"&search_partNo=" + search_partNo
+"&search_partName=" + search_partName
;
window.open("/partmgmt/structureAscendingListPopup.do?"+param, "_strListPopup", "width=1200, height=800, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
//구매 BOM 팝업
function fn_salesMngBOMOpenPopUp(bom_report_objid){
var param = "actionType=search"
+"&bom_report_objid=" + bom_report_objid
;
window.open("/salesMng/salesMngBOMListPopUp.do?"+param, "_strListPopup", "width=1200, height=800, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
function fn_salesMngBOMOpenPopUp(bom_report_objid){
var param = "actionType=search"
+"&bom_report_objid=" + bom_report_objid
;
window.open("/salesMng/salesRequestDetailPopUp.do?"+param, "_strListPopup", "width=1200, height=800, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
</script>
</head>
<body class="backcolor">
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="OBJID" id="OBJID">
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="actionType" id="actionType" value="" />
<div class="min_part_enroll">
<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="">기종(모델)명</label></td>
<td>
<select name="SEARCH_PRODUCT_CODE" id="SEARCH_PRODUCT_CODE" style="" class="select2" autocomplete="off"></select>
</td>
<td class="align_r">
<label for="" class="">Part No</label>
</td>
<td>
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" value="${param.SEARCH_PART_NO}"/>
</td>
<td class="align_r">
<label for="" class="">Part Name</label>
</td>
<td>
<input type="text" name="SEARCH_PART_NAME" id="SEARCH_PART_NAME" value="${param.SEARCH_PART_NAME}" placeholder="ex) HEX. BOLT"/>
</td>
<td class="align_r">
<label for="" class="">상태</label>
</td>
<td>
<select name="SEARCH_STATUS" id="SEARCH_STATUS" style="" class="select2" autocomplete="off">
<option value="">선택</option>
<option value="create">등록</option>
<option value="requestComplete">요청완료</option>
<option value="reception">의뢰접수</option>
<option value="approvalRequest">결제중</option>
<option value="reject">반려</option>
<option value="approvalComplete">결제완료</option>
</select>
</td>
</tr>
</tbody>
</table>
</div>
<div class="contents_page_basic_margin">
<div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="조회" class="plm_btns" id="btnSearch">
</div>
</div>
<div class="plm_table_wrap">
<div style="overflow-y:scroll;">
<table class="plm_table">
<colgroup>
<col width="1.5%" />
<col width="4%" /> <!-- No -->
<col width="6%" /> <!-- 관리번호 -->
<col width="6%" /> <!-- 기종 -->
<col width="*" /> <!-- 제목 -->
<col width="8%" /> <!-- 구매담당자 -->
<col width="8%" /> <!-- 요청승인여부 -->
<col width="9%" /> <!-- 요청자 -->
<col width="7%" /> <!-- 등록일 -->
<col width="7%" /> <!-- 상태 -->
</colgroup>
<tr class="plm_thead">
<td><input type="checkbox" name="allCheck" id="allCheck"></td>
<td>No</td>
<td>구매의뢰번호</td>
<td>기종(모델)명</td>
<td>대표 파트</td>
<td>구매담당자</td>
<td>요청승인여부</td>
<td>요청자</td>
<td>등록일</td>
<td>상태</td>
</tr>
</table>
</div>
<div class="plm_scroll_table" style="width:100%; height:500px;">
<table class="plm_table">
<colgroup>
<col width="1.5%" />
<col width="4%" /> <!-- No -->
<col width="6%" /> <!-- 관리번호 -->
<col width="6%" /> <!-- 기종 -->
<col width="*" /> <!-- 제목 -->
<col width="8%" /> <!-- 구매담당자 -->
<col width="8%" /> <!-- 요청승인여부 -->
<col width="9%" /> <!-- 요청자 -->
<col width="7%" /> <!-- 등록일 -->
<col width="7%" /> <!-- 상태 -->
</colgroup>
<tbody>
<c:choose>
<c:when test="${!empty LIST}">
<c:forEach var="item" items="${LIST}" varStatus="status">
<tr>
<td>
<input type="checkbox" name="REQUEST_OBJID" value="${item.OBJID}" data-STATUS="${item.STATUS}" data-WRITER="${item.WRITER}">
</td>
<td>${item.RNUM}</td>
<td><a href="#" onclick="fn_openSalesRequestPopUp('${item.OBJID}')">${item.REQUEST_MNG_NO}</a></td>
<td>${item.PRODUCT_CODE_NAME}</td>
<td>${item.TARGET_TITLE}</td>
<td>${item.SALES_MNG_USER_NAME}</td>
<td>${item.REQUEST_STATUS_TITLE}</td>
<td>${item.WRITER_NAME}</td>
<td>${item.REGDATE_TITLE}</td>
<td>
<c:choose>
<c:when test="${item.STATUS ne 'create' && item.STATUS ne 'requestComplete' && item.STATUS ne 'reception'}">
<a href="#" class="btnApprovalDetail" data-APPROVAL_OBJID="${item.APPROVAL_OBJID}" data-ROUTE_OBJID="${item.ROUTE_OBJID}">${item.STATUS_TITLE}</a>
</c:when>
<c:otherwise>
${item.STATUS_TITLE}
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="12" align="center">조회된 정보가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
<style>
.container::-webkit-scrollbar-thumb {background: linear-gradient(to bottom, #f5d78e, #f5d78e) !important;}
.container::-webkit-scrollbar-track {background-color: white !important;}
.container::-webkit-scrollbar-button { display: none !important;}
</style>
</html>