품의서관리 결재, mbom리스트 버전, 작성자 등 추가
This commit is contained in:
@@ -15,10 +15,22 @@ var helpViewArr = new Array();
|
||||
var refArr = new Array();
|
||||
var refViewArr = new Array();
|
||||
|
||||
// URL 파라미터에서 값 가져오기 (한글 인코딩 처리)
|
||||
function getUrlParameter(name) {
|
||||
var urlParams = new URLSearchParams(window.location.search);
|
||||
return urlParams.get(name) || '';
|
||||
}
|
||||
|
||||
$(function(){
|
||||
|
||||
var callbackFnc = "${param.callbackFnc}";
|
||||
|
||||
// URL에서 approvalTitle 파라미터 가져와서 설정 (한글 인코딩 문제 해결)
|
||||
var approvalTitleFromUrl = getUrlParameter('approvalTitle');
|
||||
if(approvalTitleFromUrl) {
|
||||
$("#approvalTitle").val(approvalTitleFromUrl);
|
||||
}
|
||||
|
||||
//창 닫기
|
||||
$('#btn_close').click(function(){
|
||||
self.close();
|
||||
|
||||
@@ -86,19 +86,20 @@ function _fnc_datepick(){
|
||||
|
||||
// 그리드 컬럼 정의
|
||||
var columns = [
|
||||
{title:'OBJID', field:'OBJID', visible: false},
|
||||
{title:'CONTRACT_OBJID', field:'CONTRACT_OBJID', visible: false},
|
||||
{title:'BOM_REPORT_OBJID', field:'BOM_REPORT_OBJID', visible: false},
|
||||
{title:'MBOM_HEADER_OBJID', field:'MBOM_HEADER_OBJID', visible: false},
|
||||
{title:'PURCHASE_LIST_OBJID', field:'PURCHASE_LIST_OBJID', visible: false},
|
||||
{title:'OBJID', field:'OBJID', visible: false,frozen: true,},
|
||||
{title:'CONTRACT_OBJID', field:'CONTRACT_OBJID', visible: false,frozen: true,},
|
||||
{title:'BOM_REPORT_OBJID', field:'BOM_REPORT_OBJID', visible: false,frozen: true,},
|
||||
{title:'MBOM_HEADER_OBJID', field:'MBOM_HEADER_OBJID', visible: false,frozen: true,},
|
||||
{title:'PURCHASE_LIST_OBJID', field:'PURCHASE_LIST_OBJID', visible: false,frozen: true,},
|
||||
|
||||
// 1. 체크박스
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 40,
|
||||
width: 30,
|
||||
title: '<input type="checkbox" id="checkAll">',
|
||||
field: 'CHK',
|
||||
frozen: true,
|
||||
formatter: function(cell, formatterParams, onRendered) {
|
||||
return '<input type="checkbox" class="rowCheck" data-objid="' + cell.getRow().getData().OBJID + '">';
|
||||
},
|
||||
@@ -109,9 +110,16 @@ var columns = [
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'left',
|
||||
width: 130,
|
||||
width: 120,
|
||||
title: '프로젝트번호',
|
||||
field: 'PROJECT_NO'
|
||||
field: 'PROJECT_NO',
|
||||
frozen: true,
|
||||
formatter: fnc_createGridAnchorTag,
|
||||
cellClick: function(e, cell){
|
||||
var orderNo = cell.getData().PROJECT_NO;
|
||||
// 프로젝트 번호 클릭 시: 결재 정보 조회 모드 (saleNo에 "detail" 전달)
|
||||
fn_openSaleRegPopup(orderNo, "detail");
|
||||
}
|
||||
},
|
||||
|
||||
// 3. 주문유형
|
||||
@@ -145,7 +153,7 @@ var columns = [
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 90,
|
||||
width: 80,
|
||||
title: '접수일',
|
||||
field: 'RECEIPT_DATE'
|
||||
},
|
||||
@@ -181,7 +189,7 @@ var columns = [
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'left',
|
||||
// width: 150,
|
||||
width: 150,
|
||||
title: '품명',
|
||||
field: 'PART_NAME'
|
||||
},
|
||||
@@ -239,13 +247,40 @@ var columns = [
|
||||
}
|
||||
},
|
||||
|
||||
// 16. 작성자 (M-BOM 작성자)
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 90,
|
||||
title: '작성자',
|
||||
field: 'MBOM_EDITOR'
|
||||
},
|
||||
|
||||
// 16. 최종저장일 (M-BOM 작성일)
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 100,
|
||||
title: '최종저장일',
|
||||
width: 90,
|
||||
title: '저장일',
|
||||
field: 'MBOM_REGDATE'
|
||||
},
|
||||
|
||||
// 17. 버전 (M-BOM 버전)
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 70,
|
||||
title: '버전',
|
||||
field: 'MBOM_VERSION'
|
||||
},
|
||||
|
||||
// 18. 구매리스트 생성일
|
||||
{
|
||||
headerHozAlign: 'center',
|
||||
hozAlign: 'center',
|
||||
width: 130,
|
||||
title: '구매리스트 생성일',
|
||||
field: 'PURCHASE_LIST_DATE'
|
||||
}
|
||||
];
|
||||
|
||||
@@ -399,6 +434,14 @@ function fn_openBomCopyPopupWindow(objId) {
|
||||
}
|
||||
}
|
||||
|
||||
function fn_openSaleRegPopup(orderNo, saleNo){
|
||||
var popup_width = 1000;
|
||||
var popup_height = 550;
|
||||
// 한글 프로젝트 번호 인코딩 처리
|
||||
var url = "/salesMgmt/salesRegForm.do?orderNo=" + encodeURIComponent(orderNo) + "&saleNo=" + (saleNo ? encodeURIComponent(saleNo) : "");
|
||||
fn_centerPopup(popup_width, popup_height, url);
|
||||
}
|
||||
|
||||
// 할당 정보 확인 후 M-BOM 팝업 열기
|
||||
function fn_checkAssignmentAndOpenMbom(projectObjId) {
|
||||
// 먼저 해당 프로젝트의 M-BOM이 실제로 존재하는지 확인
|
||||
|
||||
@@ -100,7 +100,7 @@ var pageSize = 20;
|
||||
|
||||
$(document).ready(function(){
|
||||
initEbomTable();
|
||||
fn_searchEbom();
|
||||
//fn_searchEbom();
|
||||
|
||||
// 조회 버튼 클릭 이벤트
|
||||
$("#btnSearch").click(function(){
|
||||
|
||||
@@ -85,28 +85,31 @@ $(document).ready(function(){
|
||||
|
||||
// 결재상신
|
||||
$("#btnApproval").click(function(){
|
||||
var selectedRowIds = _tabulGrid.getSelectedData();
|
||||
if(selectedRowIds.length < 1){
|
||||
Swal.fire("결재상신할 행을 선택해주십시오.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(selectedRowIds.length > 1){
|
||||
Swal.fire("결재상신은 한 건씩만 가능합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var objId = fnc_checkNull(selectedRowIds[0].OBJID);
|
||||
var status = fnc_checkNull(selectedRowIds[0].STATUS);
|
||||
|
||||
if(status != 'create' && status != 'reject'){
|
||||
Swal.fire("미결재 또는 반려 상태만 결재상신 가능합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var title = encodeURIComponent("품의서 결재");
|
||||
window.open("/approval/registApproval.do?targetType=PROPOSAL&targetObjId="+objId+"&approvalTitle="+title+"&callbackFnc=fn_search","registApproval","width=700,height=700");
|
||||
});
|
||||
var selectedData = _tabulGrid.getSelectedData();
|
||||
if(selectedData.length<1){
|
||||
Swal.fire("결재상신할 행을 선택해주십시오.");
|
||||
return false;
|
||||
}else if(selectedData.length>1){
|
||||
Swal.fire("한번에 한개의 결재만 가능합니다.");
|
||||
return false;
|
||||
}else{
|
||||
|
||||
var targetStatus = fnc_checkNull(selectedData[0].STATUS_TITLE);
|
||||
var status = fnc_checkNull(selectedData[0].STATUS);
|
||||
|
||||
if(targetStatus == "결재완료" || targetStatus == "결재중" || status == "cancel"){
|
||||
Swal.fire("작성중/결재반려인 상태만 결재상신 가능합니다.");
|
||||
return false;
|
||||
}else{
|
||||
if(confirm("결재상신 하시겠습니까?")){
|
||||
var objId = fnc_checkNull(selectedData[0].OBJID);
|
||||
//var title = encodeURIComponent(fnc_checkNull(selectedData[0].CONTRACT_NO));
|
||||
var title = encodeURIComponent("품의서 결재");
|
||||
window.open("/approval/registApproval.do?targetType=PROPOSAL&targetObjId="+objId+"&approvalTitle="+title,"registApproval","width=700,height=700");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 발주서생성
|
||||
$("#btnCreatePO").click(function(){
|
||||
@@ -126,17 +129,6 @@ $(document).ready(function(){
|
||||
Swal.fire("발주서 생성 기능은 준비 중입니다.");
|
||||
});
|
||||
|
||||
// 초기화
|
||||
$("#btnReset").click(function(){
|
||||
$("#form1")[0].reset();
|
||||
$('.select2').val('').trigger('change');
|
||||
});
|
||||
|
||||
// 엑셀 다운로드
|
||||
$("#btnExcel").click(function(){
|
||||
fn_excelExport($("#mainGrid"), "품의서관리");
|
||||
});
|
||||
|
||||
fn_search();
|
||||
_fnc_datepick();
|
||||
});
|
||||
@@ -158,14 +150,12 @@ var columns = [
|
||||
{headerHozAlign:'center', hozAlign:'left', title:"품번", field:"PART_NO", widthGrow:1.5},
|
||||
{headerHozAlign:'center', hozAlign:'left', title:"품명", field:"PART_NAME", widthGrow:1.8},
|
||||
{headerHozAlign:'center', hozAlign:'center', title:"결재상태", field:"STATUS_TITLE", widthGrow:1.0,
|
||||
formatter: function(cell){
|
||||
var value = cell.getValue();
|
||||
var color = '';
|
||||
if(value == '결재완료') color = '#28a745';
|
||||
else if(value == '결재중') color = '#007bff';
|
||||
else if(value == '반려') color = '#dc3545';
|
||||
else color = '#6c757d';
|
||||
return '<span style="color:' + color + '; font-weight:bold;">' + fnc_checkNull(value) + '</span>';
|
||||
formatter:fnc_createGridAnchorTag,
|
||||
cellClick:function(e, cell){
|
||||
var statusTitle = fnc_checkNull(cell.getData().STATUS_TITLE);
|
||||
if(statusTitle == "결재중" || statusTitle == "결재완료" || statusTitle == "반려"){
|
||||
fnc_approvalDetail(cell.getData().APPROVAL_OBJID, cell.getData().ROUTE_OBJID);
|
||||
}
|
||||
}
|
||||
},
|
||||
{headerHozAlign:'center', hozAlign:'center', title:"작성일", field:"REGDATE_TITLE", widthGrow:1.0}
|
||||
@@ -182,6 +172,16 @@ function fn_openProposalFormPopUp(objId){
|
||||
window.open(url, "proposalFormPopUp", "width=1200,height=700,scrollbars=yes,resizable=yes");
|
||||
}
|
||||
|
||||
function _fnc_datepick(){
|
||||
var $dateinput = $("input.date_icon");
|
||||
for(var i=0; i<$dateinput.length; i++){
|
||||
$dateinput.eq(i).attr("size","10");
|
||||
$dateinput.eq(i).datepicker({
|
||||
changeMonth:true,
|
||||
changeYear:true
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
@@ -198,8 +198,6 @@ function fn_openProposalFormPopUp(objId){
|
||||
<input type="button" value="조회" class="plm_btns" id="btnSearch">
|
||||
<input type="button" value="결재상신" class="plm_btns" id="btnApproval" style="background:#17a2b8; color:white;">
|
||||
<input type="button" value="발주서생성" class="plm_btns" id="btnCreatePO" style="background:#28a745; color:white;">
|
||||
<%-- <input type="button" value="초기화" class="plm_btns" id="btnReset">
|
||||
<input type="button" value="엑셀 다운로드" class="plm_btns" id="btnExcel"> --%>
|
||||
</div>
|
||||
</div>
|
||||
<div id="plmSearchZon">
|
||||
|
||||
@@ -2963,6 +2963,18 @@
|
||||
LIMIT 1
|
||||
)
|
||||
LIMIT 1) AS PURCHASE_LIST_OBJID,
|
||||
-- 구매리스트 생성일
|
||||
(SELECT TO_CHAR(SRM.REGDATE, 'YYYY-MM-DD')
|
||||
FROM SALES_REQUEST_MASTER SRM
|
||||
WHERE SRM.MBOM_HEADER_OBJID = (
|
||||
SELECT MH.OBJID::VARCHAR
|
||||
FROM MBOM_HEADER MH
|
||||
WHERE MH.PROJECT_OBJID = PM.OBJID::VARCHAR
|
||||
AND MH.STATUS = 'Y'
|
||||
ORDER BY MH.REGDATE DESC
|
||||
LIMIT 1
|
||||
)
|
||||
LIMIT 1) AS PURCHASE_LIST_DATE,
|
||||
-- M-BOM 상태: 새 MBOM_HEADER 테이블에서 조회
|
||||
COALESCE(
|
||||
(SELECT
|
||||
@@ -2993,7 +3005,29 @@
|
||||
WHERE MH.PROJECT_OBJID = PM.OBJID::VARCHAR
|
||||
AND MH.STATUS = 'Y'
|
||||
ORDER BY COALESCE(MH.EDIT_DATE, MH.REGDATE) DESC
|
||||
LIMIT 1) AS MBOM_REGDATE
|
||||
LIMIT 1) AS MBOM_REGDATE,
|
||||
-- M-BOM 작성자: 새 MBOM_HEADER 테이블에서 조회
|
||||
(SELECT USER_NAME(COALESCE(MH.EDITER, MH.WRITER))
|
||||
FROM MBOM_HEADER MH
|
||||
WHERE MH.PROJECT_OBJID = PM.OBJID::VARCHAR
|
||||
AND MH.STATUS = 'Y'
|
||||
ORDER BY COALESCE(MH.EDITER, MH.WRITER) DESC
|
||||
LIMIT 1) AS MBOM_EDITOR,
|
||||
-- M-BOM 히스토리 카운트 (버전, 0이면 NULL)
|
||||
NULLIF(
|
||||
(
|
||||
SELECT COUNT(1)::INTEGER
|
||||
FROM MBOM_HISTORY MHI
|
||||
WHERE MHI.MBOM_HEADER_OBJID = (
|
||||
SELECT MH.OBJID::VARCHAR
|
||||
FROM MBOM_HEADER MH
|
||||
WHERE MH.PROJECT_OBJID = PM.OBJID::VARCHAR
|
||||
AND MH.STATUS = 'Y'
|
||||
ORDER BY MH.REGDATE DESC
|
||||
LIMIT 1
|
||||
)
|
||||
), 0
|
||||
) AS MBOM_VERSION
|
||||
FROM
|
||||
PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON PM.CONTRACT_OBJID = CM.OBJID
|
||||
|
||||
@@ -3615,9 +3615,9 @@ ORDER BY V.PATH2
|
||||
SRM.STATUS,
|
||||
CASE
|
||||
WHEN A.APPR_STATUS IS NOT NULL THEN A.APPR_STATUS
|
||||
WHEN SRM.STATUS = 'create' THEN '미결재'
|
||||
WHEN SRM.STATUS = 'approvalComplete' THEN '결재완료'
|
||||
WHEN SRM.STATUS = 'reject' THEN '반려'
|
||||
WHEN SRM.STATUS = 'create' THEN '작성중'
|
||||
-- WHEN SRM.STATUS = 'approvalComplete' THEN '결재완료'
|
||||
-- WHEN SRM.STATUS = 'reject' THEN '반려'
|
||||
ELSE ''
|
||||
END AS STATUS_TITLE,
|
||||
SRM.WRITER,
|
||||
|
||||
Reference in New Issue
Block a user