BIT/IAM-2030 - spListarAsignaturasParaCalificar
----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('spListarAsignaturasParaCalificar', 'P') IS NOT NULL
DROP PROC spListarAsignaturasParaCalificar
GO
CREATE PROCEDURE [dbo].[spListarAsignaturasParaCalificar]
(
@idPlantel SMALLINT ,
@idPlanEstudios SMALLINT ,
@iFolioPeriodo BIGINT ,
@idProfesor INT ,
@idGrupo SMALLINT
/* --------------------------------------------------------------------------------------------------------------
FECHA | AUTOR | DESCRIPCION
27/jul./2017 | Luis Bernal | BIT/IAM-2030 - Se comenta comparación de idTitular ya que para la Biblioteca de Asignaturas en el panel del profesor mostraba todas las materias del grupo/Periodo especificado sin importar el profesor
--------------------------------------------------------------------------------------------------------------*/
)
-- WITH ENCRYPTION, RECOMPILE, EXECUTE AS CALLER|SELF|OWNER| 'user_name'
AS
BEGIN
SET NOCOUNT ON;
DECLARE @idUsuario INT
DECLARE @bPermisosProf BIT
--hugo
SET @bPermisosProf = ( SELECT cu.bPermisosProfesor
FROM Cat_Profesores cp
INNER JOIN Cat_Usuarios cu ON cp.idProfesor = cu.idProfesor
WHERE cp.idProfesor = @idProfesor
)
SET @idUsuario = ( SELECT cu.idUsuario
FROM Cat_Profesores cp
INNER JOIN Cat_Usuarios cu ON cp.idProfesor = cu.idProfesor
WHERE cp.idProfesor = @idProfesor
)
DECLARE @idEmpleado INT = NULL
IF @idProfesor > 0
BEGIN
SET @idEmpleado = ( SELECT ce.idEmpleado
FROM Cat_Empleados ce
WHERE ce.idProfesor = @idProfesor
)
END
IF @bPermisosProf = 0
BEGIN
--ES PROFESOR
SELECT DISTINCT
ca.idAsignatura ,
ca.sAsignatura
FROM Ctrl_TrayectoriaAcademica cta
INNER JOIN Cat_Asignaturas ca ON cta.idAsignatura = ca.idAsignatura
INNER JOIN Ctrl_Grupos cg ON cta.idGrupo = cg.idGrupo
INNER JOIN Ctrl_Inscripciones ci ON cta.iFolioInscripcion = ci.iFolio
INNER JOIN Cat_PlanEstudios cpe ON cg.idPlanEstudios = cpe.idPlanEstudios
INNER JOIN Ctrl_Periodos cp1 ON ci.iFolioPeriodo = cp1.iFolio
LEFT JOIN Ctrl_GrupoClaseTentativo cgct ON cg.idGrupo = cgct.idGrupo
AND cta.idAsignatura = cgct.idAsignatura
AND ci.iFolioPeriodo = cgct.iFolioPeriodo
LEFT JOIN Cat_Usuarios cu ON cgct.idProfesor = cu.idProfesor
LEFT JOIN Ctrl_GruposPeriodos cgp ON cg.idGrupo = cgp.idGrupo
AND cp1.iFolio = cgp.iFolioPeriodo
LEFT JOIN dbo.Ctrl_GrupoClaseTentativoCotitulares cgctc ON cgctc.iFolioGrupoClaseTentativo = cgct.iFolio
WHERE cp1.iFolio = @iFolioPeriodo
AND cta.idGrupo = @idGrupo
AND ( ( cgct.idProfesor = @idProfesor
OR cgctc.idProfesor = @idProfesor
)
OR ( cgp.idTitular = @idEmpleado
AND @idEmpleado IS NOT NULL
)
OR cgp.idTitular IS NULL
)
AND cg.idPlanEstudios = @idPlanEstudios
AND cg.idPlantel = @idPlantel
ORDER BY ca.sAsignatura
END
ELSE
BEGIN
IF @idProfesor = 0
BEGIN
SELECT DISTINCT
ca.idAsignatura ,
ca.sAsignatura
FROM Ctrl_TrayectoriaAcademica cta
INNER JOIN Cat_Asignaturas ca ON cta.idAsignatura = ca.idAsignatura
INNER JOIN Ctrl_Grupos cg ON cta.idGrupo = cg.idGrupo
INNER JOIN Ctrl_Inscripciones ci ON cta.iFolioInscripcion = ci.iFolio
INNER JOIN Cat_PlanEstudios cpe ON cg.idPlanEstudios = cpe.idPlanEstudios
INNER JOIN Ctrl_Periodos cp1 ON ci.iFolioPeriodo = cp1.iFolio
LEFT JOIN Ctrl_GrupoClaseTentativo cgct ON cg.idGrupo = cgct.idGrupo
AND cta.idAsignatura = cgct.idAsignatura
AND ci.iFolioPeriodo = cgct.iFolioPeriodo
LEFT JOIN Ctrl_GruposPeriodos cgp ON cg.idGrupo = cgp.idGrupo
AND cp1.iFolio = cgp.iFolioPeriodo
WHERE cp1.iFolio = @iFolioPeriodo
AND cta.idGrupo = @idGrupo
AND cta.idPlanEstudios = @idPlanEstudios
AND cg.idPlantel = @idPlantel
ORDER BY ca.sAsignatura
END
ELSE
BEGIN
SELECT DISTINCT
ca.idAsignatura ,
ca.sAsignatura
FROM Ctrl_TrayectoriaAcademica cta
INNER JOIN Cat_Asignaturas ca ON cta.idAsignatura = ca.idAsignatura
INNER JOIN Ctrl_Grupos cg ON cta.idGrupo = cg.idGrupo
INNER JOIN Ctrl_Inscripciones ci ON cta.iFolioInscripcion = ci.iFolio
INNER JOIN Cat_PlanEstudios cpe ON cg.idPlanEstudios = cpe.idPlanEstudios
INNER JOIN Ctrl_Periodos cp1 ON ci.iFolioPeriodo = cp1.iFolio
inner JOIN Ctrl_GrupoClaseTentativo cgct ON cg.idGrupo = cgct.idGrupo
AND cta.idAsignatura = cgct.idAsignatura
AND ci.iFolioPeriodo = cgct.iFolioPeriodo
LEFT JOIN Ctrl_GruposPeriodos cgp ON cg.idGrupo = cgp.idGrupo
AND cp1.iFolio = cgp.iFolioPeriodo
LEFT JOIN dbo.Ctrl_GrupoClaseTentativoCotitulares cgctc ON cgctc.iFolioGrupoClaseTentativo = cgct.iFolio
WHERE cp1.iFolio = @iFolioPeriodo
AND cta.idGrupo = @idGrupo
AND ( ( cgct.idProfesor = @idProfesor
OR cgctc.idProfesor = @idProfesor
)
OR ( cgp.idTitular = @idEmpleado
AND @idEmpleado IS NOT NULL
)
--OR cgp.idTitular IS NULL -- BIT/IAM-2030 - Se comenta ya que para la Biblioteca de Asignaturas en el panel del profesor mostraba todas las materias del grupo/Periodo especificado sin importar el profesor
)
AND cg.idPlanEstudios = @idPlanEstudios
AND cg.idPlantel = @idPlantel
ORDER BY ca.sAsignatura
END
END
END