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

516 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.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();
});
//set oem list
fn_setOEMList();
//입찰품목 세팅
fn_refreshProductList();
//생산공장
fn_setFactoryList();
//고객사별 차종 목록 조회
$("#oemObjId").change(function(){
var oemObjId = $(this).val();
fn_setCarTypeList(oemObjId);
fn_setMilestoneList();
});
//입찰품목 삭제
$(document).on("click", ".btnDelete", function(){
var objId = $(this).attr("data-OBJID");
fn_deleteProduct(objId);
});
//수주활동 제품별 상세
$(document).on("click", ".btnProjectConceptProductDetail", function(){
var objId = $(this).attr("data-OBJID");
fn_projectConceptProductDetail(objId);
});
});
</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){
}
});
}
//car 목록 조회
function fn_setCarTypeList(oemObjId){
$.ajax({
url:"/common/getCarTypeList.do",
type:"POST",
data:{"isJson":true, "search_oemObjId":oemObjId},
dataType:"json",
success:function(data){
var appendCode = "";
appendCode += "<option value=''>선택</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
});
$("#carTypeObjId").children().remove();
$("#carTypeObjId").append(appendCode);
$("#carTypeObjId > option[value=${info.CAR_OBJID}]").attr("selected", "true");
},
error: function(jqxhr, status, error){
}
});
}
//생산공장 조회
function fn_setFactoryList(){
$.ajax({
url:"/common/getFactoryList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
appendCode += "<option value=''>선택</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].objid+"'>"+data[i].factory_name+"</option>";
});
$("#factory").append(appendCode);
var dbVal = fnc_checkNull("${info.OEM_FACTORY}");
if(dbVal != ""){
$("#factory > option[value="+dbVal+"]").attr("selected", "true");
}
},
error: function(jqxhr, status, error){
}
});
}
//milestone 목록 조회
function fn_setMilestoneList(){
var oemObjId = $("#oemObjId").val();
var objId = $("#objId").val();
$.ajax({
url:"/projectConcept/getProjectConceptMilestoneList.do",
type:"POST",
data:{"objId":objId, "oemObjId":oemObjId, "mode":"${param.mode}"},
dataType:"json",
success:function(data){
var appendCode = "";
if(data == null || data.length == 0){
appendCode += "<tr>";
appendCode += "<td aling='center' colspan='3'>";
appendCode += "조회된 정보가 없습니다.";
appendCode += "</td>";
appendCode += "</tr>";
}else{
$.each(data, function(i){
appendCode += "<tr>";
appendCode += "<td>"+data[i].seq+"</td>";
appendCode += "<td>"+data[i].milestone_name+"</td>";
appendCode += "<td><input type='text' name='milestoneDate_"+data[i].concept_milestone_objid+"' id='milestoneDate_"+data[i].concept_milestone_objid+"' value='"+fnc_checkNull(data[i].milestone_date)+"'></td>";
appendCode += "</tr>";
});
}
$("#dataList").children().remove();
$("#dataList").append(appendCode);
fnc_datepick();
},
error: function(jqxhr, status, error){
}
});
}
//입찰품목 목록 새로고침
function fn_refreshProductList(){
var targetObjId = $("#objId").val();
$.ajax({
url:"/projectConcept/getProjectConceptProductList_forProjectConcept.do",
type:"POST",
data:{"targetObjId":targetObjId},
dataType:"json",
success:function(data){
var appendCode = "";
if(data.length > 0){
$.each(data, function(i){
appendCode += "<tr>";
appendCode += "<td>"+(i+1)+"</td>";
appendCode += "<td>"+data[i].estimate_no+"</td>";
appendCode += "<td><a href='#' class='btnProjectConceptProductDetail' data-OBJID='"+data[i].objid+"'>"+data[i].prod_name+"</a></td>";
appendCode += "<td>"+data[i].estimate_pic_user_name+"</td>";
/*
appendCode += "<td>"
if(data[i].STATUS != "create"){
appendCode += "<a href='#' data-OBJID='"+data[i].OBJID+"' style='cursor:pointer;' class='btnDelete'>삭제</a>";
}
appendCode += "</td>";
*/
appendCode += "</tr>";
});
}else{
appendCode += "<tr>";
appendCode += "<td colspan='5' align='center'>등록된 입찰품목이 없습니다.</td>";
appendCode += "</tr>";
}
$("#productList").children().remove();
$("#productList").append(appendCode);
},
error: function(jqxhr, status, error){
}
});
}
//수주활동 등록정보 저장
function fn_save(){
if(fnc_valitate("form1")){
//제품체크
if(fn_checkProductCnt()){
//중복 체크
if(fn_duplicateNameCheck()){
if(confirm("저장하시겠습니까?")){
saveProcess();
}
}
}else{
Swal.fire("등록된 입찰품목이 없습니다.\n저장할 수 없습니다.");
}
}
}
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/saveProjectConceptInfo.do",
type:"POST",
data:$("#form1").serialize(),
dataType:"json",
success:function(data){
Swal.fire(data.msg);
if("edit" != "${param.mode}"){
opener.fn_search();
self.close(0);
}else if("edit" == "${param.mode}"){
document.form1.action = "/projectConcept/projectConceptDetailPopup.do";
document.form1.submit();
opener.fn_search();
self.close();
}
},
error: function(jqxhr, status, error){
}
});
}
function fn_deleteProduct(objId){
if(confirm("삭제하시겠습니까?")){
$.ajax({
url:"/projectConcept/deleteProjectConceptProductInfo.do",
type:"POST",
data:{"objId":objId},
dataType:"json",
success:function(data){
Swal.fire(data.msg);
//제품목록 새로고침
fn_refreshProductList();
},
error: function(jqxhr, status, error){
}
});
}
}
//수주활동 제품별 상세
function fn_projectConceptProductDetail(objId){
window.open("/projectConcept/projectConceptProductDetailPopup.do?objId="+objId, "", "width=705, height=700");
}
//수주활동 중복체크
function fn_duplicateNameCheck(){
var result = false;
var oemObjId = $("#oemObjId").val();
var carObjId = $("#carTypeObjId").val();
$.ajax({
url:"/projectConcept/getProjectConceptDuplicateCnt.do",
type:"POST",
data:{"oemObjId":oemObjId, "carObjId":carObjId,"objId":"${objId}"},
dataType:"json",
async:false,
success:function(data){
if(data.result == "false" || data.result == false || !data.result){
Swal.fire("이미 등록된 정보가 있습니다.\n차종별 1개의 수주활동만 등록 가능합니다.");
}else{
result = true;
}
},
error: function(jqxhr, status, error){
}
});
return result;
}
</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="13%"/>
<col width="18%"/>
<col width="18%"/>
<col width="15%"/>
<col width="20%"/>
<col width="*"/>
</colgroup>
<tr>
<td class="input_title">
<label for="">지역</label>
</td>
<td colspan="2">
<select name="foreignType" id="foreignType">
<option value="">선택</option>
<option value="D" ${info.FOREIGN_TYPE_ORG eq 'D'?'selected':''}>국내</option>
<option value="F" ${info.FOREIGN_TYPE_ORG eq 'F'?'selected':''}>해외</option>
</select>
</td>
<td class="input_title">
<label for="">프로젝트Type</label>
</td>
<td colspan="2">
<select name="projectType" id="projectType">
<option value="">선택</option>
<option value="new" ${info.PJT_TYPE_ORG eq 'new'?'selected':''}>신차</option>
<option value="derivative" ${info.PJT_TYPE_ORG eq 'derivative'?'selected':''}>파생차</option>
<option value="sample" ${info.PJT_TYPE_ORG eq 'sample'?'selected':''}>시작차</option>
</select>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">고객사</label>
</td>
<td colspan="2">
<select name="oemObjId" id="oemObjId" required reqTitle="고객사" type="select">
<option value="">선택</option>
</select>
</td>
<td class="input_title">
<label for="">차종</label>
</td>
<td colspan="2">
<select name="carTypeObjId" id="carTypeObjId" required reqTitle="차종" type="select">
<option value="">선택</option>
</select>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">개발일정</label>
</td>
<td colspan="5">
<div style="overflow-y:scroll;">
<table class="project_form_in_table" style="width:100%;">
<colgroup>
<col width="10%"/>
<col width="*"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<td>No</td>
<td>Milestone</td>
<td>Date</td>
</tr>
</thead>
</table>
</div>
<div class="in_table_scroll_wrap" style="width:100%;">
<table class="plm_table">
<colgroup>
<col width="10%"/>
<col width="*"/>
<col width="20%"/>
</colgroup>
<tbody id="dataList">
<tr>
<td align="center" colspan="3">고객사를 선택해 주시기 바랍니다.</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<td class="input_title">
<label for="">생산공장</label>
</td>
<td colspan="2">
<select name="factory" id="factory" required reqTitle="생산공장" type="select">
</select>
</td>
</tr>
<tr>
<td colspan="6">
<input type="button" value="입찰품목 등록" class="blue_btn float_r" id="conceptItemRegist" onclick="" style="margin-right:0px;">
</td>
</tr>
<tr>
<td class="input_title">
<label for="">입찰품목</label>
</td>
<td colspan="5">
<div style="overflow-y:scroll;">
<table class="project_form_in_table" style="width:100%;">
<colgroup>
<col width="10%"/>
<col width="20%"/>
<col width="*"/>
<col width="20%"/>
<!-- <col width="7%"/> -->
</colgroup>
<thead>
<tr>
<td>No</td>
<td>견적번호</td>
<td>제품명</td>
<td>견적담당자</td>
<!-- <td>삭제</td> -->
</tr>
</thead>
</table>
</div>
<div class="in_table_scroll_wrap" style="width:100%;">
<table class="plm_table">
<colgroup>
<col width="10%"/>
<col width="20%"/>
<col width="*"/>
<col width="20%"/>
<!-- <col width="7%"/> -->
</colgroup>
<tbody id="productList">
</tbody>
</table>
</div>
</td>
</tr>
</table>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<input type="button" value="저장" id="btnSave" class="plm_btns">
<c:choose>
<c:when test="${param.actionType eq 'regist'}">
</c:when>
<c:otherwise>
<input type="button" id="btnCancel" value="취소" class="plm_btns" data-OBJID="${objId}">
</c:otherwise>
</c:choose>
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
</div>
</section>
</form>
</body>
</html>