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

707 lines
23 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 userId = CommonUtils.checkNull(person.getUserId());
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<script>
var grid;
$(function(){
$("#btnClose").click(function(){
self.close(0);
});
$("#btnReg").click(function(){
fn_save();
});
$("#btnAdd").click(function(){
//파트 추가를 위한 팝업을 호출한다.
fn_openPartPopUp();
});
$("#btnDelete").click(function(){
fn_deleteRow();
});
$("#btnDrawingDownload").click(function(){
fn_getDrawingDownload();
});
$("#PRODUCT_GROUP").change(function(){
$("#PRODUCT").empty();
if("" != this.value){
fnc_getCodeListAppend(this.value,"PRODUCT","${resultMap.PRODUCT}");
}
});
$(document).on("change", ".PARTNER_OBJID", function(){
var targetObjId = $(this).attr("data-OBJID");
var partnerPrice = $("option:selected",this).attr("data-PARTNER_PRICE");
$("#PARTNER_PRICE_"+targetObjId).val(partnerPrice);
});
fnc_getCodeListAppend("0000182","CATEGORY_CD","${resultMap.CATEGORY_CD}");
fnc_getCodeListAppend("0000001","PRODUCT_GROUP","${resultMap.PRODUCT_GROUP}");
if("" != "${resultMap.PRODUCT_GROUP}"){
fnc_getCodeListAppend("${resultMap.PRODUCT_GROUP}","PRODUCT","${resultMap.PRODUCT}");
}
fnc_getCodeListAppend("0000259","REQUEST_STATUS","${resultMap.REQUEST_STATUS}");
fnc_getUserList2("SALES_MNG_USER_ID", "${resultMap.SALES_MNG_USER_ID}");
$("#PRODUCT_GROUP").change(function(){
$("#PRODUCT").empty();
if("" != this.value){
fnc_getCodeListAppend(this.value,"PRODUCT","${resultMap.PRODUCT}");
}
});
fn_getSalesRequestTargetPartList();
fnc_setFileDropZone("salesMngRequestDropZone", "${resultMap.OBJID}", "SALES_MNG_REQUEST", "구매의뢰서 첨부파일", "fileAreaDraw",false,null,null);
fileAreaDraw();
fn_setPartnerList();
});
</script>
<script>
function fn_setPartnerList(){
$(".TARGET_OBJID").each(function(i){
var targetObjId = $(this).val();
var targetPartObjId = $(this).attr("data-PART_OBJID");
var partnerObjId = $(this).attr("data-PARTNER_OBJID");
$("#PARTNER_OBJID_"+targetObjId).empty();
$("#PARTNER_OBJID_"+targetObjId).append("<option value=''>선택</option>");
$.ajax({
url:"/salesMng/getSalesPartnerInfoList.do",
type:"POST",
data:{"PART_OBJID":targetPartObjId},
dataType:"json",
async:false,
success:function(data){
resultList = data
if(resultList != null && 0 < resultList.length){
for (var i = 0; i < resultList.length; i++) {
console.log("resultList[i]:"+resultList[i]);
var codeId = fnc_checkNull(resultList[i].PARTNER_OBJID);
var codeName = resultList[i].PARTNER_NAME;
var codePrice = resultList[i].PARTNER_PRICE;
if("" != codeId){
$("#PARTNER_OBJID_"+targetObjId).append("<option value='"+codeId+"' data-PARTNER_PRICE='"+codePrice+"'>"+codeName+"</option>");
}
}
$("#PARTNER_OBJID_"+targetObjId).val(partnerObjId);
}
},
error: function(jqxhr, status, error){
}
});
});
}
function fn_getSalesRequestTargetPartList(){
var appendText = "";
var requestStatus = $("#STATUS").val();
$("#partListArea").empty();
$.ajax({
url:"/salesMng/getSalesRequestTargetList.do",
type:"POST",
data:{"SALES_REQUEST_MASTER_OBJID":"${resultMap.OBJID}"},
dataType:"json",
async:false,
success:function(data){
var resultData = data;
if(0 < resultData.length){
$.each(resultData, function(i){
console.log("resultData["+i+"]:"+resultData[i]);
var RNUM = fnc_checkNull(resultData[i].RNUM);
var OBJID = fnc_checkNull(resultData[i].OBJID);
var SALES_BOM_QTY_OBJID = fnc_checkNull(resultData[i].SALES_BOM_QTY_OBJID);
var PART_OBJID = fnc_checkNull(resultData[i].PART_OBJID);
var SALES_REQUEST_MASTER_OBJID = fnc_checkNull(resultData[i].SALES_REQUEST_MASTER_OBJID);
var QTY = fnc_checkNull(resultData[i].QTY);
var PARTNER_OBJID = fnc_checkNull(resultData[i].PARTNER_OBJID);
var PARTNER_PRICE = fnc_checkNull(resultData[i].PARTNER_PRICE);
var DELIVERY_REQUEST_DATE = fnc_checkNull(resultData[i].DELIVERY_REQUEST_DATE);
var REMARK = fnc_checkNull(resultData[i].REMARK);
var TARGET_TITLE = fnc_checkNull(resultData[i].TARGET_TITLE);
var UNIT_TITLE = fnc_checkNull(resultData[i].UNIT_TITLE);
/* <col width="20px" />
<col width="100px" /> <!-- No -->
<col width="100px" /> <!-- 품명(재질,규격)/품번 -->
<col width="100px" /> <!-- 단위 -->
<col width="80px" /> <!-- 수량 -->
<col width="70px" /> <!-- 납기요청일 -->
<col width="110px" /> <!-- 업체 -->
<col width="110px" /> <!-- 업체단가 -->
<col width="90px" /> <!-- 비고 --> */
appendText += " <tr class='dataTr'>";
appendText += " <input type='hidden' name='OBJID' value='"+OBJID+"' class='TARGET_OBJID' data-PART_OBJID='"+PART_OBJID+"' data-PARTNER_OBJID='"+PARTNER_OBJID+"'>";
appendText += " <input type='hidden' name='SALES_BOM_QTY_OBJID_"+OBJID+"' value='"+SALES_BOM_QTY_OBJID+"'>";
appendText += " <input type='hidden' name='PART_OBJID_"+OBJID+"' value='"+PART_OBJID+"'>";
appendText += " <td class='align_c'><input type='checkbox' name='OBJID_"+OBJID+"' value='"+OBJID+"'></td>";
appendText += " <td title='"+RNUM+"' class='align_c'>"+RNUM+"</td>";
appendText += " <td class='align_l'>";
appendText += " <a href='#' onclick=\"fn_openPartPopup('"+PART_OBJID+"');\">"+TARGET_TITLE+"</a>";
appendText += " </td>";
appendText += " <td title='"+UNIT_TITLE+"' class='align_c'>"+UNIT_TITLE+"</td>";
appendText += " <td class='align_l'>";
appendText += " <input type='number' name='QTY_"+OBJID+"' id='QTY_"+OBJID+"' value='"+QTY+"' "+("create" == requestStatus ? '':'readonly')+">";
appendText += " </td>";
appendText += " <td class='align_l'>";
appendText += " <input type='text' name='DELIVERY_REQUEST_DATE_"+OBJID+"' id='DELIVERY_REQUEST_DATE_"+OBJID+"' value='"+DELIVERY_REQUEST_DATE+"' "+("create" == requestStatus ? '':'readonly')+">";
appendText += " </td>";
appendText += " <td class='align_l'>";
appendText += " <select name='PARTNER_OBJID_"+OBJID+"' id='PARTNER_OBJID_"+OBJID+"' class='PARTNER_OBJID' data-OBJID='"+OBJID+"' "+("reception" == requestStatus ? '':'readonly')+"></select>";
appendText += " </td>";
appendText += " <td class='align_l'>";
appendText += " <input type='text' name='PARTNER_PRICE_"+OBJID+"' id='PARTNER_PRICE_"+OBJID+"' value='"+PARTNER_PRICE+"' "+("reception" == requestStatus ? '':'readonly')+">";
appendText += " </td>";
appendText += " <td class='align_l'>";
appendText += " <input type='text' name='REMARK_"+OBJID+"' id='REMARK_"+OBJID+"' value='"+REMARK+"'>";
appendText += " </td>";
appendText += " </tr>";
});
}else{
appendText += "<tr>";
appendText += "<td colspan='9'>조회된 내용이 없습니다.</td>";
appendText +="</tr>";
}
},
error: function(jqxhr, status, error){
}
});
$("#partListArea").append(appendText);
}
/* 파트 추가 시 그리드에 Row 추가 */
function fn_addRow(rowData){
console.log("rowData:"+rowData);
grid.appendRow(
rowData,
{
focus: true
}
);
}
/* 파트 추가 시 그리드에 Row 추가 */
function fn_deleteRow(){
var targetList = grid.getCheckedRowKeys();
console.log("targetList:"+targetList);
console.log("targetList.length:"+targetList.length);
if(0 < targetList.length){
if(confirm("선택된 내용을 삭제하시겠습니까?")){
for(var i=0;i<targetList.length;i++){
var rowKey = targetList[i];
grid.removeRow(rowKey);
}
}
}else{
Swal.fire("선택된 내용이 없습니다.");
return false;
}
}
function fn_openPartPopUp(){
window.open("/partMng/partMngListPopUp.do?callBackFn=fn_addRow&callType=salesRequestForm", "tempPartListPopup", "width=1200, height=750, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
//결재정보를 가져온다.
function fn_getApprovalLine(){
var scheduleList = new Array();
<c:forEach items="${approvalList}" var="approvalItem">
var seq = "${approvalItem.SEQ}";
var targetUserName = "${approvalItem.TARGET_USER_NAME}";
var procDate = "${approvalItem.PROC_DATE}";
if(1 == seq){
$("#reviewerName").append(targetUserName);
$("#reviewerDate").append(procDate);
}
if(2 == seq){
$("#confirmName").append(targetUserName);
$("#confirmDate").append(procDate);
}
</c:forEach>
}
function fileAreaDraw(){
fn_fileCallback2("salesMngRequest","SALES_MNG_REQUEST");
}
function fn_fileCallback2(areaId,fileType){
$.ajax({
url:"/common/getFileList.do",
type:"POST",
data:{"targetObjId":"${resultMap.OBJID}", "docType":fileType},
dataType:"json",
async:false,
success:function(data){
if(0 < data.length){
//첨부파일 목록 영역 show
$("#"+areaId+"FileArea").empty();
if(0 < $("#"+areaId+"DefaultRow").length){
$("#"+areaId+"DefaultRow").hide();
}
$.each(data, function(i){
var appendText = "";
var path = data[i].FILE_PATH;
var fileName = data[i].SAVED_FILE_NAME;
var fileExt = data[i].UPPER_FILE_EXT;
appendText += "<colgroup>";
appendText +=" <col width='10%''>";
appendText +=" <col width='*'>";
appendText +=" <col width='20%'>";
appendText +=" </colgroup>";
appendText+= "<tr>";
appendText+= " <td>"+[i+1]+"</td>";
appendText+= " <td class='align_l'>";
appendText+= " <a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>&nbsp;&nbsp;"+data[i].REAL_FILE_NAME+"</a>";
if(data[i].WRITER=="${connectUserId}" || 'plm_admin'== "${connectUserId}"){
appendText+= "<a href='javascript:fileDelete(\""+data[i].OBJID+"\",\""+areaId+"\")'><div class='delete_btn'></div></a>";
}
appendText+= "</td>";
appendText+= " <td>"+data[i].REGDATE+"</td>";
appendText+= "</tr>";
$("#"+areaId+"FileArea").append(appendText);
});
}else{
$("#"+areaId+"DropZone").show();
$("#"+areaId+"AttachFileList").hide();
$("#"+areaId+"FileArea").empty();
var appendText = "";
appendText += "<tr>";
appendText += "<td>첨부 파일이 없습니다.</td>";
appendText +="</tr>";
$("#"+areaId+"FileArea").append(appendText);
}
},
error: function(jqxhr, status, error){
}
});
}//파일 첨부 END
/*첨부 파일 삭제 */
function fileDelete(fileObjId,areaId){
var type =areaId;
if(confirm("파일을 삭제하시겠습니까?")){
$.ajax({
url:"/common/deleteFileInfo.do",
type:"POST",
data:{"objId":fileObjId},
dataType:"json",
async:true,
success:function(data){
fileAreaDraw();
},
error: function(jqxhr, status, error){
}
});
}
}
function fn_save(){
var formData = $("#form1").serialize();
if(confirm("저장하시겠습니까?")){
$.ajax({
type: "POST",
url: "/salesMng/saveSalesRequestInfo.do",
data: $("#form1").serialize(),
dataType:"json",
success:function(data){
Swal.fire(data.msg);
if(data.result){
opener.fn_search();
self.close();
}
},
error: function(jqxhr, status, error){
}
});
}
}
function fn_getDrawingDownload(){
var gridData = $("#partListGrid").getRowData();
if(0 < gridData.length){
var targetPartList = [];
for(var i=0;i<gridData.length;i++){
targetPartList.push(gridData[i].PART_OBJID);
}
var form = document.form1;
form.TARGET_DRAWING_DOWNLOAD.value = targetPartList.join();
form.action = "/devMng/getDrawingDownload.do";
form.submit();
}else{
Swal.fire("일괄다운로드 대상 Part가 없습니다.");
return false;
}
}
function fn_openPartPopup(objId){
window.open("/partMng/partMngDetailPopUp.do?OBJID="+objId, "tempPartListPopup", "width=600, height=700, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
function num2han(num) {
num = parseInt((num + '').replace(/[^0-9]/g, ''), 10) + '';
// 숫자/문자/돈 을 숫자만 있는 문자열로 변환
if(num == '0')
return '영';
var number = ['영', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
var unit = ['', '만', '억', '조'];
var smallUnit = ['천', '백', '십', ''];
var result = [];
//변환된 값을 저장할 배열
var unitCnt = Math.ceil(num.length / 4);
//단위 갯수. 숫자 10000은 일단위와 만단위 2개이다.
num = num.padStart(unitCnt * 4, '0')
//4자리 값이 되도록 0을 채운다
var regexp = /[\w\W]{4}/g;
//4자리 단위로 숫자 분리
var array = num.match(regexp);
//낮은 자릿수에서 높은 자릿수 순으로 값을 만든다(그래야 자릿수 계산이 편하다)
for(var i = array.length - 1, unitCnt = 0; i >= 0; i--, unitCnt++)
{ var hanValue = _makeHan(array[i]);
//한글로 변환된 숫자
if(hanValue == '')
//값이 없을땐 해당 단위의 값이 모두 0이란 뜻.
continue;
result.unshift(hanValue + unit[unitCnt]);
//unshift는 항상 배열의 앞에 넣는다.
}
//여기로 들어오는 값은 무조건 네자리이다. 1234 -> 일천이백삼십사
function _makeHan(text) {
var str = '';
for (var i = 0; i < text.length; i++) {
var num = text[i];
if (num == '0')
continue;
str += number[num] + smallUnit[i];
}
return str;
}
return result.join('');
}
</script>
<style>
.input_title {border-left:1px solid #ccc;}
.input_sub_title {border-left:1px solid #ccc;}
.pmsPopupForm tr:last-child td{border-bottom:1px solid #ccc;}
</style>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="SALES_REQUEST_MASTER_OBJID" id="SALES_REQUEST_MASTER_OBJID" value="${resultMap.OBJID}">
<input type="hidden" name="STATUS" id="STATUS" value="${resultMap.STATUS}">
<input type="hidden" name="TARGET_DRAWING_DOWNLOAD" id="TARGET_DRAWING_DOWNLOAD">
<section>
<div class="plm_menu_name" style="display:flex;">
<h2 style="width:50%;text-align:center;margin-top:15px;">
<span style="font-size:30px;">구매의뢰 등록<br>${resultMap.REQUEST_MNG_NO}</span>
</h2>
<table class="pmsPopupForm" style="width:50%;background:white;">
<colgroup>
<col width="20%">
<col width="20%">
<col width="20%">
<col width="20%">
</colgroup>
<tr style="border-spacing: 0;border-bottom:1px solid #ccc;border-left:1px solid #ccc;">
<td class="input_title" rowspan="3" style="text-align:center;">
<label>결재</label>
</td>
<td class="input_title" style="text-align:center;">
<label>작성자</label>
</td>
<td class="input_title" style="text-align:center;">
<label>검토</label>
</td>
<td class="input_title" style="text-align:center;">
<label>승인</label>
</td>
</tr>
<tr style="border-spacing: 0;border-bottom:1px solid #ccc;">
<td class="input_sub_title" style="text-align:center;">
${resultMap.WRITER_TITLE}<!-- 작성자이름 -->
</td>
<td class="input_sub_title" style="text-align:center;" id="reviewerName"></td>
<td class="input_sub_title" style="text-align:center;" id="confirmName"></td>
</tr>
<tr style="border-spacing: 0;border-bottom:1px solid #ccc;border-left:1px solid #ccc;">
<td class="input_sub_title" style="text-align:center;">
${resultMap.REGDATE_TITLE}<!-- 작성일자 -->
</td>
<td class="input_sub_title" style="text-align:center;" id="reviewerDate"></td>
<td class="input_sub_title" style="text-align:center;" id="confirmDate"></td>
</tr>
</table>
</div>
<div id="businessPopupFormWrap" style="z-index:99;">
<table class="pmsPopupForm" style="z-index:99;">
<colgroup>
<col width="9.5%">
<col width="*">
<col width="9.5%">
<col width="*">
<col width="2%">
<col width="*">
<col width="9.5%">
<col width="*">
<col width="9.5%">
<col width="*">
</colgroup>
<tr>
<td class="input_title"><label for="">공급업체</label></td>
<td class="input_sub_title" colspan="3">
<input type="text" value="${resultMap.REQUEST_MNG_NO}" placeholder="저장 시 자동채번됩니다." readonly>
</td>
<td class="input_title" rowspan="5"><label for="">발<br>주<br>자</label></td>
<td class="input_title"><label for="supply_code">등록번호</label></td>
<td class="input_sub_title" colspan="4">
</td>
</tr>
<tr>
<td class="input_title"><label for="">발주일자</label></td>
<td class="input_sub_title" colspan="3">
</td>
<td class="input_title"><label for="">상호</label></td>
<td class="input_sub_title" colspan="2">
</td>
<td class="input_title"><label for="">성명</label></td>
<td class="input_sub_title">
</td>
</tr>
<tr>
<td class="input_title"><label for="">Tel</label></td>
<td class="input_sub_title">
</td>
<td class="input_title"><label for="">Fax</label></td>
<td class="input_sub_title">
</td>
<td class="input_title"><label for="">주소</label></td>
<td class="input_sub_title" colspan="4">
</td>
</tr>
<tr>
<td class="input_title" colspan="4" rowspan="2"><label for=""></label></td>
<td class="input_title"><label for="">업태</label></td>
<td class="input_sub_title">
</td>
<td class="input_title"><label for="">종목</label></td>
<td class="input_sub_title" colspan="2">
</td>
</tr>
<tr>
<td class="input_title"><label for="">Tel</label></td>
<td class="input_sub_title">
</td>
<td class="input_title"><label for="">Fax</label></td>
<td class="input_sub_title" colspan="2">
</td>
</tr>
<tr>
<td class="input_title"><label for="">합계금액 : </label></td>
<td class="input_sub_title">
</td>
<td class="input_title"><label for="">Fax</label></td>
<td class="input_sub_title" colspan="2">
</td>
</tr>
</table>
</div>
<div id="businessPopupFormWrap" style="z-index:99;">
<c:if test="${'create' eq resultMap.STATUS}">
<div class="plm_btn_wrap">
<input type="button" value="추가" class="plm_btns" id="btnAdd">
<input type="button" value="삭제" class="plm_btns" id="btnDelete">
</div>
</c:if>
<table class="pmsPopupForm" style="margin-top:10px;">
<tr>
<td class="input_title">
<label for="">구매의뢰 부품</label>
</td>
</tr>
<tr>
<td>
<div class="in_table_scroll_wrap _table1" style="height:22px;width:99%;">
<table class="plm_table">
<colgroup>
<col width="25px" />
<col width="40px" /> <!-- No -->
<col width="*" /> <!-- 품명(재질,규격)/품번 -->
<col width="60px" /> <!-- 단위 -->
<col width="50px" /> <!-- 수량 -->
<col width="80px" /> <!-- 납기요청일 -->
<col width="100px" /> <!-- 업체 -->
<col width="100px" /> <!-- 업체단가 -->
<col width="100px" /> <!-- 공급단가 -->
<col width="200px" /> <!-- 비고 -->
</colgroup>
<thead>
<tr class="plm_thead">
<td></td>
<td>No</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:280px;width:100%;">
<table class="plm_table">
<colgroup>
<col width="25px" />
<col width="40px" /> <!-- No -->
<col width="*" /> <!-- 품명(재질,규격)/품번 -->
<col width="60px" /> <!-- 단위 -->
<col width="50px" /> <!-- 수량 -->
<col width="80px" /> <!-- 납기요청일 -->
<col width="100px" /> <!-- 업체 -->
<col width="100px" /> <!-- 업체단가 -->
<col width="100px" /> <!-- 공급단가 -->
<col width="200px" /> <!-- 비고 -->
</colgroup>
<tbody id="partListArea">
</tbody>
</table>
</div>
</td>
</tr>
</table>
</div>
<div id="businessPopupFormWrap" style="height:180px;">
<table class="pmsPopupForm">
<tr>
<td class="input_title">
<label for="">파일첨부</label>
</td>
</tr>
<tr>
<td>
<div id="salesMngRequestDropZone" class="dropzone"style="width:99% !important;">Drag & Drop Files Here</div>
</td>
</tr>
<tr>
<td>
<div class="project_form_in_table"style="width:100%" id="salesMngRequestFileAreaTable" >
<div style="overflow-y:scroll;">
<table class="" style="width:100%;">
<colgroup>
<col width="10%">
<col width="*">
<col width="20%">
</colgroup>
<thead>
<tr class="plm_thead">
<td>No</td>
<td>첨부파일명</td>
<td>등록일</td>
</tr>
</thead>
</table>
</div>
<div class="plm_scroll_table" style="height:75px;">
<table class="plm_table">
<colgroup>
<col width="10%">
<col width="*">
<col width="20%">
</colgroup>
</table>
<table id="salesMngRequestFileArea" class="fileListscrollTbody">
<tr>
<td colspan="3">첨부 파일이 없습니다.</td>
</tr>
</table>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<input type="button" value="저장" class="plm_btns" id="btnReg">
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
</section>
</form>
</body>
</html>