diff --git a/module/report/model.php b/module/report/model.php index 8b01517ab1..b18647b2a2 100644 --- a/module/report/model.php +++ b/module/report/model.php @@ -287,8 +287,9 @@ class reportModel extends model if($assign == 'noassign') { - $members = $this->dao->select('t1.account,t2.name,t1.root')->from(TABLE_TEAM)->alias('t1') + $members = $this->dao->select('t1.account,t2.name,t1.root,t3.id as project,t3.name as projectname')->from(TABLE_TEAM)->alias('t1') ->leftJoin(TABLE_EXECUTION)->alias('t2')->on('t2.id = t1.root') + ->leftJoin(TABLE_PROJECT)->alias('t3')->on('t3.id = t2.project') ->where('t2.status')->notin('cancel, closed, done, suspended') ->beginIF($dept)->andWhere('t1.account')->in(array_keys($deptUsers))->fi() ->andWhere('t1.type')->eq('execution') @@ -304,11 +305,14 @@ class reportModel extends model { foreach($executions as $name => $execution) { - $workload[$member]['task'][$name]['count'] = 0; - $workload[$member]['task'][$name]['manhour'] = 0; - $workload[$member]['task'][$name]['executionID'] = $execution->root; - $workload[$member]['total']['count'] = 0; - $workload[$member]['total']['manhour'] = 0; + $workload[$member]['task']['project'][$execution->projectname]['project'] = $execution->projectname; + $workload[$member]['task']['project'][$execution->projectname]['projectID'] = $execution->project; + $workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['name'] = $name; + $workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['executionID'] = $execution->root; + $workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['count'] = 0; + $workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['manhour'] = 0; + $workload[$member]['total']['count'] = 0; + $workload[$member]['total']['manhour'] = 0; } } } @@ -316,8 +320,9 @@ class reportModel extends model return $workload; } - $stmt = $this->dao->select('t1.*, t2.name as executionName')->from(TABLE_TASK)->alias('t1') + $stmt = $this->dao->select('t1.*, t2.name as executionName,t3.name as projectname')->from(TABLE_TASK)->alias('t1') ->leftJoin(TABLE_EXECUTION)->alias('t2')->on('t1.execution = t2.id') + ->leftJoin(TABLE_PROJECT)->alias('t3')->on('t3.id = t2.project') ->where('t1.deleted')->eq(0) ->andWhere('t1.status')->in('wait,pause,doing') ->andWhere('t2.deleted')->eq(0) @@ -374,9 +379,12 @@ class reportModel extends model foreach($userTasks as $task) { if(isset($parents[$task->id])) continue; - $workload[$user]['task'][$task->executionName]['count'] = isset($workload[$user]['task'][$task->executionName]['count']) ? $workload[$user]['task'][$task->executionName]['count'] + 1 : 1; - $workload[$user]['task'][$task->executionName]['manhour'] = isset($workload[$user]['task'][$task->executionName]['manhour']) ? $workload[$user]['task'][$task->executionName]['manhour'] + $task->left : $task->left; - $workload[$user]['task'][$task->executionName]['executionID'] = $task->execution; + $workload[$user]['task']['project'][$task->projectname]['projectID'] = isset($workload[$user]['task']['project'][$task->projectname]['projectID']) ? $workload[$user]['task']['project'][$task->projectname]['projectID'] : $task->project; + $workload[$user]['task']['project'][$task->projectname]['project'] = isset($workload[$user]['task'][$task->projectname]['project']) ? $workload[$user]['task'][$task->projectname]['project'] : $task->projectname; + $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['count'] = isset($workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['count']) ? $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['count'] + 1 : 1; + $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['manhour'] = isset($workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['manhour']) ? $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['manhour'] + $task->left : $task->left; + $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['executionID'] = $task->execution; + $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['name'] = $task->executionName; $workload[$user]['total']['count'] = isset($workload[$user]['total']['count']) ? $workload[$user]['total']['count'] + 1 : 1; $workload[$user]['total']['manhour'] = isset($workload[$user]['total']['manhour']) ? $workload[$user]['total']['manhour'] + $task->left : $task->left; } diff --git a/module/report/view/workload.html.php b/module/report/view/workload.html.php index df2cffe6ce..9b0d12a191 100644 --- a/module/report/view/workload.html.php +++ b/module/report/view/workload.html.php @@ -70,6 +70,7 @@ report->user;?> + report->project ;?> report->execution;?> report->task;?> report->remain;?> @@ -79,28 +80,42 @@ - + $load):?> - - - - - $info):?> - - ';?> - createLink('execution', 'view', "executionID={$info['executionID']}"), $execution);?> - - - - - - - - '; $id ++;?> - - - - + + + + + $info):?> + $execinfo):?> + + + + + $info):?> + + + + + $execinfo):?> + ";?> + + createLink('project', 'view', "projectID={$info['projectID']}"), $info['project']);?> + + createLink('execution', 'view', "executionID={$execinfo['executionID']}"), $execinfo['name']);?> + + + + + + + + "; $idprojectname ++; $idusername ++;?> + + + + +