BIT/IAM-2096 - spListarPeriodosProfesorPlanteles
----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('spListarPeriodosProfesorPlanteles', 'P') IS NOT NULL
DROP PROC spListarPeriodosProfesorPlanteles
GO
CREATE PROCEDURE [dbo].[spListarPeriodosProfesorPlanteles]
@idUsuario INT ,
@bidProf BIT
/* --------------------------------------------------------------------------------------------------------------
FECHA | AUTOR | DESCRIPCION
10/ago./2017 | Luis Bernal | BIT/IAM-2096 - Se adicona el tipo de ordenación descendente en año y mes inicial para que el listado de periodos sea del más reciente al más antiguo.
--------------------------------------------------------------------------------------------------------------*/
AS
BEGIN
SET NOCOUNT ON;
SET LANGUAGE spanish;
DECLARE @idProfesor INT ,
@idEmpleado INT;
IF @bidProf = 1
BEGIN
SELECT @idProfesor = @idUsuario ,
@idEmpleado = ce.idEmpleado
FROM dbo.Cat_Profesores AS cp
LEFT JOIN dbo.Cat_Empleados AS ce ON ce.idProfesor = cp.idProfesor;
END;
ELSE
BEGIN
SELECT @idProfesor = cu.idProfesor ,
@idEmpleado = ce.idEmpleado
FROM dbo.Cat_Usuarios AS cu
INNER JOIN dbo.Cat_Empleados AS ce ON ce.idUsuario = cu.idUsuario
WHERE cu.idUsuario = @idUsuario;
END;
SELECT ROW_NUMBER() OVER ( ORDER BY Periodos.sPlantel, Periodos.iAnioInicial DESC, Periodos.iMesInicial DESC, Periodos.sNombreOficial ) AS iFila ,
*
FROM ( SELECT DISTINCT
CAST(cp1.iFolio AS BIGINT) AS iFolio ,
cg.idPlantel ,
cp2.sNombre AS sPlantel ,
cp.sAbreviatura + ' ' + cp1.sAbPeriodo + ' ('
+ cp1.sNombreOficial + ')' AS sNombreOficial ,
cp1.iAnioInicial ,
cp1.iMesInicial
FROM Ctrl_TrayectoriaAcademica cta
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 Cat_Planes cp ON cp1.idPlan = cp.idPlan
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.Cat_Planteles AS cp2 ON cp2.idPlantel = cg.idPlantel
WHERE ( cgct.idProfesor = @idProfesor
OR ( cgp.idTitular = @idEmpleado
AND @idEmpleado IS NOT NULL
)
OR cgp.idTitular IS NULL
)
) Periodos;
END;