<?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">

<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 TOP #recordCountPerPage#
				  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 
				, PROCESS_STTUS_CODE AS processSttus 
				, PROCESS_DE AS processDe 
				, RQESTDE AS rqesterDe 
				, REQUST_SJ AS rqesterSj
			FROM COMTHPROGRMCHANGEDTLS
			WHERE PROGRM_FILE_NM COLLATE Korean_Wansung_CS_AS like '%' + #searchKeyword# + '%'
			  AND REQUST_NO NOT IN (
			      SELECT TOP #firstIndex#
			        	 REQUST_NO
			        FROM COMTHPROGRMCHANGEDTLS
			        WHERE PROGRM_FILE_NM COLLATE Korean_Wansung_CS_AS like '%' + #searchKeyword# + '%'
			  )
		 ]]>
	</select>

	<!-- 총건수 조회 -->
	<select id="progrmManageDAO.selectProgrmChangeRequstListTotCnt_S" parameterClass="comDefaultVO" resultClass="int">
		<![CDATA[
		SELECT COUNT(*) AS totcnt
		  FROM COMTHPROGRMCHANGEDTLS
		 WHERE PROGRM_FILE_NM COLLATE Korean_Wansung_CS_AS like '%' + #searchKeyword# + '%'
		]]>
	</select>

	<select id="progrmManageDAO.selectProgrmChangeRequstNo_D" parameterClass="progrmManageDtlVO" resultClass="progrmManageDtlVO">
		<![CDATA[
			select ISNULL(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 
				, 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 TOP #recordCountPerPage#
				  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
                , 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 COLLATE Korean_Wansung_CS_AS like #searchKeyword#  ]]>
        </isEqual>        
        <isEqual prepend="AND" property="searchCondition" compareValue="2">
         <![CDATA[   PROCESS_STTUS_CODE COLLATE Korean_Wansung_CS_AS = #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 COLLATE Korean_Wansung_CS_AS like  '%' + #searchKeyword# + '%'   ]]>
        </isEqual>
              AND REQUST_NO NOT IN (
                  SELECT TOP #firstIndex#
		            		  REQUST_NO
		            	FROM COMTHPROGRMCHANGEDTLS
		            	WHERE 1=1
                    <isEqual prepend="AND" property="searchCondition" compareValue="1">
                     <![CDATA[   PROCESS_STTUS_CODE COLLATE Korean_Wansung_CS_AS like #searchKeyword#  ]]>
                    </isEqual>        
                    <isEqual prepend="AND" property="searchCondition" compareValue="2">
                     <![CDATA[   PROCESS_STTUS_CODE COLLATE Korean_Wansung_CS_AS = #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 COLLATE Korean_Wansung_CS_AS like  '%' + #searchKeyword# + '%'   ]]>
                    </isEqual>
                    <![CDATA[   ORDER BY REQUST_NO ASC ]]>
              )
        <![CDATA[   ORDER BY REQUST_NO ASC ]]>
	</select>

	<!-- 총건수 조회   binary(PROCESS_DE) >= #searchKeywordFrom#  and  binary(PROCESS_DE) =<  #searchKeywordTo#  -->
	<select id="progrmManageDAO.selectChangeRequstProcessListTotCnt_S" parameterClass="comDefaultVO" resultClass="int">
		<![CDATA[
		SELECT COUNT(*) AS totcnt
		  FROM COMTHPROGRMCHANGEDTLS
			WHERE 1=1
		 ]]>
        <isEqual prepend="AND" property="searchCondition" compareValue="1">
         <![CDATA[   PROCESS_STTUS_CODE COLLATE Korean_Wansung_CS_AS like #searchKeyword#  ]]>
        </isEqual>        
        <isEqual prepend="AND" property="searchCondition" compareValue="2">
         <![CDATA[   PROCESS_STTUS_CODE COLLATE Korean_Wansung_CS_AS = #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 COLLATE Korean_Wansung_CS_AS 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>                            