INSERT INTO AS_MNG
(
OBJID
,AS_NO
,CUSTCD
,COMPANY_NAME
,PRODUCT_CODE
,YEAR
,RELEASE_DATE
,CAR_NUMBER
,PAID_FREE
,PHONE
,PLAN_DATE
,REC_TYPE
,PROBLEM_CONTENTS
,ACTION_CONTENTS
,START_DATE
,END_DATE
,PART_PRICE
,AS_COST
,PAYMENT_TYPE
,REQ_USER
,REQ_DATE
,AS_USER
,AS_DATE
,FREE_CONTENTS
,WRITER
,STATUS_CD
,WORKINGTIME
,WAGE
,REG_DATE
,PRICE1
,PRICE2
,PRICE3
,TOTAL_PRICE
,WARRANTY_CODE
,MAINTENANCE
,SN_NO
)
VALUES
(
#{objId}::integer
,(SELECT 'AS-'||TO_CHAR(NOW(),'yyyy')::VARCHAR ||'-'||LPAD((SELECT nextval('seq_as_no'))::VARCHAR ,3,'0'))
,#{custcd}
,null
,#{product_code}
,#{year}
,#{release_date}
,#{car_number}
,#{paid_free}
,#{phone}
,#{plan_date}
,#{rec_type}
,#{problem_contents}
,#{action_contents}
,#{start_date}
,#{end_date}
,#{part_price}
,#{as_cost}
,#{payment_type}
,#{req_user}
,#{req_date}
,#{as_user}
,#{as_date}
,#{free_contents}
,#{writer}
,'0000100'
,#{workingtime}
,#{wage}
,now()
,#{price1}
,#{price2}
,#{price3}
,#{total_price}
,#{warranty_code}
,#{maintenance}
,#{sn_no}
) ON CONFLICT (OBJID) DO
UPDATE
SET
CUSTCD=#{custcd}
,PRODUCT_CODE=#{product_code}
,YEAR=#{year}
,RELEASE_DATE=#{release_date}
,CAR_NUMBER=#{car_number}
,PAID_FREE=#{paid_free}
,PHONE=#{phone}
,PLAN_DATE=#{plan_date}
,REC_TYPE=#{rec_type}
,PROBLEM_CONTENTS=#{problem_contents}
,ACTION_CONTENTS=#{action_contents}
,START_DATE=#{start_date}
,END_DATE=#{end_date}
,PART_PRICE=#{part_price}
,AS_COST=#{as_cost}
,PAYMENT_TYPE=#{payment_type}
,REQ_DATE=#{req_date}
,AS_DATE=#{as_date}
,FREE_CONTENTS=#{free_contents}
,WORKINGTIME=#{workingtime}
,WAGE=#{wage}
,PRICE1=#{price1}
,PRICE2=#{price2}
,PRICE3=#{price3}
,TOTAL_PRICE=#{total_price}
,WARRANTY_CODE=#{warranty_code}
,MAINTENANCE=#{maintenance}
,SN_NO=#{sn_no}
UPDATE AS_PART_MNG SET
QTY=#{QTY}
,PRICE=#{PRICE}
,SUP_PRICE=#{SUP_PRICE}
,NOTE=#{NOTE}
WHERE OBJID = #{OBJID}::numeric
DELETE FROM AS_MNG
WHERE OBJID=#{objId}::numeric
(
SELECT
OBJID,
eo_no,
eo_gubun,
ecr_objid,
product_1,
product_2,
eo_kind,
title,
request_code,
period_code,
unit,
DEPLOY_DATE,
TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE,
EDIT_DATE,
TO_CHAR(E.EDIT_DATE,'YYYY-MM-DD') AS EDIT_DATE_TITLE,
WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.WRITER) AS WRITER_TITLE,
DEPLOY_WRITER,
DEPLOY_DEPT,
STATUS,
CASE STATUS
WHEN 'create' THEN '작성중'
WHEN 'deploy' THEN '배포완료'
WHEN 'approvalRequest' THEN '결재중'
WHEN 'approvalComplete' THEN '결재완료'
WHEN 'reject' THEN '반려'
ELSE ''
END STATUS_TITLE,
contents,
A.APPR_STATUS,
A.ROUTE_OBJID,
A.APPROVAL_OBJID
FROM
EO_MNG E
LEFT OUTER JOIN
(
SELECT
B.OBJID AS ROUTE_OBJID,
CASE B.STATUS
WHEN 'inProcess' THEN '결재중'
WHEN 'complete' THEN '결재완료'
WHEN 'reject' THEN '반려'
ELSE ''
END APPR_STATUS,
A.OBJID AS APPROVAL_OBJID,
A.TARGET_OBJID,
B.ROUTE_SEQ
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 ('EO_MNG')
) A
ON E.OBJID::numeric = A.TARGET_OBJID
)
(
SELECT
P.OBJID,
P.PRODUCT_MGMT_OBJID,
PMUD.PRODUCT_CODE,
P.UPG_NO,
P.PART_NO,
P.PART_NAME,
P.UNIT,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.UNIT) AS UNIT_TITLE,
P.QTY,
P.SPEC,
P.MATERIAL,
P.WEIGHT,
P.PART_TYPE,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.PART_TYPE) AS PART_TYPE_TITLE,
P.REMARK,
P.ES_SPEC,
P.MS_SPEC,
P.CHANGE_OPTION,
P.DESIGN_APPLY_POINT,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.DESIGN_APPLY_POINT) AS DESIGN_APPLY_POINT_TITLE,
P.MANAGEMENT_FLAG,
P.REVISION,
P.STATUS,
P.REG_DATE,
P.EDIT_DATE,
P.WRITER,
P.IS_LAST,
P.EO,
AF.SAVED_FILE_NAME,
AF.REAL_FILE_NAME,
REPLACE(AF.FILE_PATH, '\', '\\') AS FILE_PATH,
AF_ECD.SAVED_FILE_NAME AS ECD_SAVED_FILE_NAME,
AF_ECD.REAL_FILE_NAME AS ECD_REAL_FILE_NAME,
REPLACE(AF_ECD.FILE_PATH, '\', '\\') AS ECD_FILE_PATH,
CASE
WHEN AF_ECD.SAVED_FILE_NAME IS NOT NULL THEN 'Y'
ELSE 'N'
END ECD_FLAG
FROM
PART_MNG P
LEFT OUTER JOIN
(
SELECT
TARGET_OBJID,
SAVED_FILE_NAME,
REAL_FILE_NAME,
FILE_PATH,
DOC_TYPE
FROM ATTACH_FILE_INFO
WHERE 1 = 1
AND DOC_TYPE IN ('PART_SHAPE_IMG')
AND UPPER(STATUS) = 'ACTIVE'
) AF
ON P.OBJID::NUMERIC = AF.TARGET_OBJID
LEFT OUTER JOIN
(
SELECT
TARGET_OBJID,
SAVED_FILE_NAME,
REAL_FILE_NAME,
FILE_PATH,
DOC_TYPE
FROM ATTACH_FILE_INFO
WHERE 1 = 1
AND DOC_TYPE IN ('ECD_DOC')
AND UPPER(STATUS) = 'ACTIVE'
) AF_ECD
ON P.OBJID::NUMERIC = AF_ECD.TARGET_OBJID
LEFT OUTER JOIN(
SELECT
PMUD.*
FROM(
SELECT
DISTINCT
PMUD.PRODUCT_OBJID,
(SELECT PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE 1=1 AND PM.OBJID = PMUD.PRODUCT_OBJID) AS PRODUCT_CODE,
(UPG_CODE ||'-'|| (SELECT PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE 1=1 AND PM.OBJID = PMUD.PRODUCT_OBJID) ||'-'|| VC) AS UPG_NO
FROM
PRODUCT_MGMT_UPG_DETAIL PMUD
WHERE 1=1
) PMUD
) PMUD
ON P.PRODUCT_MGMT_OBJID = PMUD.PRODUCT_OBJID::TEXT
AND P.UPG_NO = PMUD.UPG_NO
)
INSERT INTO AS_PART_MNG
(
OBJID
,TARGET_OBJID
,PART_OBJID
,PRICE
)
VALUES
(
#{objId}::integer
,#{target_objid}::integer
,#{part_objid}::integer
,#{price}::varchar
)
DELETE FROM CUSTOMER_SERVICE_MGMT WHERE OBJID = #{OBJID}
INSERT INTO CUSTOMER_SERVICE_MGMT (
OBJID
,SERVICE_NO
,PRODUCT
,CONTRACT_OBJID
,CS_CATEGORY
,WARRANTY
,MANAGER_ID
,ACT_DATE
,CATEGORY_H
,CATEGORY_M
,CATEGORY_L
,TITLE
,BEFORE_CONTENTS
,AFTER_CONTENTS
,WRITER
,REGDATE
,STATUS
,TOTAL_SUP_PRICE
,TOTAL_WORK_DAY
,TOTAL_WORK_PERSON
,TOTAL_WORK_DAY_M
,TOTAL_LABOR_COST
,TOTAL_EXPENSES
) VALUES (
#{ objId }
,(SELECT 'CSM'||TO_CHAR(NOW(),'yy')::VARCHAR ||'-'||LPAD((SELECT nextval('seq_as_no'))::VARCHAR ,4,'0'))
,(CASE WHEN #{product} = '' THEN NULL ELSE #{product} END)
,#{ contract_objid }
,#{ cs_category }
,#{ warranty }
,#{ manager_id }
,#{ act_date }
,#{ category_h }
,#{ category_m }
,#{ category_l }
,#{ title }
,#{ before_contents }
,#{ after_contents }
,#{ writer }
,now()
,(CASE WHEN #{ status } = '' OR #{ status } IS NULL THEN '0000100' ELSE #{ status }::VARCHAR END)
,#{ TOTAL_SUP_PRICE }
,#{ TOTAL_WORK_DAY }
,#{ TOTAL_WORK_PERSON }
,#{ TOTAL_WORK_DAY_M }
,#{ TOTAL_LABOR_COST }
,#{ TOTAL_EXPENSES }
) ON CONFLICT (OBJID) DO
UPDATE SET
SERVICE_NO = #{ service_no }
,PRODUCT = (CASE WHEN #{product} = '' THEN NULL ELSE #{product} END)
,CONTRACT_OBJID = #{ contract_objid }
,CS_CATEGORY = #{ cs_category }
,WARRANTY = #{ warranty }
,MANAGER_ID = #{ manager_id }
,ACT_DATE = #{ act_date }
,CATEGORY_H = #{ category_h }
,CATEGORY_M = #{ category_m }
,CATEGORY_L = #{ category_l }
,TITLE = #{ title }
,BEFORE_CONTENTS = #{ before_contents }
,AFTER_CONTENTS = #{ after_contents }
,WRITER = #{ writer }
,REGDATE = now()
,STATUS = (CASE WHEN #{ status } = '' OR #{ status } IS NULL THEN '0000100' ELSE #{ status }::VARCHAR END)
,TOTAL_SUP_PRICE = #{ TOTAL_SUP_PRICE }
,TOTAL_WORK_DAY = #{ TOTAL_WORK_DAY }
,TOTAL_WORK_PERSON = #{ TOTAL_WORK_PERSON }
,TOTAL_WORK_DAY_M = #{ TOTAL_WORK_DAY_M }
,TOTAL_LABOR_COST = #{ TOTAL_LABOR_COST }
,TOTAL_EXPENSES = #{ TOTAL_EXPENSES }
DELETE FROM CUSTOMER_SERVICE_PART WHERE PARENT_OBJID = #{PARENT_OBJID}
INSERT INTO CUSTOMER_SERVICE_PART (
OBJID
,PARENT_OBJID
,PART_NO
,PART_NAME
,SPEC
,QTY
,CUR_QTY
,PRICE
,SUP_PRICE
) VALUES (
#{ OBJID }
,#{ PARENT_OBJID }
,#{ PART_NO }
,#{ PART_NAME }
,#{ SPEC }
,#{ QTY }
,#{ CUR_QTY }
,#{ PRICE }
,#{ SUP_PRICE }
) ON CONFLICT (OBJID) DO
UPDATE SET
PARENT_OBJID = #{ PARENT_OBJID }
,PART_NO = #{ PART_NO }
,PART_NAME = #{ PART_NAME }
,SPEC = #{ SPEC }
,QTY = #{ QTY }
,CUR_QTY = #{ CUR_QTY }
,PRICE = #{ PRICE }
,SUP_PRICE = #{ SUP_PRICE }
DELETE FROM CUSTOMER_SERVICE_WORKINGTIME WHERE PARENT_OBJID = #{PARENT_OBJID}
INSERT INTO CUSTOMER_SERVICE_WORKINGTIME (
OBJID
,PARENT_OBJID
,SUPPLY_OBJID
,FORM_DATE
,TO_DATE
,WORK_DAY
,WORK_PERSON
,WORK_DAY_M
,LABOR_COST
,EXPENSES
) VALUES (
#{ OBJID }
,#{ PARENT_OBJID }
,#{ SUPPLY_OBJID }
,#{ FORM_DATE }
,#{ TO_DATE }
,#{ WORK_DAY }
,#{ WORK_PERSON }
,#{ WORK_DAY_M }
,#{ LABOR_COST }
,#{ EXPENSES }
) ON CONFLICT (OBJID) DO
UPDATE SET
PARENT_OBJID = #{ PARENT_OBJID }
,SUPPLY_OBJID = #{ SUPPLY_OBJID }
,FORM_DATE = #{ FORM_DATE }
,TO_DATE = #{ TO_DATE }
,WORK_DAY = #{ WORK_DAY }
,WORK_PERSON = #{ WORK_PERSON }
,WORK_DAY_M = #{ WORK_DAY_M }
,LABOR_COST = #{ LABOR_COST }
,EXPENSES = #{ EXPENSES }