diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml b/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml
index d365846..7d2c81a 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/admin.xml
@@ -8042,6 +8042,61 @@ FROM (
DELETE FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID = #{objid}
+
+
+
+
+
+ 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()
+ )
+
+
+
+
+ DELETE FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = #{objid}::VARCHAR
+
+
DELETE FROM ADMIN_SUPPLY_MNG WHERE OBJID = #{objId}::NUMERIC
@@ -8864,8 +8919,8 @@ SELECT
SELECT *
FROM CLIENT_MNG
WHERE 1=1
-
- AND OBJID != #{OBJID}::numeric
+
+ AND OBJID != #{objid}::numeric
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
-->
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/common.xml b/WebContent/WEB-INF/classes/com/pms/mapper/common.xml
index 07508a3..9876cb0 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/common.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/common.xml
@@ -1526,29 +1526,57 @@
-->
-
+
- 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
+
+
+
+ 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_', '')
+
+
+
+ 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
+
+
\ No newline at end of file
diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml b/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml
index 499e730..775e357 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/purchaseOrder.xml
@@ -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')||'-'||(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 '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 '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),
+
#{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 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
+ 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
+ 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}
+
+
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
+ 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
+
+ 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 S_P.CUSTOMER_OBJID = #{customer_cd}
+ )
+
+
+ AND CM.CUSTOMER_PROJECT_NAME = #{customer_project_name}
+
+
+ AND POM.CONTRACT_MGMT_OBJID = #{project_no}
+
+
+ AND POM.UNIT_CODE LIKE '%'||#{unit_code}||'%'
+
+
+ AND POM.PURCHASE_ORDER_NO LIKE '%'||#{purchase_order_no}||'%'
+
+
+ AND POM.TYPE = #{type}
+
+
+ AND POM.ORDER_TYPE_CD = #{order_type_cd}
+
+
+ AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') = ]]> TO_DATE(#{delivery_start_date}, 'YYYY-MM-DD')
+
+
+ AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
+
+
+ AND POM.PARTNER_OBJID = #{partner_objid}
+
+
+ AND POM.SALES_MNG_USER_ID = #{sales_mng_user_id}
+
+
+ AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') = ]]> TO_DATE(#{reg_start_date}, 'YYYY-MM-DD')
+
+
+ AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') TO_DATE(#{reg_end_date}, 'YYYY-MM-DD')
+
+
+
+
+ AND POM.STATUS = #{appr_status}
+
+
+ AND POM.STATUS = 'approvalComplete'
+
+
+ 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
+ )
+ )
+
+
+ AND A.APPR_STATUS = #{appr_status}
+
+
+
+
+ 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}))||'%'
+ )
+
+
+ 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}))||'%'
+ )
+
+
+
+
SELECT
+
+ ,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
+
+ )
+
+ 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'
+
+WHERE 1=1
+
+ AND (MULTI_MASTER_YN = 'Y' OR NVL(MULTI_MASTER_YN, '') != 'Y' AND NVL(MULTI_YN, '') != 'Y')
+
+ 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 S_P.CUSTOMER_OBJID = #{customer_cd}
+ )
+
+
+ AND CM.CUSTOMER_PROJECT_NAME = #{customer_project_name}
+
+
+
+ AND POM.CONTRACT_MGMT_OBJID IN
+
+ #{state}
+
+
+
+ AND POM.UNIT_CODE LIKE '%'||#{unit_code}||'%'
+
+
+ AND POM.PURCHASE_ORDER_NO LIKE '%'||#{purchase_order_no}||'%'
+
+
+ AND POM.TYPE = #{type}
+
+
+ AND POM.ORDER_TYPE_CD = #{order_type_cd}
+
+
+ AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') = ]]> TO_DATE(#{delivery_start_date}, 'YYYY-MM-DD')
+
+
+ AND TO_DATE(POM.DELIVERY_DATE ,'YYYY-MM-DD') TO_DATE(#{delivery_end_date}, 'YYYY-MM-DD')
+
+
+ AND POM.PARTNER_OBJID = #{partner_objid}
+
+
+
+ AND POM.SALES_MNG_USER_ID IN
+
+ #{value}
+
+
+
+
+ AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') = ]]> TO_DATE(#{reg_start_date}, 'YYYY-MM-DD')
+
+
+ AND TO_DATE(TO_CHAR(POM.REGDATE,'YYYY-MM-DD') ,'YYYY-MM-DD') TO_DATE(#{reg_end_date}, 'YYYY-MM-DD')
+
+
+
+
+ AND POM.STATUS = #{appr_status}
+
+
+ AND POM.STATUS = 'approvalComplete'
+
+
+ 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
+ )
+ )
+
+
+ AND A.APPR_STATUS = #{appr_status}
+
+
+
+
+ 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}))||'%'
+ )
+
+
+ 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}))||'%'
+ )
+
+
+ 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}))||'%'
+ )
+
+
+ ORDER BY SPLIT_PART( PURCHASE_ORDER_NO, '-', 3)::NUMERIC DESC
+
+
+
+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
-
- ,(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
+
,S1.CUR_DELIVERY_DATE
,S1.TOTAL_DELIVERY_QTY
@@ -3859,7 +4288,8 @@ SELECT POM.OBJID
ON POM.CONTRACT_MGMT_OBJID = CM.OBJID
- WHERE POM.STATUS = 'approvalComplete' /*결재완료*/
+ WHERE 1=1
+ /*결재완료*/
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
@@ -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
@@ -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}
+
@@ -5555,4 +5998,13 @@ FROM(
AND P.PART_OBJID = #{objId}
+
+
+ UPDATE PURCHASE_ORDER_MASTER
+ SET
+ MAIL_SEND_YN = #{MAIL_SEND_YN}
+ ,MAIL_SEND_DATE = #{MAIL_SEND_DATE}
+ WHERE OBJID = #{OBJID}
+
+
\ No newline at end of file
diff --git a/WebContent/WEB-INF/classes/com/pms/mapper/salesMng.xml b/WebContent/WEB-INF/classes/com/pms/mapper/salesMng.xml
index 4c0da6b..c9877d9 100644
--- a/WebContent/WEB-INF/classes/com/pms/mapper/salesMng.xml
+++ b/WebContent/WEB-INF/classes/com/pms/mapper/salesMng.xml
@@ -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)
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
@@ -1159,26 +1240,40 @@ VALUES
- 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}%')
+ )
+ )
- 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}%')
+ )
+ )
@@ -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}
-
+
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'||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'||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'
@@ -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'
)
+
+
+
+ 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
+ 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
+ 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
+ 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
+
+
+
+
+ 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 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 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}
+
+
+
+
+ UPDATE SALES_REQUEST_PART
+ SET PROPOSAL_DATE = NOW()
+ WHERE OBJID IN
+
+ #{objid}
+
+
+
+
+
+ UPDATE MBOM_DETAIL
+ SET PROPOSAL_DATE = NOW()
+ WHERE OBJID IN
+
+ #{objid}
+
+
+
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'
AND SRM.REQUEST_MNG_NO LIKE '%${SEARCH_PROPOSAL_NO}%'
@@ -3447,7 +3811,14 @@ ORDER BY V.PATH2
- 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}
@@ -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
+ 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
+
+
+
+
+ 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 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}
+
+
\ No newline at end of file
diff --git a/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/contractMgmt.xml b/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/contractMgmt.xml
index aac84a8..91a4a64 100644
--- a/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/contractMgmt.xml
+++ b/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/contractMgmt.xml
@@ -427,7 +427,42 @@
,CATEGORY_CD
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
,CUSTOMER_OBJID
- ,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN
+ (SELECT CLIENT_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE
+ (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR)
+ END AS CUSTOMER_NAME
+
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN
+ (SELECT CLIENT_CD FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE NULL
+ END AS CLIENT_CD
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN
+ (SELECT BUS_REG_NO FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE NULL
+ END AS CLIENT_BUS_REG_NO
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN
+ (SELECT CEO_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE NULL
+ END AS CLIENT_CEO_NM
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN
+ (SELECT TEL_NO FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE NULL
+ END AS CLIENT_TEL_NO
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN
+ (SELECT EMAIL FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE NULL
+ END AS CLIENT_EMAIL
+ ,CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN 'CLIENT'
+ ELSE 'SUPPLY'
+ END AS CUSTOMER_TYPE
,PRODUCT
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
,CUSTOMER_PROJECT_NAME
@@ -1625,13 +1660,16 @@
- SELECT
- A.OBJID
- ,A.CATEGORY_CD
- ,CODE_NAME(A.CATEGORY_CD) AS CATEGORY_NAME
- ,A.CUSTOMER_OBJID
- ,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = A.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
- ,A.PRODUCT
+SELECT
+ A.OBJID
+ ,A.CATEGORY_CD
+ ,CODE_NAME(A.CATEGORY_CD) AS CATEGORY_NAME
+ ,A.CUSTOMER_OBJID
+ ,CASE
+ WHEN A.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = A.CUSTOMER_OBJID)
+ ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = A.CUSTOMER_OBJID::VARCHAR)
+ END AS CUSTOMER_NAME
+ ,A.PRODUCT
,CODE_NAME(A.PRODUCT) AS PRODUCT_NAME
,A.CUSTOMER_PROJECT_NAME
,A.STATUS_CD
@@ -4066,7 +4104,10 @@ ORDER BY ASM.SUPPLY_NAME
CATEGORY_CD,
CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME,
CUSTOMER_OBJID,
- (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME,
+ CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR)
+ END AS CUSTOMER_NAME,
PRODUCT,
CODE_NAME(PRODUCT) AS PRODUCT_NAME,
CUSTOMER_PROJECT_NAME,
@@ -4587,8 +4628,14 @@ WHERE
SELECT
T.OBJID,
T.CUSTOMER_OBJID,
- (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME,
- (SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_EMAIL,
+ CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR)
+ END AS CUSTOMER_NAME,
+ CASE
+ WHEN T.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT EMAIL FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = T.CUSTOMER_OBJID)
+ ELSE (SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID::VARCHAR)
+ END AS CUSTOMER_EMAIL,
T.CUSTOMER_PROJECT_NAME,
T.CONTRACT_NO,
T.PRODUCT,
@@ -4802,7 +4849,10 @@ WHERE
OBJID,
CONTRACT_NO,
CUSTOMER_OBJID,
- (SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID = CONTRACT_MGMT.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME,
+ CASE
+ WHEN CONTRACT_MGMT.CUSTOMER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG AS C WHERE 'C_' || C.OBJID::VARCHAR = CONTRACT_MGMT.CUSTOMER_OBJID)
+ ELSE (SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CONTRACT_MGMT.CUSTOMER_OBJID::VARCHAR)
+ END AS CUSTOMER_NAME,
-- 주문유형
CATEGORY_CD,
CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME,
diff --git a/WebContent/WEB-INF/view/admin/clientMng/clientMngList.jsp b/WebContent/WEB-INF/view/admin/clientMng/clientMngList.jsp
index 3ee339f..b351099 100644
--- a/WebContent/WEB-INF/view/admin/clientMng/clientMngList.jsp
+++ b/WebContent/WEB-INF/view/admin/clientMng/clientMngList.jsp
@@ -61,7 +61,13 @@ var columns = [
{headerHozAlign:'center', hozAlign:'left', width:'120', title:'거래처코드', field:'CLIENT_CD'},
{headerHozAlign:'center', hozAlign:'left', width:'120', title:'거래처명', field:'CLIENT_NM'},
{headerHozAlign:'center', hozAlign:'center', width:'120', title:'TR_NMK', field:'TR_NMK'},
- {headerHozAlign:'center', hozAlign:'center', width:'120', title:'거래처약칭', field:'CLIENT_NMK'},
+ {headerHozAlign:'center', hozAlign:'center', width:'120', title:'거래처약칭', field:'CLIENT_NMK',
+ formatter: fnc_createGridAnchorTag,
+ cellClick: function(e, cell) {
+ var objid = fnc_checkNull(cell.getData().OBJID);
+ openclientMngListInfoPopUp(objid);
+ }
+ },
{headerHozAlign:'center', hozAlign:'center', width:'120', title:'ATTR_NMK', field:'ATTR_NMK'},
{headerHozAlign:'center', hozAlign:'center', width:'120', title:'구분', field:'CLIENT_TYPE'},
{headerHozAlign:'center', hozAlign:'center', width:'120', title:'사업자등록번호', field:'BUS_REG_NO'},
@@ -271,10 +277,10 @@ function openclientMngListInfoPopUp(objid){