<?xml version="1.0" encoding="UTF-8"?>
<!-- Es un archivo de mapeo -->
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.mx.dla.dda.contrato.common.daos.DocumentoDAO">


	<insert id="insertarDocumento"
		parameterType="com.mx.dla.dda.contrato.common.dtos.DocumentoDTO">
		
		<selectKey keyProperty="idContratoDocto" resultType="long" order="BEFORE">
    	 		   select DDA_SQT_CONTRATO_DOCTO.nextVal from DUAL
  		</selectKey> 
  		
		INSERT INTO DDA_T_CONTRATO_DOCTO 
			(ID_CONTRATO_DOCTO,ID_CONTRATO,EXPEDIENTE,FECHA_ALTA,NOMBRE_ARCHIVO,RUTA_SERVIDOR)
		VALUES 
			(#{idContratoDocto},#{idContrato},#{expediente},SYSDATE,#{nombre},#{rutaServidor} )
	</insert>
	
	<update id="updateDocumento" parameterType="com.mx.dla.dda.contrato.common.dtos.DocumentoDTO">
		UPDATE DDA_T_CONTRATO_DOCTO
			   SET FECHA_ALTA = SYSDATE,  NOMBRE_ARCHIVO = #{nombre},  RUTA_SERVIDOR = #{rutaServidor}
		WHERE ID_CONTRATO_DOCTO = #{idContratoDocto}
	</update>
		
	<delete id="borrarDocumento">
		delete DDA_T_CONTRATO_DOCTO where ID_CONTRATO_DOCTO=#{idContratoDocto}
	</delete>

	<resultMap id="documento"
		type="com.mx.dla.dda.contrato.common.dtos.DocumentoDTO">
		    <id property="idContratoDocto" column="ID_CONTRATO_DOCTO" />
			<result property="idContrato" column="ID_CONTRATO" />
			<result property="expediente" column="EXPEDIENTE" />
			<result property="fecha_alta" column="FECHA_ALTA" />
			<result property="nombre" column="NOMBRE_ARCHIVO" />
			<result property="rutaServidor" column="RUTA_SERVIDOR" />
		
	</resultMap>

	<select id="buscarDocumentos" resultMap="documento"
		parameterType="long">
			select 
				* 
			from DDA_T_CONTRATO_DOCTO
			where 
				ID_CONTRATO=#{idContrato}
	</select>
	
	<select id="buscarDocumento" resultMap="documento"
		parameterType="long">
			select 
				* 
			from DDA_T_CONTRATO_DOCTO
			where 
				ID_CONTRATO_DOCTO=#{idContratoDocto}
	</select>
	
	<select id="obtenerUltimoDocumento" resultMap="documento" parameterType="long">
		<!-- SELECT * 
		FROM DDA_T_CONTRATO_DOCTO 
		WHERE ID_CONTRATO_DOCTO = (SELECT MAX(ID_CONTRATO_DOCTO) 
		                          FROM DDA_T_CONTRATO_DOCTO 
		                          WHERE ID_CONTRATO = #{idContrato}) -->
		SELECT * 
		FROM DDA_T_CONTRATO_DOCTO 
		WHERE ID_CONTRATO_DOCTO = (SELECT MAX(ID_CONTRATO_DOCTO) 
	                                FROM (SELECT UPPER (SUBSTR(NOMBRE_ARCHIVO, -3)) AS EXTENSION, ID_CONTRATO_DOCTO 
	                                      FROM DDA_T_CONTRATO_DOCTO 
	                                      WHERE DDA_T_CONTRATO_DOCTO.ID_CONTRATO = #{idContrato}) 
	                                WHERE EXTENSION = 'PDF')
	</select>

</mapper>
