(
SELECT
OBJID,
EQUIPMENT_NUMBER,
DIVISION,
BUYER,
PURCHASE_AMOUNT,
PURCHASE_DATE,
TO_CHAR(T.PURCHASE_DATE,'YYYY-MM-DD') AS PURCHASE_DATE_TITLE,
LOCATION,
UNIQUENESS,
WEIGHT,
SPAN,
LENGTH,
HEAD,
NECK_HEIGHT,
WHEEL_BASE,
WINDING,
RAIL,
WHEEL_SIZE,
TRANSVERSE,
BASE_PLATE,
PINION_GEAR,
ELECTRIC,
FRAME,
UPPER_LOWER_PLATE,
INNER_WIDTH,
SIDE_PLATE,
OUTER_WIDTH,
REPAIR_AMOUNT,
SALES_TARGET,
CASE
WHEN SALES_TARGET != '' AND SALES_TARGET IS NOT NULL
THEN (SELECT PROJECT_NO FROM ORDER_MGMT O WHERE 1=1 AND O.ORDER_MGMT_OBJID = T.SALES_TARGET::NUMERIC)
ELSE ''
END AS SALES_TARGET_TITLE,
SALES_AMOUNT,
INPUT_AMOUNT,
REGDATE,
TO_CHAR(T.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
TO_CHAR(T.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
TO_CHAR(T.EDITDATE,'YYYY-MM-DD') AS EDITDATE_TITLE,
WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_TITLE,
STATUS,
USE_YN,
(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE 1 = 1 AND F.TARGET_OBJID = T.OBJID AND F.DOC_TYPE = 'USED_MNG_IMAGE' AND UPPER(F.STATUS) = 'ACTIVE') as USED_MNG_IMAGE_CNT,
(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE 1 = 1 AND F.TARGET_OBJID = T.OBJID AND F.DOC_TYPE = 'USED_MNG_REPAIR' AND UPPER(F.STATUS) = 'ACTIVE') as USED_MNG_REPAIR_CNT,
A.APPR_STATUS,
A.ROUTE_OBJID,
A.APPROVAL_OBJID
FROM
USED_MNG T
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 ('USED_MNG')
) A
ON T.OBJID::numeric = A.TARGET_OBJID
)
INSERT INTO USED_MNG
(
OBJID
,EQUIPMENT_NUMBER
,DIVISION
,BUYER
,PURCHASE_AMOUNT
,PURCHASE_DATE
,LOCATION
,UNIQUENESS
,WEIGHT
,SPAN
,LENGTH
,HEAD
,NECK_HEIGHT
,WHEEL_BASE
,WINDING
,RAIL
,WHEEL_SIZE
,TRANSVERSE
,BASE_PLATE
,PINION_GEAR
,ELECTRIC
,FRAME
,UPPER_LOWER_PLATE
,INNER_WIDTH
,SIDE_PLATE
,OUTER_WIDTH
,REPAIR_AMOUNT
,SALES_TARGET
,SALES_AMOUNT
,INPUT_AMOUNT
,REGDATE
,WRITER
,STATUS
,USE_YN
)
VALUES
(
#{OBJID}::numeric
,'UE-'||to_char(now(),'YYYY')||'-'||LPAD((select coalesce(substring(max(EQUIPMENT_NUMBER),9,3),'0')::numeric+1 from used_mng)::text, 3, '0')
,#{DIVISION}
,#{BUYER}
,#{PURCHASE_AMOUNT}
,#{PURCHASE_DATE}::TIMESTAMP
,#{LOCATION}
,#{UNIQUENESS}
,#{WEIGHT}
,#{SPAN}
,#{LENGTH}
,#{HEAD}
,#{NECK_HEIGHT}
,#{WHEEL_BASE}
,#{WINDING}
,#{RAIL}
,#{WHEEL_SIZE}
,#{TRANSVERSE}
,#{BASE_PLATE}
,#{PINION_GEAR}
,#{ELECTRIC}
,#{FRAME}
,#{UPPER_LOWER_PLATE}
,#{INNER_WIDTH}
,#{SIDE_PLATE}
,#{OUTER_WIDTH}
,#{REPAIR_AMOUNT}
,#{SALES_TARGET}
,#{SALES_AMOUNT}
,#{INPUT_AMOUNT}
,now()
,#{WRITER}
,(SELECT CODE_ID FROM COMM_CODE WHERE PARENT_CODE_ID = '0001488' AND CODE_NAME = '작성중')
,#{USE_YN}
) ON CONFLICT (OBJID) DO
UPDATE
SET
EQUIPMENT_NUMBER = #{EQUIPMENT_NUMBER},
DIVISION = #{DIVISION},
BUYER = #{BUYER},
PURCHASE_AMOUNT = #{PURCHASE_AMOUNT},
PURCHASE_DATE = #{PURCHASE_DATE}::TIMESTAMP,
LOCATION = #{LOCATION},
UNIQUENESS = #{UNIQUENESS},
WEIGHT = #{WEIGHT},
SPAN = #{SPAN},
LENGTH = #{LENGTH},
HEAD = #{HEAD},
NECK_HEIGHT = #{NECK_HEIGHT},
WHEEL_BASE = #{WHEEL_BASE},
WINDING = #{WINDING},
RAIL = #{RAIL},
WHEEL_SIZE = #{WHEEL_SIZE},
TRANSVERSE = #{TRANSVERSE},
BASE_PLATE = #{BASE_PLATE},
PINION_GEAR = #{PINION_GEAR},
ELECTRIC = #{ELECTRIC},
FRAME = #{FRAME},
UPPER_LOWER_PLATE = #{UPPER_LOWER_PLATE},
INNER_WIDTH = #{INNER_WIDTH},
SIDE_PLATE = #{SIDE_PLATE},
OUTER_WIDTH = #{OUTER_WIDTH},
REPAIR_AMOUNT = #{REPAIR_AMOUNT},
SALES_TARGET = #{SALES_TARGET},
SALES_AMOUNT = #{SALES_AMOUNT},
INPUT_AMOUNT = #{INPUT_AMOUNT},
WRITER = #{WRITER},
EDITDATE = now(),
STATUS = #{STATUS},
USE_YN = #{USE_YN}
DELETE FROM USED_MNG WHERE OBJID = #{OBJID}::numeric