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