<?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.carga.suscriptor.daos.CargaSuscriptorDAO">
	
	 <resultMap type='CargaSuscripcionBD' id='suscripciones'>	    
	    <result property='mes'          column='MES'/>
	    <result property='annio'        column='ANNIO'/>
	    <result property='region'       column='REGION'/>
	    <result property='empresa'      column='EMPRESA'/>	    
	    <result property='suscriptores' column='SUSCRIPTORES'/>
	    <result property='idCarga'      column='ID_CARGA'/>
	    <result property='idEmpresa'    column='ID_EMPRESA'/>		          
	 </resultMap>
 
 	 <select id='obtenerCargaSuscripciones' resultMap='suscripciones' parameterType="map">
   		  SELECT REGION,EMPRESA,SUSCRIPTORES,ID_CARGA,MES,ANNIO,ID_EMPRESA FROM (  
   		 	 SELECT DDA_C_REGION_VENTA.DESCRIPCION "REGION", 
       				DDA_C_EMPRESA_VENTA.DESCRIPCION "EMPRESA", 
       				DDA_T_CARGA_SUSCRIPTOR.SUSCRIPTORES ,
       				DDA_T_CARGA_SUSCRIPTOR.ID_CARGA,
	     			EXTRACT(month FROM DDA_T_CARGA_SUSCRIPTOR.MES_CARGA) "MES",
	     			EXTRACT(year FROM DDA_T_CARGA_SUSCRIPTOR.MES_CARGA)  "ANNIO",
	     			DDA_C_EMPRESA_VENTA.ID_EMPRESA
       				FROM DDA_T_CARGA_SUSCRIPTOR
          				 INNER JOIN DDA_C_EMPRESA_VENTA ON DDA_T_CARGA_SUSCRIPTOR.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_C_REGION_VENTA  ON DDA_C_PAIS_VENTA.ID_REGION        = DDA_C_REGION_VENTA.ID_REGION
       				WHERE DDA_T_CARGA_SUSCRIPTOR.MES_CARGA IN  
       				      <foreach item="id" index="index" collection="fechas" open="(" separator="," close=")">
            				To_Date(#{id}, 'DD/MM/YYYY')
        			      </foreach>	       				
       				  ORDER BY DDA_C_REGION_VENTA.DESCRIPCION ASC
            		  )ORDER BY EMPRESA ASC  	 				         		     		  			       		   		
	  </select>
	  
	  <insert id="nuevoCargaSuscripcion" parameterType="CargaSuscripcionBD">
			<selectKey keyProperty="idCarga" resultType="long" order="BEFORE">
	    	 		   select DDA_SQT_CARGA_SUSCRIPTOR.nextVal from DUAL
	  		</selectKey> 
			INSERT INTO DDA_T_CARGA_SUSCRIPTOR ( ID_CARGA, ID_EMPRESA, MES_CARGA, SUSCRIPTORES)
	        VALUES(#{idCarga},
	        	   #{idEmpresa},  
	        	   To_Date(#{fecha}, 'DD/MM/YYYY'), 
	        	   #{suscriptores}        	   
	        	)
	  </insert>
	  
	  <update id="updateCargaSuscripcion" parameterType="CargaSuscripcionBD">		 
			UPDATE DDA_T_CARGA_SUSCRIPTOR SET SUSCRIPTORES = #{suscriptores}
	        WHERE ID_CARGA = #{idCarga} 
	  </update>
	  
	  <delete id="eliminarCarga" parameterType="map">
		  DELETE FROM DDA_T_CARGA_SUSCRIPTOR WHERE ID_CARGA = #{idCarga} 			
	  </delete>
	  	
</mapper>