CREATE ft2RPT_CES_ObtenerHorarioByGpoPeriodoProfAsignatura - REPORTE SIE Mondragón
----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('ft2RPT_CES_ObtenerHorarioByGpoPeriodoProfAsignatura', 'TF') IS NOT NULL
DROP FUNCTION ft2RPT_CES_ObtenerHorarioByGpoPeriodoProfAsignatura
GO
CREATE FUNCTION [dbo].[ft2RPT_CES_ObtenerHorarioByGpoPeriodoProfAsignatura]
(
@idGrupo SMALLINT,
@iFolioPeriodo BIGINT,
@idProfesor INT,
@idAsignatura SMALLINT,
@iDia TINYINT
/* --------------------------------------------------------------------------------------------------------------
FECHA | AUTOR | DESCRIPCION
22/ago./2017 | Luis Bernal |
--------------------------------------------------------------------------------------------------------------*/
)
RETURNS @TR TABLE(idHorarioClase SMALLINT,
dHorarioInicio VARCHAR(50),
dHorarioFin VARCHAR(50),
iDia TINYINT,
idAsignatura INT,
sAsignatura VARCHAR(150),
idAula SMALLINT,
sAula VARCHAR(50),
idProfesor INT,
sProfesor VARCHAR(150),
iFolioGrupoClases BIGINT,
dHrInicioCompleta DATETIME,
dHrFinCompleta DATETIME,
idGrupo SMALLINT,
sGrupo VARCHAR(50),
dHorasPago DECIMAL(3,1)
)
AS
BEGIN
INSERT INTO @TR
( idHorarioClase ,
dHorarioInicio ,
dHorarioFin ,
iDia ,
idAsignatura ,
sAsignatura ,
idAula ,
sAula ,
idProfesor ,
sProfesor ,
iFolioGrupoClases ,
dHrInicioCompleta ,
dHrFinCompleta ,
idGrupo ,
sGrupo,
dHorasPago
)
SELECT chc.idHorarioClase ,
REPLACE(CAST(CAST(chc.dHoraInicio AS TIME) AS VARCHAR(50)), ':00.0000000', '') AS dHoraInicio,
REPLACE(CAST(CAST(chc.dHoraFin AS TIME) AS VARCHAR(50)), ':00.0000000', '') AS dHoraFin ,
cgcd.iDia ,
ca.idAsignatura ,
ca.sAsignatura ,
ca2.idAula ,
ca2.sAula ,
cgc.idProfesor ,
cp.sApellidoP + ' ' + cp.sApellidoM + ' ' + cp.sNombre AS sProfesor ,
cgcd.iFolioGrupoClases ,
chc.dHoraInicio ,
chc.dHoraFin ,
cg.idGrupo,
cg.sNombre,
chc.dHorasPago
FROM dbo.Cat_HorarioClase AS chc
LEFT JOIN dbo.Ctrl_GrupoClasesDet AS cgcd ON cgcd.idHorarioClase = chc.idHorarioClase
INNER JOIN dbo.Ctrl_GrupoClases AS cgc ON cgc.iFolio = cgcd.iFolioGrupoClases
AND cgc.idGrupo = @idGrupo
AND cgc.iFolioPeriodo = @iFolioPeriodo
INNER JOIN dbo.Ctrl_Grupos AS cg ON cg.idGrupo = cgc.idGrupo
INNER JOIN dbo.Cat_Asignaturas AS ca ON ca.idAsignatura = cgc.idAsignatura
INNER JOIN dbo.Cat_Profesores AS cp ON cp.idProfesor = cgc.idProfesor
INNER JOIN dbo.Cat_Aulas AS ca2 ON ca2.idAula = cgcd.idAula
WHERE cgc.idProfesor = @idProfesor
AND ca.idAsignatura = @idAsignatura
AND (cgcd.iDia = @iDia OR @iDia = 0)
ORDER BY chc.dHoraInicio ,
chc.dHoraFin ,
iDia
RETURN;
END