Merge branch 'sprint/170_liumengyi_43909' into 'sprint/170'
Finish task #43909 See merge request easycorp/zentaopms!382
This commit is contained in:
+24
-13
@@ -287,37 +287,43 @@ 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')
|
||||
->andWhere("t1.account NOT IN(SELECT `assignedTo` FROM " . TABLE_TASK . " WHERE `execution` = t1.`root` AND `status` NOT IN('cancel, closed, done, pause') AND assignedTo != '' GROUP BY assignedTo)")
|
||||
->fetchGroup('account', 'name');
|
||||
|
||||
$workload = array();
|
||||
$workload = array();
|
||||
if(!empty($members))
|
||||
{
|
||||
foreach($members as $member => $executions)
|
||||
{
|
||||
$project = array();
|
||||
if(!empty($executions))
|
||||
{
|
||||
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;
|
||||
$project[$execution->projectname]['projectID'] = $execution->project;
|
||||
$project[$execution->projectname]['execution'][$name]['executionID'] = $execution->root;
|
||||
$project[$execution->projectname]['execution'][$name]['count'] = 0;
|
||||
$project[$execution->projectname]['execution'][$name]['manhour'] = 0;
|
||||
|
||||
$workload[$member]['total']['count'] = 0;
|
||||
$workload[$member]['total']['manhour'] = 0;
|
||||
}
|
||||
}
|
||||
$workload[$member]['task']['project'] = $project;
|
||||
}
|
||||
}
|
||||
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)
|
||||
@@ -371,17 +377,22 @@ class reportModel extends model
|
||||
{
|
||||
if($user)
|
||||
{
|
||||
$project = array();
|
||||
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]['total']['count'] = isset($workload[$user]['total']['count']) ? $workload[$user]['total']['count'] + 1 : 1;
|
||||
|
||||
$project[$task->projectname]['projectID'] = isset($project[$task->projectname]['projectID']) ? $project[$task->projectname]['projectID'] : $task->project;
|
||||
$project[$task->projectname]['execution'][$task->executionName]['executionID'] = isset($project[$task->projectname]['execution'][$task->executionName]['executionID']) ? $project[$task->projectname]['execution'][$task->executionName]['executionID'] : $task->execution;
|
||||
$project[$task->projectname]['execution'][$task->executionName]['count'] = isset($project[$task->projectname]['execution'][$task->executionName]['count']) ? $project[$task->projectname]['execution'][$task->executionName]['count'] + 1 : 1;
|
||||
$project[$task->projectname]['execution'][$task->executionName]['manhour'] = isset($project[$task->projectname]['execution'][$task->executionName]['manhour']) ? $project[$task->projectname]['execution'][$task->executionName]['manhour'] + $task->left : $task->left;
|
||||
|
||||
$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;
|
||||
}
|
||||
$workload[$user]['task']['project'] = $project;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($workload['closed']);
|
||||
return $workload;
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
<thead>
|
||||
<tr class='colhead text-center'>
|
||||
<th class="c-user"><?php echo $lang->report->user;?></th>
|
||||
<th class="c-project"><?php echo $lang->report->project ;?>
|
||||
<th><?php echo $lang->report->execution;?></th>
|
||||
<th class="c-count"><?php echo $lang->report->task;?></th>
|
||||
<th class="c-hours"><?php echo $lang->report->remain;?></th>
|
||||
@@ -83,24 +84,31 @@
|
||||
<?php foreach($workload as $account => $load):?>
|
||||
<?php if(!isset($users[$account])) continue;?>
|
||||
<tr class="text-center">
|
||||
<td rowspan="<?php echo count($load['task']);?>"><?php echo $users[$account];?></td>
|
||||
<?php $id = 1;?>
|
||||
<?php foreach($load['task'] as $execution => $info):?>
|
||||
<?php $class = $color ? 'rowcolor' : '';?>
|
||||
<?php if($id != 1) echo '<tr class="text-center">';?>
|
||||
<td title='<?php echo $execution?>' class="<?php echo $class;?> text-left"><?php echo html::a($this->createLink('execution', 'view', "executionID={$info['executionID']}"), $execution);?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $info['count'];?></td>
|
||||
<td class="<?php echo $class;?>"><?php echo $info['manhour'];?></td>
|
||||
<?php if($id == 1):?>
|
||||
<td rowspan="<?php echo count($load['task']);?>"><?php echo $load['total']['count'];?></td>
|
||||
<td rowspan="<?php echo count($load['task']);?>"><?php echo $load['total']['manhour'];?></td>
|
||||
<td rowspan="<?php echo count($load['task']);?>"><?php echo round($load['total']['manhour'] / $allHour * 100, 2) . '%';?></td>
|
||||
<?php $idusername = 1; $countusername = 0;?>
|
||||
<?php foreach($load['task']['project'] as $project => $info) foreach($info['execution'] as $exec => $execinfo) $countusername ++;?>
|
||||
<td class="<?php echo $class;?>" rowspan="<?php echo $countusername;?>"><?php echo $users[$account];?></td>
|
||||
<?php foreach($load['task']['project'] as $project => $info):?>
|
||||
<?php $idprojectname = 1; $countprojectname = 0;?>
|
||||
<?php foreach($info['execution'] as $exec) $countprojectname ++ ;?>
|
||||
<?php foreach($info['execution'] as $exec => $execinfo):?>
|
||||
<?php if($idprojectname != 1 || $idusername != 1) echo "<tr>";?>
|
||||
<?php if($idprojectname == 1):?>
|
||||
<td class="text-center" rowspan="<?php echo $countprojectname;?>"><?php echo html::a($this->createLink('project', 'view', "projectID={$info['projectID']}"), $project);?></td>
|
||||
<?php endif;?>
|
||||
<?php if($id != 1) echo '</tr>'; $id ++;?>
|
||||
<td class="text-center"><?php echo html::a($this->createLink('execution', 'view', "executionID={$execinfo['executionID']}"), $exec);?></td>
|
||||
<td class="text-center"><?php echo $execinfo['count'];?></td>
|
||||
<td class="text-center"><?php echo $execinfo['manhour'];?></td>
|
||||
<?php if($idusername == 1):?>
|
||||
<td rowspan="<?php echo $countusername;?>"><?php echo $load['total']['count'];?></td>
|
||||
<td rowspan="<?php echo $countusername;?>"><?php echo $load['total']['manhour'];?></td>
|
||||
<td rowspan="<?php echo $countusername;?>"><?php echo round($load['total']['manhour'] / $allHour * 100, 2) . '%';?></td>
|
||||
<?php endif;?>
|
||||
<?php if($idprojectname != 1 || $idusername != 1) echo "</tr>"; $idprojectname ++; $idusername ++;?>
|
||||
<?php $color = !$color;?>
|
||||
<?php endforeach;?>
|
||||
<?php endforeach;?>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user