DELETE SURTAX
WHERE OBJID=#{objId}
UPDATE MATERIAL_MASTER_MGMT
SET DEL_YN='Y'
WHERE MATERIAL_MASTER_OBJID=#{objId}::integer
DELETE FROM MATERIAL_DETAIL_MGMT WHERE MATERIAL_MASTER_OBJID=#{objId}::integer
MERGE INTO SURTAX USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
ORDER_MGMT_OBJID=#{project_no}
,REGION_CD=#{h_region_cd}
,CUSTOMER_CD=#{h_customer_cd}
,REG_DATE=#{reg_date}
,TITLE=#{title}
,QTY=#{qty}
,PRICE=#{price}
,SUP_PRICE=#{sup_price}
,SUR_PRICE=#{sur_price}
,TOTAL_PRICE=#{total_price}
,REG_USER_ID=#{reg_user_id}
WHEN NOT MATCHED THEN
INSERT (
OBJID
,ORDER_MGMT_OBJID
,REGION_CD
,CUSTOMER_CD
,REG_DATE
,TITLE
,QTY
,PRICE
,SUP_PRICE
,SUR_PRICE
,TOTAL_PRICE
,REG_USER_ID
) VALUES (
#{objId}
,#{project_no}
,#{h_region_cd}
,#{h_customer_cd}
,#{reg_date}
,#{title}
,#{qty}
,#{price}
,#{sup_price}
,#{sur_price}
,#{total_price}
,#{userId}
)
MERGE INTO INVENTORY_MGMT USING DUAL ON (INVENTORY_MGMT_OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
PROJECT_MGMT_OBJID=#{projectno}
,PART_NAME=#{part_name}
,SPEC_CD=#{spec_cd}
,MFA_CD=#{mfa_cd}
,QTY=#{qty}
,UNIT_PRICE=#{unit_price}
,DEPT_CD=#{dept_cd}
,REG_DATE=#{reg_date}
,INV_CD=#{sort_cd}
,INV_REA_CD=#{reason_cd}
,INV_PUR_CD=#{pur_cd}
,INV_LOC_CD=#{local_cd}
WHEN NOT MATCHED THEN
INSERT (
INVENTORY_MGMT_OBJID
,PROJECT_MGMT_OBJID
,PART_NAME
,SPEC_CD
,MFA_CD
,QTY
,UNIT_PRICE
,DEPT_CD
,REG_DATE
,INV_CD
,INV_REA_CD
,INV_PUR_CD
,INV_LOC_CD
,REG_USER_ID
) VALUES (
#{objId}
,#{projectno}
,#{part_name}
,#{spec_cd}
,#{mfa_cd}
,#{qty}
,#{unit_price}
,#{dept_cd}
,#{reg_date}
,#{sort_cd}
,#{reason_cd}
,#{pur_cd}
,#{local_cd}
,#{userId}
)
DELETE FROM MATERIAL_RELEASE
WHERE INVENTORY_MGMT_OBJID = #{inventory_mgmt_objid}::integer
INSERT INTO MATERIAL_RELEASE (
MATERIAL_RELEASE_OBJID
,INVENTORY_MGMT_OBJID
,PROJECT_MGMT_OBJID
,REL_QTY
,REL_PUR_CD
,REL_DATE
,REL_USER_ID
,REG_DATE
,REG_USER_ID
)
VALUES
(
#{MATERIAL_RELEASE_OBJID}
,#{INVENTORY_MGMT_OBJID}
,#{PROJECT_MGMT_OBJID}
,#{REL_QTY}
,#{REL_PUR_CD}
,#{REL_DATE}
,#{REL_USER_ID}
,sysdate
,#{USERID}
)
UPDATE MATERIAL_MASTER_MGMT
SET STATUS_CD =#{status}
WHERE MATERIAL_MASTER_OBJID =#{material_master_objid}::numeric
UPDATE MATERIAL_MASTER_MGMT
SET FINAL_ORDER_AMOUNT = #{total}
WHERE MATERIAL_MASTER_OBJID =#{material_master_objid}
UPDATE MATERIAL_DETAIL_MGMT
SET WARE_DATE =#{WARE_DATE}
,WARE_QTY = #{WARE_QTY}
,RESULT = #{RESULT}
,LOCATION = #{LOCATION}
,INVENTORY_OBJID = #{OBJID}::numeric
WHERE MATERIAL_DETAIL_OBJID =#{MATERIAL_DETAIL_OBJID}::numeric
UPDATE MATERIAL_DETAIL_MGMT
SET INVENTORY_OBJID = #{OBJID}::numeric
WHERE MATERIAL_DETAIL_OBJID =#{MATERIAL_DETAIL_OBJID}::numeric
INSERT INTO MATERIAL_DETAIL_MGMT (
MATERIAL_DETAIL_OBJID
,MATERIAL_MASTER_OBJID
,RESOURCE_OBJID
,QTY
,PRICE
,UNIT_PRICE
,BIGO
,PART_NAME
,DO_NO
,THICKNESS
,WIDTH
,HEIGHT
,OUT_DIAMETER
,IN_DIAMETER
,LENGTH
)
VALUES
(
#{MATERIAL_DETAIL_OBJID}::integer
,#{MATERIAL_MASTER_OBJID}::integer
,#{RESOURCE_OBJID}::integer
,#{QTY}
,#{PRICE}
,#{UNIT_PRICE}
,#{BIGO}
,#{PART_NAME }
,#{DO_NO }
,#{THICKNESS }
,#{WIDTH }
,#{HEIGHT }
,#{OUT_DIAMETER }
,#{IN_DIAMETER }
,#{LENGTH }
)
INSERT INTO MATERIAL_COMPANY_MGMT (
MATERIAL_COMPANY_OBJID
,PROJECT_MGMT_OBJID
,PART_MGMT_OBJID
,SUP_CD
,REG_DATE
,REG_USER_ID
)
VALUES
(
#{MATERIAL_COMPANY_OBJID}
,#{PROJECT_MGMT_OBJID}
,#{PART_MGMT_OBJID}
,#{SUP_CD}
,sysdate
,#{connectUserId}
)
UPDATE PART_MGMT
SET SUP_CD=#{SUP_CD}
WHERE PART_MGMT_OBJID =#{PART_MGMT_OBJID}
DELETE FROM MATERIAL_COMPANY_MGMT
WHERE PROJECT_MGMT_OBJID = #{PROJECT_MGMT_OBJID}
INSERT INTO
MATERIAL_MASTER_MGMT
(
MATERIAL_MASTER_OBJID
,ORDER_NO
,SUP_CD
,TITLE
,FINAL_ORDER_AMOUNT
,REASON
,DELIVERY_PLACE
,RECV_DATE
,REG_USER_ID
,RECV_USERID
,STATUS_CD
,REG_DATE
,DEL_YN
,ORDER_DATE
)
VALUES (
#{material_master_objid}::integer
,(SELECT 'PO'||TO_CHAR(NOW(),'yyyy')::VARCHAR ||'-'||LPAD((SELECT (COUNT(1)+1) FROM MATERIAL_MASTER_MGMT AS T)::VARCHAR ,3,'0'))
,#{sup_cd}
,#{title}
,trim(replace(#{final_order_amount},',',''))
,#{reason}
,#{delivery_place}
,#{recv_date}
,#{connectUserId}
,#{recv_userid}
,#{status_cd}
,now()
,'N'
,#{order_date}
) ON
CONFLICT (material_master_objid) DO
UPDATE
SET SUP_CD =#{sup_cd}
,TITLE =#{title}
,RECV_USERID =#{recv_userid}
,RECV_DATE =#{recv_date}
,FINAL_ORDER_AMOUNT =trim(replace(#{final_order_amount},',',''))
,REASON =#{reason}
,STATUS_CD =#{status_cd}
,ORDER_DATE =#{order_date}
UPDATE MATERIAL_MASTER_MGMT
SET CHANGE_AMOUNT =TRIM(replace(#{change_amount},',',''))
,FINAL_ORDER_AMOUNT =TRIM(replace(#{final_order_amount},',',''))
,STATUS_CD =#{status_cd}
WHERE MATERIAL_MASTER_OBJID =#{material_master_objid}
DELETE FROM MATERIAL_DETAIL_MGMT
WHERE MATERIAL_MASTER_OBJID = #{material_master_objid}::integer
UPDATE MATERIAL_MASTER_MGMT
SET STATUS_CD = 'PURSTCD00400'
WHERE MATERIAL_MASTER_OBJID = #{targetObjId}
UPDATE MATERIAL_MASTER_MGMT
SET STATUS_CD = 'PURSTCD00700'
,ORDER_DATE = TO_CHAR(now(),'YYYY-MM-DD')
WHERE MATERIAL_MASTER_OBJID = #{targetObjId}::integer
UPDATE PART_MGMT
SET REL_STATUS = 'PRTS00200'
WHERE PART_MGMT_OBJID IN(SELECT PART_MGMT_OBJID
FROM MATERIAL_DETAIL_MGMT WHERE MATERIAL_MASTER_OBJID = #{targetObjId})
UPDATE PART_MGMT
SET REL_STATUS = #{status}
WHERE PART_MGMT_OBJID = #{objId}
INSERT INTO
INVENTORY_MNG
(
OBJID
,PARENT_OBJID
,DIVISION
,QTY
,LOCATION
,REMARK
,REGDATE
,EDITDATE
,WRITER
,IS_LAST
)
VALUES (
#{OBJID}::numeric
,#{RESOURCE_OBJID}::numeric
,null
,#{WARE_QTY}
,#{LOCATION}
,'자재발주 입고 자동등록'
,now()
,null
,#{WRITER}
,'Y'
)
UPDATE INVENTORY_MNG
SET IS_LAST='N'
WHERE PARENT_OBJID = #{RESOURCE_OBJID}::numeric
AND LOCATION = #{LOCATION}