BIT/IAM-1783 - Al inscribir masivamente e indicar que se inscriba sólo a asignaturas con profesores asignados faltaba indicar el periodo
----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('spInsertarTrayectoriasAcademicasMasivas', 'P') IS NOT NULL
DROP PROC spInsertarTrayectoriasAcademicasMasivas
GO
CREATE PROCEDURE [dbo].[spInsertarTrayectoriasAcademicasMasivas]
(
@idPlanEstudios SMALLINT,-- = 7,
@idGrupo SMALLINT,-- = 101,
@iGrado TINYINT,-- = 1,
@listaIFoliosInscripcion AS listaBigInt READONLY,
@bSoloAsignadas BIT, --esto es para solo inscribir en materias con profesores asignados
@iFolioPeriodo BIGINT
/* --------------------------------------------------------------------------------------------------------------
FECHA | AUTOR | DESCRIPCION
16/Jun/2017 | Luis Bernal | BIT/IAM-1783 - Al ser True bSoloAsignadas faltaba especificar el periodo
--------------------------------------------------------------------------------------------------------------*/
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @resultadoTabla TABLE(iFolioInscripcion BIGINT, ErrorNumber INT, ErrorSeverity INT, ErrorState INT, ErrorProcedure NVARCHAR(126), ErrorLine INT, ErrorMessage NVARCHAR(2048));
DECLARE @iFolioInscripcionVariableCursor BIGINT = 0;
DECLARE cursorListaAlumnos CURSOR FOR SELECT * FROM @listaIFoliosInscripcion;
OPEN cursorListaAlumnos;
FETCH cursorListaAlumnos INTO @iFolioInscripcionVariableCursor;
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
BEGIN TRANSACTION EliminarTrayectoriaAcademica
IF @bSoloAsignadas = 0
BEGIN
INSERT INTO dbo.Ctrl_TrayectoriaAcademica(idGrupo, idAsignatura, idPlanEstudios, iFolioInscripcion, iTipoResultado, bHistorica, iOrden)
SELECT @idGrupo, CPE.idAsignatura, @idPlanEstudios, @iFolioInscripcionVariableCursor, 0, NULL, 1
FROM dbo.Ctrl_PlanEstudios CPE
WHERE CPE.idPlanEstudios = @idPlanEstudios AND CPE.iGrado = @iGrado;
END
ELSE
BEGIN
INSERT INTO dbo.Ctrl_TrayectoriaAcademica(idGrupo, idAsignatura, idPlanEstudios, iFolioInscripcion, iTipoResultado, bHistorica, iOrden)
SELECT DISTINCT @idGrupo, CPE.idAsignatura, @idPlanEstudios, @iFolioInscripcionVariableCursor, 0, NULL, 1
FROM dbo.Ctrl_PlanEstudios CPE
INNER JOIN dbo.Ctrl_GrupoClaseTentativo AS cgct ON cgct.idAsignatura = CPE.idAsignatura AND cgct.idGrupo = @idGrupo AND cgct.iFolioPeriodo = @iFolioPeriodo
WHERE CPE.idPlanEstudios = @idPlanEstudios AND CPE.iGrado = @iGrado;
END
COMMIT TRANSACTION EliminarTrayectoriaAcademica
END TRY
BEGIN CATCH
IF (@@TRANCOUNT > 0)
BEGIN
ROLLBACK TRANSACTION EliminarTrayectoriaAcademica
END
END CATCH
IF(ERROR_NUMBER() IS NOT NULL OR ERROR_SEVERITY() IS NOT NULL OR ERROR_STATE() IS NOT NULL OR ERROR_PROCEDURE() IS NOT NULL OR ERROR_LINE() IS NOT NULL OR ERROR_MESSAGE() IS NOT NULL)
BEGIN
INSERT INTO @resultadoTabla VALUES(@iFolioInscripcionVariableCursor, ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_PROCEDURE(), ERROR_LINE(), ERROR_MESSAGE());
END
FETCH cursorListaAlumnos INTO @iFolioInscripcionVariableCursor;
END
CLOSE cursorListaAlumnos;
DEALLOCATE cursorListaAlumnos;
SELECT iFolioInscripcion ,
ErrorNumber ,
ErrorSeverity ,
ErrorState ,
ErrorProcedure ,
ErrorLine ,
ErrorMessage FROM @resultadoTabla;
END