FITOMN of AM v3
3/13/2017 - 6:12 PM

Procedimiento para listar la información de la bitacora de cambios

Procedimiento para listar la información de la bitacora de cambios

/* --------------------------------------------------------------------------------------------------------------
FECHA		   |    AUTOR		|DESCRIPCION
13/Mar/2017    | Luis Bernal	|
--------------------------------------------------------------------------------------------------------------*/

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

CREATE PROCEDURE [dbo].[spBitacoraListarCambios]
    @idSeccion INT,
	@dFechaI DATETIME,
	@dFechaF DATETIME
AS
    BEGIN
        SET NOCOUNT ON;
        SET DATEFIRST 7;
        SET LANGUAGE spanish;
        SET DATEFORMAT DMY;

		DECLARE @msg VARCHAR(500)

		SET @dFechaF = DATEADD(hh, 23, @dFechaF)
		SET @dFechaF = DATEADD(mi, 59, @dFechaF)
		SET @dFechaF = DATEADD(ss, 59, @dFechaF)
		
		IF @dFechaF < @dFechaI
		BEGIN
			SET @msg = 'La fecha final no puede ser menor a la fecha inicial. Verifica el rango de fechas seleccionado e intentalo nuevamente.'
		END
        ELSE
        BEGIN
			IF @idSeccion = 0
			BEGIN
				SET @msg = 'Todas las secciones en el rango de fechas del ' + CONVERT(VARCHAR(50), @dFechaI) + ' al ' + CONVERT(VARCHAR(50), @dFechaF)
				SELECT cbc.dFecha, cbs.sSeccion, idEditor, sNombre, sdescripcion 
				FROM dbo.Ctrl_BitacoraCambios cbc JOIN dbo.Cat_BitacoraUsuarios cbu ON cbu.idUsuarioBita = cbc.idEditor
												  JOIN dbo.Cat_BitacoraSecciones cbs ON cbs.idSeccionBita = cbc.idSeccion
				WHERE cbc.dFecha BETWEEN @dfechaI AND @dFechaF
				ORDER BY cbc.dFecha DESC 
			END
			ELSE
			BEGIN
				SET @msg = 'SECCION ' + CONVERT(CHAR(2), @idSeccion) + ' en el rango de fechas del ' + CONVERT(VARCHAR(20), @dFechaI) + ' al ' + CONVERT(VARCHAR(20), @dFechaF)
				SELECT cbc.dFecha, cbs.sSeccion, idEditor, sNombre, sdescripcion 
				FROM dbo.Ctrl_BitacoraCambios cbc JOIN dbo.Cat_BitacoraUsuarios cbu ON cbu.idUsuarioBita = cbc.idEditor
												  JOIN dbo.Cat_BitacoraSecciones cbs ON cbs.idSeccionBita = cbc.idSeccion
				WHERE cbc.idSeccion = @idSeccion AND cbc.dFecha BETWEEN @dfechaI AND @dFechaF
				ORDER BY cbc.dFecha DESC 
			END
		END

		PRINT @msg
    END;