<?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.license.titulo.daos.TituloFeeDAO">

	<delete id="borrarTitulosPorContrato">
		delete DDA_T_CONTRATO_TITULO where
		ID_CONTRATO=#{idContrato}
	</delete>

	<select id="buscarCatalogoTituloPorDesc" resultMap="catTitulo">
		select * from
		DDA_C_TITULO where ESTATUS=1 AND ID_ESTUDIO=#{idEstudio} AND
		DESC_TITULO=#{descTitulo}
	</select>

	<insert id="insertarCatTitulo" parameterType="com.mx.dla.dda.contrato.titulos.dtos.CatTitulo">

		<selectKey keyProperty="idTitulo" resultType="long" order="BEFORE">
			select DDA_SQC_TITULO.nextVal from DUAL
		</selectKey>
		insert into DDA_C_TITULO (ID_TITULO,ID_ESTUDIO,DESC_TITULO,ESTATUS)
		values (#{idTitulo},#{idEstudio},#{descTitulo},1)
	</insert>

	<select id="buscarTitulosOtrosContratosXBV"  resultType="long" >	
		select count(*)
	    	from DDA_M_CONTRATO_TITULO t 		
			where t.ID_BV = #{idBV}
			and   t.ID_LISTA not in (select b.id_lista from DDA_T_CONTRATO_LISTA a 
                                      inner join DDA_T_CONTRATO_LISTA b on a.id_contrato_creacion = b.id_contrato_creacion
                                     where a.id_lista = #{idLista})    
			and   t.ESTATUS = 'ACTIVO'		
			and  ( #{fechaInicio} BETWEEN t.FECHA_INICIO and t.FECHA_FIN or #{fechaFin} BETWEEN t.FECHA_INICIO and t.FECHA_FIN or 
			      (#{fechaInicio} &lt; t.FECHA_INICIO and t.FECHA_FIN &lt; #{fechaFin}) )			 			
	</select>

	<select id="buscarTitulosListaXBV"  resultType="long" >
		select count(*) 
		    from DDA_M_CONTRATO_TITULO t 		
			where  t.ID_LISTA = #{idLista}
		    and    t.ID_BV    = #{idBV}
		    and    t.ESTATUS = 'ACTIVO'				
		    and  ( #{fechaInicio} BETWEEN t.FECHA_INICIO and t.FECHA_FIN or #{fechaFin} BETWEEN t.FECHA_INICIO and t.FECHA_FIN or 
			      (#{fechaInicio} &lt; t.FECHA_INICIO and t.FECHA_FIN &lt; #{fechaFin})  )
			<if test="idTituloCnt != null"> and ID_TITULO_CNT != #{idTituloCnt} </if>		    		
	</select>

	<select id="findCategoria" resultType="int" parameterType="long">
		select DDA_C_CATEGORIA .SE_AGRUPA from DDA_C_CATEGORIA WHERE ID_CATEGORIA = #{idCate}
	</select>

	<select id="findSerieSeason" resultType="int" parameterType="Map">
		select COUNT(*) from DDA_M_CONTRATO_TITULO WHERE NOMBRE_UNICO = #{nombre} AND TEMPORADA = #{temporada}
	</select>


	<resultMap id="titulo" type="Titulo">
		<id property="idTituloCnt"            column="ID_TITULO_CNT" />
		<result property="descTitulo"         column="DESC_TITULO" />
		<result property="idContrato"         column="ID_CONTRATO" />
		<result property="idLista"            column="ID_LISTA" />
		<result property="idTitulo"           column="ID_TITULO" />
		<result property="categoria.value"    column="ID_CATEGORIA" />
		<result property="categoria.desc"     column="CAT_DESC" />
		<result property="categoriaTit.value" column="ID_CATEGORIA_TIT" />
		<result property="categoriaTit.desc"  column="CAT_DESC_TIT" />
		<result property="pagoCateg.value"    column="ID_PAGO_CATEG" />
		<result property="pagoCateg.desc"     column="PAGO_CATEG_DESC" />
		<result property="fechaInicio"        column="FECHA_INICIO" />
		<result property="fechaFin"           column="FECHA_FIN" />
		<result property="briefcase"          column="BRIEFCASE" />
		<result property="dto"                column="DTO" />
		<result property="dtr"                column="DTR" />
		<result property="costo"              column="COSTO" />
		<result property="vidaUtil"           column="VIDA_UTIL" />
		<result property="idSap"              column="ID_SAP" />
		<result property="estatus"            column="ESTATUS" />
		<result property="idTituloCntnvo"     column="ID_TITULO_CNTNVO" />
		<result property="hvrd"               column="HVRD" />
		<result property="idTerritorio"       column="ID_TERRITORIO" />
		<result property="release.value"      column="ID_RELEASE" />
		<result property="release.desc"       column="REL_DESC" />
		<result property="idTituloCntorig"    column="ID_TITULO_CNTORIG" />
		<result property="fechaNotifsap"      column="FECHA_NOTIFSAP" />
		<result property="idSapAnt"           column="ID_SAP_ANT" />
		<result property="idTituloCntant"     column="ID_TITULO_CNTANT" />
		<result property="notaCredito"        column="NOTA_CREDITO" />
		<result property="facturaCredito"     column="FACTURA_CREDITO" />
		<result property="ajustoTitulo"       column="AJUSTO_TITULO" />
		<result property="ajustoValor"        column="AJUSTO_VALOR" />
		<result property="ajustoVu"           column="AJUSTO_VU" />
		<result property="bajaPerdida"        column="BAJA_PERDIDA" />
		<result property="fechaAjustotitulo"  column="FECHA_AJUSTOTITULO" />
		<result property="fechaAjustovalor"   column="FECHA_AJUSTOVALOR" />
		<result property="fechaAjustovu"      column="FECHA_AJUSTOVU" />
		<result property="fechaBaja"          column="FECHA_BAJA" />
		<result property="fechaWS"            column="FECHA_WS" />
		<result property="tipoTitulo"         column="TIPO_TITULO" />
		<result property="precioAnual"        column="PRECIO_ANUAL" />
		<result property="nombreUnico"        column="NOMBRE_UNICO" />
		<result property="episodio"           column="EPISODIO" />
		<result property="idBv"               column="ID_BV" />
		<result property="mesesvu"            column="MESES_VU" />
		<result property="temporada"          column="TEMPORADA" />
		<result property="agrupable"          column="AGRUPABLE" />
		<result property="pjeExclusivo"       column="PJE_EXCLUSIVO" />
		<result property="mesesExclusivo"     column="MESES_EXCLUSIVO" />
		<result property="flgcalculoPrecioS"  column="FLGCALCULO_PRECIOS" />
		

		<collection property="amortizaciones"  column="ID_TITULO_CNTORIG"
			select="buscarAmortizaciones" />

	</resultMap>
	
	<resultMap id="tituloAgrupable" type="Titulo">
		<id property="nombreUnico" column="NOMBRE_UNICO" />
		<result property="categoriaTit.value" column="ID_CATEGORIA_TIT" />
		<result property="categoriaTit.desc" column="CAT_DESC_TIT" />
	</resultMap>

	<resultMap id="catTitulo"
		type="com.mx.dla.dda.contrato.titulos.dtos.CatTitulo">
		<result property="idTitulo" column="ID_TITULO" />
		<result property="idEstudio" column="ID_ESTUDIO" />
		<result property="descTitulo" column="DESC_TITULO" />
		<result property="estatus" column="ESTATUS" />
		<result property="idBv" column="ID_BV" />
	</resultMap>
		
	<resultMap id="catalogo"
		type="com.mx.dla.dda.catalogos.dtos.CatalogoDTO">
		<id property="value" column="ID" />
		<result property="desc" column="DESCRIP" />
	</resultMap>	
	
	<select id="buscarAmortizaciones" resultMap="catalogo" parameterType="long">
		select ANIO as ID , TOTAL as DESCRIP from DDA_T_AMORTIZACION_TITULO where ID_TITULO_CNTORIG=#{ID_TITULO_CNTORIG}
	</select>
	
	<update id="actualizarCostoTitulosExcel">
		UPDATE DDA_M_CONTRATO_TITULO SET COSTO = #{costo} WHERE ID_CONTRATO = #{idContrato}
	</update>	
</mapper>