<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 
	수정일                 수정자                          수정내용
  =========     =======    =================================================
  2011.8.22   	서준식     	 	RQESTDE, PROCESS_DE 컬럼 타입 CHAR(20)으로 변경으로 TO_DATE, TO_CHAR 제거
-->
<sqlMap namespace="ProgrmManageDtl">

	<typeAlias  alias="comDefaultVO" type="egovframework.com.cmm.ComDefaultVO"/>
	<typeAlias  alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
	<typeAlias  alias="progrmManageVO" type="egovframework.com.sym.prm.service.ProgrmManageVO"/>
	<typeAlias  alias="progrmManageDtlVO" type="egovframework.com.sym.prm.service.ProgrmManageDtlVO"/>

    <!-- 프로그램 변경요청  --> 
	<resultMap id="progrmManageDtlVO" class="egovframework.com.sym.prm.service.ProgrmManageDtlVO">
	  <result property="progrmFileNm"     column="PROGRM_FILE_NM"     columnIndex="1"/>
      <result property="rqesterNo"        column="REQUST_NO"         columnIndex="2"/>
      <result property="rqesterPersonId"  column="RQESTER_ID"         columnIndex="3"/>
      <result property="changerqesterCn"  column="CHANGE_REQUST_CN"   columnIndex="4"/>
      <result property="rqesterProcessCn" column="REQUST_PROCESS_CN" columnIndex="5"/>
      <result property="opetrId"          column="OPETR_ID"           columnIndex="6"/>
      <result property="processSttus"     column="PROCESS_STTUS_CODE" columnIndex="7"/>
      <result property="processDe"        column="PROCESS_DE"         columnIndex="8"/>
      <result property="rqesterDe"        column="RQESTDE"         columnIndex="9"/>
      <result property="rqesterSj"        column="REQUST_SJ"         columnIndex="10"/>
	</resultMap>
	
    <!-- 프로그램 변경요청 TMP --> 
	<resultMap id="progrmManageDtl_Temp" class="egovframework.com.sym.prm.service.ProgrmManageDtlVO">
      <result property="rqesterNo"        column="REQUST_NO"         columnIndex="1"/>
	</resultMap>

	<select id="progrmManageDAO.selectProgrmChangeRequstList_D" parameterClass="comDefaultVO" resultClass="egovMap">
		<![CDATA[
	       SELECT * FROM ( SELECT rownum rn, TB.* FROM (
				SELECT
					  PROGRM_FILE_NM AS "progrmFileNm" 
					, REQUST_NO AS "rqesterNo" 
					, RQESTER_ID AS "rqesterPersonId" 
					, dbms_lob.substr(CHANGE_REQUST_CN, 10, 1)||'...'   AS "changerqesterCn" 
					, dbms_lob.substr(REQUST_PROCESS_CN, 10, 1)||'...' AS "rqesterProcessCn"
					, OPETR_ID AS "opetrId" 
					, trim(PROCESS_STTUS_CODE) AS "processSttus"
					, PROCESS_DE AS "processDe"   
					, RQESTDE AS "rqesterDe" 
					, REQUST_SJ AS "rqesterSj"
				FROM COMTHPROGRMCHANGEDTLS
				WHERE PROGRM_FILE_NM like '%'|| #searchKeyword#||'%'
	       ) TB )  WHERE rn BETWEEN #firstIndex# + 1 AND #firstIndex# + #recordCountPerPage#
		 ]]>
	</select>

	<!-- 총건수 조회 -->
	<select id="progrmManageDAO.selectProgrmChangeRequstListTotCnt_S" parameterClass="comDefaultVO" resultClass="int">
		<![CDATA[
		SELECT COUNT(*) AS "totcnt"
		  FROM COMTHPROGRMCHANGEDTLS
		WHERE PROGRM_FILE_NM like '%'|| #searchKeyword#||'%'
		]]>
	</select>

	<select id="progrmManageDAO.selectProgrmChangeRequstNo_D" parameterClass="progrmManageDtlVO" resultClass="progrmManageDtlVO">
		<![CDATA[
			select nvl(max(REQUST_NO),0)+1 AS "rqesterNo"
			from COMTHPROGRMCHANGEDTLS
		 ]]>
	</select>

	<select id="progrmManageDAO.selectProgrmChangeRequst_D" parameterClass="progrmManageDtlVO" resultClass="progrmManageDtlVO">
		<![CDATA[
			SELECT
				  PROGRM_FILE_NM AS "progrmFileNm" 
				, REQUST_NO AS "rqesterNo" 
				, RQESTER_ID AS "rqesterPersonId" 
				, CHANGE_REQUST_CN AS "changerqesterCn" 
				, REQUST_PROCESS_CN AS "rqesterProcessCn"
				, OPETR_ID AS "opetrId" 
				, trim(PROCESS_STTUS_CODE) AS "processSttus" 
				, PROCESS_DE AS "processDe" 
				, RQESTDE AS "rqesterDe" 
				, REQUST_SJ AS "rqesterSj"
			FROM COMTHPROGRMCHANGEDTLS
			WHERE PROGRM_FILE_NM=#progrmFileNm#
			AND   REQUST_NO    =#rqesterNo#
		]]>
	</select> 

	<insert id="progrmManageDAO.insertProgrmChangeRequst_S">
		<![CDATA[
			INSERT INTO COMTHPROGRMCHANGEDTLS
				(  PROGRM_FILE_NM
              , REQUST_NO
              , RQESTER_ID
              , CHANGE_REQUST_CN
              , RQESTDE
              , REQUST_SJ 
              ,PROCESS_STTUS_CODE)
			VALUES (  #progrmFileNm#
                 , #rqesterNo#
                 , #rqesterPersonId#
                 , #changerqesterCn#
                 , #rqesterDe#
                 , #rqesterSj# 
                 , 'A')
		]]>
	</insert>

	<update id="progrmManageDAO.updateProgrmChangeRequst_S">
		<![CDATA[
			UPDATE COMTHPROGRMCHANGEDTLS
			SET    RQESTER_ID        = #rqesterPersonId# 
			     , CHANGE_REQUST_CN  = #changerqesterCn#
                 , RQESTDE        = #rqesterDe# 
                 , REQUST_SJ        = #rqesterSj# 
			WHERE PROGRM_FILE_NM=#progrmFileNm#
			AND   REQUST_NO    =#rqesterNo#
		]]>
	</update>

	<delete id="progrmManageDAO.deleteProgrmChangeRequst_S">
		<![CDATA[
			DELETE FROM COMTHPROGRMCHANGEDTLS
			WHERE PROGRM_FILE_NM=#progrmFileNm#
			AND   REQUST_NO    =#rqesterNo#
		]]>
	</delete>  

	<update id="progrmManageDAO.updateProgrmChangeRequstProcess_S">
		<![CDATA[
			UPDATE COMTHPROGRMCHANGEDTLS
			SET    REQUST_PROCESS_CN = #rqesterProcessCn# 
                 , OPETR_ID           = #opetrId#         
                 , PROCESS_STTUS_CODE = #processSttus#    
                 , PROCESS_DE         = #processDe#       
			WHERE  PROGRM_FILE_NM=#progrmFileNm#
			AND    REQUST_NO    =#rqesterNo#  
		]]>
	</update>

	<select id="progrmManageDAO.selectChangeRequstProcessList_D" parameterClass="comDefaultVO" resultClass="egovMap">
		<![CDATA[
			SELECT * FROM ( SELECT rownum rn, TB.* FROM (
				SELECT
					  PROGRM_FILE_NM AS "progrmFileNm"
					, REQUST_NO AS "rqesterNo"
					, RQESTER_ID AS "rqesterPersonId"  
					, dbms_lob.substr(CHANGE_REQUST_CN, 10, 1)||'...'   AS "changerqesterCn"
					, dbms_lob.substr(REQUST_PROCESS_CN, 10, 1)||'...' AS "rqesterProcessCn" 
	                , OPETR_ID AS "opetrId"
	                , trim(PROCESS_STTUS_CODE) AS "processSttus"
	                , PROCESS_DE AS "processDe"  
	                , RQESTDE AS "rqesterDe" 
	                , REQUST_SJ AS "rqesterSj"
				FROM COMTHPROGRMCHANGEDTLS
				WHERE 1=1
		 ]]>
        <isEqual prepend="AND" property="searchCondition" compareValue="1">
         <![CDATA[   PROCESS_STTUS_CODE like #searchKeyword#  ]]>
        </isEqual>        
        <isEqual prepend="AND" property="searchCondition" compareValue="2">
         <![CDATA[   PROCESS_STTUS_CODE = #searchKeyword#   ]]>
        </isEqual>
        <isEqual prepend="AND" property="searchCondition" compareValue="3">
         <![CDATA[ RQESTDE between #searchKeywordFrom# and #searchKeywordTo# ]]>
        </isEqual>
        <isEqual prepend="AND" property="searchCondition" compareValue="4">
         <![CDATA[  RQESTER_ID like  '%'||#searchKeyword#||'%'   ]]>
        </isEqual>
        <![CDATA[   ORDER BY REQUST_NO ASC
             ) TB )  WHERE rn BETWEEN #firstIndex# + 1 AND #firstIndex# + #recordCountPerPage#
        ]]>
	</select>

	<!-- 총건수 조회   binary(PROCESS_DE) >= #searchKeywordFrom#  and  binary(PROCESS_DE) =<  #searchKeywordTo#  -->
	<select id="progrmManageDAO.selectChangeRequstProcessListTotCnt_S" parameterClass="comDefaultVO" resultClass="int">
		<![CDATA[
		SELECT COUNT(REQUST_NO) AS "totcnt"
		  FROM COMTHPROGRMCHANGEDTLS
			WHERE 1=1
		 ]]>
        <isEqual prepend="AND" property="searchCondition" compareValue="1">
         <![CDATA[   PROCESS_STTUS_CODE like #searchKeyword#  ]]>
        </isEqual>        
        <isEqual prepend="AND" property="searchCondition" compareValue="2">
         <![CDATA[   PROCESS_STTUS_CODE = #searchKeyword#   ]]>
        </isEqual>
        <isEqual prepend="AND" property="searchCondition" compareValue="3">
         <![CDATA[ RQESTDE between #searchKeywordFrom# and #searchKeywordTo# ]]>
        </isEqual>
        <isEqual prepend="AND" property="searchCondition" compareValue="4">
         <![CDATA[  RQESTER_ID like  '%'||#searchKeyword#||'%'   ]]>
        </isEqual>
	</select>

	<delete id="progrmManageDAO.deleteAllProgrmDtls">
		<![CDATA[                          
			DELETE FROM COMTHPROGRMCHANGEDTLS              
		]]>                                
	</delete> 

	<select id="progrmManageDAO.selectRqesterEmail" parameterClass="progrmManageDtlVO" resultClass="progrmManageDtlVO">
		<![CDATA[
			select user_email AS tmpEmail from COMVNUSERMASTER
			where user_id = #rqesterPersonId#
		 ]]>
	</select>

</sqlMap>                            