INSERT INTO
order_mgmt
(order_mgmt_objid
,region_cd
,customer_cd
,order_title
,order_cd
,start_date
,del_date
,plant_cd
,outc_cd1
,outc_cd2
,outc_cd3
,outc_cd4
,outc_cd5
,outc_cd6
,outi_cd1
,outi_cd2
,outi_cd3
,outi_cd4
,outi_cd5
,outi_cd6
,outc_value1
,outc_value2
,outc_value3
,outc_value4
,outc_value5
,outc_value6
,req_date
,reason
,result_cd
,project_no
,order_price
,order_price_d
,ex_material_cost
,ex_labor_cost
,ex_expense_cost
,ex_material_cost_w
,ex_labor_cost_w
,ex_expense_cost_w
,design_pm
,production_pm
,electro_pm
,se_pm
,purchase_pm
,manager_pm
,reg_id
,reg_date
,project_division
,project_derivation_no
,project_mean
,ponum
,invoice
)
VALUES (
#{objId}
,(SELECT TO_CHAR(NOW(),'yyyy')::VARCHAR ||'-'||LPAD((SELECT (COUNT(1)+1) FROM order_mgmt AS T)::VARCHAR ,3,'0'))
,#{customer_cd}
,#{order_title}
,#{order_cd}
,#{start_date}
,#{del_date}
,#{plant_cd}
,#{outc_cd1}
,#{outc_cd2}
,#{outc_cd3}
,#{outc_cd4}
,#{outc_cd5}
,#{outc_cd6}
,#{outi_cd1}
,#{outi_cd2}
,#{outi_cd3}
,#{outi_cd4}
,#{outi_cd5}
,#{outi_cd6}
,#{outc_value1}
,#{outc_value2}
,#{outc_value3}
,#{outc_value4}
,#{outc_value5}
,#{outc_value6}
,#{req_date}
,#{reason}
,#{result_cd}
,#{project_no}
,#{order_price}
,#{order_price_d}
,#{ex_material_cost}
,#{ex_labor_cost}
,#{ex_expense_cost}
,#{ex_material_cost_w}
,#{ex_labor_cost_w}
,#{ex_expense_cost_w}
,#{design_pm}
,#{production_pm}
,#{electro_pm}
,#{se_pm}
,#{purchase_pm}
,#{manager_pm}
,#{userId}
,now()
,#{project_division}
,#{project_derivation_no}
,#{project_mean}
,#{ponum}
,#{invoice}
) ON
CONFLICT (order_mgmt_objid) DO
UPDATE
SET customer_cd=#{customer_cd}
,order_title=#{order_title}
,order_cd=#{order_cd}
,start_date=#{start_date}
,del_date=#{del_date}
,plant_cd=#{plant_cd}
,outc_cd1=#{outc_cd1}
,outc_cd2=#{outc_cd2}
,outc_cd3=#{outc_cd3}
,outc_cd4=#{outc_cd4}
,outc_cd5=#{outc_cd5}
,outc_cd6=#{outc_cd6}
,outi_cd1=#{outi_cd1}
,outi_cd2=#{outi_cd2}
,outi_cd3=#{outi_cd3}
,outi_cd4=#{outi_cd4}
,outi_cd5=#{outi_cd5}
,outi_cd6=#{outi_cd6}
,outc_value1=#{outc_value1}
,outc_value2=#{outc_value2}
,req_date=#{req_date}
,reason=#{reason}
,result_cd=#{result_cd}
,project_no=#{project_no}
,order_price=#{order_price}
,order_price_d=#{order_price_d}
,ex_material_cost=#{ex_material_cost}
,ex_labor_cost=#{ex_labor_cost}
,ex_expense_cost=#{ex_expense_cost}
,ex_material_cost_w=#{ex_material_cost_w}
,ex_labor_cost_w=#{ex_labor_cost_w}
,ex_expense_cost_w=#{ex_expense_cost_w}
,design_pm=#{design_pm}
,production_pm=#{production_pm}
,electro_pm=#{electro_pm}
,se_pm=#{se_pm}
,purchase_pm=#{purchase_pm}
,manager_pm=#{manager_pm}
,project_division=#{project_division}
,project_derivation_no=#{project_derivation_no}
,project_mean=#{project_mean}
,ponum=#{ponum}
,invoice=#{invoice}
MERGE INTO PMS_REL_PROD_REF_DEPT T USING DUAL ON (T.TARGET_OBJID = #{targetObjId} AND T.DEPT_CODE = #{deptCode})
WHEN NOT MATCHED THEN
INSERT (
OBJID
, TARGET_OBJID
, DEPT_CODE
, REGDATE
) VALUES (
#{objId}
, #{targetObjId}
, #{deptCode}
, SYSDATE
)
MERGE INTO PMS_REL_PJT_CONCEPT_PROD USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE
SET
PROD_OBJID = #{productObjId}
, ESTIMATE_NO = #{estimateNo}
, ESTIMATE_REQ_DATE = TO_DATE(#{estimateReqDate}, 'YYYY-MM-DD')
, ESTIMATE_SUBMIT_DATE = TO_DATE(#{estimateSubmitDate}, 'YYYY-MM-DD')
, ESTIMATE_PIC = #{estimatePICUserId}
, YEARLY_AVG_PRODUCTION_CNT = #{productionAvgCnt}
, TOTAL_PRODUCTION_CNT = #{productionAllCnt}
, IS_DEL = '1'
WHEN NOT MATCHED THEN
INSERT (
OBJID
, TARGET_OBJID
, PROD_OBJID
, ESTIMATE_NO
, ESTIMATE_REQ_DATE
, ESTIMATE_SUBMIT_DATE
, ESTIMATE_PIC
, YEARLY_AVG_PRODUCTION_CNT
, TOTAL_PRODUCTION_CNT
, IS_DEL
, WRITER
, REGDATE
, STATUS
) VALUES (
#{objId}
, #{targetObjId}
, #{productObjId}
, #{estimateNo}
, TO_DATE(#{estimateReqDate}, 'YYYY-MM-DD')
, TO_DATE(#{estimateSubmitDate}, 'YYYY-MM-DD')
, #{estimatePICUserId}
, #{productionAvgCnt}
, #{productionAllCnt}
, '1'
, #{userId}
, sysdate
, 'create'
)
UPDATE PMS_REL_PROD_REF_DEPT SET REPLY_REQ_DATE = #{replyReqDate} WHERE TARGET_OBJID = #{targetObjId} AND DEPT_CODE = #{deptCode}
MERGE INTO PMS_PJT_CONCEPT_INFO USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
FOREIGN_TYPE = #{foreignType}
, OEM_OBJID = #{oemObjId}
, CAR_OBJID = #{carTypeObjId}
, PJT_TYPE = #{projectType}
, OEM_FACTORY = #{factory}
WHEN NOT MATCHED THEN
INSERT (
OBJID
, FOREIGN_TYPE
, OEM_OBJID
, CAR_OBJID
, PJT_TYPE
, OEM_FACTORY
, IS_DEL
, WRITER
, STATUS
, REGDATE
) VALUES (
#{objId}
, #{foreignType}
, #{oemObjId}
, #{carTypeObjId}
, #{projectType}
, #{factory}
, '1'
, #{userId}
, 'create'
, sysdate
)
MERGE INTO ORDER_MGMT_SUBLIST USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
PARENT_OBJID = #{parentObjId}
,MODEL_NAME = #{model_name}
,SPEC_CD = #{spec_cd}
,CNT = #{count}
,CONTRACT_AMOUNT = #{contract_amount}
,DELIVERY_DATE = #{delivery_date}
,SCH_DATE = #{sch_date}
WHEN NOT MATCHED THEN
INSERT (
OBJID
,PARENT_OBJID
,MODEL_NAME
,SPEC_CD
,CNT
,CONTRACT_AMOUNT
,DELIVERY_DATE
,SCH_DATE
,REG_DATE
) VALUES (
#{objId}
,#{parentObjId}
,#{model_name}
,#{spec_cd}
,#{count}
,#{contract_amount}
,#{delivery_date}
,#{sch_date}
,sysdate
)
DELETE FROM PMS_REL_PJT_CONCEPT_MILESTONE WHERE TARGET_OBJID = #{objId}
MERGE INTO PMS_REL_PJT_CONCEPT_MILESTONE USING DUAL ON (TARGET_OBJID = #{targetObjId} AND MILESTONE_OBJID = #{milestoneObjId})
WHEN MATCHED THEN
UPDATE SET
MILESTONE_DATE = TO_DATE(#{milestoneDate}, 'YYYY-MM-DD')
WHEN NOT MATCHED THEN
INSERT (
OBJID
, TARGET_OBJID
, OEM_OBJID
, MILESTONE_OBJID
, MILESTONE_DATE
) VALUES (
#{objId}
, #{targetObjId}
, #{oemObjId}
, #{milestoneObjId}
, #{milestoneDate}
)
DELETE FROM PMS_REL_PROD_REF_DEPT WHERE TARGET_OBJID = #{objId}
DELETE FROM PMS_REL_PROD_REF_DEPT WHERE OBJID = #{objId}
DELETE FROM PMS_REL_PJT_CONCEPT_PROD WHERE OBJID = #{objId}
DELETE FROM ORDER_MGMT_SUBLIST
WHERE OBJID IN
#{objkey}
UPDATE PMS_REL_PJT_CONCEPT_PROD SET BIDDING_RESULT = #{biddingResult} WHERE OBJID = #{projectConceptProdObjId}
UPDATE PMS_REL_PJT_CONCEPT_PROD SET STATUS = #{changeStatus} WHERE OBJID = #{projectConceptProdObjId}
UPDATE PMS_REL_PJT_CONCEPT_PROD SET STATUS = 'complete' WHERE OBJID = #{conceptProdObjId}
UPDATE PMS_PJT_CONCEPT_INFO SET STATUS = 'complete' WHERE OBJID = #{targetObjId}
MERGE INTO PMS_PJT_CONCEPT_QNA P USING DUAL ON ( P.OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
P.FOREIGN_TYPE = #{region},
P.OEM_OBJID = #{oem},
P.CAR_OBJID = #{carType},
P.PROD_GROUP_OBJID = #{productGroup},
P.PROD_OBJID = #{productType},
P.TITLE = #{qnaTitle},
P.CONTENTS = #{qnaContents}
WHEN NOT MATCHED THEN
INSERT
(
P.OBJID,
P.FOREIGN_TYPE,
P.OEM_OBJID,
P.CAR_OBJID,
P.PROD_GROUP_OBJID,
P.PROD_OBJID,
P.TITLE,
P.CONTENTS,
P.WRITER,
P.REGDATE
)
VALUES
(
#{objId},
#{region},
#{oem},
#{carType},
#{productGroup},
#{productType},
#{qnaTitle},
#{qnaContents},
#{writer},
SYSDATE
)
DELETE FROM ORDER_MGMT
WHERE order_mgmt_objid=#{objId}::integer
DELETE FROM ORDER_MGMT_EXAMPLE
WHERE order_mgmt_objid = #{orderobjId}::integer
INSERT INTO ORDER_MGMT_EXAMPLE
(
OBJID
,ORDER_MGMT_OBJID
,SORT
,NAME
,PRODUCT_NAME
,STANDARD
,LENGTH
,UNIT
,QTY
,UNIT_PRICE
,PRICE
,ORI_PRICE
,REGDATE
) VALUES (
#{OBJID}::integer
,#{ORDER_MGMT_OBJID}::integer
,#{SORT}
,#{NAME}
,#{PRODUCT_NAME}
,#{STANDARD}
,#{LENGTH}
,#{UNIT}
,REPLACE(#{QTY},',','')
,REPLACE(#{UNIT_PRICE},',','')
,REPLACE(#{PRICE},',','')
,REPLACE(#{ORI_PRICE},',','')
,now()
)