diff --git a/module/report/control.php b/module/report/control.php index f95c6c57a3..96b5e7d413 100644 --- a/module/report/control.php +++ b/module/report/control.php @@ -28,12 +28,18 @@ class report extends control * @access public * @return void */ - public function projectDeviation() + public function projectDeviation($begin = 0, $end = 0) { + $begin = $begin ? date('Y-m-d', strtotime($begin)) : date('Y-m-d', strtotime('last month', strtotime(date('Y-m',time()) . '-01 00:00:01'))); + $end = $end ? date('Y-m-d', strtotime($end)) : date('Y-m-d', strtotime('now')); + $this->view->title = $this->lang->report->projectDeviation; $this->view->position[] = $this->lang->report->projectDeviation; - $this->view->projects = $this->report->getProjects(); - $this->view->submenu = 'project'; + + $this->view->projects = $this->report->getProjects($begin, $end); + $this->view->begin = $begin; + $this->view->end = $end; + $this->view->submenu = 'project'; $this->display(); } diff --git a/module/report/css/common.css b/module/report/css/common.css index b92e8ce365..3559b5a9d1 100644 --- a/module/report/css/common.css +++ b/module/report/css/common.css @@ -30,5 +30,4 @@ td .deviation{padding-left:20px; text-align:left;} .d0{color:#76B043;} .d20{color:#33A52E;} -#titlebar {display: none} #conditions{ padding: 10px; margin: 0 0 10px; border: 1px solid #ddd;} diff --git a/module/report/js/projectdeviation.js b/module/report/js/projectdeviation.js new file mode 100644 index 0000000000..3147afac24 --- /dev/null +++ b/module/report/js/projectdeviation.js @@ -0,0 +1,23 @@ +function changeDate(begin, end) +{ + if(begin.indexOf('-') != -1) + { + var beginarray = begin.split("-"); + var begin = ''; + for(i=0 ; i < beginarray.length ; i++) + { + begin = begin + beginarray[i]; + } + } + if(end.indexOf('-') != -1) + { + var endarray = end.split("-"); + var end = ''; + for(i=0 ; i < endarray.length ; i++) + { + end = end + endarray[i]; + } + } + link = createLink('report', 'projectdeviation', 'begin=' + begin + '&end=' + end); + location.href=link; +} diff --git a/module/report/model.php b/module/report/model.php index 53eca109f1..a615e8372f 100644 --- a/module/report/model.php +++ b/module/report/model.php @@ -67,12 +67,11 @@ class reportModel extends model * @access public * @return void */ - public function getProjects() + public function getProjects($begin = 0, $end = 0) { $projects = array(); - $tasks = $this->dao->select('t1.*') - ->from(TABLE_TASK)->alias('t1') + $tasks = $this->dao->select('t1.*')->from(TABLE_TASK)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2') ->on('t1.project = t2.id') ->where('t1.status')->ne('cancel') @@ -85,44 +84,13 @@ class reportModel extends model $projects[$task->project]->estimate = isset($projects[$task->project]->estimate) ? $projects[$task->project]->estimate + $task->estimate : $task->estimate; $projects[$task->project]->consumed = isset($projects[$task->project]->consumed) ? $projects[$task->project]->consumed + $task->consumed : $task->consumed; - $projects[$task->project]->tasks = isset($projects[$task->project]->tasks) ? $projects[$task->project]->tasks + 1 : 1; - if($task->type == 'devel') $projects[$task->project]->devConsumed = isset($projects[$task->project]->devConsumed) ? $projects[$task->project]->devConsumed + $task->consumed : $task->consumed; - if($task->type == 'test') $projects[$task->project]->testConsumed = isset($projects[$task->project]->testConsumed) ? $projects[$task->project]->testConsumed + $task->consumed : $task->consumed; } - $bugs = $this->dao->select('t1.project') - ->from(TABLE_BUG)->alias('t1') - ->leftJoin(TABLE_PROJECT)->alias('t2') - ->on('t1.project = t2.id') - ->where('t1.deleted')->eq(0) - ->andWhere('t2.deleted')->eq(0) + $projectList = $this->dao->select('id, name, status')->from(TABLE_PROJECT) + ->where('1=1') + ->beginIF($begin)->andWhere('begin')->ge($begin)->fi() + ->beginIF($end)->andWhere('end')->le($end)->fi() ->fetchAll(); - foreach($bugs as $bug) - { - if($bug->project) - { - if(!isset($projects[$bug->project]))$projects[$bug->project] = new stdclass(); - $projects[$bug->project]->bugs = isset($projects[$bug->project]->bugs) ? $projects[$bug->project]->bugs + 1 : 1; - } - } - - $stories = $this->dao->select('t1.project') - ->from(TABLE_PROJECTSTORY)->alias('t1') - ->leftJoin(TABLE_PROJECT)->alias('t2') - ->on('t1.project = t2.id') - ->leftJoin(TABLE_STORY)->alias('t3') - ->on('t1.story = t3.id') - ->where('t2.deleted')->eq(0) - ->andWhere('t3.deleted')->eq(0) - ->fetchAll(); - foreach($stories as $story) - { - if(!isset($projects[$story->project])) $projects[$story->project] = new stdclass(); - - $projects[$story->project]->stories = isset($projects[$story->project]->stories) ? $projects[$story->project]->stories + 1 : 1; - } - - $projectList = $this->dao->select('id, name, status')->from(TABLE_PROJECT)->fetchAll(); $projectPairs = array(); foreach($projectList as $project) { @@ -136,10 +104,6 @@ class reportModel extends model unset($projects[$id]); continue; } - if(!isset($project->stories)) $projects[$id]->stories = 0; - if(!isset($project->bugs)) $projects[$id]->bugs = 0; - if(!isset($project->devConsumed)) $projects[$id]->devConsumed = 0; - if(!isset($project->testConsumed)) $projects[$id]->testConsumed = 0; if(!isset($project->consumed)) $projects[$id]->consumed = 0; if(!isset($project->estimate)) $projects[$id]->estimate = 0; $projects[$id]->name = $projectPairs[$id]; diff --git a/module/report/view/projectdeviation.html.php b/module/report/view/projectdeviation.html.php index 816aad5ca7..6a03159c25 100644 --- a/module/report/view/projectdeviation.html.php +++ b/module/report/view/projectdeviation.html.php @@ -1,4 +1,5 @@ +
icons['report-file']);?> @@ -14,21 +15,20 @@
+
+
+ report->to;?> +
+
- - - - - - - - - - - + + + + + @@ -36,18 +36,6 @@ - - - - devConsumed = isset($project->devConsumed) ? $project->devConsumed : 0; - $project->testConsumed = isset($project->testConsumed) ? $project->testConsumed : 0; - $project->estimate = isset($project->estimate) ? $project->estimate : 0; - $project->consumed = isset($project->consumed) ? $project->consumed : 0; - ?> - - - consumed - $project->estimate;?>
report->id;?>report->project;?>report->task;?>report->stories;?>report->bugs;?>report->devConsumed;?>report->testConsumed;?>report->devTestRate;?>report->estimate;?>report->consumed;?>report->deviation;?>report->deviationRate;?>report->project;?>report->estimate;?>report->consumed;?>report->deviation;?>report->deviationRate;?>
createLink('project', 'view', "projectID=$id"), $project->name);?>tasks) ? $project->tasks : 0;?>stories) ? $project->stories : 0;?>bugs) ? $project->bugs : 0;?>devConsumed;?>testConsumed;?>devConsumed / (($project->testConsumed < 1) ? 1 : $project->testConsumed), 1);?> estimate;?> consumed;?>