use bd_spdv
delete from patron
GO


CREATE TABLE [dbo].[CONFIGURACIONMARCAJE](
	[Id] [INT] IDENTITY(1,1) NOT NULL,
	[IdDispositivo] [INT] NOT NULL,
	[Dispositivo] [VARCHAR](50) NOT NULL,
	[FechaRegistro] [DATETIME] NULL,
 CONSTRAINT [PK_CONFIGURACION] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[CONFIGURACIONMARCAJE] ADD  CONSTRAINT [DF_CONFIGURACION_FechaRegistro]  DEFAULT (GETDATE()) FOR [FechaRegistro]
GO


CREATE TABLE [dbo].[DISPOSITIVOSMARCAJE](
	[Id] [INT] IDENTITY(1,1) NOT NULL,
	[Modelo] [VARCHAR](500) NOT NULL,
	[Marca] [VARCHAR](500) NOT NULL,
	[Tipo] [VARCHAR](500) NOT NULL,
	[Imagen] [VARBINARY](MAX) NULL,
	[IdGrupo] [INT] NULL,
 CONSTRAINT [PK_Dispositivo] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO


CREATE TABLE [dbo].[DISPOSITIVOGRUPO](
	[Id] [INT] IDENTITY(1,1) NOT NULL,
	[Nombre] [VARCHAR](50) NOT NULL,
 CONSTRAINT [PK_DISPOSITIVOGRUPO] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

CREATE VIEW [dbo].[VW_DispositivoGrupo]
AS
SELECT        Id, Nombre
FROM            dbo.DISPOSITIVOGRUPO
GO

CREATE VIEW [dbo].[VW_DispositivoMarcaje]
AS
SELECT        Id, Modelo, Marca, Tipo, Imagen, IdGrupo
FROM            dbo.DISPOSITIVOSMARCAJE
GO

CREATE VIEW [dbo].[VW_ConfiguracionMarcaje]
AS
SELECT        Id, IdDispositivo, Dispositivo, FechaRegistro
FROM            dbo.CONFIGURACIONMARCAJE

GO

ALTER PROCEDURE [dbo].[ObtenerUltimosAccesos]
(@IdPersonal INT)
AS
BEGIN

	SELECT TOP 4 IdDetalleControlAcceso, 
	              RTRIM(LTRIM(Nombre)) AS Nombres, 
	              CASE WHEN IndTipoMarcaje = 0 THEN 'ENTRADA' ELSE 'SALIDA' END AS TipoMarcaje,
				  Fecha
	FROM DETALLECONTROLACCESO INNER JOIN dbo.TRABAJADORES ON TRABAJADORES.Cedula = DETALLECONTROLACCESO.IdPersonal
	 WHERE   CONVERT(CHAR, Fecha, 112) = CONVERT(CHAR, GETDATE(), 112) AND  (DETALLECONTROLACCESO.IdPersonal= @IdPersonal OR Cedula = @IdPersonal)
	ORDER BY Fecha DESC
	
END

	  
GO
ALTER PROCEDURE [dbo].[EliminarPatron]
(
	@IdPatron BIGINT
)
AS
	DELETE PATRON
	WHERE IdPatron =@IdPatron
GO

CREATE PROCEDURE [dbo].[InsertarDispositivoMarcajeConf]
	@IdDispositivo        INT,
	@Dispositivo          VARCHAR(500),
	@Id                   INT  OUTPUT
AS
	INSERT INTO [dbo].[CONFIGURACIONMARCAJE] 
	            ([IdDispositivo],[Dispositivo])
	VALUES (@IdDispositivo,@Dispositivo)

	SET @Id = @@IDENTITY
GO

CREATE PROCEDURE [dbo].[UpdateDispositivoMarcajeConf]
    @Id                   INT,
	@IdDispositivo        INT,
	@Dispositivo          VARCHAR(500)
AS
	UPDATE [dbo].[CONFIGURACIONMARCAJE] 
	SET [IdDispositivo] = ISNULL(@IdDispositivo,[IdDispositivo]),
	    [Dispositivo] =  ISNULL(@Dispositivo,[Dispositivo])
	WHERE Id = @Id
GO
CREATE PROCEDURE [dbo].[InsertarDispositivoMarcaje]
	@Modelo      VARCHAR(500),
	@Marca       VARCHAR(500),
	@Tipo        VARCHAR(500),
	@Imagen      VARBINARY(MAX),
	@Id          INT  OUTPUT,
	@IdGrupo     INT
AS
	INSERT INTO [dbo].[DISPOSITIVOSMARCAJE] 
	VALUES (@Modelo,@Marca,@Tipo,@Imagen,@IdGrupo)

	SET @Id = @@IDENTITY
GO


CREATE PROCEDURE [dbo].[UpdateDispositivoMarcaje]
    @Id          INT,
	@Modelo      VARCHAR(500) OUTPUT,
	@Marca       VARCHAR(500),
	@Tipo        VARCHAR(500),
	@Imagen      VARBINARY(MAX),
	@IdGrupo     INT
AS
	UPDATE [dbo].[DISPOSITIVOSMARCAJE] 
	SET Modelo = ISNULL(@Modelo,Modelo),
	    Marca =  ISNULL(@Marca,Marca),
		Tipo =   ISNULL(@Tipo,Tipo),
		Imagen = @Imagen,
		IdGrupo= ISNULL(@IdGrupo,IdGrupo)
	WHERE Id = @Id
GO


SET IDENTITY_INSERT [dbo].[DISPOSITIVOGRUPO] ON
INSERT INTO [dbo].[DISPOSITIVOGRUPO] ([Id], [Nombre]) VALUES (1, N'FUTRONIC 1')
INSERT INTO [dbo].[DISPOSITIVOGRUPO] ([Id], [Nombre]) VALUES (2, N'DIGITALPERSONA')
SET IDENTITY_INSERT [dbo].[DISPOSITIVOGRUPO] OFF

SET IDENTITY_INSERT [dbo].[DISPOSITIVOSMARCAJE] ON
INSERT INTO [dbo].[DISPOSITIVOSMARCAJE] ([Id], [Modelo], [Marca], [Tipo], [Imagen], [IdGrupo]) VALUES (1, N'FS88H1', N'FUTRONIC', N'HUELLA DACTILAR DEDO', [encoded data, 9302 characters], 1)
INSERT INTO [dbo].[DISPOSITIVOSMARCAJE] ([Id], [Modelo], [Marca], [Tipo], [Imagen], [IdGrupo]) VALUES (2, N'4500 U ARE U', N'DIGITALPERSONA', N'HUELLA DACTILAR DEDO', [encoded data, 9738 characters], 2)
INSERT INTO [dbo].[DISPOSITIVOSMARCAJE] ([Id], [Modelo], [Marca], [Tipo], [Imagen], [IdGrupo]) VALUES (3, N'FS82HC', N'FUTRONIC', N'HUELLA DACTILAR DEDO', [encoded data, 8818 characters], 1)
INSERT INTO [dbo].[DISPOSITIVOSMARCAJE] ([Id], [Modelo], [Marca], [Tipo], [Imagen], [IdGrupo]) VALUES (4, N'FS80', N'FUTRONIC', N'HUELLA DACTILAR DEDO', [encoded data, 6296 characters], 1)
INSERT INTO [dbo].[DISPOSITIVOSMARCAJE] ([Id], [Modelo], [Marca], [Tipo], [Imagen], [IdGrupo]) VALUES (5, N'4000B', N'DIGITALPERSONA', N'HUELLA DACTILAR DEDO', [encoded data, 5750 characters], 2)
SET IDENTITY_INSERT [dbo].[DISPOSITIVOSMARCAJE] OFF
GO

