<?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.terminos.daos.TerminosTransaccionDAO">

	<resultMap id="minimosTran" type="TerminoMinimoDTO">
		<result property="desde"       column="DESDE" />
		<result property="hasta"       column="HASTA" />
		<result property="categoria"   column="CATEGORIAMG" />
		<result property="fechaInicio" column="FECHA_INICIO" />
 	    <result property="fechaFin"    column="FECHA_FIN" />
 	    <result property="minimo"      column="MINIMO" /> 	    
 	    <result property="pDla"        column="P_DDA" />
 	    <result property="pEstudio"    column="P_ESTUDIO" />
 	    <result property="aplicaMG"    column="APLICAMG" />
 	    <result property="id"          column="ID" /> 	     	     	     	      						
	</resultMap>
	
	<resultMap id="feesTPaises" type="TerminosPaisDTO">		
		<result property="descripcion"   column="DESCRIPCION" />
		<result property="idPais"        column="ID_PAIS" />	
		<result property="aplicaImpuesto"   column="APLICA_IMPTO" />	
	</resultMap>
	
	<resultMap id="feesTPrecio" type="TerminoPrecioDTO">
		<result property="release"   column="RELEASE" />
		<result property="formato"   column="FORMATO" />
		<result property="idPais"    column="ID_PAIS" />
		<result property="moneda"    column="MONEDA_LOCAL" />
		<result property="dolar"     column="DOLAR" />	
		<result property="idRelease"     column="ID_RELEASE" />				  					
		<result property="idFormato"     column="ID_FORMATO" />				  					
	</resultMap>
					         	
	<resultMap id="terminosTRevenue" type="TerminosRevenueDTO">
		<result property="release"      column="RELEASE_DATE" />
		<result property="ddaPto"       column="p_dda" />
		<result property="estudioPto"   column="p_estudio" />
		<result property="desde"        column="DESDE" />
		<result property="hasta"        column="HASTA" />	
		<result property="fechaInicio"  column="FECHA_INICIO" />
		<result property="fechaFin"     column="FECHA_FIN" />							  					
	</resultMap>
  	
	<resultMap id="comunTran" type="ComunTerminosDTO">		
		<result property="tipoCambio"   column="id_tipocambio" />
		<result property="inflacion"    column="inflacion" />				  					
	</resultMap>
	
	<resultMap id="catalogoTran" type="CatalogoDTO">		
		<result property="value"   column="val" />
		<result property="desc"    column="des" />				  					
	</resultMap>
	
	<resultMap id="mapAuxiliar" type="TerminosAuxiliarDTO">
		<result property="id"           column="ID" />
		<result property="nombre"       column="NOMBRE" />		
		<result property="pDda"         column="P_DDA" />
		<result property="pEstudio"     column="P_ESTUDIO" />
		<result property="desde"        column="DESDE" />
		<result property="hasta"        column="HASTA" />
		<result property="fechaInicio"  column="FECHA_INICIO" />
		<result property="fechaFin"     column="FECHA_FIN" />
	</resultMap> 

	
	<select id="obtenerMinimosCategoria" resultMap="minimosTran" parameterType="map">		 		 				         				       
		SELECT DDA_T_CNT_FS_CATEGORIAMG.DESDE, DDA_T_CNT_FS_CATEGORIAMG.HASTA, DDA_T_CNT_FS_CATEGORIAMG.CATEGORIAMG,		       
		       to_char(DDA_T_CNT_FS_PERIODO.FECHA_INICIO, 'mm/dd/yyyy') FECHA_INICIO, to_char(DDA_T_CNT_FS_PERIODO.FECHA_FIN, 'mm/dd/yyyy') FECHA_FIN,
		       DDA_T_CNT_FS_PERIODOCAT.MINIMO, DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG ID
		FROM DDA_T_CNT_FS_SECCION 
			INNER JOIN DDA_T_CNT_FS_CATEGORIAMG ON  DDA_T_CNT_FS_CATEGORIAMG.ID_SECCION = DDA_T_CNT_FS_SECCION.ID_SECCION
			INNER JOIN DDA_T_CNT_FS_PERIODOCAT  ON  DDA_T_CNT_FS_PERIODOCAT.ID_FS_CATEGORIAMG = DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG 
			INNER JOIN DDA_T_CNT_FS_PERIODO     ON  DDA_T_CNT_FS_PERIODO.ID_PERIODO  =  DDA_T_CNT_FS_PERIODOCAT.ID_PERIODO
			WHERE DDA_T_CNT_FS_SECCION.SECCION = #{seccion}
       			AND DDA_T_CNT_FS_CATEGORIAMG.ID_CONTRATO = #{idContrato}  
       			ORDER BY DDA_T_CNT_FS_PERIODOCAT.ID_FS_CATEGORIAMG, DDA_T_CNT_FS_PERIODO.ID_PERIODO 		    		  			       		   				    
	</select>
	
	<select id="obtenerMinPeriodosCategoria" resultType="String" parameterType="map">		 		 				         				       
		Select to_char(a.FECHA_INICIO, 'mm/dd/yyyy') FECHA_INICIO
 		from ( SELECT distinct(DDA_T_CNT_FS_PERIODO.FECHA_INICIO) AS FECHA_INICIO
				FROM DDA_T_CNT_FS_SECCION  
				INNER JOIN DDA_T_CNT_FS_CATEGORIAMG ON  DDA_T_CNT_FS_CATEGORIAMG.ID_SECCION = DDA_T_CNT_FS_SECCION .ID_SECCION
				INNER JOIN DDA_T_CNT_FS_PERIODOCAT  ON  DDA_T_CNT_FS_PERIODOCAT.ID_FS_CATEGORIAMG = DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG 
				INNER JOIN DDA_T_CNT_FS_PERIODO     ON  DDA_T_CNT_FS_PERIODO.ID_PERIODO  =  DDA_T_CNT_FS_PERIODOCAT.ID_PERIODO					
				WHERE DDA_T_CNT_FS_SECCION .SECCION =  #{seccion}
	       			AND DDA_T_CNT_FS_CATEGORIAMG.ID_CONTRATO = #{idContrato}) a
	    ORDER BY a.FECHA_INICIO ASC	    		  			       		   				    
	</select>
	
	<select id="obtenerMinCatsCategoria" resultType="String" parameterType="map">		 		 				         				       
		SELECT DDA_T_CNT_FS_CATEGORIAMG.CATEGORIAMG		       
		FROM DDA_T_CNT_FS_SECCION 
			INNER JOIN DDA_T_CNT_FS_CATEGORIAMG ON  DDA_T_CNT_FS_CATEGORIAMG.ID_SECCION = DDA_T_CNT_FS_SECCION.ID_SECCION
			INNER JOIN DDA_T_CNT_FS_PERIODOCAT  ON  DDA_T_CNT_FS_PERIODOCAT.ID_FS_CATEGORIAMG = DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG 
			INNER JOIN DDA_T_CNT_FS_PERIODO     ON  DDA_T_CNT_FS_PERIODO.ID_PERIODO  =  DDA_T_CNT_FS_PERIODOCAT.ID_PERIODO
			WHERE DDA_T_CNT_FS_SECCION.SECCION =  #{seccion}
       			AND DDA_T_CNT_FS_CATEGORIAMG.ID_CONTRATO = #{idContrato} 
       			order by DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG			 		    		  			       		   				   
	</select>
	
	<select id="obtenerMinimosPeriodo" resultMap="minimosTran" parameterType="map">		 		 				         				       
		SELECT to_char(DDA_T_CNT_FS_PERIODO.FECHA_INICIO, 'mm/dd/yyyy') FECHA_INICIO, to_char(DDA_T_CNT_FS_PERIODO.FECHA_FIN, 'mm/dd/yyyy') FECHA_FIN,		       
		       DDA_T_CNT_FS_PERIODO.MINIMO, DDA_T_CNT_FS_PERIODO.APLICAMG
		FROM  DDA_T_CNT_FS_PERIODO 			
		      INNER JOIN DDA_T_CNT_FS_SECCION  ON  DDA_T_CNT_FS_PERIODO.ID_SECCION  =  DDA_T_CNT_FS_SECCION.ID_SECCION
		WHERE DDA_T_CNT_FS_SECCION.SECCION =  #{seccion}
       			AND DDA_T_CNT_FS_PERIODO.ID_CONTRATO = #{idContrato}
       			AND DDA_T_CNT_FS_SECCION.TIPO_MINIMO = 'PERIODO'  AND DDA_T_CNT_FS_PERIODO.TIPO = 'MINIMO'
		ORDER BY DDA_T_CNT_FS_PERIODO.ID_PERIODO 		    		  			       		   				    
	</select>
	
	<select id="obtenerMinimosNA" resultType="int" parameterType="map">		 		 				         				       
		SELECT count(*)
		FROM DDA_T_CNT_FS_SECCION 						     
			WHERE SECCION     =  #{seccion}
       		  AND ID_CONTRATO = #{idContrato}
              AND TIPO_MINIMO = 'NA' 		    		  			       		   				    
	</select>
													
	<delete id="eliminarSeccionMinimo" parameterType="map">			
			delete from DDA_T_CNT_FS_SECCION where id_contrato = #{idSeccion} and seccion = #{seccion}  
	</delete>
	
	<delete id="eliminarPeridoMinimos" parameterType="map">
			DELETE FROM dda_t_cnt_fs_periodo WHERE ID_PERIODO 	in
			(select DDA_T_CNT_FS_PERIODO.ID_PERIODO from DDA_T_CNT_FS_PERIODO 
       			inner join dda_t_cnt_fs_seccion on  DDA_T_CNT_FS_PERIODO.ID_SECCION = dda_t_cnt_fs_seccion.ID_SECCION
       			where dda_t_cnt_fs_seccion.SECCION = #{seccion} and DDA_T_CNT_FS_PERIODO.id_contrato = #{idContrato})									
	</delete>
	
	<delete id="eliminarCategoriaMinimos" parameterType="map">
			DELETE FROM dda_t_cnt_fs_categoriamg WHERE ID_FS_CATEGORIAMG in
			(select DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG from DDA_T_CNT_FS_CATEGORIAMG
       			inner join dda_t_cnt_fs_seccion on  DDA_T_CNT_FS_CATEGORIAMG.ID_SECCION = dda_t_cnt_fs_seccion.ID_SECCION
       			where dda_t_cnt_fs_seccion.SECCION = #{seccion} and DDA_T_CNT_FS_CATEGORIAMG.id_contrato = #{idContrato}) 
	</delete>
	
	<delete id="eliminarPerCategaMinimos" parameterType="map">
			DELETE FROM dda_t_cnt_fs_periodocat WHERE id_periodo in 
			(select DDA_T_CNT_FS_PERIODO.ID_PERIODO from DDA_T_CNT_FS_PERIODO 
       			inner join dda_t_cnt_fs_seccion on  DDA_T_CNT_FS_PERIODO.ID_SECCION = dda_t_cnt_fs_seccion.ID_SECCION
       			where dda_t_cnt_fs_seccion.SECCION = #{seccion} and DDA_T_CNT_FS_PERIODO.id_contrato = #{idContrato})
	</delete>
	
	<!-- querys release -->
	<select id="obtenerRelease" resultMap="minimosTran" parameterType="map">
		   Select DESDE, HASTA, RELEASE_DATE CATEGORIAMG, ID_RELEASE_DATE ID from DDA_T_CNT_FS_RELEASEDATE 
		   inner join dda_t_cnt_fs_seccion on DDA_T_CNT_FS_RELEASEDATE.ID_SECCION = dda_t_cnt_fs_seccion.ID_SECCION
       			where dda_t_cnt_fs_seccion.ID_CONTRATO = #{idContrato}  AND dda_t_cnt_fs_seccion.SECCION = #{seccion}
       	   Order by desde     		 				         		     		  			       		   				    
	</select>
	
	<delete id="eliminarRelease" parameterType="map">
				DELETE FROM dda_t_cnt_fs_releasedate WHERE ID_RELEASE_DATE in 
				  (
			           select ID_RELEASE_DATE ID from DDA_T_CNT_FS_RELEASEDATE 
					          inner join dda_t_cnt_fs_seccion on DDA_T_CNT_FS_RELEASEDATE.ID_SECCION = dda_t_cnt_fs_seccion.ID_SECCION
			                  where dda_t_cnt_fs_seccion.ID_CONTRATO = #{idContrato} and  dda_t_cnt_fs_seccion.SECCION = #{seccion} 
				  )			     		 				         		     		  			       		   				  
	</delete>	
	
	<!-- querys precio -->	
	<select id="obtenerAplicaPrecios" resultType="int" parameterType="map">
		 SELECT aplica_ppe FROM dda_t_cnt_fs_seccion where ID_CONTRATO = #{idContrato} and SECCION = #{seccion}      		     		  			       		   				    
	</select>
	
	<select id="obtenerNumRegPrecios" resultType="int" parameterType="map">
		 select count(*) from DDA_T_CNT_FS_PPE_RP where ID_CONTRATO = #{idContrato} AND SECCION = #{seccion} group by ID_PAIS      		     		  			       		   				    
	</select>
	
	<delete id="eliminarValoresPrecio" parameterType="map">			   
		   DELETE FROM dda_t_cnt_fs_ppe_rp WHERE id_contrato = #{idContrato} AND SECCION = #{seccion}
	</delete>
		
	
	<select id="obtenerPrecioPremier" resultMap="feesTPrecio" parameterType="map">
		 select r.ID_RELEASE_DATE, f.ID_FORMATO, r.RELEASE_DATE RELEASE, f.DESCRIPCION FORMATO, v.ID_PAIS, v.MONEDA_LOCAL, v.DOLAR from DDA_T_CNT_FS_PPE_RP v
			     inner join DDA_C_FORMATO f on v.ID_FORMATO = f.ID_FORMATO
			     inner join DDA_T_CNT_FS_RELEASEDATE r on v.ID_RELEASE_DATE = r.ID_RELEASE_DATE	
			     where v.ID_CONTRATO = #{idContrato} AND v.SECCION = #{seccion}
			     order by v.ID_PAIS, r.ID_RELEASE_DATE, f.ID_FORMATO 		 				         		     		  			       		   				    
	</select>
	
	
	<select id="obtenerPrecioLibreria" resultMap="feesTPrecio" parameterType="map">
		 select f.DESCRIPCION FORMATO, v.ID_PAIS, v.MONEDA_LOCAL, v.DOLARES DOLAR
          		from DDA_T_CNT_FS_PPE_RL v
			    inner join DDA_C_FORMATO f on v.ID_FORMATO = f.ID_FORMATO			     
          		where v.ID_CONTRATO = #{idContrato}
			    order by v.ID_PAIS, f.ID_FORMATO      		     		  			       		   				    
	</select>			
	
	<delete id="eliminarValoresPrecioLibreria" parameterType="map">	
		   DELETE FROM DDA_T_CNT_FS_PPE_RL WHERE ID_CONTRATO = #{idContrato}
	</delete>
	
		
	
	<select id="obtenerFormatos" resultMap="feesTPaises"  >
		 select descripcion, ID_FORMATO ID_PAIS from DDA_C_FORMATO order by ID_FORMATO      		     		  			       		   				    
	</select>
	
	<select id="obtenerPaises" resultMap="feesTPaises" parameterType="map">
			select distinct(DDA_C_PAIS_VENTA.DESCRIPCION), DDA_C_PAIS_VENTA.ID_PAIS from DDA_C_FILIAL
		       inner join DDA_C_EMPRESA_VENTA         ON DDA_C_FILIAL.ID_EMPRESA              = DDA_C_EMPRESA_VENTA.ID_EMPRESA
		       inner join DDA_C_PAIS_VENTA            ON DDA_C_EMPRESA_VENTA.ID_PAIS          = DDA_C_PAIS_VENTA.ID_PAIS
		       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}
		       order by DDA_C_PAIS_VENTA.DESCRIPCION   				         		     		  			       		   				    		 		 				         		     		  			       		   				    
	</select>
	
	<select id="obtenerComun" resultMap="comunTran" parameterType="map">
		SELECT id_tipocambio, inflacion FROM dda_t_cnt_fs where ID_CONTRATO = #{idContrato}
	</select> 
	
	<select id="obtenerTiposCambio" resultMap="catalogoTran">
			SELECT id_tipocambio val, descripcion des FROM dda_c_tipo_cambio ORDER BY orden desc
	</select>
 
 	<select id="obtenerPrecioMovies" resultMap="feesTPrecio" parameterType="map">
		   select t.DESCRIPCION as RELEASE, f.DESCRIPCION as FORMATO, v.ID_PAIS, v.MONEDA_LOCAL, v.DOLARES DOLAR
           from DDA_T_CNT_FS_PPE_DTOM v
			     inner join DDA_C_FORMATO f on v.ID_FORMATO = f.ID_FORMATO
			     inner join DDA_C_TIER    t on v.ID_TIER = t.ID_TIER
			     where v.ID_CONTRATO = #{idContrato}
			     order by v.ID_PAIS, t.ORDEN, f.ID_FORMATO 	 		 				         		     		  			       		   				    
	</select>
	
	<select id="obtenerPrecioSeries" resultMap="feesTPrecio" parameterType="map">
		   select t.DESCRIPCION as RELEASE, f.DESCRIPCION as FORMATO, v.ID_PAIS, v.MONEDA_LOCAL, v.DOLARES DOLAR
           from DDA_T_CNT_FS_PPE_DTOS v
			     inner join DDA_C_FORMATO f on v.ID_FORMATO = f.ID_FORMATO
			     inner join DDA_C_CATEGORIA_SERIE    t on v.ID_CATEGORIA_SERIE = t.ID_CATEGORIA_SERIE
			     where v.ID_CONTRATO = #{idContrato}
			     order by v.ID_PAIS, t.ORDEN, f.ID_FORMATO 	 		 				         		     		  			       		   				    
	</select>
	
 	<select id="obtenerNumRegPreciosMovies" resultType="int" parameterType="map">
		 select count(*) from DDA_T_CNT_FS_PPE_DTOM where ID_CONTRATO = #{idContrato}      		     		  			       		   				    
	</select>
	
	<select id="obtenerNumRegPreciosSeries" resultType="int" parameterType="map">
		 select count(*) from DDA_T_CNT_FS_PPE_DTOS where ID_CONTRATO = #{idContrato}       		     		  			       		   				    
	</select>
	
	<delete id="eliminarPrecioMovies" parameterType="map">
			DELETE FROM dda_t_cnt_fs_ppe_dtom WHERE	id_contrato = #{idContrato}		
	</delete>
	
	<delete id="eliminarPrecioSeries" parameterType="map">
			DELETE FROM dda_t_cnt_fs_ppe_dtos WHERE	id_contrato = #{idContrato}		
	</delete>
		
	<select id="obtenerTiers" resultMap="feesTPaises" >
		 select ID_TIER ID_PAIS, DESCRIPCION from DDA_C_TIER order by ORDEN      		     		  			       		   				    
	</select>
	
	<select id="obtenerCatSeries" resultMap="feesTPaises" >
		 SELECT ID_CATEGORIA_SERIE ID_PAIS, DESCRIPCION from DDA_C_CATEGORIA_SERIE ORDER BY ORDEN      		     		  			       		   				    
	</select>
	
	<select id="obtenerIdSeccion" resultType="long" parameterType="map">
		SELECT DDA_T_CNT_FS_SECCION.ID_SECCION FROM DDA_T_CNT_FS_SECCION WHERE ID_CONTRATO = #{idContrato} AND SECCION = #{seccion}		
	</select>
	
	<update id="actualizarAplicaPrecios" parameterType="map">
		UPDATE dda_t_cnt_fs_seccion SET aplica_ppe = #{aplica} WHERE id_contrato = #{idContrato} AND seccion = #{seccion}
	</update>
		
	<!-- querys revenue -->
	<select id="obtenerRevenueRelease" parameterType="map" resultMap="terminosTRevenue">
		SELECT
	    re.RELEASE_DATE,
	    to_char(p.FECHA_FIN, 'mm/dd/yyyy') FECHA_FIN,
        to_char(p.FECHA_INICIO, 'mm/dd/yyyy') FECHA_INICIO,
	    r.p_dda,
	    r.p_estudio
	      FROM dda_t_cnt_fs_revenue_rd r
	      inner join dda_t_cnt_fs_periodo p on r.ID_PERIODO = p.ID_PERIODO
	      inner join dda_t_cnt_fs_releasedate re on re.ID_RELEASE_DATE = r.ID_RELEASE_DATE
	      inner join dda_t_cnt_fs_seccion s on p.ID_SECCION = s.ID_SECCION
	      where s.SECCION = #{seccion} and p.ID_CONTRATO = #{idContrato} and p.tipo = 'REVENUE'
	      order by r.ID_RELEASE_DATE, p.ID_PERIODO
	</select>
	
	<select id="obtenerPeriodosRevenue" parameterType="map" resultType="String">
		SELECT to_char(p.FECHA_INICIO, 'mm/dd/yyyy')	|| '-' || to_char(p.FECHA_FIN, 'mm/dd/yyyy') FECHA_INICIO	    
      		FROM dda_t_cnt_fs_periodo p              
          		inner join dda_t_cnt_fs_seccion s on p.ID_SECCION = s.ID_SECCION                      
            where s.SECCION = #{seccion} and p.ID_CONTRATO = #{idContrato} and p.tipo = 'REVENUE'
            order by p.ID_PERIODO			
	 </select>
	 
	 <delete id="eliminarRevenue" parameterType="map">
	 		DELETE FROM dda_t_cnt_fs_revenue_rd WHERE id_release_date in
				  (
			           select ID_RELEASE_DATE ID from DDA_T_CNT_FS_RELEASEDATE 
					          inner join dda_t_cnt_fs_seccion on DDA_T_CNT_FS_RELEASEDATE.ID_SECCION = dda_t_cnt_fs_seccion.ID_SECCION
			                  where dda_t_cnt_fs_seccion.ID_CONTRATO = #{idContrato} and  dda_t_cnt_fs_seccion.SECCION = #{seccion} 
				  )		
	 </delete>
	 
	 <select id="obtenerRevenueMoviesBox" parameterType="map" resultMap="terminosTRevenue">		  
	     select to_char(dda_t_cnt_fs_periodo.FECHA_INICIO, 'mm/dd/yyyy') FECHA_INICIO,
	            to_char(dda_t_cnt_fs_periodo.FECHA_FIN, 'mm/dd/yyyy') FECHA_FIN,
	            dda_c_tier.DESCRIPCION RELEASE_DATE,
       		    DDA_T_CNT_FS_REVENUE_DTOM.P_DLA p_dda, DDA_T_CNT_FS_REVENUE_DTOM.P_ESTUDIO p_estudio      
       		from DDA_T_CNT_FS_REVENUE_DTOM
       			inner join dda_t_cnt_fs_periodo on DDA_T_CNT_FS_REVENUE_DTOM.ID_PERIODO = dda_t_cnt_fs_periodo.ID_PERIODO
       			inner join dda_c_tier on DDA_T_CNT_FS_REVENUE_DTOM.ID_TIER = dda_c_tier.ID_TIER
       		where DDA_T_CNT_FS_REVENUE_DTOM.ID_CONTRATO = #{idContrato}
       		order by DDA_T_CNT_FS_REVENUE_DTOM.ID_TIER	      
	</select>
	
	<select id="obtenerPeriodosRevenueMoviesBox" parameterType="map" resultType="String">            
           SELECT to_char(dda_t_cnt_fs_periodo.FECHA_INICIO, 'mm/dd/yyyy')	|| '-' || to_char(dda_t_cnt_fs_periodo.FECHA_FIN, 'mm/dd/yyyy') FECHA_INICIO       
       				from dda_t_cnt_fs_periodo       				
       			where dda_t_cnt_fs_periodo.ID_CONTRATO = #{idContrato} and dda_t_cnt_fs_periodo.TIPO = 'REVENUE' AND ID_SECCION = #{idSeccion}
       			order by ID_PERIODO
	 </select>
	 
	 <select id="obtenerRevenueMoviesGlobal" parameterType="map" resultMap="terminosTRevenue">		  
	     SELECT        
			   to_char(r.fecha_inicio, 'mm/dd/yyyy') FECHA_INICIO,
			   to_char(r.fecha_fin, 'mm/dd/yyyy') FECHA_FIN,
			   r.p_dla p_dda,
			   r.p_estudio p_estudio
			FROM dda_t_cnt_fs_revenue r
  				inner join dda_t_cnt_fs_seccion s on r.ID_SECCION = s.ID_SECCION
			where r.ID_CONTRATO = #{idContrato} and s.TIPO_REVENUE = 'GLOBAL' and s.SECCION = #{seccion}
  				order by r.FECHA_INICIO	      
	</select>
	
	<update id="actualizaTipoRevenue" parameterType="map" >
	    UPDATE dda_t_cnt_fs_seccion SET tipo_revenue = #{tipo} WHERE id_seccion = #{idSeccion}	
	</update>
	 
	 <delete id="eliminarRevenueGlobalMovies" parameterType="map">
	       DELETE FROM dda_t_cnt_fs_revenue WHERE id_contrato = #{idContrato} AND	id_seccion = #{idSeccion}
	 </delete>
	  
	  <delete id="eliminarRevenueBoxMovies" parameterType="map">
	  		DELETE FROM dda_t_cnt_fs_revenue_dtom WHERE id_contrato = #{idContrato}	  
	  </delete>
	  
	  <delete id="eliminarRevenueBoxSeries" parameterType="map">
	  		DELETE FROM dda_t_cnt_fs_revenue_dtos WHERE id_contrato = #{idContrato}	  
	  </delete>
	  <select id="obtenerRevenueSeriesBox" parameterType="map" resultMap="terminosTRevenue">		  
	     select to_char(dda_t_cnt_fs_periodo.FECHA_INICIO, 'mm/dd/yyyy') FECHA_INICIO,
	            to_char(dda_t_cnt_fs_periodo.FECHA_FIN, 'mm/dd/yyyy') FECHA_FIN,
	            dda_c_categoria_serie.DESCRIPCION RELEASE_DATE,
       		    DDA_T_CNT_FS_REVENUE_DTOS.P_DLA p_dda, DDA_T_CNT_FS_REVENUE_DTOS.P_ESTUDIO p_estudio      
       		from DDA_T_CNT_FS_REVENUE_DTOS
       			inner join dda_t_cnt_fs_periodo on DDA_T_CNT_FS_REVENUE_DTOS.ID_PERIODO = dda_t_cnt_fs_periodo.ID_PERIODO
       			inner join dda_c_categoria_serie on DDA_T_CNT_FS_REVENUE_DTOS.ID_CATEGORIA_SERIE = dda_c_categoria_serie.ID_CATEGORIA_SERIE
       		where DDA_T_CNT_FS_REVENUE_DTOS.ID_CONTRATO = #{idContrato}
       		order by DDA_T_CNT_FS_REVENUE_DTOS.ID_CATEGORIA_SERIE	     	     	    
	</select>
		 
	<select id="obtenerPestanaActual" parameterType="map"  resultType="String">
		SELECT seccion FROM dda_t_cnt_fs_seccion where ID_CONTRATO = #{idContrato}
	</select>
	
	<select id="obtenerExcepcionesDatos" parameterType="map"  resultMap="mapAuxiliar">
        SELECT C_TITULO.ID_BV AS ID, 
               C_TITULO.NOMBRE_UNICO AS NOMBRE,
               FS_EXC.P_DLA AS P_DDA, FS_EXC.P_ESTUDIO AS P_ESTUDIO,
               TO_CHAR(FS_PD.FECHA_INICIO, 'MM/DD/YYYY') AS FECHA_INICIO, 
               TO_CHAR(FS_PD.FECHA_FIN, 'MM/DD/YYYY')  AS FECHA_FIN 
        FROM DDA_T_CNT_FS_EXCEPCION FS_EXC 
           INNER JOIN DDA_T_CNT_TITULO C_TITULO 
              ON C_TITULO.ID_BV = FS_EXC.ID_BV 
           INNER JOIN DDA_T_CNT_FS_PERIODO FS_PD 
              ON C_TITULO.ID_CONTRATO = FS_PD.ID_CONTRATO 
              AND FS_EXC.ID_PERIODO = FS_PD.ID_PERIODO
           INNER JOIN DDA_T_CNT_FS_SECCION FS_CSC
              ON FS_PD.ID_SECCION =  FS_CSC.ID_SECCION
              AND FS_EXC.ID_SECCION  =  FS_CSC.ID_SECCION
        WHERE FS_PD.ID_CONTRATO = #{idContrato} AND FS_PD.TIPO = 'EXCEPCION'
         AND FS_CSC.SECCION = #{seccion}	
    </select> 
    
     <select id="obtenerPeriodos" parameterType="map"  resultMap="mapAuxiliar">
          SELECT TO_CHAR(p.FECHA_INICIO, 'MM/DD/YYYY') AS FECHA_INICIO,  TO_CHAR(p.FECHA_FIN, 'MM/DD/YYYY') AS FECHA_FIN	    
      		FROM dda_t_cnt_fs_periodo p              
          		inner join dda_t_cnt_fs_seccion s on p.ID_SECCION = s.ID_SECCION                      
            where s.SECCION = #{seccion} and p.ID_CONTRATO = #{idContrato} and p.tipo = #{tipo}
            order by p.FECHA_INICIO	
    </select>  
    
    <select id="obtenerExcepcionesTitulos" parameterType="map"  resultMap="mapAuxiliar">
        SELECT DISTINCT C_TITULO.ID_BV AS ID, 
               C_TITULO.NOMBRE_UNICO AS NOMBRE,
               NULL AS P_DDA, 
               NULL AS P_ESTUDIO,
               NULL AS FECHA_INICIO, 
               NULL AS FECHA_FIN 
        FROM DDA_T_CNT_TITULO C_TITULO 
        WHERE C_TITULO.ID_CONTRATO = #{idContrato} AND
              C_TITULO.ID_BV NOT IN (        
                           SELECT C_TITULO.ID_BV 
                           FROM DDA_T_CNT_FS_EXCEPCION FS_EXC 
                           INNER JOIN DDA_T_CNT_TITULO C_TITULO 
                                 ON C_TITULO.ID_BV = FS_EXC.ID_BV 
                           INNER JOIN DDA_T_CNT_FS_PERIODO FS_PD 
                                 ON C_TITULO.ID_CONTRATO = FS_PD.ID_CONTRATO 
                                 AND FS_EXC.ID_PERIODO = FS_PD.ID_PERIODO
                           INNER JOIN DDA_T_CNT_FS_SECCION FS_CSC
                                 ON FS_PD.ID_SECCION =  FS_CSC.ID_SECCION
                                 AND FS_EXC.ID_SECCION  =  FS_CSC.ID_SECCION
                           WHERE FS_PD.ID_CONTRATO = #{idContrato} AND FS_PD.TIPO = 'EXCEPCION'
                           AND FS_CSC.SECCION = #{seccion}
         )	
    </select> 

	<delete id="eliminarExcepcion" parameterType="map">
      DELETE FROM DDA_T_CNT_FS_EXCEPCION WHERE ID_PERIODO in (
       SELECT ID_PERIODO    
       FROM dda_t_cnt_fs_periodo p              
          inner join dda_t_cnt_fs_seccion s on p.ID_SECCION = s.ID_SECCION                      
       WHERE s.SECCION = #{seccion} and p.ID_CONTRATO = #{idContrato} and p.tipo = 'EXCEPCION'
      )
 	</delete>
 	
 	 <select id="obtenerPaisesImpuestoEstatus" parameterType="map"  resultMap="feesTPaises">
        SELECT ID_PAIS, APLICA_IMPTO FROM DDA_T_CNT_FS_PPE PPE
           INNER JOIN DDA_T_CNT_FS_SECCION FS_CSC ON FS_CSC.ID_SECCION = PPE.ID_SECCION
                     AND FS_CSC.ID_CONTRATO = PPE.ID_CONTRATO
        WHERE PPE.ID_CONTRATO = #{idContrato} AND FS_CSC.SECCION = #{seccion}     
     </select>  
  	
  	<delete id="eliminarPaisesImpuestoEstatus" parameterType="map">
      DELETE FROM DDA_T_CNT_FS_PPE WHERE ID_FS_PPE IN(
        SELECT PPE.ID_FS_PPE FROM DDA_T_CNT_FS_PPE PPE
           INNER JOIN DDA_T_CNT_FS_SECCION FS_CSC ON FS_CSC.ID_SECCION = PPE.ID_SECCION
                     AND FS_CSC.ID_CONTRATO = PPE.ID_CONTRATO
        WHERE PPE.ID_CONTRATO = #{idContrato} AND FS_CSC.SECCION = #{seccion} 
      ) 	
     </delete>  
     
    <select id="obtenerPagoPpe" resultType="int" parameterType="map">
		 SELECT pagar_ppe FROM dda_t_cnt_fs_seccion where ID_CONTRATO = #{idContrato} and SECCION = #{seccion}      		     		  			       		   				    
	</select>
    
    <update id="actualizarPagoPpe" parameterType="map">
		UPDATE dda_t_cnt_fs_seccion SET pagar_ppe = #{pagoPpe} WHERE id_contrato = #{idContrato} AND seccion = #{seccion}
	</update>
	
	<select id="obtenerBoxOfficeRevenueDatos" parameterType="map"  resultMap="mapAuxiliar">
        SELECT FS_CTMG.ID_FS_CATEGORIAMG AS ID,
               TO_CHAR(FS_PD.FECHA_INICIO, 'MM/DD/YYYY') AS FECHA_INICIO, 
               TO_CHAR(FS_PD.FECHA_FIN, 'MM/DD/YYYY')  AS FECHA_FIN,  
               FS_PCAT.P_DLA AS P_DDA, FS_PCAT.P_ESTUDIO
        FROM DDA_T_CNT_FS_REVENUE_MG FS_PCAT 
           INNER JOIN DDA_T_CNT_FS_CATEGORIAMG FS_CTMG 
              ON FS_CTMG.ID_FS_CATEGORIAMG = FS_PCAT.ID_FS_CATEGORIAMG 
           INNER JOIN DDA_T_CNT_FS_PERIODO FS_PD 
              ON FS_CTMG.ID_CONTRATO = FS_PD.ID_CONTRATO 
              AND FS_PCAT.ID_PERIODO = FS_PD.ID_PERIODO
              AND FS_CTMG.ID_SECCION = FS_PD.ID_SECCION 
           INNER JOIN DDA_T_CNT_FS_SECCION FS_CSC
              ON FS_CTMG.ID_SECCION = FS_CSC.ID_SECCION
              AND FS_PD.ID_SECCION  = FS_CSC.ID_SECCION
        WHERE FS_PD.ID_CONTRATO = #{idContrato} AND FS_PD.TIPO = #{tipo} 
              AND FS_CSC.SECCION = #{seccion} 
        ORDER BY FS_CTMG.CATEGORIAMG, FS_PD.FECHA_INICIO DESC	
    </select> 
    
	<select id="obtenerMinimosCategoriasBoxOffice" resultMap="minimosTran" parameterType="map">		 		 				         				       
		SELECT  DISTINCT DDA_T_CNT_FS_CATEGORIAMG.DESDE, DDA_T_CNT_FS_CATEGORIAMG.HASTA, DDA_T_CNT_FS_CATEGORIAMG.CATEGORIAMG,		       
		      DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG ID
		FROM DDA_T_CNT_FS_SECCION 
			INNER JOIN DDA_T_CNT_FS_CATEGORIAMG ON  DDA_T_CNT_FS_CATEGORIAMG.ID_SECCION = DDA_T_CNT_FS_SECCION.ID_SECCION
			INNER JOIN DDA_T_CNT_FS_PERIODOCAT  ON  DDA_T_CNT_FS_PERIODOCAT.ID_FS_CATEGORIAMG = DDA_T_CNT_FS_CATEGORIAMG.ID_FS_CATEGORIAMG 
			INNER JOIN DDA_T_CNT_FS_PERIODO     ON  DDA_T_CNT_FS_PERIODO.ID_PERIODO  =  DDA_T_CNT_FS_PERIODOCAT.ID_PERIODO
			WHERE DDA_T_CNT_FS_SECCION.SECCION = #{seccion}
       			AND DDA_T_CNT_FS_CATEGORIAMG.ID_CONTRATO = #{idContrato}
      ORDER BY DDA_T_CNT_FS_CATEGORIAMG.DESDE	
    </select>
    
    <select id="obtenerIdMinimoPorValores" resultType="long" parameterType="map">		 		 				         				       
		select ID_FS_CATEGORIAMG from 
		   DDA_T_CNT_FS_CATEGORIAMG 
		WHERE 
		   ID_CONTRATO = #{aux.id} AND ID_SECCION = #{aux.idOpcionalA} AND 
		   CATEGORIAMG = #{aux.nombre}	
    </select>
	 
	<delete id="eliminarMinimosCategoriasBoxOffice" parameterType="map">
	  DELETE FROM DDA_T_CNT_FS_REVENUE_MG WHERE ID_PERIODO IN(
        SELECT  PPE.ID_PERIODO FROM DDA_T_CNT_FS_PERIODO PPE
           INNER JOIN DDA_T_CNT_FS_SECCION FS_CSC ON FS_CSC.ID_SECCION = PPE.ID_SECCION
                     AND FS_CSC.ID_CONTRATO = PPE.ID_CONTRATO
        WHERE PPE.ID_CONTRATO = #{idContrato} AND FS_CSC.SECCION = #{seccion} 
      ) 
    </delete>  
    
    <select id="obtenerTipoRevenue" resultType="String" parameterType="map">
		 SELECT tipo_revenue FROM dda_t_cnt_fs_seccion where ID_CONTRATO = #{idContrato} and SECCION = #{seccion}      		     		  			       		   				    
	</select>
	
	<select id="obtenerTipoMinimo" resultType="String" parameterType="map">
		 SELECT tipo_minimo FROM dda_t_cnt_fs_seccion where ID_CONTRATO = #{idContrato} and SECCION = #{seccion}      		     		  			       		   				    
	</select>
	
   <update id="calculaPagoMinGarantizado" parameterType="map" statementType="CALLABLE">
      { CALL DDA_CNT_CALCULAR_MG( #{idContrato, mode=IN, javaType=Long, jdbcType=NUMERIC}) } 
   </update>      
</mapper>