오늘치 커밋
This commit is contained in:
@@ -8042,6 +8042,61 @@ FROM (
|
||||
DELETE FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID = #{objid}
|
||||
</delete>
|
||||
|
||||
<!-- 일반거래처 담당자 목록 조회 (SUPPLY_OBJID를 공용으로 사용) -->
|
||||
<select id="getClientChargerList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM,
|
||||
OBJID,
|
||||
CHARGER_TYPE,
|
||||
SUPPLY_OBJID,
|
||||
CHARGER_NAME,
|
||||
PHONE,
|
||||
TEL,
|
||||
FAX,
|
||||
EMAIL,
|
||||
WRITER,
|
||||
REGDATE,
|
||||
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
|
||||
FROM
|
||||
SUPPLY_CHARGER_MNG
|
||||
WHERE SUPPLY_OBJID::VARCHAR = #{client_objid}::VARCHAR
|
||||
</select>
|
||||
|
||||
<!-- 일반거래처 담당자 저장 (SUPPLY_OBJID를 공용으로 사용) -->
|
||||
<insert id="mergeClientCharger" parameterType="map">
|
||||
INSERT INTO SUPPLY_CHARGER_MNG
|
||||
(
|
||||
OBJID,
|
||||
CHARGER_TYPE,
|
||||
SUPPLY_OBJID,
|
||||
CHARGER_NAME,
|
||||
PHONE,
|
||||
TEL,
|
||||
FAX,
|
||||
EMAIL,
|
||||
WRITER,
|
||||
REGDATE
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{OBJID}::INTEGER,
|
||||
#{CHARGER_TYPE},
|
||||
#{CLIENT_OBJID},
|
||||
#{CHARGER_NAME},
|
||||
#{PHONE},
|
||||
#{TEL},
|
||||
#{FAX},
|
||||
#{EMAIL},
|
||||
#{WRITER},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 일반거래처 담당자 삭제 (SUPPLY_OBJID를 공용으로 사용) -->
|
||||
<delete id="initClientCharger" parameterType="map">
|
||||
DELETE FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = #{objid}::VARCHAR
|
||||
</delete>
|
||||
|
||||
<update id="deletesupplyMngInfo" parameterType="map">
|
||||
DELETE FROM ADMIN_SUPPLY_MNG WHERE OBJID = #{objId}::NUMERIC
|
||||
</update>
|
||||
@@ -8864,8 +8919,8 @@ SELECT
|
||||
SELECT *
|
||||
FROM CLIENT_MNG
|
||||
WHERE 1=1
|
||||
<if test="OBJID != null and OBJID != ''">
|
||||
AND OBJID != #{OBJID}::numeric
|
||||
<if test="objid != null and objid != ''">
|
||||
AND OBJID != #{objid}::numeric
|
||||
</if>
|
||||
<if test="CLIENT_CD != null and CLIENT_CD != ''">
|
||||
AND TRIM(UPPER(CLIENT_CD)) = TRIM(UPPER(#{CLIENT_CD}))
|
||||
@@ -8932,8 +8987,8 @@ SELECT
|
||||
#{BIZCON_FG}, #{BIZCON_NM}, #{SHIP_TP}, #{SHIP_NM},
|
||||
#{PLAN_DAY_TYPE}, #{PLAN_DAY}, #{PURPOSE_TYPE}, #{FOR_YN},
|
||||
#{CHECK_DATA}, #{CHECK_STATE},
|
||||
CASE WHEN #{CHECK_ORDER} = '' THEN NULL ELSE #{CHECK_ORDER}::numeric END,
|
||||
#{FIXED_ORDER},
|
||||
CASE WHEN #{CHECK_ORDER} = '' OR #{CHECK_ORDER} !~ '^[0-9]+$' THEN NULL ELSE #{CHECK_ORDER}::numeric END,
|
||||
CASE WHEN #{FIXED_ORDER} = '' OR #{FIXED_ORDER} !~ '^[0-9]+$' THEN NULL ELSE #{FIXED_ORDER}::numeric END,
|
||||
#{INSERT_ID}, #{INSERT_IP},
|
||||
CASE WHEN #{INSERT_DT} = '' THEN NOW() ELSE COALESCE(#{INSERT_DT}::timestamp, NOW()) END,
|
||||
#{MODIFY_ID}, #{MODIFY_IP},
|
||||
@@ -9048,8 +9103,8 @@ SELECT
|
||||
FOR_YN = #{FOR_YN},
|
||||
CHECK_DATA = #{CHECK_DATA},
|
||||
CHECK_STATE = #{CHECK_STATE},
|
||||
CHECK_ORDER = CASE WHEN #{CHECK_ORDER} = '' THEN NULL ELSE #{CHECK_ORDER}::numeric END,
|
||||
FIXED_ORDER = #{FIXED_ORDER},
|
||||
CHECK_ORDER = CASE WHEN #{CHECK_ORDER} = '' OR #{CHECK_ORDER} !~ '^[0-9]+$' THEN NULL ELSE #{CHECK_ORDER}::numeric END,
|
||||
FIXED_ORDER = CASE WHEN #{FIXED_ORDER} = '' OR #{FIXED_ORDER} !~ '^[0-9]+$' THEN NULL ELSE #{FIXED_ORDER}::numeric END,
|
||||
MODIFY_ID = #{MODIFY_ID},
|
||||
MODIFY_IP = #{MODIFY_IP},
|
||||
MODIFY_DT = NOW()
|
||||
@@ -9325,5 +9380,58 @@ SELECT
|
||||
) RESULT
|
||||
</select> -->
|
||||
|
||||
<!-- 소재 관리 쿼리 -->
|
||||
<!-- 소재 목록 조회 (전체) -->
|
||||
<select id="getMaterialList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID,
|
||||
MATERIAL_CODE,
|
||||
MATERIAL_NAME,
|
||||
STATUS
|
||||
FROM MATERIAL_MNG
|
||||
WHERE STATUS = 'ACTIVE'
|
||||
ORDER BY MATERIAL_CODE
|
||||
</select>
|
||||
|
||||
<!-- 특정 소재의 사이즈 목록 조회 -->
|
||||
<select id="getMaterialSizes" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID,
|
||||
MATERIAL_CODE,
|
||||
SIZE_SPEC,
|
||||
MATERIAL_PART_NO
|
||||
FROM MATERIAL_MNG
|
||||
WHERE MATERIAL_CODE = #{materialCode}
|
||||
AND STATUS = 'ACTIVE'
|
||||
ORDER BY SIZE_SPEC
|
||||
</select>
|
||||
|
||||
<!-- 소재 코드 + 사이즈로 소재품번 조회 -->
|
||||
<select id="getMaterialPartNo" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID,
|
||||
MATERIAL_CODE,
|
||||
MATERIAL_NAME,
|
||||
SIZE_SPEC,
|
||||
MATERIAL_PART_NO
|
||||
FROM MATERIAL_MNG
|
||||
WHERE MATERIAL_CODE = #{materialCode}
|
||||
AND SIZE_SPEC = #{sizeSpec}
|
||||
AND STATUS = 'ACTIVE'
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 공급업체 담당자 목록 조회 (발주서 메일 발송용) -->
|
||||
<select id="getSupplyManagerList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
SCM.OBJID,
|
||||
SCM.CHARGER_NAME AS NAME,
|
||||
SCM.EMAIL,
|
||||
SCM.PHONE,
|
||||
SCM.TEL
|
||||
FROM SUPPLY_CHARGER_MNG SCM
|
||||
WHERE SCM.SUPPLY_OBJID = #{SUPPLY_OBJID}
|
||||
ORDER BY SCM.REGDATE DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -1526,29 +1526,57 @@
|
||||
</select> -->
|
||||
|
||||
<select id="getsupplyselect" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID::VARCHAR AS CODE
|
||||
,SUPPLY_NAME AS NAME
|
||||
,SUPPLY_CODE AS CODE_ID
|
||||
,SUPPLY_NAME AS CODE_NAME
|
||||
,SUPPLY_CODE AS CODE_CD
|
||||
,REG_NO
|
||||
,CHARGE_USER_NAME
|
||||
,SUPPLY_TEL_NO
|
||||
,SUPPLY_FAX_NO
|
||||
,PAYMENT_METHOD
|
||||
,STATUS AS STATUS
|
||||
,'' AS ID
|
||||
,'' AS EXT_VAL
|
||||
FROM SUPPLY_MNG
|
||||
WHERE 1=1
|
||||
AND SUPPLY_CODE != '0000269'
|
||||
<if test="SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)">
|
||||
AND OBJID::VARCHAR = #{SUPPLY_OBJID}::VARCHAR
|
||||
</if>
|
||||
<if test="CHARGER_TYPE != null and !''.equals(CHARGER_TYPE)">
|
||||
AND CHARGER_TYPE = #{CHARGER_TYPE}
|
||||
</if>
|
||||
SELECT * FROM (
|
||||
<!-- 기존 SUPPLY_MNG 데이터 -->
|
||||
SELECT
|
||||
OBJID::VARCHAR AS CODE
|
||||
,SUPPLY_NAME AS NAME
|
||||
,SUPPLY_CODE AS CODE_ID
|
||||
,SUPPLY_NAME AS CODE_NAME
|
||||
,SUPPLY_CODE AS CODE_CD
|
||||
,REG_NO
|
||||
,CHARGE_USER_NAME
|
||||
,SUPPLY_TEL_NO
|
||||
,SUPPLY_FAX_NO
|
||||
,PAYMENT_METHOD
|
||||
,STATUS AS STATUS
|
||||
,'' AS ID
|
||||
,'' AS EXT_VAL
|
||||
,'SUPPLY' AS DATA_SOURCE
|
||||
FROM SUPPLY_MNG
|
||||
WHERE 1=1
|
||||
AND SUPPLY_CODE != '0000269'
|
||||
<if test="SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)">
|
||||
AND OBJID::VARCHAR = #{SUPPLY_OBJID}::VARCHAR
|
||||
</if>
|
||||
<if test="CHARGER_TYPE != null and !''.equals(CHARGER_TYPE)">
|
||||
AND CHARGER_TYPE = #{CHARGER_TYPE}
|
||||
</if>
|
||||
|
||||
UNION ALL
|
||||
|
||||
<!-- CLIENT_MNG (일반거래처) 데이터 -->
|
||||
SELECT
|
||||
'C_' || OBJID::VARCHAR AS CODE
|
||||
,CLIENT_NM AS NAME
|
||||
,CLIENT_CD AS CODE_ID
|
||||
,CLIENT_NM AS CODE_NAME
|
||||
,CLIENT_CD AS CODE_CD
|
||||
,BUS_REG_NO AS REG_NO
|
||||
,CEO_NM AS CHARGE_USER_NAME
|
||||
,TEL_NO AS SUPPLY_TEL_NO
|
||||
,FAX_NO AS SUPPLY_FAX_NO
|
||||
,PAYMENT_TERM AS PAYMENT_METHOD
|
||||
,USE_YN AS STATUS
|
||||
,'' AS ID
|
||||
,'' AS EXT_VAL
|
||||
,'CLIENT' AS DATA_SOURCE
|
||||
FROM CLIENT_MNG
|
||||
WHERE 1=1
|
||||
<if test="SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)">
|
||||
AND ('C_' || OBJID::VARCHAR) = #{SUPPLY_OBJID}::VARCHAR
|
||||
</if>
|
||||
) AS COMBINED
|
||||
ORDER BY NAME
|
||||
</select>
|
||||
<select id="getsupplyselect2" parameterType="map" resultType="map">
|
||||
@@ -2533,7 +2561,7 @@ SELECT option_objid::VARCHAR AS CODE
|
||||
<select id="getRevNoselect" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
T.OBJID::varchar AS CODE
|
||||
,COALESCE(T.REVISION, T.REV, '1.0') AS NAME
|
||||
,COALESCE(T.REVISION, '1.0') AS NAME
|
||||
,T1.PRODUCT_CODE AS CODE_CD
|
||||
,'' AS STATUS
|
||||
,T.spec_name AS ID
|
||||
@@ -2541,7 +2569,7 @@ SELECT option_objid::VARCHAR AS CODE
|
||||
FROM PART_BOM_REPORT T,PRODUCT_MGMT T1
|
||||
WHERE T.PRODUCT_MGMT_OBJID = T1.OBJID
|
||||
AND T1.OBJID = #{code}::numeric
|
||||
ORDER BY COALESCE(T.REVISION, T.REV, '1.0')
|
||||
ORDER BY COALESCE(T.REVISION, '1.0')
|
||||
|
||||
</select>
|
||||
|
||||
@@ -3206,31 +3234,63 @@ ORDER BY COALESCE(T.REVISION, T.REV, '1.0')
|
||||
AND MASTER_OBJID::varchar = #{masterObjid}
|
||||
</select>
|
||||
|
||||
<!-- 고객사 정보 조회 -->
|
||||
<!-- 고객사 정보 조회 (공급업체 + 일반거래처 통합) -->
|
||||
<select id="getSupplyInfo" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID,
|
||||
SUPPLY_CODE,
|
||||
SUPPLY_NAME,
|
||||
REG_NO,
|
||||
SUPPLY_ADDRESS,
|
||||
SUPPLY_BUSNAME,
|
||||
SUPPLY_STOCKNAME,
|
||||
SUPPLY_TEL_NO,
|
||||
SUPPLY_FAX_NO,
|
||||
CHARGE_USER_NAME,
|
||||
PAYMENT_METHOD,
|
||||
MANAGER1_NAME,
|
||||
MANAGER1_EMAIL,
|
||||
MANAGER2_NAME,
|
||||
MANAGER2_EMAIL,
|
||||
MANAGER3_NAME,
|
||||
MANAGER3_EMAIL,
|
||||
MANAGER4_NAME,
|
||||
MANAGER4_EMAIL,
|
||||
MANAGER5_NAME,
|
||||
MANAGER5_EMAIL
|
||||
FROM SUPPLY_MNG
|
||||
WHERE OBJID = #{objId}::numeric
|
||||
<choose>
|
||||
<!-- 일반거래처인 경우 (C_로 시작) -->
|
||||
<when test="objId != null and objId.startsWith('C_')">
|
||||
SELECT
|
||||
C.OBJID,
|
||||
C.CLIENT_CD AS SUPPLY_CODE,
|
||||
C.CLIENT_NM AS SUPPLY_NAME,
|
||||
C.BUS_REG_NO AS REG_NO,
|
||||
C.ADDR1 AS SUPPLY_ADDRESS,
|
||||
C.BUS_TYPE AS SUPPLY_BUSNAME,
|
||||
C.BUS_ITEM AS SUPPLY_STOCKNAME,
|
||||
C.TEL_NO AS SUPPLY_TEL_NO,
|
||||
C.FAX_NO AS SUPPLY_FAX_NO,
|
||||
C.CEO_NM AS CHARGE_USER_NAME,
|
||||
C.PAYMENT_TERM AS PAYMENT_METHOD,
|
||||
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 0) AS MANAGER1_NAME,
|
||||
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 0) AS MANAGER1_EMAIL,
|
||||
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 1) AS MANAGER2_NAME,
|
||||
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 1) AS MANAGER2_EMAIL,
|
||||
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 2) AS MANAGER3_NAME,
|
||||
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 2) AS MANAGER3_EMAIL,
|
||||
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 3) AS MANAGER4_NAME,
|
||||
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 3) AS MANAGER4_EMAIL,
|
||||
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 4) AS MANAGER5_NAME,
|
||||
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 4) AS MANAGER5_EMAIL
|
||||
FROM CLIENT_MNG C
|
||||
WHERE C.OBJID::VARCHAR = REPLACE(#{objId}, 'C_', '')
|
||||
</when>
|
||||
<!-- 공급업체인 경우 -->
|
||||
<otherwise>
|
||||
SELECT
|
||||
OBJID,
|
||||
SUPPLY_CODE,
|
||||
SUPPLY_NAME,
|
||||
REG_NO,
|
||||
SUPPLY_ADDRESS,
|
||||
SUPPLY_BUSNAME,
|
||||
SUPPLY_STOCKNAME,
|
||||
SUPPLY_TEL_NO,
|
||||
SUPPLY_FAX_NO,
|
||||
CHARGE_USER_NAME,
|
||||
PAYMENT_METHOD,
|
||||
MANAGER1_NAME,
|
||||
MANAGER1_EMAIL,
|
||||
MANAGER2_NAME,
|
||||
MANAGER2_EMAIL,
|
||||
MANAGER3_NAME,
|
||||
MANAGER3_EMAIL,
|
||||
MANAGER4_NAME,
|
||||
MANAGER4_EMAIL,
|
||||
MANAGER5_NAME,
|
||||
MANAGER5_EMAIL
|
||||
FROM SUPPLY_MNG
|
||||
WHERE OBJID = #{objId}::numeric
|
||||
</otherwise>
|
||||
</choose>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -32,7 +32,10 @@
|
||||
|
||||
POM.PARTNER_OBJID,
|
||||
(SELECT SUPPLY_CODE FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_CODE,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME,
|
||||
CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME,
|
||||
(
|
||||
SELECT
|
||||
SUM(ORDER_QTY::numeric)
|
||||
@@ -274,7 +277,10 @@
|
||||
|
||||
POM.PARTNER_OBJID,
|
||||
(SELECT SUPPLY_CODE FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_CODE,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME,
|
||||
CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME,
|
||||
(
|
||||
SELECT
|
||||
SUM(ORDER_QTY::numeric)
|
||||
@@ -578,8 +584,8 @@
|
||||
(
|
||||
#{OBJID},
|
||||
#{PO_CLIENT_ID},
|
||||
<!-- (SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||LPAD((COALESCE(MAX(SUBSTR(PURCHASE_ORDER_NO,9,11)),'0')::INTEGER+1)::TEXT,3,'0') FROM PURCHASE_ORDER_MASTER), -->
|
||||
(SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||(COALESCE(MAX(case when SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) = '' or PURCHASE_ORDER_NO is null then '0' else SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) end ::numeric ))::INTEGER+1)::TEXT FROM PURCHASE_ORDER_MASTER),
|
||||
<!-- 기존: PO-YYMM-순번, 신규: RPSYY-MMDD-순번 (예: RPS25-0926-01) -->
|
||||
(SELECT 'RPS'||TO_CHAR(NOW(),'YY')||'-'||TO_CHAR(NOW(),'MMDD')||'-'||LPAD((COALESCE(MAX(CASE WHEN PURCHASE_ORDER_NO LIKE 'RPS'||TO_CHAR(NOW(),'YY-MMDD')||'-%' THEN SPLIT_PART(PURCHASE_ORDER_NO, '-', 3) ELSE '0' END)::INTEGER, 0) + 1)::TEXT, 2, '0') FROM PURCHASE_ORDER_MASTER),
|
||||
#{CATEGORY_CD},
|
||||
#{PRODUCT_GROUP},
|
||||
#{PRODUCT},
|
||||
@@ -757,8 +763,8 @@
|
||||
(
|
||||
#{OBJID},
|
||||
#{PO_CLIENT_ID},
|
||||
(SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||(COALESCE(MAX(case when SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) = '' or PURCHASE_ORDER_NO is null then '0' else SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) end ::numeric ))::INTEGER+1)::TEXT FROM PURCHASE_ORDER_MASTER),
|
||||
<!-- (SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||LPAD((COALESCE(MAX(SUBSTR(PURCHASE_ORDER_NO,9,11)),'0')::INTEGER+1)::TEXT,3,'0') FROM PURCHASE_ORDER_MASTER), -->
|
||||
(SELECT 'RPS'||TO_CHAR(NOW(),'YY')||'-'||TO_CHAR(NOW(),'MMDD')||'-'||LPAD((COALESCE(MAX(CASE WHEN PURCHASE_ORDER_NO LIKE 'RPS'||TO_CHAR(NOW(),'YY-MMDD')||'-%' THEN SPLIT_PART(PURCHASE_ORDER_NO, '-', 3) ELSE '0' END)::INTEGER, 0) + 1)::TEXT, 2, '0') FROM PURCHASE_ORDER_MASTER),
|
||||
<!-- 기존: PO-YYMM-순번, 신규: RPSYY-MMDD-순번 (예: RPS25-0926-01) -->
|
||||
#{PARTNER_OBJID},
|
||||
#{DELIVERY_REQUEST_DATE},
|
||||
#{DELIVERY_PLACE},
|
||||
@@ -772,15 +778,15 @@
|
||||
#{SALES_MNG_USER_ID}
|
||||
,#{TITLE}
|
||||
,#{PURCHASE_DATE}
|
||||
,#{PROJECT_NO}::NUMERIC
|
||||
,NULLIF(#{PROJECT_NO}::TEXT, '')::NUMERIC
|
||||
,#{TYPE }
|
||||
,#{INSPECT_METHOD }
|
||||
,#{TOTAL_PRICE_TXT }
|
||||
,#{VAT_METHOD }
|
||||
,#{TOTAL_SUPPLY_UNIT_PRICE}
|
||||
,#{DISCOUNT_PRICE }
|
||||
,#{TOTAL_PRICE }
|
||||
,#{NEGO_RATE }
|
||||
,NULLIF(#{TOTAL_SUPPLY_UNIT_PRICE}::TEXT, '')::NUMERIC
|
||||
,NULLIF(#{DISCOUNT_PRICE}::TEXT, '')::NUMERIC
|
||||
,NULLIF(#{TOTAL_PRICE}::TEXT, '')::NUMERIC
|
||||
,NULLIF(#{NEGO_RATE}::TEXT, '')::NUMERIC
|
||||
,#{SUPPLY_BUS_NO }
|
||||
,#{SUPPLY_USER_NAME }
|
||||
,#{SUPPLY_USER_HP }
|
||||
@@ -807,7 +813,7 @@
|
||||
SALES_MNG_USER_ID = #{SALES_MNG_USER_ID}
|
||||
,TITLE = #{TITLE}
|
||||
,PURCHASE_DATE = #{PURCHASE_DATE}
|
||||
,CONTRACT_MGMT_OBJID = #{CONTRACT_MGMT_OBJID}::NUMERIC
|
||||
,CONTRACT_MGMT_OBJID = NULLIF(#{CONTRACT_MGMT_OBJID}::TEXT, '')::NUMERIC
|
||||
,TYPE = #{TYPE }
|
||||
,INSPECT_METHOD = #{INSPECT_METHOD }
|
||||
,TOTAL_PRICE_TXT = #{TOTAL_PRICE_TXT }
|
||||
@@ -839,6 +845,64 @@
|
||||
GROUP BY PARTNER_OBJID
|
||||
</select>
|
||||
|
||||
<!-- 품의서용 공급업체 조회 (VENDOR_PM 사용) -->
|
||||
<select id="getVendorListByProposalObjid" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
VENDOR_PM as PARTNER_OBJID
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT OUTER JOIN SALES_REQUEST_MASTER SRM ON SRP.SALES_REQUEST_MASTER_OBJID = SRM.OBJID
|
||||
WHERE SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_OBJID}
|
||||
AND VENDOR_PM IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM PURCHASE_ORDER_MASTER AS P WHERE P.SALES_REQUEST_OBJID = SRM.OBJID AND P.PARTNER_OBJID = SRP.VENDOR_PM)
|
||||
GROUP BY VENDOR_PM
|
||||
</select>
|
||||
|
||||
<!-- 품의서의 공급업체별 품목 조회 (VENDOR_PM 기준) -->
|
||||
<select id="getProposalPartsByVendor" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
SRP.QTY,
|
||||
COALESCE(SRP.PO_QTY, SRP.QTY::NUMERIC, 0) AS ORDER_QTY, -- 발주수량 (PO_QTY 우선, 없으면 QTY)
|
||||
SRP.UNIT_PRICE AS PARTNER_PRICE,
|
||||
SRP.TOTAL_PRICE,
|
||||
SRP.VENDOR_PM AS PARTNER_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
PM.SPEC,
|
||||
PM.UNIT,
|
||||
PM.MAKER
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON PM.OBJID::VARCHAR = SRP.PART_OBJID
|
||||
WHERE
|
||||
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_OBJID}
|
||||
AND SRP.VENDOR_PM = #{PARTNER_OBJID}
|
||||
</select>
|
||||
|
||||
<!-- 구매요청서의 공급업체별 품목 조회 (PARTNER_OBJID 기준) -->
|
||||
<select id="getSalesRequestPartsByVendor" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
SRP.QTY,
|
||||
SRP.UNIT_PRICE AS PARTNER_PRICE,
|
||||
SRP.TOTAL_PRICE,
|
||||
SRP.PARTNER_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
PM.SPEC,
|
||||
PM.UNIT,
|
||||
PM.MAKER
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON PM.OBJID::VARCHAR = SRP.PART_OBJID
|
||||
WHERE
|
||||
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_OBJID}
|
||||
AND SRP.PARTNER_OBJID = #{PARTNER_OBJID}
|
||||
</select>
|
||||
|
||||
<update id="mergePurchaseOrderMasterPrice" parameterType="map">
|
||||
INSERT INTO PURCHASE_ORDER_MASTER
|
||||
(
|
||||
@@ -887,7 +951,7 @@
|
||||
(
|
||||
#{OBJID},
|
||||
#{PO_CLIENT_ID},
|
||||
(SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||LPAD((COALESCE(MAX(SUBSTR(PURCHASE_ORDER_NO,9,11)),'0')::INTEGER+1)::TEXT,3,'0') FROM PURCHASE_ORDER_MASTER),
|
||||
(SELECT 'RPS'||TO_CHAR(NOW(),'YY')||'-'||TO_CHAR(NOW(),'MMDD')||'-'||LPAD((COALESCE(MAX(CASE WHEN PURCHASE_ORDER_NO LIKE 'RPS'||TO_CHAR(NOW(),'YY-MMDD')||'-%' THEN SPLIT_PART(PURCHASE_ORDER_NO, '-', 3) ELSE '0' END)::INTEGER, 0) + 1)::TEXT, 2, '0') FROM PURCHASE_ORDER_MASTER),
|
||||
#{CATEGORY_CD},
|
||||
#{PRODUCT_GROUP},
|
||||
#{PRODUCT},
|
||||
@@ -1223,7 +1287,10 @@
|
||||
SM.OFFICE_NO AS MY_COMPANY_SUPPLY_OFFICE_NO,
|
||||
|
||||
POM.PARTNER_OBJID,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME,
|
||||
CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME,
|
||||
(
|
||||
SELECT
|
||||
SUM(ORDER_QTY::numeric)
|
||||
@@ -1396,7 +1463,10 @@
|
||||
SM.OFFICE_NO AS MY_COMPANY_SUPPLY_OFFICE_NO,
|
||||
|
||||
POM.PARTNER_OBJID,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME,
|
||||
CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME,
|
||||
(
|
||||
SELECT
|
||||
SUM(ORDER_QTY::numeric)
|
||||
@@ -1634,7 +1704,10 @@
|
||||
PM.REVISION,
|
||||
PM.PART_NAME||'('||PM.MATERIAL||','||PM.SPEC||')/'||PM.PART_NO||(CASE WHEN PM.REVISION IS NULL THEN '' ELSE PM.REVISION END) AS TARGET_TITLE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = pop.UNIT) as UNIT_TITLE,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME,
|
||||
CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME,
|
||||
POP.ORDER_QTY,
|
||||
POP.OBJID,
|
||||
POP.PURCHASE_ORDER_MASTER_OBJID,
|
||||
@@ -1723,7 +1796,10 @@
|
||||
PM.REVISION,
|
||||
PM.PART_NAME||'('||PM.MATERIAL||','||PM.SPEC||')/'||PM.PART_NO||(CASE WHEN PM.REVISION IS NULL THEN '' ELSE PM.REVISION END) AS TARGET_TITLE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = pop.UNIT) as UNIT_TITLE,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME,
|
||||
CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME,
|
||||
POP.ORDER_QTY,
|
||||
POP.REAL_ORDER_QTY,
|
||||
POP.OBJID AS ORDER_PART_OBJID,
|
||||
@@ -2805,8 +2881,102 @@ WHERE OBJID = (SELECT PURCHASE_ORDER_MASTER_OBJID FROM PURCHASE_ORDER_PART POP W
|
||||
WHERE OBJID = #{PURCHASE_ORDER_MASTER_OBJID}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="purchaseOrderMasterListSum" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
SUM(NVL(POM.TOTAL_PRICE_ALL, '0')::NUMERIC) AS TOTAL_PRICE_ALL
|
||||
,SUM(NVL(POM.TOTAL_SUPPLY_PRICE, '0')::NUMERIC) AS TOTAL_SUPPLY_PRICE
|
||||
,SUM(NVL(POM.TOTAL_REAL_SUPPLY_PRICE, '0')::NUMERIC) AS TOTAL_REAL_SUPPLY_PRICE
|
||||
,SUM(NVL(POM.TOTAL_SUPPLY_UNIT_PRICE, '0')::NUMERIC) AS TOTAL_SUPPLY_UNIT_PRICE
|
||||
FROM
|
||||
PURCHASE_ORDER_MASTER AS POM
|
||||
WHERE 1=1
|
||||
<if test="Year !=null and Year != '' ">
|
||||
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
||||
</if>
|
||||
<if test="customer_cd !=null and customer_cd != '' ">
|
||||
AND EXISTS (
|
||||
SELECT 'E' FROM PROJECT_MGMT AS S_P
|
||||
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
|
||||
AND S_P.CUSTOMER_OBJID = #{customer_cd}
|
||||
)
|
||||
</if>
|
||||
<if test="customer_project_name !=null and customer_project_name != '' ">
|
||||
AND CM.CUSTOMER_PROJECT_NAME = #{customer_project_name}
|
||||
</if>
|
||||
<if test="project_no !=null and project_no != '' ">
|
||||
AND POM.CONTRACT_MGMT_OBJID = #{project_no}
|
||||
</if>
|
||||
<if test="unit_code !=null and unit_code != '' ">
|
||||
AND POM.UNIT_CODE LIKE '%'||#{unit_code}||'%'
|
||||
</if>
|
||||
<if test="purchase_order_no !=null and purchase_order_no != '' ">
|
||||
AND POM.PURCHASE_ORDER_NO LIKE '%'||#{purchase_order_no}||'%'
|
||||
</if>
|
||||
<if test="type !=null and type != '' ">
|
||||
AND POM.TYPE = #{type}
|
||||
</if>
|
||||
<if test="order_type_cd !=null and order_type_cd != '' ">
|
||||
AND POM.ORDER_TYPE_CD = #{order_type_cd}
|
||||
</if>
|
||||
<if test="delivery_start_date !=null and delivery_start_date != '' ">
|
||||
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{delivery_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="delivery_end_date !=null and delivery_end_date != '' ">
|
||||
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="partner_objid !=null and partner_objid != '' ">
|
||||
AND POM.PARTNER_OBJID = #{partner_objid}
|
||||
</if>
|
||||
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
|
||||
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
|
||||
</if>
|
||||
<if test="reg_start_date !=null and reg_start_date != '' ">
|
||||
AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{reg_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="reg_end_date !=null and reg_end_date != '' ">
|
||||
AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{reg_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="appr_status !=null and appr_status != '' ">
|
||||
<choose>
|
||||
<when test="'cancel'.equals(appr_status)">
|
||||
AND POM.STATUS = #{appr_status}
|
||||
</when>
|
||||
<when test="'complete'.equals(appr_status)">
|
||||
AND POM.STATUS = 'approvalComplete'
|
||||
</when>
|
||||
<when test="'create'.equals(appr_status)">
|
||||
AND ( POM.STATUS = #{appr_status}
|
||||
AND NOT EXISTS (SELECT 1 FROM APPROVAL AT
|
||||
WHERE AT.TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR
|
||||
)
|
||||
AND NOT EXISTS (SELECT 1 FROM APPROVAL_TARGET AT
|
||||
WHERE AT.TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR
|
||||
OR AT.MASTER_TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR
|
||||
)
|
||||
)
|
||||
</when>
|
||||
<otherwise>
|
||||
AND A.APPR_STATUS = #{appr_status}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="SEARCH_PART_NO !=null and SEARCH_PART_NO != '' ">
|
||||
AND EXISTS (SELECT 1
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
AND TRIM(UPPER(POP.PART_NO)) LIKE '%'||TRIM(UPPER(#{SEARCH_PART_NO}))||'%'
|
||||
)
|
||||
</if>
|
||||
<if test="SEARCH_PART_NAME !=null and SEARCH_PART_NAME != '' ">
|
||||
AND EXISTS (SELECT 1
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
AND TRIM(UPPER(POP.PART_NAME)) LIKE '%'||TRIM(UPPER(#{SEARCH_PART_NAME}))||'%'
|
||||
)
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="purchaseOrderMasterListSum_old" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
<!--
|
||||
SUM(CASE WHEN (SUPPLY_UNIT_VAT_SUM_PRICE IS NULL OR SUPPLY_UNIT_VAT_SUM_PRICE='')
|
||||
@@ -2969,7 +3139,6 @@ SELECT
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="purchaseOrderMasterList_new" parameterType="map" resultType="map">
|
||||
SELECT POM.OBJID
|
||||
,(SELECT ARRAY_TO_STRING(ARRAY_AGG(OBJID),',') FROM PURCHASE_ORDER_MASTER S
|
||||
@@ -2995,7 +3164,264 @@ SELECT POM.OBJID
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = POM.TYPE) AS TYPE_NAME
|
||||
|
||||
,POM.PARTNER_OBJID
|
||||
,(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
|
||||
,POM.SALES_MNG_USER_ID
|
||||
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = POM.SALES_MNG_USER_ID) AS SALES_MNG_USER_NAME
|
||||
,TO_CHAR(POM.REGDATE,'YYYY-MM-DD') AS REGDATE
|
||||
,POM.TOTAL_PRICE
|
||||
,POM.TOTAL_PRICE_ALL
|
||||
,POM.DISCOUNT_PRICE
|
||||
,POM.DISCOUNT_PRICE_ALL
|
||||
,POM.TOTAL_SUPPLY_PRICE
|
||||
,POM.TOTAL_SUPPLY_UNIT_PRICE
|
||||
,POM.TOTAL_REAL_SUPPLY_PRICE
|
||||
,POM.NEGO_RATE
|
||||
<!--
|
||||
,POM.TOTAL_SUPPLY_UNIT_PRICE::NUMERIC - POM.DISCOUNT_PRICE::NUMERIC as TOTAL_SUPPLY_UNIT_PRICE_NEGO
|
||||
-->
|
||||
|
||||
,POM.ORDER_TYPE_CD
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = POM.ORDER_TYPE_CD) AS ORDER_TYPE_CD_NAME
|
||||
,POM.UNIT_CODE
|
||||
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = POM.UNIT_CODE) AS UNIT_NAME
|
||||
,POM.MULTI_YN
|
||||
,POM.MULTI_MASTER_YN
|
||||
,POM.MULTI_MASTER_OBJID
|
||||
,CASE WHEN POM.MULTI_MASTER_YN = 'Y' THEN '' ELSE POM.MULTI_YN END MULTI_YN_MAKED
|
||||
|
||||
,POM.MAIL_SEND_YN
|
||||
,POM.MAIL_SEND_DATE
|
||||
,POM.STATUS
|
||||
,A.APPR_STATUS
|
||||
,CASE WHEN POM.STATUS = 'cancel' then '취소'
|
||||
ELSE COALESCE(A.APPR_STATUS_NAME,'작성중')
|
||||
END AS APPR_STATUS_NAME
|
||||
,A.ROUTE_OBJID
|
||||
,A.APPROVAL_OBJID
|
||||
,A.APPR_DATE
|
||||
|
||||
,SALES_REQUEST_OBJID
|
||||
,SRM.REQUEST_MNG_NO AS PROPOSAL_NO
|
||||
,CODE_NAME(SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME
|
||||
,CODE_NAME(CM.PRODUCT) AS PRODUCT_NAME
|
||||
,CODE_NAME(CM.CATEGORY_CD) AS CATEGORY_NAME
|
||||
-- 발주서 품목 정보 (첫번째 품번/품명 + 외 N건)
|
||||
,(SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) > 1 THEN MIN(POP.PART_NO) || ' 외 ' || (COUNT(*) - 1) || '건'
|
||||
ELSE MIN(POP.PART_NO)
|
||||
END
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
) AS PART_NO
|
||||
,(SELECT
|
||||
CASE
|
||||
WHEN COUNT(*) > 1 THEN MIN(POP.PART_NAME) || ' 외 ' || (COUNT(*) - 1) || '건'
|
||||
ELSE MIN(POP.PART_NAME)
|
||||
END
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
) AS PART_NAME
|
||||
FROM PURCHASE_ORDER_MASTER AS POM
|
||||
LEFT OUTER JOIN(
|
||||
SELECT B.OBJID AS ROUTE_OBJID
|
||||
,B.STATUS AS APPR_STATUS
|
||||
,CASE B.STATUS
|
||||
WHEN 'inProcess' THEN '결재중'
|
||||
WHEN 'complete' THEN '결재완료'
|
||||
WHEN 'reject' THEN '반려'
|
||||
WHEN 'cancel' THEN '취소'
|
||||
ELSE '' END APPR_STATUS_NAME
|
||||
,A.OBJID AS APPROVAL_OBJID
|
||||
,A.TARGET_OBJID
|
||||
,B.ROUTE_SEQ
|
||||
,TO_CHAR(B.REGDATE,'YYYY-MM-DD') AS APPR_DATE
|
||||
FROM APPROVAL A
|
||||
,( SELECT T1.*
|
||||
FROM ( SELECT TARGET_OBJID
|
||||
,MAX(T.ROUTE_SEQ) AS ROUTE_SEQ
|
||||
FROM ROUTE T
|
||||
GROUP BY T.TARGET_OBJID
|
||||
) T
|
||||
,ROUTE T1
|
||||
WHERE T.TARGET_OBJID = T1.TARGET_OBJID
|
||||
AND T.ROUTE_SEQ = T1.ROUTE_SEQ
|
||||
) B
|
||||
WHERE A.OBJID = B.APPROVAL_OBJID
|
||||
AND TARGET_TYPE IN ('PURCHASE_ORDER')
|
||||
) AS A ON ( POM.OBJID::VARCHAR = A.TARGET_OBJID::VARCHAR
|
||||
<!-- 동시발주건 조건 주석처리(속도)240813
|
||||
OR EXISTS (SELECT 1 FROM APPROVAL_TARGET AT WHERE AT.APPROVAL_OBJID = A.APPROVAL_OBJID AND AT.TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR)
|
||||
-->
|
||||
)
|
||||
<!--
|
||||
INNER JOIN PROJECT_MGMT AS CM
|
||||
-->
|
||||
LEFT OUTER JOIN PROJECT_MGMT AS CM
|
||||
ON POM.CONTRACT_MGMT_OBJID = CM.OBJID
|
||||
left outer join SALES_REQUEST_MASTER as SRM
|
||||
on POM.SALES_REQUEST_OBJID = SRM.OBJID
|
||||
and SRM.DOC_TYPE = 'PROPOSAL'
|
||||
<!-- 230907 outer join으로 변경
|
||||
,PROJECT_MGMT AS CM
|
||||
WHERE POM.CONTRACT_MGMT_OBJID = CM.OBJID
|
||||
-->
|
||||
WHERE 1=1
|
||||
<!-- for test
|
||||
-->
|
||||
AND (MULTI_MASTER_YN = 'Y' OR NVL(MULTI_MASTER_YN, '') != 'Y' AND NVL(MULTI_YN, '') != 'Y')
|
||||
<if test="Year !=null and Year != '' ">
|
||||
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
||||
<!--
|
||||
AND EXISTS (
|
||||
SELECT 'E' FROM PROJECT_MGMT AS S_P
|
||||
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
|
||||
AND TO_CHAR(S_P.REGDATE,'YYYY') = #{Year}
|
||||
)
|
||||
-->
|
||||
</if>
|
||||
<if test="customer_cd !=null and customer_cd != '' ">
|
||||
AND EXISTS (
|
||||
SELECT 'E' FROM PROJECT_MGMT AS S_P
|
||||
WHERE POM.CONTRACT_MGMT_OBJID = S_P.OBJID
|
||||
AND S_P.CUSTOMER_OBJID = #{customer_cd}
|
||||
)
|
||||
</if>
|
||||
<if test="customer_project_name !=null and customer_project_name != '' ">
|
||||
AND CM.CUSTOMER_PROJECT_NAME = #{customer_project_name}
|
||||
</if>
|
||||
<!-- <if test="project_no !=null and project_no != '' ">
|
||||
AND POM.CONTRACT_MGMT_OBJID = #{project_no}
|
||||
</if> -->
|
||||
<if test="project_nos != null and project_nos != ''">
|
||||
AND POM.CONTRACT_MGMT_OBJID IN
|
||||
<foreach item="state" collection="project_nos.split(',')"
|
||||
open="(" separator="," close=")">
|
||||
#{state}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="unit_code !=null and unit_code != '' ">
|
||||
AND POM.UNIT_CODE LIKE '%'||#{unit_code}||'%'
|
||||
</if>
|
||||
<if test="purchase_order_no !=null and purchase_order_no != '' ">
|
||||
AND POM.PURCHASE_ORDER_NO LIKE '%'||#{purchase_order_no}||'%'
|
||||
</if>
|
||||
<if test="type !=null and type != '' ">
|
||||
AND POM.TYPE = #{type}
|
||||
</if>
|
||||
<if test="order_type_cd !=null and order_type_cd != '' ">
|
||||
AND POM.ORDER_TYPE_CD = #{order_type_cd}
|
||||
</if>
|
||||
<if test="delivery_start_date !=null and delivery_start_date != '' ">
|
||||
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{delivery_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="delivery_end_date !=null and delivery_end_date != '' ">
|
||||
AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="partner_objid !=null and partner_objid != '' ">
|
||||
AND POM.PARTNER_OBJID = #{partner_objid}
|
||||
</if>
|
||||
<!--
|
||||
<if test="sales_mng_user_id !=null and sales_mng_user_id != '' ">
|
||||
AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
|
||||
</if>
|
||||
-->
|
||||
<if test="sales_mng_user_ids != null and sales_mng_user_ids != ''">
|
||||
AND POM.SALES_MNG_USER_ID IN
|
||||
<foreach item="value" collection="sales_mng_user_ids.split(',')"
|
||||
open="(" separator="," close=")">
|
||||
#{value}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="reg_start_date !=null and reg_start_date != '' ">
|
||||
AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{reg_start_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="reg_end_date !=null and reg_end_date != '' ">
|
||||
AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{reg_end_date}, 'YYYY-MM-DD')
|
||||
</if>
|
||||
<if test="appr_status !=null and appr_status != '' ">
|
||||
<choose>
|
||||
<when test="'cancel'.equals(appr_status)">
|
||||
AND POM.STATUS = #{appr_status}
|
||||
</when>
|
||||
<when test="'complete'.equals(appr_status)">
|
||||
AND POM.STATUS = 'approvalComplete'
|
||||
</when>
|
||||
<when test="'create'.equals(appr_status)">
|
||||
AND ( POM.STATUS = #{appr_status}
|
||||
AND NOT EXISTS (SELECT 1 FROM APPROVAL AT
|
||||
WHERE AT.TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR
|
||||
)
|
||||
AND NOT EXISTS (SELECT 1 FROM APPROVAL_TARGET AT
|
||||
WHERE AT.TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR
|
||||
OR AT.MASTER_TARGET_OBJID::VARCHAR = POM.OBJID::VARCHAR
|
||||
)
|
||||
)
|
||||
</when>
|
||||
<otherwise>
|
||||
AND A.APPR_STATUS = #{appr_status}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="SEARCH_PART_NO !=null and SEARCH_PART_NO != '' ">
|
||||
AND EXISTS (SELECT 1
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
AND TRIM(UPPER(POP.PART_NO)) LIKE '%'||TRIM(UPPER(#{SEARCH_PART_NO}))||'%'
|
||||
)
|
||||
</if>
|
||||
<if test="SEARCH_PART_NAME !=null and SEARCH_PART_NAME != '' ">
|
||||
AND EXISTS (SELECT 1
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
AND TRIM(UPPER(POP.PART_NAME)) LIKE '%'||TRIM(UPPER(#{SEARCH_PART_NAME}))||'%'
|
||||
)
|
||||
</if>
|
||||
<if test="SEARCH_PART_SPEC !=null and SEARCH_PART_SPEC != '' ">
|
||||
AND EXISTS (SELECT 1
|
||||
FROM PURCHASE_ORDER_PART POP
|
||||
WHERE POP.PURCHASE_ORDER_MASTER_OBJID = POM.OBJID
|
||||
AND TRIM(UPPER(POP.SPEC)) LIKE '%'||TRIM(UPPER(#{SEARCH_PART_SPEC}))||'%'
|
||||
)
|
||||
</if>
|
||||
|
||||
ORDER BY SPLIT_PART( PURCHASE_ORDER_NO, '-', 3)::NUMERIC DESC
|
||||
</select>
|
||||
|
||||
<select id="purchaseOrderMasterList_new_old" parameterType="map" resultType="map">
|
||||
SELECT POM.OBJID
|
||||
,(SELECT ARRAY_TO_STRING(ARRAY_AGG(OBJID),',') FROM PURCHASE_ORDER_MASTER S
|
||||
WHERE POM.OBJID = S.MULTI_MASTER_OBJID) MULTI_OBJIDS
|
||||
,TO_CHAR(CM.REGDATE, 'YYYY') AS CM_YEAR
|
||||
,TO_CHAR(POM.REGDATE, 'YYYY') AS PO_YEAR
|
||||
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS CUSTOMER_NAME
|
||||
,CM.CUSTOMER_PROJECT_NAME
|
||||
,CM.PROJECT_NO
|
||||
,POM.PURCHASE_ORDER_NO
|
||||
,(CASE WHEN POM.MULTI_YN = 'Y' AND POM.MULTI_MASTER_YN != 'Y' THEN 'ㅡ'
|
||||
WHEN POM.MULTI_YN = 'Y' AND POM.MULTI_MASTER_YN != 'Y' THEN ' '
|
||||
ELSE '' END)||POM.TITLE TITLE
|
||||
,POM.DELIVERY_PLACE
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = POM.DELIVERY_PLACE) AS DELIVERY_PLACE_NAME
|
||||
,POM.INSPECT_METHOD
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = POM.INSPECT_METHOD) AS INSPECT_METHOD_NAME
|
||||
,POM.PAYMENT_TERMS
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = POM.PAYMENT_TERMS) AS PAYMENT_TERMS_NAME
|
||||
,POM.DELIVERY_DATE
|
||||
|
||||
,POM.TYPE
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = POM.TYPE) AS TYPE_NAME
|
||||
|
||||
,POM.PARTNER_OBJID
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
|
||||
,POM.SALES_MNG_USER_ID
|
||||
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = POM.SALES_MNG_USER_ID) AS SALES_MNG_USER_NAME
|
||||
@@ -3776,7 +4202,10 @@ SELECT POM.OBJID
|
||||
,POM.DELIVERY_DATE
|
||||
|
||||
,POM.PARTNER_OBJID
|
||||
,(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
|
||||
,POM.SALES_MNG_USER_ID
|
||||
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = POM.SALES_MNG_USER_ID) AS SALES_MNG_USER_NAME
|
||||
@@ -3789,8 +4218,8 @@ SELECT POM.OBJID
|
||||
,POM.MULTI_YN
|
||||
,CASE WHEN POM.MULTI_MASTER_YN = 'Y' THEN '' ELSE POM.MULTI_YN END MULTI_YN_MAKED
|
||||
<!-- ,S1.TOTAL_PO_QTY -->
|
||||
<!-- ,(SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) AS TOTAL_PO_QTY -->
|
||||
,(SELECT SUM(REAL_ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) AS TOTAL_PO_QTY
|
||||
,(SELECT SUM(ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) AS TOTAL_PO_QTY
|
||||
<!--,(SELECT SUM(REAL_ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART AS O WHERE POM.OBJID::VARCHAR = O.PURCHASE_ORDER_MASTER_OBJID) AS TOTAL_PO_QTY -->
|
||||
,S1.CUR_DELIVERY_DATE
|
||||
,S1.TOTAL_DELIVERY_QTY
|
||||
<!-- ,(S1.TOTAL_PO_QTY - S1.TOTAL_DELIVERY_QTY - S1.TOTAL_DEFECT_QTY) AS NON_DELIVERY_QTY -->
|
||||
@@ -3859,7 +4288,8 @@ SELECT POM.OBJID
|
||||
ON POM.CONTRACT_MGMT_OBJID = CM.OBJID
|
||||
<!-- ,PROJECT_MGMT AS CM -->
|
||||
<!-- WHERE POM.CONTRACT_MGMT_OBJID = CM.OBJID -->
|
||||
WHERE POM.STATUS = 'approvalComplete' <!-- A.APPR_STATUS = 'complete' -->/*결재완료*/
|
||||
WHERE 1=1
|
||||
<!-- AND POM.STATUS = 'approvalComplete' --> <!-- A.APPR_STATUS = 'complete' -->/*결재완료*/
|
||||
<!-- AND POM.SALES_STATUS = 'OK' -->
|
||||
<!-- AND (POM.SALES_STATUS = 'OK' OR POM.TYPE = '0001538' ) -->
|
||||
AND (MULTI_MASTER_YN = 'Y' OR NVL(MULTI_MASTER_YN, '') != 'Y' AND NVL(MULTI_YN, '') != 'Y')
|
||||
@@ -4885,7 +5315,10 @@ FROM(
|
||||
,(SELECT PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = DH.PART_OBJID) AS PART_NAME
|
||||
,(SELECT PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = DH.PART_OBJID) AS PART_NO
|
||||
,DH.ORDER_QTY
|
||||
,(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
,DH.INSPECT_DATE
|
||||
,DH.DEFECT_QTY
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = DH.DEFECT_REASON) AS DEFECT_REASON_NAME
|
||||
@@ -4989,7 +5422,10 @@ FROM(
|
||||
,(SELECT PART_NAME FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = DH.PART_OBJID) AS PART_NAME
|
||||
,(SELECT PART_NO FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = DH.PART_OBJID) AS PART_NO
|
||||
,DH.ORDER_QTY
|
||||
,(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
,DH.INSPECT_DATE
|
||||
,DH.DEFECT_QTY
|
||||
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = DH.DEFECT_REASON) AS DEFECT_REASON_NAME
|
||||
@@ -5125,7 +5561,10 @@ FROM(
|
||||
,POP.PART_NO
|
||||
,POP.PART_NAME
|
||||
,POP.ORDER_QTY
|
||||
,(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = POM.SALES_MNG_USER_ID) AS SALES_MNG_USER_NAME
|
||||
,(SELECT (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PM.WRITER) FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = AP.PART_OBJID) AS DESIGN_NAME
|
||||
<!-- ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = AP.OBJID AND DOC_TYPE='DEFECT_ACTION_IMG_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT -->
|
||||
@@ -5294,7 +5733,10 @@ FROM(
|
||||
,POP.PART_NO
|
||||
,POP.PART_NAME
|
||||
,POP.SPEC
|
||||
,(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID) AS PARTNER_NAME
|
||||
,CASE
|
||||
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = POM.PARTNER_OBJID)
|
||||
END AS PARTNER_NAME
|
||||
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = POM.SALES_MNG_USER_ID) AS SALES_MNG_USER_NAME
|
||||
,(SELECT (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PM.WRITER) FROM PART_MNG PM WHERE PM.OBJID::VARCHAR = AP.PART_OBJID) AS DESIGN_NAME
|
||||
<!-- ,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = DH.OBJID AND DOC_TYPE='DEFECT_ACTION_IMG_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT -->
|
||||
@@ -5414,7 +5856,8 @@ FROM(
|
||||
-->
|
||||
WHERE 1=1
|
||||
AND SRM.OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
AND PARTNER_OBJID = #{PARTNER_OBJID}
|
||||
AND SRP.VENDOR_PM = #{PARTNER_OBJID}
|
||||
<!-- AND PARTNER_OBJID = #{PARTNER_OBJID} -->
|
||||
</select>
|
||||
|
||||
<select id="purchaseOrderStatusGoods" parameterType="map" resultType="map">
|
||||
@@ -5555,4 +5998,13 @@ FROM(
|
||||
AND P.PART_OBJID = #{objId}
|
||||
</select>
|
||||
|
||||
<!-- 발주서 메일 발송 상태 업데이트 -->
|
||||
<update id="updateMailSendStatus" parameterType="map">
|
||||
UPDATE PURCHASE_ORDER_MASTER
|
||||
SET
|
||||
MAIL_SEND_YN = #{MAIL_SEND_YN}
|
||||
,MAIL_SEND_DATE = #{MAIL_SEND_DATE}
|
||||
WHERE OBJID = #{OBJID}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -607,12 +607,13 @@
|
||||
PRODUCT_NAME,
|
||||
AREA_CD,
|
||||
CUSTOMER_OBJID,
|
||||
PAID_TYPE
|
||||
PAID_TYPE,
|
||||
DOC_TYPE
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{SALES_REQUEST_MASTER_OBJID },
|
||||
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER),
|
||||
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER WHERE DOC_TYPE = 'PURCHASE_REQUEST' OR DOC_TYPE IS NULL),
|
||||
#{REQUEST_CD },
|
||||
#{PROJECT_NO },
|
||||
#{RELEASE },
|
||||
@@ -631,7 +632,8 @@ VALUES
|
||||
#{PRODUCT_NAME },
|
||||
#{AREA_CD },
|
||||
#{CUSTOMER_OBJID },
|
||||
#{PAID_TYPE }
|
||||
#{PAID_TYPE },
|
||||
'PURCHASE_REQUEST'
|
||||
) ON CONFLICT (OBJID) DO
|
||||
UPDATE
|
||||
SET
|
||||
@@ -667,19 +669,19 @@ VALUES
|
||||
PM.OBJID,
|
||||
(SELECT OBJID FROM PROJECT_MGMT WHERE PROJECT_NO = SRM.PROJECT_NO LIMIT 1)
|
||||
) AS PROJECT_MGMT_OBJID,
|
||||
-- M-BOM 조회용: MBOM_HEADER에서 직접 OBJID 가져오기
|
||||
(SELECT MH.OBJID FROM MBOM_HEADER MH
|
||||
WHERE MH.PROJECT_OBJID = COALESCE(PM.OBJID, (SELECT OBJID FROM PROJECT_MGMT WHERE PROJECT_NO = SRM.PROJECT_NO LIMIT 1))
|
||||
AND MH.STATUS = 'Y'
|
||||
ORDER BY MH.REGDATE DESC LIMIT 1
|
||||
) AS MBOM_HEADER_OBJID,
|
||||
-- M-BOM 조회용: SALES_REQUEST_MASTER에 저장된 MBOM_HEADER_OBJID 사용
|
||||
SRM.MBOM_HEADER_OBJID,
|
||||
COALESCE(
|
||||
PM.BOM_REPORT_OBJID,
|
||||
(SELECT BOM_REPORT_OBJID FROM PROJECT_MGMT WHERE PROJECT_NO = SRM.PROJECT_NO LIMIT 1)
|
||||
) AS BOM_REPORT_OBJID,
|
||||
PM.SETUP,
|
||||
SM.SUPPLY_NAME AS CUSTOMER_NAME,
|
||||
SM.OBJID::VARCHAR AS CUSTOMER_OBJID, -- 고객사 OBJID (드롭다운 선택용)
|
||||
CASE
|
||||
WHEN SM.OBJID IS NOT NULL THEN SM.SUPPLY_NAME
|
||||
WHEN CM.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = CM.CUSTOMER_OBJID)
|
||||
ELSE SM.SUPPLY_NAME
|
||||
END AS CUSTOMER_NAME,
|
||||
COALESCE(SM.OBJID::VARCHAR, CM.CUSTOMER_OBJID) AS CUSTOMER_OBJID, -- 고객사 OBJID (드롭다운 선택용)
|
||||
PM.MECHANICAL_TYPE,
|
||||
SRM.RELEASE_DATE,
|
||||
SRM.REQUEST_REASONS,
|
||||
@@ -755,8 +757,8 @@ VALUES
|
||||
#{SALES_BOM_QTY_OBJID },
|
||||
#{PART_OBJID },
|
||||
#{SALES_REQUEST_MASTER_OBJID},
|
||||
#{QTY },
|
||||
#{ORG_QTY },
|
||||
COALESCE(NULLIF(TRIM(#{QTY}::TEXT), '')::NUMERIC, 0),
|
||||
COALESCE(NULLIF(TRIM(#{ORG_QTY}::TEXT), '')::NUMERIC, 0),
|
||||
#{PARTNER_OBJID },
|
||||
#{PARTNER_PRICE },
|
||||
#{DELIVERY_REQUEST_DATE },
|
||||
@@ -770,8 +772,8 @@ VALUES
|
||||
SALES_BOM_QTY_OBJID = #{SALES_BOM_QTY_OBJID },
|
||||
PART_OBJID = #{PART_OBJID },
|
||||
SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID},
|
||||
QTY = #{QTY },
|
||||
ORG_QTY = #{ORG_QTY },
|
||||
QTY = COALESCE(NULLIF(TRIM(#{QTY}::TEXT), '')::NUMERIC, 0),
|
||||
ORG_QTY = COALESCE(NULLIF(TRIM(#{ORG_QTY}::TEXT), '')::NUMERIC, 0),
|
||||
PARTNER_OBJID = #{PARTNER_OBJID },
|
||||
PARTNER_PRICE = #{PARTNER_PRICE },
|
||||
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
||||
@@ -963,46 +965,123 @@ 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,
|
||||
|
||||
-- 추가된 컬럼들
|
||||
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,
|
||||
SRM.PRODUCT_NAME,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PRODUCT_NAME) AS PRODUCT_NAME_FULL,
|
||||
SRM.AREA_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.AREA_CD) AS AREA_CD_NAME,
|
||||
SRM.CUSTOMER_OBJID,
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID) AS CUSTOMER_NAME,
|
||||
SRM.PAID_TYPE,
|
||||
(CASE WHEN SRM.PAID_TYPE = 'paid' THEN '유상' WHEN SRM.PAID_TYPE = 'free' THEN '무상' ELSE SRM.PAID_TYPE END) AS PAID_TYPE_NAME,
|
||||
-- 구매요청서 작성 여부 (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,
|
||||
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(
|
||||
(SELECT CC.CODE_NAME
|
||||
FROM PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON CM.OBJID = PM.CONTRACT_OBJID
|
||||
LEFT JOIN COMM_CODE CC ON CC.CODE_ID = CM.PRODUCT
|
||||
WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
|
||||
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = SRM.PRODUCT_NAME)
|
||||
) AS PRODUCT_NAME_FULL,
|
||||
|
||||
SRM.AREA_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.AREA_CD) AS AREA_CD_NAME,
|
||||
|
||||
-- 고객사: 프로젝트 정보 우선, 없으면 SALES_REQUEST_MASTER 값 (일반거래처 지원)
|
||||
COALESCE(
|
||||
(SELECT
|
||||
CASE
|
||||
WHEN CM.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = CM.CUSTOMER_OBJID)
|
||||
ELSE SM.SUPPLY_NAME
|
||||
END
|
||||
FROM PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON CM.OBJID = PM.CONTRACT_OBJID
|
||||
LEFT JOIN SUPPLY_MNG SM ON SM.OBJID::VARCHAR = CM.CUSTOMER_OBJID::VARCHAR
|
||||
WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
|
||||
(SELECT
|
||||
CASE
|
||||
WHEN SRM.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = SRM.CUSTOMER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID)
|
||||
END
|
||||
)
|
||||
) AS CUSTOMER_NAME,
|
||||
|
||||
-- 유/무상: 프로젝트 정보 우선, 없으면 SALES_REQUEST_MASTER 값
|
||||
COALESCE(
|
||||
(SELECT CASE
|
||||
WHEN CM.PAID_TYPE = 'paid' THEN '유상'
|
||||
WHEN CM.PAID_TYPE = 'free' THEN '무상'
|
||||
ELSE CM.PAID_TYPE
|
||||
END
|
||||
FROM PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON CM.OBJID = PM.CONTRACT_OBJID
|
||||
WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
|
||||
(CASE WHEN SRM.PAID_TYPE = 'paid' THEN '유상' WHEN SRM.PAID_TYPE = 'free' THEN '무상' ELSE SRM.PAID_TYPE END)
|
||||
) 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,
|
||||
@@ -1123,6 +1202,8 @@ VALUES
|
||||
) SRP ON SRP.SALES_REQUEST_MASTER_OBJID::VARCHAR = SRM.OBJID::VARCHAR
|
||||
AND SRP.SUB_RNUM = 1 -->
|
||||
WHERE 1=1
|
||||
-- 구매요청서만 조회 (품의서 제외)
|
||||
AND (SRM.DOC_TYPE = 'PURCHASE_REQUEST' OR SRM.DOC_TYPE IS NULL)
|
||||
<if test="Year !=null and Year != '' ">
|
||||
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
||||
</if>
|
||||
@@ -1159,26 +1240,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)">
|
||||
@@ -3191,6 +3286,7 @@ SELECT
|
||||
V.STOCK_QTY,
|
||||
V.SHORTAGE_QTY,
|
||||
V.VENDOR AS VENDOR_PM,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = V.VENDOR) AS VENDOR_NAME,
|
||||
V.UNIT_PRICE,
|
||||
V.TOTAL_PRICE,
|
||||
V.CURRENCY,
|
||||
@@ -3264,7 +3360,7 @@ ORDER BY V.PATH2
|
||||
VENDOR = #{VENDOR_PM},
|
||||
UNIT_PRICE = COALESCE(NULLIF(TRIM(#{UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
|
||||
TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
|
||||
PROPOSAL_DATE = CASE WHEN NULLIF(TRIM(#{PROPOSAL_DATE}::TEXT), '') IS NOT NULL THEN #{PROPOSAL_DATE}::DATE ELSE NULL END,
|
||||
-- PROPOSAL_DATE는 품의서 생성 시에만 자동 설정 (여기서는 업데이트하지 않음)
|
||||
EDITER = #{EDITER},
|
||||
EDIT_DATE = NOW()
|
||||
WHERE OBJID::VARCHAR = #{OBJID}
|
||||
@@ -3279,30 +3375,38 @@ ORDER BY V.PATH2
|
||||
VENDOR_PM = #{VENDOR_PM},
|
||||
UNIT_PRICE = COALESCE(NULLIF(TRIM(#{UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
|
||||
TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
|
||||
PROPOSAL_DATE = CASE WHEN NULLIF(TRIM(#{PROPOSAL_DATE}::TEXT), '') IS NOT NULL THEN #{PROPOSAL_DATE}::DATE ELSE NULL END,
|
||||
-- PROPOSAL_DATE는 품의서 생성 시에만 자동 설정 (여기서는 업데이트하지 않음)
|
||||
WRITER = #{EDITER}
|
||||
WHERE OBJID::VARCHAR = #{OBJID}
|
||||
</update>
|
||||
|
||||
<!-- M-BOM에서 구매리스트 생성 시 해당 프로젝트로 이미 생성된 구매요청서가 있는지 확인 -->
|
||||
<!-- 프로젝트로 구매요청서 조회 (수동 작성 포함) -->
|
||||
<select id="getSalesRequestMasterByProjectNo" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
PROJECT_NO,
|
||||
MBOM_HEADER_OBJID,
|
||||
STATUS
|
||||
FROM
|
||||
SALES_REQUEST_MASTER
|
||||
WHERE
|
||||
PROJECT_NO = #{PROJECT_NO}
|
||||
ORDER BY REGDATE DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 다음 요청번호 생성 (R + YYYYMMDD + - + 3자리 순번) -->
|
||||
<!-- 다음 요청번호 생성 (R + YYYYMMDD + - + 3자리 순번) - 구매요청서용 -->
|
||||
<select id="getNextRequestMngNo" resultType="string">
|
||||
SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0')
|
||||
FROM SALES_REQUEST_MASTER
|
||||
WHERE DOC_TYPE = 'PURCHASE_REQUEST' OR DOC_TYPE IS NULL
|
||||
</select>
|
||||
|
||||
<!-- 다음 품의서 번호 생성 (P + YYYYMMDD + - + 3자리 순번) - 품의서용 -->
|
||||
<select id="getNextProposalNo" resultType="string">
|
||||
SELECT 'P'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0')
|
||||
FROM SALES_REQUEST_MASTER
|
||||
WHERE DOC_TYPE = 'PROPOSAL'
|
||||
</select>
|
||||
|
||||
<!-- M-BOM에서 구매리스트 생성 - SALES_REQUEST_MASTER만 생성 (SALES_REQUEST_PART는 생성 안 함) -->
|
||||
@@ -3311,23 +3415,269 @@ ORDER BY V.PATH2
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
PROJECT_NO,
|
||||
MBOM_HEADER_OBJID,
|
||||
REQUEST_USER_ID,
|
||||
STATUS,
|
||||
WRITER,
|
||||
REGDATE
|
||||
REGDATE,
|
||||
DOC_TYPE
|
||||
) VALUES (
|
||||
#{OBJID},
|
||||
#{REQUEST_MNG_NO},
|
||||
#{PROJECT_NO},
|
||||
#{MBOM_HEADER_OBJID},
|
||||
#{REQUEST_USER_ID},
|
||||
#{STATUS},
|
||||
#{WRITER},
|
||||
NOW()
|
||||
NOW(),
|
||||
'PURCHASE_REQUEST'
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
<!-- ==================== 품의서 관리 ==================== -->
|
||||
|
||||
<!-- 품의서 대상 품목 조회 - M-BOM 기반 (MBOM_DETAIL에서 조회) -->
|
||||
<select id="getProposalTargetPartsFromMBom" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
MD.OBJID,
|
||||
MD.PART_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
MD.QTY,
|
||||
MD.UNIT_PRICE,
|
||||
MD.TOTAL_PRICE,
|
||||
MD.VENDOR AS VENDOR_PM,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = MD.VENDOR) AS VENDOR_NAME,
|
||||
MD.NET_QTY,
|
||||
MD.PO_QTY,
|
||||
'MBOM' AS DATA_SOURCE
|
||||
FROM
|
||||
MBOM_DETAIL MD
|
||||
LEFT JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
||||
WHERE
|
||||
MD.MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
|
||||
-- 단가가 입력되어 있고
|
||||
AND MD.UNIT_PRICE IS NOT NULL
|
||||
AND MD.UNIT_PRICE > 0
|
||||
-- 공급업체가 입력되어 있고
|
||||
AND MD.VENDOR IS NOT NULL
|
||||
AND MD.VENDOR != ''
|
||||
-- 품의서가 생성되지 않은 품목만
|
||||
AND MD.PROPOSAL_DATE IS NULL
|
||||
ORDER BY MD.REGDATE
|
||||
</select>
|
||||
|
||||
<!-- 품의서 대상 제외 품목 조회 - M-BOM 기반 (단가O, 공급업체X) -->
|
||||
<select id="getProposalExcludedPartsFromMBom" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
MD.OBJID,
|
||||
MD.PART_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
MD.QTY,
|
||||
MD.UNIT_PRICE,
|
||||
MD.TOTAL_PRICE,
|
||||
'MBOM' AS DATA_SOURCE
|
||||
FROM
|
||||
MBOM_DETAIL MD
|
||||
LEFT JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
||||
WHERE
|
||||
MD.MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
|
||||
-- 단가가 입력되어 있고
|
||||
AND MD.UNIT_PRICE IS NOT NULL
|
||||
AND MD.UNIT_PRICE > 0
|
||||
-- 공급업체가 미입력
|
||||
AND (MD.VENDOR IS NULL OR MD.VENDOR = '')
|
||||
-- 품의서가 생성되지 않은 품목만
|
||||
AND MD.PROPOSAL_DATE IS NULL
|
||||
ORDER BY MD.REGDATE
|
||||
</select>
|
||||
|
||||
<!-- 품의서 대상 품목 조회 - 수동 작성 (SALES_REQUEST_PART에서 조회) -->
|
||||
<select id="getProposalTargetPartsFromManual" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
SRP.QTY,
|
||||
SRP.UNIT_PRICE,
|
||||
SRP.TOTAL_PRICE,
|
||||
SRP.VENDOR_PM,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = SRP.VENDOR_PM) AS VENDOR_NAME,
|
||||
SRP.NET_QTY,
|
||||
SRP.PO_QTY,
|
||||
'MANUAL' AS DATA_SOURCE
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
||||
WHERE
|
||||
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
-- 단가가 입력되어 있고
|
||||
AND SRP.UNIT_PRICE IS NOT NULL
|
||||
AND SRP.UNIT_PRICE > 0
|
||||
-- 공급업체가 입력되어 있고
|
||||
AND SRP.VENDOR_PM IS NOT NULL
|
||||
AND SRP.VENDOR_PM != ''
|
||||
-- 품의서가 생성되지 않은 품목만
|
||||
AND SRP.PROPOSAL_DATE IS NULL
|
||||
ORDER BY SRP.REGDATE
|
||||
</select>
|
||||
|
||||
<!-- 품의서 대상 제외 품목 조회 - 수동 작성 (단가O, 공급업체X) -->
|
||||
<select id="getProposalExcludedPartsFromManual" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
SRP.QTY,
|
||||
SRP.UNIT_PRICE,
|
||||
SRP.TOTAL_PRICE,
|
||||
'MANUAL' AS DATA_SOURCE
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
||||
WHERE
|
||||
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
||||
-- 단가가 입력되어 있고
|
||||
AND SRP.UNIT_PRICE IS NOT NULL
|
||||
AND SRP.UNIT_PRICE > 0
|
||||
-- 공급업체가 미입력
|
||||
AND (SRP.VENDOR_PM IS NULL OR SRP.VENDOR_PM = '')
|
||||
-- 품의서가 생성되지 않은 품목만
|
||||
AND SRP.PROPOSAL_DATE IS NULL
|
||||
ORDER BY SRP.REGDATE
|
||||
</select>
|
||||
|
||||
<!-- 품의서 생성 (SALES_REQUEST_MASTER에 INSERT) -->
|
||||
<insert id="insertProposal" parameterType="map">
|
||||
INSERT INTO SALES_REQUEST_MASTER (
|
||||
OBJID,
|
||||
REQUEST_MNG_NO,
|
||||
PROJECT_NO,
|
||||
MBOM_HEADER_OBJID,
|
||||
PURCHASE_TYPE,
|
||||
ORDER_TYPE,
|
||||
PRODUCT_NAME,
|
||||
AREA_CD,
|
||||
CUSTOMER_OBJID,
|
||||
PAID_TYPE,
|
||||
REQUEST_USER_ID,
|
||||
STATUS,
|
||||
WRITER,
|
||||
REGDATE,
|
||||
DOC_TYPE
|
||||
) VALUES (
|
||||
#{OBJID},
|
||||
#{REQUEST_MNG_NO},
|
||||
#{PROJECT_NO},
|
||||
#{MBOM_HEADER_OBJID},
|
||||
#{PURCHASE_TYPE},
|
||||
#{ORDER_TYPE},
|
||||
#{PRODUCT_NAME},
|
||||
#{AREA_CD},
|
||||
#{CUSTOMER_OBJID},
|
||||
#{PAID_TYPE},
|
||||
#{REQUEST_USER_ID},
|
||||
'create',
|
||||
#{WRITER},
|
||||
NOW(),
|
||||
'PROPOSAL'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 품의서용 SALES_REQUEST_PART 생성 (M-BOM 기반 품목 복사) -->
|
||||
<insert id="insertProposalPartFromMBom" parameterType="map">
|
||||
INSERT INTO SALES_REQUEST_PART (
|
||||
OBJID,
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
NET_QTY,
|
||||
PO_QTY,
|
||||
USE_YN,
|
||||
PROPOSAL_DATE,
|
||||
WRITER,
|
||||
REGDATE
|
||||
)
|
||||
SELECT
|
||||
#{NEW_OBJID},
|
||||
#{PROPOSAL_MASTER_OBJID},
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR AS VENDOR_PM,
|
||||
NET_QTY,
|
||||
PO_QTY,
|
||||
USE_YN,
|
||||
NOW() AS PROPOSAL_DATE,
|
||||
#{WRITER},
|
||||
NOW()
|
||||
FROM MBOM_DETAIL
|
||||
WHERE OBJID = #{SOURCE_OBJID}
|
||||
</insert>
|
||||
|
||||
<!-- 품의서용 SALES_REQUEST_PART 생성 (수동 작성 품목 복사) -->
|
||||
<insert id="insertProposalPartFromManual" parameterType="map">
|
||||
INSERT INTO SALES_REQUEST_PART (
|
||||
OBJID,
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
NET_QTY,
|
||||
PO_QTY,
|
||||
USE_YN,
|
||||
PROPOSAL_DATE,
|
||||
WRITER,
|
||||
REGDATE
|
||||
)
|
||||
SELECT
|
||||
#{NEW_OBJID},
|
||||
#{PROPOSAL_MASTER_OBJID},
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
NET_QTY,
|
||||
PO_QTY,
|
||||
USE_YN,
|
||||
NOW() AS PROPOSAL_DATE,
|
||||
#{WRITER},
|
||||
NOW()
|
||||
FROM SALES_REQUEST_PART
|
||||
WHERE OBJID = #{SOURCE_OBJID}
|
||||
</insert>
|
||||
|
||||
<!-- 품의서 생성 후 PROPOSAL_DATE 업데이트 (수동 작성 - SALES_REQUEST_PART) -->
|
||||
<update id="updateProposalDateForManualParts" parameterType="map">
|
||||
UPDATE SALES_REQUEST_PART
|
||||
SET PROPOSAL_DATE = NOW()
|
||||
WHERE OBJID IN
|
||||
<foreach collection="PART_OBJIDS" item="objid" open="(" separator="," close=")">
|
||||
#{objid}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 품의서 생성 후 PROPOSAL_DATE 업데이트 (M-BOM - MBOM_DETAIL) -->
|
||||
<update id="updateProposalDateForMBomParts" parameterType="map">
|
||||
UPDATE MBOM_DETAIL
|
||||
SET PROPOSAL_DATE = NOW()
|
||||
WHERE OBJID IN
|
||||
<foreach collection="PART_OBJIDS" item="objid" open="(" separator="," close=")">
|
||||
#{objid}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 품의서 목록 조회 -->
|
||||
<select id="getProposalMngGridList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
@@ -3339,18 +3689,25 @@ 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,
|
||||
-- 품번/품명 ("외 N건" 형태로 표시)
|
||||
CODE_NAME(SRM.PRODUCT_NAME) AS PRODUCT_NAME_TITLE,
|
||||
-- 품번/품명 ("외 N건" 형태로 표시) - 품의서는 항상 SALES_REQUEST_PART에 데이터가 있음
|
||||
(
|
||||
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) || '건'
|
||||
COALESCE((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)::TEXT || '건'
|
||||
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))
|
||||
COALESCE((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
|
||||
@@ -3359,9 +3716,9 @@ ORDER BY V.PATH2
|
||||
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) || '건'
|
||||
COALESCE((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)::TEXT || '건'
|
||||
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))
|
||||
COALESCE((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
|
||||
@@ -3371,25 +3728,31 @@ ORDER BY V.PATH2
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COUNT(DISTINCT POM.PARTNER_OBJID) > 1 THEN
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID = (SELECT PARTNER_OBJID FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)::NUMERIC) || ' 외 ' || (COUNT(DISTINCT POM.PARTNER_OBJID) - 1) || '건'
|
||||
COALESCE((SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID = (SELECT PARTNER_OBJID FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)::NUMERIC), '') || ' 외 ' || (COUNT(DISTINCT POM.PARTNER_OBJID) - 1)::TEXT || '건'
|
||||
ELSE
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID = (SELECT PARTNER_OBJID FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)::NUMERIC)
|
||||
COALESCE((SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID = (SELECT PARTNER_OBJID FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID ORDER BY REGDATE LIMIT 1)::NUMERIC), '')
|
||||
END
|
||||
FROM PURCHASE_ORDER_MASTER POM
|
||||
WHERE POM.SALES_REQUEST_OBJID = SRM.OBJID
|
||||
) AS SUPPLIER_NAME,
|
||||
-- 총액
|
||||
(SELECT SUM(COALESCE(TOTAL_PRICE, 0)) FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID) AS TOTAL_AMOUNT,
|
||||
(SELECT SUM(COALESCE(TOTAL_PRICE::numeric, 0)) FROM PURCHASE_ORDER_MASTER WHERE SALES_REQUEST_OBJID = SRM.OBJID) AS TOTAL_AMOUNT,
|
||||
-- 메일발송 여부
|
||||
(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,
|
||||
-- (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
|
||||
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 '미결재'
|
||||
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,
|
||||
@@ -3403,6 +3766,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 '결재완료'
|
||||
@@ -3437,7 +3801,7 @@ ORDER BY V.PATH2
|
||||
) A ON SRM.OBJID::VARCHAR = A.TARGET_OBJID::VARCHAR
|
||||
WHERE 1=1
|
||||
AND SRM.STATUS IN ('create', 'approvalRequest', 'approvalComplete', 'reject')
|
||||
|
||||
AND SRM.DOC_TYPE = 'PROPOSAL'
|
||||
<if test="SEARCH_PROPOSAL_NO != null and !''.equals(SEARCH_PROPOSAL_NO)">
|
||||
AND SRM.REQUEST_MNG_NO LIKE '%${SEARCH_PROPOSAL_NO}%'
|
||||
</if>
|
||||
@@ -3447,7 +3811,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)">
|
||||
@@ -3468,6 +3839,44 @@ ORDER BY V.PATH2
|
||||
SRM.PROJECT_NO,
|
||||
(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NUMBER,
|
||||
(SELECT PROJECT_NAME FROM PROJECT_MGMT PM WHERE PM.OBJID = SRM.PROJECT_NO) AS PROJECT_NAME,
|
||||
|
||||
-- 프로젝트의 제품구분, 고객사, 유/무상 정보 (PROJECT_MGMT에서 조회)
|
||||
COALESCE(
|
||||
(SELECT CODE_NAME(PRODUCT) FROM PROJECT_MGMT WHERE OBJID = SRM.PROJECT_NO),
|
||||
SRM.PRODUCT_NAME
|
||||
) AS PROJECT_PRODUCT,
|
||||
COALESCE(
|
||||
(SELECT CM.CUSTOMER_OBJID
|
||||
FROM PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON CM.OBJID = PM.CONTRACT_OBJID
|
||||
WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
|
||||
SRM.CUSTOMER_OBJID
|
||||
) AS PROJECT_CUSTOMER_OBJID,
|
||||
COALESCE(
|
||||
(SELECT SM.SUPPLY_NAME
|
||||
FROM PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON CM.OBJID = PM.CONTRACT_OBJID
|
||||
LEFT JOIN SUPPLY_MNG SM ON SM.OBJID = CM.CUSTOMER_OBJID::NUMERIC
|
||||
WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID)
|
||||
) AS PROJECT_CUSTOMER_NAME,
|
||||
COALESCE(
|
||||
(SELECT CM.PAID_TYPE
|
||||
FROM PROJECT_MGMT PM
|
||||
LEFT JOIN CONTRACT_MGMT CM ON CM.OBJID = PM.CONTRACT_OBJID
|
||||
WHERE PM.OBJID::VARCHAR = SRM.PROJECT_NO),
|
||||
SRM.PAID_TYPE
|
||||
) AS PROJECT_PAID_TYPE,
|
||||
COALESCE(
|
||||
(SELECT CASE
|
||||
WHEN PAID_TYPE = 'paid' THEN '유상'
|
||||
WHEN PAID_TYPE = 'free' THEN '무상'
|
||||
ELSE PAID_TYPE
|
||||
END
|
||||
FROM PROJECT_MGMT
|
||||
WHERE OBJID = SRM.PROJECT_NO),
|
||||
(CASE WHEN SRM.PAID_TYPE = 'paid' THEN '유상' WHEN SRM.PAID_TYPE = 'free' THEN '무상' ELSE SRM.PAID_TYPE END)
|
||||
) AS PROJECT_PAID_TYPE_NAME,
|
||||
SRM.PURCHASE_TYPE,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PURCHASE_TYPE) AS PURCHASE_TYPE_NAME,
|
||||
SRM.ORDER_TYPE,
|
||||
@@ -3477,7 +3886,10 @@ ORDER BY V.PATH2
|
||||
SRM.AREA_CD,
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.AREA_CD) AS AREA_CD_NAME,
|
||||
SRM.CUSTOMER_OBJID,
|
||||
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID) AS CUSTOMER_NAME,
|
||||
CASE
|
||||
WHEN SRM.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = SRM.CUSTOMER_OBJID)
|
||||
ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID::VARCHAR = SRM.CUSTOMER_OBJID)
|
||||
END AS CUSTOMER_NAME,
|
||||
SRM.PAID_TYPE,
|
||||
(CASE WHEN SRM.PAID_TYPE = 'paid' THEN '유상' WHEN SRM.PAID_TYPE = 'free' THEN '무상' ELSE SRM.PAID_TYPE END) AS PAID_TYPE_NAME,
|
||||
SRM.STATUS,
|
||||
@@ -3490,13 +3902,72 @@ ORDER BY V.PATH2
|
||||
END AS STATUS_TITLE,
|
||||
SRM.WRITER,
|
||||
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
|
||||
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_DEPT,
|
||||
SRM.REGDATE,
|
||||
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
||||
SRM.REMARK
|
||||
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD HH24:MI') AS REGDATE_TIME,
|
||||
SRM.REMARK,
|
||||
SRM.DOC_TYPE,
|
||||
-- 품의서 추가 컬럼
|
||||
SRM.RECIPIENT_REF,
|
||||
SRM.EXECUTOR,
|
||||
SRM.EXECUTION_DATE,
|
||||
TO_CHAR(SRM.EXECUTION_DATE, 'YYYY-MM-DD') AS EXECUTION_DATE_TITLE,
|
||||
SRM.TITLE
|
||||
FROM
|
||||
SALES_REQUEST_MASTER SRM
|
||||
WHERE
|
||||
SRM.OBJID = #{PROPOSAL_OBJID}
|
||||
</select>
|
||||
|
||||
<!-- 품의서 품목 리스트 조회 -->
|
||||
<select id="getProposalPartList" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY SRP.REGDATE) AS RNUM,
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
PM.PART_NO,
|
||||
PM.PART_NAME,
|
||||
PM.SPEC,
|
||||
PM.MATERIAL,
|
||||
SRP.UNIT,
|
||||
COALESCE(
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRP.UNIT),
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = PM.UNIT)
|
||||
) AS UNIT_TITLE,
|
||||
SRP.QTY,
|
||||
SRP.UNIT_PRICE,
|
||||
SRP.TOTAL_PRICE,
|
||||
SRP.VENDOR_PM,
|
||||
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = SRP.VENDOR_PM) AS VENDOR_NAME,
|
||||
SRP.REMARK,
|
||||
SRP.DELIVERY_REQUEST_DATE,
|
||||
SRP.DELIVERY_REQUEST_DATE AS DELIVERY_REQUEST_DATE_TITLE
|
||||
FROM
|
||||
SALES_REQUEST_PART SRP
|
||||
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
||||
WHERE
|
||||
SRP.SALES_REQUEST_MASTER_OBJID = #{PROPOSAL_OBJID}
|
||||
ORDER BY SRP.REGDATE
|
||||
</select>
|
||||
|
||||
<!-- 품의서 마스터 정보 수정 (수신및참조, 시행자, 시행일자, 제목) -->
|
||||
<update id="updateProposalMaster" parameterType="map">
|
||||
UPDATE SALES_REQUEST_MASTER SET
|
||||
RECIPIENT_REF = #{RECIPIENT_REF},
|
||||
EXECUTOR = #{EXECUTOR},
|
||||
EXECUTION_DATE = CASE WHEN #{EXECUTION_DATE} IS NOT NULL AND #{EXECUTION_DATE} != '' THEN #{EXECUTION_DATE}::DATE ELSE NULL END,
|
||||
TITLE = #{TITLE}
|
||||
WHERE OBJID = #{PROPOSAL_OBJID}
|
||||
</update>
|
||||
|
||||
<!-- 품의서 품목 정보 수정 (납기일, 단위, 목적) -->
|
||||
<update id="updateProposalPart" parameterType="map">
|
||||
UPDATE SALES_REQUEST_PART SET
|
||||
DELIVERY_REQUEST_DATE = CASE WHEN #{DELIVERY_REQUEST_DATE} IS NOT NULL AND #{DELIVERY_REQUEST_DATE} != '' THEN #{DELIVERY_REQUEST_DATE} ELSE NULL END,
|
||||
UNIT = #{UNIT},
|
||||
REMARK = #{REMARK}
|
||||
WHERE OBJID = #{PART_OBJID}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user