1165 lines
36 KiB
Plaintext
1165 lines
36 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>
|
|
|
|
<c:set var="oemObjId" value="${projectMap.oem_objid}" />
|
|
<c:set var="carObjId" value="${projectMap.car_objid}" />
|
|
<c:set var="factoryObjId" value="${projectMap.OEM_FACTORY}" />
|
|
|
|
</head>
|
|
<script>
|
|
$(document).ready(function(){
|
|
$("#btn_close").click(function(){
|
|
self.close(0);
|
|
});
|
|
|
|
if('${projectMap.CFT_TEAM_CD}'!=''){
|
|
optionJobGroup('${projectMap.CFT_TEAM_CD}');
|
|
$("#cft_userid").val('${projectMap.CFT_USERID}');
|
|
}
|
|
|
|
//취소
|
|
$("#btnCancel").click(function(){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var params = "?objId="+objId;
|
|
document.form1.action ="/project/projectDetailPopUp.do"+params;
|
|
document.form1.submit();
|
|
});
|
|
fn_setOEMList();
|
|
fn_setProductGroupList('${projectMap.product_group_objid}');
|
|
fn_setFactoryList();
|
|
fn_setLineAreaList('${projectMap.oem_factory}');
|
|
fn_setCarTypeList('${projectMap.oem_objid}');
|
|
fn_setMilestoneList('${projectMap.objid}');
|
|
fn_setProductList('${projectMap.product_group_objid}');
|
|
fn_setProductEditList('${projectMap.objid}');
|
|
fn_setConceptStatus('${projectMap.status}');
|
|
fn_setPmList('${projectMap.pm_id}');
|
|
|
|
$("#oemObjId").change(function(){
|
|
oemObjId = this.value;
|
|
carObjId = $("#carObjId").val();
|
|
fn_setCarTypeList($(this).val());
|
|
});
|
|
|
|
$("#carObjId").change(function(){
|
|
oemObjId = $("#oemObjId").val();
|
|
carObjId = this.value;
|
|
fn_setMilestoneList();
|
|
//fn_getProjectMemberList();
|
|
});
|
|
/*
|
|
$("#productGroupObjId").change(function(){
|
|
fn_setProductList();
|
|
})
|
|
<c:if test="${null ne projectMap.oem_objid}">
|
|
oemObjId = "${projectMap.oem_objid}"
|
|
fn_setOEMList();
|
|
$("#oemObjId").val("${projectMap.oem_objid}");
|
|
</c:if>
|
|
<c:if test="${null ne projectMap.car_objid}">
|
|
console.log('start checkpoint');
|
|
carObjId = "${projectMap.car_objid}";
|
|
fn_setCarTypeList("${projectMap.oem_objid}");
|
|
$("#carObjId").val("${projectMap.car_objid}");
|
|
fn_setMilestoneList();
|
|
</c:if>
|
|
//첨부 파일 기능
|
|
//fnc_setFileDropZone("projectDropZone", "${projectMap.OBJID}", "${docType}", "${docTypeName}", "projectAreaDraw",false,null,null);
|
|
|
|
//projectAreaDraw();
|
|
|
|
$("#btnUpload").click(function(){
|
|
var files = $("#file1")[0].files;
|
|
if(files.length > 0){
|
|
fnc_fileMultiUpload(files, null, "${projectMap.OBJID}", "${docType}", "${docTypeName}", null, "projectAreaDraw");
|
|
//file객체 초기화
|
|
$("#file1").val("");
|
|
}else{
|
|
Swal.fire("선택된 File이 없습니다.");
|
|
}
|
|
});
|
|
*/
|
|
});
|
|
</script>
|
|
<script>
|
|
|
|
//oem 목록 조회
|
|
function fn_setOEMList(){
|
|
var setOemObjId = '${oemObjId}';
|
|
$.ajax({
|
|
url:"/common/getOEMList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var appendCode = "";
|
|
$("#oemObjId").empty();
|
|
|
|
appendCode += "<option value=''>선택</option>";
|
|
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].OEM_NAME+"("+data[i].OEM_CODE+")</option>";
|
|
});
|
|
|
|
$("#oemObjId").append(appendCode);
|
|
|
|
//oemObjId와 동일한 ObjId로 선택한다.
|
|
$("#oemObjId").val(setOemObjId);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//car 목록 조회
|
|
function fn_setCarTypeList(oemObjId){
|
|
|
|
var appendCode = "";
|
|
var setCarObjId = '${carObjId}';
|
|
|
|
$("#carObjId").empty();
|
|
|
|
if(null != oemObjId && "" != oemObjId){
|
|
$.ajax({
|
|
url:"/common/getCarTypeList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_oemObjId":oemObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
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>";
|
|
});
|
|
$("#carObjId").append(appendCode);
|
|
$("#carObjId").val(setCarObjId);
|
|
$("#carObjId").trigger("change");
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}else{
|
|
appendCode += "<option value=''>선택</option>";
|
|
$("#carObjId").append(appendCode);
|
|
}
|
|
}
|
|
|
|
//milestone 목록 조회
|
|
function fn_setMilestoneList(p_objid){
|
|
var appendCode = "";
|
|
if(null != p_objid && "" != p_objid){
|
|
$.ajax({
|
|
url:"/projectConcept/getProjectConceptEditMilestoneList.do",
|
|
type:"POST",
|
|
data:{"OBJID":p_objid},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//console.log(JSON.stringify(data));
|
|
if(data == null || data.length == 0){
|
|
appendCode += "<tr>";
|
|
appendCode += "<td aling='center' colspan='3'>";
|
|
appendCode += "조회된 정보가 없습니다.";
|
|
appendCode += "</td>";
|
|
appendCode += "</tr>";
|
|
}else{
|
|
$.each(data, function(i){
|
|
console.log("data[i].SEQ : " + data[i].seq);
|
|
console.log("data[i].MILESTONE_NAME : " + data[i].milestone_name);
|
|
appendCode += "<tr>";
|
|
appendCode += "<td>"+data[i].seq+"</td>";
|
|
appendCode += "<td>"+data[i].milestone_name+"</td>";
|
|
//if(data[i].milestone_name == "양산")
|
|
appendCode += "<td><input type='text' name='milestoneDate_"+data[i].objid+"' id='milestoneDate_"+data[i].objid+"' value='"+fnc_checkNull(data[i].milestone_date)+"'></td>";
|
|
//else appendCode += "<td></td>";
|
|
appendCode += "<input type='hidden' name='oemMilestoneObjId' value='"+data[i].objid+"'>";
|
|
appendCode += "</tr>";
|
|
});
|
|
}
|
|
$("#dataList").children().remove();
|
|
$("#dataList").append(appendCode);
|
|
|
|
fnc_datepick();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}else{
|
|
$("#dataList").children().remove();
|
|
appendCode += "<tr>";
|
|
appendCode += " <td aling='center' colspan='3'>조회된 정보가 없습니다.</td>";
|
|
appendCode += "</tr>";
|
|
$("#dataList").append(appendCode);
|
|
}
|
|
}
|
|
|
|
//제품군 조회
|
|
function fn_setProductGroupList(p_prodGroupObj){
|
|
$.ajax({
|
|
url:"/common/getProductGroupList.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].product_group_name+"</option>";
|
|
});
|
|
|
|
$("#productGroupObjId").append(appendCode);
|
|
$("#productGroupObjId").val(p_prodGroupObj);
|
|
$("#productGroupObjId").trigger("change");
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//제품 조회
|
|
function fn_setProductList(p_prodGroupObj){
|
|
var productGroupObjId = $("#productGroupObjId").val();
|
|
var appendCode = "";
|
|
|
|
$("#productObjId").empty();
|
|
|
|
if(null != p_prodGroupObj && "" != p_prodGroupObj){
|
|
$.ajax({
|
|
url:"/common/getProductList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_productGroupObjId":p_prodGroupObj},
|
|
dataType:"json",
|
|
success:function(data){
|
|
appendCode += "<option value=''>선택("+data.length+"개)</option>";
|
|
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].objid+"'>"+data[i].product_name+"</option>";
|
|
});
|
|
|
|
$("#productObjId").children().remove();
|
|
$("#productObjId").append(appendCode);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//등록된 제품 조회
|
|
function fn_setProductEditList(p_objid){
|
|
var productGroupObjId = $("#productGroupObjId").val();
|
|
var appendCode = "";
|
|
|
|
$("#orderProduct").empty();
|
|
|
|
if(null != p_objid && "" != p_objid){
|
|
$.ajax({
|
|
url:"/projectConcept/getProductEditList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "objid":p_objid},
|
|
dataType:"json",
|
|
success:function(data){
|
|
$.each(data, function(i){
|
|
appendCode += "<tr id='"+data[i].objid+"' name='addedOrderProduct'>";
|
|
appendCode += "<td>"+(i+1)+"</td>";
|
|
appendCode += "<td>"+data[i].product_group_name+"</td>";
|
|
appendCode += "<td>"+data[i].product_name+"</td>";
|
|
appendCode += "<td><input type=\"button\" value=\"삭제\" class=\"blue_btn\" onclick=\"fn_deleteProjectProduct('"+data[i].objid+"','"+data[i].rel_objid+"');\"></td>";
|
|
appendCode += "<input type='hidden' name='addedOrderProductObjId' value='"+data[i].objid+"'>";
|
|
appendCode += "<input type='hidden' name='rel_objid' value='"+data[i].rel_objid+"'>";
|
|
appendCode += "</tr>";
|
|
});
|
|
console.log(appendCode);
|
|
$("#orderProduct").append(appendCode);
|
|
//appendCode = "<tr id=\"58784166\" name=\"addedOrderProduct\">";
|
|
//$("orderProduct").
|
|
},
|
|
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>";
|
|
});
|
|
|
|
$("#oemFactory").append(appendCode);
|
|
var dbVal = fnc_checkNull("${projectMap.OEM_FACTORY}");
|
|
if(dbVal != ""){
|
|
$("#oemFactory > option[value="+dbVal+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//라인설치장소 조회
|
|
function fn_setLineAreaList(p_oemFactory){
|
|
$.ajax({
|
|
url:"/common/getLineAreaList.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].area_name+"</option>";
|
|
});
|
|
|
|
$("#lineInstlSite").append(appendCode);
|
|
//var dbVal = fnc_checkNull("${projectMap.oem_factory}");
|
|
if(p_oemFactory != ""){
|
|
$("#lineInstlSite").val(p_oemFactory);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
//제품군, 제품 선택하여 프로젝트에 품목을 추가한다.
|
|
function fn_addProjectProduct(){
|
|
var productGroupSelectedObj = $("#productGroupObjId option:selected");
|
|
var productSelectedObj = $("#productObjId option:selected");
|
|
var orderProductObj = $("#orderProduct");
|
|
|
|
var addedProductCnt = $("tr [name=addedOrderProduct]").size();
|
|
if("" == productGroupSelectedObj.val() || "" == productSelectedObj.val()){
|
|
Swal.fire("선택된 제품군/제품이 없습니다.");
|
|
return false;
|
|
}else{
|
|
|
|
//이미 추가된 품목을 확인
|
|
if(0 < orderProductObj.find("#"+productSelectedObj.val()).size()){
|
|
Swal.fire("이미 추가된 제품입니다.");
|
|
return false;
|
|
}
|
|
|
|
//품목이 없을 시 문구 출력
|
|
if(0 < $("#orderProductDefaultRow").size()){
|
|
$("#orderProductDefaultRow").hide();
|
|
}
|
|
|
|
var appendText = "<tr id='"+productSelectedObj.val()+"' name='addedOrderProduct'>";
|
|
appendText+= " <td>"+(addedProductCnt+1)+"</td>";
|
|
appendText+= " <td>"+productGroupSelectedObj.text();+"</td>";
|
|
appendText+= " <td>"+productSelectedObj.text();+"</td>";
|
|
appendText+= " <td><input type='button' value='삭제' class='blue_btn' onclick=\"fn_deleteProjectProduct('"+productSelectedObj.val()+"');\"></td>";
|
|
appendText+= " <input type='hidden' name='addedOrderProductObjId' value='"+productSelectedObj.val()+"'>";
|
|
appendText+= " <input type='hidden' name='rel_objid' value='"+fnc_createObjId()+"'>";
|
|
appendText+= "</tr>";
|
|
|
|
orderProductObj.append(appendText);
|
|
}
|
|
}
|
|
|
|
//추가된 프로젝트 수주품목을 삭제한다.
|
|
function fn_deleteProjectProduct(addedProductObjId,rel_objid){
|
|
//실제 키있을경우 DB삭제
|
|
if(undefined!=rel_objid){
|
|
if(confirm("손익 산출 데이터도 함꼐 삭제 됩니다.\n 그래도 삭제하시겠습니까?")){
|
|
|
|
var param = $("#hiddenForm").serialize();
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/projectConcept/deleteProjectConceptInfo.do",
|
|
data:{"objId":rel_objid},
|
|
dataType:"json",
|
|
success:function(data){
|
|
if(data =="SUCCESS"){
|
|
Swal.fire("삭제되었습니다.");
|
|
opener.fn_search();
|
|
}else{
|
|
Swal.fire("삭제에 실패하였습니다 관리자에게 문의해 주세요.");
|
|
}
|
|
}
|
|
,error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
|
|
|
|
|
|
//화면에서 삭제
|
|
if(null != addedProductObjId){
|
|
$("#"+addedProductObjId).remove();
|
|
}
|
|
var addedProductCnt = $("tr [name=addedOrderProduct]").size();
|
|
var defalutRowCnt = $("#orderProductDefaultRow").size();
|
|
if(0 == addedProductCnt){
|
|
if(0 < defalutRowCnt){
|
|
$("#orderProductDefaultRow").show();
|
|
}else{
|
|
var appendText = "<tr id='orderProductDefaultRow' name='orderProductDefaultRow' >";
|
|
appendText+= " <td colspan='4'>연결된 개발품목이 없습니다.</td>";
|
|
appendText+= "</tr>";
|
|
|
|
$("#orderProduct").append(appendText);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}else{
|
|
|
|
//화면에서 삭제
|
|
if(null != addedProductObjId){
|
|
$("#"+addedProductObjId).remove();
|
|
}
|
|
var addedProductCnt = $("tr [name=addedOrderProduct]").size();
|
|
var defalutRowCnt = $("#orderProductDefaultRow").size();
|
|
if(0 == addedProductCnt){
|
|
if(0 < defalutRowCnt){
|
|
$("#orderProductDefaultRow").show();
|
|
}else{
|
|
var appendText = "<tr id='orderProductDefaultRow' name='orderProductDefaultRow' >";
|
|
appendText+= " <td colspan='4'>연결된 개발품목이 없습니다.</td>";
|
|
appendText+= "</tr>";
|
|
|
|
$("#orderProduct").append(appendText);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//해당하는 차종의 TFT멤버 목록을 가져온다.
|
|
function fn_getProjectMemberList(){
|
|
var appendText = "";
|
|
$("#projectMemberList").empty();
|
|
|
|
if(null != carObjId && "" != carObjId){
|
|
$.ajax({
|
|
url:"/project/getProjectMemberList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_carObjId":carObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(0 < data.length){
|
|
$.each(data, function(i){
|
|
appendText += "<tr name='projectMember'>";
|
|
appendText += " <td>"+fnc_checkNull(data[i].rnum);+"</td>";
|
|
appendText += " <td>"+fnc_checkNull(data[i].dept_name);+"</td>";
|
|
appendText += " <td>"+fnc_checkNull(data[i].user_name);+"</td>";
|
|
appendText += " <td>";
|
|
if("0" == fnc_checkNull(data[i].is_tft_leader)){
|
|
appendText+="CFT장 "
|
|
}
|
|
if("0" == fnc_checkNull(data[i].is_proj_leader)){
|
|
appendText+="PL"
|
|
}
|
|
appendText += " </td>";
|
|
appendText += "</tr>";
|
|
});
|
|
}else{
|
|
appendText += "<tr>";
|
|
appendText += " <td colspan='4'>해당하는 CFT 인원이 없습니다.</td>";
|
|
appendText += "</tr>";
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}else{
|
|
appendText += "<tr>";
|
|
appendText += " <td colspan='4'>해당하는 CFT 인원이 없습니다.</td>";
|
|
appendText += "</tr>";
|
|
}
|
|
$("#projectMemberList").append(appendText);
|
|
}
|
|
|
|
//작성된 프로젝트의 내용을 저장한다.
|
|
function fn_saveProjectInfo(){
|
|
|
|
if(fnc_valitate("form1")){
|
|
|
|
|
|
|
|
document.form1.status.value="create";
|
|
|
|
// if(resultFlag){
|
|
// if(confirm("저장하시겠습니까?")){
|
|
// if(fn_save()){
|
|
var returnUrl = "/projectConcept/getProjectConceptProductList.do";
|
|
var form = $("#form1").serialize();
|
|
$.ajax({
|
|
url:"/projectConcept/saveProjectConceptInfo.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
success:function(data){
|
|
Swal.fire("수정 되었습니다.");
|
|
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_save(){
|
|
//생산총 수량의 입력값 유효성을 검사한다.
|
|
if("" != fnc_checkNull($("#totalProductionCnt").val())){
|
|
fnc_checkDataType("number",$("#totalProductionCnt").val());
|
|
}
|
|
if("" != fnc_checkNull($("#avgProductionCnt").val())){
|
|
//연견생산 총 수량의 입력값 유효성을 검사한다.
|
|
fnc_checkDataType("number",$("#avgProductionCnt").val());
|
|
}
|
|
/* if("" != fnc_checkNull($("#lineInstlSiteArea").val())){
|
|
//라인면적의 입력값 유효성을 검사한다.
|
|
fnc_checkDataType("number",$("#lineInstlSiteArea").val());
|
|
} */
|
|
var pdata = $("#form1").serialize();
|
|
var sunObjCnt = $("input[name=addedOrderProductObjId]").length;
|
|
var subObjList = new Array(sunObjCnt);
|
|
var relObj = $("input[name=rel_objid]");
|
|
var relObjList = new Array();
|
|
|
|
for(i=0; i < sunObjCnt; i++){
|
|
subObjList[i] = $("input[name=addedOrderProductObjId]").eq(i).val();
|
|
}
|
|
|
|
for(i=0; i < relObj.length; i++){
|
|
relObjList[i] = $("input[name=rel_objid]").eq(i).val();
|
|
}
|
|
|
|
$("#foreignType option").not(":selected").attr("disabled", "")
|
|
$("#projectType option").not(":selected").attr("disabled", "")
|
|
$("#oemObjId option").not(":selected").attr("disabled", "")
|
|
$("#carObjId option").not(":selected").attr("disabled", "")
|
|
$("#productGroupObjId option").not(":selected").attr("disabled", "")
|
|
|
|
pdata = pdata + '&sub_objid='+subObjList+"&relObjList="+relObjList;
|
|
//addedOrderProductObjId
|
|
if(fn_validate()){
|
|
$.ajax({
|
|
url:"/projectConcept/saveProjectConceptProductInfo.do",
|
|
type:"POST",
|
|
data:pdata,
|
|
dataType:"json",
|
|
success:function(data){
|
|
/*
|
|
Swal.fire(data.msg);
|
|
if(data.result){
|
|
if("edit" != "${param.mode}"){
|
|
opener.fn_refreshProductList();
|
|
self.close(0);
|
|
}else if("edit" == "${param.mode}"){
|
|
document.projectConceptProductForm.action = "/projectConcept/projectConceptProductDetailPopup.do";
|
|
document.projectConceptProductForm.submit();
|
|
}
|
|
}
|
|
*/
|
|
fn_saveProjectInfo();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
//return false;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//정합성 체크
|
|
function fn_validate(){
|
|
var result = false;
|
|
/*
|
|
if($("#productObjId").val() == null || $("#productObjId").val() == ""){
|
|
Swal.fire("제품을 선택해 주시기 바랍니다.");
|
|
$("#productObjId").focus();
|
|
return result;
|
|
}
|
|
*/
|
|
if($("#conceptStatus").val() == null || $("#conceptStatus").val() == ""){
|
|
Swal.fire("수주결과를 선택해 주시기 바랍니다.");
|
|
$("#conceptStatus").focus();
|
|
return result;
|
|
}
|
|
|
|
if($("#estimateNo").val() == null || $("#estimateNo").val() == ""){
|
|
if($("#conceptStatus").val() == '-1354737475'){
|
|
Swal.fire("Project No 를 입력해 주시기 바랍니다.");
|
|
$("#estimateNo").focus();
|
|
return result;
|
|
}
|
|
}
|
|
/*
|
|
if($("#estimateReqDate").val() == null || $("#estimateReqDate").val() == ""){
|
|
Swal.fire("견적요청 접수일을 입력해 주시기 바랍니다.");
|
|
$("#estimateReqDate").focus();
|
|
return result;
|
|
}
|
|
if($("#estimateSubmitDate").val() == null || $("#estimateSubmitDate").val() == ""){
|
|
Swal.fire("견적제출일을 입력해 주시기 바랍니다.");
|
|
$("#estimateSubmitDate").focus();
|
|
return result;
|
|
}
|
|
*/
|
|
var resultFlag = false;
|
|
//프로젝트 멤버 유무를 확인한다.
|
|
resultFlag = true;//fn_checkProjectMember(resultFlag);
|
|
|
|
if(resultFlag){
|
|
//프로젝트 수주품목 입력여부를 확인한다.
|
|
resultFlag = fn_checkProjectProduct(resultFlag);
|
|
}
|
|
|
|
var resultFlag1 = false;
|
|
if(resultFlag){
|
|
//프로젝트의 중복여부를 확인한다.
|
|
resultFlag1 = true;
|
|
//resultFlag1 = fn_checkProjectDuplicate(resultFlag);
|
|
}
|
|
|
|
if(resultFlag1){
|
|
if(confirm("저장하시겠습니까?")){
|
|
result = true;
|
|
}
|
|
}
|
|
|
|
|
|
return result;
|
|
}
|
|
|
|
//Project 저장 시 동일 프로젝트의 중복여부를 확인한다.
|
|
function fn_checkProjectDuplicate(returnFlag){
|
|
console.log('----------------------');
|
|
$.ajax({
|
|
url:"/projectConcept/getPjtProdListCnt.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
console.log("data.cnt:"+JSON.stringify(data));
|
|
console.log("data.cnt:"+data[0].cnt);
|
|
//return false;
|
|
if(0 == Number(data[0].cnt)){
|
|
returnFlag = true;
|
|
}else{
|
|
Swal.fire("동일 제품군의 프로젝트가 이미 존재 합니다.");
|
|
returnFlag = false;
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
console.log('------------11----------'+error);
|
|
return false;
|
|
}
|
|
});
|
|
return returnFlag;
|
|
}
|
|
|
|
|
|
//프로젝트 멤버의 구성여부를 확인한다.
|
|
function fn_checkProjectMember(result){
|
|
var projectMemberCnt = fnc_checkNull($("tr [name=projectMember]").size());
|
|
if(0 == projectMemberCnt){
|
|
Swal.fire("지정된 프로젝트 멤버가 없습니다.");
|
|
result = false;
|
|
}else{
|
|
result = true;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
//프로젝트의 제품 유무를 확인하다.
|
|
function fn_checkProjectProduct(result){
|
|
var projectProductCnt = $("tr [name=addedOrderProduct]").size();
|
|
if(0 == projectProductCnt){
|
|
Swal.fire("프로젝트에 해당하는 품목이 없습니다.");
|
|
result = false;
|
|
}else{
|
|
result = true;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function refeshAttachFileArea(){
|
|
projectAreaDraw();
|
|
}
|
|
|
|
//형상 영역을 display 한다.
|
|
function projectAreaDraw(){
|
|
fn_fileCallback("project","${docType}");
|
|
}
|
|
|
|
//첨부파일 목록을 가져온다.
|
|
function fn_fileCallback(areaId,fileType){
|
|
$.ajax({
|
|
url:"/common/getFileList.do",
|
|
type:"POST",
|
|
data:{"targetObjId":"${projectMap.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){
|
|
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='15%'>";
|
|
appendText +=" <col width='15%'>";
|
|
appendText +=" <col width='15%''>";
|
|
appendText +=" </colgroup>";
|
|
appendText+= "<tr>";
|
|
appendText+= " <td>"+[i+1]+"</td>";
|
|
appendText+= " <td class='align_l'><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'> "+data[i].REAL_FILE_NAME+"</a></td>";
|
|
appendText+= " <td>"+data[i].DEPT_NAME+"</td>"
|
|
appendText+= " <td>"+data[i].USER_NAME+"</td>"
|
|
appendText+= " <td>"+data[i].REG_DATE+"</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, callbackFnc, confirmFlag){
|
|
if(confirmFlag){
|
|
fnc_deleteFile(fileObjId, callbackFnc);
|
|
}else{
|
|
$.ajax({
|
|
url:"/common/deleteFileInfo.do",
|
|
type:"POST",
|
|
data:{"objId":fileObjId},
|
|
dataType:"json",
|
|
async:true,
|
|
success:function(data){
|
|
eval(callbackFnc+"();");
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
//코드값을 받아와서 동적으로 selectbox 생성
|
|
function optionJobGroup(code){
|
|
var val=code;
|
|
var params = "";
|
|
var option="";
|
|
var combobox = $("#cft_userid");
|
|
combobox.empty();
|
|
if(val!=""){
|
|
params += "codeId="+val;
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/projectConcept/makewrite.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);
|
|
}
|
|
}
|
|
|
|
function optionJobGroup1(code){
|
|
var appendText = "";
|
|
var val=code;
|
|
$("#projectMember").remove();
|
|
|
|
if(""!=code){
|
|
|
|
appendText += "<tr name='projectMember' id='projectMember'>";
|
|
appendText += " <td>"+999+"</td>";
|
|
appendText += " <td>"+$("#team_cd option:selected").text();+"</td>";
|
|
appendText += " <td>"+$("#cft_userid option:selected").text();+"</td>";
|
|
appendText += " <td>";
|
|
appendText+="CFT장 "
|
|
appendText += " </td>";
|
|
appendText += "</tr>";
|
|
|
|
$("#projectMemberList").append(appendText);
|
|
}
|
|
}
|
|
|
|
function fn_setConceptStatus(p_conceptStatus){
|
|
$.ajax({
|
|
url:"/common/getConceptStatus.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].CODE_NAME+"</option>";
|
|
});
|
|
|
|
$("#conceptStatus").append(appendCode);
|
|
|
|
if(p_conceptStatus != ""){
|
|
$("#conceptStatus").val(p_conceptStatus);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
function fn_setPmList(p_pmId){
|
|
$.ajax({
|
|
url:"/common/getPmList.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].USER_ID+"'>"+data[i].USER_NAME+"</option>";
|
|
});
|
|
|
|
$("#pmId").append(appendCode);
|
|
|
|
if(p_pmId != ""){
|
|
$("#pmId").val(p_pmId);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
</script>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="objId" id="objId" value="${projectMap.objid}">
|
|
<input type="hidden" name="status" id="status" value="${projectMap.status}">
|
|
<section class="business_popup_min_width">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>영업정보 등록</span>
|
|
</h2>
|
|
</div>
|
|
<div id="businessPopupFormWrap">
|
|
<table class="pmsPopupForm" style="width:100%;margin: 10px 0 0 0; float:left;">
|
|
<colgroup>
|
|
<col width="13%"/>
|
|
<col width="*"/>
|
|
<col width="*"/>
|
|
<col width="20%"/>
|
|
<col width="*"/>
|
|
<col width="*"/>
|
|
</colgroup>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">지역</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="foreignType" id="foreignType" required reqTitle="지역" type="select" >
|
|
<option value="">선택</option>
|
|
<option value="D" ${'D' eq projectMap.foreign_type ? 'selected':''}>국내</option>
|
|
<option value="F" ${'F' eq projectMap.foreign_type ? 'selected':''}>해외</option>
|
|
</select>
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">프로젝트구분</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="projectType" id="projectType" required reqTitle="프로젝트Type" type="select" >
|
|
<option value="">선택</option>
|
|
<option value="new" ${'new' eq projectMap.pjt_type ? 'selected':''}>신차</option>
|
|
<option value="derivative" ${'derivative' eq projectMap.pjt_type ? 'selected':''}>파생차</option>
|
|
<option value="sample" ${'sample' eq projectMap.pjt_type ? '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="carObjId" id="carObjId" required reqTitle="차종" type="select" ></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="70%"/>
|
|
<col width="20%"/>
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<td>No</td>
|
|
<td>Mile stone</td>
|
|
<td>Date</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="in_table_scroll_wrap" style="width:100%; height:206px;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="10%"/>
|
|
<col width="70%"/>
|
|
<col width="20%"/>
|
|
</colgroup>
|
|
<tbody id="dataList">
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<!-- td class="input_title">
|
|
<label for="team_cd">팀명</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="team_cd" id="team_cd" required reqTitle="팀명" type="select" onchange='optionJobGroup($(this).val())'>
|
|
<option value="">선택</option>
|
|
${code_map.team_cd}
|
|
</select>
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="cft_userid">CFT장</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="cft_userid" id="cft_userid" required reqTitle="CFT장" type="select" onchange='optionJobGroup1($(this).val())'>
|
|
<option value="">선택</option>
|
|
</select>
|
|
</td-->
|
|
<td class="input_title">
|
|
<label for="">생산총수량</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" class="textbox" name="totalProductionCnt" id="totalProductionCnt" value="${projectMap.total_production_cnt}" onkeyup="fnc_checkDataType('number',this.value);" maxlength="8">
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">연평균수량</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" class="textbox" name="avgProductionCnt" id="avgProductionCnt" value="${projectMap.yearly_avg_production_cnt}" onkeyup="fnc_checkDataType('number',this.value);" maxlength="8">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">제품군</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="productGroupObjId" id="productGroupObjId" type="select" >
|
|
</select>
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">제품</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="productObjId" id="productObjId" style="width:70%;">
|
|
</select>
|
|
<input type="button" value="추가" class="blue_btn" onclick="fn_addProjectProduct();">
|
|
</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="25%"/>
|
|
<col width="53%"/>
|
|
<col width="12%"/>
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<td>No</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="25%"/>
|
|
<col width="53%"/>
|
|
<col width="12%"/>
|
|
</colgroup>
|
|
<tbody id="orderProduct">
|
|
<c:choose>
|
|
<c:when test="${empty projectConnectProductList}">
|
|
<tr id="orderProductDefaultRow" name="orderProductDefaultRow" >
|
|
<td colspan="4">연결된 개발품목이 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${projectConnectProductList}" varStatus="status">
|
|
<tr id="${item.SUB_OBJID}" name="addedOrderProduct">
|
|
<td>${item.RNUM}</td>
|
|
<td>${item.PRODUCT_GROUP_NAME}</td>
|
|
<td>${item.PRODUCT_NAME}</td>
|
|
<td><input type="button" value="삭제" class="blue_btn" onclick="fn_deleteProjectProduct('${item.SUB_OBJID}');"></td>
|
|
<input type="hidden" name="addedOrderProductObjId" value="${item.SUB_OBJID}">
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">견적요청일</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" class="textbox" name="estimateReqDate" id="estimateReqDate" value="${projectMap.estimate_req_date}" />
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">견적제출일</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" class="textbox" name="estimateSubmitDate" id="estimateSubmitDate" value="${projectMap.estimate_submit_date}" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">수주결과</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="conceptStatus" id="conceptStatus" type="select">
|
|
</select>
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">Project No.</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" class="textbox" name="estimateNo" id="estimateNo" value="${projectMap.estimate_no}" onkeyup="fnc_checkDataType('number',this.value);" maxlength="8">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">생산공장</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="lineInstlSite" id="lineInstlSite" type="select">
|
|
</select>
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">PM</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="pmId" id="pmId" type="select">
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class="btn_wrap" style="clear:both;">
|
|
<div class="plm_btn_wrap_center">
|
|
<input type="button" value="저장" class="plm_btns" onclick="fn_save();">
|
|
<input type="button" value="닫기" id="btn_close" class="plm_btns">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html> |