INSERT INTO PURCHASE_ORDER_MASTER ( OBJID, PO_CLIENT_ID, PURCHASE_ORDER_NO, CATEGORY_CD, PRODUCT_GROUP, PRODUCT, PRODUCT_CODE, MY_COMPANY_OBJID, PARTNER_OBJID, DELIVERY_DATE, DELIVERY_PLACE, EFFECTIVE_DATE, PAYMENT_TERMS, REMARK, WRITER, REGDATE, STATUS, SALES_REQUEST_OBJID, SALES_MNG_USER_ID ,TITLE ,PURCHASE_DATE ,CONTRACT_MGMT_OBJID ,TYPE ,INSPECT_METHOD ,TOTAL_PRICE_TXT ,TOTAL_PRICE_TXT_ALL ,VAT_METHOD ,TOTAL_SUPPLY_UNIT_PRICE ,TOTAL_SUPPLY_PRICE ,TOTAL_REAL_SUPPLY_PRICE ,DISCOUNT_PRICE ,TOTAL_PRICE ,NEGO_RATE ,SUPPLY_BUS_NO ,SUPPLY_USER_NAME ,SUPPLY_USER_HP ,SUPPLY_USER_TEL ,SUPPLY_USER_FAX ,SUPPLY_USER_EMAIL ,SUPPLY_ADDR ,UNIT_CODE ,BOM_REPORT_OBJID ,ORDER_TYPE_CD ,MULTI_YN ,MULTI_MASTER_YN ,MULTI_MASTER_OBJID ,DELIVERY_PLAN_DATE ,DELIVERY_PLAN_QTY ,PURCHASE_ORDER_NO_ORG ) VALUES ( #{OBJID}, #{PO_CLIENT_ID}, (SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||(COALESCE(MAX(case when SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) = '' or PURCHASE_ORDER_NO is null then '0' else SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) end ::numeric ))::INTEGER+1)::TEXT FROM PURCHASE_ORDER_MASTER), #{CATEGORY_CD}, #{PRODUCT_GROUP}, #{PRODUCT}, #{PRODUCT_CODE}, #{MY_COMPANY_OBJID}, #{PARTNER_OBJID}, #{DELIVERY_DATE}, #{DELIVERY_PLACE}, #{EFFECTIVE_DATE}, #{PAYMENT_TERMS}, #{REMARK}, #{WRITER}, NOW(), #{STATUS}, #{SALES_REQUEST_OBJID}, #{SALES_MNG_USER_ID} ,#{TITLE} ,#{PURCHASE_DATE} ,#{CONTRACT_MGMT_OBJID}::NUMERIC ,#{TYPE } ,#{INSPECT_METHOD } ,#{TOTAL_PRICE_TXT } ,#{TOTAL_PRICE_TXT_ALL } ,#{VAT_METHOD } ,#{TOTAL_SUPPLY_UNIT_PRICE} ,#{TOTAL_SUPPLY_PRICE} ,#{TOTAL_REAL_SUPPLY_PRICE} ,#{DISCOUNT_PRICE } ,#{TOTAL_PRICE } ,#{NEGO_RATE } ,#{SUPPLY_BUS_NO } ,#{SUPPLY_USER_NAME } ,#{SUPPLY_USER_HP } ,#{SUPPLY_USER_TEL } ,#{SUPPLY_USER_FAX } ,#{SUPPLY_USER_EMAIL } ,#{SUPPLY_ADDR } ,#{UNIT_CODE } ,#{BOM_REPORT_OBJID } ,#{ORDER_TYPE_CD } ,#{MULTI_YN } ,#{MULTI_MASTER_YN } ,#{MULTI_MASTER_OBJID } ,#{DELIVERY_PLAN_DATE} ,#{DELIVERY_PLAN_QTY} ,#{PURCHASE_ORDER_NO_ORG} ) ON CONFLICT (OBJID) DO UPDATE SET PO_CLIENT_ID = #{PO_CLIENT_ID}, CATEGORY_CD = #{CATEGORY_CD}, PRODUCT_GROUP = #{PRODUCT_GROUP}, PRODUCT = #{PRODUCT}, PRODUCT_CODE = #{PRODUCT_CODE}, MY_COMPANY_OBJID = #{MY_COMPANY_OBJID}, PARTNER_OBJID = #{PARTNER_OBJID}, DELIVERY_DATE = #{DELIVERY_DATE}, DELIVERY_PLACE = #{DELIVERY_PLACE}, EFFECTIVE_DATE = #{EFFECTIVE_DATE}, PAYMENT_TERMS = #{PAYMENT_TERMS}, REMARK = #{REMARK}, WRITER = #{WRITER}, STATUS = #{STATUS}, SALES_MNG_USER_ID = #{SALES_MNG_USER_ID} ,TITLE = #{TITLE} ,PURCHASE_DATE = #{PURCHASE_DATE} ,CONTRACT_MGMT_OBJID = #{CONTRACT_MGMT_OBJID}::NUMERIC ,TYPE = #{TYPE } ,INSPECT_METHOD = #{INSPECT_METHOD } ,TOTAL_PRICE_TXT = #{TOTAL_PRICE_TXT } ,TOTAL_PRICE_TXT_ALL = #{TOTAL_PRICE_TXT_ALL } ,VAT_METHOD = #{VAT_METHOD } ,TOTAL_SUPPLY_UNIT_PRICE = #{TOTAL_SUPPLY_UNIT_PRICE} ,TOTAL_SUPPLY_PRICE = #{TOTAL_SUPPLY_PRICE} ,TOTAL_REAL_SUPPLY_PRICE = #{TOTAL_REAL_SUPPLY_PRICE} ,DISCOUNT_PRICE = #{DISCOUNT_PRICE } ,TOTAL_PRICE = #{TOTAL_PRICE } ,NEGO_RATE = #{NEGO_RATE } ,SUPPLY_BUS_NO = #{SUPPLY_BUS_NO } ,SUPPLY_USER_NAME = #{SUPPLY_USER_NAME } ,SUPPLY_USER_HP = #{SUPPLY_USER_HP } ,SUPPLY_USER_TEL = #{SUPPLY_USER_TEL } ,SUPPLY_USER_FAX = #{SUPPLY_USER_FAX } ,SUPPLY_USER_EMAIL = #{SUPPLY_USER_EMAIL } ,SUPPLY_ADDR = #{SUPPLY_ADDR } ,UNIT_CODE = #{UNIT_CODE } ,BOM_REPORT_OBJID = #{BOM_REPORT_OBJID } ,ORDER_TYPE_CD = #{ORDER_TYPE_CD } ,DELIVERY_PLAN_DATE = #{DELIVERY_PLAN_DATE} ,DELIVERY_PLAN_QTY = #{DELIVERY_PLAN_QTY} ,MULTI_YN = #{MULTI_YN} ,MULTI_MASTER_YN = #{MULTI_MASTER_YN} ,PURCHASE_ORDER_NO_ORG = #{PURCHASE_ORDER_NO_ORG} INSERT INTO PURCHASE_ORDER_MASTER ( OBJID, PO_CLIENT_ID, PURCHASE_ORDER_NO, PARTNER_OBJID, DELIVERY_DATE, DELIVERY_PLACE, EFFECTIVE_DATE, PAYMENT_TERMS, REMARK, WRITER, REGDATE, STATUS, SALES_REQUEST_OBJID, SALES_MNG_USER_ID ,TITLE ,PURCHASE_DATE ,CONTRACT_MGMT_OBJID ,TYPE ,INSPECT_METHOD ,TOTAL_PRICE_TXT ,VAT_METHOD ,TOTAL_SUPPLY_UNIT_PRICE ,DISCOUNT_PRICE ,TOTAL_PRICE ,NEGO_RATE ,SUPPLY_BUS_NO ,SUPPLY_USER_NAME ,SUPPLY_USER_HP ,SUPPLY_USER_TEL ,SUPPLY_USER_FAX ,SUPPLY_USER_EMAIL ,SUPPLY_ADDR ,UNIT_CODE ,BOM_REPORT_OBJID ,ORDER_TYPE_CD ) VALUES ( #{OBJID}, #{PO_CLIENT_ID}, (SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||(COALESCE(MAX(case when SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) = '' or PURCHASE_ORDER_NO is null then '0' else SPLIT_PART( PURCHASE_ORDER_NO, '-', 3) end ::numeric ))::INTEGER+1)::TEXT FROM PURCHASE_ORDER_MASTER), #{PARTNER_OBJID}, #{DELIVERY_REQUEST_DATE}, #{DELIVERY_PLACE}, #{EFFECTIVE_DATE}, #{PAYMENT_TERMS}, #{REMARK}, #{WRITER}, NOW(), 'create', #{SALES_REQUEST_OBJID}, #{SALES_MNG_USER_ID} ,#{TITLE} ,#{PURCHASE_DATE} ,#{PROJECT_NO}::NUMERIC ,#{TYPE } ,#{INSPECT_METHOD } ,#{TOTAL_PRICE_TXT } ,#{VAT_METHOD } ,#{TOTAL_SUPPLY_UNIT_PRICE} ,#{DISCOUNT_PRICE } ,#{TOTAL_PRICE } ,#{NEGO_RATE } ,#{SUPPLY_BUS_NO } ,#{SUPPLY_USER_NAME } ,#{SUPPLY_USER_HP } ,#{SUPPLY_USER_TEL } ,#{SUPPLY_USER_FAX } ,#{SUPPLY_USER_EMAIL } ,#{SUPPLY_ADDR } ,#{UNIT_NAME } ,#{BOM_REPORT_OBJID } ,#{ORDER_TYPE_CD } ) ON CONFLICT (OBJID) DO UPDATE SET PO_CLIENT_ID = #{PO_CLIENT_ID}, PURCHASE_ORDER_NO = #{PURCHASE_ORDER_NO}, PARTNER_OBJID = #{PARTNER_OBJID}, DELIVERY_DATE = #{DELIVERY_DATE}, DELIVERY_PLACE = #{DELIVERY_PLACE}, EFFECTIVE_DATE = #{EFFECTIVE_DATE}, PAYMENT_TERMS = #{PAYMENT_TERMS}, REMARK = #{REMARK}, WRITER = #{WRITER}, STATUS = #{STATUS}, SALES_MNG_USER_ID = #{SALES_MNG_USER_ID} ,TITLE = #{TITLE} ,PURCHASE_DATE = #{PURCHASE_DATE} ,CONTRACT_MGMT_OBJID = #{CONTRACT_MGMT_OBJID}::NUMERIC ,TYPE = #{TYPE } ,INSPECT_METHOD = #{INSPECT_METHOD } ,TOTAL_PRICE_TXT = #{TOTAL_PRICE_TXT } ,VAT_METHOD = #{VAT_METHOD } ,TOTAL_SUPPLY_UNIT_PRICE = #{TOTAL_SUPPLY_UNIT_PRICE} ,DISCOUNT_PRICE = #{DISCOUNT_PRICE } ,TOTAL_PRICE = #{TOTAL_PRICE } ,NEGO_RATE = #{NEGO_RATE } ,SUPPLY_BUS_NO = #{SUPPLY_BUS_NO } ,SUPPLY_USER_NAME = #{SUPPLY_USER_NAME } ,SUPPLY_USER_HP = #{SUPPLY_USER_HP } ,SUPPLY_USER_TEL = #{SUPPLY_USER_TEL } ,SUPPLY_USER_FAX = #{SUPPLY_USER_FAX } ,SUPPLY_USER_EMAIL = #{SUPPLY_USER_EMAIL } ,SUPPLY_ADDR = #{SUPPLY_ADDR } ,UNIT_CODE = #{UNIT_CODE } ,BOM_REPORT_OBJID = #{BOM_REPORT_OBJID } ,ORDER_TYPE_CD = #{ORDER_TYPE_CD } INSERT INTO PURCHASE_ORDER_MASTER ( OBJID, PO_CLIENT_ID, PURCHASE_ORDER_NO, CATEGORY_CD, PRODUCT_GROUP, PRODUCT, PRODUCT_CODE, MY_COMPANY_OBJID, PARTNER_OBJID, DELIVERY_DATE, DELIVERY_PLACE, EFFECTIVE_DATE, PAYMENT_TERMS, REMARK, WRITER, REGDATE, STATUS, SALES_REQUEST_OBJID, SALES_MNG_USER_ID ,TITLE ,PURCHASE_DATE ,CONTRACT_MGMT_OBJID ,TYPE ,INSPECT_METHOD ,TOTAL_PRICE_TXT ,VAT_METHOD ,TOTAL_SUPPLY_UNIT_PRICE ,DISCOUNT_PRICE ,TOTAL_PRICE ,NEGO_RATE ,SUPPLY_BUS_NO ,SUPPLY_USER_NAME ,SUPPLY_USER_HP ,SUPPLY_USER_TEL ,SUPPLY_USER_FAX ,SUPPLY_USER_EMAIL ,SUPPLY_ADDR ,UNIT_CODE ,BOM_REPORT_OBJID ,ORDER_TYPE_CD ) VALUES ( #{OBJID}, #{PO_CLIENT_ID}, (SELECT 'PO-'||TO_CHAR(NOW(),'YYMM')||'-'||LPAD((COALESCE(MAX(SUBSTR(PURCHASE_ORDER_NO,9,11)),'0')::INTEGER+1)::TEXT,3,'0') FROM PURCHASE_ORDER_MASTER), #{CATEGORY_CD}, #{PRODUCT_GROUP}, #{PRODUCT}, #{PRODUCT_CODE}, #{MY_COMPANY_OBJID}, #{PARTNER_OBJID}, #{DELIVERY_DATE}, #{DELIVERY_PLACE}, #{EFFECTIVE_DATE}, #{PAYMENT_TERMS}, #{REMARK}, #{WRITER}, NOW(), #{STATUS}, #{SALES_REQUEST_OBJID}, #{SALES_MNG_USER_ID} ,#{TITLE} ,#{PURCHASE_DATE} ,#{CONTRACT_MGMT_OBJID}::NUMERIC ,#{TYPE } ,#{INSPECT_METHOD } ,#{TOTAL_PRICE_TXT } ,#{VAT_METHOD } ,#{TOTAL_SUPPLY_UNIT_PRICE} ,#{DISCOUNT_PRICE } ,#{TOTAL_PRICE } ,#{NEGO_RATE } ,#{SUPPLY_BUS_NO } ,#{SUPPLY_USER_NAME } ,#{SUPPLY_USER_HP } ,#{SUPPLY_USER_TEL } ,#{SUPPLY_USER_FAX } ,#{SUPPLY_USER_EMAIL } ,#{SUPPLY_ADDR } ,#{UNIT_CODE } ,#{BOM_REPORT_OBJID } ,#{ORDER_TYPE_CD } ) ON CONFLICT (OBJID) DO UPDATE SET TOTAL_PRICE_TXT = #{TOTAL_PRICE_TXT } ,TOTAL_SUPPLY_UNIT_PRICE = #{TOTAL_SUPPLY_UNIT_PRICE} ,TOTAL_SUPPLY_PRICE = #{TOTAL_SUPPLY_PRICE} ,TOTAL_REAL_SUPPLY_PRICE = #{TOTAL_REAL_SUPPLY_PRICE} ,DISCOUNT_PRICE = #{DISCOUNT_PRICE } ,TOTAL_PRICE = #{TOTAL_PRICE } ,NEGO_RATE = #{NEGO_RATE } UPDATE PURCHASE_ORDER_MASTER SET TOTAL_PRICE_TXT = #{TOTAL_PRICE_TXT } ,TOTAL_SUPPLY_PRICE = #{TOTAL_SUPPLY_PRICE } ,TOTAL_SUPPLY_UNIT_PRICE = #{TOTAL_SUPPLY_UNIT_PRICE} ,TOTAL_PRICE = TOTAL_SUPPLY_PRICE::NUMERIC - DISCOUNT_PRICE::NUMERIC ,NEGO_RATE = (case when TOTAL_SUPPLY_PRICE = 0 then 0 else ROUND(DISCOUNT_PRICE/TOTAL_SUPPLY_PRICE, 1) end) WHERE OBJID = #{OBJID} UPDATE PURCHASE_ORDER_MASTER SET TOTAL_REAL_SUPPLY_PRICE = #{TOTAL_REAL_SUPPLY_PRICE} WHERE OBJID = #{OBJID} OR MULTI_MASTER_OBJID = #{OBJID} UPDATE PURCHASE_ORDER_PART SET PARTNER_PRICE = #{PARTNER_PRICE} ,PRICE1 = #{PRICE1} ,PRICE2 = #{PRICE2} ,PRICE3 = #{PRICE3} ,PRICE4 = #{PRICE4} WHERE PURCHASE_ORDER_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID } AND OBJID = #{OBJID} UPDATE PURCHASE_ORDER_PART P SET SUPPLY_UNIT_PRICE = ORDER_QTY::numeric * (PARTNER_PRICE::numeric + PRICE1::numeric + PRICE2::numeric + PRICE3::numeric + PRICE4::numeric) ,SUPPLY_UNIT_VAT_PRICE = ORDER_QTY::numeric * (PARTNER_PRICE::numeric + PRICE1::numeric + PRICE2::numeric + PRICE3::numeric + PRICE4::numeric) * 0.1 ,SUPPLY_UNIT_VAT_SUM_PRICE = ORDER_QTY::numeric * (PARTNER_PRICE::numeric + PRICE1::numeric + PRICE2::numeric + PRICE3::numeric + PRICE4::numeric) + ORDER_QTY::numeric * (PARTNER_PRICE::numeric + PRICE1::numeric + PRICE2::numeric + PRICE3::numeric + PRICE4::numeric) * 0.1 ,REAL_SUPPLY_PRICE = (SELECT SUM(ORDER_QTY::numeric) * (SUM(PARTNER_PRICE::numeric) + SUM(PRICE1::numeric) + SUM(PRICE2::numeric) + SUM(PRICE3::numeric) + SUM(PRICE4::numeric)) FROM PURCHASE_ORDER_MASTER POM ,PURCHASE_ORDER_PART POP WHERE (POM.OBJID = #{PURCHASE_ORDER_MASTER_OBJID } OR POM.MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID }) AND POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID AND POP.OBJID = P.OBJID ) WHERE PURCHASE_ORDER_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID } UPDATE PURCHASE_ORDER_MASTER SET TOTAL_SUPPLY_UNIT_PRICE = T.SUPPLY_UNIT_PRICE + T.SUPPLY_UNIT_VAT_PRICE ,TOTAL_SUPPLY_PRICE = T.SUPPLY_UNIT_PRICE ,TOTAL_PRICE = (CASE WHEN T.DISCOUNT_PRICE != 0 THEN T.SUPPLY_UNIT_PRICE - T.DISCOUNT_PRICE ELSE NULL END) ,NEGO_RATE = (CASE WHEN T.DISCOUNT_PRICE != 0 THEN ROUND( ((1-((T.SUPPLY_UNIT_PRICE - T.DISCOUNT_PRICE)/T.SUPPLY_UNIT_PRICE))*100), 1) ELSE NULL END) ,TOTAL_PRICE_TXT = NUM_TO_KOR((T.SUPPLY_UNIT_PRICE + T.SUPPLY_UNIT_VAT_PRICE)::varchar,'일금 ',' 원정 (₩ ') || trim(TO_CHAR((T.SUPPLY_UNIT_PRICE + T.SUPPLY_UNIT_VAT_PRICE), '999,999,999,999')) ||')' FROM (SELECT SUM(SUPPLY_UNIT_PRICE::NUMERIC) SUPPLY_UNIT_PRICE ,SUM(TRUNC(SUPPLY_UNIT_VAT_PRICE::NUMERIC, 0)) SUPPLY_UNIT_VAT_PRICE ,SUM(TRUNC(SUPPLY_UNIT_VAT_SUM_PRICE::NUMERIC, 0)) SUPPLY_UNIT_VAT_SUM_PRICE ,SUM(TRUNC(REAL_SUPPLY_PRICE::NUMERIC, 0)) REAL_SUPPLY_PRICE ,MAX(NVL(REAL_ORDER_QTY, '0')::NUMERIC) REAL_ORDER_QTY ,(CASE WHEN COALESCE(DISCOUNT_PRICE, '') = '' THEN '0' ELSE DISCOUNT_PRICE END)::NUMERIC AS DISCOUNT_PRICE FROM PURCHASE_ORDER_MASTER POM ,PURCHASE_ORDER_PART POP WHERE PURCHASE_ORDER_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID } AND POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID GROUP BY POM.OBJID ) T WHERE OBJID = #{PURCHASE_ORDER_MASTER_OBJID } UPDATE PURCHASE_ORDER_MASTER SET TOTAL_PRICE_TXT_ALL = NUM_TO_KOR((T.REAL_SUPPLY_PRICE_VAT)::varchar,'일금 ',' 원정 (₩ ') || TRIM(TO_CHAR((T.REAL_SUPPLY_PRICE_VAT), '999,999,999,999')) ||')' ,TOTAL_REAL_SUPPLY_PRICE = T.REAL_SUPPLY_PRICE ,TOTAL_PRICE_ALL = (CASE WHEN T.DISCOUNT_PRICE != 0 THEN T.REAL_SUPPLY_PRICE - T.DISCOUNT_PRICE ELSE NULL END) FROM (SELECT SUM(REAL_SUPPLY_PRICE::numeric) REAL_SUPPLY_PRICE ,SUM(REAL_SUPPLY_PRICE::numeric) + ROUND(SUM(REAL_SUPPLY_PRICE::numeric)*0.1) REAL_SUPPLY_PRICE_VAT ,MAX(NVL(DISCOUNT_PRICE, '0')::NUMERIC) DISCOUNT_PRICE FROM PURCHASE_ORDER_MASTER POM ,PURCHASE_ORDER_PART POP WHERE POM.OBJID = #{PURCHASE_ORDER_MASTER_OBJID } AND POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID ) T WHERE OBJID = #{PURCHASE_ORDER_MASTER_OBJID } OR MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID } INSERT INTO PURCHASE_ORDER_PART ( OBJID, PURCHASE_ORDER_MASTER_OBJID, PART_OBJID, BOM_QTY, QTY, ORDER_QTY, PARTNER_PRICE, REMARK, WRITER, REGDATE, STATUS ,PART_NAME ,PART_NO ,DO_NO ,THICKNESS ,WIDTH ,HEIGHT ,OUT_DIAMETER ,LENGTH ,IN_DIAMETER ,INVEN_TOTAL_QTY ,LD_PART_OBJID ,SPEC ,MAKER ,UNIT ,SUPPLY_UNIT_PRICE ,PRICE1 ,PRICE2 ,PRICE3 ,PRICE4 ,SUPPLY_UNIT_VAT_PRICE ,SUPPLY_UNIT_VAT_SUM_PRICE ,TOTAL_ORDER_QTY ,STOCK_QTY ,REAL_ORDER_QTY ,REAL_SUPPLY_PRICE ) VALUES ( #{OBJID}, #{PURCHASE_ORDER_MASTER_OBJID}, #{PART_OBJID}, REPLACE(#{BOM_QTY}::VARCHAR, ',', ''), REPLACE(#{QTY}::VARCHAR, ',', ''), REPLACE(#{ORDER_QTY}::VARCHAR, ',', ''), #{PARTNER_PRICE}, #{REMARK}, #{WRITER}, NOW(), #{STATUS} ,#{PART_NAME } ,#{PART_NO } ,#{DO_NO } ,#{THICKNESS } ,#{WIDTH } ,#{HEIGHT } ,#{OUT_DIAMETER } ,#{LENGTH } ,#{IN_DIAMETER } ,#{INVEN_TOTAL_QTY} ,#{LD_PART_OBJID } ,#{SPEC } ,#{MAKER } ,#{UNIT } ,REPLACE(#{SUPPLY_UNIT_PRICE} ::VARCHAR, ',', '') ,REPLACE(#{PRICE1} ::VARCHAR, ',', '') ,REPLACE(#{PRICE2} ::VARCHAR, ',', '') ,REPLACE(#{PRICE3} ::VARCHAR, ',', '') ,REPLACE(#{PRICE4} ::VARCHAR, ',', '') ,REPLACE(#{SUPPLY_UNIT_VAT_PRICE} ::VARCHAR, ',', '') ,REPLACE(#{SUPPLY_UNIT_VAT_SUM_PRICE}::VARCHAR, ',', '') ,REPLACE(#{TOTAL_ORDER_QTY} ::VARCHAR, ',', '') ,REPLACE(#{STOCK_QTY} ::VARCHAR, ',', '') ,REPLACE(#{REAL_ORDER_QTY} ::VARCHAR, ',', '') ,REPLACE(#{REAL_SUPPLY_PRICE} ::VARCHAR, ',', '') ) ON CONFLICT (OBJID) DO UPDATE SET ORDER_QTY = REPLACE(#{ORDER_QTY} ::VARCHAR, ',', '') ,PARTNER_PRICE = REPLACE(#{PARTNER_PRICE} ::VARCHAR, ',', '') ,REMARK = #{REMARK} ,STATUS = #{STATUS} ,MODIFIER = #{WRITER } ,UPDATE_DATE = NOW() ,LD_PART_OBJID = #{LD_PART_OBJID } ,SPEC = #{SPEC } ,MAKER = #{MAKER } ,UNIT = #{UNIT } ,SUPPLY_UNIT_PRICE = REPLACE(#{SUPPLY_UNIT_PRICE}, ',', '') ,PRICE1 = REPLACE(#{PRICE1}::VARCHAR, ',', '') ,PRICE2 = REPLACE(#{PRICE2}::VARCHAR, ',', '') ,PRICE3 = REPLACE(#{PRICE3}::VARCHAR, ',', '') ,PRICE4 = REPLACE(#{PRICE4}::VARCHAR, ',', '') ,SUPPLY_UNIT_VAT_PRICE = REPLACE(#{SUPPLY_UNIT_VAT_PRICE} ::VARCHAR, ',', '') ,SUPPLY_UNIT_VAT_SUM_PRICE = REPLACE(#{SUPPLY_UNIT_VAT_SUM_PRICE}::VARCHAR, ',', '') ,TOTAL_ORDER_QTY = REPLACE(#{TOTAL_ORDER_QTY} ::VARCHAR, ',', '') ,STOCK_QTY = REPLACE(#{STOCK_QTY} ::VARCHAR, ',', '') ,REAL_ORDER_QTY = REPLACE(#{REAL_ORDER_QTY} ::VARCHAR, ',', '') ,REAL_SUPPLY_PRICE = REPLACE(#{REAL_SUPPLY_PRICE} ::VARCHAR, ',', '') UPDATE PURCHASE_ORDER_MASTER SET MULTI_MASTER_YN = #{MULTI_MASTER_YN} ,MULTI_YN = #{MULTI_YN} WHERE OBJID = #{PURCHASE_ORDER_MASTER_OBJID} UPDATE PURCHASE_ORDER_MASTER SET NEGO_RATE = #{NEGO_RATE} ,DISCOUNT_PRICE_ALL = #{DISCOUNT_PRICE_ALL} ,DISCOUNT_PRICE = (CASE WHEN NVL(#{DISCOUNT_PRICE_ALL}::VARCHAR, '') != '' THEN ROUND(NVL(#{DISCOUNT_PRICE_ALL}::VARCHAR, '0')::NUMERIC/(SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER WHERE OBJID = #{OBJID} OR MULTI_MASTER_OBJID = #{OBJID}),1) ELSE NULL END) ,TOTAL_PRICE = (CASE WHEN NVL(#{TOTAL_PRICE_ALL}::VARCHAR, '') != '' THEN ROUND(NVL(#{TOTAL_PRICE_ALL}::VARCHAR, '0')::NUMERIC/(SELECT COUNT(1) FROM PURCHASE_ORDER_MASTER WHERE OBJID = #{OBJID} OR MULTI_MASTER_OBJID = #{OBJID}),1) ELSE NULL END) ,TOTAL_PRICE_ALL = #{TOTAL_PRICE_ALL} ,TOTAL_SUPPLY_UNIT_PRICE = FLOOR(NVL(#{TOTAL_PRICE}::VARCHAR, TOTAL_SUPPLY_PRICE)::NUMERIC * 1.1) ,TOTAL_SUPPLY_UNIT_PRICE_ALL = FLOOR(NVL(#{TOTAL_PRICE_ALL}::VARCHAR, TOTAL_REAL_SUPPLY_PRICE)::NUMERIC * 1.1) WHERE ( OBJID = #{OBJID} OR MULTI_MASTER_OBJID = #{OBJID} ) UPDATE PURCHASE_ORDER_MASTER SET TOTAL_PRICE_TXT = NUM_TO_KOR(TOTAL_SUPPLY_UNIT_PRICE,'일금 ',' 원정 (₩ ') || TO_CHAR((TOTAL_SUPPLY_UNIT_PRICE)::Numeric, '999,999,999,999') ||')' ,TOTAL_PRICE_TXT_ALL = NUM_TO_KOR(TOTAL_SUPPLY_UNIT_PRICE_ALL,'일금 ',' 원정 (₩ ') || TO_CHAR((TOTAL_SUPPLY_UNIT_PRICE_ALL)::Numeric, '999,999,999,999') ||')' WHERE ( OBJID = #{OBJID} OR MULTI_MASTER_OBJID = #{OBJID} ) DELETE FROM PURCHASE_ORDER_MASTER WHERE MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID} AND OBJID NOT IN #{objkey} DELETE FROM PURCHASE_ORDER_PART WHERE PURCHASE_ORDER_MASTER_OBJID IN (SELECT OBJID FROM PURCHASE_ORDER_MASTER WHERE MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID} ) AND PURCHASE_ORDER_MASTER_OBJID IN (SELECT OBJID FROM PURCHASE_ORDER_MASTER WHERE ( MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID}) AND OBJID NOT IN #{objkey} ) DELETE FROM PURCHASE_ORDER_MULTI WHERE MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID} AND OBJID NOT IN #{objkey} DELETE FROM PURCHASE_ORDER_PART WHERE PURCHASE_ORDER_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID} DELETE FROM PURCHASE_ORDER_PART WHERE PURCHASE_ORDER_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID} OR PURCHASE_ORDER_MASTER_OBJID IN (SELECT OBJID FROM PURCHASE_ORDER_MASTER WHERE MULTI_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID}) DELETE FROM PURCHASE_ORDER_MASTER WHERE 1=1 DELETE FROM PURCHASE_ORDER_PART WHERE 1=1 UPDATE PURCHASE_ORDER_MASTER SET STATUS = 'cancel' WHERE OR INSERT INTO DELIVERY_HISTORY ( OBJID, PART_OBJID, LD_PART_OBJID, PURCHASE_ORDER_PART_OBJID, ORDER_QTY, DELIVERY_QTY, DELIVERY_PLACE_CD, DELIVERY_DATE, DELIVERY_PLAN_DATE, REMARK, WRITER, REGDATE, NON_ARRIVAL_QTY, DELIVERY_MNG_NO ,DEFECT_QTY ,INSPECT_DATE ,DEFECT_REASON ,DEFECT_RESP ,RESULT ,DEFECT_NOTE )VALUES( #{OBJID}, #{PART_OBJID}, #{LD_PART_OBJID}, #{PURCHASE_ORDER_PART_OBJID}, #{ORDER_QTY}, #{DELIVERY_QTY}, #{DELIVERY_PLACE_CD}, #{DELIVERY_DATE}, #{DELIVERY_PLAN_DATE}, #{REMARK}, #{WRITER}, NOW(), #{NON_ARRIVAL_QTY}, (SELECT 'I'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(DELIVERY_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM DELIVERY_HISTORY) ,#{DEFECT_QTY} ,#{INSPECT_DATE} ,#{DEFECT_REASON} ,#{DEFECT_RESP} ,#{RESULT} ,#{DEFECT_NOTE} ) UPDATE DELIVERY_HISTORY SET DELIVERY_QTY = #{DELIVERY_QTY} ,DELIVERY_PLACE_CD = #{DELIVERY_PLACE_CD} ,DELIVERY_DATE = #{DELIVERY_DATE} ,INSPECT_DATE = #{INSPECT_DATE} ,DEFECT_QTY = #{DEFECT_QTY} ,DEFECT_RESP = #{DEFECT_RESP} ,DEFECT_REASON = #{DEFECT_REASON} ,MODWRITER = #{WRITER} ,MODDATE = NOW() WHERE OBJID = #{OBJID} INSERT INTO RESOURCE_MNG ( OBJID, PART_OBJID, LD_PART_OBJID, PART_NAME, SPEC, MATERIAL, UNIT, MAKER, WEIGHT, REGDATE, WRITER ) SELECT #{OBJID}::NUMERIC, #{PART_OBJID}, #{LD_PART_OBJID}, (SELECT PM.PART_NAME FROM PART_MNG PM WHERE 1=1 AND PM.OBJID::VARCHAR = #{PART_OBJID}::VARCHAR), #{SPEC}, (SELECT PM.MATERIAL FROM PART_MNG PM WHERE 1=1 AND PM.OBJID::VARCHAR = #{PART_OBJID}::VARCHAR), #{MAKER}, #{UNIT}, (SELECT PM.WEIGHT FROM PART_MNG PM WHERE 1=1 AND PM.OBJID::VARCHAR = #{PART_OBJID}::VARCHAR), NOW(), #{WRITER} WHERE NOT EXISTS( SELECT 1 FROM RESOURCE_MNG WHERE PART_OBJID = #{PART_OBJID} UNION ALL SELECT 1 FROM RESOURCE_MNG WHERE LD_PART_OBJID = #{LD_PART_OBJID} ) UPDATE INVENTORY_MNG SET IS_LAST = 'N' WHERE PARENT_OBJID = (SELECT RM.OBJID FROM RESOURCE_MNG RM WHERE PART_OBJID = #{PART_OBJID}) AND LOCATION = #{LOCATION} AND SUB_LOCATION = #{SUB_LOCATION} UPDATE INVENTORY_MNG SET IS_LAST = 'N' WHERE LD_PART_OBJID = #{LD_PART_OBJID} AND LOCATION = #{LOCATION} AND SUB_LOCATION = #{SUB_LOCATION} DELETE FROM PURCHASE_ORDER_MASTER WHERE OBJID = #{objId} OR MULTI_MASTER_OBJID = #{objId} INSERT INTO DELIVERY_PART_PRICE ( OBJID ,PURCHASE_ORDER_PART_OBJID ,PART_OBJID ,LD_PART_OBJID ,PRICE ,PRICE1 ,PRICE2 ,PRICE3 ,PRICE4 ,PRICE_SUM ,WRITER ,REGDATE ) VALUES ( #{OBJID} ,#{PURCHASE_ORDER_PART_OBJID} ,#{PART_OBJID} ,#{LD_PART_OBJID} ,#{PRICE} ,#{PRICE1} ,#{PRICE2} ,#{PRICE3} ,#{PRICE4} ,#{PRICE_SUM} ,#{WRITER} ,NOW() ) ON CONFLICT (OBJID) DO UPDATE SET PRICE = #{PRICE} ,PRICE1 = #{PRICE1} ,PRICE2 = #{PRICE2} ,PRICE3 = #{PRICE3} ,PRICE4 = #{PRICE4} ,PRICE_SUM = #{PRICE_SUM} UPDATE SALES_BOM_REPORT_PART SET PRICE = #{PARTNER_PRICE} ,PRICE1 = #{PRICE1 } ,PRICE2 = #{PRICE2 } ,PRICE3 = #{PRICE3 } ,PRICE4 = #{PRICE4 } ,PRICE_SUM = #{SUPPLY_UNIT_PRICE } ,MODIFIER = #{WRITER } ,UPDATE_DATE = NOW() WHERE OBJID = (SELECT SBRP.OBJID FROM PURCHASE_ORDER_MASTER POM ,PURCHASE_ORDER_PART POP ,SALES_BOM_REPORT_PART SBRP ,BOM_PART_QTY Q WHERE POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID AND POP.OBJID = #{OBJID} AND SBRP.PARENT_OBJID = POM.BOM_REPORT_OBJID AND SBRP.BOM_PART_QTY_OBJID = Q.CHILD_OBJID AND NVL(Q.LAST_PART_OBJID, Q.PART_NO) = POP.PART_OBJID ) UPDATE PURCHASE_ORDER_PART SET PARTNER_PRICE = #{PRICE } ,PRICE1 = #{PRICE1 } ,PRICE2 = #{PRICE2 } ,PRICE3 = #{PRICE3 } ,PRICE4 = #{PRICE4 } ,SUPPLY_UNIT_PRICE = #{PRICE_SUM } ,SUPPLY_UNIT_VAT_PRICE = #{PRICE_SUM }::numeric *0.1 WHERE OBJID = #{PURCHASE_ORDER_PART_OBJID } UPDATE PURCHASE_ORDER_MASTER SET TOTAL_SUPPLY_UNIT_PRICE = SUPPLY_UNIT_PRICE ,TOTAL_PRICE = SUPPLY_UNIT_PRICE - T.DISCOUNT_PRICE ,NEGO_RATE = ROUND( ((1-((SUPPLY_UNIT_PRICE - T.DISCOUNT_PRICE)/SUPPLY_UNIT_PRICE))*100), 1) ||'%' ,TOTAL_PRICE_TXT = NUM_TO_KOR((SUPPLY_UNIT_PRICE - T.DISCOUNT_PRICE)::INTEGER::VARCHAR,'일금 ',' 원정 (₩ ') || TO_CHAR((SUPPLY_UNIT_PRICE - T.DISCOUNT_PRICE), '999,999,999,999') ||')' FROM (SELECT SUM(SUPPLY_UNIT_PRICE::NUMERIC) + SUM(SUPPLY_UNIT_VAT_PRICE::NUMERIC) SUPPLY_UNIT_PRICE ,(CASE WHEN COALESCE(DISCOUNT_PRICE, '') = '' THEN '0' ELSE DISCOUNT_PRICE END)::NUMERIC AS DISCOUNT_PRICE FROM PURCHASE_ORDER_MASTER POM ,PURCHASE_ORDER_PART POP WHERE PURCHASE_ORDER_MASTER_OBJID = #{PURCHASE_ORDER_MASTER_OBJID } AND POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID GROUP BY POM.OBJID ) T WHERE OBJID = #{PURCHASE_ORDER_MASTER_OBJID } UPDATE SALES_PART_CHG SET ACT_STATUS = #{act_status} WHERE purchase_order_master_objid = #{targetObjId} UPDATE SALES_REQUEST_MASTER SET STATUS = #{STATUS} WHERE OBJID = #{SALES_REQUEST_OBJID} DELETE FROM DELIVERY_HISTORY_DEFECT WHERE PURCHASE_ORDER_PART_OBJID = #{PURCHASE_ORDER_PART_OBJID} INSERT INTO DELIVERY_HISTORY_DEFECT ( OBJID, PURCHASE_ORDER_PART_OBJID, DEFECT_QTY, DEFECT_REASON_CD, WRITER, REGDATE )VALUES( #{OBJID}, #{PURCHASE_ORDER_PART_OBJID}, #{DEFECT_QTY}, #{DEFECT_REASON_CD}, #{WRITER}, NOW() ) UPDATE ARRIVAL_PLAN SET DEFECT_ACTION = #{defect_action} , DEFECT_CONTENT = #{defect_content} , DEFECT_ACTION_DATE = #{defect_action_date} , RE_ARRIVAL_PLAN_DATE = #{delivery_plan_date} , DEFECT_ACTION_TITLE = #{defect_action_title} , DEFECT_NOTE = #{defect_note} WHERE OBJID IN #{objkey}