jojacafe
2/6/2019 - 8:07 AM

Stored Procedures

USE [GESTOR_TAREAS]
GO
/****** Object:  StoredProcedure [dbo].[sp_worklog]    Script Date: 06/02/2019 8:44:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Josué Javier
-- Create date: 06/02/2019
-- Description: Extracto de tareas realizadas desde dos fechas
-- =============================================
ALTER PROCEDURE [dbo].[sp_worklog]
	@user NVARCHAR(20),
	@datefrom DATETIME = NULL,
	@dateto DATETIME = NULL
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @iduser int;

	-- GET ID USER
	SELECT  @iduser = IDUsuario
	FROM USUARIOS
	WHERE UPPER(Usuario) = UPPER(@user)

	-- DATES OF CURRENT WEEK
	IF (@datefrom IS NULL AND @dateto IS NULL)
	BEGIN
		SET @datefrom = DATEADD(wk,DATEDIFF(wk,0, GETDATE() -1 ),0);
		SET @dateto = DATEADD(wk,DATEDIFF(wk,0, GETDATE() -1 ),4);
	END

	DECLARE @work TABLE(
		Nombre NVARCHAR(50)
		,Codigo NVARCHAR(10)
		,IDIncidencia INT
		,Clave INT
		,NombreInc NVARCHAR(255)
		,Estado NVARCHAR(50)
		,TareasRealizadas NVARCHAR(MAX)
		,MinutosRealizados INT
		,HorasRealizadas DECIMAL(4,2)
		,Fecha DATETIME
	);

	INSERT INTO @work 
		(Nombre
		,Codigo
		,IDIncidencia
		,Clave
		,NombreInc
		,Estado
		,TareasRealizadas
		,MinutosRealizados
		,HorasRealizadas
		,Fecha)
		SELECT
			CLIENTES.Nombre as NombreCliente
			,CLIENTES.Codigo
			,INCIDENCIAS.IDIncidencia
			,INCIDENCIAS.Clave
			,INCIDENCIAS.Nombre as NombreInc
			,ESTADOS_RESOLUCION_INCIDENCIAS.Nombre as Estado
			,WORKLOG.TareasRealizadas
			,WORKLOG.MinutosRealizados
			,((WORKLOG.MinutosRealizados)/CAST(60 AS DECIMAL(4,2)))
			,WORKLOG.Fecha
		FROM WORKLOG
			INNER JOIN INCIDENCIAS ON WORKLOG.IDIncidencia = INCIDENCIAS.IDIncidencia
			INNER JOIN ESTADOS_RESOLUCION_INCIDENCIAS ON INCIDENCIAS.IDEstadoResolucionIncidencia = ESTADOS_RESOLUCION_INCIDENCIAS.IDEstadoResolucionIncidencia
			INNER JOIN CLIENTES ON INCIDENCIAS.IDCliente = CLIENTES.IDCliente 
		WHERE WORKLOG.IDUsuario = @iduser and WORKLOG.Fecha >= @datefrom and WORKLOG.Fecha <= @dateto
		ORDER BY WORKLOG.Fecha

		-- Worklog
		SELECT *
		FROM @work

		-- Time
		SELECT SUM(HorasRealizadas) as Horas
		FROM @work
END
DECLARE @from as DATETIME = CAST('28/01/2019 00:00:00:000' as DATETIME)
DECLARE @to as DATETIME = CAST('01/02/2019 23:59:59:000' as DATETIME)

EXEC sp_worklog 
	@user = 'jcampos',
	@datefrom = @from,
	@dateto = @to