구매관리 수정~

This commit is contained in:
2025-12-01 14:15:40 +09:00
parent 6ec2465099
commit d640fe3ade
5 changed files with 172 additions and 76 deletions

View File

@@ -72,10 +72,10 @@ $(document).ready(function(){
fn_formPopUp(objId, "copy");
}
});
$("#project_no").change(function(){
//$("#project_no").change(function(){
//fnc_productUPGNEWList(this.value,"","upg_no", "");
fn_UnitCodeList(this.value, "unit_code", "");
});
// fn_UnitCodeList(this.value, "unit_code", "");
//});
//결재상신
$("#btnApproval").click(function(){
@@ -324,9 +324,12 @@ var columns = [
{headerHozAlign:'center', hozAlign:'left', widthGrow:1.5, title:'품번', field:'PART_NO'},
{headerHozAlign:'center', hozAlign:'left', widthGrow:2, title:'품명', field:'PART_NAME'},
{headerHozAlign:'center', hozAlign:'left', widthGrow:1.5, title:'공급업체', field:'PARTNER_NAME'},
{headerHozAlign:'center', hozAlign:'right', widthGrow:1.2, title:'총액', field:'TOTAL_PRICE_ALL',
{headerHozAlign:'center', hozAlign:'right', widthGrow:1.2, title:'총액', field:'TOTAL_SUPPLY_PRICE',
formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false}
},
// {headerHozAlign:'center', hozAlign:'right', widthGrow:1.2, title:'총액', field:'TOTAL_PRICE_ALL',
// formatter:"money", formatterParams:{thousand:",", symbolAfter:"p", precision:false}
// },
{headerHozAlign:'center', hozAlign:'center', widthGrow:1, title:'메일발송', field:'MAIL_SEND_YN'},
{headerHozAlign:'center', hozAlign:'center', widthGrow:1, title:'발주일', field:'REGDATE'}
];
@@ -749,11 +752,11 @@ function col_custom_fmt_un(cellvalue, options, cell) {
<td><label for="">프로젝트번호</label></td>
<td><select name="project_no" id="project_no" class="select2" autocomplete="off" style="width:190px;" multiple="multiple"><option value="">선택</option>${code_map.project_no}</select></td>
<td><label for="unit_code">유닛명</label></td>
<!-- <td><label for="unit_code">유닛명</label></td>
<td>
<select name="unit_code" id="unit_code" style="" class="select2" autocomplete="off" type="select" reqTitle="유닛명">
</select>
</td>
</td> -->
<td><label for="">발주No.</label></td>
<td><input type="text" name="purchase_order_no" id="purchase_order_no" autocomplete="off" value="${param.purchase_order_no}" style=""/></td>

View File

@@ -247,7 +247,7 @@ function _fnc_datepick(){
<td>
<select name="SEARCH_STATUS" id="SEARCH_STATUS" class="select2" style="width:130px;">
<option value="">전체</option>
<option value="create">미결재</option>
<option value="create">작성중</option>
<option value="inProcess">결재중</option>
<option value="approvalComplete">결재완료</option>
<option value="reject">반려</option>
@@ -255,8 +255,8 @@ function _fnc_datepick(){
</td>
<td class="align_r"><label>작성일</label></td>
<td>
<input type="text" name="regdate_start" id="regdate_start" style="width:90px;" autocomplete="off" value="${param.regdate_start}" class="date_icon">~
<input type="text" name="regdate_end" id="regdate_end" style="width:90px;" autocomplete="off" value="${param.regdate_end}" class="date_icon">
<input type="text" name="regdate_start" id="regdate_start" style="width:110px;" autocomplete="off" value="${param.regdate_start}" class="date_icon">~
<input type="text" name="regdate_end" id="regdate_end" style="width:110px;" autocomplete="off" value="${param.regdate_end}" class="date_icon">
</td>
</tr>
</tbody>

View File

@@ -324,12 +324,12 @@ function fn_initGrid() {
title: '표면처리',
field: 'SURFACE_TREATMENT'
},
// 14. 공급업체
// 14. 메이커
{
headerHozAlign: 'center',
hozAlign: 'left',
width: 150,
title: '공급업체',
title: '메이커',
field: 'VENDOR'
},
// 15. 범주 이름

View File

@@ -164,7 +164,9 @@ var columns = [
{title:'PURCHASE_ORDER_MASTER_OBJID', field:'PURCHASE_ORDER_MASTER_OBJID' ,visible: false},
{title:'APPROVAL_OBJID' , field:'APPROVAL_OBJID' ,visible:false},
{title:'ROUTE_OBJID' , field:'ROUTE_OBJID' ,visible:false},
{title:'MBOM_HEADER_OBJID' , field:'MBOM_HEADER_OBJID' ,visible:false}
{title:'MBOM_HEADER_OBJID' , field:'MBOM_HEADER_OBJID' ,visible:false},
{title:'DOC_TYPE' , field:'DOC_TYPE' ,visible:false},
{title:'HAS_PURCHASE_REQUEST' , field:'HAS_PURCHASE_REQUEST' ,visible:false}
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청번호", field :"REQUEST_MNG_NO" , widthGrow:1.3,
formatter: fnc_createGridAnchorTag,
@@ -173,31 +175,42 @@ var columns = [
}
}
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매유형", field :"PURCHASE_TYPE_NAME" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트번호", field :"PROJECT_NUMBER" , widthGrow:1.4 }
,{headerHozAlign : 'center', hozAlign : 'left' , title : "프로젝트번호", field :"PROJECT_NUMBER" , widthGrow:1.4,
formatter: fnc_createGridAnchorTag,
cellClick: function(e, cell){
var orderNo = fnc_checkNull(cell.getData().PROJECT_NUMBER);
// 프로젝트 번호가 없으면 팝업 열지 않음
if(orderNo == '' || orderNo == null) {
return;
}
// 프로젝트 번호 클릭 시: 결재 정보 조회 모드 (saleNo에 "detail" 전달)
fn_openSaleRegPopup(orderNo, "detail");
}
}
,{headerHozAlign : 'center', hozAlign : 'center', title : "주문유형", field :"ORDER_TYPE_NAME" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "제품구분", field :"PRODUCT_NAME_FULL" , widthGrow:1.1}
,{headerHozAlign : 'center', hozAlign : 'left' , title : "고객사", field :"CUSTOMER_NAME" , widthGrow:1.5 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "유/무상", field :"PAID_TYPE_NAME" , widthGrow:0.9 }
,{headerHozAlign : 'center', hozAlign : 'left', title : "품번", field :"PART_NO" , widthGrow:1.4}
,{headerHozAlign : 'center', hozAlign : 'left' , title : "품명", field :"PART_NAME" , widthGrow:1.8 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매요청서", field :"REQUEST_MNG_NO" , widthGrow:1.1,
,{headerHozAlign : 'center', hozAlign : 'center', title : "구매요청서", field :"HAS_PURCHASE_REQUEST" , widthGrow:1.1,
formatter: function(cell, formatterParams, onRendered){
// 구매요청서 작성 여부: PART_NO가 있으면 품목이 저장된 것 (구매요청서 작성됨)
// 구매요청서 작성 여부: HAS_PURCHASE_REQUEST가 'Y'이면 구매요청서 작성됨
var data = cell.getData();
var partNo = fnc_checkNull(data.PART_NO);
var iconClass = (partNo != '' && partNo != null) ? 'file_icon' : 'file_empty_icon';
var hasPurchaseRequest = fnc_checkNull(data.HAS_PURCHASE_REQUEST);
var iconClass = (hasPurchaseRequest == 'Y') ? 'file_icon' : 'file_empty_icon';
return '<a href="#" class="File ' + iconClass + '" style="width:20px; height:20px; display:inline-block;"></a>';
},
cellClick : function(e, cell) {
var data = cell.getData();
var partNo = fnc_checkNull(data.PART_NO);
var hasPurchaseRequest = fnc_checkNull(data.HAS_PURCHASE_REQUEST);
// 구매요청서가 작성된 경우(파란색 아이콘)만 팝업 열기
if(partNo != '' && partNo != null) {
if(hasPurchaseRequest == 'Y') {
fn_openSalesRequestFormPopUp(data.OBJID);
}
}
}
}
,{headerHozAlign : 'center', hozAlign : 'center', title : "요청인", field :"REQUEST_USER_NAME" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "입고요청일", field :"DELIVERY_REQUEST_DATE" , widthGrow:1.1 }
,{headerHozAlign : 'center', hozAlign : 'center', title : "작성일", field :"REGDATE_TITLE" , widthGrow:1.1 }
@@ -416,6 +429,14 @@ function fn_salesMngBOMOpenPopUp(bom_report_objid){
window.open("/salesMng/salesRequestDetailPopUp.do?"+param, "_strListPopup", "width=1200, height=800, toolbar=no, status=no, menubar=no, location=no, scrollbars=yes, resizable=yes");
}
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);
}
function _fnc_datepick(){
var $dateinput = $("input.date_icon");
for(var i=0; i<$dateinput.length; i++){
@@ -640,14 +661,14 @@ function fn_executeCreateProposal(salesRequestObjid, targetParts) {
<label for="" class="">품번</label>
</td>
<td>
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" value="${param.SEARCH_PART_NO}" style="width:150px;"/>
<input type="text" name="SEARCH_PART_NO" id="SEARCH_PART_NO" value="${param.SEARCH_PART_NO}" style="width:200px;"/>
</td>
<%-- 품명 활성화 --%>
<td class="align_r">
<label for="" class="">품명</label>
</td>
<td>
<input type="text" name="SEARCH_PART_NAME" id="SEARCH_PART_NAME" value="${param.SEARCH_PART_NAME}" style="width:150px;"/>
<input type="text" name="SEARCH_PART_NAME" id="SEARCH_PART_NAME" value="${param.SEARCH_PART_NAME}" style="width:200px;"/>
</td>
<%-- 상태 주석처리
<td class="align_r">
@@ -662,11 +683,11 @@ function fn_executeCreateProposal(salesRequestObjid, targetParts) {
</select>
</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> --%>
<%-- <td><select name="act_status" id="act_status" class="select2" autocomplete="off" style="width:170px;"><option value="">선택</option>${code_map.act_status}</select></td> --%>
<%-- 접수자 주석처리
<td><label for="">접수자</label></td>
<td><select name="receipt_writer" id="receipt_writer" class="select2" autocomplete="off" style="width:120px;"><option value="">선택</option>${code_map.receipt_writer}</select></td>
<td><select name="receipt_writer" id="receipt_writer" class="select2" autocomplete="off" style="width:170px;"><option value="">선택</option>${code_map.receipt_writer}</select></td>
<td class="align_r"><label>접수일</label></td>
<td>
@@ -677,8 +698,8 @@ function fn_executeCreateProposal(salesRequestObjid, targetParts) {
<%-- 작성일 활성화 --%>
<td class="align_r"><label>작성일</label></td>
<td>
<input type="text" name="regdate_start" id="regdate_start" style="width:90px;" autocomplete="off" value="${param.regdate_start}" class="date_icon">~
<input type="text" name="regdate_end" id="regdate_end" style="width:90px;" autocomplete="off" value="${param.regdate_end}" class="date_icon">
<input type="text" name="regdate_start" id="regdate_start" style="width:120px;" autocomplete="off" value="${param.regdate_start}" class="date_icon">~
<input type="text" name="regdate_end" id="regdate_end" style="width:120px;" autocomplete="off" value="${param.regdate_end}" class="date_icon">
</td>
</tr>
</tbody>

View File

@@ -961,17 +961,31 @@ VALUES
SRM.REQUEST_CD,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_CD) AS REQUEST_CD_NAME,
-- 구매요청서 작성 여부 (SALES_REQUEST_PART에 데이터가 있으면 'Y')
(SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID) AS HAS_PURCHASE_REQUEST,
-- 문서유형 (PURCHASE_REQUEST: 구매요청서, PROPOSAL: 품의서)
SRM.DOC_TYPE,
-- 구매요청서 작성 여부 (SALES_REQUEST_PART에 DOC_TYPE이 PURCHASE_REQUEST인 데이터가 있으면 'Y')
(SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END
FROM SALES_REQUEST_PART
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
AND (DOC_TYPE = 'PURCHASE_REQUEST' OR DOC_TYPE IS NULL)) AS HAS_PURCHASE_REQUEST,
-- M-BOM 관련 컬럼
SRM.MBOM_HEADER_OBJID,
-- 추가된 컬럼들
SRM.PURCHASE_TYPE,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME,
SRM.ORDER_TYPE,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.ORDER_TYPE) AS ORDER_TYPE_NAME,
CODE_NAME(SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME,
-- 주문유형: 프로젝트 정보(CATEGORY_CD) 우선, 없으면 SALES_REQUEST_MASTER 값
COALESCE(
(SELECT PM.CATEGORY_CD FROM PROJECT_MGMT PM WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
SRM.ORDER_TYPE
) AS ORDER_TYPE,
CODE_NAME(COALESCE(
(SELECT PM.CATEGORY_CD FROM PROJECT_MGMT PM WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
SRM.ORDER_TYPE
)) AS ORDER_TYPE_NAME,
-- 제품구분: 프로젝트 정보 우선, 없으면 SALES_REQUEST_MASTER 값
COALESCE(
@@ -1010,28 +1024,51 @@ VALUES
) AS PAID_TYPE_NAME,
-- 품번/품명 ("외 N건" 형태로 표시)
(
SELECT
CASE
WHEN COUNT(*) > 1 THEN
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
ELSE
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
END
FROM SALES_REQUEST_PART
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
) AS PART_NO,
(
SELECT
CASE
WHEN COUNT(*) > 1 THEN
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
ELSE
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
END
FROM SALES_REQUEST_PART
WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID
) AS PART_NAME,
-- M-BOM이 있으면 MBOM_DETAIL에서, 없으면 SALES_REQUEST_PART에서 조회
CASE
WHEN SRM.MBOM_HEADER_OBJID IS NOT NULL AND SRM.MBOM_HEADER_OBJID != '' THEN
(SELECT
CASE
WHEN COUNT(*) > 1 THEN
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM MBOM_DETAIL WHERE MBOM_HEADER_OBJID = SRM.MBOM_HEADER_OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
WHEN COUNT(*) = 1 THEN
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM MBOM_DETAIL WHERE MBOM_HEADER_OBJID = SRM.MBOM_HEADER_OBJID ORDER BY REGDATE LIMIT 1))
ELSE NULL
END
FROM MBOM_DETAIL WHERE MBOM_HEADER_OBJID = SRM.MBOM_HEADER_OBJID)
ELSE
(SELECT
CASE
WHEN COUNT(*) > 1 THEN
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
WHEN COUNT(*) = 1 THEN
(SELECT PM.PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
ELSE NULL
END
FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID)
END AS PART_NO,
CASE
WHEN SRM.MBOM_HEADER_OBJID IS NOT NULL AND SRM.MBOM_HEADER_OBJID != '' THEN
(SELECT
CASE
WHEN COUNT(*) > 1 THEN
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM MBOM_DETAIL WHERE MBOM_HEADER_OBJID = SRM.MBOM_HEADER_OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
WHEN COUNT(*) = 1 THEN
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM MBOM_DETAIL WHERE MBOM_HEADER_OBJID = SRM.MBOM_HEADER_OBJID ORDER BY REGDATE LIMIT 1))
ELSE NULL
END
FROM MBOM_DETAIL WHERE MBOM_HEADER_OBJID = SRM.MBOM_HEADER_OBJID)
ELSE
(SELECT
CASE
WHEN COUNT(*) > 1 THEN
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)) || ' 외 ' || (COUNT(*) - 1) || '건'
WHEN COUNT(*) = 1 THEN
(SELECT PM.PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = (SELECT PART_OBJID FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1))
ELSE NULL
END
FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = SRM.OBJID)
END AS PART_NAME,
SRM.PROJECT_NO,
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
@@ -1190,26 +1227,40 @@ VALUES
</if>
<if test="SEARCH_PART_NO != null and !''.equals(SEARCH_PART_NO)">
AND SRM.OBJID IN (
SELECT
SRP.SALES_REQUEST_MASTER_OBJID
FROM
SALES_REQUEST_PART SRP
LEFT OUTER JOIN PART_MNG PM
ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE PM.PART_NO LIKE '%${SEARCH_PART_NO}%'
)
AND (
-- SALES_REQUEST_PART에서 검색
SRM.OBJID IN (
SELECT SRP.SALES_REQUEST_MASTER_OBJID
FROM SALES_REQUEST_PART SRP
LEFT OUTER JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE PM.PART_NO LIKE UPPER('%${SEARCH_PART_NO}%')
)
-- MBOM_DETAIL에서 검색 (M-BOM이 있는 경우)
OR SRM.MBOM_HEADER_OBJID IN (
SELECT MD.MBOM_HEADER_OBJID
FROM MBOM_DETAIL MD
LEFT OUTER JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE PM.PART_NO LIKE UPPER('%${SEARCH_PART_NO}%')
)
)
</if>
<if test="SEARCH_PART_NAME != null and !''.equals(SEARCH_PART_NAME)">
AND SRM.OBJID IN (
SELECT
SRP.SALES_REQUEST_MASTER_OBJID
FROM
SALES_REQUEST_PART SRP
LEFT OUTER JOIN PART_MNG PM
ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE PM.PART_NAME LIKE '%${SEARCH_PART_NAME}%'
)
AND (
-- SALES_REQUEST_PART에서 검색
SRM.OBJID IN (
SELECT SRP.SALES_REQUEST_MASTER_OBJID
FROM SALES_REQUEST_PART SRP
LEFT OUTER JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE PM.PART_NAME LIKE UPPER('%${SEARCH_PART_NAME}%')
)
-- MBOM_DETAIL에서 검색 (M-BOM이 있는 경우)
OR SRM.MBOM_HEADER_OBJID IN (
SELECT MD.MBOM_HEADER_OBJID
FROM MBOM_DETAIL MD
LEFT OUTER JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE PM.PART_NAME LIKE UPPER('%${SEARCH_PART_NAME}%')
)
)
</if>
<if test="SEARCH_STATUS != null and !''.equals(SEARCH_STATUS)">
@@ -3567,10 +3618,17 @@ ORDER BY V.PATH2
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
SRM.PURCHASE_TYPE,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME,
SRM.ORDER_TYPE,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.ORDER_TYPE) AS ORDER_TYPE_NAME,
-- 주문유형: 프로젝트 정보(CATEGORY_CD) 우선, 없으면 SALES_REQUEST_MASTER 값
COALESCE(
(SELECT PM.CATEGORY_CD FROM PROJECT_MGMT PM WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
SRM.ORDER_TYPE
) AS ORDER_TYPE,
CODE_NAME(COALESCE(
(SELECT PM.CATEGORY_CD FROM PROJECT_MGMT PM WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
SRM.ORDER_TYPE
)) AS ORDER_TYPE_NAME,
SRM.PRODUCT_NAME,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PRODUCT_NAME) AS PRODUCT_NAME_TITLE,
CODE_NAME(SRM.PRODUCT_NAME) AS PRODUCT_NAME_TITLE,
-- 품번/품명 ("외 N건" 형태로 표시) - 품의서는 항상 SALES_REQUEST_PART에 데이터가 있음
(
SELECT
@@ -3612,7 +3670,13 @@ ORDER BY V.PATH2
-- (SELECT CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID AND MAIL_SENT = 'Y') AS MAIL_SENT,
-- 발주일 (일단 주석처리)
-- (SELECT TO_CHAR(MAX(ORDER_DATE), 'YYYY-MM-DD') FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID) AS ORDER_DATE,
SRM.STATUS,
-- 상태: 결재 테이블 상태 우선, 없으면 SRM.STATUS
CASE
WHEN A.ROUTE_STATUS = 'complete' THEN 'approvalComplete'
WHEN A.ROUTE_STATUS = 'inProcess' THEN 'inProcess'
WHEN A.ROUTE_STATUS = 'reject' THEN 'reject'
ELSE SRM.STATUS
END AS STATUS,
CASE
WHEN A.APPR_STATUS IS NOT NULL THEN A.APPR_STATUS
WHEN SRM.STATUS = 'create' THEN '작성중'
@@ -3631,6 +3695,7 @@ ORDER BY V.PATH2
LEFT OUTER JOIN (
SELECT
B.OBJID AS ROUTE_OBJID,
B.STATUS AS ROUTE_STATUS,
CASE B.STATUS
WHEN 'inProcess' THEN '결재중'
WHEN 'complete' THEN '결재완료'
@@ -3675,7 +3740,14 @@ ORDER BY V.PATH2
</if>
<if test="SEARCH_STATUS != null and !''.equals(SEARCH_STATUS)">
AND SRM.STATUS = #{SEARCH_STATUS}
AND (
CASE
WHEN A.ROUTE_STATUS = 'complete' THEN 'approvalComplete'
WHEN A.ROUTE_STATUS = 'inProcess' THEN 'inProcess'
WHEN A.ROUTE_STATUS = 'reject' THEN 'reject'
ELSE SRM.STATUS
END
) = #{SEARCH_STATUS}
</if>
<if test="regdate_start != null and !''.equals(regdate_start)">