( SELECT OBJID, RESOURCE_TITLE AS RESOURCE_TITLE_ORG, PRODUCT_TITLE AS PRODUCT_TITLE_ORG, STANDARD, UNIT_TITLE, UNIT, WEIGHT, REGDATE, TO_CHAR(RM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE, TO_CHAR(RM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE, WRITER, (SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RM.WRITER) AS WRITER_TITLE, IM.QTY, IM.REGDATE_TITLE, IM.REMARK, IM.LOCATION, IM.REMARK, IM.INVENTORY_OBJID FROM RESOURCE_MNG RM LEFT OUTER JOIN ( SELECT OBJID AS INVENTORY_OBJID, PARENT_OBJID, QTY, LOCATION, REMARK, TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE FROM INVENTORY_MNG WHERE IS_LAST = 'Y' ) IM ON RM.OBJID = IM.PARENT_OBJID ) ( SELECT OBJID, PARENT_OBJID, UNIT_PRICE, REMARK, REGDATE, TO_CHAR(RP.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE, TO_CHAR(RP.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE, WRITER, (SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RP.WRITER) AS WRITER_TITLE FROM RESOURCE_PRICE RP ) UPDATE INVENTORY_MNG SET IS_LAST = 'N' WHERE PARENT_OBJID = #{PARENT_OBJID}::numeric AND LOCATION = #{LOCATION} INSERT INTO INVENTORY_MNG ( OBJID ,PARENT_OBJID ,QTY ,LOCATION ,REMARK ,REGDATE ,WRITER ,IS_LAST ) VALUES ( #{OBJID}::numeric ,#{PARENT_OBJID}::numeric ,#{QTY}::numeric ,#{LOCATION} ,#{REMARK} ,#{DELIVERY_DATE}::TIMESTAMP ,#{WRITER} ,'Y' ) INSERT INTO INVENTORY_MNG ( OBJID ,PARENT_OBJID ,PART_OBJID ,LD_PART_OBJID ,QTY ,LOCATION ,SUB_LOCATION ,REMARK ,REGDATE ,WRITER ,IS_LAST ) VALUES ( #{OBJID}::NUMERIC ,(SELECT OBJID FROM RESOURCE_MNG WHERE 1=1 AND PART_OBJID = #{PART_OBJID}) ,#{PART_OBJID} ,#{LD_PART_OBJID} ,#{QTY}::NUMERIC ,#{LOCATION} ,#{SUB_LOCATION} ,#{REMARK} ,NOW() ,#{WRITER} ,'Y' ) INSERT INTO INVENTORY_MNG ( OBJID ,PARENT_OBJID ,PART_OBJID ,LD_PART_OBJID ,QTY ,LOCATION ,SUB_LOCATION ,REMARK ,REGDATE ,WRITER ,IS_LAST ) VALUES ( #{OBJID}::NUMERIC ,(SELECT OBJID FROM RESOURCE_MNG WHERE 1=1 AND LD_PART_OBJID = #{LD_PART_OBJID}) ,#{PART_OBJID} ,#{LD_PART_OBJID} ,#{QTY}::NUMERIC ,#{LOCATION} ,#{SUB_LOCATION} ,#{REMARK} ,NOW() ,#{WRITER} ,'Y' ) INSERT INTO INPUT_RESOURCE ( OBJID ,PARENT_OBJID ,TARGET_OBJID ,INPUT_QTY ,INPUT_DATE ,REGDATE ,WRITER ,USED ) VALUES ( #{OBJID}::numeric ,#{PARENT_OBJID}::numeric ,#{TARGET_OBJID}::numeric ,#{INPUT_QTY}::numeric ,#{INPUT_DATE}::TIMESTAMP ,NOW() ,#{WRITER} ,#{used} ) DELETE FROM INVENTORY_MNG WHERE PARENT_OBJID = #{OBJID}::numeric INSERT INTO INVENTORY_MGMT ( OBJID ,CONTRACT_OBJID ,UNIT ,PART_OBJID ,CLS_CD ,CAU_CD ,QTY ,LOCATION ,REG_DATE ,PRICE ,WRITER ) VALUES ( #{objid} ,#{project_no} ,#{unit} ,#{part_no} ,#{cls_cd} ,#{cau_cd} ,#{qty} ,#{location} ,#{reg_date} ,#{price} ,#{writer} ) DELETE FROM INVENTORY_MGMT WHERE OBJID IN #{objkey} INSERT INTO INVENTORY_MGMT_HISTORY ( OBJID ,PARENT_OBJID ,CONTRACT_OBJID ,REG_DATE ,INPUT_QTY ,INPUT_DATE ,ASSUMPTION_USER ,SUCCESSOR_USER ) VALUES ( #{HISOBJID} ,#{OBJID} ,#{input_contract_objid} ,now() ,#{input_qty } ,#{input_date } ,#{assumption_user } ,#{successor_user } ) DELETE FROM INVENTORY_MGMT_HISTORY WHERE OBJID = #{OBJID} INSERT INTO INVENTORY_MGMT ( OBJID ,CONTRACT_OBJID , UNIT , PART_OBJID , CLS_CD , CAU_CD , QTY , LOCATION , SUB_LOCATION , REG_DATE , PRICE , WRITER , INPUT_CONTRACT_OBJID , INPUT_QTY , INPUT_DATE , ASSUMPTION_USER , SUCCESSOR_USER ) VALUES ( #{OBJID} , #{CONTRACT_OBJID} , #{UNIT} , #{PART_OBJID} , '0001205' , #{CAU_CD} , #{RECEIPT_QTY} , #{LOCATION} , #{SUB_LOCATION} , to_char(now(),'yyyy-mm-dd') , (SELECT PARTNER_PRICE FROM PURCHASE_ORDER_PART AS O WHERE O.PURCHASE_ORDER_MASTER_OBJID =#{ORDER_OBJID} AND PART_OBJID = #{PART_OBJID}) , #{WRITER} , #{INPUT_CONTRACT_OBJID} , #{INPUT_QTY} , #{INPUT_DATE} , #{ASSUMPTION_USER} , #{SUCCESSOR_USER} ) ON CONFLICT (CONTRACT_OBJID,UNIT,PART_OBJID) DO UPDATE SET REG_DATE = #{REG_DATE} INSERT INTO INVENTORY_MGMT_IN ( OBJID , PARENT_OBJID , RECEIPT_QTY , LOCATION , SUB_LOCATION , WRITER , REGDATE , CONTRACT_MGMT_OBJID , PURCHASE_ORDER_MASTER_OBJID , PURCHASE_ORDER_SUB_OBJID ) VALUES ( #{OBJID} , #{PARENT_OBJID} , #{RECEIPT_QTY} , #{LOCATION} , #{SUB_LOCATION} , #{WRITER} , now() , #{CONTRACT_MGMT_OBJID} , #{PURCHASE_ORDER_MASTER_OBJID} , #{PURCHASE_ORDER_SUB_OBJID} ) INSERT INTO INVENTORY_MGMT_OUT ( OBJID ,PARENT_OBJID ,REQUEST_QTY ,WRITER ,REGDATE ,INVENTORY_REQUEST_MASTER_OBJID ,SIGN ,CONTRACT_MGMT_OBJID ,UNIT ) VALUES ( #{OBJID } ,#{PARENT_OBJID } ,#{REQUEST_QTY } ,#{WRITER } ,NOW() ,#{INVENTORY_REQUEST_MASTER_OBJID} ,#{SIGN} ,#{CONTRACT_MGMT_OBJID} ,#{UNIT} ) ON CONFLICT (OBJID) DO UPDATE SET REQUEST_QTY = #{REQUEST_QTY} ,OUT_QTY = #{OUT_QTY} ,OUT_DATE = #{OUT_DATE} ,ACQ_USER = #{ACQ_USER} ,CONTRACT_MGMT_OBJID = #{CONTRACT_MGMT_OBJID} ,UNIT = #{UNIT} UPDATE INVENTORY_MGMT_IN SET OUT_OBJID = CASE WHEN OUT_OBJID IS NULL THEN #{OBJID} ELSE OUT_OBJID || ',' || #{OBJID} END, REQUEST_QTY = CASE WHEN REQUEST_QTY IS NULL OR REQUEST_QTY = '' THEN #{REQUEST_QTY} ELSE (TRIM(REQUEST_QTY)::numeric + #{REQUEST_QTY}::numeric)::text END WHERE OBJID = #{IN_OBJID} UPDATE INVENTORY_MGMT_IN SET OUT_QTY = CASE WHEN OUT_QTY IS NULL OR OUT_QTY = '' THEN #{OUT_QTY} ELSE (TRIM(OUT_QTY)::numeric + #{OUT_QTY}::numeric)::text END WHERE OBJID = #{IN_OBJID} INSERT INTO INVENTORY_MGMT_OUT ( OBJID ,PARENT_OBJID ,REQUEST_QTY ,WRITER ,REGDATE ,INVENTORY_REQUEST_MASTER_OBJID ,SIGN ) VALUES ( #{OBJID } ,#{PARENT_OBJID } ,#{REQUEST_QTY } ,#{WRITER } ,NOW() ,#{INVENTORY_REQUEST_MASTER_OBJID} ,#{SIGN} ) ON CONFLICT (OBJID) DO UPDATE SET OUT_QTY = #{OUT_QTY} ,OUT_DATE = #{OUT_DATE} ,ACQ_USER = #{ACQ_USER} ,WRITER = #{WRITER} INSERT INTO INVENTORY_MGMT_OUT ( OBJID ,ACQ_USER ,SIGN ) VALUES ( #{OBJID} ,#{ACQ_USER} ,#{SIGN} ) ON CONFLICT (OBJID) DO UPDATE SET ACQ_USER = #{ACQ_USER} ,SIGN = #{SIGN} INSERT INTO INVENTORY_MGMT_OUT_MASTER ( OBJID ,PARENT_OBJID ,INVENTORY_OUT_NO ,REQUEST_DATE ,REQUEST_ID ,WRITER ,REGDATE ,REMARK ,CONTRACT_MGMT_OBJID ) VALUES ( #{INVENTORY_REQUEST_MASTER_OBJID} ,#{PARENT_OBJID } ,(SELECT 'Rfw-'||TO_CHAR(NOW(),'YYYY')||'-'||(coalesce(MAX(case when SPLIT_PART( INVENTORY_OUT_NO, '-', 3) = '' or INVENTORY_OUT_NO is null then '0' else SPLIT_PART( INVENTORY_OUT_NO, '-', 3) end ::numeric ))::INTEGER + 1)::TEXT FROM INVENTORY_MGMT_OUT_MASTER) ,#{REQUEST_DATE } ,#{WRITER } ,#{WRITER } ,NOW() ,#{REMARK } ,#{CONTRACT_MGMT_OBJID } ) ON CONFLICT (OBJID) DO UPDATE SET REMARK = #{REMARK } DELETE FROM INVENTORY_MGMT_OUT WHERE INVENTORY_REQUEST_MASTER_OBJID = #{INVENTORY_REQUEST_MASTER_OBJID} UPDATE INVENTORY_MGMT_OUT_MASTER SET RECEPTION_STATUS = #{RECEPTION_STATUS} ,RECEPTION_DATE = #{RECEPTION_DATE} ,RECEPTION_ID = #{RECEPTION_ID} WHERE OBJID = #{OBJID} INSERT INTO INVENTORY_MGMT_OUT ( OBJID ,SIGN ) VALUES ( #{OBJID} ,#{SIGN} ) ON CONFLICT (OBJID) DO UPDATE SET SIGN = #{SIGN} UPDATE INVENTORY_MGMT_OUT_MASTER SET OUTSTATUS = #{OUTSTATUS} ,REQUEST_DATE = #{REQUEST_DATE} WHERE OBJID = #{OBJID} UPDATE INVENTORY_MGMT_OUT SET OUT_DATE = #{REQUEST_DATE} WHERE INVENTORY_REQUEST_MASTER_OBJID = #{OBJID} UPDATE INVENTORY_MGMT_IN SET MOVE_OBJID = #{OBJID} ,MOVE_QTY = #{SUM_MOVE_QTY} WHERE OBJID = #{MOVE_OBJID} INSERT INTO INVENTORY_MGMT_IN ( OBJID ,PARENT_OBJID ,RECEIPT_QTY ,LOCATION ,SUB_LOCATION ,WRITER ,REGDATE ,PURCHASE_ORDER_MASTER_OBJID ,CONTRACT_MGMT_OBJID ,PURCHASE_ORDER_SUB_OBJID ,MOVE_DATE ,MOVE_USER ) ( SELECT #{OBJID} ,PARENT_OBJID ,#{MOVE_QTY} ,#{LOCATION} ,#{SUB_LOCATION} ,#{WRITER} ,now() ,PURCHASE_ORDER_MASTER_OBJID ,CONTRACT_MGMT_OBJID ,PURCHASE_ORDER_SUB_OBJID ,#{MOVE_DATE} ,#{MOVE_USER} FROM INVENTORY_MGMT_IN WHERE MOVE_OBJID = #{OBJID} )