diff --git a/module/task/test/tao/updateteambyeffort.php b/module/task/test/tao/updateteambyeffort.php new file mode 100755 index 0000000000..7e9159c056 --- /dev/null +++ b/module/task/test/tao/updateteambyeffort.php @@ -0,0 +1,85 @@ +#!/usr/bin/env php +id->range('1-7'); +$task->execution->range('1-7'); +$task->name->prefix("任务")->range('1-7'); +$task->left->range('1-7'); +$task->mode->range(" , multi, , , , ,"); +$task->estStarted->range('2022\-01\-01'); +$task->assignedTo->prefix("user")->range('1-7'); +$task->status->range("wait,wait,doing,done,pause,cancel,closed"); +$task->gen(4); + +$taskteam = zdTable('taskteam'); +$taskteam->id->range('1-20'); +$taskteam->task->range('1-4'); +$taskteam->account->prefix("user")->range('1-5'); +$taskteam->estimate->range('5'); +$taskteam->consumed->range('0,1'); +$taskteam->left->range('5'); +$taskteam->status->range("wait"); +$taskteam->gen(20); + +$effort = zdTable('effort'); +$effort->id->range('1-20'); +$effort->objectID->range('1-4'); +$effort->objectType->range('task'); +$effort->account->prefix("user")->range('1-5'); +$effort->consumed->range('0,1'); +$effort->left->range('5'); +$effort->date->range('2022\-01\-01'); +$effort->work->prefix('工作内容')->range('1-10'); +$effort->gen(10); + +$user = zdTable('user'); +$user->gen(20); + +$finishTaskEffort = new stdclass(); +$finishTaskEffort->consumed = 5; +$finishTaskEffort->left = 0; +$finishTaskEffort->work = "完成了任务"; +$finishTaskEffort->date = "2022-01-01"; + +$startTaskEffort = new stdclass(); +$startTaskEffort->consumed = 5; +$startTaskEffort->left = 5; +$startTaskEffort->work = "开始了任务"; +$startTaskEffort->date = "2022-01-01"; + +$normalTaskEffort = new stdclass(); +$normalTaskEffort->consumed = 5; +$normalTaskEffort->left = 5; +$normalTaskEffort->work = "记录了日志"; +$normalTaskEffort->date = "2022-01-01"; + +$task = new taskTest(); +r($task->updateTeamByEffortTest(1, $finishTaskEffort, 1)) && p('0:consumed') && e('5.00'); // 通过ID为1的日志更新任务团队工时 +r($task->updateTeamByEffortTest(2, $finishTaskEffort, 1)) && p('0:consumed') && e('10.00'); // 通过ID为2的日志更新任务团队工时 +r($task->updateTeamByEffortTest(3, $startTaskEffort, 3)) && p('0:consumed') && e('0.00'); // 通过ID为3的日志更新任务团队工时 +r($task->updateTeamByEffortTest(3, $startTaskEffort, 4)) && p('0:consumed') && e('1.00'); // 通过ID为3的日志更新任务团队工时 +r($task->updateTeamByEffortTest(4, $normalTaskEffort, 3)) && p('0:consumed') && e('0.00'); // 通过ID为4的日志更新任务团队工时 +r($task->updateTeamByEffortTest(4, $normalTaskEffort, 4)) && p('0:consumed') && e('1.00'); // 通过ID为4的日志更新任务团队工时 diff --git a/module/task/test/task.class.php b/module/task/test/task.class.php index 71a9647ce5..cc654d0c69 100755 --- a/module/task/test/task.class.php +++ b/module/task/test/task.class.php @@ -721,6 +721,30 @@ class taskTest } } + /** + * Test update team by effort. + * + * @param int $estimateID + * @param object $record + * @param int $taskID + * @access public + * @return array + */ + public function updateTeamByEffortTest(int $effortID, object $record, int $taskID): array + { + $task = $this->objectModel->getByID($taskID); + $currentTeam = $this->objectModel->getTeamByAccount($task->team); + $this->objectModel->updateTeamByEffort($effortID, $record, $currentTeam, $task); + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $this->objectModel->dao->select('*')->from(TABLE_TASKTEAM)->where('task')->eq($taskID)->fetchAll(); + } + } + /** * Test delete estimate. *