<?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.transaccion.titulos.daos.TituloTransDAO">
	
	<resultMap id="tituloDto" type="TituloTransDB">
		<result property="idTituloCnt"          column="ID_TITULO_CNT" />
		<result property="idContrato"           column="ID_CONTRATO" />
		<result property="idLista"              column="ID_LISTA" />
		<result property="idFilial"             column="ID_FILIAL" />
 	    <result property="idBv"                 column="ID_BV" />
 	    <result property="idCategoria"          column="ID_CATEGORIA" /> 	     	    
 	    <result property="idCategoriaSerie"     column="ID_CATEGORIA_SERIE" />
		<result property="idTier"               column="ID_TIER" />
		<result property="idGeneroA"            column="ID_GENERO_A" />
		<result property="idGeneroB"            column="ID_GENERO_B" />
 	    <result property="idTituloCntoOrig"     column="ID_TITULO_CNTORIG" />
 	    <result property="idSap"                column="ID_SAP" /> 	     	    
 	    <result property="nombreUnico"          column="NOMBRE_UNICO" />
		<result property="nombreEstandar"       column="NOMBRE_ESTANDAR" />
 	    <result property="temporada"            column="TEMPORADA" />
 	    <result property="episodio"             column="EPISODIO" /> 	     	   
 	    <result property="boxOffice"            column="BOX_OFFICE" />
		<result property="categoriaDTR"         column="CATEGORIA_DTR" />
 	    <result property="duracion"             column="DURACION" />	 	     	     	      					 	     	     	      					
 	    <result property="anio"                 column="ANNIO" /> 	     	   
 	    <result property="generoBS"             column="GENEROBS" />
		<result property="generoAS"             column="GENEROAS" />
 	    <result property="filialS"              column="FILIALS" />
 	    <result property="categoriaS"           column="CATEGORIAS" />
 	    <result property="tierS"                column="TIERS" />
 	    <result property="catSerieS"            column="CATSERIES" /> 	     	     	    
 	    <result property="hvrd"                 column="HVRD" /> 	     	   
 	    <result property="fechaInicio"          column="FECHA_INICIO" />
		<result property="fechaFin"             column="FECHA_FIN" />
 	    <result property="fechaNotiSap"         column="FECHA_NOTIFSAP" />
 	    <result property="briefcase"            column="BRIEFCASE" /> 	    
 	    <result property="dtr"                  column="DTR" /> 	     	   
 	    <result property="dto"                  column="DTO" />
		<result property="fsd"                  column="F_SD" />
 	    <result property="fhd"                  column="F_HD" />
 	    <result property="f3d"                  column="F_3D" />
 	    <result property="categoriaDTO"         column="CATEGORIA_DTO" />
 	    <result property="agrupable"            column="AGRUPABLE" />
 	    <result property="nombreTotalSer"       column="NOMBRETOTALSER" /> 
 	    <result property="nombreEnEspaniol"     column="NOMBRE_ESPANOL" />
 	    <result property="nombreEnIngles"     column="NOMBRE_INGLES" />
 	    <result property="nombreEnPortugues"     column="NOMBRE_PORTUGUES" /> 	     	     	     	     	     
	</resultMap>
		      
	<resultMap id="tituloExcel" type="TituloTransaccionExcel">
		<result property="filial"           column="DESC_FILIAL" />
		<result property="idBv"             column="ID_BV" />
		<result property="nombreUnico"      column="NOMBRE_UNICO" />
		<result property="nombreEstandar"   column="NOMBRE_ESTANDAR" />
 	    <result property="categoria"        column="DESC_CATEGORIA" />
 	    <result property="temporada"        column="TEMPORADA" /> 	     	    
 	    <result property="episodio"         column="EPISODIO" />
		<result property="hvrd"             column="HVRD" />
		<result property="fechaInicio"      column="FECHA_INICIO" />
		<result property="fechaFin"         column="FECHA_FIN" />		
 	    <result property="boxOffice"        column="BOX_OFFICE" />
 	    <result property="categoriaDTR"     column="CATEGORIA_DTR" /> 	     	    
 	    <result property="categoriaSerie"   column="CATSERIE" /> 	    
		<result property="tier"             column="TIER" />
 	    <result property="briefcase"        column="BRIEFCASE" />
 	    <result property="dtr"              column="DTR" /> 	     	   
 	    <result property="dto"              column="DTO" />
		<result property="sd"               column="F_SD" />
 	    <result property="hd"               column="F_HD" />	 	     	     	      					 	     	     	      					
 	    <result property="tresd"            column="F_3D" /> 	     	    	    
 	    <result property="duracion"         column="DURACION" />
		<result property="anio"             column="ANNIO" />
 	    <result property="genero"           column="GENERO" />
 	    <result property="generoB"          column="GENEROB" /> 	  
 	    <result property="error"            column="COMENTARIOS" />
 	    <result property="categoriaDTO"     column="CATEGORIA_DTO" />
 	    <result property="nombre_espanol"     column="NOMBRE_ESPANOL" />
 	    <result property="nombre_ingles"     column="NOMBRE_INGLES" />
 	    <result property="nombre_portugues"     column="NOMBRE_PORTUGUES" /> 
 	    	     	     	     	     	     
	</resultMap>
	
	<resultMap id="catalogoDto" type="CatalogoDTO">
		<result property="value"          column="val" />
		<result property="desc"           column="des" />
	</resultMap>	
	
	<resultMap id="listaTran" type="Lista">
		<id     property="idLista"       column="ID_LISTA"/>
		<result property="idContrato"    column="ID_CONTRATO"/>
		<result property="fechaCreacion" column="FECHA_CREACION"/>
		<result property="fechaInicio"   column="FECHA_INICIO"/>
		<result property="fechaFin"      column="FECHA_FIN"/>
		<result property="idContratoCreacion" column="ID_CONTRATO_CREACION"/>
	</resultMap>
										
    <insert id="guardarTituloTrans" parameterType="map" useGeneratedKeys="true"   keyProperty="titulo.idTituloCnt">
		
			<selectKey keyProperty="titulo.idTituloCnt" resultType="long" order="BEFORE">
				select DDA_SQT_CNT_TITULO.nextVal from DUAL
			</selectKey>								
							            
		    INSERT INTO DDA_M_CNT_TITULO(
				    ID_TITULO_CNT, ID_CONTRATO    , ID_LISTA          , ID_FILIAL,				    
				    NOMBRE_UNICO , NOMBRE_ESTANDAR, ID_CATEGORIA      ,				    
				    HVRD         , FECHA_INICIO   , FECHA_FIN         ,				    				    				    				    				    
				    <if test="titulo.idBv != null">
				      	ID_BV,
				    </if>
				    <if test="titulo.temporada != null">
				    	TEMPORADA,
				    </if> 
				    <if test="titulo.episodio != null">
				    	EPISODIO,
				    </if>
				    <if test="titulo.categoriaDTR != null">
				    	CATEGORIA_DTR,
				    </if>
				    <if test="titulo.idCategoriaSerie != null">
				    	ID_CATEGORIA_SERIE,
				    </if>
				    <if test="titulo.idTier != null">
				    	ID_TIER,
				    </if>
				    <if test="titulo.boxOffice != null">
				    	BOX_OFFICE,
				    </if>
				    <if test="titulo.briefcase != null"> 
				    	BRIEFCASE,
				    </if> 
				    <if test="titulo.dtr != null">
				    	DTR,
				    </if>
				    <if test="titulo.dto != null">
				    	DTO,
				    </if>
				    <if test="titulo.fsd != null"> 
				    	F_SD,
				    </if>
				    <if test="titulo.fhd != null">
				    	F_HD,
				    </if>
				    <if test="titulo.f3d != null">
				    	F_3D,
				    </if>
				    <if test="titulo.duracion != null">
				    	DURACION,
				    </if>
				    <if test="titulo.anio != null">
				    	ANNIO,
				    </if>
				    <if test="titulo.typeTitulo != null">
				    	TYPE_TITULO,
				    </if>
				    NOMBRE_ESPANOL, NOMBRE_INGLES, NOMBRE_PORTUGUES,					    				    
				    ID_GENERO_A  , ID_GENERO_B 
		  			)
		      VALUES (
    				#{titulo.idTituloCnt}, #{titulo.idContrato}    , #{titulo.idLista}     , #{titulo.idFilial}, 
    				#{titulo.nombreUnico}, #{titulo.nombreEstandar}, #{titulo.idCategoria} ,
    				#{titulo.hvrd}       , #{titulo.fechaInicio}   , #{titulo.fechaFin}    ,
    				<if test="titulo.idBv != null">
				      	#{titulo.idBv},
				    </if>
				    <if test="titulo.temporada != null">				    	
				    	#{titulo.temporada},
				    </if> 
				    <if test="titulo.episodio != null">
				    	#{titulo.episodio},
				    </if>
				    <if test="titulo.categoriaDTR != null">
				    	#{titulo.categoriaDTR},
				    </if>
				    <if test="titulo.idCategoriaSerie != null">
				    	#{titulo.idCategoriaSerie},
				    </if>
				    <if test="titulo.idTier != null">
				    	#{titulo.idTier},
				    </if>
				    <if test="titulo.boxOffice != null">
				    	#{titulo.boxOffice},
				    </if>
				    <if test="titulo.briefcase != null"> 
				    	#{titulo.briefcase},
				    </if> 
				    <if test="titulo.dtr != null">
				    	#{titulo.dtr},
				    </if>
				    <if test="titulo.dto != null">
				    	#{titulo.dto},
				    </if>
				    <if test="titulo.fsd != null"> 
				    	#{titulo.fsd},
				    </if>
				    <if test="titulo.fhd != null">
				    	#{titulo.fhd},
				    </if>
				    <if test="titulo.f3d != null">
				    	#{titulo.f3d},
				    </if>
				    <if test="titulo.duracion != null">
				    	#{titulo.duracion},
				    </if>
				    <if test="titulo.anio != null">
				    	#{titulo.anio},
				    </if> 
				    <if test="titulo.typeTitulo != null">
				    	#{titulo.typeTitulo},
				    </if> 
				    #{titulo.nombreEnEspaniol},
				    #{titulo.nombreEnIngles},
				    #{titulo.nombreEnPortugues},
				    #{titulo.idGeneroA}  , #{titulo.idGeneroB}			   				    
				  )
	</insert>

	<update id="editarTituloTrans" parameterType="map">		
			UPDATE DDA_M_CNT_TITULO SET 				 														
					ID_FILIAL          = #{titulo.idFilial},					
					NOMBRE_UNICO       = #{titulo.nombreUnico},
					NOMBRE_ESTANDAR    = #{titulo.nombreEstandar},
					ID_CATEGORIA       = #{titulo.idCategoria},					
					HVRD               = #{titulo.hvrd},
					FECHA_INICIO       = #{titulo.fechaInicio},
					FECHA_FIN          = #{titulo.fechaFin},							
					BOX_OFFICE         = #{titulo.boxOffice},																									
					CATEGORIA_DTR      = #{titulo.categoriaDTR    , jdbcType=VARCHAR},										
					ID_CATEGORIA_SERIE = #{titulo.idCategoriaSerie, jdbcType=BIGINT},									
					ID_TIER            = #{titulo.idTier          , jdbcType=BIGINT},										
					BRIEFCASE          = #{titulo.briefcase       , jdbcType=INTEGER},										
					DTR                = #{titulo.dtr             , jdbcType=INTEGER},
					DTO                = #{titulo.dto             , jdbcType=INTEGER},
					F_SD               = #{titulo.fsd             , jdbcType=INTEGER},
					F_HD               = #{titulo.fhd             , jdbcType=INTEGER},
					F_3D               = #{titulo.f3d             , jdbcType=INTEGER},
					DURACION           = #{titulo.duracion        , jdbcType=INTEGER},
					ANNIO              = #{titulo.anio            , jdbcType=INTEGER},
					ID_BV              = #{titulo.idBv            , jdbcType=VARCHAR},
					TEMPORADA          = #{titulo.temporada       , jdbcType=VARCHAR},
					EPISODIO           = #{titulo.episodio        , jdbcType=VARCHAR},			
					ID_GENERO_A        = #{titulo.idGeneroA},
					ID_GENERO_B        = #{titulo.idGeneroB},
					TYPE_TITULO        = #{titulo.typeTitulo},
					NOMBRE_ESPANOL     = #{titulo.nombreEnEspaniol},
				    NOMBRE_INGLES      = #{titulo.nombreEnIngles},
				    NOMBRE_PORTUGUES   = #{titulo.nombreEnPortugues}
				WHERE ID_TITULO_CNT    = #{titulo.idTituloCnt}				
	</update>
						    
	<update id="actualizarCategoriaTrans" parameterType="map">		
			UPDATE DDA_M_CNT_TITULO 
			SET ID_CATEGORIA       = #{idCategoria}										
			<if test="bloque == true">
				WHERE ID_TITULO_CNT  IN
				<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		           		#{id}
		       	</foreach>	
			</if>
			<if test="bloque == false">
				WHERE ID_TITULO_CNT    = #{idTituloCnt}
			</if>										
	</update>
	
	<update id="actualizarVentanaTrans" parameterType="map">		
			UPDATE DDA_M_CNT_TITULO SET 				 																			
					FECHA_INICIO       = #{fechaInicio},
					FECHA_FIN          = #{fechaFin}
			<if test="bloque == true">
				WHERE ID_TITULO_CNT  IN
				<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		           		#{id}
		       	</foreach>	
			</if>
			<if test="bloque == false">					
				WHERE   ID_TITULO_CNT      = #{idTituloCnt}
			</if>				
	</update>
	
	<update id="actualziarDTRTrans" parameterType="map">		
			UPDATE DDA_M_CNT_TITULO 
			SET CATEGORIA_DTR      = #{categoriaDTR}
			WHERE DTR = 1 AND
			<if test="bloque == true">
				 ID_TITULO_CNT  IN
				<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		           		#{id}
		       	</foreach>	
			</if>
			<if test="bloque == false">					
				ID_TITULO_CNT    = #{idTituloCnt}
			</if>				
	</update>
	
	<update id="actualziarDTOTrans" parameterType="map">		
			UPDATE DDA_M_CNT_TITULO 
			SET 
				ID_CATEGORIA_SERIE = #{idCats, jdbcType=BIGINT},
				ID_TIER            = #{idTier, jdbcType=BIGINT}
			WHERE DTO = 1 AND
			<if test="bloque == true">
				 ID_TITULO_CNT  IN
				<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		           		#{id}
		       	</foreach>	
			</if>
			<if test="bloque == false">					
				ID_TITULO_CNT    = #{idTituloCnt}
			</if>				
	</update>
	
	<select id="contarTitulosDTR" parameterType="map" resultType="integer">
		select count(*) from DDA_M_CNT_TITULO where dtr = 1 and ID_TITULO_CNT IN
			<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		         	#{id}
		    </foreach>	
	</select>
	
	<update id="actualizarHvrdTrans" parameterType="map">		
			UPDATE DDA_M_CNT_TITULO
			SET HVRD               = #{hvrd}					
			<if test="bloque == true">
				WHERE ID_TITULO_CNT  IN
				<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		           		#{id}
		       	</foreach>	
			</if>
			<if test="bloque == false">
				WHERE ID_TITULO_CNT    = #{idTituloCnt}
			</if>				
	</update>
	
	<select id="buscaTotalesListaTran" resultMap="tituloDto" >
			select  'Total:'||count(*) as NOMBRE_UNICO , 
				    min(t.FECHA_INICIO) as FECHA_INICIO ,  max(t.FECHA_FIN) as FECHA_FIN,
				    '0' as AGRUPABLE  
			from DDA_${prefix}_CNT_TITULO t			
			where t.ID_LISTA =  #{idLista}
			GROUP by t.ID_LISTA
	</select>
	
	<select id="buscaDetallePeliculasTran" resultMap="tituloDto" >
		select  		 
		      ID_TITULO_CNT, ID_BV           , DURACION    , ANNIO      , 
		      NOMBRE_UNICO , NOMBRE_ESTANDAR , TEMPORADA   , EPISODIO   ,
		      HVRD         , FECHA_INICIO    , FECHA_FIN   , BOX_OFFICE , CATEGORIA_DTR, 
		      BRIEFCASE    , DTR             , DTO         , F_SD       , F_HD         , F_3D,
		      cct.DESC_CATEGORIA CATEGORIAS  , fil.DESC_FILIAL FILIALS  , geA.DESC_GENERO GENEROAS, geB.DESC_GENERO GENEROBS,
		      tie.DESCRIPCION TIERS, cse.DESCRIPCION CATSERIES,
		      decode (t.ID_CATEGORIA_SERIE, null , tie.DESCRIPCION, cse.DESCRIPCION)  as  CATEGORIA_DTO
    	from DDA_M_CNT_TITULO t        
	        inner join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA and cct.SE_AGRUPA = '0'
	        inner join DDA_C_FILIAL    fil on fil.ID_FILIAL    = t.ID_FILIAL
	        inner join DDA_C_GENERO    geA on geA.ID_GENERO    = t.ID_GENERO_A
	        inner join DDA_C_GENERO    geB on geB.ID_GENERO    = t.ID_GENERO_B
	        left  join DDA_C_TIER      tie on tie.ID_TIER      = t.ID_TIER
            left  join DDA_C_CATEGORIA_SERIE cse on cse.ID_CATEGORIA_SERIE = t.ID_CATEGORIA_SERIE
		where t.ID_LISTA = #{idLista}
		order by t.NOMBRE_UNICO asc
	</select>
	
	<select id="buscaDetalleSeriesTran" resultMap="tituloDto" >
		select  		 
		      ID_TITULO_CNT, ID_BV           , DURACION    , ANNIO      , 
      		  NOMBRE_UNICO , NOMBRE_ESTANDAR , TEMPORADA   , EPISODIO   ,
		      HVRD         , FECHA_INICIO    , FECHA_FIN   , BOX_OFFICE , CATEGORIA_DTR, 
		      BRIEFCASE    , DTR             , DTO         , F_SD       , F_HD         , F_3D,
		      cct.DESC_CATEGORIA CATEGORIAS  , fil.DESC_FILIAL FILIALS  , geA.DESC_GENERO GENEROAS, geB.DESC_GENERO GENEROBS,
		      tie.DESCRIPCION TIERS, cse.DESCRIPCION CATSERIES,
		      decode (t.ID_CATEGORIA_SERIE, null , tie.DESCRIPCION, cse.DESCRIPCION)  as  CATEGORIA_DTO,                                    
      		  decode( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) as MOVIESERIE      		        		  			
    	from DDA_M_CNT_TITULO t        
	        inner join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA and cct.SE_AGRUPA = '1'
	        inner join DDA_C_FILIAL    fil on fil.ID_FILIAL    = t.ID_FILIAL
	        inner join DDA_C_GENERO    geA on geA.ID_GENERO    = t.ID_GENERO_A
	        inner join DDA_C_GENERO    geB on geB.ID_GENERO    = t.ID_GENERO_B
	        left  join DDA_C_TIER      tie on tie.ID_TIER      = t.ID_TIER
            left  join DDA_C_CATEGORIA_SERIE cse on cse.ID_CATEGORIA_SERIE = t.ID_CATEGORIA_SERIE
		where t.ID_LISTA = #{idLista}
			and   t.NOMBRE_UNICO = #{nombreUnico}		
		order by t.NOMBRE_ESTANDAR asc
	</select>
	
	<select id="buscaSeries1CapituloTrans" resultMap="tituloDto" >
	select  		 
			  ID_TITULO_CNT, ID_BV           , DURACION    , ANNIO      , 
     		  NOMBRE_UNICO , NOMBRE_ESTANDAR , TEMPORADA   , EPISODIO   ,
		      HVRD         , FECHA_INICIO    , FECHA_FIN   , BOX_OFFICE , CATEGORIA_DTR, 
		      BRIEFCASE    , DTR             , DTO         , F_SD       , F_HD         , F_3D,
		      cct.DESC_CATEGORIA CATEGORIAS  , fil.DESC_FILIAL FILIALS  , geA.DESC_GENERO GENEROAS, geB.DESC_GENERO GENEROBS,
		      tie.DESCRIPCION TIERS, cse.DESCRIPCION CATSERIES,
		      decode (t.ID_CATEGORIA_SERIE, null , tie.DESCRIPCION, cse.DESCRIPCION)  as  CATEGORIA_DTO,                                    
      		  decode( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) as MOVIESERIE      		        		  			
    	from (
                select NOMBRE_UNICO AS NOMBRE_U, COUNT( * ) as CAPITULOS 
                from  DDA_${prefix}_CNT_TITULO 
                where ID_LISTA = #{idLista} group by NOMBRE_UNICO 
          )    
          inner join DDA_${prefix}_CNT_TITULO  t on t.NOMBRE_UNICO   = NOMBRE_U
	        inner join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA and cct.SE_AGRUPA = '1'
	        inner join DDA_C_FILIAL    fil on fil.ID_FILIAL    = t.ID_FILIAL
	        inner join DDA_C_GENERO    geA on geA.ID_GENERO    = t.ID_GENERO_A
	        inner join DDA_C_GENERO    geB on geB.ID_GENERO    = t.ID_GENERO_B
	        left  join DDA_C_TIER      tie on tie.ID_TIER      = t.ID_TIER
          left  join DDA_C_CATEGORIA_SERIE cse on cse.ID_CATEGORIA_SERIE = t.ID_CATEGORIA_SERIE
		where CAPITULOS = 1		
	</select>
		
	<select id="buscaTotalesSerie" resultMap="tituloDto" >
		select 			
      		t.NOMBRE_UNICO||' - '||count(t.NOMBRE_UNICO)||' titulos' as NOMBRETOTALSER ,
			min(t.FECHA_INICIO) as FECHA_INICIO,
      		max(t.FECHA_FIN) as FECHA_FIN,       
      		t.NOMBRE_UNICO ,
      		'1' as AGRUPABLE 
		from DDA_${prefix}_CNT_TITULO t
			inner join DDA_C_CATEGORIA c on t.ID_CATEGORIA = c.ID_CATEGORIA and c.SE_AGRUPA = '1'
		where t.ID_LISTA = #{idLista}
		<if test="nombreUnico != null">
			AND t.NOMBRE_UNICO = #{nombreUnico}
		</if>	
		GROUP by t.NOMBRE_UNICO
		order by t.NOMBRE_UNICO asc		
	</select>
	
	<delete id="borrarTitulo">
		DELETE FROM DDA_M_CNT_TITULO WHERE ID_TITULO_CNT = #{idTitulo} 
	</delete>
	
	<select id="obtenerFiliales" resultMap="catalogoDto" parameterType="map">
		select DDA_C_FILIAL.ID_FILIAL val, DDA_C_FILIAL.DESC_FILIAL des from DDA_C_FILIAL
        	   inner join DDA_T_CONTRATO_DEAL_FILIAL  ON DDA_T_CONTRATO_DEAL_FILIAL.ID_FILIAL = DDA_C_FILIAL.ID_FILIAL
        where DDA_T_CONTRATO_DEAL_FILIAL.ID_CONTRATO = #{idContrato}
		
	</select>
	
	<select id="obtenerCatSeries" resultMap="catalogoDto" >
		select ID_CATEGORIA_SERIE val, DESCRIPCION des from DDA_C_CATEGORIA_SERIE
	</select>
	
	<select id="obtenerTiers" resultMap="catalogoDto" >
		select ID_TIER val, DESCRIPCION des from DDA_C_TIER
	</select>
	
	<select id="obtenerGeneros" resultMap="catalogoDto" >
		select ID_GENERO val, DESC_GENERO des from DDA_C_GENERO
	</select>
	
	<select id="obtenerCategorias" resultMap="catalogoDto" parameterType="map">
		select DDA_C_CATEGORIA.ID_CATEGORIA val, DDA_C_CATEGORIA.DESC_CATEGORIA des from DDA_T_CONTRATO_CATEGORIA 
      		inner join DDA_C_CATEGORIA on DDA_C_CATEGORIA.ID_CATEGORIA = DDA_T_CONTRATO_CATEGORIA.ID_CATEGORIA
      	where ID_CONTRATO = #{idContrato}
	</select>
	
	<select id="buscarTitulosPorDescripcionEnLista" resultType="Integer">
		select count(*) from DDA_T_CNT_TITULO t		
		   WHERE
			t.ID_LISTA = #{idLista}
			and t.NOMBRE_UNICO = #{nombre}						
			<if test="idTitulo != null">   and t.ID_TITULO_CNT != #{idTitulo}</if>
			<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>				
	</select>
	
	<select id="buscarTitulosOtrosContratosXBV"  resultType="Integer" >	
		select count(*)
	    	from DDA_M_CNT_TITULO t 		
			where t.ID_BV = #{idBV}
			and   t.ID_LISTA != #{idLista}					
			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="Integer" >
		select count(*) 
		    from DDA_M_CNT_TITULO t 		
			where  t.ID_LISTA = #{idLista}
		    and    t.ID_BV    = #{idBV}		    				
		    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="idTitulo != null">   and t.ID_TITULO_CNT != #{idTitulo}</if>								    		
	</select>
	
	<select id="obtenerTitulosExcel"  resultMap="tituloExcel" >
		select		    
		  	  t.ID_BV,
		      t.NOMBRE_UNICO,
		      t.NOMBRE_ESTANDAR,
		      t.TEMPORADA,
			  t.EPISODIO,
		      t.HVRD, 
		      t.FECHA_INICIO, 
		      t.FECHA_FIN, 
		      --t.BOX_OFFICE,
		      CASE
                   WHEN t.BOX_OFFICE IS NULL THEN '0'
                   WHEN t.BOX_OFFICE = 'null' THEN '0'
                   ELSE t.BOX_OFFICE
              end as BOX_OFFICE,		      
		      decode (t.BRIEFCASE, 1 , 'Si', 'NO' )   as   BRIEFCASE,
		      decode (t.DTR, 1 , 'Si', 'NO' )   as   DTR,
		      decode (t.DTO, 1 , 'Si', 'NO' )   as   DTO,		      
		      decode (t.F_SD, 1 , 'Si', 'NO' )  as   F_SD,
		      decode (t.F_HD, 1 , 'Si', 'NO' )  as   F_HD,		      
		      decode (t.F_3D, 1 , 'Si', 'NO' )  as   F_3D,
		      t.DURACION,
		      t.ANNIO, 		  
		      t.CATEGORIA_DTR,
		      fil.DESC_FILIAL,
		      cct.DESC_CATEGORIA CATEGORIA,      
		      geA.DESC_GENERO GENERO, 
		      geB.DESC_GENERO GENEROB,
		      decode (t.ID_CATEGORIA_SERIE, null , tie.DESCRIPCION, cse.DESCRIPCION)  as  CATEGORIA_DTO,
		      t.NOMBRE_ESPANOL,
              t.NOMBRE_INGLES,
              t.NOMBRE_PORTUGUES		
	    from DDA_T_CNT_TITULO t        
		        left join DDA_C_CATEGORIA cct on cct.ID_CATEGORIA = t.ID_CATEGORIA 
		        left join DDA_C_FILIAL    fil on fil.ID_FILIAL    = t.ID_FILIAL
		        left join DDA_C_GENERO    geA on geA.ID_GENERO    = t.ID_GENERO_A
		        left join DDA_C_GENERO    geB on geB.ID_GENERO    = t.ID_GENERO_B
		        left join DDA_C_TIER      tie on tie.ID_TIER      = t.ID_TIER
	            left join DDA_C_CATEGORIA_SERIE cse on cse.ID_CATEGORIA_SERIE = t.ID_CATEGORIA_SERIE
			where t.ID_LISTA = #{idLista}
		    order by t.NOMBRE_UNICO asc
		</select>
		
	<select id="buscarListaActual" resultMap="listaTran" parameterType="long">
			select * from
				DDA_${prefix}_CNT_LISTA				
			where
				ID_CONTRATO = #{idContrato}
				and FECHA_FIN is null
			order by ID_LISTA desc
	</select>
	
	<select id="buscarListaValidas" resultType="Long" parameterType="map">
			select ID_LISTA from
				DDA_${prefix}_CNT_LISTA				
			where
				ID_CONTRATO = #{idContrato}
				and FECHA_FIN is null			
	</select>
		
	<select id="buscarListasPorContratoCreacion" resultMap="listaTran" parameterType="long">
			select * from
				DDA_${prefix}_CNT_LISTA
			where
				ID_CONTRATO_CREACION = #{idContrato}
			order by ID_LISTA desc
	</select>

	<insert id="insertarLista" parameterType="Lista">
		
			<selectKey keyProperty="idLista" resultType="long" order="BEFORE">
	    	 		   select DDA_SQT_CNT_LISTA.nextVal from DUAL
	  		</selectKey>
			
			insert into DDA_${prefix}_CNT_LISTA 
				(ID_LISTA, ID_CONTRATO, FECHA_CREACION, FECHA_INICIO, ID_CONTRATO_CREACION) 
			values 
				(#{idLista},#{idContrato},SYSDATE,#{fechaInicio}, #{idContrato})
	</insert>		
	
	<select id="obtenerTitulosExcelError"  resultMap="tituloExcel" >
		select		    
		  	  t.ID_BROADVIEW as ID_BV,
		      t.NOMBRE_UNICO,
		      t.NOMBRE_ESTANDAR,
		      t.TEMPORADA,
			  t.EPISODIO,
		      t.HVRD         as HVRD,
		      t.FECHA_INICIO as FECHA_INICIO, 
		      t.FECHA_FIN    as FECHA_FIN, 
		      t.BOXOFFICE    as BOX_OFFICE,		      
		      t.BRIEFCASE,
		      t.DTR,
		      t.DTO,		      
		      --t.SD    as   F_SD,
		      --t.HD    as   F_HD,
		      t.F_3D  as   F_3D,
		      t.DURACION,
		      t.ANNIO,
		      t.CATEGORIA_DTR,
		      t.CATEGORIA_DTO,
		 	  t.FILIAL          DESC_FILIAL,
              t.CATEGORIA       CATEGORIA,
              t.ID_CATEGORIA_SERIE CATSERIE,
              t.ID_TIER            TIER, 
              t.GENERO_A        GENERO,
              t.GENERO_B        GENEROB,
              t.COMENTARIOS
	    from DDA_T_CARGATR_DETALLE_LDR t        		        	    	
		where t.ID_CARGA = #{idCarga}
	</select>

	<select id="buscarCatListaByContrato" resultMap="catalogoDto" >
		select ID_LISTA as VAL, TO_CHAR(FECHA_INICIO, 'MM/DD/YYYY') as DES from DDA_${prefix}_CNT_LISTA where ID_CONTRATO=#{idContrato}
		order by ID_LISTA desc
	</select>
	
	<update id="actualizarFechaFinLista" parameterType="map">		
			UPDATE DDA_${prefix}_CNT_LISTA 
    			SET fecha_fin = #{fechaFin}        
			WHERE
    			id_lista =#{idLista}
	</update>
		
	<select id="findSerieSeasonTrans" resultType="int" parameterType="Map">
		select COUNT(*) from DDA_M_CNT_TITULO WHERE NOMBRE_UNICO = #{nombre} AND TEMPORADA = #{temporada}
	</select>	
	
	<select id="findCategoriaTrans" resultType="int" parameterType="String">
		select DDA_C_CATEGORIA.SE_AGRUPA from DDA_C_CATEGORIA WHERE DESC_CATEGORIA = #{categoria}
	</select>
	
	<select id="obtenerNumTitulos" resultType="int" parameterType="Long">
		SELECT TOTAL_TITULOS FROM DDA_T_CONTRATO_TERMINO where ID_CONTRATO = #{idContrato}
	</select>
		
	<select id="verificarTituloVentana" resultType="int" parameterType="Map">
		SELECT COUNT(*)
			FROM DDA_T_CNT_TITULO 
		WHERE NOMBRE_UNICO = #{nombreUnico} AND ( (#{fechaInicio} BETWEEN FECHA_INICIO AND FECHA_FIN) or (#{fechaFin} BETWEEN FECHA_INICIO AND FECHA_FIN) )
	</select>
	
	<select id="titulosVentanaEnNoTransaccionales" resultMap="tituloDto"
		parameterType="map">
	    SELECT CT.*, CT.DESC_TITULO AS NOMBRE_ESTANDAR
	      FROM DDA_T_CONTRATO_TITULO CT
            INNER JOIN DDA_T_CONTRATO C ON C.ID_CONTRATO = CT.ID_CONTRATO
        WHERE C.ID_ESTATUS = #{contrato.idEstatus} AND C.ID_ESTUDIO = #{contrato.idEstudio} AND 
              CT.ID_BV = #{titulo.idBv} AND 
              ((#{titulo.fechaInicio} BETWEEN CT.FECHA_INICIO AND CT.FECHA_FIN) OR 
              (#{titulo.fechaFin} BETWEEN CT.FECHA_INICIO AND CT.FECHA_FIN))
	</select>
	
	<select id="titulosVentanaEnTransaccionales" resultMap="tituloDto"
		parameterType="map">
        SELECT CT.* 
          FROM DDA_T_CNT_TITULO CT
            INNER JOIN DDA_T_CONTRATO C ON C.ID_CONTRATO = CT.ID_CONTRATO
            INNER JOIN DDA_C_FILIAL F ON F.ID_FILIAL = CT.ID_FILIAL 
        WHERE 
              C.ID_CONTRATO != #{contrato.idContrato} AND C.ID_ESTATUS = #{contrato.idEstatus} AND 
              C.ID_ESTUDIO = #{contrato.idEstudio} AND CT.ID_BV = #{titulo.idBv} AND 
              F.DESC_FILIAL = #{titulo.filial} AND CT.TYPE_TITULO = #{titulo.typeTitulo} AND  
              ((#{titulo.fechaInicio} BETWEEN CT.FECHA_INICIO AND CT.FECHA_FIN) OR 
              (#{titulo.fechaFin} BETWEEN CT.FECHA_INICIO AND CT.FECHA_FIN))
	</select>
	
	<select id="titulosVentanaEnContrato" resultMap="tituloDto"
		parameterType="map">
        SELECT CT.* 
          FROM DDA_${prefix}_CNT_TITULO CT
            INNER JOIN DDA_T_CONTRATO C ON C.ID_CONTRATO = CT.ID_CONTRATO
            INNER JOIN DDA_C_FILIAL F ON F.ID_FILIAL = CT.ID_FILIAL 
        WHERE C.ID_CONTRATO = #{contrato.idContrato} AND 
              CT.ID_TITULO_CNT != #{titulo.idTituloCnt} AND CT.ID_BV = #{titulo.idBv} AND 
              F.DESC_FILIAL = #{titulo.filial} AND CT.TYPE_TITULO = #{titulo.typeTitulo} AND
              ((#{titulo.fechaInicio} BETWEEN CT.FECHA_INICIO AND CT.FECHA_FIN) OR 
              (#{titulo.fechaFin} BETWEEN CT.FECHA_INICIO AND CT.FECHA_FIN))
	</select>
	
	<select id="listaTitulosPrincipal" resultMap="tituloDto" parameterType="map">
  SELECT ID_BV, NOMBRETOTALSER, FECHA_INICIO, FECHA_FIN, HVRD, AGRUPABLE, NOMBRE_UNICO FROM (   
     SELECT t.ID_BV AS ID_BV,  		
      		t.NOMBRE_UNICO || ' (' || COUNT(t.NOMBRE_UNICO) ||' filiales)' AS NOMBRETOTALSER ,
			    MIN(t.FECHA_INICIO) AS FECHA_INICIO,
      		MAX(t.FECHA_FIN) AS FECHA_FIN,       
      		decode(#{uso}, 'L', '2', '0') AS AGRUPABLE,  MIN(t.HVRD) AS HVRD, NOMBRE_UNICO
	 FROM DDA_M_CNT_TITULO t
			INNER JOIN DDA_C_CATEGORIA c ON t.ID_CATEGORIA = c.ID_CATEGORIA AND c.SE_AGRUPA = '0'
	 WHERE t.ID_LISTA =  #{titulo.idLista}
	 	<if test="titulo.nombreUnico != null"> 
	 	   AND t.NOMBRE_UNICO = #{titulo.nombreUnico}
	 	</if>								    		
     GROUP BY t.NOMBRE_UNICO, t.TEMPORADA, t.ID_BV 
     UNION ALL
     SELECT NULL AS ID_BV,  		
      		t.NOMBRE_UNICO || ' (' || COUNT(t.NOMBRE_UNICO) ||' titulos)' AS NOMBRETOTALSER ,
			    MIN(t.FECHA_INICIO) AS FECHA_INICIO,
      		MAX(t.FECHA_FIN) AS FECHA_FIN,       
      		decode(#{uso}, 'L', '1', '0') AS AGRUPABLE,  MIN(t.HVRD) AS HVRD, NOMBRE_UNICO
     FROM DDA_M_CNT_TITULO t
	  	INNER JOIN DDA_C_CATEGORIA c ON t.ID_CATEGORIA = c.ID_CATEGORIA AND c.SE_AGRUPA = '1'
     WHERE t.ID_LISTA = #{titulo.idLista}
	 	<if test="titulo.nombreUnico != null"> 
	 	   AND t.NOMBRE_UNICO = #{titulo.nombreUnico}
	 	</if>
	 GROUP BY t.NOMBRE_UNICO, t.TEMPORADA
  ) 
	</select>
	
    <select id="listaTitulosSeries" resultMap="tituloDto" parameterType="map">
   SELECT t.ID_BV           ,			
      		t.NOMBRE_UNICO||': '|| t.NOMBRE_ESTANDAR || ' (' || COUNT(t.NOMBRE_UNICO) ||' filiales)' AS NOMBRETOTALSER ,
			    MIN(t.FECHA_INICIO) AS FECHA_INICIO,
      		MAX(t.FECHA_FIN) AS FECHA_FIN,       
      		t.NOMBRE_UNICO ,
      		decode(#{uso}, 'L', '2', decode(c.SE_AGRUPA, '0', '0', '1')) AS AGRUPABLE, t.TEMPORADA, t.EPISODIO, MIN(t.HVRD) as HVRD
		FROM DDA_M_CNT_TITULO t
			INNER JOIN DDA_C_CATEGORIA c ON t.ID_CATEGORIA = c.ID_CATEGORIA 
		WHERE t.ID_LISTA = #{titulo.idLista}
          AND t.NOMBRE_UNICO = #{titulo.nombreUnico}
        <if test="titulo.idBv != null"> 
	 	   AND t.ID_BV = #{titulo.idBv}
	 	</if>
		GROUP BY t.NOMBRE_UNICO, t.NOMBRE_ESTANDAR, t.TEMPORADA, t.EPISODIO, t.ID_BV, c.SE_AGRUPA  
		ORDER BY t.NOMBRE_UNICO, t.NOMBRE_ESTANDAR, t.TEMPORADA, t.EPISODIO, t.ID_BV, c.SE_AGRUPA  ASC 
	</select>
	
	<select id="listaTitulosDetalle" resultMap="tituloDto" parameterType="map">
     SELECT  		 
		  ID_TITULO_CNT, ID_BV           , DURACION    , ANNIO      , 
          NOMBRE_UNICO , NOMBRE_ESTANDAR , TEMPORADA   , EPISODIO   ,
		      HVRD         , FECHA_INICIO    , FECHA_FIN   , BOX_OFFICE , CATEGORIA_DTR, 
		      BRIEFCASE    , DTR             , DTO         , F_SD       , F_HD         , F_3D, '3' AS AGRUPABLE,
		      cct.DESC_CATEGORIA CATEGORIAS  , fil.DESC_FILIAL FILIALS  , geA.DESC_GENERO GENEROAS, geB.DESC_GENERO GENEROBS,
		      tie.DESCRIPCION TIERS, cse.DESCRIPCION CATSERIES, 
		      DECODE (t.ID_CATEGORIA_SERIE, NULL , tie.DESCRIPCION, cse.DESCRIPCION)  AS  CATEGORIA_DTO,                                    
          DECODE( cct.SE_AGRUPA, 1, NOMBRE_UNICO, 'Movies' ) AS MOVIESERIE, NOMBRE_ESPANOL, NOMBRE_INGLES, 
          NOMBRE_PORTUGUES, TYPE_TITULO      		        		  			      		        		  			
    	FROM DDA_M_CNT_TITULO t        
	        INNER JOIN DDA_C_CATEGORIA cct ON cct.ID_CATEGORIA = t.ID_CATEGORIA 
	        INNER JOIN DDA_C_FILIAL    fil ON fil.ID_FILIAL    = t.ID_FILIAL
	        LEFT JOIN DDA_C_GENERO    geA ON geA.ID_GENERO    = t.ID_GENERO_A
	        LEFT JOIN DDA_C_GENERO    geB ON geB.ID_GENERO    = t.ID_GENERO_B
	        LEFT  JOIN DDA_C_TIER      tie ON tie.ID_TIER      = t.ID_TIER
            LEFT  JOIN DDA_C_CATEGORIA_SERIE cse ON cse.ID_CATEGORIA_SERIE = t.ID_CATEGORIA_SERIE
		  WHERE t.ID_LISTA = #{titulo.idLista}
                AND t.ID_BV = #{titulo.idBv}
			    AND t.NOMBRE_UNICO = #{titulo.nombreUnico}
		  ORDER BY fil.DESC_FILIAL ASC
    </select>
    
    <select id="obtenTitulos" resultMap="tituloDto" parameterType="map">
     SELECT ct.*    		        		  			      		        		  			
    	FROM DDA_${prefix}_CNT_TITULO ct        
		  WHERE
		     1 = 1
		     <if test="ids != null"> 
		        AND ct.ID_TITULO_CNT  IN
				  <foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
		           		#{id}
		       	  </foreach>
		     </if>
		      <if test="listas != null"> 
		        AND ct.ID_LISTA  IN
				  <foreach item="lista" index="index" collection="listas" open="(" separator="," close=")">
		           		#{lista}
		       	  </foreach>
		     </if>		
    </select>
				
</mapper>