FITOMN of AM v3
4/6/2017 - 11:05 PM

Adición de registro en bitacora de Inicio de sesión - SPRINT 5 BIT/AM-84

Adición de registro en bitacora de Inicio de sesión - SPRINT 5 BIT/AM-84


----------------------------INICIO PROCEDIMIENTO ------------------------
IF OBJECT_ID('spInsertarBitacoraCambios', 'P') IS NOT NULL
      DROP PROC spInsertarBitacoraCambios
GO

CREATE PROCEDURE [dbo].[spInsertarBitacoraCambios]
    @idUsuario BIGINT,
	@dFecha	DATETIME,
	@idPlanEstudios INT,
	@iFolioInscrip INT,
	@idAsignatura INT,
	@idGrupo INT,
	@iAccion TINYINT,
	@sDetalleAccion VARCHAR(100),
	@iOrigenBitacora INT 
/* --------------------------------------------------------------------------------------------------------------
FECHA		   |    AUTOR		|	DESCRIPCION
09/Mar/2017    | Luis Bernal	| Registro de Inscripción Acádemica
06/Abr/2017    | Luis Bernal	| Adición de registro de Inicio de Sesión
--------------------------------------------------------------------------------------------------------------*/
AS
    BEGIN
        SET NOCOUNT ON;
		SET LANGUAGE spanish;
		SET DATEFORMAT MDY;
		SET DATEFIRST 7;

        -- **** DECLARACIÓN DE VARIABLES ****
		DECLARE @idSeccion SMALLINT, 
				@idEditor INT, 
				@idEditado INT,
				@sAccion VARCHAR(30)
				
--===================================================================================================================================================================================================================================
		-- **** INSERCIÓN DE INFORMACIÓN A Cat_BitacoraCambios ****
