[evolvis-commits] r6501: - Added class for getting informations about tasks.

papel at evolvis.org papel at evolvis.org
Thu Apr 1 09:33:38 CEST 2010


Author: papel
Date: 2010-04-01 07:33:37 +0000 (Thu, 01 Apr 2010)
New Revision: 6501

Added:
   trunk/gforge_base/gforge-4.8.1+evolvis/common/pm/ProjectTaskSqlQueries.class.php
Log:
- Added class for getting informations about tasks.

Added: trunk/gforge_base/gforge-4.8.1+evolvis/common/pm/ProjectTaskSqlQueries.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8.1+evolvis/common/pm/ProjectTaskSqlQueries.class.php	                        (rev 0)
+++ trunk/gforge_base/gforge-4.8.1+evolvis/common/pm/ProjectTaskSqlQueries.class.php	2010-04-01 07:33:37 UTC (rev 6501)
@@ -0,0 +1,141 @@
+<?php
+/**
+ * @author: Patrick Apel, tarent GmbH
+ */
+ 
+require_once $gfcommon.'include/Error.class.php';
+class ProjectTaskSqlQueries extends Error {
+
+function getGroupProjectIdGroupId($project_task_id) {
+ 
+$res = db_query_params('SELECT project_task.group_project_id, project_group_list.group_id FROM project_task ' .
+	   'INNER JOIN project_group_list ON project_task.group_project_id = project_group_list.group_project_id ' .
+	   'WHERE project_task.project_task_id = $1', array($project_task_id));   	
+	
+if (!$res || db_numrows($res) < 1) {
+	$this->setError(_('No group project id and group id were found'));
+	return false;
+} else {
+
+	while($arr = db_fetch_array($res)) {
+	$arrResult = array($arr[0],$arr[1]);
+	}
+	
+	return $arrResult; // returns $arrResult[0] with group_project_id and $arrResult[1] with group_id
+}
+
+}
+
+
+function isProjectTaskInfoPublic($project_task_id){
+
+$res = db_query_params('SELECT * FROM project_task ' .
+	   'INNER JOIN project_group_list ON ' .
+	   'project_task.group_project_id = project_group_list.group_project_id ' .
+	   'INNER JOIN groups ON ' .
+	   'project_group_list.group_id = groups.group_id ' .
+	   'WHERE project_task.project_task_id = $1 ' .
+	   'AND project_group_list.is_public = $2 AND groups.is_public = $3', array($project_task_id, 1, 1));
+
+if (!$res || db_numrows($res) < 1) {
+	$this->setError(_('The information to the project task is not public'));
+	/* Maybe this function should not throw an error with the error class? 
+	 * Maybe there is a class that just gives back
+	 * an information message?
+	 * $this->setInformation('...') */
+	return false;
+} else {
+	return true;
+}
+}
+
+
+function isUserAndTaskinSameGroup($project_task_id, $user_name) {
+ 
+$res =  db_query_params('SELECT * FROM user_group ' .
+	   'INNER JOIN users ON ' .
+	   'users.user_id = user_group.user_id ' .
+	   'INNER JOIN project_group_list ON ' .
+	   'project_group_list.group_id = user_group.group_id ' .
+	   'INNER JOIN project_task ON ' .
+	   'project_group_list.group_project_id = project_task.group_project_id ' .
+	   'WHERE project_task.project_task_id = $1 AND users.user_name = $2', array($project_task_id, $user_name));
+
+if (!$res || db_numrows($res) < 1) {
+	$this->setError(_('The user is not in an user group that matches to the project group of the project task'));
+	return false;
+} else {
+	return true;
+}
+
+/* Query for controlling the result. It gives back all user_name and project_task_id that 
+ * matches above the groups:
+ * 
+ * SELECT users.user_name, project_task.project_task_id FROM users 
+ * INNER JOIN user_group ON users.user_id = user_group.user_id INNER JOIN project_group_list ON 
+ * user_group.group_id = project_group_list.group_id INNER JOIN project_task ON 
+ * project_group_list.group_project_id = project_task.group_project_id; 
+ * 
+ * Query for controlling the result. It gives back all user_name that does not match a group 
+ * above the JOINs:
+ * 
+ * SELECT users.user_name, project_task.project_task_id FROM users 
+ * LEFT JOIN user_group ON users.user_id = user_group.user_id LEFT JOIN project_group_list ON 
+ * user_group.group_id = project_group_list.group_id LEFT JOIN project_task ON 
+ * project_group_list.group_project_id = project_task.group_project_id WHERE project_task_id isNull; 
+ * 
+ */
+}
+
+
+function getAllFromProjectTask($project_task_id) {
+
+$res = db_query_params('SELECT ' .
+	   'project_task.project_task_id, project_task.group_project_id, project_task.summary, project_task.priority, ' .
+	   'project_task.created_by, project_task.status_id, project_task.category_id, ' .
+	   'users.user_name, ' .
+	   'project_category.category_name, ' .
+	   'project_group_list.project_name, ' .
+	   'groups.group_name, ' .
+	   'project_status.status_name ' .
+	   'FROM project_status ' .
+	   'INNER JOIN project_task ON ' .
+	   'project_task.status_id = project_status.status_id ' .
+	   'INNER JOIN users ON ' .
+	   'users.user_id = project_task.created_by ' .
+	   'INNER JOIN project_category ON ' .
+	   'project_category.category_id = project_task.category_id ' .
+	   'INNER JOIN project_group_list ON ' .
+	   'project_group_list.group_project_id = project_task.group_project_id ' .
+	   'INNER JOIN groups ON ' .
+	   'groups.group_id = project_group_list.group_id ' .
+	   'WHERE project_task.project_task_id = $1', array($project_task_id));
+
+if (!$res || db_numrows($res) < 1) {
+	$this->setError(_('No data were found related to the project task'));
+	return false;
+} else {
+
+	while($arr = db_fetch_array($res)) {
+	$arrResult = array('project_task_id'=>$arr[0],
+					   'group_project_id'=>$arr[1],
+					   'summary'=>$arr[2],
+					   'priority'=>$arr[3],
+					   'created_by'=>$arr[4],
+					   'status_id'=>$arr[5],
+					   'category_id'=>$arr[6],
+					   'created_by_name'=>$arr[7],
+					   'category_name'=>$arr[8],
+					   'project_name'=>$arr[9],
+					   'group_name'=>$arr[10],
+					   'status_name'=>$arr[11]);
+	}
+	
+	return $arrResult;
+}
+
+}
+ 		
+} 
+ 
+?>




More information about the evolvis-commits mailing list