sql adiciónderegistro en Bitacora de calificaciones(respectrando losdiferentesorígenesdeca
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql adiciónderegistro en Bitacora de calificaciones(respectrando losdiferentesorígenesdeca相关的知识,希望对你有一定的参考价值。
----------------------------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
10/Abr/2017 | Luis Bernal | Adición de registro de Captura de Calificaciones EC
--------------------------------------------------------------------------------------------------------------*/
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
--********************************************************************************
-- >>> CAPTURA DE CALIFICACIONES - EDUCACIÓN CONTINUA <<<
--********************************************************************************
IF @iOrigenBitacora = 3
BEGIN
SET @idSeccion = 3 -- 3 = Inicio de Sesión
SET @sAccion = 'Captura Calificación EC'
SELECT @idEditor = idUsuarioBita FROM dbo.Cat_BitacoraUsuarios WHERE idOriginal = @idUsuario AND iTipoUsuario = 2
DECLARE @idPersona INT,
@idTipoPersona INT,
@sTipoPersona VARCHAR(50),
@idPersonaRef INT,
--@sNombreAlumno VARCHAR(120),
@idCurso INT,
@sCurso VARCHAR(50),
@idModulo INT,
@sModulo VARCHAR(50),
@sGrupo VARCHAR(50),
@sPrograma VARCHAR(50),
@dCalificacion DECIMAL(6,3)
SELECT @idPersona = ISNULL(cce.idPersona, 0),
@idTipoPersona = cpr.idTipoPersonaRef,
@sTipoPersona = ctp.sTipoPersonaRef,
@idCurso = ccm.idCurso,
@sCurso = ccc.sCurso,
@idModulo = ccm.idReferencia,
@sModulo = ccm1.sModulo,
@sGrupo = ccg1.sGrupo,
@sPrograma = cpd.sNombre,
@dCalificacion = cta.dCalificacion
FROM dbo.Ctrl_ECTrayectoriaAcademica cta
JOIN dbo.Ctrl_CursosEnrolados cce ON cce.iFolio = cta.iFolioEnrolamiento
JOIN dbo.Cat_PersonasReferencia cpr ON cpr.idPersona = cce.idPersona
JOIN dbo.Cat_TiposPersonasRef ctp ON ctp.idTipoPersonaRef = cpr.idTipoPersonaRef
JOIN dbo.Ctrl_CursosGrupos ccg ON ccg.iFolio = cce.iFolioGrupo AND cce.iFolioGrupo = @idGrupo
JOIN dbo.Cat_CursosGrupos ccg1 ON ccg1.idGrupo = ccg.idGrupo
JOIN dbo.Ctrl_ECRelacionTemaProg crtp ON crtp.idPrograma = cta.idPrograma
JOIN dbo.Cat_ECProgramaDetalle cpd ON cpd.idPrograma = crtp.idPrograma
JOIN dbo.Ctrl_ECRelacionModuProg crmp ON crmp.idTema = crtp.idTema
JOIN dbo.Ctrl_CursosModulos ccm ON ccm.idReferencia = crmp.idModulo
JOIN dbo.Cat_CursosModulos ccm1 ON ccm1.idModulo = ccm.idReferencia
JOIN dbo.Cat_CursosCatalogo ccc ON ccc.idCurso = ccm.idCurso
WHERE cta.iFolioEnrolamiento = @iFolioInscrip
AND (cta.idPrograma = @idAsignatura OR @idAsignatura = 0)
-- // Calificación Global de Curso - Promedio Automático //--
IF @idAsignatura = 0 AND @idPlanEstudios = 0
BEGIN
SET @sPrograma = 'N/A'
SET @idModulo = 0
SET @sModulo = 'N/A'
SELECT @dCalificacion = dCalificacion FROM dbo.Ctrl_CursosCalificaciones WHERE iFolioEnrolado = @iFolioInscrip AND iFolioGrupo = @idGrupo
END
-- // Calificación de Modulos //--
ELSE
BEGIN
IF @idAsignatura = 0 AND @idPlanEstudios <> 0
BEGIN
SET @sPrograma = 'N/A'
SET @idModulo = @idPlanEstudios
SELECT @sModulo = sModulo FROM dbo.Cat_CursosModulos WHERE idModulo = @idModulo
SELECT @dCalificacion = dCalificacion FROM dbo.Ctrl_CursosCalificaciones WHERE iFolioEnrolado = @iFolioInscrip AND iFolioGrupo = @idGrupo AND idModulo = @idModulo
END
END
--// ------------------------------ //--
SET @idPersonaRef = 0
SET @sNombreAlumno = ''
IF @idTipoPersona = 1 -- Alumno
BEGIN
SELECT @idPersonaRef = ca.idAlumno,
@sNombreAlumno = ca.sMatricula + ' - ' + ca.sApellidoPaterno + ' ' + ca.sApellidoMaterno + ' ' + ca.sNombre
FROM dbo.Cat_PersonasReferencia cpr
JOIN dbo.Ctrl_Inscripciones ci ON ci.iFolio = cpr.idPersonaRef
JOIN dbo.Cat_Alumnos ca ON ca.idAlumno = ci.idAlumno
WHERE cpr.idPersona = @idPersona
END
ELSE
BEGIN
IF @idTipoPersona = 2 -- Prospectos/Aspirantes
BEGIN
SELECT @idPersonaRef = ccp.idProspecto,
@sNombreAlumno = cf.sApellidoP + ' ' + cf.sApellidoM + ' ' + cf.sNombre
FROM dbo.Cat_PersonasReferencia cpr
JOIN dbo.Cat_CRMProspectos ccp ON ccp.idProspecto = cpr.idPersonaRef
JOIN dbo.Ctrl_Familiares cf ON cf.idPersona = ccp.idProspecto AND cf.idTipoPersona = 6
WHERE cpr.idPersona = @idPersona
END
ELSE
BEGIN
IF @idTipoPersona = 3 -- Empleados
BEGIN
SELECT @idPersonaRef = ce.idEmpleado,
@sNombreAlumno = ce.sApellidoP + ' ' + ce.sApellidoM + ' ' + ce.sNombre
FROM dbo.Cat_PersonasReferencia cpr
JOIN dbo.Cat_Empleados ce ON ce.idEmpleado = cpr.idPersonaRef
WHERE cpr.idPersona = @idPersona
END
ELSE
BEGIN
IF @idTipoPersona = 6 -- Participantes Externos
BEGIN
SELECT @idPersonaRef = ccp.idParticipante,
@sNombreAlumno = ccp.sApellidoP + ' ' + ccp.sApellidoM + ' ' + ccp.sNombre
FROM dbo.Cat_PersonasReferencia cpr
JOIN Ctrl_CursosParticipantes ccp ON ccp.idParticipante = cpr.idPersonaRef
WHERE cpr.idPersona = @idPersona
END
END
END
END -- END IF @idTipoPersona Anidados
-- sAccion | sDetalleAccion | idPersona | idTipoPersona | sTipoPersona | idPersonaRef | Nombre | idCurso | sCurso | idModulo | sModulo | idGrupo | sGrupo | idPrograma | sPrograma | dCalificacion
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), @idPersona) + '|' + @sTipoPersona + '|' + CONVERT(VARCHAR(10), @idPersonaRef) + '|' + @sNombreAlumno + '|' + CONVERT(VARCHAR(10), @idCurso) + '|' + @sCurso + '|' +
CONVERT(VARCHAR(10), @idModulo) + '|' + @sModulo + '|' + CONVERT(VARCHAR(10), @idGrupo) + '|' + @sGrupo + '|' + CONVERT(VARCHAR(10), @idAsignatura) + '|' + @sPrograma + '|' +
CONVERT(VARCHAR(15), @dCalificacion)) -- sdescripcion - varchar(8000)
)
END -- END IF @iOrigenBitacora = 3
END;
以上是关于sql adiciónderegistro en Bitacora de calificaciones(respectrando losdiferentesorígenesdeca的主要内容,如果未能解决你的问题,请参考以下文章
sql Adiciónderegistro en bitacora de CapturadeCalificaciónEC - SPRINT 5 BIT / AM-84
sql Adicióndecondiciónenbloque de concepto OfPeAsigEv para distinguished de manera adecuad
sql Adiciónderegistro en bitacora de Iniciodesesión - SPRINT 5 BIT / AM-84
sql AdicióndeEquivalencias anteriormente registradas en Importador de Calificaciones - BIT /
sql adiciónderegistro en Bitacora de calificaciones(respectrando losdiferentesorígenesdeca
sql Adicióndecolumnas para registro de nombre y puesto de responsable de firmar certificados