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

	<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="fechaInicioS"       column="FECHA_INICIOS" />
		<result property="fechaFinS"          column="FECHA_FINS" />
		<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="costoF"             column="COSTOF" />
		<result property="agrupable"          column="AGRUPABLE" />
		<result property="movieSerie"         column="MOVIESERIE" />
		<result property="pjeExclusivo"       column="PJE_EXCLUSIVO" />
		<result property="mesesExclusivo"     column="MESES_EXCLUSIVO" />
		<result property="pjemesesExclusivo"  column="PJEMESESEXCLUSIVO" />
		<result property="flgcalculoPrecio"   column="FLGCALCULO_PRECIO" />
		<result property="flgcalculoPrecioS"  column="FLGCALCULO_PRECIOS" />				
		<result property="briefcaseS"         column="BRIEFCASES" />
		<result property="anioContrato"       column="ANIO_CONTRATO" />
		<result property="fechaContabilizacion" column="FECHA_CONTABILIZACION" />
		<collection property="amortizaciones"  column="{idLista=ID_LISTA, idTituloCntorig={ID_TITULO_CNTORIG}" select="buscarAmortizaciones" />
	</resultMap>
	
	<resultMap id="catalogo" type="com.mx.dla.dda.catalogos.dtos.CatalogoDTO">
		<id property="value"    column="ID" />
		<result property="desc" column="DESCRIP" />
	</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>	

	<insert id="insertarTitulo" parameterType="Titulo">

		<selectKey keyProperty="idTituloCnt" resultType="long"
			order="BEFORE">
			select DDA_SQT_CONTRATO_TITULO.nextVal from DUAL
		</selectKey>

		insert into DDA_M_CONTRATO_TITULO
		(ID_TITULO_CNT,DESC_TITULO,ID_CONTRATO,ID_LISTA,ID_TITULO,
		<if test="categoria != null">
			ID_CATEGORIA,
		</if>
		<if test="release != null">
			ID_RELEASE,
		</if>
		<if test="pagoCateg != null">
			ID_PAGO_CATEG,
		</if>
		<if test="categoriaTit != null">
			ID_CATEGORIA_TIT,
		</if>
		FECHA_INICIO,FECHA_FIN,BRIEFCASE,DTO,DTR,COSTO,VIDA_UTIL,ID_SAP,ESTATUS,ID_TITULO_CNTNVO,HVRD,ID_TERRITORIO,ID_TITULO_CNTORIG,
		FECHA_NOTIFSAP,ID_SAP_ANT,ID_TITULO_CNTANT,NOTA_CREDITO,FACTURA_CREDITO,AJUSTO_TITULO,AJUSTO_VALOR,AJUSTO_VU,BAJA_PERDIDA,
		FECHA_AJUSTOTITULO,FECHA_AJUSTOVALOR,FECHA_AJUSTOVU,FECHA_BAJA,FECHA_WS,TIPO_TITULO,PRECIO_ANUAL,NOMBRE_UNICO,EPISODIO,TEMPORADA,ID_BV,MESES_VU 
		,PJE_EXCLUSIVO,MESES_EXCLUSIVO, FLGCALCULO_PRECIO, ANIO_CONTRATO)
		values (
		#{idTituloCnt},#{descTitulo},#{idContrato},#{idLista},#{idTitulo},
		<if test="categoria != null">
			#{categoria.value},
		</if>
		<if test="release != null">
			#{release.value},
		</if>
		<if test="pagoCateg != null">
			#{pagoCateg.value},
		</if>
		<if test="categoriaTit != null">
			#{categoriaTit.value},
		</if>
		
		#{fechaInicio},#{fechaFin},#{briefcase},#{dto},#{dtr},#{costo},#{vidaUtil},#{idSap},#{estatus},#{idTituloCntnvo},#{hvrd},#{idTerritorio},#{idTituloCnt},
		#{fechaNotifsap},#{idSapAnt},#{idTituloCntant},#{notaCredito},#{facturaCredito},#{ajustoTitulo},#{ajustoValor},#{ajustoVu},#{bajaPerdida},#{fechaAjustotitulo},
		#{fechaAjustovalor},#{fechaAjustovu},#{fechaBaja},#{fechaWS},#{tipoTitulo},#{precioAnual},#{nombreUnico},#{episodio},#{temporada},#{idBv},#{mesesvu}
		,#{pjeExclusivo},#{mesesExclusivo}, #{flgcalculoPrecio}, #{anioContrato})
	</insert>

	<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>

	<update id="actualizarTitulo" parameterType="Titulo">
		UPDATE DDA_M_CONTRATO_TITULO set
			DESC_TITULO = #{descTitulo},
			ID_CONTRATO = #{idContrato},
			ID_LISTA = #{idLista},
			ID_TITULO = #{idTitulo},
			<if test="categoria != null">
				ID_CATEGORIA = #{categoria.value},
			</if>
			<if test="categoria == null">
				ID_CATEGORIA = null , 
			</if>
			<if test="release != null">
				ID_RELEASE = #{release.value},
			</if>
			<if test="release == null">
				ID_RELEASE = null ,
			</if>
			<if test="pagoCateg != null">
				ID_PAGO_CATEG = #{pagoCateg.value},
			</if>
			<if test="pagoCateg == null">
				ID_PAGO_CATEG = null , 
			</if>
			<if test="categoriaTit != null">
				ID_CATEGORIA_TIT = #{categoriaTit.value},
			</if>
			<if test="categoriaTit == null">
				ID_CATEGORIA_TIT = null ,
			</if>
			<if test="fechaContabilizacion != null">
				FECHA_CONTABILIZACION = #{fechaContabilizacion} ,
			</if>
			<if test="anioContrato != null">
				ANIO_CONTRATO = #{anioContrato},
			</if>			
			FECHA_INICIO = #{fechaInicio},
			FECHA_FIN = #{fechaFin},
			BRIEFCASE = #{briefcase},
			DTO = #{dto},
			DTR = #{dtr},
			COSTO = #{costo},
			VIDA_UTIL = #{vidaUtil},
			ID_SAP = #{idSap},
			ESTATUS = #{estatus},
			ID_TITULO_CNTNVO = #{idTituloCntnvo},
			HVRD = #{hvrd},
			ID_TERRITORIO = #{idTerritorio},
			ID_TITULO_CNTORIG = #{idTituloCntorig},
			FECHA_NOTIFSAP = #{fechaNotifsap},
			ID_SAP_ANT = #{idSapAnt},
			ID_TITULO_CNTANT = #{idTituloCntant},
			NOTA_CREDITO = #{notaCredito},
			FACTURA_CREDITO = #{facturaCredito},
			AJUSTO_TITULO = #{ajustoTitulo},
			AJUSTO_VALOR = #{ajustoValor},
			AJUSTO_VU = #{ajustoVu},
			BAJA_PERDIDA = #{bajaPerdida},
			FECHA_AJUSTOTITULO = #{fechaAjustotitulo},
			FECHA_AJUSTOVALOR = #{fechaAjustovalor},
			FECHA_AJUSTOVU = #{fechaAjustovu},
			FECHA_BAJA = #{fechaBaja},
			FECHA_WS = #{fechaWS},
			TIPO_TITULO = #{tipoTitulo},
			PRECIO_ANUAL = #{precioAnual},
			NOMBRE_UNICO = #{nombreUnico},
			EPISODIO = #{episodio},
			TEMPORADA = #{temporada},
			ID_BV = #{idBv},
			MESES_VU = #{mesesvu},
			PJE_EXCLUSIVO = #{pjeExclusivo},
			MESES_EXCLUSIVO = #{mesesExclusivo},
			FLGCALCULO_PRECIO = #{flgcalculoPrecio}						
		WHERE
			ID_TITULO_CNT=#{idTituloCnt}
	</update>
	
	<update id="actualizarTituloCambio" parameterType="Titulo">
		UPDATE DDA_M_CONTRATO_TITULO set
		
			<if test="ajustoTitulo != null">
				AJUSTO_TITULO = #{ajustoTitulo},
			</if>
			<if test="ajustoValor != null">
				AJUSTO_VALOR = #{ajustoValor},
			</if>
			<if test="ajustoVu != null">
				AJUSTO_VU = #{ajustoVu},
			</if>
			<if test="bajaPerdida != null">
				BAJA_PERDIDA = #{bajaPerdida},
			</if>
			<if test="idSap != null">
				ID_SAP = #{idSap},
			</if>
			<if test="idSapAnt != null">
				ID_SAP_ANT = #{idSapAnt},
			</if>
			<if test="idTituloCntant != null">
				ID_TITULO_CNTANT  = #{idTituloCntant},
			</if>
			<if test="estatus != null">
				ESTATUS  = #{estatus},
			</if>
			<if test="fechaNotifsap != null">
				FECHA_NOTIFSAP    = #{fechaNotifsap},	
			</if>
			<if test="idTituloCntnvo != null">
				ID_TITULO_CNTNVO  = #{idTituloCntnvo},	
			</if>
			<if test="idTituloCntorig != null">
				ID_TITULO_CNTORIG = #{idTituloCntorig},	
			</if>
			<if test="descTitulo != null">
				DESC_TITULO = #{descTitulo},
			</if>						
			<if test="nombreUnico != null">
				NOMBRE_UNICO = #{nombreUnico},
			</if>						
			<if test="pagoCateg != null">
				ID_PAGO_CATEG = #{pagoCateg.value},
			</if>
			<if test="fechaInicio != null">
				FECHA_INICIO = #{fechaInicio},
			</if>
			<if test="fechaFin != null">
				FECHA_FIN = #{fechaFin},
			</if>				
			<if test="vidaUtil != null">
				VIDA_UTIL = #{vidaUtil},
			</if>
			<if test="fechaFin != null">
				MESES_VU  = #{mesesvu},
			</if>													
			<if test="anioContrato != null">
				ANIO_CONTRATO = #{anioContrato},
			</if>
			<if test="costo != null">
				COSTO = #{costo},
			</if>
			<if test="fechaContabilizacion != null">
				FECHA_CONTABILIZACION    = #{fechaContabilizacion},	
			</if>	
			    FECHA_WS = FECHA_WS											
		WHERE
			ID_TITULO_CNT=#{idTituloCnt}
	</update>	
	
	<update id="actualizarTituloVar" parameterType="map">
		UPDATE DDA_${prefix}_CONTRATO_TITULO set
			<if test="titulo.descTitulo != null">
				DESC_TITULO = #{titulo.descTitulo},
			</if>			
			<if test="titulo.idContrato != null">
				ID_CONTRATO = #{titulo.idContrato},
			</if>		
			<if test="titulo.idLista != null">
				ID_LISTA    = #{titulo.idLista},
			</if>
			<if test="titulo.tipoTitulo != null">
				TIPO_TITULO        = #{titulo.tipoTitulo},
			</if>
			<if test="titulo.precioAnual != null">
				PRECIO_ANUAL       = #{titulo.precioAnual},
			</if>
			<if test="titulo.episodio != null">
				EPISODIO           = #{titulo.episodio},
			</if>
			<if test="titulo.temporada != null">
				TEMPORADA          = #{titulo.temporada},
			</if>
			<if test="titulo.idBv != null">
				ID_BV              = #{titulo.idBv},
			</if>						
			<if test="titulo.nombreUnico != null">
				NOMBRE_UNICO       = #{titulo.nombreUnico},
			</if>
			<if test="titulo.mesesvu != null">
				MESES_VU           = #{titulo.mesesvu},
			</if>			
			<if test="titulo.pjeExclusivo != null">
				PJE_EXCLUSIVO      = #{titulo.pjeExclusivo},
			</if>
			<if test="titulo.mesesExclusivo != null">
				MESES_EXCLUSIVO    = #{titulo.mesesExclusivo},
			</if>
			<if test="titulo.flgcalculoPrecio != null">
				FLGCALCULO_PRECIO  = #{titulo.flgcalculoPrecio},
			</if>									
			<if test="titulo.facturaCredito != null">
				FACTURA_CREDITO   = #{titulo.facturaCredito},
			</if>
			<if test="titulo.ajustoTitulo != null">
				AJUSTO_TITULO     = #{titulo.ajustoTitulo},
			</if>
			<if test="titulo.ajustoValor != null">
				AJUSTO_VALOR      = #{titulo.ajustoValor},
			</if>
			<if test="titulo.ajustoVu != null">
				AJUSTO_VU         = #{titulo.ajustoVu},
			</if>
			<if test="titulo.ajustoVu == null">
				AJUSTO_VU         = null,
			</if>
			<if test="titulo.bajaPerdida != null">
				BAJA_PERDIDA      = #{titulo.bajaPerdida},
			</if>
			<if test="titulo.fechaAjustotitulo != null">
				FECHA_AJUSTOTITULO = #{titulo.fechaAjustotitulo},
			</if>
			<if test="titulo.fechaAjustovalor != null">
				FECHA_AJUSTOVALOR  = #{titulo.fechaAjustovalor},
			</if>
			<if test="titulo.fechaAjustovu != null">
				FECHA_AJUSTOVU     = #{titulo.fechaAjustovu},
			</if>																																						
			<if test="titulo.fechaBaja != null">
				FECHA_BAJA         = #{titulo.fechaBaja},
			</if>
			<if test="titulo.fechaWS != null">
				FECHA_WS           = #{titulo.fechaWS},
			</if>
			<if test="titulo.dtr != null">
				DTR          = #{titulo.dtr},
			</if>						
			<if test="titulo.costo != null">
				COSTO        = #{titulo.costo},
			</if>						
			<if test="titulo.vidaUtil != null">
				VIDA_UTIL    = #{titulo.vidaUtil},
			</if>
			<if test="titulo.hvrd != null">
				HVRD              = #{titulo.hvrd},
			</if>
			<if test="titulo.idTerritorio != null">
				ID_TERRITORIO     = #{titulo.idTerritorio},
			</if>
			<if test="titulo.idTituloCntorig != null">
				ID_TITULO_CNTORIG = #{titulo.idTituloCntorig},
			</if>
			<if test="titulo.fechaNotifsap != null">
				FECHA_NOTIFSAP    = #{titulo.fechaNotifsap},
			</if>
			<if test="titulo.idSapAnt != null">
				ID_SAP_ANT        = #{titulo.idSapAnt},
			</if>																							
			<if test="titulo.idTituloCntant != null">
				ID_TITULO_CNTANT  = #{titulo.idTituloCntant},
			</if>
			<if test="titulo.notaCredito != null">
				NOTA_CREDITO      = #{titulo.notaCredito},
			</if>
			<if test="titulo.idTituloCntnvo != null">
				ID_TITULO_CNTNVO  = #{titulo.idTituloCntnvo},
			</if>						
			<if test="titulo.fechaInicio != null">
				FECHA_INICIO = #{titulo.fechaInicio},
			</if>						
			<if test="titulo.fechaFin != null">
				FECHA_FIN    = #{titulo.fechaFin},
			</if>						
			<if test="titulo.briefcase != null">
				BRIEFCASE    = #{titulo.briefcase},
			</if>						
			<if test="titulo.dto != null">
				DTO          = #{titulo.dto},
			</if>
			<if test="titulo.fechaContabilizacion != null">
				FECHA_CONTABILIZACION = #{titulo.fechaContabilizacion},
			</if>
			<if test="titulo.idSap != null">
				ID_SAP       = #{titulo.idSap},
			</if>						
			<if test="titulo.pagoCateg != null">
				ID_PAGO_CATEG = #{titulo.pagoCateg.value},
			</if>
			<if test="titulo.pagoCateg == null">
				ID_PAGO_CATEG = null , 
			</if>
			<if test="titulo.categoriaTit != null">
				ID_CATEGORIA_TIT = #{titulo.categoriaTit.value},
			</if>  						
			<if test="titulo.release != null">
				ID_RELEASE = #{titulo.release.value},
			</if>						
			<if test="titulo.anioContrato != null">
				ANIO_CONTRATO  = #{titulo.anioContrato} ,
			</if>									
			<if test="titulo.idTitulo != null">
				ID_TITULO   = #{titulo.idTitulo},
			</if>															
			ESTATUS      = #{titulo.estatus}								
		WHERE
			ID_TITULO_CNT = #{titulo.idTituloCnt}
	</update>

	<delete id="borrarTitulo">
		delete DDA_M_CONTRATO_TITULO where
		ID_TITULO_CNT=#{idTituloCnt}
	</delete>
	
	<delete id="borrarTitulosPorLista">
		delete DDA_M_CONTRATO_TITULO where
		ID_LISTA=#{idLista}
	</delete>

	<delete id="borrarTitulosPorContrato">
		delete DDA_M_CONTRATO_TITULO where ID_CONTRATO=#{idContrato}
	</delete>
	
	<select id="buscarTitulosPorLista" resultMap="titulo"
		parameterType="long">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT 
		where
			t.ID_LISTA = #{idLista}
			and t.ESTATUS = 'ACTIVO'
		order by
			t.DESC_TITULO asc
	</select>

	<select id="buscarTitulosActivosEliminadosPorLista" resultMap="titulo"
		parameterType="long">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
		where
			t.ID_LISTA = #{idLista}
		order by
			t.DESC_TITULO asc
	</select>

	<select id="buscarTotalCostoTitulos" resultType="double"
		parameterType="long">
		select
			sum(ct.COSTO)
		from DDA_${prefix}_CONTRATO_TITULO ct
		inner join DDA_${prefix}_CONTRATO_LISTA l on l.ID_CONTRATO = ct.ID_CONTRATO and l.ID_LISTA = ct.ID_LISTA and l.FECHA_FIN is null
		where
			ct.ID_CONTRATO = #{idContrato}
			and ct.ESTATUS = 'ACTIVO'
	</select>

	<select id="buscarTitulosPorIdTituloOrig" resultMap="titulo" parameterType="map">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_${prefix}_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
		where
			t.ID_TITULO_CNTORIG = #{idTituloCntOrig}
			and t.ESTATUS = 'ACTIVO'
		order by t.ID_TITULO_CNT desc
	</select>


	<select id="buscarTitulo" resultMap="titulo" parameterType="long">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC , p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
		where 
			t.ID_TITULO_CNT = #{idTituloCnt}
			and t.ESTATUS = 'ACTIVO'
		order by t.DESC_TITULO asc
	</select>
		
	<select id="buscarTituloEstatus" resultMap="titulo" parameterType="map">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC , p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
		where 
			t.ID_TITULO_CNT = #{idTituloCnt}
			and t.ESTATUS = #{estatus}
		order by t.DESC_TITULO asc
	</select>

	<select id="buscarTitulosPorDescripcionEnLista" resultMap="titulo">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
		where
			t.ID_LISTA = #{idLista}
			and t.DESC_TITULO = #{descTitulo}
			<if test="episodio == null"> and t.EPISODIO is null </if>
			<if test="episodio != null"> and t.EPISODIO = #{episodio} </if>
			<if test="temporada == null "> and t.TEMPORADA is null </if>
			<if test="temporada != null "> and t.TEMPORADA = #{temporada} </if>
			and t.ESTATUS = 'ACTIVO'
		order by t.ID_TITULO_CNT asc
	</select>

	<select id="buscarTituloFiltro" resultMap="titulo"
		parameterType="Titulo">
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT ,  ROUND (TO_NUMBER(t.costo),2)  as COSTOF
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
		<if test="sd">
			inner join DDA_M_CONTRATO_TITULO_FTO sdf on t.ID_TITULO_CNT =  sdf.ID_TITULO_CNT and   sdf.ID_FORMATO=1
		</if>
		<if test="hd">
			inner join DDA_M_CONTRATO_TITULO_FTO hdf on t.ID_TITULO_CNT =  hdf.ID_TITULO_CNT and hdf.ID_FORMATO=2
		</if>
		<if test="threed">
			inner join DDA_M_CONTRATO_TITULO_FTO tf on t.ID_TITULO_CNT = tf.ID_TITULO_CNT and tf.ID_FORMATO=3
		</if>
		
		where
		t.ID_LISTA = #{idLista}
		<if test="descTitulo != null">
			and t.DESC_TITULO=#{descTitulo}
		</if>
		<if test="categoriaTit != null">
			<if test="categoriaTit.value != null">
				and t.ID_CATEGORIA_TIT=#{categoriaTit.value}
			</if>
			<if test="categoriaTit.value == null">
				and t.ID_CATEGORIA_TIT is null
			</if>
		</if>
		<if test="categoria != null">
			and t.ID_CATEGORIA=#{categoria.value}
		</if>
		<if test="pagoCateg != null">
			<if test="pagoCateg.value != null">
				and t.ID_PAGO_CATEG=#{pagoCateg.value}
			</if>
			<if test="pagoCateg.desc != null">
				and  p.DESC_CATEGORIA=#{pagoCateg.desc}
			</if>
		</if>
		<if test="nombreUnico != null">
			and t.NOMBRE_UNICO=#{nombreUnico}
		</if>
		<if test="release != null">
			and t.ID_RELEASE=#{release.value}
		</if>
		<if test="hvrd != null">
			and t.HVRD=#{hvrd}
		</if>
		<if test="tipoTitulo != null">
			and t.TIPO_TITULO=#{tipoTitulo}
		</if>
		<if test="fechaInicio != null">
			and t.FECHA_INICIO &lt;= #{fechaInicio}
			and t.FECHA_FIN
			&gt;= #{fechaInicio}
		</if>
		<if test="briefcase">
			and t.BRIEFCASE = 1
		</if>
		<if test="dto">
			and t.DTO =1
		</if>
		<if test="dtr">
			and t.DTR =1
		</if>
		and t.ESTATUS = 'ACTIVO'
		order 	by t.ID_TITULO_CNT asc
	</select>
	
	
	<select id="buscarTituloFiltroPaginado" resultMap="titulo"
		parameterType="Titulo">
		select		
		    t.ID_LISTA,
		    t.ID_TITULO_CNTORIG,    
			t.NOMBRE_UNICO,
		    t.DESC_TITULO,
		    t.EPISODIO,
		    t.TEMPORADA,
		    t.PRECIO_ANUAL,
		    t.ID_BV,
		    t.MESES_EXCLUSIVO,
		    t.FECHA_INICIO,
		    t.FECHA_FIN,
			c.DESCRIPCION as CAT_DESC, 
			r.DESCRIPCION as REL_DESC, 
			nvl(p.DESC_CATEGORIA, ' ') as PAGO_CATEG_DESC , 
			cct.DESC_CATEGORIA as CAT_DESC_TIT, 
			cct.SE_AGRUPA as AGRUPABLE  ,  
			ROUND (TO_NUMBER(t.costo),2)  as COSTOF , 
			decode( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) as MOVIESERIE ,
			NVL2( t.PJE_EXCLUSIVO, (t.PJE_EXCLUSIVO), '' )  as PJEMESESEXCLUSIVO ,
			TO_CHAR(t.FECHA_FIN, 'yyyymmdd')        as FECHA_FINS, 
			TO_CHAR(t.FECHA_INICIO, 'yyyymmdd')     as FECHA_INICIOS ,
			decode (t.BRIEFCASE , 1 , 'Si', 'NO' )  as   BRIEFCASES,
			decode (t.FLGCALCULO_PRECIO , 1 , 'Si', 'NO' )  as   FLGCALCULO_PRECIOS,
			t.ANIO_CONTRATO
		from DDA_M_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE        
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG                
		where
		t.ID_LISTA = #{idLista}
		<if test="descTitulo != null">
			and t.DESC_TITULO like '%'||#{descTitulo}||'%'
		</if>
		<if test="nombreUnico != null">
			and t.NOMBRE_UNICO like '%'||#{nombreUnico}||'%'
		</if>
		<if test="categoriaTit != null">
			<if test="categoriaTit.value != null">
				and t.ID_CATEGORIA_TIT like '%'||#{categoriaTit.value}||'%'
			</if>
			<if test="categoriaTit.value == null">
				and t.ID_CATEGORIA_TIT is null
			</if>
		</if>
		<if test="categoria != null">
			and t.ID_CATEGORIA=#{categoria.value}
		</if>
		<if test="pagoCateg != null">
			<if test="pagoCateg.value != null">
				and t.ID_PAGO_CATEG like '%'||#{pagoCateg.value}||'%'
			</if>
			<if test="pagoCateg.desc != null">
				and  p.DESC_CATEGORIA=#{pagoCateg.desc}
			</if>
		</if>
		<if test="release != null">
			and t.ID_RELEASE=#{release.value}
		</if>
		<if test="hvrd != null">
			and t.HVRD=#{hvrd}
		</if>
		<if test="tipoTitulo != null">
			and t.TIPO_TITULO=#{tipoTitulo}
		</if>
		<if test="fechaInicio != null">
			and t.FECHA_INICIO &lt;= #{fechaInicio}
			and t.FECHA_FIN
			&gt;= #{fechaInicio}
		</if>
		<if test="briefcase">
			and t.BRIEFCASE = 1
		</if>
		and t.ESTATUS = 'ACTIVO'
		<if test="from =! null and to != null">
			and ROWNUM BETWEEN #{from} AND #{to}
		</if>
		ORDER BY cct.SE_AGRUPA asc, t.NOMBRE_UNICO asc
	</select>
	
	<select id="buscarTituloAgrupableFiltro" resultMap="tituloAgrupable"
		parameterType="Titulo">
		select
			t.NOMBRE_UNICO 
		from DDA_M_CONTRATO_TITULO t
		<if test="sd">
			inner join DDA_M_CONTRATO_TITULO_FTO sdf on t.ID_TITULO_CNT =  sdf.ID_TITULO_CNT and   sdf.ID_FORMATO=1
		</if>
		<if test="hd">
			inner join DDA_M_CONTRATO_TITULO_FTO hdf on t.ID_TITULO_CNT =  hdf.ID_TITULO_CNT and hdf.ID_FORMATO=2
		</if>
		<if test="threed">
			inner join DDA_M_CONTRATO_TITULO_FTO tf on t.ID_TITULO_CNT = tf.ID_TITULO_CNT and tf.ID_FORMATO=3
		</if>
		where
		t.ID_LISTA = #{idLista}
		<if test="descTitulo != null">
			and t.DESC_TITULO=#{descTitulo}
		</if>
		<if test="pagoCateg != null">
			<if test="pagoCateg.value != null">
				and t.ID_PAGO_CATEG=#{pagoCateg.value}
			</if>
			<if test="pagoCateg.desc != null">
				and  p.DESC_CATEGORIA=#{pagoCateg.desc}
			</if>
		</if>
		<if test="categoriaTit != null">
			<if test="categoriaTit.value != null">
				and t.ID_CATEGORIA_TIT=#{categoriaTit.value}
			</if>
			<if test="categoriaTit.value == null">
				and t.ID_CATEGORIA_TIT is null
			</if>
		</if>
		<if test="categoria != null">
			and t.ID_CATEGORIA=#{categoria.value}
		</if>
		<if test="nombreUnico != null">
			and t.NOMBRE_UNICO=#{nombreUnico}
		</if>
		and t.NOMBRE_UNICO is not null
		<if test="release != null">
			and t.ID_RELEASE=#{release.value}
		</if>
		<if test="hvrd != null">
			and t.HVRD=#{hvrd}
		</if>
		<if test="tipoTitulo != null">
			and t.TIPO_TITULO=#{tipoTitulo}
		</if>
		<if test="fechaInicio != null">
			and t.FECHA_INICIO &lt;= #{fechaInicio}
			and t.FECHA_FIN
			&gt;= #{fechaInicio}
		</if>
		<if test="briefcase">
			and t.BRIEFCASE = 1
		</if>
		<if test="dto">
			and t.DTO =1
		</if>
		<if test="dtr">
			and t.DTR =1
		</if>
		and t.ESTATUS = 'ACTIVO'
		group by (t.NOMBRE_UNICO)
		order  by t.NOMBRE_UNICO asc
	</select>

	<select id="cuentaTitulosPorListaYDescTitulo" resultType="long">
		select
		count (*)
		from DDA_${prefix}_CONTRATO_TITULO
		where
		ID_LISTA = #{idLista}
		<if test="descTitulo != null">
			AND DESC_TITULO = #{descTitulo}
		</if>
		AND ESTATUS = 'ACTIVO'
	</select>

	<select id="buscarAmortizaciones" resultMap="catalogo" >
	    select a.ANIO as ID , a.TOTAL as DESCRIP from DDA_T_AMORTIZACION_TITULO a 
          INNER JOIN DDA_T_CONTRATO_LISTA l ON a.ID_CONTRATO = l.ID_CONTRATO
          where a.ID_TITULO_CNTORIG=#{idTituloCntorig} AND l.ID_LISTA =#{idLista}
	</select>

	<select id="buscarCatalogoTituloPorDesc" resultMap="catTitulo">
		select * from
		DDA_C_TITULO where ESTATUS=1 AND ID_ESTUDIO=#{idEstudio} AND
		DESC_TITULO=#{descTitulo}
	</select>
	<select id="buscarIdsPorIdCarga" resultType="long"  parameterType="string">
		select ID_TITULO_CNT from DDA_M_CONTRATO_TITULO where ID_CARGA=#{idCarga}
	</select>
	
	<resultMap id="tituloTotal" type="Titulo">
		<id property="descTitulo" column="DESC_TITULO" />
		<result property="fechaInicio" column="FECHA_INICIO" />
		<result property="fechaFin" column="FECHA_FIN" />
		<result property="costo" column="COSTO" />
		<collection property="amortizaciones"  column="{idLista=ID_LISTA}"
			select="buscaTotalesListaAmortizacion" />
	</resultMap>
	
	<select id="buscaTotalesLista" resultMap="tituloTotal" >
			select  'Total:'||count(*) as DESC_TITULO , 
				t.ID_LISTA,min(t.FECHA_INICIO) as FECHA_INICIO ,max(t.FECHA_FIN) as FECHA_FIN, sum(t.COSTO) as COSTO 
			from DDA_${prefix}_CONTRATO_TITULO t
			where t.ID_LISTA =  #{idLista} and t.ESTATUS = 'ACTIVO'
			GROUP by t.ID_LISTA
	</select>
	
	<select id="buscaTotalesListaAmortizacion" resultMap="catalogo" >
		select
			 	a.ANIO as ID , sum (a.TOTAL) as DESCRIP from DDA_T_AMORTIZACION_TITULO a
		inner join DDA_T_CONTRATO_TITULO t on t.ID_TITULO_CNTORIG = a.ID_TITULO_CNTORIG
		inner join DDA_T_CONTRATO_LISTA l on a.ID_CONTRATO = l.ID_CONTRATO and l.ID_LISTA = t.ID_LISTA
		where t.ID_LISTA = #{idLista}
		GROUP by (a.ANIO)
		order by a.ANIO asc
	</select>
	
	<resultMap id="tituloSerie" type="Titulo">
		<id property="descTitulo" column="DESC_TITULO" />
		<result property="fechaInicio" column="FECHA_INICIO" />
		<result property="fechaFin" column="FECHA_FIN" />
		<result property="costo" column="COSTO" />
		<result property="nombreUnico" column="NOMBRE_UNICO" />
		<result property="agrupable" column="AGRUPABLE" />
		<result property="idTituloCntorig" column="ID_TITULO_CNTORIG" />
		<collection property="amortizaciones"  column="{idLista=ID_LISTA,nombreUnico=NOMBRE_UNICO}"
			select="buscaTotalesSerieAmortizacion" />
	</resultMap>
	
	<select id="buscaTotalesSerie" resultMap="tituloSerie" >
		select 
			t.ID_LISTA,t.NOMBRE_UNICO||' - '||count(t.NOMBRE_UNICO)||' titulos' as DESC_TITULO ,
			min(t.FECHA_INICIO) as FECHA_INICIO,max(t.FECHA_FIN) as FECHA_FIN, sum(t.COSTO) as COSTO , t.NOMBRE_UNICO 
			, '1' as AGRUPABLE 
		from DDA_${prefix}_CONTRATO_TITULO t
		inner join DDA_C_CATEGORIA c on t.ID_CATEGORIA_TIT = c.ID_CATEGORIA and c.SE_AGRUPA = '1'
		where t.ID_LISTA =  #{idLista} and t.ESTATUS = 'ACTIVO'
		<if test="nombreUnico != null">
			AND t.NOMBRE_UNICO = #{nombreUnico}
		</if>
		
		GROUP by t.NOMBRE_UNICO, t.ID_LISTA
		order by t.NOMBRE_UNICO asc
	</select>
	
	<select id="buscaSerie1Capitulo" resultMap="titulo" >	
		 select t.*,p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT ,  
			ROUND (TO_NUMBER(t.costo),2)  as COSTOF , decode( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) as MOVIESERIE ,
			NVL2( t.PJE_EXCLUSIVO, (t.PJE_EXCLUSIVO || ' % - ' || t.MESES_EXCLUSIVO || ' M'), '' )  as PJEMESESEXCLUSIVO ,
			decode( t.BRIEFCASE , 1 , 'Si', 'NO' )  as   BRIEFCASES
          from (
                select NOMBRE_UNICO AS NOMBRE_U, COUNT( * ) as CAPITULOS 
                from  DDA_${prefix}_CONTRATO_TITULO 
                where ID_LISTA = #{idLista} group by NOMBRE_UNICO 
          )           
          inner join DDA_${prefix}_CONTRATO_TITULO     t on t.NOMBRE_UNICO   = NOMBRE_U
          left  join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG  = t.ID_PAGO_CATEG
          inner join DDA_C_CATEGORIA         cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT and cct.SE_AGRUPA = '1'
          where CAPITULOS = 1 AND t.ESTATUS = 'ACTIVADO'
	</select>
	
	<select id="buscaTotalesSerieAmortizacion" resultMap="catalogo">
		select 
			a.ANIO as ID ,sum(a.TOTAL) as DESCRIP 
		from DDA_T_AMORTIZACION_TITULO a
		inner join DDA_T_CONTRATO_TITULO t on t.ID_TITULO_CNTORIG = a.ID_TITULO_CNTORIG
		inner join DDA_C_CATEGORIA c on t.ID_CATEGORIA_TIT = c.ID_CATEGORIA and c.SE_AGRUPA = '1'
		inner join DDA_T_CONTRATO_LISTA l on a.ID_CONTRATO = l.ID_CONTRATO and l.ID_LISTA = t.ID_LISTA
		where t.ID_LISTA =  #{idLista}
			and t.NOMBRE_UNICO = #{nombreUnico}
		GROUP by a.ANIO
		order by a.ANIO desc
	</select> 
	
	<select id="buscaDetalleSerie" resultMap="titulo" >
		select  
			t.*,p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT ,  
			ROUND (TO_NUMBER(t.costo),2)  as COSTOF , decode( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) as MOVIESERIE ,
			NVL2( t.PJE_EXCLUSIVO, (t.PJE_EXCLUSIVO || ' % - ' || t.MESES_EXCLUSIVO || ' M'), '' )  as PJEMESESEXCLUSIVO ,
			decode( t.BRIEFCASE , 1 , 'Si', 'NO' )  as   BRIEFCASES
		from DDA_${prefix}_CONTRATO_TITULO t
		left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        inner join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT and cct.SE_AGRUPA = '1'
		where t.ID_LISTA =  #{idLista}
		and t.ESTATUS = 'ACTIVO'
		and t.NOMBRE_UNICO = #{nombreUnico}
		order by t.DESC_TITULO asc
	</select>

	<select id="buscaDetallePeliculas" resultMap="titulo" >
		select  
			t.*,p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT ,  
			ROUND (TO_NUMBER(t.costo),2)  as COSTOF , decode( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) as MOVIESERIE ,
			NVL2( t.PJE_EXCLUSIVO, (t.PJE_EXCLUSIVO || ' % - ' || t.MESES_EXCLUSIVO || ' M'), '' )  as PJEMESESEXCLUSIVO ,
			decode( t.BRIEFCASE , 1 , 'Si', 'NO' )  as   BRIEFCASES
		from DDA_${prefix}_CONTRATO_TITULO t
		left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        inner join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT and cct.SE_AGRUPA = '0'
		where t.ID_LISTA =  #{idLista} and t.ESTATUS = 'ACTIVO'
		order by t.NOMBRE_UNICO asc
	</select>

	<resultMap id="sapNum" type="SapNum">
		<result property="idRegistroSAP"  column="ID_REGISTRO_SAP" />
		<result property="idContrato"     column="ID_CONTRATO" />
		<result property="idTituloCNT"    column="ID_TITULO_CNT" />
		<result property="idTituloCtoOrig" column="ID_TITULO_CNTORIG" />
		<result property="aumento"        column="AUMENTO" />
		<result property="disminucion"    column="DISMINUCION" />
		<result property="fechaSAP"       column="FECHA_SAP" />
		<result property="subnumero"      column="SUBNUMERO" />
	</resultMap>
	
	<insert id="insertarSapSubnum" parameterType="SapNum">

		<selectKey keyProperty="idRegistroSAP" resultType="long" order="BEFORE">
			select DDA_SQT_CONTRATO_SAP_SUBNUM.nextVal from DUAL
		</selectKey>

		insert into DDA_T_CONTRATO_SAP_SUBNUM ( 		
				 <if test="aumento != null">
					AUMENTO,
				 </if>
				 <if test="disminucion != null">
					DISMINUCION,
				  </if>
				  <if test="fechaSAP != null">
					FECHA_SAP,
				  </if>
				  <if test="subnumero != null">
					SUBNUMERO,
				  </if>		 						  	
		  	     ID_REGISTRO_SAP, ID_CONTRATO, ID_TITULO_CNT, ID_TITULO_CNTORIG)
		values (  
				  <if test="aumento != null">
					#{aumento},
				 </if>
				 <if test="disminucion != null">
					#{disminucion},
				  </if>
				  <if test="fechaSAP != null">
					#{fechaSAP},
				  </if>
				  <if test="subnumero != null">
					#{subnumero},
				  </if>		
		          #{idRegistroSAP}, #{idContrato}, #{idTituloCNT}, #{idTituloCtoOrig})
	</insert>

	<delete id="borrarRegistroSAPNUM">
		delete from DDA_T_CONTRATO_SAP_SUBNUM where ID_TITULO_CNT = #{idTitulo} and SUBNUMERO is null 
	</delete>
	
	  
	<select id="buscaMaxSubNum" resultType="String" >
		select MAX(SUBNUMERO) from DDA_T_CONTRATO_SAP_SUBNUM where ID_TITULO_CNTORIG =#{idTituloCtoOrig} and AUMENTO is not null
	</select>
		  			
	<resultMap id="amortSAP" type="AmortizacionSAP">
		<result property="idAmortizacion"    column="ID_AMORTIZACION" />
		<result property="idTituloCntOrig"   column="ID_TITULO_CNTORIG" />
		<result property="mes"               column="MES" />
		<result property="monto"             column="MONTO" />
 	    <result property="montoAcumulado"    column="MONTO_ACUMULADO" />  		
		<result property="codigoActivo"      column="CODIGO_ACTIVO" />
		<result property="subNumero"         column="SUBNUMERO" />
		<result property="vnc"                column="VNC" />			
	</resultMap>
	
	
	<select id="buscaSubNumDisminucion" resultMap="sapNum" >
		select * from DDA_T_CONTRATO_SAP_SUBNUM 
		       where ID_TITULO_CNTORIG =#{idTituloCtoOrig} 
		             and SUBNUMERO is null and DISMINUCION is not null and FECHA_SAP is null 
	</select>
	
	<select id="getAumentosDisminXTitulo" resultMap="sapNum" >
		select sum(AUMENTO) aumento, sum(DISMINUCION) disminucion  
               from DDA_T_CONTRATO_SAP_SUBNUM                
               where  DDA_T_CONTRATO_SAP_SUBNUM.ID_TITULO_CNTORIG = #{idTituloCtoOrig} and DDA_T_CONTRATO_SAP_SUBNUM.ID_CONTRATO = #{idCto} 
	</select>
		
	<select id="buscaMaxSubNumByFechaAmort" resultMap="amortSAP" >
		select SUBNUMERO, MONTO_ACUMULADO, SUBNUMERO, VNC from DDA_T_AMORTIZACION_SAP 		
		where
    		EXTRACT(month FROM MES) = 
    				EXTRACT(month FROM( select MAX(MES) from DDA_T_AMORTIZACION_SAP 
                    				     where ID_TITULO_CNTORIG = #{idTituloCtoOrig} ))
    		and EXTRACT(year FROM MES) = #{anio} order by DDA_T_AMORTIZACION_SAP.SUBNUMERO desc		       
	</select>
	
	<select id="getAumnentosSAPNUMContables" resultMap="sapNum">
			select sn.* from DDA_T_CONTRATO_SAP_SUBNUM sn
		       inner join DDA_T_AMORTIZACION_SAP a on a.SUBNUMERO =  sn.SUBNUMERO
		       where
		            EXTRACT(month FROM a.MES) = 
		            EXTRACT(month FROM( select MAX(MES) from DDA_T_AMORTIZACION_SAP 
		                                   where DDA_T_AMORTIZACION_SAP.ID_TITULO_CNTORIG = #{idTituloCtoOrig} ))
		            AND a.ID_TITULO_CNTORIG = sn.ID_TITULO_CNTORIG
		            order by a.SUBNUMERO desc
	</select>
		
	<select id="getSAPNUMTrasladados" resultMap="sapNum">
		   select sn.* from DDA_T_CONTRATO_SAP_SUBNUM sn where sn.ID_TITULO_CNT = #{idTitulo} order by sn.ID_REGISTRO_SAP asc
	 </select>
	
	 <update id="actualizarSubNum" parameterType="sapNum">
		UPDATE DDA_T_CONTRATO_SAP_SUBNUM
			  SET  
			  <if test="disminucion != null">
				DISMINUCION = #{disminucion},
			  </if>
			  <if test="subnumero != null">
				SUBNUMERO   = #{subnumero}
			  </if>		           	  			     
	    WHERE ID_REGISTRO_SAP = #{idRegistroSAP}
	</update>
	
	<select id="buscarTitulosEnmiendaSincro" resultMap="titulo" parameterType="long">		
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_${prefix}_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT 
		where
			t.ID_CONTRATO = #{idCto}
			and t.ESTATUS = 'ACTIVO' and ajusto_titulo is null		
	</select>
		 

	<select id="buscarTitulosTrasladados" resultMap="titulo" parameterType="long">		
		select
			t.*,c.DESCRIPCION as CAT_DESC, r.DESCRIPCION as
			REL_DESC, p.DESC_CATEGORIA as PAGO_CATEG_DESC , cct.DESC_CATEGORIA as CAT_DESC_TIT
		from DDA_${prefix}_CONTRATO_TITULO t
		left join DDA_C_CATEGORIA_MG c on  c.ID_CATEGORIA = t. ID_CATEGORIA
		left join DDA_C_RELEASE_DATE r on r.ID_RELEASE = t.ID_RELEASE
        left join DDA_T_CONTRATO_PAGO_CATEG p on p.ID_PAGO_CATEG = t.ID_PAGO_CATEG
        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA_TIT 
		where
			t.ID_CONTRATO = #{idCto}
           and t.ESTATUS = 'ACTIVO' and ajusto_titulo  = 1		
	</select>
	
	 <select id="getAumentosSapNumXTitulo" resultMap="sapNum">
		   select sn.* from DDA_T_CONTRATO_SAP_SUBNUM sn where sn.ID_TITULO_CNT = #{IdTituloCnt} and sn.ID_CONTRATO = #{idCto} and disminucion is null order by sn.ID_REGISTRO_SAP asc
	 </select>
	 
	<select id="actualizarCostos" parameterType="map" statementType="CALLABLE" >
      			 { CALL DBDLA.DDA_COSTO_TITULO_EXCEL( #{precio, mode=IN, javaType=String, jdbcType=VARCHAR},
      			 #{idbv, mode=IN, javaType=String, jdbcType=VARCHAR}) } 
   	  </select>
	
</mapper>