Time Report By User for All Projects
One thing that is not available in Gemini is to retrieve user time reports for all projects. We need the ability to go to a specific user and view a time report for all projects instead of having to go to individual projects. This kills our project managers when it's time to report hours.
davidg
· 1 |
|
Thursday, May 25, 2006, 4:45:29 PM |
0
|
This is not possible at the moment. However, you could use Gemini web services to do this. |
||||
|
0
|
Well when it comes to the end of the month and it's time to report billable hours, going through every project we have (30+) to get hours for everyone is tedious and extremely inconvenient. Why not create a page that is user specific broken down by project to display hours worked? |
||||
|
0
|
This will be done in 2.1 release. But if you need this now, you could create your own page that will use Gemini web services to do this. |
||||
|
0
|
I am also looking for such solution since I have also > 30 projects on which various developers work. |
||||
|
0
|
What is the timeframe for the release of 2.1? |
||||
|
0
|
At the moment ETA is October time. |
||||
|
0
|
Here is a SQL script to create two stored procedures I use to do this plus a more detailed stored procedure also I use reporting services to display the reports and am happy to share the rdl files if requested. I use it as a drill down report with the summary showing total time and the detailed report drilling into the issues the time was spent on per user =======SNIP========= if exists (select * from dbo.sysobjects where id = objectid(N'[dbo].[reportAgentTime]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) SET QUOTEDIDENTIFIER OFF CREATE PROCEDURE [dbo].[reportAgentTime] select u.userid,firstname+ ' ' + surname,((sum(hours)60) + sum(minutes))/60 as hours, (isnull(datediff(dd,@startdate,@enddate),0)+1)8 as possibletime from timetracking tt This one is a more detailed time report across all projects by user =======SNIP========= if exists (select * from dbo.sysobjects where id = objectid(N'[dbo].[reportDetailedAgentTime]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) SET QUOTEDIDENTIFIER OFF CREATE PROCEDURE [dbo].[reportDetailedAgentTime] AS
=======SNIP========= |
||||
|
0
|
Baz - this is great. Thaks for posting it up! |
||||
|
0
|
For the above reports, the startDate and endDate are set to 12:00:00 AM. Thus, if you are looking for a full month range, the SQL will need to increment the endDate by 1 day so that the param is 12:00:00 AM the following day. Example. Month of February: @startDate = 2/1/2006; @endDate = 2/28/2006, the 12:00:00 A.M. is automatic unless the TIME portion is specified. =======SNIP========= if exists (select * from dbo.sysobjects where id = objectid(N'[dbo].[reportAgentTime]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) SET QUOTEDIDENTIFIER OFF CREATE PROCEDURE [dbo].[reportAgentTime] ( @startDate datetime ,@endDate datetime ) AS SELECT @endDate = DATEADD(day, 1, @endDate) SELECT U.userid ,(firstname + ' ' + surname) AS fullName ,((sum(hours)60) + sum(minutes))/60 AS hours ,(isnull(datediff(dd,@startdate,@enddate),0)+1)8 AS possibletime FROM timetracking tt INNER JOIN users u ON u.userid=tt.userid WHERE timeentrydate>=@startdate AND timeentrydate<=@enddate GROUP BY u.userid ,(firstname + ' ' + surname) GO SET QUOTEDIDENTIFIER OFF GO SET ANSINULLS ON GO =======SNIP========= This one is a more detailed time report across all projects by user =======SNIP========= if exists (select * from dbo.sysobjects where id = object id(N'[dbo].[reportDetailedAgentTime]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[reportDetailedAgentTime] GO SET QUOTEDIDENTIFIER OFF CREATE PROCEDURE [dbo].[reportDetailedAgentTime] ( @startDate datetime ,@endDate datetime ,@agentID int) AS SELECT @endDate = DATEADD(day, 1, @endDate) SELECT firstname+ ' ' + surname as fullName ,p.projname ,i.issueid ,i.summary ,((sum(hours)*60) + sum(minutes))/60 as hours FROM timetracking tt INNER JOIN users u ON u.userid = tt.userid INNER JOIN projects p ON p.projid = tt.projid INNER JOIN issues i ON i.issueid = tt.issueid WHERE timeentrydate >= @startdate AND u.userid = @agentid AND timeentrydate <= @enddate GROUP BY firstname + ' ' + surname ,projname ,i.issueid ,i.summary
=======SNIP========= |
||||
|
0
|
is it possible for you to shared your complete solution. |
||||
|