506 lines
14 KiB
Plaintext
506 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" %>
|
|
<%--
|
|
//금형이력 등록방법
|
|
1. 고객사 선택 (기준정보)
|
|
2. 차종 선택 (기준정보)
|
|
3. 현단계 선택 (Milestone 기준정보)
|
|
4. 제품군 선택 (기준정보)
|
|
5. 제품 선택 (기준정보)
|
|
6. 선택된 제품 [추가]
|
|
6-1. 잘못 선택된 제품은 [삭제]를 통해 제거
|
|
7. 해당정보 저장.
|
|
|
|
//저장시 유의사항
|
|
1. 차종별 1개의 금형이력만 등록 가능함.
|
|
2. 같은 제품을 등록할 수 없음.
|
|
--%>
|
|
<!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(){
|
|
opener.fn_refreshProductList($("#objId").val());
|
|
self.close(0);
|
|
});
|
|
|
|
fn_setOEMList();
|
|
fn_setProductGroupList();
|
|
|
|
$("#oemObjId").change(function(){
|
|
fn_setCarTypeList($(this).val());
|
|
fn_setMilestoneList($(this).val());
|
|
});
|
|
|
|
$("#prodGroupObjId").change(function(){
|
|
fn_setProductList();
|
|
});
|
|
|
|
$("#btnSave").click(function(){
|
|
fn_save();
|
|
});
|
|
|
|
$(document).on("click", ".btnDisconnectProduct", function(){
|
|
var objId = $(this).attr("data-OBJID");
|
|
fn_deleteProjectProduct(objId);
|
|
});
|
|
|
|
fn_refreshProductList();
|
|
});
|
|
</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);
|
|
|
|
var dbVal = fnc_checkNull("${info.OEM_OBJID}");
|
|
if(dbVal != ""){
|
|
$("#oemObjId > option[value="+dbVal+"]").attr("selected", "true");
|
|
$("#oemObjId").trigger("change");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//car 목록 조회
|
|
function fn_setCarTypeList(oemObjId){
|
|
if(fnc_checkNull(oemObjId) != ""){
|
|
$.ajax({
|
|
url:"/common/getCarTypeList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_oemObjId":oemObjId},
|
|
dataType:"json",
|
|
success:function(data){
|
|
var appendCode = "<option value=''>선택</option>";
|
|
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
|
|
});
|
|
|
|
$("#carObjId").children().remove();
|
|
$("#carObjId").append(appendCode);
|
|
|
|
var dbVal = fnc_checkNull("${info.CAR_OBJID}");
|
|
if(dbVal != ""){
|
|
$("#carObjId > option[value="+dbVal+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}else{
|
|
$("#carObjId").children().remove();
|
|
$("#carObjId").append("<option value=''>선택</option>");
|
|
}
|
|
|
|
}
|
|
|
|
//milestone 목록 조회
|
|
function fn_setMilestoneList(oemObjId){
|
|
var appendCode = "";
|
|
|
|
if(fnc_checkNull(oemObjId) != ""){
|
|
$.ajax({
|
|
url:"/common/getMilestoneList.do",
|
|
type:"POST",
|
|
data:{"search_oemObjId":oemObjId, "isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
appendCode += "<option value=''>선택</option>";
|
|
if(data != null && data.length > 0){
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].MILESTONE_NAME+"'>"+data[i].MILESTONE_NAME+"</option>";
|
|
});
|
|
}
|
|
|
|
$("#currentStep").children().remove();
|
|
$("#currentStep").append(appendCode);
|
|
|
|
var dbVal = fnc_checkNull("${info.CURRENT_STEP}");
|
|
if(dbVal != ""){
|
|
$("#currentStep > option[value="+dbVal+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire("error");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//제품군 조회
|
|
function fn_setProductGroupList(){
|
|
$.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>";
|
|
});
|
|
|
|
$("#prodGroupObjId").append(appendCode);
|
|
//$("#productGroupObjId").trigger("change");
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//제품 조회
|
|
function fn_setProductList(){
|
|
var productGroupObjId = $("#prodGroupObjId").val();
|
|
var appendCode = "";
|
|
|
|
$("#prodObjId").empty();
|
|
|
|
if(null != productGroupObjId && "" != productGroupObjId){
|
|
$.ajax({
|
|
url:"/common/getProductList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_productGroupObjId":productGroupObjId},
|
|
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>";
|
|
});
|
|
|
|
$("#prodObjId").children().remove();
|
|
$("#prodObjId").append(appendCode);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}else{
|
|
appendCode += "<option value=''>선택</option>";
|
|
$("#prodObjId").children().remove();
|
|
$("#prodObjId").append(appendCode);
|
|
}
|
|
}
|
|
|
|
//제품군, 제품 선택하여 금형이력에 제품목록을 추가한다.
|
|
function fn_addProjectProduct(){
|
|
var prodGroupObjId = $("#prodGroupObjId").val();
|
|
var prodObjId = $("#prodObjId").val();
|
|
var objId = $("#objId").val();
|
|
|
|
//Swal.fire("prodGroupObjId : "+prodGroupObjId+", prodObjId : "+prodObjId);
|
|
|
|
if(prodGroupObjId == "" || prodObjId == ""){
|
|
Swal.fire("선택된 제품이 없습니다.");
|
|
return;
|
|
}else{
|
|
$.ajax({
|
|
url:"/productDevMng/connectMoldHistoryRelProduct.do",
|
|
type:"POST",
|
|
data:{"targetObjId":objId, "prodGroupObjId":prodGroupObjId, "prodObjId":prodObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//Swal.fire("result : "+data.result);
|
|
if(data.result == "false"){
|
|
Swal.fire(data.msg);
|
|
}
|
|
fn_refreshProductList();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//추가된 급형이력 제품목록을 삭제한다.
|
|
function fn_deleteProjectProduct(objId){
|
|
if(confirm("해당 제품을 삭제하시겠습니까?\n제품별 입력한 정보가 있을시 전부 삭제되며, 복구되지 않습니다.")){
|
|
$.ajax({
|
|
url:"/productDevMng/disconnectMoldHistoryRelProduct.do",
|
|
type:"POST",
|
|
data:{"objId":objId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//Swal.fire("result : "+data.result);
|
|
if(data.result == "false"){
|
|
Swal.fire(data.msg);
|
|
}
|
|
fn_refreshProductList();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//제품목록 조회
|
|
function fn_refreshProductList(){
|
|
var targetObjId = fnc_checkNull($("#objId").val());
|
|
if(targetObjId != ""){
|
|
$.ajax({
|
|
url:"/productDevMng/getMoldHistoryRelProductList.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].PROD_GROUP_NAME+"</td>";
|
|
appendCode += "<td>"+data[i].PROD_NAME+"</td>";
|
|
appendCode += "<td><input type='button' value='삭제' class='blue_btn btnDisconnectProduct' data-OBJID='"+data[i].SUB_OBJID+"'></td>";
|
|
appendCode += "</tr>";
|
|
});
|
|
}else{
|
|
appendCode += "<tr>";
|
|
appendCode += "<td colspan='4' align='center'>등록된 제품이 없습니다.</td>";
|
|
appendCode += "</tr>";
|
|
}
|
|
|
|
|
|
$("#orderProduct").children().remove();
|
|
$("#orderProduct").append(appendCode);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//저장
|
|
function fn_save(){
|
|
var actionType = "${param.actionType}";
|
|
if(fnc_valitate("form1")){
|
|
if(actionType == "regist"){
|
|
//같은 차종, 같은 단계로 등록되어있는 갑지가 있는지 확인.
|
|
if(!fn_checkDuplicateMoldHistoryInfo()){
|
|
Swal.fire("동일 내용의 금형이력정보가 이미 존재 합니다.");
|
|
return;
|
|
}
|
|
}
|
|
|
|
/*
|
|
//제품선택유무 확인
|
|
if(!fn_checkAddedProduct()){
|
|
Swal.fire("등록된 제품이 없습니다.");
|
|
return;
|
|
}
|
|
*/
|
|
if(confirm("저장하시겠습니까?")){
|
|
var url = "/productDevMng/saveMoldHistoryInfo.do";
|
|
|
|
$.ajax({
|
|
url:url,
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
success:function(data){
|
|
//Swal.fire("result : "+data.result);
|
|
Swal.fire(data.msg);
|
|
opener.fn_search();
|
|
self.close(0);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
//금형이력 저장 시 동일 정보의 중복여부를 확인한다. (true : 등록가능, false : 등록불가)
|
|
function fn_checkDuplicateMoldHistoryInfo(){
|
|
var resultFlag = false;
|
|
$.ajax({
|
|
url:"/productDevMng/checkDuplicateMoldHistoryInfo.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(0 == Number(data.CNT)){
|
|
returnFlag = true;
|
|
}else{
|
|
returnFlag = false;
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
return returnFlag;
|
|
}
|
|
|
|
|
|
//제품 유무를 확인하다. (true : ok, false : ng)
|
|
function fn_checkAddedProduct(){
|
|
var addedProductCnt = $("tr [name=addedOrderProduct]").size();
|
|
if(0 == addedProductCnt){
|
|
return false;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
</script>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="objId" id="objId" value="${info.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"> 금형이력 등록</div>
|
|
<table class="pmsPopupForm" style="margin: 10px 0 0 0;">
|
|
<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="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">
|
|
<option value="">선택</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">현단계</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="currentStep" id="currentStep" required reqTitle="현단계" type="select">
|
|
<option value="">선택</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="input_title">
|
|
<label for="">제품군</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="prodGroupObjId" id="prodGroupObjId" type="select">
|
|
<option value="">선택</option>
|
|
</select>
|
|
</td>
|
|
<td class="input_title">
|
|
<label for="">제품</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="prodObjId" id="prodObjId" style="width:70%;">
|
|
<option value="">선택</option>
|
|
</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>
|
|
</table>
|
|
<div class="btn_wrap" style="clear:both;">
|
|
<div class="plm_btn_wrap_center">
|
|
<input type="button" value="저장" id="btnSave" class="plm_btns">
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html> |