(
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}
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}
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}
)