<?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">
													
	<insert id="guardarSeccionMinimo" parameterType="map" useGeneratedKeys="true"   keyProperty="seccion.idSeccion">
		
			<selectKey keyProperty="seccion.idSeccion" resultType="long" order="BEFORE">
				select DDA_SQT_CNT_FS_SECCION.nextVal from DUAL
			</selectKey>								
					
			INSERT INTO dda_t_cnt_fs_seccion ( id_seccion, seccion, tipo_minimo, id_contrato	)  
			     VALUES  (#{seccion.idSeccion}, #{seccion.seccion}, #{seccion.tipoMinimo}, #{seccion.idContrato} )	            		    
	</insert>
	
	<insert id="guardarSeccionRevenue" parameterType="map" useGeneratedKeys="true"   keyProperty="seccion.idSeccion">
		
			<selectKey keyProperty="seccion.idSeccion" resultType="long" order="BEFORE">
				select DDA_SQT_CNT_FS_CATEGORIAMG.nextVal from DUAL
			</selectKey>								
					
			INSERT INTO dda_t_fs_seccion ( id_seccion, seccion, tipo_revenue ) 
			     VALUES  (#{seccion.idSeccion}, #{seccion.seccion}, #{seccion.tipoRevenue} )	            		    
	</insert>
	
	<insert id="guardarPeridoMinimos" parameterType="map" useGeneratedKeys="true"   keyProperty="periodo.idPeriodo">
		
			<selectKey keyProperty="periodo.idPeriodo" resultType="long" order="BEFORE">
				select DDA_SQT_CNT_FS_PERIODO.nextVal from DUAL
			</selectKey>								
					
			INSERT INTO dda_t_cnt_fs_periodo (
					    id_periodo,
					    id_seccion,
					    id_contrato,
					    fecha_inicio,
					    fecha_fin,
					    tipo
					    <if test="periodo.minimo != null">
				      		, minimo,
				    	</if>
				    	 <if test="periodo.aplicaMG != null">
				      		aplicamg
				    	</if>					    					    
			) VALUES (
					    #{periodo.idPeriodo},
					    #{periodo.idSeccion},
					    #{periodo.idContrato},					    					    
					    TO_DATE(#{periodo.fechaInicio}, 'MM/DD/YY'),
					    TO_DATE(#{periodo.fechaFin}, 'MM/DD/YY'),
					    #{periodo.tipo}
					    <if test="periodo.minimo != null">
				      		, #{periodo.minimo},
				    	</if>
				    	 <if test="periodo.aplicaMG != null">
				      		#{periodo.aplicaMG}
				    	</if>					    					   
			)
				            		    
	</insert>	   
	   	
	<insert id="guardarCategoriaMinimos" parameterType="map" useGeneratedKeys="true"   keyProperty="categoria.idFsCategoriaMG">
		
			<selectKey keyProperty="categoria.idFsCategoriaMG" resultType="long" order="BEFORE">
				select DDA_SQT_CNT_FS_CATEGORIAMG.nextVal from DUAL
			</selectKey>								
					
			INSERT INTO dda_t_cnt_fs_categoriamg (
			    id_fs_categoriamg,
			    id_contrato,
			    id_seccion,
			    desde,
			    hasta,
			    categoriamg			    
			) VALUES (
			    #{categoria.idFsCategoriaMG},
			    #{categoria.idContrato},
			    #{categoria.idSeccion},
			    #{categoria.desde},
			    #{categoria.hasta},
			    #{categoria.categoriaMg}			    
			)				            		    
	</insert>
	
	<insert id="guardarPerCategaMinimos" parameterType="map" >	
		INSERT INTO dda_t_cnt_fs_periodocat ( id_periodo,id_fs_categoriamg,minimo ) VALUES (
		    #{percat.idPeriodo},
		    #{percat.idFsCategoriaMG},
		    #{percat.minimo}
		)			            		    
	</insert>
	
	<!-- querys release -->
	<insert id="guardarValoresRelease" parameterType="map" useGeneratedKeys="true"   keyProperty="release.id">	
		<selectKey keyProperty="release.id" resultType="long" order="BEFORE">
			select DDA_SQT_CNT_FS_RELEASEDATE.nextVal from DUAL
		</selectKey>						
		
		INSERT
			INTO DDA_T_CNT_FS_RELEASEDATE ( ID_RELEASE_DATE, ID_CONTRATO, DESDE, HASTA, RELEASE_DATE, ID_SECCION )
			  VALUES
			  (
			    #{release.id},
			    #{idContrato},
			    #{release.desde},
			    #{release.hasta},
			    #{release.categoria},
			    #{idSeccion}
			  )
	</insert>
			 
	
	<insert id="guardarValoresPrecio" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="precios"  separator=" ">		    		   		    
				INTO DDA_T_CNT_FS_PPE_RP ( ID_RELEASE_DATE, ID_FORMATO, ID_PAIS, MONEDA_LOCAL, DOLAR, ID_CONTRATO, SECCION )
				  VALUES
				  (
				    #{v.idRelease},
				    #{v.idFormato},
				    #{v.idPais},
				    #{v.moneda},
				    #{v.dolar},
				    #{idContrato},
				    #{seccion}
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	<insert id="guardarValoresPrecioLibreria" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="precios"  separator=" ">		    		   		    
				INTO DDA_T_CNT_FS_PPE_RL ( ID_CONTRATO, ID_FORMATO, ID_PAIS, MONEDA_LOCAL, DOLARES )
				  VALUES
				  (
				    #{idContrato},
				    #{v.idFormato},
				    #{v.idPais},
				    #{v.moneda},
				    #{v.dolar}
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
		
	<insert id="guardarValoresPrecioMovies" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="precios"  separator=" ">		    		   		    
				INTO dda_t_cnt_fs_ppe_dtom ( id_tier, id_formato, id_pais, moneda_local, dolares, id_contrato )
				  VALUES
				  (
				    #{v.idRelease},
				    #{v.idFormato},
				    #{v.idPais},
				    #{v.moneda},
				    #{v.dolar},
				    #{idContrato}				    
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
		
	<insert id="guardarValoresPrecioSeries" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="precios"  separator=" ">		    		   		    
				INTO dda_t_cnt_fs_ppe_dtos ( id_categoria_serie, id_formato, id_pais, moneda_local, dolares, id_contrato )
				  VALUES
				  (
				    #{v.idRelease},
				    #{v.idFormato},
				    #{v.idPais},
				    #{v.moneda},
				    #{v.dolar},
				    #{idContrato}				    
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	<insert id="guardarComun" parameterType="map">
		INSERT INTO dda_t_cnt_fs ( id_contrato, id_tipocambio
				<if test="inflacion != null">
				    , inflacion
				</if>
		) VALUES (#{idContrato},#{tipoCambio}
				<if test="inflacion != null">
				    , #{inflacion}
				</if>
		)
	</insert>
	
	<delete id="eliminarDatosComun" parameterType="map">
		DELETE FROM dda_t_cnt_fs WHERE id_contrato = #{idContrato}
	</delete>
	
	<insert id="guardarRevenue" parameterType="map" >										
		INSERT ALL								
		<foreach item="r" collection="revenues"  separator=" ">		    		   		    
				INTO dda_t_cnt_fs_revenue_rd ( id_release_date, id_periodo, p_dda, p_estudio ) 
					 VALUES (
							   #{r.idRelease},
							   #{r.idPeriodo},
							   #{r.ddaPto},
							   #{r.estudioPto}
							)										   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	<insert id="guardarValoresRevGlobal" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="revenues"  separator=" ">		    		   		    
				INTO dda_t_cnt_fs_revenue ( id_contrato, id_seccion, fecha_inicio, fecha_fin, p_dla, p_estudio )
				  VALUES
				  (
				    #{idContrato},
				    #{idSeccion},
				    TO_DATE(#{v.fechaInicio},'MM/DD/YY'),				    					    
				    TO_DATE(#{v.fechaFin},'MM/DD/YY'),
				    #{v.ddaPto},
				    #{v.estudioPto}				    		    				    
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	<insert id="guardarValoresRevBoxMovies" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="revenues"  separator=" ">		    		   		    
				INTO dda_t_cnt_fs_revenue_dtom ( id_contrato, id_tier, id_periodo, p_dla, p_estudio )
				  VALUES
				  (
				    #{idContrato},
				    #{v.idRelease},
				    #{v.idPeriodo},				    
				    #{v.ddaPto},
				    #{v.estudioPto}				    		    				    
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	<insert id="guardarValoresRevBoxSeries" parameterType="map" >										
		INSERT ALL								
		<foreach item="v" collection="revenues"  separator=" ">		    		   		    
				INTO dda_t_cnt_fs_revenue_dtos ( id_contrato, ID_CATEGORIA_SERIE, id_periodo, p_dla, p_estudio )
				  VALUES
				  (
				    #{idContrato},
				    #{v.idRelease},
				    #{v.idPeriodo},				    
				    #{v.ddaPto},
				    #{v.estudioPto}				    		    				    
				  )		   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	 <insert id="guardarExcepciones" parameterType="map" >										
		INSERT ALL								
		<foreach item="r" collection="excepciones"  separator=" ">		    		   		    
				INTO DDA_T_CNT_FS_EXCEPCION ( ID_PERIODO, ID_BV, P_DLA, P_ESTUDIO, ID_SECCION ) 
					 VALUES (
							   #{r.id},
							   #{r.idOpcionalA},
							   #{r.pDda},
							   #{r.pEstudio},
							   #{r.idOpcionalB}
							)										   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>

	<insert id="guardaPaisesImpuestoEstatus" parameterType="map" useGeneratedKeys="true"   keyProperty="impuesto.id">	
	   <selectKey keyProperty="impuesto.id" resultType="long" order="BEFORE">
			select DDA_SQT_CNT_FS_PPE.nextVal from DUAL
	   </selectKey> 
	   INSERT INTO DDA_T_CNT_FS_PPE ( ID_FS_PPE, ID_CONTRATO, ID_PAIS, APLICA_IMPTO, ID_SECCION)
		VALUES(
		  #{impuesto.id},
		  #{impuesto.idOpcionalA},
		  #{impuesto.idOpcionalB},
		  #{impuesto.valorA},
		  #{impuesto.idOpcionalC}
		)		   
	</insert>
	
    <insert id="guardarRevenueLibreriaBoxOffice" parameterType="map" >										
		INSERT ALL								
		<foreach item="r" collection="revenues"  separator=" ">		    		   		    
				INTO DDA_T_CNT_FS_REVENUE_MG ( ID_FS_CATEGORIAMG, ID_PERIODO, P_DLA, P_ESTUDIO) 
					 VALUES (
							   #{r.id},
							   #{r.idOpcionalA},
							   #{r.pDda},
							   #{r.pEstudio}
							)										   
		</foreach> 
		SELECT * FROM DUAL					
	</insert>
	
	
	
</mapper>