Files
wace_plm/WebContent/WEB-INF/view/projectConcept/projectConceptFormEditPopup.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

769 lines
24 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.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<script>
$(document).ready(function(){
//닫기
$("#btnClose").click(function(){
self.close(0);
});
//저장
$("#btnSave").click(function(){
fn_save();
});
//입찰품목 등록
$("#conceptItemRegist").click(function(){
var params = "";
params += "?targetObjId=${objId}";
window.open("/projectConcept/projectConceptProductInfoFormPopup.do"+params, "", "width=760, height=700");
});
//취소
$("#btnCancel").click(function(){
var objId = $(this).attr("data-OBJID");
var params = "?objId="+objId;
document.form1.action ="/projectConcept/projectConceptDetailPopup.do"+params;
document.form1.submit();
});
fnc_setFileDropZone("projectDropZone", "${objId}", "CUSTOMER_01", "고객정보자료01", "projectAreaDraw",false,null,null);
fnc_setFileDropZone("project1DropZone", "${objId}", "CUSTOMER_02", "고객정보자료02", "projectAreaDraw1",false,null,null);
projectAreaDraw();
projectAreaDraw1();
$("#btnUpload").click(function(){
var files = $("#file1")[0].files;
if(files.length > 0){
fnc_fileMultiUpload(files, null, "${objId}", "CUSTOMER_01", "고객정보자료", null, "projectAreaDraw");
//file객체 초기화
$("#file1").val("");
}else{
Swal.fire("선택된 File이 없습니다.");
}
});
fnc_datepick();
});
</script>
<script>
//oem 목록 조회
function fn_setOEMList(){
$.ajax({
url:"/common/getOEMList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].OEM_NAME+"("+data[i].OEM_CODE+")</option>";
});
$("#oemObjId").append(appendCode);
$("#oemObjId > option[value=${info.OEM_OBJID}]").attr("selected", "true");
$("#oemObjId").trigger("change");
},
error: function(jqxhr, status, error){
}
});
}
//형상 영역을 display 한다.
function projectAreaDraw(){
fn_fileCallback("project","CUSTOMER_01");
}
//형상 영역을 display 한다.
function projectAreaDraw1(){
fn_fileCallback("project1","CUSTOMER_02");
}
//첨부파일 목록을 가져온다.
function fn_fileCallback(areaId,fileType){
$.ajax({
url:"/common/getFileList.do",
type:"POST",
data:{"targetObjId":"${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 = "";
if("project" == areaId || "project1" == areaId){
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'><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>&nbsp;&nbsp;"+data[i].REAL_FILE_NAME+"</a>";
<c:if test="${param.actionType eq 'regist' or info.WRITER eq connectUserId or 'plm_admin' eq connectUserId}">
appendText+= "<a href='javascript:fileDelete(\""+data[i].OBJID+"\",\""+areaId+"\")'><div class='delete_btn'></div></a>";
</c:if>
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){
if(type=="project"){
fn_fileCallback("project","CUSTOMER_01");
}else{
fn_fileCallback("project1","CUSTOMER_02");
}
},
error: function(jqxhr, status, error){
}
});
}
}
//수주활동 등록정보 저장
function fn_save(){
if(fnc_valitate("form1")){
if(confirm("저장하시겠습니까?")){
saveProcess();
}
}
}
function fn_checkProductCnt(){
var result = false;
var objId = $("#objId").val();
$.ajax({
url:"/projectConcept/getProjectConceptProductCnt.do",
type:"POST",
data:{"targetObjId":objId},
dataType:"json",
async:false,
success:function(data){
var cnt = data.CNT;
if(cnt > 0){
result = true;
}else{
result = false;
}
},
error: function(jqxhr, status, error){
}
});
return result;
}
function saveProcess(){
$.ajax({
url:"/projectConcept/saveOrderMgmtInfo.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
success:function(data){
Swal.fire(data.RESULT.msg);
self.close();
},
error: function(jqxhr, status, error){
}
});
}
//코드값을 받아와서 동적으로 selectbox 생성
function optionJobGroup(code){
var val=code;
var params = "";
var option="";
var combobox = $("#region_low_cd");
combobox.empty();
if(val!=""){
params += "codeId="+val;
$.ajax({
type : "POST",
url : "/admin/makeSelect.do",
data : params,
dataType:"json",
async: false,
success: function(data){
if(data.RESULT !=""){
option += "<option value=''>전체</option>";
option += data.RESULT;
combobox.append(option);
}
}
});
// Swal.fire(Number(lev-1));
//$("#code"+Number(lev-1)).val(code).prop("selected", true);
}else{
option += "<option value=''>전체</option>";
combobox.append(option);
}
}
</script>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="objId" id="objId" value="${objId}">
<section class="business_popup_min_width">
<div class="plm_menu_name">
<h2>
<span>영업활동 등록</span>
</h2>
</div>
<div id="businessPopupFormWrap">
<!-- <div class="form_popup_title">&nbsp;&nbsp;&nbsp;영업활동 등록</div> -->
<table class="pmsPopupForm">
<!-- <!-- <colgroup>
<col width="15%"/>
<col width="*"/>
<col width="*"/>
<col width="15%"/>
<col width="*"/>
<col width="*"/>
</colgroup> -->
<tr>
<td class="input_title" rowspan="3">
<label for="">고객정보</label>
</td>
<td class="input_sub_title">
<label for="region_high_cd">구분</label>
</td>
<td>
<select name="region_high_cd" id="region_high_cd" required reqTitle="구분" >
<option value="">선택</option>
${code_map.region_h_cd}
</select>
</td>
<td class="input_sub_title">
<label for="region_mid_cd">국가</label>
</td>
<td>
<select name="region_mid_cd" id="region_mid_cd" required reqTitle="국가" type="select" onchange='optionJobGroup($(this).val())'>
<option value="">선택</option>
${code_map.region_m_cd}
</select>
</td>
<td class="input_sub_title">
<label for="region_low_cd">지역</label>
</td>
<td>
<select name="region_low_cd" id="region_low_cd" required reqTitle="지역" type="select">
<option value="">선택</option>
${code_map.region_l_cd}
</select>
</td>
<td class="input_sub_title">
<label for="customer_cd">거래처</label>
</td>
<td>
<select name="customer_cd" id="customer_cd" required reqTitle="거래처" type="select">
<option value="">선택</option>
${code_map.customer_cd}
</select>
</td>
</tr>
<tr>
<td rowspan="2" class="input_sub_title">
<label for="">자료</label>
</td>
<td colspan="7">
<div id="projectDropZone" class="dropzone"style="width:99% !important;">Drag & Drop Files Here</div>
<!-- <input type="file" name="file1" id="file1" multiple style="width:90%;">
<input type="button" id="btnUpload" value="Upload" class="upload_btns"> -->
</td>
</tr>
<tr>
<td colspan="7">
<div class="project_form_in_table"style="width:100%" id="projectFileAreaTable" >
<div style="overflow-y:scroll;">
<table class=""fileListscrollThead"" 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:50px;">
<table class="plm_table">
<colgroup>
<col width="10%">
<col width="*">
<col width="20%">
</colgroup>
</table>
<table id="projectFileArea" class="fileListscrollTbody">
</table>
</div>
</div>
</td>
</tr>
<tr>
<td class="input_title" rowspan="2">
<label for="">계약정보</label>
</td>
<td class="input_sub_title">
<label for="c_type_cd">계약유형</label>
</td>
<td>
<select type="select" name="c_type_cd" id="c_type_cd" required reqTitle="계약유형" >
<option value="">선택</option>
${code_map.c_type_cd}
</select>
</td>
<td class="input_sub_title">
<label for="c_agency_cd">계약기관</label>
</td>
<td>
<select name="c_agency_cd" id="c_agency_cd" required reqTitle="계약기관" type="select">
<option value="">선택</option>
${code_map.c_agency_cd}
</select>
</td>
<td class="input_sub_title">
<label for="c_class_cd">계약구분</label>
</td>
<td>
<select name="c_class_cd" id="c_class_cd" required reqTitle="계약구분" type="select">
<option value="">선택</option>
${code_map.c_class_cd}
</select>
</td>
<td class="input_sub_title">
<label for="spec_cd">사양</label>
</td>
<td>
<select name="spec_cd" id="spec_cd" required reqTitle="사양" type="select">
<option value="">선택</option>
${code_map.spec_cd}
</select>
</td>
</tr>
<tr>
<td class="input_sub_title">
<label for="order_title">수주명</label>
</td>
<td colspan="7">
<input type="text" name="order_title" id="order_title" value="${info.ORDER_TITLE}">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">영업담당자 정보</label>
</td>
<td class="input_sub_title">
<label for="writer_dept_nmae">팀명</label>
</td>
<td>
<c:choose>
<c:when test="${param.actionType eq 'regist'}">
<input type="text" name="writer_dept_nmae" id="writer_dept_nmae" value="${connectUserDeptName}" readonly="readonly">
</c:when>
<c:otherwise>
<input type="text" name="writer_dept_nmae" id="writer_dept_nmae" value="${info.WRITER_DEPT_NAME}" readonly="readonly">
</c:otherwise>
</c:choose>
</td>
<td class="input_sub_title">
<label for="">담당자</label>
</td>
<td>
<c:choose>
<c:when test="${param.actionType eq 'regist'}">
<input type="text" name="user" id="user" value="${connectUserName}" readonly="readonly">
</c:when>
<c:otherwise>
<input type="text" name="user" id="user" value="${info.WRITER_USER_NAME}" readonly="readonly">
</c:otherwise>
</c:choose>
</td>
<td class="input_sub_title">
<label for="regdate">등록일</label>
</td>
<td>
<input type="text" name="regdate" value="${info.REGDATE}" readonly="readonly">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">영업현황</label>
</td>
<td class="input_sub_title">
<label for="status_cd">진행상황</label>
</td>
<td>
<select name="status_cd" id="status_cd" required reqTitle="진행상황" type="select">
<option value="">선택</option>
${code_map.status_cd}
</select>
</td>
<td class="input_sub_title">
<label for="">영업품목</label>
</td>
<td colspan="5">
<input type="text" name="title" id="title" value="${info.TITLE}" >
</td>
</tr>
<tr>
<td class="input_title" rowspan="3">
<label for="">계약현황</label>
</td>
<td class="input_sub_title">
<label for="result_cd">계약결과</label>
</td>
<td>
<select name="result_cd" id="result_cd" required reqTitle="계약결과" type="select">
<option value="">선택</option>
${code_map.result_cd}
</select>
</td>
<td class="input_sub_title">
<label for="reason">이탈원인</label>
</td>
<td>
<input type="text" name="reason" id="reason" value="${info.REASON}" >
</td>
</tr>
<tr>
<td rowspan="2" class="input_sub_title">
<label for="">자료</label>
</td>
<td colspan="7">
<div id="project1DropZone" class="dropzone"style="width:99% !important;">Drag & Drop Files Here</div>
</td>
</tr>
<tr>
<td colspan="7">
<div class="project_form_in_table"style="width:100%" id="project1FileAreaTable" >
<div style="overflow-y:scroll;">
<table class=""fileListscrollThead"" 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:50px;">
<table class="plm_table">
<colgroup>
<col width="10%">
<col width="*">
<col width="20%">
</colgroup>
</table>
<table id="project1FileArea" class="fileListscrollTbody">
</table>
</div>
</div>
</td>
</tr>
<tr>
<td class="input_title" rowspan="2">
<label for="">매출예정</label>
</td>
<td class="input_sub_title">
<label for="sales_p_date">매출일자</label>
</td>
<td>
<input type="text" name="sales_p_date" id="sales_p_date" class="date_icon" value="${info.SALES_P_DATE}" >
</td>
<td class="input_sub_title">
<label for="sub_p_sum">소계</label>
</td>
<td>
<input type="text" name="sub_p_sum" id="sub_p_sum" value="${info.SUB_P_SUM}" >
</td>
<td class="input_sub_title">
<label for="dev_p_product">제품</label>
</td>
<td>
<input type="text" name="dev_p_product" id="dev_p_product" value="${info.DEV_P_PRODUCT}" >
</td>
<td class="input_sub_title">
<label for="dev_p">비율</label>
</td>
<td>
<input type="text" name="dev_p" id="dev_p" value="${info.DEV_P}" readonly="readonly">
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="input_sub_title">
<label for="sale_p_product">상품</label>
</td>
<td>
<input type="text" name="sale_p_product" id="sale_p_product" value="${info.SALE_P_PRODUCT}" >
</td>
<td class="input_sub_title">
<label for="sale_p">비율</label>
</td>
<td>
<input type="text" name="sale_p" id="sale_p" value="${info.SALE_P}" readonly="readonly">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">생산정보</label>
</td>
<td class="input_sub_title">
<label for="sch_date">출고예정일</label>
</td>
<td>
<input type="text" name="sch_date" id="sch_date" class="date_icon" value="${info.SCH_DATE}" >
</td>
</tr>
<tr>
<td class="input_title" rowspan="3">
<label for="">매출실적</label>
</td>
<td class="input_sub_title">
<label for="sales_r_date">매출일(계산서)</label>
</td>
<td>
<input type="text" name="sales_r_date" id="sales_r_date" class="date_icon" value="${info.SALES_R_DATE}" >
</td>
<td class="input_sub_title">
<label for="sub_r_sum">소계</label>
</td>
<td>
<input type="text" name="sub_r_sum" id="sub_r_sum" value="${info.SUB_R_SUM}" >
</td>
<td class="input_sub_title">
<label for="dev_r_product">제품</label>
</td>
<td>
<input type="text" name="dev_r_product" id="dev_r_product" value="${info.DEV_R_PRODUCT}" >
</td>
<td class="input_sub_title">
<label for="dev_r">비율</label>
</td>
<td>
<input type="text" name="dev_r" id="dev_r" value="${info.DEV_R}" readonly="readonly">
</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="input_sub_title">
<label for="sale_r_product">상품</label>
</td>
<td>
<input type="text" name="sale_r_product" id="sale_r_product" value="${info.SALE_R_PRODUCT}" >
</td>
<td class="input_sub_title">
<label for="sale_r">비율</label>
</td>
<td>
<input type="text" name="sale_r" id="sale_r" value="${info.SALE_R}" readonly="readonly">
</td>
</tr>
<tr>
<td class="input_sub_title">
<label for="recv_date">수금일</label>
</td>
<td>
<input type="text" name="recv_date" id="recv_date" class="date_icon" value="${info.RECV_DATE}" >
</td>
<td class="input_sub_title">
<label for="achievement_rate">달성율</label>
</td>
<td>
<input type="text" name="achievement_rate" id="achievement_rate" value="${info.ACHIEVEMENT_RATE}" >
</td>
</tr>
<!-- <tr>
<td class="input_title">
<label for="">프로젝트명</label>
</td>
<td colspan="5">
<input type="text" style="width:96.3%;">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">영업담당</label>
</td>
<td colspan="2">
<input type="text">
</td>
<td class="input_title">
<label for="">납품장소</label>
</td>
<td colspan="2">
<input type="text">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">예상입찰가</label>
</td>
<td colspan="2">
<input type="text">
</td>
<td class="input_title">
<label for="">책임자</label>
</td>
<td colspan="2">
<input type="text">
</td>
</tr>
<tr>
<td colspan="6">
<hr style="width:94%;">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">수주여부</label>
</td>
<td colspan="5">
<input type="radio">입찰중&nbsp;&nbsp;&nbsp;
<input type="radio">수주&nbsp;&nbsp;&nbsp;
<input type="radio">실패
<input type="text" style="width:96%;">
</td>
</tr>
<tr>
<td rowspan="2" class="input_title">
<label for="">첨부파일</label>
</td>
<td colspan="5">
<div id="wbsTaskDropZone" class="dropzone"style="width:95% !important;">Drag & Drop Files Here</div>
</td>
</tr>
<tr>
<td colspan="5">
<div class="plm_table_wrap"style="width:96% !important;">
<div style="overflow-y:scroll;">
<table class="plm_table" 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:50px;">
<table class="plm_table">
<colgroup>
<col width="10%">
<col width="*">
<col width="20%">
</colgroup>
</table>
<table id="wbsTaskFileArea" class="fileListscrollTbody"></table>
</div>
</div>
</td>
</tr> -->
</table>
<div class="btn_wrap" style="clear:both;">
<!-- <input type="button" value="Edit" class="plm_btns" onclick=""> -->
<div class="plm_btn_wrap_center">
<c:if test="${param.actionType eq 'regist' or info.WRITER eq connectUserId or 'plm_admin' eq connectUserId}">
<input type="button" value="저장" id="btnSave" class="plm_btns">
</c:if>
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
</div>
</section>
</form>
</body>
</html>