* Refactor getProjectsConsumed method.
This commit is contained in:
@@ -426,26 +426,26 @@ class projectModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取给定项目的总计消耗工时。
|
||||
* Get projects consumed info.
|
||||
*
|
||||
* @param array $projectID
|
||||
* @param string $time
|
||||
* @param array $projectID
|
||||
* @param string $time
|
||||
* @access public
|
||||
* @return array
|
||||
* @return object[]
|
||||
*/
|
||||
public function getProjectsConsumed($projectIdList, $time = '')
|
||||
public function getProjectsConsumed(array $projectIdList, string $time = ''): array
|
||||
{
|
||||
$projects = array();
|
||||
|
||||
$totalConsumeds = $this->dao->select('t2.project,ROUND(SUM(t1.consumed), 1) AS totalConsumed')->from(TABLE_EFFORT)->alias('t1')
|
||||
->leftJoin(TABLE_TASK)->alias('t2')->on("t1.objectID=t2.id and t1.objectType = 'task'")
|
||||
->where('t2.project')->in($projectIdList)
|
||||
->beginIF($time == 'THIS_YEAR')->andWhere('LEFT(t1.`date`, 4)')->eq(date('Y'))->fi()
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->andWhere('t2.parent')->lt(1)
|
||||
->beginIF($time == 'THIS_YEAR')->andWhere('LEFT(t1.`date`, 4)')->eq(date('Y'))->fi()
|
||||
->groupBy('t2.project')
|
||||
->fetchAll('project');
|
||||
|
||||
$projects = array();
|
||||
foreach($projectIdList as $projectID)
|
||||
{
|
||||
$project = new stdClass();
|
||||
|
||||
@@ -3,23 +3,29 @@
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
su('admin');
|
||||
|
||||
zdTable('project')->config('execution')->gen(10);
|
||||
zdTable('task')->config('task')->gen(30);
|
||||
zdTable('effort')->config('effort')->gen(30);
|
||||
|
||||
/**
|
||||
|
||||
title=测试 projectModel::getProjectsConsumed;
|
||||
timeout=0
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
批量获取各个项目的总计消耗工时 >> 0
|
||||
批量获取各个项目的总计消耗工时 >> 0
|
||||
批量获取各个项目的总计消耗工时 >> 0
|
||||
|
||||
*/
|
||||
|
||||
global $tester;
|
||||
$tester->loadModel('project');
|
||||
|
||||
$projectIdList = array(11, 12, 13);
|
||||
$projectIdList[0] = array(1, 2);
|
||||
$projectIdList[1] = array(11, 60);
|
||||
$projectIdList[2] = array(61, 100);
|
||||
|
||||
r($tester->project->getProjectsConsumed($projectIdList)) && p('11:totalConsumed') && e('0'); // 批量获取各个项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList)) && p('12:totalConsumed') && e('0'); // 批量获取各个项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList)) && p('13:totalConsumed') && e('0'); // 批量获取各个项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList[0])) && p('1:totalConsumed') && e('0'); // 批量获取不存在项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList[1])) && p('11:totalConsumed') && e('55'); // 批量获取有工时记录的项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList[2])) && p('61:totalConsumed') && e('0'); // 批量获取没有工时记录项目的总计消耗工时
|
||||
|
||||
r($tester->project->getProjectsConsumed($projectIdList[0], 'THIS_YEAR')) && p('1:totalConsumed') && e('0'); // 批量获取今年不存在项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList[1], 'THIS_YEAR')) && p('11:totalConsumed') && e('55'); // 批量获取今年有工时记录的项目的总计消耗工时
|
||||
r($tester->project->getProjectsConsumed($projectIdList[2], 'THIS_YEAR')) && p('61:totalConsumed') && e('0'); // 批量获取今年没有工时记录项目的总计消耗工时
|
||||
|
||||
Reference in New Issue
Block a user