<?xml version="1.0" encoding="UTF-8"?>
<!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.license.terminos.daos.TerminosFeeDAO">

	<resultMap id="terminoCtoBD" type="TerminoBD">
		<result property="idContrato"          column="ID_CONTRATO" />
		<result property="anticipoMonto"       column="ANTICIPO_MONTO" />
		<result property="anticipoFecha"       column="ANTICIPO_FECHA" />
		<result property="anticipoComentario"  column="ANTICIPO_COMENTARIO" />				
 	    <result property="tipoPago"            column="TIPO_PAGO" />  
		<result property="tipoPredefinido"     column="TIPO_PREDEFINIDO" />
		<result property="comentarioGeneral"   column="COMENTARIO_GRAL" />				
		<result property="totalTitulos"        column="TOTAL_TITULOS" />		
		<result property="idPagoPeriodico"     column="ID_PAGO_PERIODICO" />
		<result property="monto"               column="MONTO" />				
		<result property="fecha"               column="FECHA" />
		<result property="comentario"          column="COMENTARIO" />
		<result property="costo"               column="COSTO_CONTRATO" /> 	     	    				
	</resultMap>
	
	<resultMap id="resultsContratoCons" type="ContratoConsultaDTO">
		<result property="idContrato"         column="ID_CONTRATO" />
		<result property="idEstudio"          column="ID_ESTUDIO" />
		<result property="idEstatus"          column="ID_ESTATUS" />
		<result property="idTipoMovimiento"   column="ID_TIPO_MOVIMIENTO" />
 	    <result property="idTipoContrato"     column="ID_TIPO_CONTRATO" />  
		<result property="numeroContrato"     column="NUMERO_CONTRATO" />
		<result property="fechaInicio"        column="FECHA_INICIO" />
		<result property="fechaFin"           column="FECHA_FIN" />
		<result property="idContratoOriginal" column="ID_CONTRATO_ORIGINAL" />
		<result property="fechaAlta"          column="FECHA_ALTA" />				
		<result property="idSap"              column="ID_SAP" />
		<result property="amortizable"        column="AMORTIZABLE" />
 	    <result property="fechaWs"            column="FECHA_WS" />  
		<result property="fechaModifSap"      column="FECHA_MODIFSAP" />
		<result property="annios"             column="ANNIOS" />
		<result property="meses"              column="MESES" />
		<result property="inflacion"          column="INFLACION" />
		<result property="limitesLicencia"    column="LIMITES_LICENCIA" />
		<result property="idBv"               column="ID_BV" />			
	</resultMap>
			
	<select id="getTermino" resultMap="terminoCtoBD" parameterType="long">
		SELECT ANTICIPO_MONTO, ANTICIPO_FECHA, ANTICIPO_COMENTARIO, TIPO_PAGO, TIPO_PREDEFINIDO, COMENTARIO_GRAL, TOTAL_TITULOS, COSTO_CONTRATO
       		   FROM DDA_T_CONTRATO_TERMINO              		   
               WHERE ID_CONTRATO = #{idContrato}
	</select>
	
	<select id="getTerminoPeriodicos" resultMap="terminoCtoBD" parameterType="long">
		SELECT ID_PAGO_PERIODICO, MONTO, FECHA, COMENTARIO
       		   FROM DDA_T_CONTRATO_TERMINO_PAGO        		   
               WHERE ID_CONTRATO = #{idContrato} ORDER BY FECHA ASC 
	</select>
	
	<insert id="guardarTermino"  parameterType="TerminoBD">
		INSERT INTO DDA_T_CONTRATO_TERMINO
           (ID_CONTRATO, ANTICIPO_MONTO, ANTICIPO_FECHA, ANTICIPO_COMENTARIO, TIPO_PAGO, TIPO_PREDEFINIDO, COMENTARIO_GRAL, TOTAL_TITULOS, COSTO_CONTRATO)
        VALUES
 		   (#{idContrato}, #{anticipoMonto}, #{anticipoFecha}, #{anticipoComentario}, #{tipoPago}, #{tipoPredefinido}, #{comentarioGeneral}, #{totalTitulos}, #{costo})			
	</insert>
	
	<insert id="guardarTerminoPago" parameterType="java.util.List">		
		 INSERT ALL								
		   <foreach item="p" collection="pagos"  separator=" ">
				 INTO DDA_T_CONTRATO_TERMINO_PAGO
		            (ID_CONTRATO, ID_PAGO_PERIODICO, MONTO, FECHA, COMENTARIO)
		         VALUES                                                           
		            (#{p.idContrato}, extractvalue(dbms_xmlgen.getxmltype('select DDA_SQT_CONTRATO_TERMINO_PAGO.nextval from dual'),'//text()'), #{p.monto}, #{p.fecha}, #{p.comentario})		
		   </foreach> 
		SELECT * FROM DUAL               
	</insert>
	
	<delete id="eliminarTermino"  parameterType="long">
		DELETE DDA_T_CONTRATO_TERMINO WHERE ID_CONTRATO = #{idContrato}									
	</delete>	
	
	<delete id="eliminarTerminoPago"  parameterType="long">
		DELETE DDA_T_CONTRATO_TERMINO_PAGO WHERE ID_CONTRATO = #{idContrato}									
	</delete>
			
	<select id="consultaContrato" resultMap="resultsContratoCons"
		parameterType="map">
		SELECT
		   t.ID_CONTRATO, 
		   t.ID_ESTUDIO,
		   t.ID_ESTATUS, 
		   t.ID_TIPO_MOVIMIENTO, 
		   t.ID_TIPO_CONTRATO,
		   t.NUMERO_CONTRATO,
		   t.FECHA_INICIO,
		   t.FECHA_FIN,
		   t.ID_CONTRATO_ORIGINAL,
		   t.FECHA_ALTA,
		   t.ID_SAP,
		   t.AMORTIZABLE,
		   t.FECHA_WS,
		   t.FECHA_MODIFSAP,
		   t.ANNIOS,
		   t.MESES,
		   t.INFLACION,
		   t.LIMITES_LICENCIA,
		   t.ID_BV
		FROM DDA_T_CONTRATO t
		WHERE 
		   t.ID_CONTRATO = #{contrato.idContrato}
		ORDER BY t.ID_CONTRATO ASC
	</select>
	
	<update id="actualizarCostoTitulos">
		UPDATE DDA_T_CONTRATO_TITULO SET COSTO = #{costo} WHERE ID_CONTRATO = #{idContrato}
	</update>		
					
</mapper>