구매관리 수정~
This commit is contained in:
@@ -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)">
|
||||
|
||||
Reference in New Issue
Block a user