* adjust for delete estimate.

This commit is contained in:
wangyidong
2022-09-05 20:21:18 +08:00
parent 303cede555
commit 6972110d54
3 changed files with 32 additions and 16 deletions
+24 -9
View File
@@ -358,18 +358,33 @@ class reportModel extends model
$taskGroups[$task->assignedTo][$task->id] = $task;
}
$multiTaskTeams = $this->dao->select('*')->from(TABLE_TASKTEAM)->where('task')->in(array_keys($allTasks))
$stmt = $this->dao->select('*')->from(TABLE_TASKTEAM)->where('task')->in(array_keys($allTasks))
->beginIF($dept)->andWhere('account')->in(array_keys($deptUsers))->fi()
->fetchGroup('account', 'task');
foreach($multiTaskTeams as $assignedTo => $multiTasks)
->query();
$multiTaskTeams = array();
while($taskTeam = $stmt->fetch())
{
foreach($multiTasks as $task)
$account = $taskTeam->account;
if(!isset($multiTaskTeams[$account][$taskTeam->task]))
{
$userTask = clone $allTasks[$task->root];
$userTask->estimate = $task->estimate;
$userTask->consumed = $task->consumed;
$userTask->left = $task->left;
$taskGroups[$assignedTo][$task->root] = $userTask;
$multiTaskTeams[$account][$taskTeam->task] = $taskTeam;
}
else
{
$multiTaskTeams[$account][$taskTeam->task]->estimate += $taskTeam->estimate;
$multiTaskTeams[$account][$taskTeam->task]->consumed += $taskTeam->consumed;
$multiTaskTeams[$account][$taskTeam->task]->left = $taskTeam->left;
}
}
foreach($multiTaskTeams as $assignedTo => $taskTeams)
{
foreach($taskTeams as $taskTeam)
{
$userTask = clone $allTasks[$taskTeam->task];
$userTask->estimate = $taskTeam->estimate;
$userTask->consumed = $taskTeam->consumed;
$userTask->left = $taskTeam->left;
$taskGroups[$assignedTo][$taskTeam->task] = $userTask;
}
}
+4 -3
View File
@@ -1228,7 +1228,8 @@ class task extends control
public function deleteEstimate($estimateID, $confirm = 'no')
{
$estimate = $this->task->getEstimateById($estimateID);
$task = $this->task->getById($estimate->task);
$taskID = $estimate->objectID;
$task = $this->task->getById($taskID);
if($confirm == 'no' and $task->consumed - $estimate->consumed != 0)
{
return print(js::confirm($this->lang->task->confirmDeleteEstimate, $this->createLink('task', 'deleteEstimate', "estimateID=$estimateID&confirm=yes")));
@@ -1242,12 +1243,12 @@ class task extends control
$changes = $this->task->deleteEstimate($estimateID);
if(dao::isError()) return print(js::error(dao::getError()));
$actionID = $this->loadModel('action')->create('task', $estimate->task, 'DeleteEstimate');
$actionID = $this->loadModel('action')->create('task', $taskID, 'DeleteEstimate');
$this->action->logHistory($actionID, $changes);
if($task->consumed - $estimate->consumed == 0)
{
$this->loadModel('action')->create('task', $estimate->task, 'Adjusttasktowait');
$this->action->create('task', $taskID, 'Adjusttasktowait');
return print(js::reload('parent.parent'));
}
+4 -4
View File
@@ -2873,7 +2873,7 @@ class taskModel extends model
if($estimate->consumed < 0) return dao::$errors[] = sprintf($this->lang->error->ge, $this->lang->task->record, '0');
if($estimate->left < 0) return dao::$errors[] = sprintf($this->lang->error->ge, $this->lang->task->left, '0');
$task = $this->getById($oldEstimate->task);
$task = $this->getById($oldEstimate->objectID);
$this->dao->update(TABLE_EFFORT)->data($estimate)
->autoCheck()
->where('id')->eq((int)$estimateID)
@@ -2946,7 +2946,7 @@ class taskModel extends model
public function deleteEstimate($estimateID)
{
$estimate = $this->getEstimateById($estimateID);
$task = $this->getById($estimate->task);
$task = $this->getById($estimate->objectID);
$now = helper::now();
$consumed = $task->consumed - $estimate->consumed;
@@ -2954,7 +2954,7 @@ class taskModel extends model
if($estimate->isLast)
{
$lastTwoEstimates = $this->dao->select('*')->from(TABLE_EFFORT)
->where('objectID')->eq($estimate->task)
->where('objectID')->eq($estimate->objectID)
->andWhere('objectType')->eq('task')
->orderBy('date desc,id desc')->limit(2)->fetchAll();
$lastTwoEstimate = isset($lastTwoEstimates[1]) ? $lastTwoEstimates[1] : '';
@@ -3031,7 +3031,7 @@ class taskModel extends model
$this->dao->update(TABLE_EFFORT)->set('deleted')->eq('1')->where('id')->eq($estimateID)->exec();
if(!empty($task->team)) $data = $this->computeHours4Multiple($task, $data);
$this->dao->update(TABLE_TASK)->data($data) ->where('id')->eq($estimate->task)->exec();
$this->dao->update(TABLE_TASK)->data($data) ->where('id')->eq($estimate->objectID)->exec();
if($task->parent > 0) $this->updateParentStatus($task->id);
if($task->story) $this->loadModel('story')->setStage($task->story);