<?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.admin.catalogos.apartados.daos.ApartadosDAO">

	<resultMap id="apartadoDTO" type="ApartadoDTO">
		<result property="idApartado"	column="ID_APARTADO"/>
		<result property="descripcion"	column="DESC_APARTADO"/>
		<result property="idSap"		column="ID_SAP"/>
		<result property="amortizable"	column="AMORTIZABLE"/>
	</resultMap>

	<select id="getApartados" resultMap="apartadoDTO" parameterType="map">
		SELECT ID_APARTADO, DESC_APARTADO, ID_SAP, AMORTIZABLE FROM DDA_T_APARTADO ORDER BY DESC_APARTADO ASC
	</select>
	
	<select id="getApartadosXAmortizable" resultMap="apartadoDTO" parameterType="map">
		SELECT ID_APARTADO, DESC_APARTADO, ID_SAP, AMORTIZABLE FROM DDA_T_APARTADO 
		WHERE AMORTIZABLE = #{amortizable} ORDER BY DESC_APARTADO ASC		
	</select>
			        	
	<insert id="guardarApartado" parameterType="map" useGeneratedKeys="true" keyProperty="apartado.idApartado" >
		
		<selectKey keyProperty="apartado.idApartado" resultType="long" order="BEFORE">
      		select DDA_SQT_APARTADO.nextval from dual 
    	</selectKey>
		
		INSERT INTO
		DDA_T_APARTADO (ID_APARTADO, DESC_APARTADO, ESTATUS, ID_SAP, AMORTIZABLE)
		values(	#{apartado.idApartado  , javaType=long   , jdbcType=NUMERIC},
				#{apartado.descripcion , javaType=String , jdbcType=VARCHAR}, 
				#{estatus              , javaType=int    , jdbcType=NUMERIC}, 
				#{apartado.idSap       , javaType=String , jdbcType=VARCHAR},
				#{apartado.amortizable , javaType=String , jdbcType=VARCHAR}								
			)
	</insert>
	
	<update id="editarApartado" parameterType="map">		
		UPDATE DDA_T_APARTADO
			   SET  DESC_APARTADO = #{apartado.descripcion},
			   		AMORTIZABLE   =	#{apartado.amortizable}     
	    WHERE ID_APARTADO = #{apartado.idApartado}						
	</update>
	
	<update id="editarSAP" parameterType="map">		
		UPDATE DDA_T_APARTADO
			   SET  ID_SAP = #{apartado.idSap}			   		    
	    WHERE ID_APARTADO = #{apartado.idApartado}						
	</update>
	
	<select id="obtenerApartadoExistente" resultType="long" parameterType="map">
			SELECT a.ID_APARTADO FROM DDA_T_APARTADO a WHERE a.AMORTIZABLE = #{amortizable} and a.DESC_APARTADO = #{apartado}		
	</select>	
	
	<delete id="eliminarApartado" parameterType="map">		
			DELETE FROM DDA_T_APARTADO WHERE ID_APARTADO = #{id}						
	</delete>
	
</mapper>
