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

313 lines
14 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<c:set var="now" value="<%=new java.util.Date() %>"/>
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
</head>
<style>
.select2-selection__choice {
font-size: 11px;
background-color: #fff !important;
border: none !important;
margin-right: 0px !important;
}
.select2-selection__choice__remove {
display: contents !important;
}
.select2-container .select2-selection--multiple {
min-height: 20px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
margin-top: 3.5px !important;
}
.select2-selection__rendered {
height: 18px !important;
}
.select2-container .select2-selection--multiple .select2-selection__rendered {
overflow: auto !important;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
fnc_changePaginationAndTotalCountArea();
$('.select2').select2();
fnc_datepick();
//조회
$("#btnSearch").click(function(){
$("#page").val("1");
fn_search();
});
//접수
$("#btnRec").click(function(){
var selectedRowIds = _tabulGrid.getSelectedData();
if(selectedRowIds.length==0){
Swal.fire("접수할 행을 선택해주십시오.");
return false;
}
var validStatus = true;
$(selectedRowIds).each(function(i, o){
var status = selectedRowIds[i].ACT_STATUS;
if('0001064' == status){
validStatus = false;
return false;
}
});
if(!validStatus){
Swal.fire("이미 접수한 건입니다.");
return false;
}
//old
let partIds = selectedRowIds.map(function(o,i){
return fnc_checkNull(selectedRowIds[i].OBJID);
});
//new
var param = $("#form1").serializeObject();
param.dataListJson = JSON.stringify(_tabulGrid.getSelectedData());
if(confirm("접수하시겠습니까?")){
$.ajax({
url:"/salesMng/receiptSalesPartChgInfo.do"
,type:"POST"
//,data: "partIds="+partIds.join(",")
,data: param
,dataType:"json"
,async:false
,success:function(data){
Swal.fire(data.message);
fn_search();
self.close();
}
,error: function(jqxhr, status, error){
}
});
}
});
//조치내역등록
$("#btnActReg").click(function(){
var selectedRowIds = _tabulGrid.getSelectedData();
if(selectedRowIds.length==0){
Swal.fire("등록할 행을 선택해주십시오.");
return false;
}else if(selectedRowIds.length>1){
Swal.fire("한번에 한개의 등록만 가능합니다.");
return false;
}else{
var objid = fnc_checkNull(selectedRowIds[0].SPC_OBJID);
var part_objid = fnc_checkNull(selectedRowIds[0].OBJID);
var eo_no = fnc_checkNull(selectedRowIds[0].EO_NO);
var part_no = fnc_checkNull(selectedRowIds[0].PART_NO);
var project_no = fnc_checkNull(selectedRowIds[0].PROJECT_NO);
if(fnc_checkNull(objid)=="" || fnc_checkNull(selectedRowIds[0].CONFIRM_DATE)==""){
Swal.fire("접수되지 않은 건입니다.");
return false;
}
fn_formPopUp(600,300,"/salesMng/salesPartChgFormPopup.do", "salesPartChgFormPopup", objid, part_objid, eo_no, part_no, project_no);
}
});
fn_search();
});
var columns = [
{title:'OBJID' , field:'OBJID' ,visible: false},
{title:'SPC_OBJID' , field:'SPC_OBJID' ,visible: false},
{title:'EO_NO' , field:'EO_NO' ,visible: false},
{title:'ACT_STATUS' , field:'ACT_STATUS' ,visible: false},
{title:'PURCHASE_ORDER_MASTER_OBJID', field:'PURCHASE_ORDER_MASTER_OBJID' ,visible: false}
,{headerHozAlign : 'center', hozAlign : 'center', title : "EO NO", field :"EO_NO" , width:80 }
//,{headerHozAlign : 'center', hozAlign : 'center', title : "년도", field :"CM_YEAR" , width:50 }
,{headerHozAlign : 'center', hozAlign : 'left', title : "프로젝트번호", field :"PROJECT_NO" , width:100 }
,{headerHozAlign : 'center', hozAlign : 'left', title : "프로젝트명", field :"CUSTOMER_PROJECT_NAME" , width:140 }
,{headerHozAlign : 'center', hozAlign : 'left', width :'125', title:'모품번', field:'PARENT_PART_INFO' }
,{headerHozAlign : 'center', hozAlign : 'left', title : "품번", field :"PART_NO" , width:120,
formatter: fnc_createGridAnchorTag,
cellClick : function(e, cell) {
fn_partMngHisDetail(cell.getData().OBJID);
}
}
,{headerHozAlign : 'center', hozAlign : 'left', title : "품명", field :"PART_NAME" , width:150 }
,{headerHozAlign : 'center', hozAlign : 'center', title : '수량', field :'QTY' , width :50}
,{headerHozAlign : 'center', hozAlign : 'center', title : '변경수량', field :'QTY_TEMP' , width :80}
,{headerHozAlign : 'center', hozAlign : 'left', title : "EO구분", field :"CHANGE_TYPE_NAME", width:90 }
,{headerHozAlign : 'center', hozAlign : 'left', title : "EO사유", field :"CHANGE_OPTION_NAME",width:80}
,{headerHozAlign : 'center', hozAlign : 'center', title : "Revision", field :"REVISION" , width:80 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "EO Date", field :"EO_DATE" , width:85 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "PART구분", field :"PART_TYPE_NAME" , width:90 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "설계담당자", field :"WRITER_NAME" , width:100 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "실행일", field :"HIS_REG_DATE_TITLE" , width:80 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매확인", field :"CONFIRM_DATE" , width:90 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매담당자", field :"WRITER1_NAME" , width:100 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "조치내역", field :"ACT_NAME" , width:90 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "발주서NO", field :"PURCHASE_ORDER_NO" , width:100,
formatter: fnc_createGridAnchorTag,
cellClick : function(e, cell) {
fn_purchaseOrderPopup(cell.getData().PURCHASE_ORDER_MASTER_OBJID);
}
}
,{headerHozAlign : 'center', hozAlign : 'center', title : "조치결과", field :"ACT_STATUS_NAME" , width:80 }
];
//var grid;
function fn_search(){
var selectedValues = $("#contract_objid").val();
$('<input>').attr({
type: 'hidden',
name: 'project_nos',
value: selectedValues
}).appendTo('#form1');
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/salesMng/salesPartChgGridList.do", columns, true);
}
function fn_formPopUp(width, heigth, url, target, objId, part_objid, eo_no, part_no, project_no){
var hiddenForm = document.hiddenForm;
fn_centerPopup(width, heigth, "", target);
hiddenForm.objId.value = objId;
hiddenForm.part_objid.value = part_objid;
hiddenForm.eo_no.value = eo_no;
hiddenForm.part_no.value = part_no;
hiddenForm.project_no.value = project_no;
hiddenForm.action = url;
hiddenForm.target = target;
hiddenForm.submit();
}
function fn_partMngHisDetail(objId){
var popup_width = 550;
var popup_height = 250;
var url = "/partMng/partMngHisDetailPopUp.do?OBJID="+objId;
fn_centerPopup(popup_width, popup_height, url);
}
function fn_purchaseOrderPopup(objId){
var popup_width = 950;
var popup_height = 765;
var url = "/purchaseOrder/purchaseOrderFormPopup_new.do?PURCHASE_ORDER_MASTER_OBJID="+objId;
fn_centerPopup(popup_width, popup_height, url);
}
</script>
<body>
<form name="hiddenForm" id="hiddenForm" method="post">
<input type="hidden" name="objId" />
<input type="hidden" name="part_objid" />
<input type="hidden" name="eo_no" />
<input type="hidden" name="part_no" />
<input type="hidden" name="project_no" />
</form>
<form name="form1" id="form1" action="" method="post">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name_gdnsi">
<h2>
<span>구매관리_설계변경리스트</span>
</h2>
<div class="btnArea">
<input type="button" class="plm_btns" value="접수" id="btnRec">
<input type="button" class="plm_btns" value="조치내역등록" id="btnActReg">
<input type="button" class="plm_btns" value="조회" id="btnSearch">
</div>
</div>
<div id="plmSearchZon">
<table>
<tr>
<td><label for="Year">년도</label></td>
<td>
<select name="Year" id="Year" class="select2" autocomplete="off" style="width:110px;">
<option value="">선택</option>
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
<option value="${req_year}"${param.Year eq req_year ? 'selected':'' }>${req_year}</option>
</c:forEach>
</select>
</td>
<%-- <td><label for="">프로젝트번호</label></td>
<td><select name="contract_objid" id="contract_objid" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.contract_objid}</select></td> --%>
<td><label for="contract_objid">프로젝트번호</label></td>
<td>
<select name="contract_objid" id="contract_objid" style="width:270px;" class="select2" autocomplete="off" multiple="multiple">
<option value="">선택</option>
${code_map.contract_objid}
</select>
</td>
<td><label for="">품번</label></td>
<td><input type="text" name="part_no" id="part_no" autocomplete="off" value="${param.part_no }" style="width:120px;"/></td>
<td><label for="">품명</label></td>
<td><input type="text" name="part_name" id="part_name" autocomplete="off" value="${param.part_name}" style="width:120px;"/></td>
<td class="align_r"><label>EO Date</label></td>
<td>
<input type="text" name="eo_date_start" id="eo_date_start" style="width:80px;" autocomplete="off" value="${param.eo_date_start}" class="date_icon">~
<input type="text" name="eo_date_end" id="eo_date_end" style="width:80px;" autocomplete="off" value="${param.eo_date_end }" class="date_icon">
</td>
<td><label for="">EO구분</label></td>
<td><select name="change_type" id="change_type" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.change_type}</select></td>
<td><label for="">설변사유</label></td>
<td><select name="change_option" id="change_option" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.change_option}</select></td>
<%-- <td><label for="">EO단계</label></td>
<td><select name="eo_step" id="eo_step" class="select2" autocomplete="off"><option value="">선택</option>${code_map.eo_step}</select></td> --%>
</tr>
<tr>
<td><label for="">PART 구분</label></td>
<td><select name="part_type" id="part_type" class="select2" autocomplete="off" style="width:110px;"><option value="">선택</option>${code_map.part_type}</select></td>
<td><label for="">설계담당자</label></td>
<td><select name="part_writer" id="part_writer" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.part_writer}</select></td>
<td><label for="">구매담당자</label></td>
<td><select name="sales_writer" id="sales_writer" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.sales_writer}</select></td>
<td><label for="">Revision</label></td>
<td><input type="text" name="revision" id="revision" autocomplete="off" value="${param.revision }" style="width:120px;"/></td>
<td class="align_r"><label>구매확인일자(접수)</label></td>
<td>
<input type="text" name="confirm_date_start" id="confirm_date_start" style="width:80px;" autocomplete="off" value="${param.confirm_date_start}" class="date_icon">~
<input type="text" name="confirm_date_end" id="confirm_date_end" style="width:80px;" autocomplete="off" value="${param.confirm_date_end }" class="date_icon">
</td>
<td><label for="">조치내역</label></td>
<td><select name="act_cd" id="act_cd" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.act_cd}</select></td>
<td><label for="">조치결과</label></td>
<td><select name="act_status" id="act_status" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.act_status}</select></td>
</tr>
</table>
</div>
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
</div>
</div>
</form>
</body>
</html>