[evolvis-commits] r7142: #613 Idee: reporting-Werkzeug integrieren //Backup-Commit. Finally finished, but needs to be tested with the activity-staging system. Source could be optimized in some way.
papel at evolvis.org
papel at evolvis.org
Wed Jan 12 11:29:08 CET 2011
Author: papel
Date: 2011-01-12 11:29:08 +0100 (Wed, 12 Jan 2011)
New Revision: 7142
Modified:
branches/papel-reporting/common/pm/ProjectTaskSqlQueries.php
branches/papel-reporting/common/pm/taskReportingController.class.php
branches/papel-reporting/common/pm/taskReportingModel.class.php
branches/papel-reporting/www/pm/reporting/taskCreateReportGui.php
Log:
#613 Idee: reporting-Werkzeug integrieren //Backup-Commit. Finally finished, but needs to be tested with the activity-staging system. Source could be optimized in some way.
Modified: branches/papel-reporting/common/pm/ProjectTaskSqlQueries.php
===================================================================
--- branches/papel-reporting/common/pm/ProjectTaskSqlQueries.php 2011-01-12 09:58:07 UTC (rev 7141)
+++ branches/papel-reporting/common/pm/ProjectTaskSqlQueries.php 2011-01-12 10:29:08 UTC (rev 7142)
@@ -174,4 +174,105 @@
return $arrResult;
}
+
+/**
+ * getProjectTaskMessages() - Returns information about the task
+ *
+ * @param integer $group_id - The id of the project
+ * @param integer $group_project_id - The id of the sub project
+ * @param integer $project_task_id - The id of the project task
+ *
+ * @return array $arrResult['comments'][0-n] - comments of the project task
+ * @return string $arrResult['leftover']['user_name'] - the name of the user that posted the messages
+ * @return string $arrResult['leftover']['post_date'] - the date of the posted message
+ * @return string $arrResult['leftover']['summary'] - the summary of the project task
+ * @return string $arrResult['leftover']['details'] - the details of the project task
+ * @return string $arrResult['leftover']['percent_complete'] - percent completed of the task
+ * @return string $arrResult['leftover']['status_name'] - the status of the project task
+ * @return string $arrResult['leftover']['project_name'] - the name of the project
+ * @return string $arrResult['leftover']['group_name'] - the name of the sub project
+ * @return string $arrResult['leftover']['project_task_id'] - the id of the project task
+ */
+function getProjectTaskMessages($project_task_id, $group_project_id, $group_id){
+
+ $res = db_query_params('SELECT ' .
+ 'project_message_user_vw.body, ' .
+ 'project_message_user_vw.user_name, ' .
+ 'project_message_user_vw.postdate, ' .
+
+ 'project_task_vw.summary, ' .
+ 'project_task_vw.details, ' .
+ 'project_task_vw.percent_complete, ' .
+ 'project_task_vw.status_name, ' .
+
+ 'project_group_list.project_name, ' .
+
+ 'groups.group_name ' .
+
+ 'FROM ' .
+ 'project_message_user_vw '.
+ 'LEFT JOIN ' .
+ 'project_task_vw ' .
+ 'ON ' .
+ 'project_message_user_vw.project_task_id = project_task_vw.project_task_id ' .
+ 'LEFT JOIN ' .
+ 'project_group_list ' .
+ 'ON ' .
+ 'project_group_list.group_project_id = project_task_vw.group_project_id ' .
+ 'LEFT JOIN ' .
+ 'groups ' .
+ 'ON ' .
+ 'groups.group_id = project_group_list.group_id ' .
+ 'WHERE ' .
+ 'project_message_user_vw.project_task_id = $1 ' .
+ 'AND ' .
+ 'project_group_list.group_project_id = $2 ' .
+ 'AND ' .
+ 'groups.group_id = $3 '
+ ,array($project_task_id, $group_project_id, $group_id));
+
+ if (!$res || db_numrows($res) < 1) {
+ return false;
+ }
+
+ $arrResult = array(
+ 'comments'=>array(),
+ 'leftover'=>array(
+ 'user_name'=> '',
+ 'post_date' => 0,
+ 'summary' => '',
+ 'details' => '',
+ 'percent_complete' => 0,
+ 'status_name' => '',
+ 'project_name' => '',
+ 'group_name' => '',
+ 'project_task_id' => 0,
+ 'group_project_id' => 0,
+ 'group_id' => 0
+ ));
+
+ $i = 0;
+
+ while ($arr = db_fetch_array($res)) {
+
+ $i++;
+ array_push($arrResult['comments'],$arr[0]);
+ if($i === 1) {
+ $arrResult['leftover']['user_name'] = $arr[1];
+ $arrResult['leftover']['post_date'] = (int)$arr[2];
+ $arrResult['leftover']['summary'] = $arr[3];
+ $arrResult['leftover']['details'] = $arr[4];
+ $arrResult['leftover']['percent_complete'] = (int)$arr[5];
+ $arrResult['leftover']['status_name'] = $arr[6];
+ $arrResult['leftover']['project_name'] = $arr[7];
+ $arrResult['leftover']['group_name'] = $arr[8];
+ $arrResult['leftover']['project_task_id'] = (int)$project_task_id;
+ $arrResult['leftover']['group_project_id'] = (int)($group_project_id);
+ $arrResult['leftover']['group_id'] = (int)($group_id);
+ }
+ }
+
+ return $arrResult;
+}
+
?>
Modified: branches/papel-reporting/common/pm/taskReportingController.class.php
===================================================================
--- branches/papel-reporting/common/pm/taskReportingController.class.php 2011-01-12 09:58:07 UTC (rev 7141)
+++ branches/papel-reporting/common/pm/taskReportingController.class.php 2011-01-12 10:29:08 UTC (rev 7142)
@@ -267,71 +267,7 @@
return $evolvisRowCount;
}
-
- /**
- * mergeEvolvisActivityData() - Merges the Evolvis and Activity data and returns it.
- *
- * @param string $evolvisResult - the values of the string are separated with #sepRow# and #sepColumn#
- * @param string $activityResult - the values of the string are separated with ascending or descending
- *
- * @return string $mergeResult
- */
- public function mergeEvolvisActivityData($evolvisResult, $activityResult) {
-
- /*
- foreach($evolvisResult as $evolvisHeader) {
- echo '<br />$evolvisHeader => '.$evolvisHeader;
- }
-
- echo '<br /><br />';
-
- foreach($activityResult as $activityHeader) {
- echo '<br />$activityHeader => '.$activityHeader;
- }
- $connector = '';
- if(trim($activityResult[0]) != '') {
- $connector = '#sepColumn#';
- }
- $mergedHeaders = $evolvisResult[0]. $connector . $activityResult[0];
-
- echo '<br /><br />$mergedHeaders => '.$mergedHeaders; */
-
- /*
- $evolvisHeader => Länge#sepColumn#Hours done
- $activityHeader => Hours done
-
- $evolvisData => 0#sepColumn#2#sepRow#0#sepColumn#3#sepRow#0#sepColumn#10#sepRow#0#sepColumn#0#sepRow#0#sepColumn#0#sepRow#0#sepColumn#0
- $activityData => 2#sepRow#3#sepRow#10
-
- //EVOLVIS:
- 0#sepColumn#2
- #sepRow#
- 0#sepColumn#3
- #sepRow#
- 0#sepColumn#10
- #sepRow#
- 0#sepColumn#0
- #sepRow#
- 0#sepColumn#0
- #sepRow#
- 0#sepColumn#0
-
-
- //ACTIVITY:
- 2
- #sepRow#
- 3
- #sepRow#
- 10
- */
-
- #$mergedResult = array($mergedHeaders, );
- $mergedResult = '';
-
- return $mergedResult;
- }
-
public function getFormatActivityDataForResult($selectRequest, $projectHours, $groupBy = false) {
$onceFlag = false;
@@ -510,8 +446,8 @@
$selectRequest = $this->getSelectRequest();
- #$evolvisProjectId = $selectRequest['group_id'];
- $evolvisProjectId = 69;
+ $evolvisProjectId = $selectRequest['group_id'];
+ #$evolvisProjectId = 69;
$objModel = new taskReportingModel();
$objModel->setObjReportingInfo($this->getObjReportingInfo());
@@ -539,17 +475,17 @@
$selectRequest['hours_done_sum']) {
//REACTIVATE LATER
- #$projectInfo = $objModel->getActivityEvolvisProjectInfo($protocolPrefix, $host, $port, $user, $password, $evolvisProjectId);
+ $projectInfo = $objModel->getActivityEvolvisProjectInfo($protocolPrefix, $host, $port, $user, $password, $evolvisProjectId);
- //REMOVE LATER
- $projectInfo = '[{"id":808,"resource-id":83,"hours":2,"name":"Implementierung","evolvisTaskId":305,"resource-name":"Apel, Patrick","date":"2010-09-09 00:00:00.0","position-id":207,"position-name":"Evolvis Feature Requests"},
+ //FOR TESTING
+ /* $projectInfo = '[{"id":808,"resource-id":83,"hours":2,"name":"Implementierung","evolvisTaskId":305,"resource-name":"Apel, Patrick","date":"2010-09-09 00:00:00.0","position-id":207,"position-name":"Evolvis Feature Requests"},
{"id":809,"resource-id":83,"hours":2,"name":"Implementierung","evolvisTaskId":429,"resource-name":"Apel, Patrick","date":"2010-09-09 00:00:00.0","position-id":207,"position-name":"Evolvis Feature Requests"},
{"id":810,"resource-id":83,"hours":2,"name":"Implementierung","evolvisTaskId":430,"resource-name":"Apel, Patrick","date":"2010-09-09 00:00:00.0","position-id":207,"position-name":"Evolvis Feature Requests"},
{"id":811,"resource-id":83,"hours":8,"name":"Implementierung","evolvisTaskId":305,"resource-name":"Apel, Patrick","date":"2010-09-09 00:00:00.0","position-id":207,"position-name":"Evolvis Feature Requests"}]';
-
+ */
} else {
//REACIVATE LATER
- #$objModel->testConnectionToActivity($protocolPrefix, $host, $port, $user, $password);
+ $objModel->testConnectionToActivity($protocolPrefix, $host, $port, $user, $password);
}
/* id: 305 => hours done: 2
@@ -565,160 +501,76 @@
Id => 436 */
$objModel->setProjectInfo($projectInfo);
- $intValue = $objModel->determineNeededSwitchCase($selectRequest);
- $intValue = 0; #Remove if necessary
+ $intValue = $objModel->determineNeededSwitchCase($selectRequest);
+ if($intValue != 5) {
+ $intValue = 0;
+ }
+
switch($intValue) {
case 0: // Evolvis database data and only hours done from the activity database data selected
-
- #echo '<br />I am in case 0';
$groupedActivityData = array();
$groupInformation = array(array(array()));
- $evolvisReportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, false);
-
+ $evolvisReportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, false);
$evolvisDataHeader_ = $objModel->getReportDataHeader(); // Needs to be after $reportData_
$offcutQuery = $objModel->getOffcutQuery();
+ $anotherOffcutQuery = $objModel->getAnotherOffcutQuery();
+
$params = $objModel->getArrSqlParams();
- $arrProjectTaskIds = $objModel->getProjectTaskIdsByString($offcutQuery, $params);
-
- $projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
+ $arrProjectTaskIds = $objModel->getProjectTaskIdsByString($anotherOffcutQuery, $params, $groupBy, $orderBy, $asc);
- $evolvisDataHeaderAndData = array($evolvisDataHeader_, $evolvisReportData_);
-
+ $projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
+
$evolvisNonAggData = $objModel->getAllChoosenNonAggData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc);
- $groupInformation = $objModel->getPossibleGroupInformation($evolvisNonAggData, $projectHours);
-
+
+ $groupInformation = $objModel->getPossibleGroupInformation($evolvisNonAggData, $projectHours, $selectRequest, $groupBy);
+
/*
* $groupInformation[0][0][0] => project task id
* $groupInformation[0][0][1] => hours
*/
$arrSqlQuerys = array();
-
- $i = 0;
- foreach($groupInformation as $info) {
+
+ $i = 0;
+ foreach($groupInformation as $info) {
$arrSqlQuerys[$i] = $objModel->getReportData2($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, $info);
$i++;
};
$arrMergedQuerysAndParams = array(array());
- $arrMergedQuerysAndParams = $objModel->mergeSqlQuerys($arrSqlQuerys, $selectRequest, $whereRequest, $orderBy, $groupBy, $asc=0, $arrProjectTaskIds);
-
- $evolvisReportData_ = $objModel->getReportData3($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, $arrMergedQuerysAndParams, $groupInformation);
-
+ $arrMergedQuerysAndParams = $objModel->mergeSqlQuerys($arrSqlQuerys, $orderBy, $groupBy, $asc);
+
+ $selectAllFlag = $arrSqlQuerys[0][2];
+ $countFields = $arrSqlQuerys[0][3];
+ $evolvisReportData_ = $objModel->getReportData3($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, $arrMergedQuerysAndParams, $groupInformation, $selectAllFlag, $countFields);
$reportData_ = $evolvisReportData_;
+
+ $evolvisDataHeader_ = $objModel->getReportDataHeader(); // Needs to be after $reportData_
$reportDataHeader_ = $evolvisDataHeader_;
- break;
-
- case 1: // Evolvis database data and only activity aggregation functions selected
- echo '<br />I am in case 1';
- $reportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true);
- $reportDataHeader_ = $objModel->getReportDataHeader();
-
- $offcutQuery = $objModel->getOffcutQuery();
- $params = $objModel->getArrSqlParams();
-
- $arrProjectTaskIds = $objModel->getProjectTaskIdsByString($offcutQuery, $params);
- $projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
-
- $activitydataHeaderAndData = $this->getFormatActivityDataForResult($selectRequest, $projectHours);
-
- //Needs to get grouped by the values choosen
break;
- case 2: // Evolvis database data and activity hours done and activity aggregation functions selected, so all is selected.
- echo '<br />I am in case 2';
+ case 5:
+ $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true);
- $reportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true);
- $reportDataHeader_ = $objModel->getReportDataHeader();
-
$offcutQuery = $objModel->getOffcutQuery();
$params = $objModel->getArrSqlParams();
$arrProjectTaskIds = $objModel->getProjectTaskIdsByString($offcutQuery, $params);
$projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
- //getFormatActivityDataForResult
$activitydataHeaderAndData = $this->getFormatActivityDataForResult($selectRequest, $projectHours);
- //NEEDS TO BE TRIED TO GROUPBY HOURS DONE
-
- #$this->isEvolvisRowCountBiggerThanActivity($evolvisReportData_, $activityReportData_);
-
- break;
-
- case 3: // Only Evolvis database data
- echo '<br />I am in case 3';
- $reportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true);
- $reportDataHeader_ = $objModel->getReportDataHeader();
-
- //Ok. Now we can group by and order the data if someone choosed it.
- break;
- case 4: // Only Activity database data and some aggregation fields are selected (Just to feel like SQL for usability reasons)
- echo '<br />I am in case 4';
-
- $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true); /* The method sets
- $objModel->setOffcutQuery() and $objModel->setArrSqlParams() those are needed for the right sortation of the activity database data.
- **/
-
- $offcutQuery = $objModel->getOffcutQuery();
- $params = $objModel->getArrSqlParams();
-
- $arrProjectTaskIds = $objModel->getProjectTaskIdsByString($offcutQuery, $params);
- $projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
-
- $activitydataHeaderAndData = $this->getFormatActivityDataForResult($selectRequest, $projectHours);
-
$reportDataHeader_ = $activitydataHeaderAndData[0];
$reportData_ = $activitydataHeaderAndData[1];
-
- break;
- case 5: // Only Activity database data and only hours done selected (Just to feel like SQL for usability reasons).
- echo '<br />I am in case 5';
- $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true); /* The method sets
- $objModel->setOffcutQuery() and $objModel->setArrSqlParams() those are needed for the right sortation of the activity database data.
- **/
- $offcutQuery = $objModel->getOffcutQuery();
- $params = $objModel->getArrSqlParams();
-
- $arrProjectTaskIds = $objModel->getProjectTaskIdsByString($offcutQuery, $params);
- $projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
-
- $activitydataHeaderAndData = $this->getFormatActivityDataForResult($selectRequest, $projectHours);
-
- $reportDataHeader_ = $activitydataHeaderAndData[0];
- $reportData_ = $activitydataHeaderAndData[1];
break;
- case 6: //Only Activity database data selected and only activity aggregation fields selected.
- echo '<br />I am in case 6';
-
- $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true); /* The method sets
- $objModel->setOffcutQuery() and $objModel->setArrSqlParams() those are needed for the right sortation of the activity database data.
- **/
- $offcutQuery = $objModel->getOffcutQuery();
- $params = $objModel->getArrSqlParams();
-
- $arrProjectTaskIds = $objModel->getProjectTaskIdsByString($offcutQuery, $params);
- $projectHours = $objModel->getActivityProjectHours($arrProjectTaskIds, $projectInfo);
-
- $activitydataHeaderAndData = $this->getFormatActivityDataForResult($selectRequest, $projectHours);
-
- $reportDataHeader_ = $activitydataHeaderAndData[0];
- $reportData_ = $activitydataHeaderAndData[1];
-
- break;
- case 7: // Nothing selected. Finished, but maybe I should include hours done too?
- echo '<br />I am in case 7';
- $reportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, true);
- $reportDataHeader_ = $objModel->getReportDataHeader();
- break;
-
+
default: //6 Can not happen but anyway
$reportData_ = $objModel->getReportData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc, false);
$reportDataHeader_ = $objModel->getReportDataHeader();
@@ -788,7 +640,7 @@
} else {
//REACTIVATE LATER
- #$objModel->testConnectionToActivity($protocolPrefix, $host, $port, $user, $password);
+ $objModel->testConnectionToActivity($protocolPrefix, $host, $port, $user, $password);
}
$group_id = $selectRequest['group_id'];
Modified: branches/papel-reporting/common/pm/taskReportingModel.class.php
===================================================================
--- branches/papel-reporting/common/pm/taskReportingModel.class.php 2011-01-12 09:58:07 UTC (rev 7141)
+++ branches/papel-reporting/common/pm/taskReportingModel.class.php 2011-01-12 10:29:08 UTC (rev 7142)
@@ -29,6 +29,8 @@
private $strOffcutQuery = '';
+ private $strAnotherOffcutQuery = '';
+
private $arrSqlParams = array();
public function setProjectInfo($projectInfo) {
@@ -95,6 +97,14 @@
return $this->strOffcutQuery;
}
+ public function setAnotherOffcutQuery($strAnotherOffcutQuery) {
+ $this->strAnotherOffcutQuery = $strAnotherOffcutQuery;
+ }
+
+ public function getAnotherOffcutQuery() {
+ return $this->strAnotherOffcutQuery;
+ }
+
public function setArrSqlParams($params) {
$this->arrSqlParams = $params;
}
@@ -114,7 +124,7 @@
if($errno === 0 && !$objReportingInfo->isInsufficientConfigInfo()) {
} else {
- $objReportingInfo->setConnectionRefusedInfo(_('An error on login on Activity occurred. Hours done not available.'));
+ $objReportingInfo->setConnectionRefusedInfo(_('An error on login on Activity occurred. Hours done not available.'));
}
}
@@ -176,7 +186,7 @@
}
return $result;
- }
+ }
/**
* getProjectTaskIdsByString() - Returns the project task ids sorted the right way.
@@ -187,24 +197,54 @@
*
* @return array $arrTaskIds;
*/
- public function getProjectTaskIdsByString($offcutSqlQuery, $params) {
+ public function getProjectTaskIdsByString($anotherOffcutSqlQuery, $params, $groupBy='', $orderBy='', $asc=0, $countFields) {
//SELECT Clause
$sqlSelectClause = 'SELECT project_task_id';
- $offcutSqlQuery_ = $sqlSelectClause . $offcutSqlQuery;
- $strGroupBy = 'GROUP BY';
+ $sqlQuery = $sqlSelectClause . $anotherOffcutSqlQuery;
- if(strpos($offcutSqlQuery_, $strGroupBy) != null) {
- $offcutSqlQuery_ .= ' ,project_task_vw.project_task_id';
- }
+ $tblPrefix = '';
+ if($orderBy != '' && get_magic_quotes_gpc() == true) {
+ switch($orderBy) {
+ case 'single_group_project_id': $tblPrefix = 'project_group_list_vw.';
+ break;
+ case 'project_name': $tblPrefix = 'project_group_list_vw.';
+ break;
+ case 'description': $tblPrefix = 'project_group_list_vw.';
+ default: $tblPrefix = 'project_task_vw.';
+ break;
+ }
+ /* $countParams++;
+ $where.= ' ORDER BY $'.$countParams;
+ array_push($params, $orderBy);
+
+ It does not work with placeholders and array params.
+ So I used the security function enabled through the method
+ db_query_params() in here. */
+ if($orderBy === 'single_group_project_id') {
+ $orderBy = 'group_project_id';
+ }
+
+ $order.= ' ORDER BY '.$tblPrefix.$orderBy;
+ }
+
+ #if($groupBy == '' && $orderBy != '')
+ if($orderBy != '') {
+ if($asc === 0) {
+ $order.= ' ASC';
+ } else {
+ $order.=' DESC';
+ }
+ }
+
+ $sqlQuery = $sqlQuery . $order;
- $res = db_query_params($offcutSqlQuery_, $params);
+ $res = db_query_params($sqlQuery, $params);
- if(!$res || db_numrows($res) === 0) {
+ if(!$res || db_numrows($res) == 0) {
$error = db_error();
if(trim($error)!='') {
-
$this->setError(true);
$this->setErrorString($error);
} else {
@@ -220,9 +260,48 @@
array_push($arrTaskIds, $arr[0]);
}
+
+
return $arrTaskIds;
}
+ /* public function getProjectTaskIdsByString_($offcutSqlQuery, $params, $orderBy='', $groupBy='') {
+
+ $searchPattern_ = '/SELECT[a-zA-Z0-9[:space:]\_\+\.\,\/\-]*FROM/';
+
+ if(preg_match($searchPattern_, $offcutSqlQuery)) {
+
+ } else {
+
+ }
+
+ $part = preg_replace($searchPattern_, 'SELECT project_task_vw.project_task_id FROM', $offcutSqlQuery);
+ $offcutSqlQuery = $part;
+
+ $res = db_query_params($offcutSqlQuery, $params);
+
+ if(!$res || db_numrows($res) === 0) {
+ $error = db_error();
+ if(trim($error)!='') {
+
+ $this->setError(true);
+ $this->setErrorString($error);
+ } else {
+ $this->setInfoString(_('No row was found.'));
+ $this->setRow(false);
+ }
+
+ return false;
+ }
+
+ $arrTaskIds = array();
+ while ($arr = db_fetch_array($res)) {
+ array_push($arrTaskIds, $arr[0]);
+ }
+
+ return $arrTaskIds;
+ } */
+
/**
* getActivityProjectHours() - Parses the JASON formated activity data about every evolvis project task related to the project into an array.
* The data parsed and saved into an array will later be sorted the way the array $projectTaskIds is.
@@ -312,8 +391,6 @@
* $groupInformation[0][0][1] => hours
*/
- #GOT $groupInformation[$o][0][1];
-
$highestValue = $groupInformation[0][1];
for($i=1; $i<count($groupInformation); $i++) {
$tmpValue = $groupInformation[$i][1];
@@ -332,8 +409,6 @@
* $groupInformation[0][0][1] => hours
*/
- #GOT $groupInformation[$o][0][1];
-
$lowestValue = $groupInformation[0][1];
for($i=1; $i<count($groupInformation); $i++) {
$tmpValue = $groupInformation[$i][1];
@@ -351,8 +426,6 @@
* $groupInformation[0][0][0] => project task id
* $groupInformation[0][0][1] => hours
*/
-
- #GOT $groupInformation[$o][0][1];
for($i=0; $i<count($groupInformation); $i++) {
$tmpValue += $groupInformation[$i][1];
@@ -368,8 +441,6 @@
* $groupInformation[0][0][0] => project task id
* $groupInformation[0][0][1] => hours
*/
-
- #GOT $groupInformation[$o][0][1];
for($i=0; $i<count($groupInformation); $i++) {
$tmpValue += $groupInformation[$i][1];
@@ -378,8 +449,6 @@
return $tmpValue;
}
- ############################################################
-
public function getMaxActivityHours($projectHours) {
return max($projectHours);
}
@@ -397,17 +466,19 @@
return array_sum($projectHours);
}
- public function getAllChoosenNonAggData($selectRequest, $whereRequest, $orderBy='', $groupBy='', $asc=0) {
+ public function getAllChoosenNonAggData($selectRequest, $whereRequest, $orderBy, $groupBy, $asc) {
- /* This method will group the fields manually submitted without including aggregation fields. We can only call this method if one normal field is selected. If only aggregation fields are selected */
+ /* This method will group the fields manually submitted without including aggregation fields.
+ * We can only call this method if one normal field is selected. If only aggregation fields are selected */
// SELECT CLAUSE
- $select = 'SELECT project_task_id,'; //It is not grouped so it does not care.
+ $select = 'SELECT project_task_vw.project_task_id,'; //It is not grouped so it does not care.
- $selectAllFlag = true; //false?
+ $selectAllFlag = true;
$countFields = 1;
- #if($selectRequest['project_task_id']) { $select .= 'project_task_vw.project_task_id,'; $countFields++; $selectAllFlag = false;}
+ if($selectRequest['project_task_id']) { $selectAllFlag = false; }
+
if($selectRequest['summary']){ $select .= 'project_task_vw.summary,'; $countFields++; $selectAllFlag = false;}
if($selectRequest['details']){ $select .= 'project_task_vw.details,'; $countFields++; $selectAllFlag = false;}
if($selectRequest['parent_id']){ $select .= 'project_task_vw.parent_id,'; $countFields++; $selectAllFlag = false;}
@@ -429,9 +500,6 @@
if($selectRequest['end_date']){ $select .= 'project_task_vw.end_date,'; $countFields++; $selectAllFlag = false;}
if($selectRequest['hours']){ $select .= 'project_task_vw.hours,'; $countFields++; $selectAllFlag = false;}
-
- /* if($selectRequest['hours_done']){ } Uses in the other cases
- */
if($selectRequest['priority']){ $select .= 'project_task_vw.priority,'; $countFields++; $selectAllFlag = false;}
@@ -475,7 +543,33 @@
$where.= ' AND project_group_list_vw.group_id = $'.$countParams;
array_push($params, $selectRequest['group_id']);
- if($groupBy == '' && $orderBy != '') {
+ $tblPrefix = '';
+ if($orderBy != '' && get_magic_quotes_gpc() == true) {
+ switch($orderBy) {
+ case 'single_group_project_id': $tblPrefix = 'project_group_list_vw.';
+ break;
+ case 'project_name': $tblPrefix = 'project_group_list_vw.';
+ break;
+ case 'description': $tblPrefix = 'project_group_list_vw.';
+ default: $tblPrefix = 'project_task_vw.';
+ break;
+ }
+ /* $countParams++;
+ $where.= ' ORDER BY $'.$countParams;
+ array_push($params, $orderBy);
+
+ It does not work with placeholders and array params.
+ So I used the security function enabled through the method
+ db_query_params() in here. */
+ if($orderBy === 'single_group_project_id') {
+ $orderBy = 'group_project_id';
+ }
+
+ $where.= ' ORDER BY '.$tblPrefix.$orderBy;
+ }
+
+ #if($groupBy == '' && $orderBy != '') {
+ if($orderBy != '') {
if($asc === 0) {
$where.= ' ASC';
} else {
@@ -489,9 +583,9 @@
$res = db_query_params($sqlQuery, $params);
- if(!$res || db_numrows($res) === 0) {
-
+ if(!$res || db_numrows($res) == 0) {
$error = db_error();
+
if(trim($error)!='') {
$this->setError(true);
$this->setErrorString($error);
@@ -508,7 +602,7 @@
$arrResult = array(array());
while ($arr = db_fetch_array($res)) {
- if($selectAllFlag) {
+ if($selectAllFlag == true) {
$countFields = (count($arr) / 2);
}
@@ -518,35 +612,349 @@
$k++;
}
-
- /* IMPORTANT:
- * gforge=# SELECT hours, COUNT(project_task_id) FROM project_task_vw WHERE project_task_id != 407 GROUP BY hours UNION SELECT hours, COUNT(project_task_id) FROM project_task_vw WHERE project_task_id = 407 GROUP BY hours ORDER BY count;
- */
-
+
return $arrResult;
}
-
-
- public function getPossibleGroupInformation($evolvisNonAggData, $projectHours) {
-
- /*
- * In here I have to create the SQL Queries
- */
+
+ public function getPossibleGroupInformation($evolvisNonAggData, $projectHours, $selectRequest, $groupBy='') {
/*
- * There is a 1:n relation between the evolvis data and the activity data.
- * It can be that there is no entry in activity for a task, because no one worked on it.
- * So it does no care if it will be grouped or not, because the value of hours done is 0 anyway.
+ * - There is a 1:n relation between the evolvis data and the activity data.
+ * It can be that there is no entry in activity for a task, because no one worked on it.
+ *
+ * - If a SQL aggregation function is used, the project hours will be grouped in all possible ways like
+ * the sql data.
*/
-
- /* IMPORTANT:
- * gforge=# SELECT hours, COUNT(project_task_id) FROM project_task_vw WHERE project_task_id != 407 GROUP BY hours UNION SELECT hours, COUNT(project_task_id) FROM project_task_vw WHERE project_task_id = 407 GROUP BY hours ORDER BY count;
- */
+ $arrReportHeader = array();
+
+ $arrGroupBy = array();
+
+ $aggFuncFlag = false;
+ $onlyAggFuncFlag = true;
+
+ #$_projectTaskId = -1; The projectTaksId has always the index 0 if it is choosen.
+ $summary = -1;
+ $details = -1;
+ $parent_id = -1;
+ $duration = -1;
+ $singleGroupProjectId = -1;
+ $projectName = -1;
+ $description = -1;
+ $statusId = -1;
+ $statusName = -1;
+ $categoryId = -1;
+ $categoryName = -1;
+ $createdBy = -1;
+ $username = -1;
+ $realName = -1;
+ $startDateCount = -1;
+ $endDateCount = -1;
+ $hours = -1;
+ $priority = -1;
+ $percentComplete = -1;
+
+ $countFields = 0;
+ //SELECT CLAUSE
+ $selectAllFlag = true;
+ $projectTaskIdChoosen = false;
+
+ $select ='SELECT ';
+ if($selectRequest['project_task_id']) { $select.=' project_task_vw.project_task_id,'; array_push($arrReportHeader,_('Project task id')); array_push($arrGroupBy,'project_task_vw.project_task_id'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $projectTaskIdChoosen = true; }
+ if($selectRequest['project_task_id_max']) { $select.=' MAX(project_task_vw.project_task_id),'; array_push($arrReportHeader,_('Maximal project task id')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['project_task_id_min']) { $select.=' MIN(project_task_vw.project_task_id),'; array_push($arrReportHeader,_('Minimal project task id')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['project_task_id_count']) { $select.=' COUNT(project_task_vw.project_task_id),'; array_push($arrReportHeader,_('Project task id count')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['summary']){ $select.=' project_task_vw.summary,'; array_push($arrReportHeader,_('Summary')); array_push($arrGroupBy,'project_task_vw.summary'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $summary=$countFields; }
+ if($selectRequest['details']){ $select.=' project_task_vw.details,'; array_push($arrReportHeader,_('Details')); array_push($arrGroupBy,'project_task_vw.details'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $details=$countFields; }
+ if($selectRequest['parent_id']){ $select.=' project_task_vw.parent_id,'; array_push($arrReportHeader,_('Parent id')); array_push($arrGroupBy,'project_task_vw.parent_id'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $parentId=$countFields; }
+ if($selectRequest['parent_id_max']) { $select.=' MAX(project_task_vw.parent_id),'; array_push($arrReportHeader,_('Maximal parent id')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['parent_id_min']) { $select.=' MIN(project_task_vw.parent_id),'; array_push($arrReportHeader,_('Minimal parent id')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['parent_id_count']) { $select.=' COUNT(project_task_vw.parent_id),'; array_push($arrReportHeader,_('Parent id count')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['duration']) { $select.=' project_task_vw.duration,'; array_push($arrReportHeader,_('Duration')); array_push($arrGroupBy,'duration'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $duration=$countFields; }
+ if($selectRequest['duration_max']) { $select.=' MAX(project_task_vw.duration),'; array_push($arrReportHeader,_('Maximal duration')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['duration_min']){ $select.=' MIN(project_task_vw.duration),'; array_push($arrReportHeader,_('Minimal duration')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['duration_avg']){ $select.=' ROUND(AVG(project_task_vw.duration)),'; array_push($arrReportHeader,_('Average duration')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['duration_sum']){ $select.=' SUM(project_task_vw.duration),'; array_push($arrReportHeader,_('Summed duration')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['single_group_project_id']){ $select.=' project_group_list_vw.group_project_id,'; array_push($arrReportHeader,_('Group project id')); array_push($arrGroupBy,'project_group_list_vw.group_project_id'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $singleGroupProjectId=$countFields; }
+ if($selectRequest['project_name']){ $select.=' project_group_list_vw.project_name,'; array_push($arrReportHeader,_('Project name')); array_push($arrGroupBy,'project_group_list_vw.project_name'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $projectName=$countFields; }
+ if($selectRequest['description']){ $select.=' project_group_list_vw.description,'; array_push($arrReportHeader,_('Description')); array_push($arrGroupBy,'project_group_list_vw.description'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $description=$countFields; }
+ if($selectRequest['status_id']){ $select.=' project_task_vw.status_id,'; array_push($arrReportHeader,_('Status id')); array_push($arrGroupBy,'project_task_vw.status_id'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $statusId=$countFields; }
+ if($selectRequest['status_name']){ $select.=' project_task_vw.status_name,'; array_push($arrReportHeader,_('Status name')); array_push($arrGroupBy,'project_task_vw.status_name'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $statusName=$countFields; }
+ if($selectRequest['category_id']){ $select.=' project_task_vw.category_id,'; array_push($arrReportHeader,_('Category id')); array_push($arrGroupBy,'project_task_vw.category_id'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $categoryId=$countFields; }
+ if($selectRequest['category_name']){ $select.=' project_task_vw.category_name,'; array_push($arrReportHeader,_('Category name')); array_push($arrGroupBy,'project_task_vw.category_name'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $categoryName=$countFields; }
+ if($selectRequest['created_by']){ $select.=' project_task_vw.created_by,'; array_push($arrReportHeader,_('Created by')); array_push($arrGroupBy,'project_task_vw.created_by'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $createdBy=$countFields; }
+ if($selectRequest['user_name']){ $select.=' project_task_vw.user_name,'; array_push($arrReportHeader,_('Username')); array_push($arrGroupBy,'project_task_vw.user_name'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $username=$countFields; }
+ if($selectRequest['realname']){ $select.=' project_task_vw.realname,'; array_push($arrReportHeader,_('Real name')); array_push($arrGroupBy,'project_task_vw.realname'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $realName=$countFields;}
+ if($selectRequest['start_date']){ $select.=' project_task_vw.start_date,'; array_push($arrReportHeader,_('Start date')); array_push($arrGroupBy,'project_task_vw.start_date'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $startDateCount=$countFields; }
+ if($selectRequest['start_date_max']){ $select.=' MAX(project_task_vw.start_date),'; array_push($arrReportHeader,_('Maximal start date')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['start_date_min']){ $select.=' MIN(project_task_vw.start_date),'; array_push($arrReportHeader,_('Minimal start date')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['start_date_avg']){ $select.=' ROUND(AVG(project_task_vw.start_date)),'; array_push($arrReportHeader,_('Average start date')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['end_date']){ $select.=' project_task_vw.end_date,'; array_push($arrReportHeader,_('End date')); array_push($arrGroupBy,'project_task_vw.end_date'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; }
+ if($selectRequest['end_date_max']){ $select.=' MAX(project_task_vw.end_date),'; array_push($arrReportHeader,_('Maximal end date')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['end_date_min']){ $select.=' MIN(project_task_vw.end_date),'; array_push($arrReportHeader,_('Minimal end date')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['end_date_avg']){ $select.=' ROUND(AVG(project_task_vw.end_date)),'; array_push($arrReportHeader,_('Average end date')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['hours']){ $select.=' project_task_vw.hours,'; array_push($arrReportHeader,_('Hours')); array_push($arrGroupBy,'project_task_vw.hours'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $hours=$countFields; }
+ if($selectRequest['hours_max']){ $select.=' MAX(project_task_vw.hours),'; array_push($arrReportHeader,_('Maximal hours')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['hours_min']){ $select.=' MIN(project_task_vw.hours),'; array_push($arrReportHeader,_('Minimal hours')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['hours_avg']){ $select.=' ROUND(AVG(project_task_vw.hours)),'; array_push($arrReportHeader,_('Average hours')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['hours_sum']){ $select.=' SUM(project_task_vw.hours),'; array_push($arrReportHeader,_('Summed hours')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+
+ if($selectRequest['priority']){ $select.=' project_task_vw.priority,'; array_push($arrReportHeader,_('Priority')); array_push($arrGroupBy,'project_task_vw.priority'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $priority=$countFields; }
+ if($selectRequest['priority_max']){ $select.=' MAX(project_task_vw.priority),'; array_push($arrReportHeader,_('Maximal priority')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['priority_min']){ $select.=' MIN(project_task_vw.priority),'; array_push($arrReportHeader,_('Minimal priority')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['priority_avg']){ $select.=' ROUND(AVG(project_task_vw.priority)),'; array_push($arrReportHeader,_('Average priority')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['percent_complete']){ $select.=' project_task_vw.percent_complete,'; array_push($arrReportHeader,_('Percent complete')); array_push($arrGroupBy,'project_task_vw.percent_complete'); $selectAllFlag = false; $onlyAggFuncFlag = false; $countFields++; $percentComplete=$countFields; }
+ if($selectRequest['percent_complete_max']){ $select.=' MAX(project_task_vw.percent_complete),'; array_push($arrReportHeader,_('Maximal percent complete')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['percent_complete_min']){ $select.=' MIN(project_task_vw.percent_complete),'; array_push($arrReportHeader,_('Minimal percent complete')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['percent_complete_avg']){ $select.=' ROUND(AVG(project_task_vw.percent_complete)),'; array_push($arrReportHeader,_('Average percent complete')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['percent_complete_sum']){ $select.=' SUM(project_task_vw.percent_complete),'; array_push($arrReportHeader,_('Summed percent complete')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+
+ if($selectRequest['hours_done']){ array_push($arrReportHeader,_('Hours done')); $selectAllFlag = false; $countFields++; $doneHoursPos = $countFields; $hoursDone=$countFields; }
+ if($selectRequest['hours_done_max']){ array_push($arrReportHeader,_('Maximum hours done')); $selectAllFlag = false; $countFields++; $maxHoursPos = $countFields;}
+ if($selectRequest['hours_done_min']){ array_push($arrReportHeader,_('Minimum hours done')); $selectAllFlag = false; $countFields++; $minHoursPos = $countFields;}
+ if($selectRequest['hours_done_avg']){ array_push($arrReportHeader,_('Average hours done')); $selectAllFlag = false; $countFields++; $avgHoursPos = $countFields;}
+ if($selectRequest['hours_done_sum']){ array_push($arrReportHeader,_('Summed hours done')); $selectAllFlag = false; $countFields++; $sumHoursPos = $countFields;}
+
+ if($selectAllFlag == true) {
+
+ $projectTaskIdChoosen = true;
+ $select .= ' project_task_vw.project_task_id,
+ project_task_vw.group_project_id,
+ project_task_vw.summary,
+ project_task_vw.details,
+ project_task_vw.percent_complete,
+ project_task_vw.priority,
+ project_task_vw.hours,
+ project_task_vw.start_date,
+ project_task_vw.end_date,
+ project_task_vw.created_by,
+ project_task_vw.status_id,
+ project_task_vw.category_id,
+ project_task_vw.duration,
+ project_task_vw.parent_id,
+ project_task_vw.category_name,
+ project_task_vw.status_name,
+ project_task_vw.user_name,
+ project_task_vw.realname,
+ project_group_list_vw.project_name,
+ project_group_list_vw.description';
+ $arrReportHeader = array(_('Project task id'),
+ _('Group project id'),
+ _('Summary'),
+ _('Details'),
+ _('Percent complete'),
+ _('Priority'),
+ _('Hours'),
+ _('Start date'),
+ _('End date'),
+ _('Created by'),
+ _('Status id'),
+ _('Category id'),
+ _('Duration'),
+ _('Parent id'),
+ _('Category name'),
+ _('Status name'),
+ _('Username'),
+ _('Real name'),
+ _('Project name'),
+ _('Description')
+ );
+ $startDateCount = 8;
+ $endDateCount = 9;
+ }
+
+ /*
+ $evolvisNonAggData[0][0] => 428
+ $evolvisNonAggData[0][1] => ffffffff
+ $evolvisNonAggData[0][2] => 3
+ $evolvisNonAggData[1][0] => 305
+ $evolvisNonAggData[1][1] => testabc
+ $evolvisNonAggData[1][2] => 1
+ $evolvisNonAggData[2][0] => 429
+ $evolvisNonAggData[2][1] => kjkh
+ $evolvisNonAggData[2][2] => 4
+ $evolvisNonAggData[3][0] => 430
+ $evolvisNonAggData[3][1] => |#´`§%/{}?\!^°-_<>"&
+ $evolvisNonAggData[3][2] => 4
+ $evolvisNonAggData[4][0] => 431
+ $evolvisNonAggData[4][1] => kjkjtz
+ $evolvisNonAggData[4][2] => 7
+ $evolvisNonAggData[5][0] => 436
+ $evolvisNonAggData[5][1] => ffffffff
+ $evolvisNonAggData[5][2] => 3
+ */
+
+ if(!$aggFuncFlag) {
+
$arrIdsToGroupBy = array(array(array()));
$arrIdsToGroupNotBy = array(array(array()));
$i = 0;
+ foreach($evolvisNonAggData as $evolvisData) { //$evolvisNonAggData[0] => $evolvisData
+
+ $dataLoop1 = '';
+ $equalCount = 0;
+ $projectHourId = 0;
+ $projectHour = 0;
+ $idCount = 0;
+ $id_ = '';
+
+ $projectTaskId = $evolvisData[0];
+
+ foreach($projectHours[1] as $id) {
+ if($projectTaskId == $id) {
+ $id_ = $id;
+ break;
+ }
+ $idCount++;
+ }
+
+ foreach($evolvisData as $data) { //428,ffffffff,3
+ $dataLoop1 .= $data. ',';
+ }
+
+ $dataLoop1_ = split(',',$dataLoop1);
+ $dataLoop1 = '';
+
+ for($j=1; $j<(count($dataLoop1_)-1); $j++) { $dataLoop1 .= $dataLoop1_[$j].','; }
+
+ $dataLoop1a = $dataLoop1; //ffffffff,3 => No id included anymore
+
+ if($id_ == '') {
+ $dataLoop1 = $dataLoop1.'0';
+ } else {
+ $dataLoop1 = $dataLoop1.$projectHours[0][$idCount];
+ }
+
+ $k = 0;
+ $l = 0;
+ $firstTime = true;
+ foreach($evolvisNonAggData as $evolvisData_) { //$evolvisNonAggData[0] => $evolvisData_
+ $dataLoop2 = '';
+ $id_ = '';
+ $idCount_ = 0;
+
+ $projectTaskId_ = $evolvisData_[0];
+ foreach($evolvisData_ as $data_) { //428,ffffffff,3
+ $dataLoop2 .= $data_. ',';
+ }
+
+ $dataLoop2_ = split(',',$dataLoop2);
+ $dataLoop2 = '';
+
+ for($j=1; $j<(count($dataLoop2_)-1); $j++) { $dataLoop2 .= $dataLoop2_[$j].','; }
+
+ $dataLoop2a = $dataLoop2; //ffffffff,3 => No id included anymore
+
+ foreach($projectHours[1] as $id) {
+ if($projectTaskId_ == $id) {
+ $id_ = $id;
+ break;
+ }
+ $idCount_++;
+ }
+
+ if($id_ == '') {
+ $dataLoop2 = $dataLoop2.'0';
+ } else {
+ $dataLoop2 = $dataLoop2.$projectHours[0][$idCount_];
+ }
+
+ if($dataLoop1a == $dataLoop2a && $firstTime == true) { //Without hours done. If $id_ != '' there is an activity entry related to the evolvis entry.
+
+ if($dataLoop1 == $dataLoop2 && $firstTime == true) { //With hours done. (hours, percent_complete,...,hours done)
+
+ if($projectTaskIdChoosen == true) {
+ $projectTaskId_ = $projectTaskId;
+ }
+ $arrIdsToGroupBy[$i][$k][0] = $projectTaskId_; //$projectTaskId_ //Includes all ids whose choosen fields can be grouped
+ $arrIdsToGroupBy[$i][$k][1] = $projectHours[0][$idCount_];
+
+ $k++;
+
+ $firstTime = false;
+ }
+ }
+ }
+ $i++;
+ }
+
+ $arrIdsToGroupBy2 = $arrIdsToGroupBy;
+
+ //Need to delete double entries
+ for($i = 0; $i < count($arrIdsToGroupBy); $i++) {
+
+ for($j = 0; $j < count($arrIdsToGroupBy[$i]); $j++) {
+
+ $array1 = $arrIdsToGroupBy[$i][$j];
+ $count = count($arrIdsToGroupBy[$i][$j]);
+ $sameEntryCount = 0;
+
+ for($k = 0; $k < count($arrIdsToGroupBy2); $k++) {
+
+ for($l = 0; $l < count($arrIdsToGroupBy2[$k]); $l++) {
+
+ $array2 = $arrIdsToGroupBy2[$k][$l];
+
+ $array3 = array_diff($array1, $array2);
+
+ if($array3[0] == '') {
+ $sameEntryCount++;
+ }
+
+ if($sameEntryCount > 1 && $groupBy != '') {
+ $arrIdsToGroupBy2[$k][$l][0] = 0;
+ $arrIdsToGroupBy2[$k][$l][1] = 0;
+ $sameEntryCount = 1;
+ }
+ }
+ }
+ }
+ }
+
+ //Transfer the data in a new array without empty indexes
+ $arrIdsToGroupBy3 = array(array(array()));
+ $k = 0;
+ $l = 0;
+
+ $flag = false;
+ for($i = 0; $i < count($arrIdsToGroupBy2); $i++) {
+
+ $flag = false;
+ for($j = 0; $j < count($arrIdsToGroupBy2[$i]); $j++) {
+
+ if($arrIdsToGroupBy2[$i][$j][0] != 0) {
+
+ $flag = true;
+
+ $arrIdsToGroupBy3[$k][$l][0] = $arrIdsToGroupBy2[$i][$j][0];
+ $arrIdsToGroupBy3[$k][$l][1] = $arrIdsToGroupBy2[$i][$j][1];
+ $l++;
+
+ }
+ }
+
+ if($flag == true) {
+ $k++;
+ }
+
+ $l=0;
+ }
+
+ /*
+ Id => 305 | Id => 305
+ Id => 428
+ Id => 429 | Id => 429
+ Id => 430 | Id => 430
+ Id => 431
+ Id => 436
+ */
+ } else {
+
+ $arrIdsToGroupBy = array(array(array()));
+ $arrIdsToGroupNotBy = array(array(array()));
+
+ $i = 0;
foreach($evolvisNonAggData as $evolvisData) {
$dataLoop1 = '';
@@ -573,7 +981,7 @@
$dataLoop1_ = split(',',$dataLoop1);
$dataLoop1 = '';
- for($j=1; $j<(count($dataLoop1_)-1); $j++) { $dataLoop1 .= $dataLoop1_[$j].','; }
+ for($j=1; $j<(count($dataLoop1_)-1); $j++) { $dataLoop1 .= $dataLoop1_[$j].','; } //The data without id
$dataLoop1a = $dataLoop1;
@@ -599,7 +1007,7 @@
$dataLoop2_ = split(',',$dataLoop2);
$dataLoop2 = '';
- for($j=1; $j<(count($dataLoop2_)-1); $j++) { $dataLoop2 .= $dataLoop2_[$j].','; }
+ for($j=1; $j<(count($dataLoop2_)-1); $j++) { $dataLoop2 .= $dataLoop2_[$j].','; } //The data without ids
$dataLoop2a = $dataLoop2;
@@ -616,10 +1024,10 @@
} else {
$dataLoop2 = $dataLoop2.$projectHours[0][$idCount_];
}
-
- if($dataLoop1a == $dataLoop2a) { #&& $id_ != '') {//Without hours done. If $id_ != '' there is an activity entry related to the evolvis entry.
+
+ if($dataLoop1a == $dataLoop2a) { //Without hours done. If $id_ != '' there is an activity entry related to the evolvis entry.
- if($dataLoop1 == $dataLoop2) { //&& $projectTaskId_ != $projectTaskId; //With hours done. (hours, percent_complete,...,hours done)
+ if($dataLoop1 == $dataLoop2) { //With hours done. (hours, percent_complete,...,hours done)
$arrIdsToGroupBy[$i][$k][0] = $projectTaskId_; //Includes all ids whose choosen fields can be grouped
$arrIdsToGroupBy[$i][$k][1] = $projectHours[0][$idCount_];
@@ -634,7 +1042,7 @@
$arrIdsToGroupBy2 = $arrIdsToGroupBy;
//Need to delete double entries
- for($i = 0; $i < count($arrIdsToGroupBy); $i++) { //$i => for every of the 46 project task ids //First array
+ for($i = 0; $i < count($arrIdsToGroupBy); $i++) {
for($j = 0; $j < count($arrIdsToGroupBy[$i]); $j++) {
@@ -642,7 +1050,7 @@
$count = count($arrIdsToGroupBy[$i][$j]);
$sameEntryCount = 0;
- for($k = 0; $k < count($arrIdsToGroupBy2); $k++) { //Second array
+ for($k = 0; $k < count($arrIdsToGroupBy2); $k++) {
for($l = 0; $l < count($arrIdsToGroupBy2[$k]); $l++) {
@@ -701,17 +1109,19 @@
Id => 431
Id => 436
*/
+ }
+
return $arrIdsToGroupBy3;
}
- public function mergeSqlQuerys($arrSqlQuerys) {
+ public function mergeSqlQuerys($arrSqlQuerys, $orderBy='', $groupBy='', $asc=0) {
$query = '';
$params = array();
for($i = 0; $i < count($arrSqlQuerys); $i++) {
$query .= $arrSqlQuerys[$i][0];
if((count($arrSqlQuerys)-1) != $i) {
- $query .= ' UNION ';
+ $query .= ' UNION ALL ';
}
foreach($arrSqlQuerys[$i][1] as $param) {
@@ -742,13 +1152,43 @@
$mergedSqlQuery = $part_;
- $arrMergedQuerysAndParams[0] = $mergedSqlQuery;
+ $where = '';
+ $tblPrefix = '';
+ if($orderBy != '' && get_magic_quotes_gpc() == true) {
+ switch($orderBy) {
+ case 'single_group_project_id': $tblPrefix = 'project_group_list_vw.';
+ break;
+ case 'project_name': $tblPrefix = 'project_group_list_vw.';
+ break;
+ case 'description': $tblPrefix = 'project_group_list_vw.';
+ default: $tblPrefix = 'project_task_vw.';
+ break;
+ }
+
+ if($orderBy === 'single_group_project_id') {
+ $orderBy = 'group_project_id';
+ }
+ $tblPrefix = '';
+
+ $where.= ' ORDER BY '.$tblPrefix.$orderBy;
+ }
+
+ #if($groupBy == '' && $orderBy != '') {
+ if($orderBy != '') {
+ if($asc === 0) {
+ $where.= ' ASC';
+ } else {
+ $where.=' DESC';
+ }
+ }
+
+ $arrMergedQuerysAndParams[0] = $mergedSqlQuery .$where;
$arrMergedQuerysAndParams[1] = $params;
return $arrMergedQuerysAndParams;
}
- public function determineNeededSwitchCase($selectRequest) { //I think this method could be removed
+ public function determineNeededSwitchCase($selectRequest) {
$evolvisDbData = false;
$activityDbData = false;
@@ -955,15 +1395,8 @@
project_group_list_vw.description';
$arrReportHeader = array(_('Project task id'),
_('Group project id'),
- #_('Maximal project task id'),
- #_('Minimal project task id'),
- #_('Project task id count'),
_('Summary'),
_('Details'),
- #_('Parent id'),
- #_('Maximal parent id'),
- #_('Minimal parent id'),
- #_('Parent id count'),
_('Percent complete'),
_('Priority'),
_('Hours'),
@@ -974,46 +1407,15 @@
_('Category id'),
_('Duration'),
_('Parent id'),
- #_('Maximal duration'),
- #_('Minimal duration'),
- #_('Average duration'),
- #_('Summed duration'),
- #_('Last modified date'),
_('Category name'),
_('Status name'),
_('Username'),
_('Real name'),
- #_('Group project id'),
- #_('Group id'),
_('Project name'),
- #_('Is plubic'),
_('Description')
- #_('Maximal start date'),
- #_('Minimal start date'),
- #_('Average start date'),
- #_('End date'),
- #_('Maximal end date'),
- #_('Minimal end date'),
- #_('Average end date'),
- #_('Maximal hours'),
- #_('Minimal hours'),
- #_('Average hours'),
- #_('Summed hours'),
- #_('Hours done'),
- #_('Maximal hours done'),
- #_('Minimal hours done'),
- #_('Average hours done'),
- #_('Summed hours done'),
- #_('Maximal priority'),
- #_('Minimal priority'),
- #_('Average priority'),
- #_('Maximal percent complete'),
- #_('Minimal percent complete'),
- #_('Average percent complete'));
- #_('Summed percent complete'));
);
$startDateCount = 8;
- $endDateCount = 9;
+ $endDateCount = 9;
}
// FROM CLAUSE
@@ -1077,7 +1479,7 @@
$groupBy = 'group_project_id';
}
- $where.= ' GROUP BY ';
+ $group= ' GROUP BY ';
$groupBy__ = '';
$groupAvailable = false;
foreach($arrGroupBy as $groupBy_) {
@@ -1087,29 +1489,29 @@
$groupBy__.=' '.$groupBy_.',';
}
- $where.= $groupBy__;
+ $group.= $groupBy__;
if($groupBy == '') {
- $where = substr($where, 0, strlen($where)-1);
+ $group = substr($group, 0, strlen($group)-1);
}
if(!$groupAvailable) {
if($groupBy != '') {
- $where.=$tblPrefix.$groupBy;
+ $group.=$tblPrefix.$groupBy;
}
} else {
if(!$onlyAggFuncFlag) {
- $where = substr($where, 0, strlen($where)-1);
+ $group= substr($where, 0, strlen($group)-1);
} else {
- $where = substr($where, 0, strlen($where)-8);
+ $group = substr($group, 0, strlen($group)-8);
}
if($groupBy != '' && !$onlyAggFuncFlag) {
- $where.=', '.$tblPrefix.$groupBy;
+ $group.=', '.$tblPrefix.$groupBy;
}
}
if($onlyAggFuncFlag == true && $groupBy == '') {
- $where = substr($where, 0, strlen($where)-8);
+ $group = substr($group, 0, strlen($group)-8);
}
}
@@ -1135,29 +1537,39 @@
$orderBy = 'group_project_id';
}
- $where.= ' ORDER BY '.$tblPrefix.$orderBy;
+ $order.= ' ORDER BY '.$tblPrefix.$orderBy;
}
- if($groupBy == '' && $orderBy != '') {
+ #if($groupBy == '' && $orderBy != '') {
+ if($orderBy != '') {
if($asc === 0) {
- $where.= ' ASC';
+ $order.= ' ASC';
} else {
- $where.=' DESC';
+ $order.=' DESC';
}
}
- $sqlQuery = $select . $from . $where;
+ $sqlQuery = $select . $from . $where. $group . $order;
- $offcutSqlQuery = $from . $where;
+ $offcutSqlQuery = $from . $where. $group . $order;
+ $offcutSqlQuery__ = $from . $where;
+
$offcutSqlQuery_ = preg_replace('/, FROM/', ' FROM',$offcutSqlQuery);
+ $offcutSqlQuery___ = preg_replace('/, FROM/', ' FROM',$offcutSqlQuery__);
$sqlQuery = preg_replace('/, FROM/', ' FROM', $sqlQuery);
$res = db_query_params($sqlQuery, $params);
+
+ $this->setOffcutQuery($offcutSqlQuery_);
+ $this->setAnotherOffcutQuery($offcutSqlQuery___);
+
+ $this->setArrSqlParams($params);
if(!$res || db_numrows($res) === 0) {
$error = db_error();
+
if(trim($error)!='') {
$this->setError(true);
$this->setErrorString($error);
@@ -1173,13 +1585,10 @@
$this->setReportDataHeader($commaSeparatedReportHeader);
$this->setInfoString(_('The PDF file is created.'));
-
- $this->setOffcutQuery($offcutSqlQuery_);
- $this->setArrSqlParams($params);
if($groupByHoursDone == false) {
- $arrProjectTaskIds = $this->getProjectTaskIdsByString($offcutSqlQuery_, $params);
+ $arrProjectTaskIds = $this->getProjectTaskIdsByString($offcutSqlQuery___, $params);
$projectInfo = $this->getProjectInfo();
@@ -1207,7 +1616,6 @@
while ($arr = db_fetch_array($res)) {
if($selectAllFlag) {
- #if (SELECT *) => $countFields = (count($arr)-3) / 2;
$countFields = (count($arr) / 2);
}
@@ -1263,15 +1671,13 @@
}
$result = substr($result, 0, strlen($result)-8);
-
- //Only returns the formated data.
-
+
return $result;
}
public function getReportData2($selectRequest, $whereRequest, $orderBy='', $groupBy='', $asc=0, $arrProjectTaskIds) {
- $arrReportHeader = array();
+ $arrReportHeader = array();
$arrGroupBy = array();
$aggFuncFlag = false;
@@ -1347,9 +1753,13 @@
if($selectRequest['percent_complete_avg']){ $select.=' ROUND(AVG(project_task_vw.percent_complete)),'; array_push($arrReportHeader,_('Average percent complete')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
if($selectRequest['percent_complete_sum']){ $select.=' SUM(project_task_vw.percent_complete),'; array_push($arrReportHeader,_('Summed percent complete')); $selectAllFlag = false; $aggFuncFlag = true; $countFields++; }
+ if($selectRequest['hours_done']){ array_push($arrReportHeader,_('Hours done')); $selectAllFlag = false; $countFields++; $doneHoursPos = $countFields;}
+ if($selectRequest['hours_done_max']){ array_push($arrReportHeader,_('Maximum hours done')); $selectAllFlag = false; $countFields++; $maxHoursPos = $countFields;}
+ if($selectRequest['hours_done_min']){ array_push($arrReportHeader,_('Minimum hours done')); $selectAllFlag = false; $countFields++; $minHoursPos = $countFields;}
+ if($selectRequest['hours_done_avg']){ array_push($arrReportHeader,_('Average hours done')); $selectAllFlag = false; $countFields++; $avgHoursPos = $countFields;}
+ if($selectRequest['hours_done_sum']){ array_push($arrReportHeader,_('Summed hours done')); $selectAllFlag = false; $countFields++; $sumHoursPos = $countFields;}
if($selectAllFlag == true) {
- #$select.= ' *';
$select .= ' project_task_vw.project_task_id,
project_task_vw.group_project_id,
project_task_vw.summary,
@@ -1372,15 +1782,8 @@
project_group_list_vw.description';
$arrReportHeader = array(_('Project task id'),
_('Group project id'),
- #_('Maximal project task id'),
- #_('Minimal project task id'),
- #_('Project task id count'),
_('Summary'),
_('Details'),
- #_('Parent id'),
- #_('Maximal parent id'),
- #_('Minimal parent id'),
- #_('Parent id count'),
_('Percent complete'),
_('Priority'),
_('Hours'),
@@ -1391,43 +1794,12 @@
_('Category id'),
_('Duration'),
_('Parent id'),
- #_('Maximal duration'),
- #_('Minimal duration'),
- #_('Average duration'),
- #_('Summed duration'),
- #_('Last modified date'),
_('Category name'),
_('Status name'),
_('Username'),
_('Real name'),
- #_('Group project id'),
- #_('Group id'),
_('Project name'),
- #_('Is plubic'),
_('Description')
- #_('Maximal start date'),
- #_('Minimal start date'),
- #_('Average start date'),
- #_('End date'),
- #_('Maximal end date'),
- #_('Minimal end date'),
- #_('Average end date'),
- #_('Maximal hours'),
- #_('Minimal hours'),
- #_('Average hours'),
- #_('Summed hours'),
- #_('Hours done'),
- #_('Maximal hours done'),
- #_('Minimal hours done'),
- #_('Average hours done'),
- #_('Summed hours done'),
- #_('Maximal priority'),
- #_('Minimal priority'),
- #_('Average priority'),
- #_('Maximal percent complete'),
- #_('Minimal percent complete'),
- #_('Average percent complete'));
- #_('Summed percent complete'));
);
$startDateCount = 8;
$endDateCount = 9;
@@ -1439,7 +1811,7 @@
'ON'. ' ' .
'project_task_vw.group_project_id = project_group_list_vw.group_project_id'. ' ';
- // WHERE CLAUSE
+ // WHERE CLAUSE
$where = ' WHERE';
$params = array();
@@ -1471,9 +1843,15 @@
$where.= ' AND project_group_list_vw.group_id = $'.$countParams;
array_push($params, $selectRequest['group_id']);
+ $i = 0;
foreach($arrProjectTaskIds as $ids) {
$countParams ++;
- $where .= ' OR project_task_id = $'.$countParams;
+ if($i == 0) {
+ $where .= ' AND project_task_id = $'.$countParams;
+ } else {
+ $where .= ' OR project_task_id = $'.$countParams;
+ }
+ $i++;
array_push($params, $ids[0]);
}
@@ -1535,39 +1913,9 @@
$where = substr($where, 0, strlen($where)-8);
}
}
-
- $tblPrefix = '';
- if($orderBy != '' && get_magic_quotes_gpc() == true) {
- switch($orderBy) {
- case 'single_group_project_id': $tblPrefix = 'project_group_list_vw.';
- break;
- case 'project_name': $tblPrefix = 'project_group_list_vw.';
- break;
- case 'description': $tblPrefix = 'project_group_list_vw.';
- default: $tblPrefix = 'project_task_vw.';
- break;
- }
- /* $countParams++;
- $where.= ' ORDER BY $'.$countParams;
- array_push($params, $orderBy);
-
- It does not work with placeholders and array params.
- So I used the security function enabled through the method
- db_query_params() in here. */
- if($orderBy === 'single_group_project_id') {
- $orderBy = 'group_project_id';
- }
-
- $where.= ' ORDER BY '.$tblPrefix.$orderBy;
- }
-
- if($groupBy == '' && $orderBy != '') {
- if($asc === 0) {
- $where.= ' ASC';
- } else {
- $where.=' DESC';
- }
- }
+
+ $commaSeparatedReportHeader = implode('#sepColumn#', $arrReportHeader);
+ $this->setReportDataHeader($commaSeparatedReportHeader);
$sqlQuery = $select . $from . $where;
@@ -1577,13 +1925,16 @@
$sqlQuery = preg_replace('/, FROM/', ' FROM', $sqlQuery);
$arrSqlQueryInfo = array(array());
- $arrSqlQueryInfo[0] = $sqlQuery;
- $arrSqlQueryInfo[1] = $params;
+ $arrSqlQueryInfo[0] = '( '.$sqlQuery.' )';
+ $arrSqlQueryInfo[1] = $params;
+ $arrSqlQueryInfo[2] = $selectAllFlag;
+ $arrSqlQueryInfo[3] = $countFields;
+
return $arrSqlQueryInfo;
}
- public function getReportData3($selectRequest, $whereRequest, $orderBy='', $groupBy='', $asc=0, $arrMergedQuerysAndParams, $groupInformation) {
+ public function getReportData3($selectRequest, $whereRequest, $orderBy='', $groupBy='', $asc=0, $arrMergedQuerysAndParams, $groupInformation, $selectAllFlag, $countFields) {
/* $selectRequest needed to know the order of the data, so I can convert the timestamp in a date.
* $whereRequest needed to group and order the merged Query again, so that the whole output will be merged.
@@ -1672,109 +2023,17 @@
if($selectRequest['hours_done_min']){ array_push($arrReportHeader,_('Minimum hours done')); $selectAllFlag = false; $countFields++; $minHoursPos = $countFields;}
if($selectRequest['hours_done_avg']){ array_push($arrReportHeader,_('Average hours done')); $selectAllFlag = false; $countFields++; $avgHoursPos = $countFields;}
if($selectRequest['hours_done_sum']){ array_push($arrReportHeader,_('Summed hours done')); $selectAllFlag = false; $countFields++; $sumHoursPos = $countFields;}
-
- // FROM CLAUSE IST NOT NEEDED ANYMORE
-
- // WHERE CLAUSE IST NOT NEEDED ANYMORE
+
$where = '';
-
- $tblPrefix = '';
- if($groupBy != '' && get_magic_quotes_gpc() == true
- || $aggFuncFlag == true && get_magic_quotes_gpc() == true) {
- switch($groupBy) {
- case 'single_group_project_id': $tblPrefix = 'project_group_list_vw.';
- break;
- case 'project_name': $tblPrefix = 'project_group_list_vw.';
- break;
- case 'description': $tblPrefix = 'project_group_list_vw.';
- default: $tblPrefix = 'project_task_vw.';
- break;
- }
- /* $countParams++;
- $where.=' GROUP BY $'.$countParams;
- array_push($params, $prefix.$groupBy);
-
- It does not work with placeholders and array params.
- So I used the security function enabled through the method
- db_query_params() in here. */
- if($groupBy === 'single_group_project_id') {
- $groupBy = 'group_project_id';
- }
-
- $where.= ' GROUP BY ';
- $groupBy__ = '';
- $groupAvailable = false;
- foreach($arrGroupBy as $groupBy_) {
- if($groupBy == $groupBy_) {
- $groupAvailable = true;
- }
- $groupBy__.=' '.$groupBy_.',';
- }
-
- $where.= $groupBy__;
- if($groupBy == '') {
- $where = substr($where, 0, strlen($where)-1);
- }
-
- if(!$groupAvailable) {
- if($groupBy != '') {
- $where.=$tblPrefix.$groupBy;
- }
- } else {
- if(!$onlyAggFuncFlag) {
- $where = substr($where, 0, strlen($where)-1);
- } else {
- $where = substr($where, 0, strlen($where)-8);
- }
-
- if($groupBy != '' && !$onlyAggFuncFlag) {
- $where.=', '.$tblPrefix.$groupBy;
- }
- }
-
- if($onlyAggFuncFlag == true && $groupBy == '') {
- $where = substr($where, 0, strlen($where)-8);
- }
- }
- $tblPrefix = '';
- if($orderBy != '' && get_magic_quotes_gpc() == true) {
- switch($orderBy) {
- case 'single_group_project_id': $tblPrefix = 'project_group_list_vw.';
- break;
- case 'project_name': $tblPrefix = 'project_group_list_vw.';
- break;
- case 'description': $tblPrefix = 'project_group_list_vw.';
- default: $tblPrefix = 'project_task_vw.';
- break;
- }
- /* $countParams++;
- $where.= ' ORDER BY $'.$countParams;
- array_push($params, $orderBy);
-
- It does not work with placeholders and array params.
- So I used the security function enabled through the method
- db_query_params() in here. */
- if($orderBy === 'single_group_project_id') {
- $orderBy = 'group_project_id';
- }
-
- $where.= ' ORDER BY '.$tblPrefix.$orderBy;
- }
-
- if($groupBy == '' && $orderBy != '') {
- if($asc === 0) {
- $where.= ' ASC';
- } else {
- $where.=' DESC';
- }
- }
-
$res = db_query_params($arrMergedQuerysAndParams[0], $arrMergedQuerysAndParams[1]);
-
- if(!$res || db_numrows($res) === 0) {
-
+
+ $idInParam = count($arrMergedQuerysAndParams[1]);
+ $paramId = $arrMergedQuerysAndParams[1][$idInParam-1];
+
+ if($paramId != '' && ($paramId == null || !$res || db_numrows($res) == 0)) {
$error = db_error();
+
if(trim($error)!='') {
$this->setError(true);
$this->setErrorString($error);
@@ -1785,20 +2044,21 @@
return false;
}
-
+
$result = '';
$k = 0;
$o = 0;
$hours = 0;
+
while ($arr = db_fetch_array($res)) {
if($selectAllFlag) {
$countFields = (count($arr) / 2);
- }
-
- for($j=0; $j<$countFields; $j++) {
+ }
+
+ for($j=0; $j<$countFields; $j++) {
- foreach($groupInformation as $groupInformationParts) {
+ foreach($groupInformation as $groupInformationParts) { //IN this example there are 6 values that can be grouped to 4 values, but only the sql values can be grouped to 2.
foreach($groupInformationParts as $infoParts) {
if($infoParts[0] == $arr[0]) {
$hours = $infoParts[1];
@@ -1818,7 +2078,7 @@
$result .= $date;
} elseif($doneHoursPos-1 == $j) {
-
+
if($projectTaskIdChoosen == true) {
$projectHour = $hours;
@@ -1898,7 +2158,7 @@
}
$result = substr($result, 0, strlen($result)-8);
-
+
return $result;
}
Modified: branches/papel-reporting/www/pm/reporting/taskCreateReportGui.php
===================================================================
--- branches/papel-reporting/www/pm/reporting/taskCreateReportGui.php 2011-01-12 09:58:07 UTC (rev 7141)
+++ branches/papel-reporting/www/pm/reporting/taskCreateReportGui.php 2011-01-12 10:29:08 UTC (rev 7142)
@@ -628,24 +628,24 @@
<div class="reportGuiFieldsDiv">
<div class="reportGuiFieldsDivLeft reportGuiFieldsDivLeftColor">
<div class="reportGuiCheckboxDivLeft reportGuiCheckboxDivLeftPlus">
- <input type="checkbox" name="hours" value="1" <?php if($selectRequest['hours']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="priority" value="1" <?php if($selectRequest['priority']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxTxtDiv">
- <?php echo _('Hours') ?>
+ <?php echo _('Priority') ?>
</div>
</div>
<div class="reportGuiFieldsDivRight reportGuiFieldsDivRightColor">
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_max" value="1" <?php if($selectRequest['hours_max']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="priority_max" value="1" <?php if($selectRequest['priority_max']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_min" value="1" <?php if($selectRequest['hours_min']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="priority_min" value="1" <?php if($selectRequest['priority_min']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_avg" value="1" <?php if($selectRequest['hours_avg']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="priority_avg" value="1" <?php if($selectRequest['priority_avg']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_sum" value="1" <?php if($selectRequest['hours_sum']) echo 'checked="checked"'; ?> />
+
</div>
<div class="reportGuiCheckboxDivRight">
@@ -656,52 +656,51 @@
<div class="reportGuiFieldsDiv">
<div class="reportGuiFieldsDivLeft reportGuiFieldsDivLeftColor">
<div class="reportGuiCheckboxDivLeft reportGuiCheckboxDivLeftPlus">
- <input type="checkbox" name="hours_done" value="1" <?php if($selectRequest['hours_done']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
+ <input type="checkbox" name="percent_complete" value="1" <?php if($selectRequest['percent_complete']) echo 'checked="checked"'; ?> />
+ </div>
+ <div class="reportGuiCheckboxTxtDiv">
+ <?php echo _('Percent complete') ?>
</div>
- <div class="reportGuiCheckboxTxtDiv" <?php if($objReportingInfo->isConnectionRefusedInfo()) echo 'style="color:#8a8a8a"' ?>>
- <?php echo _('Hours done') ?>
- </div>
</div>
- <div class="reportGuiFieldsDivRight reportGuiFieldsDivRightColor">
+ <div class="reportGuiFieldsDivRight reportGuiFieldsDivRightColor">
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_done_max" value="1" <?php if($selectRequest['hours_done_max']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
+ <input type="checkbox" name="percent_complete_max" value="1" <?php if($selectRequest['percent_complete_max']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_done_min" value="1" <?php if($selectRequest['hours_done_min']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
+ <input type="checkbox" name="percent_complete_min" value="1" <?php if($selectRequest['percent_complete_min']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_done_avg" value="1" <?php if($selectRequest['hours_done_avg']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
+ <input type="checkbox" name="percent_complete_avg" value="1" <?php if($selectRequest['percent_complete_avg']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="hours_done_sum" value="1" <?php if($selectRequest['hours_done_sum']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
+ <input type="checkbox" name="percent_complete_sum" value="1" <?php if($selectRequest['percent_complete_sum']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
</div>
</div>
</div>
- <br class="clearFloat" />
<div class="reportGuiFieldsDiv">
<div class="reportGuiFieldsDivLeft reportGuiFieldsDivLeftColor">
<div class="reportGuiCheckboxDivLeft reportGuiCheckboxDivLeftPlus">
- <input type="checkbox" name="priority" value="1" <?php if($selectRequest['priority']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours" value="1" <?php if($selectRequest['hours']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxTxtDiv">
- <?php echo _('Priority') ?>
+ <?php echo _('Hours') ?>
</div>
</div>
<div class="reportGuiFieldsDivRight reportGuiFieldsDivRightColor">
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="priority_max" value="1" <?php if($selectRequest['priority_max']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_max" value="1" <?php if($selectRequest['hours_max']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="priority_min" value="1" <?php if($selectRequest['priority_min']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_min" value="1" <?php if($selectRequest['hours_min']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="priority_avg" value="1" <?php if($selectRequest['priority_avg']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_avg" value="1" <?php if($selectRequest['hours_avg']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
-
+ <input type="checkbox" name="hours_sum" value="1" <?php if($selectRequest['hours_sum']) echo 'checked="checked"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
@@ -712,24 +711,24 @@
<div class="reportGuiFieldsDiv">
<div class="reportGuiFieldsDivLeft reportGuiFieldsDivLeftColor">
<div class="reportGuiCheckboxDivLeft reportGuiCheckboxDivLeftPlus">
- <input type="checkbox" name="percent_complete" value="1" <?php if($selectRequest['percent_complete']) echo 'checked="checked"'; ?> />
- </div>
- <div class="reportGuiCheckboxTxtDiv">
- <?php echo _('Percent complete') ?>
+ <input type="checkbox" name="hours_done" value="1" <?php if($selectRequest['hours_done']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
</div>
+ <div class="reportGuiCheckboxTxtDiv" <?php if($objReportingInfo->isConnectionRefusedInfo()) echo 'style="color:#8a8a8a"' ?>>
+ <?php echo _('Hours done') ?>
+ </div>
</div>
- <div class="reportGuiFieldsDivRight reportGuiFieldsDivRightColor">
+ <div class="reportGuiFieldsDivRight reportGuiFieldsDivRightColor">
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="percent_complete_max" value="1" <?php if($selectRequest['percent_complete_max']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_done_max" value="1" <?php if($selectRequest['hours_done_max']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="percent_complete_min" value="1" <?php if($selectRequest['percent_complete_min']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_done_min" value="1" <?php if($selectRequest['hours_done_min']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="percent_complete_avg" value="1" <?php if($selectRequest['percent_complete_avg']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_done_avg" value="1" <?php if($selectRequest['hours_done_avg']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
- <input type="checkbox" name="percent_complete_sum" value="1" <?php if($selectRequest['percent_complete_sum']) echo 'checked="checked"'; ?> />
+ <input type="checkbox" name="hours_done_sum" value="1" <?php if($selectRequest['hours_done_sum']) echo 'checked="checked"'; if($objReportingInfo->isConnectionRefusedInfo()) echo 'disabled="disabled"'; ?> />
</div>
<div class="reportGuiCheckboxDivRight">
@@ -959,7 +958,6 @@
<option value="start_date" <?php if($orderBy === 'start_date') echo 'selected="selected"'; ?>><?php echo _('Start date')?></option>
<option value="end_date" <?php if($orderBy === 'end_date') echo 'selected="selected"'; ?>><?php echo _('End date')?></option>
<option value="hours" <?php if($orderBy === 'hours') echo 'selected="selected"'; ?>><?php echo _('Hours')?></option>
-
<option value="priority" <?php if($orderBy === 'priority') echo 'selected="selected"'; ?>><?php echo _('Priority')?></option>
<option value="percent_complete" <?php if($orderBy === 'percent_complete') echo 'selected="selected"'; ?>><?php echo _('Percent complete')?></option>
<option value="group_id" <?php if($orderBy === 'group_id') echo 'selected="selected"'; ?>><?php echo _('Group id')?></option>
@@ -1002,7 +1000,6 @@
<option value="start_date" <?php if($groupBy === 'start_date') echo 'selected="selected"'; ?>><?php echo _('Start date')?></option>
<option value="end_date" <?php if($groupBy === 'end_date') echo 'selected="selected"'; ?>><?php echo _('End date')?></option>
<option value="hours" <?php if($groupBy === 'hours') echo 'selected="selected"'; ?>><?php echo _('Hours')?></option>
-
<option value="priority" <?php if($groupBy === 'priority') echo 'selected="selected"'; ?>><?php echo _('Priority')?></option>
<option value="percent_complete" <?php if($groupBy === 'percent_complete') echo 'selected="selected"'; ?>><?php echo _('Percent complete')?></option>
<option value="group_id" <?php if($groupBy === 'group_id') echo 'selected="selected"'; ?>><?php echo _('Group id')?></option>
More information about the evolvis-commits
mailing list