442 lines
15 KiB
Plaintext
442 lines
15 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" charset="utf-8">
|
|
<title>(주)진양코퍼레이션</title>
|
|
<c:set var="actionType" value="${param.actionType}" />
|
|
<script>
|
|
$(function(){
|
|
$(document).ready(function(){
|
|
var actionType = "${actionType}";
|
|
if(actionType == 'modify'){
|
|
$('#overlapCheckId').remove();
|
|
$('#overlapStatus').remove();
|
|
}
|
|
|
|
getDistributeList();
|
|
fnc_getMilestoneList();
|
|
});
|
|
|
|
//체크박스 전체선택/전체해제
|
|
$("#allChk").click(function(){
|
|
if($("#allChk").prop("checked")) {
|
|
$("input[name=userId]").prop("checked",true);
|
|
} else {
|
|
$("input[name=userId]").prop("checked",false);
|
|
}
|
|
});
|
|
|
|
//닫기
|
|
$("#btnClose").click(function(){
|
|
self.close(0);
|
|
});
|
|
|
|
//저장
|
|
$("#btnSave").click(function(){
|
|
fnc_carSubmit();
|
|
});
|
|
|
|
//엔터키로 조회
|
|
$("input").keyup(function(e){
|
|
if(e.keyCode == 13){
|
|
fnc_carSubmit();
|
|
}
|
|
});
|
|
$(document).on("click", ".date_delete", function(){
|
|
var dateId = $(this).attr("data_DATE");
|
|
fn_date_empty(dateId);
|
|
});
|
|
|
|
});
|
|
|
|
//날짜 입력폼 초기화
|
|
function fn_date_empty(dateId){
|
|
$("#"+dateId).val('');
|
|
|
|
}
|
|
|
|
//중복확인
|
|
function fnc_overlapCheck(){
|
|
var resultCnt = 0;
|
|
var carName = $('#carName').val();
|
|
var carCode = $('#carCode').val();
|
|
var modelCode = $('#modelCode').val();
|
|
if(!fnc_valitate('form1')){
|
|
$('#overlapStatus').empty();
|
|
}else{
|
|
$.ajax({
|
|
url:"/admin/carOverlapCheck.do",
|
|
type:"POST",
|
|
data:{"search_modelCode":modelCode,"search_carName":carName,"search_carCode":carCode,"search_carObjid":"${carInfo.OBJID}"},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(overlap){
|
|
if(overlap != null){
|
|
resultCnt = overlap.length;
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
return resultCnt;
|
|
}
|
|
|
|
//저장
|
|
function fnc_carSubmit(){
|
|
var carObjid = $('#carObjid').val();
|
|
var carName = $('#carName').val();
|
|
var modelCode = $('#modelCode').val();
|
|
var actionType = "${actionType}";
|
|
|
|
if(fn_validate()){
|
|
if(fn_checkDuplicateAuth()){
|
|
var overlapCnt = fnc_overlapCheck();
|
|
|
|
if(overlapCnt > 0){
|
|
Swal.fire("등록된 정보입니다.");
|
|
$('#carName').focus();
|
|
}else{
|
|
if(confirm("저장하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/admin/mergeCar.do",
|
|
type:"POST",
|
|
data:$('#form1').serialize(),
|
|
dataType:"text",
|
|
async:false,
|
|
success:function(data){
|
|
opener.fn_search();
|
|
self.close(0);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//고객사 id로 해당 마일스톤 가져오기
|
|
function fnc_getMilestoneList(){
|
|
var oemObjid = $('#oemObjid').val();
|
|
|
|
$('#cm_tbody').remove();
|
|
var appendText = "<tbody id='m_tbody'>";
|
|
$.ajax({
|
|
url:"/admin/getMilestoneList.do",
|
|
type:"POST",
|
|
data:{"oemObjid":oemObjid,"carObjId":"${carInfo.OBJID}"},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(milestoneList){
|
|
if(milestoneList.length == 0){
|
|
appendText +="<tr><td colspan='3'>등록된 마일스톤이 없습니다.</td></tr>";
|
|
}else{
|
|
$.each(milestoneList, function(){
|
|
appendText += "<tr>";
|
|
appendText += " <td>"+this.SEQ+"</td>";
|
|
appendText += " <td>"+this.MILESTONE_NAME+"</td>";
|
|
appendText += " <td><input type='text' name='mileDate_"+this.OBJID+"' id='mileDate_"+this.OBJID+"' value='"+fnc_checkNull(this.MILESTONE_DATE)+"' readonly>";
|
|
appendText += " <input type='hidden' name='mileObjId' value="+this.OBJID+"></td>";
|
|
appendText += " <td><input type='button' class='date_delete' value='x' data_DATE='mileDate_"+this.OBJID+"'></td>";
|
|
appendText += "</tr>";
|
|
});
|
|
}
|
|
|
|
appendText += "</tbody>";
|
|
|
|
$('#m_tbody').remove();
|
|
$('#adminPopTable').append(appendText);
|
|
//$(document).find("input[name=mileDate]").removeClass("hasDatepicker").datepicker();
|
|
fnc_datepick();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//배포처 추가 팝업
|
|
function openDistributePopUp(){
|
|
var form = document.form1;
|
|
|
|
window.open("","openDistributePopUp","width=550 height=400 menubar=no status=no");
|
|
|
|
form.callBackFn.value = "opener.getDistributeList";
|
|
form.actionURL.value = "/admin/setDistribute.do";
|
|
form.target = "openDistributePopUp";
|
|
form.action = "/common/openSearchMember.do";
|
|
form.submit();
|
|
}
|
|
|
|
function getDistributeList(){
|
|
var objId = $("#carObjid").val();
|
|
if(objId != null && objId != ""){
|
|
$.ajax({
|
|
url:"/admin/getDistributeListAjax.do",
|
|
type:"POST",
|
|
data:{"search_carObjid":objId,"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(data != null && data.length > 0){
|
|
$("#defaultRow").hide();
|
|
$("#distributeList").empty();
|
|
for(var i=0;i<data.length;i++){
|
|
var appendText = "<tr>";
|
|
appendText+= " <input type='hidden' name='"+fnc_checkNull(data[i].MEMBER_USER_ID)+"' value='"+fnc_checkNull(data[i].DEPT_CODE)+"'>";
|
|
appendText+= " <td>";
|
|
appendText+= " <input type='checkbox' name='userId' value='"+fnc_checkNull(data[i].MEMBER_USER_ID)+"'>";
|
|
appendText+= " </td>";
|
|
appendText+= " <td>"+fnc_checkNull(data[i].USER_TYPE_NAME)+"</td>";
|
|
appendText+= " <td>"+fnc_checkNull(data[i].DEPT_NAME)+"</td>";
|
|
appendText+= " <td>"+fnc_checkNull(data[i].USER_NAME)+"</td>";
|
|
appendText+= " <td>";
|
|
|
|
var tftCheckedStr = "";
|
|
var plCheckedStr = "";
|
|
if(fnc_checkNull(data[i].IS_TFT_LEADER) == "0"){
|
|
tftCheckedStr = "checked";
|
|
}
|
|
if(fnc_checkNull(data[i].IS_PROJ_LEADER) == "0"){
|
|
plCheckedStr = "checked";
|
|
}
|
|
appendText+= " TFT <input type='checkbox' name='isTFT' value='"+fnc_checkNull(data[i].MEMBER_USER_ID)+"' "+tftCheckedStr+">";
|
|
appendText+= " PL <input type='checkbox' name='isPL' value='"+fnc_checkNull(data[i].MEMBER_USER_ID)+"' data-DEPT_CODE='"+fnc_checkNull(data[i].DEPT_CODE)+"' "+plCheckedStr+">";
|
|
appendText+= " </td>";
|
|
appendText+= "</tr>";
|
|
|
|
$("#distributeList").append(appendText);
|
|
}
|
|
}else{
|
|
$("#defaultRow").show();
|
|
$("#distributeList").empty();
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//TFT장, PL의 중복여부를 확인한다.
|
|
function fn_checkDuplicateAuth(){
|
|
var result = false;
|
|
var tftCheckedLength = $("input[name=isTFT]:checkbox:checked").length;
|
|
|
|
if(1 < tftCheckedLength){
|
|
Swal.fire("TFT 장은 1명만 지정 가능합니다.");
|
|
return result;
|
|
}else{
|
|
result = true;
|
|
}
|
|
var plCheckedObj = $("input[name=isPL]:checkbox:checked");
|
|
|
|
if(0 < plCheckedObj.length){
|
|
for(var i=0;i<plCheckedObj.length;i++){
|
|
var checkedPLUserId = plCheckedObj[i].value;
|
|
var checkedPLDeptCode = fnc_checkNull($("input[name="+checkedPLUserId+"]").val());
|
|
var cnt = $("input[name=isPL][data-DEPT_CODE="+checkedPLDeptCode+"]:checkbox:checked").length;
|
|
|
|
if(1 < cnt){
|
|
Swal.fire("부서별 1명의 PL만 지정 가능합니다.");
|
|
result = false;
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
//배보처 삭제
|
|
function fnc_deleteDistribute(){
|
|
|
|
if($("input[name=userId]:checked").length > 0){
|
|
if(confirm("해당인원을 배포처에서 삭제하시겠습니까?")){
|
|
$.ajax({
|
|
url:"/admin/deleteDistributeMember.do",
|
|
type:"POST",
|
|
data:$('#form1').serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(fnc_checkNull(data.message) != ""){
|
|
Swal.fire(data.message);
|
|
}
|
|
getDistributeList();
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
}else{
|
|
Swal.fire("선택된 인원이 없습니다.");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//정합성체크
|
|
function fn_validate(){
|
|
if($("#oemObjid").val() == null || $("#oemObjid").val() == ""){
|
|
Swal.fire("고객사를 선택해 주시기 바랍니다.");
|
|
$("#oemObjid").focus();
|
|
return false;
|
|
}
|
|
if($("#carName").val() == null || $("#carName").val() == ""){
|
|
Swal.fire("차종명을 입력해 주시기 바랍니다.");
|
|
$("#carName").focus();
|
|
return false;
|
|
}
|
|
if($("#carCode").val() == null || $("#carCode").val() == ""){
|
|
Swal.fire("차종코드명을 입력해 주시기 바랍니다.");
|
|
$("#carCode").focus();
|
|
return false;
|
|
}
|
|
if($("#modelCode").val() == null || $("#modelCode").val() == ""){
|
|
Swal.fire("모델코드명을 입력해 주시기 바랍니다.");
|
|
$("#modelCode").focus();
|
|
return false;
|
|
}
|
|
if($("#carGradeObjid").val() == null || $("#carGradeObjid").val() == ""){
|
|
Swal.fire("GRADE를 선택해 주시기 바랍니다.");
|
|
$("#carGradeObjid").focus();
|
|
return false;
|
|
}
|
|
if($("#carStatus").val() == null || $("#carStatus").val() == ""){
|
|
Swal.fire("활성화 여부를 선택해 주시기 바랍니다.");
|
|
$("#carStatus").focus();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
</script>
|
|
<body>
|
|
<form name="form1" id="form1" method="post">
|
|
<input type="hidden" name="actionType" value="${actionType}">
|
|
<input type="hidden" id="actionURL" name="actionURL">
|
|
<input type="hidden" id="callBackFn" name="callBackFn">
|
|
<input type="hidden" id="targetObjId" name="targetObjId" value="${carInfo.OBJID}">
|
|
<input type="hidden" id="carObjid" name="carObjid" value="${carInfo.OBJID}">
|
|
<section id="commonSection" class="admin_min">
|
|
<div class="admin_title">
|
|
<h2>차종관리</h2>
|
|
</div>
|
|
<div id="adminPopupFormWrap">
|
|
<table id="adminPopupForm">
|
|
<colgroup>
|
|
<col width="15%" />
|
|
<col width="35%" />
|
|
<col width="15%" />
|
|
<col width="35%" />
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<td><label>고객사</label></td>
|
|
<td><select type="select" title="고객사" id="oemObjid" name="oemObjid" onchange="javascript:fnc_getMilestoneList()" required>
|
|
<option value="">선택</option>
|
|
<c:forEach var="oem" items="${oemMngList}">
|
|
<option value="${oem.OBJID}" ${oem.OBJID eq carInfo.OEM_OBJID?'selected':''}>${oem.OEM_NAME}</option>
|
|
</c:forEach>
|
|
</select></td>
|
|
<td><label>차명</label></td>
|
|
<td><input type="text" title="차종" id="carName" name="carName" value="${carInfo.CAR_NAME}" required maxlength="30"></td>
|
|
</tr>
|
|
<tr>
|
|
<td><label>차종코드</label></td>
|
|
<td><input type="text" title="코드" id="carCode" name="carCode" value="${carInfo.CAR_CODE}" required maxlength="15"></td>
|
|
<td><label>모델코드</label></td>
|
|
<td><input type="text" title="모델코드" id="modelCode" name="modelCode" value="${carInfo.MODEL_CODE}" required maxlength="15"></td>
|
|
</tr>
|
|
<tr>
|
|
<td><label>Grade</label></td>
|
|
<td><select type="select" title="그레이드" id="carGradeObjid" name="carGradeObjid" required>
|
|
<option value="">선택</option>
|
|
<c:forEach var="carGrade" items="${carGradeMngList}">
|
|
<option value="${carGrade.OBJID}" ${carGrade.OBJID eq carInfo.GRADE_OBJID?'selected':''}>${carGrade.GRADE_NAME}</option>
|
|
</c:forEach>
|
|
</select></td>
|
|
<td><label>활성화 여부</label></td>
|
|
<td>
|
|
<select id="carStatus" name="carStatus">
|
|
<option value="active" ${carInfo.STATUS eq 'active'?'selected':''}>활성화</option>
|
|
<option value="inActive" ${carInfo.STATUS eq 'inActive'?'selected':''}>비활성화</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><label>설명</label></td>
|
|
<td colspan="3"><input type="text" id="carDescription" name="carDescription" value="${carInfo.DESCRIPTION}"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="oem_pso_wrap">
|
|
<div id="adminPopTableW">
|
|
<table id="adminPopTable">
|
|
<colgroup>
|
|
<col width="10%" />
|
|
<col width="35%" />
|
|
<col width="*%" />
|
|
<col width="4%" />
|
|
</colgroup>
|
|
<tr id="thead">
|
|
<td>SEQ</td>
|
|
<td>이벤트시점</td>
|
|
<td colspan="2">일정</td>
|
|
</tr>
|
|
<c:if test="${actionType eq 'modify'}">
|
|
<tbody id="cm_tbody">
|
|
</tbody>
|
|
</c:if>
|
|
</table>
|
|
</div>
|
|
<div id="adminPopupBtnWrap">
|
|
<span id="overlapStatus"></span>
|
|
</div>
|
|
</div>
|
|
<div class="oem_pso_wrap">
|
|
<div id="adminPopTableW" style="margin-top:0px;">
|
|
<table id="adminPopTable2">
|
|
<colgroup>
|
|
<col width="5%" />
|
|
<col width="25%" />
|
|
<col width="25%" />
|
|
<col width="20%" />
|
|
<col width="*%" />
|
|
</colgroup>
|
|
<tr id="thead">
|
|
<td><input type="checkbox" name="allChk" id="allChk"></td>
|
|
<td>소속</td>
|
|
<td>부서</td>
|
|
<td>이름</td>
|
|
<td>권한</td>
|
|
</tr>
|
|
<tr id="defaultRow">
|
|
<td colspan="5">지정된 인원이 없습니다.</td>
|
|
</tr>
|
|
<tbody id="distributeList">
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div id="adminPopupBtnWrap">
|
|
<span id="overlapStatus"></span>
|
|
<input type="button" name="" value="배포처 지정" class="btns" onclick="javascript:openDistributePopUp()">
|
|
<input type="button" name="" value="배포처 삭제" class="btns" onclick="javascript:fnc_deleteDistribute()">
|
|
</div>
|
|
</div>
|
|
<div class="btnCenterWrap">
|
|
<center class="center_btns_wrap">
|
|
<input type="button" value="저장" class="btns" id="btnSave">
|
|
<input type="button" value="닫기" name="" id="btnClose" class="btns">
|
|
</center>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html>
|