From e0719abd21228e94985855de47aabce2537e97de Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 23 May 2023 15:33:29 +0800 Subject: [PATCH] * Adjust comments and return judgments. --- module/task/control.php | 16 ++++++++-------- module/task/model.php | 10 ++++++---- module/task/zen.php | 6 ++++-- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/module/task/control.php b/module/task/control.php index cce29b46bd..926172f068 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -669,8 +669,11 @@ class task extends control * @access public * @return void */ - public function finish($taskID, $extra = '') + public function finish(int $taskID, string $extra = '') { + $extra = str_replace(array(',', ' '), array('&', ''), $extra); + parse_str($extra, $output); + $this->taskZen->commonAction($taskID); $task = $this->task->getById($taskID); $currentTeam = empty($task->team) ? $this->task->getTeamByAccount($task->team) : ''; @@ -681,25 +684,22 @@ class task extends control if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); /* Get and record esitimate for task. */ - $effort = $this->buildEffortForStart($task, $taskData); + $effort = $this->buildEffortForFinish($task, $taskData); if($this->post->comment) $effort->work = $this->post->comment; if($effort->consumed > 0) $effortID = $this->task->addTaskEffort($effort); if($task->mode == 'linear' && !empty($effortID)) $this->task->updateEstimateOrder($effortID, $currentTeam->order); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - $changes = $this->task->finish($oldTask, $taskData, $extra); + $changes = $this->task->finish($task, $taskData); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - $extra = str_replace(array(',', ' '), array('&', ''), $extra); - parse_str($extra, $output); - /* Update other data related to the task after it is started. */ - $result = $this->task->afterStart($task, $taskData, $changes, $this->post->comment, $output); + $result = $this->task->afterStart($task, $taskData, $changes, 0, $this->post->comment, $output); if(is_array($result)) $this->send($result); /* Get the information returned after a task is started. */ $from = zget($output, 'from'); - $response = $this->taskZen->responseAfterChangeStatus($taskData, $from); + $response = $this->taskZen->responseAfterChangeStatus($task, $from); return $this->send($response); } diff --git a/module/task/model.php b/module/task/model.php index 5096d6bcc4..4bda9d4ca4 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -1544,13 +1544,15 @@ class taskModel extends model } /** + * 完成任务。 * Finish a task. * - * @param int $taskID + * @param object $oldTask + * @param object $task * @access public - * @return void + * @return bool|array */ - public function finish(object $oldTask, object $task) + public function finish(object $oldTask, object $task): bool|array { $currentTeam = !empty($oldTask->team) ? $this->getTeamByAccount($oldTask->team) : array(); if($currentTeam) $task = $this->computeMultipleHours($oldTask, $task); @@ -1559,7 +1561,7 @@ class taskModel extends model ->where('id')->eq((int)$oldTask->id) ->exec(); - if(!dao::isError()) return false; + if(dao::isError()) return false; return common::createChanges($oldTask, $task); } diff --git a/module/task/zen.php b/module/task/zen.php index 2a60015443..df018448f4 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -1134,7 +1134,7 @@ class taskZen extends task $response['message'] = $this->lang->saveSuccess; $response['closeModal'] = true; - $execution = $this->execution->getByID($task->execution); + $execution = $this->execution->getByID((int)$task->execution); $kanbanData = $this->getKanbanData($execution, $regionID); $inLiteKanban = $this->config->vision == 'lite' && $this->app->tab == 'project' && $this->session->kanbanview == 'kanban'; @@ -1373,8 +1373,10 @@ class taskZen extends task ->setDefault('assignedTo', $oldTask->openedBy) ->get(); - if(empty($task->currentConsumed)) dao::$errors['currentConsumed'][] = $this->lang->task->error->consumedEmpty; + if(!$this->post->currentConsumed) dao::$errors['currentConsumed'][] = $this->lang->task->error->consumedEmpty; if($task->realStarted > $task->finishedDate) dao::$errors['realStarted'][] = $this->lang->task->error->finishedDateSmall; + + $task->consumed += (float)$this->post->currentConsumed; return $task; }