summaryrefslogtreecommitdiff
path: root/demos/time-tracker/protected/App_Data/mysql-maps/reports.xml
diff options
context:
space:
mode:
Diffstat (limited to 'demos/time-tracker/protected/App_Data/mysql-maps/reports.xml')
-rw-r--r--demos/time-tracker/protected/App_Data/mysql-maps/reports.xml94
1 files changed, 68 insertions, 26 deletions
diff --git a/demos/time-tracker/protected/App_Data/mysql-maps/reports.xml b/demos/time-tracker/protected/App_Data/mysql-maps/reports.xml
index 83f922d0..4b537708 100644
--- a/demos/time-tracker/protected/App_Data/mysql-maps/reports.xml
+++ b/demos/time-tracker/protected/App_Data/mysql-maps/reports.xml
@@ -1,45 +1,87 @@
<?xml version="1.0" encoding="utf-8" ?>
<sqlMap>
-<select id="GetTimeReportByProjectID" resultClass="UserReport">
- SELECT
- categories.CategoryID as CategoryID,
- time_entry.UserID as Username,
- SUM(time_entry.Duration) as ActualDuration
- FROM
- time_entry, categories
- WHERE
- categories.CategoryID = time_entry.CategoryID
- AND categories.ProjectID = #value#
- GROUP BY
- categories.ProjectID
- ORDER BY
- categories.ProjectID
-</select>
+<resultMap id="project-category-user" class="ProjectReport" GroupBy="ProjectID">
+ <result property="ProjectName" column="ProjectName" />
+ <result property="EstimateHours" column="ProjectEstimate" type="float"/>
+ <result property="EstimateCompletion" column="ProjectCompletion" type="DateTime" />
+ <result property="Categories" type="TList" resultMapping="category-user-report" />
+</resultMap>
-<select id="GetTimeReportByCategoryID" resultClass="UserReport">
+<resultMap id="category-user-report" class="CategoryReport" GroupBy="CategoryID" >
+ <result property="CategoryName" column="CategoryName" />
+ <result property="EstimateHours" column="CategoryEstimate" type="float" />
+ <result property="members" type="array" resultMapping="member-report" />
+</resultMap>
+
+<resultMap id="member-report" class="array">
+ <result property="username" column="Username" />
+ <result property="hours" column="ActualDuration" type="float" />
+</resultMap>
+
+<select id="GetTimeReportByProjectIDs" resultMap="project-category-user">
SELECT
+ categories.Name as CategoryName,
categories.CategoryID as CategoryID,
+ project.ProjectID as ProjectID,
+ categories.EstimateDuration as CategoryEstimate,
+ project.Name as ProjectName,
+ project.EstimateDuration as ProjectEstimate,
+ project.CompletionDate as ProjectCompletion,
time_entry.UserID as Username,
SUM(time_entry.Duration) as ActualDuration
FROM
- time_entry, categories
+ project
+ LEFT JOIN categories ON categories.ProjectID = project.ProjectID
+ LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
WHERE
- categories.CategoryID = time_entry.CategoryID
- AND categories.CategoryID = #value#
+ project.ProjectID IN ( $value$ )
GROUP BY
+ categories.ProjectID,
+ categories.CategoryID,
time_entry.UserID
ORDER BY
- categories.CategoryID
-</select>
+ project.ProjectID
+</select>
+
-<select id="GetTimeReportByUsername" resultClass="float">
+<resultMap id="time-entry-user-report" class="UserReport" GroupBy="Username">
+ <result property="Username" column="Username" />
+ <result property="Projects" resultMapping="project-user-report" />
+</resultMap>
+
+<resultMap id="project-user-report" class="UserProjectReport">
+ <result property="ProjectName" column="ProjectName" />
+ <result property="CategoryName" column="CategoryName" />
+ <result property="Duration" column="Duration" type="float" />
+ <result property="Description" column="Description" />
+ <result property="ReportDate" column="EntryDate" type="DateTime" />
+</resultMap>
+
+<select id="GetTimeReportByUsername" resultMap="time-entry-user-report">
SELECT
- SUM(Duration) as TotalDuration
- FROM
- time_entry
+ users.Username,
+ project.Name as ProjectName,
+ categories.Name as CategoryName,
+ time_entry.Duration,
+ time_entry.Description,
+ time_entry.EntryDate
+ FROM
+ users
+ LEFT JOIN time_entry ON time_entry.UserID = users.Username
+ AND time_entry.EntryDate BETWEEN
+ #startDate, typeHandler=DateTime# AND
+ #endDate, typeHandler=DateTime#
+ LEFT JOIN categories ON time_entry.CategoryID = categories.CategoryID
+ LEFT JOIN project ON categories.ProjectID = project.ProjectID
+ AND project.ProjectID in ($projects$)
WHERE
- UserID = #value#
+ users.Username in ($members$)
+ ORDER BY
+ users.Username ASC,
+ time_entry.EntryDate ASC,
+ project.Name ASC,
+ categories.Name ASC
</select>
</sqlMap> \ No newline at end of file