--===================================================================================================================================================================================================================================
		
		-- >>> INSCRIPCIONES ACADÉMICAS <<<

		IF @iOrigenBitacora = 1
		BEGIN 

			SET @idSeccion = 1      -- 1 = Inscripciones Academicas
			SELECT @idEditor = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idUsuario AND iTipoUsuario = 1

			DECLARE @idAlumno INT,
					@sPlanEstudios VARCHAR(110),
					@iFolioPeriodo INT,
					@sPeriodo VARCHAR(50),
					@idOfEduc INT,
					@sOfEduc VARCHAR(50),
					@sMatricula VARCHAR(30),
					@sNombreAlumno VARCHAR(120),
					@iGrado INT,
					@sNombreGrupo VARCHAR(50),
					@sAsignatura VARCHAR(150)

			-- +++ Obtención de Datos Generales +++
			SET @sAccion = CASE WHEN @iAccion = 1 THEN 'Inscripción' WHEN @iAccion = 2 THEN 'Eliminación Inscripción' ELSE 'Empty' END
			SELECT @sPlanEstudios = (sNombre + ' (' + sVersion + ')') FROM dbo.Cat_PlanEstudios WHERE idPlanEstudios = @idPlanEstudios

			SELECT @idAlumno = ci.idAlumno, @sMatricula = sMatricula, @sNombreAlumno = (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre), 
				   @iFolioPeriodo = ci.iFolioPeriodo, @sPeriodo = cp.sAbPeriodo, @idOfEduc = ci.idOfEduc 
			FROM dbo.Ctrl_Inscripciones ci 
			JOIN dbo.Ctrl_Periodos cp ON ci.iFolioPeriodo = cp.iFolio
			JOIN dbo.Cat_Alumnos ca ON ca.idAlumno = ci.idAlumno
			WHERE ci.iFolio = @iFolioInscrip

			SELECT @idEditado = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idAlumno AND iTipoUsuario = 3
			SELECT @sOfEduc = sNombre FROM dbo.Cat_OfEduc WHERE idOfEduc = @idOfEduc

			-- +++ Obtención e inserción de datos particulares +++
			SELECT @idGrupo = CASE WHEN @idGrupo = -1 THEN idGrupo ELSE @idGrupo END 
			FROM dbo.Ctrl_TrayectoriaAcademica WHERE iFolioInscripcion = @iFolioInscrip AND idAsignatura = @idAsignatura

			SELECT @iGrado = iGrado FROM dbo.Ctrl_PlanEstudios WHERE idPlanEstudios = @idPlanEstudios AND idAsignatura = @idAsignatura
			SELECT @sNombreGrupo = sNombre FROM dbo.Ctrl_Grupos WHERE idGrupo = @idGrupo
			SELECT @sAsignatura = sAsignatura FROM dbo.Cat_Asignaturas WHERE idAsignatura = @idAsignatura

			IF @iAccion = 2 OR (NOT EXISTS (SELECT * FROM dbo.Ctrl_TrayectoriaAcademica WHERE iFolioInscripcion = @iFolioInscrip AND idAsignatura = @idAsignatura AND idGrupo = @idGrupo))
			BEGIN
				IF EXISTS (SELECT * FROM dbo.Ctrl_TrayectoriaAcademica WHERE iFolioInscripcion = @iFolioInscrip AND idAsignatura = @idAsignatura)
				BEGIN 
					SET @sAccion = @sAccion + ' - Cambio de Grupo'
				END 

				INSERT INTO dbo.Ctrl_BitacoraCambios
						( idEditor ,
						  idEditado ,
						  idSeccion ,
						  dFecha ,
						  sdescripcion
						)
				VALUES  ( @idEditor , -- idEditor - bigint
						  @idEditado , -- idEditado - bigint
						  @idSeccion , -- idSeccion - smallint
						  @dFecha , -- dFecha - datetime
						  (@sAccion + '|' + CONVERT(VARCHAR(20), @idEditado) + '|' + @sMatricula + '|' + @sNombreAlumno + '|' + CONVERT(VARCHAR(20), @iFolioPeriodo) + '|' + 
						   @sPeriodo + '|' + CONVERT(VARCHAR(20), @idOfEduc) + '|' + @sOfEduc + '|' + CONVERT(VARCHAR(20), @idPlanEstudios) + '|' + @sPlanEstudios + '|' + 
						   CONVERT(VARCHAR(20), @iGrado) + '|' + CONVERT(VARCHAR(20), @idGrupo) + '|' + @sNombreGrupo + '|' + CONVERT(VARCHAR(20), @idAsignatura) + '|' + 
						   @sAsignatura + '|' + @sDetalleAccion ) -- sdescripcion - varchar(8000)
						)
			END
		END		-- END IF @iOrigenBitacora = 1

		-- >>> INICIO DE SESIÓN <<<

		IF @iOrigenBitacora = 2
		BEGIN
			SET @idSeccion = 2      -- 2 = Inicio de Sesión
			SET @sAccion = 'Inicio de Sesión'
			SET @idEditado = NULL

			DECLARE @sNombreUsuario VARCHAR(150),
					@sCuentaLog VARCHAR(50)
			
			IF @sDetalleAccion = 'Admin'
			BEGIN 
				SELECT @sNombreUsuario = (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre), @sCuentaLog = sCorreo FROM dbo.Cat_Usuarios WHERE idUsuario = @idUsuario

				SELECT @idEditor = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idUsuario AND iTipoUsuario = 1
			END 
			ELSE
            BEGIN 
				IF @sDetalleAccion = 'Alumno'
				BEGIN
					SELECT @sNombreUsuario = (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre), @sCuentaLog = sMatricula FROM dbo.Cat_Alumnos WHERE idAlumno = @idUsuario

					SELECT @idEditor = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idUsuario AND iTipoUsuario = 3
				END
				ELSE
				BEGIN
					IF @sDetalleAccion = 'Profesor'
					BEGIN
						SELECT @sNombreUsuario = (sApellidoP + ' ' + sApellidoM + ' ' + sNombre), @sCuentaLog = sCorreo FROM dbo.Cat_Profesores WHERE idProfesor = @idUsuario
						
						SELECT @idEditor = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idUsuario AND iTipoUsuario = 2
					END
					ELSE
					BEGIN
						IF @sDetalleAccion = 'Familiar'
						BEGIN
							SELECT @sNombreUsuario = (sApellidoP + ' ' + sApellidoM + ' ' + sNombre), @sCuentaLog = sCorreo FROM dbo.Ctrl_Familiares WHERE idFamiliar = @idUsuario
							
							SELECT @idEditor = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idUsuario AND iTipoUsuario = 4
						END 
					END 
				END
			END		-- END IF @sDetalleAccion
			
			INSERT INTO dbo.Ctrl_BitacoraCambios
					( idEditor ,
					  idEditado ,
					  idSeccion ,
					  dFecha ,
				      sdescripcion
					)
			VALUES  ( @idEditor , -- idEditor - bigint
					  @idEditado , -- idEditado - bigint
					  @idSeccion , -- idSeccion - smallint
					  @dFecha , -- dFecha - datetime
					  (@sAccion + '|' +  @sDetalleAccion + '|' + CONVERT(VARCHAR(10), @idUsuario) + '|' + @sNombreUsuario + '|' + @sCuentaLog) -- sdescripcion - varchar(8000)
					)

		END		-- END IF @iOrigenBitacora = 2
    END;