FITOMN of AM v3
3/14/2017 - 4:10 PM

Mejora de script de inserción de usuarios (por tipo de usuario) para registro de Bitácora

Mejora de script de inserción de usuarios (por tipo de usuario) para registro de Bitácora

SET DATEFIRST 7;
SET NOCOUNT ON;
SET DATEFORMAT MDY;
SET LANGUAGE spanish;

--/////////////////// INSERCIÓN DE DATOS EN Cat_BitacoraUsuarios ///////////////////
-- ** iTipoUsuario --> 1=Administradores, 2= Profesores, 3=Alumnos, 4=Familiares

--ADMINISTRADORES
INSERT INTO dbo.Cat_BitacoraUsuarios
        ( idOriginal ,
          iTipoUsuario ,
          sNombre ,
          sObservaciones ,
          dfecha
        )
SELECT idUsuario, 1 AS iTipoUsuario, (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre) AS sNombre , ('UsuarioClave|' + ISNULL(sClave, ' ') + '|') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Cat_Usuarios WHERE bActivo = 1 AND NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 1 AND idOriginal = dbo.Cat_Usuarios.idUsuario)

--PROFESORES
INSERT INTO dbo.Cat_BitacoraUsuarios
        ( idOriginal ,
          iTipoUsuario ,
          sNombre ,
          sObservaciones ,
          dfecha
        )
SELECT idProfesor, 2 AS iTipoUsuario, (sApellidoP + ' ' + sApellidoM + ' ' + sNombre) AS sNombre , ('Profesor') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Cat_Profesores 
WHERE bActivo = 1 AND NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 2 AND idOriginal = dbo.Cat_Profesores.idProfesor)

--ALUMNOS
INSERT INTO dbo.Cat_BitacoraUsuarios
        ( idOriginal ,
          iTipoUsuario ,
          sNombre ,
          sObservaciones ,
          dfecha
        )
SELECT idAlumno, 3 AS iTipoUsuario, (sApellidoPaterno + ' ' + sApellidoMaterno + ' ' + sNombre) AS sNombre , ('Matricula|' + sMatricula + '|') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Cat_Alumnos
WHERE NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 3 AND idOriginal = dbo.Cat_Alumnos.idAlumno)

--FAMILIARES
INSERT INTO dbo.Cat_BitacoraUsuarios
        ( idOriginal ,
          iTipoUsuario ,
          sNombre ,
          sObservaciones ,
          dfecha
        )
SELECT idFamiliar, 4 AS iTipoUsuario, (sApellidoP + ' ' + sApellidoM + ' ' + sNombre) AS sNombre , ('Familiar') AS sObservaciones, GETDATE() AS dFecha
FROM dbo.Ctrl_Familiares 
WHERE bActivo = 1 AND sNombre IS NOT NULL AND sNombre NOT LIKE '' AND idNombramiento IS NOT NULL 
	  AND NOT EXISTS (SELECT * FROM dbo.Cat_BitacoraUsuarios WHERE iTipoUsuario = 4 AND idOriginal = dbo.Ctrl_Familiares.idFamiliar)