<?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.admin.daos.MenuDAO">

	<resultMap id="menu" type="MenuDTO">	
		<id property="idMenu" column="ID_MENU" />
		<result property="nombre" column="NOMBRE" />
		<result property="descripcion" column="DESCRIPCION" />
		<result property="tipoMenu" column="TIPO_MENU" />
		<result property="script" column="SCRIPT" />
		<result property="parametros" column="PARAMETROS" />
		<result property="idMenuPadre" column="ID_MENU_PADRE" />
		<result property="estatus" column="ESTATUS" />			
		<result property="enMtto" column="EN_MTTO" />
		<result property="iconClass" column="ICON_CLASS" />
		<result property="orden" column="ORDEN" />			
		<result property="ruta" column="RUTA" />
		<result property="nivel" column="NIVEL" />			
	</resultMap>
	
	<resultMap id="permiso" type="PermisoDTO">	
		<id property="idPerfil"			column="ID_PERFIL" />
		<result property="idMenu"		column="ID_MENU" />
		<result property="nombre"		column="NOMBRE" />
		<result property="selector"		column="DESCRIPCION" />
		<result property="orden"		column="ORDEN" />
		<result property="script"		column="SCRIPT" />
		<result property="parametros"	column="PARAMETROS" />
		<result property="idMenuPadre"	column="ID_MENU_PADRE" />			
	</resultMap>

	<select id="consultarHijos" resultMap="menu" parameterType="map">
		select DISTINCT
		    mnu.ID_MENU, mnu.NOMBRE, mnu.DESCRIPCION,
		    mnu.TIPO_MENU, mnu.SCRIPT, mnu.PARAMETROS, mnu.ID_MENU_PADRE,
		    mnu.ESTATUS, mnu.EN_MTTO, mnu.ICON_CLASS, mnu.ORDEN,
		    SYS_CONNECT_BY_PATH( NOMBRE, ' - ' ) as RUTA, LEVEL as NIVEL		
		from
			<if test="idPerfil != null">
		    	DLA_C_PERFIL per,
		    	DLA_C_PERFIL_MENU pmen,
		    </if>
		    DLA_C_MENU mnu
		WHERE
			<if test="idPerfil != null">
			        per.ID_PERFIL = #{idPerfil}
			    and per.ID_PERFIL = pmen.ID_PERFIL
			    and mnu.ID_MENU = pmen.ID_MENU
			    and mnu.ESTATUS = 1
			    and 
		    </if>
		    	mnu.ESTATUS = 1
		    and mnu.ID_MENU_PADRE = #{idMenu}
		    and mnu.TIPO_MENU != 0
		START WITH ID_MENU_PADRE = 0
		CONNECT BY PRIOR mnu.ID_MENU = mnu.ID_MENU_PADRE
		order by LEVEL, mnu.ORDEN		
	</select>
	
	<select id="obtenerPermisos" resultMap="permiso">
		SELECT 
			cpm.ID_PERFIL, cm.ID_MENU, cm.NOMBRE, cm.DESCRIPCION, cm.ORDEN, cm.SCRIPT, cm.PARAMETROS, cm.ID_MENU_PADRE
		FROM 
			DLA_C_PERFIL_MENU cpm, DLA_C_MENU cm 
		WHERE cpm.ID_MENU = cm.ID_MENU 
			AND cpm.ID_PERFIL = #{idPerfil}
			AND cm.ESTATUS = 1
		ORDER BY cpm.ID_MENU
	</select>

</mapper>
