Files
EasySoft-ZenTaoPMS/test/class/program.class.php
2022-03-31 11:20:32 +08:00

563 lines
13 KiB
PHP

<?php
class programTest
{
/**
* __construct
*
* @param mixed $user
* @access public
* @return void
*/
public function __construct()
{
global $tester;
su('admin');
$this->program = $tester->loadModel('program');
}
/**
* Test create program.
*
* @param array $data
* @access public
* @return object
*/
public function create($data)
{
$_POST = $data;
$programID = $this->program->create();
if(dao::isError()) return array('message' => dao::getError());
$program = $this->program->getById($programID);
return $program;
}
/**
* createStakeholder
*
* @param int mixed $programID
* @access public
* @return void
*/
public function createStakeholder($programID)
{
$_POST['accounts'] = array('dev1', 'dev2');
$stakeHolder = $this->program->createStakeholder($programID);
return $this->program->getStakeholdersByPrograms($programID);
}
/**
* getBudgetLeft
*
* @param int mixed $programID
* @access public
* @return void
*/
public function getBudgetLeft($programID)
{
$program = $this->program->getById(1);
return $this->program->getBudgetLeft($program);
}
/**
* getBudgetUnitList
*
* @access public
* @return void
*/
public function getBudgetUnitList()
{
global $app;
$app->loadConfig('project');
$app->loadLang('project');
return $this->program->getBudgetUnitList();
}
/**
* getById
*
* @param iont mixed $programID
* @access public
* @return void
*/
public function getById($programID)
{
if(empty($this->program->getById($programID)))
{
return array('code' => 'fail', 'message' => 'Not Found');
}
else
{
return $this->program->getById($programID);
}
}
/**
* getChildren
*
* @param int mixed $programID
* @access public
* @return void
*/
public function getChildren($programID)
{
$programInfo = $this->program->getChildren($programID);
if(empty($programInfo))
{
return array('code' => 'fail' , 'message' => 'Not Found');
}
else
{
return $programInfo;
}
}
/**
* getInvolvedPrograms
*
* @param string mixed $account
* @access public
* @return void
*/
public function getInvolvedPrograms($account)
{
return $this->program->getInvolvedPrograms($account);
}
/**
* Test get pairs by list.
*
* @param string|array $programIDList
* @access public
* @return void
*/
public function getPairsByList($programIDList = '')
{
if(empty($this->program->getPairsByList($programIDList)))
{
return array('code' => '404', 'message' => 'Not Found');
}
else
{
return $this->program->getPairsByList($programIDList);
}
}
/**
* Test get list.
*
* @param mixed $status
* @access public
* @return void
*/
public function getList($status = 'all', $orderBy = 'id_asc', $pager = NULL)
{
$this->program->cookie->showClosed = 'ture';
$programs = $this->program->getList($status, $orderBy, $pager);
if(dao::isError()) return array('message' => dao::getError());
return $programs;
}
/**
* getParentPairs
*
* @access public
* @return void
*/
public function getParentPairs()
{
return $this->program->getParentPairs();
}
/**
* getParentPM
*
* @param array mixed $programIdList
* @access public
* @return void
*/
public function getParentPM($programIdList)
{
return $this->program->getParentPM($programIdList);
}
/**
* getProductPairsByID
*
* @param int $programID
* @access public
* @return void
*/
public function getProductPairsByID($programID = 0)
{
$program = $this->program->getByID($programID);
if(empty($program)) return array('message' => 'Not Found');
return $this->program->getProductPairs($programID, 'assign', 'all');
}
/**
* getProductPairsByMod
*
* @param string $mode
* @access public
* @return void
*/
public function getProductPairsByMod($mode = 'assign')
{
return $this->program->getProductPairs(1, $mode, 'noclosed');
}
/**
* getProductPairsByStatus
*
* @param string $status
* @access public
* @return void
*/
public function getProductPairsByStatus($status = 'all')
{
return $this->program->getProductPairs(1, 'assign', $status);
}
/**
* getProgressList
*
* @access public
* @return void
*/
public function getProgressList()
{
return $this->program->getProgressList();
}
/**
* getStatsByProgramID
*
* @param int $programID
* @access public
* @return void
*/
public function getStatsByProgramID($programID = 0)
{
return count($this->program->getProjectStats($programID));
}
/**
* getStatsByStatus
*
* @param string $browseType
* @access public
* @return void
*/
public function getStatsByStatus($browseType = 'all')
{
$projects = $this->program->getProjectStats('0', $browseType);
if(!$projects) return 0;
foreach($projects as $project)
{
if($project->status != $browseType and $browseType != 'all' and $browseType != 'undone') return 0;
if($browseType == 'undone' and ($project->status != ('wait' or 'doing'))) return 0;
}
return count($projects);
}
/**
* getStatsByOrder
*
* @param string $orderBy
* @access public
* @return void
*/
public function getStatsByOrder($orderBy = 'id_desc')
{
$projects = $this->program->getProjectStats('0', 'all', '0', $orderBy);
return checkOrder($projects, $orderBy);
}
/**
* getStatsAddProgramTitle
*
* @param int $programTitle
* @access public
* @return void
*/
public function getStatsAddProgramTitle($programTitle = 0)
{
return $this->program->getProjectStats('0', 'all', '0', 'id_desc', '', $programTitle);
}
/**
* getStatsByInvolved
*
* @param int $involved
* @param string $count
* @access public
* @return void
*/
public function getStatsByInvolved($involved = 0, $count = '')
{
$projects = $this->program->getProjectStats('0', 'all', '0', 'id_desc', '', '0', $involved);
if($count == 'count') return count($projects);
return $projects;
}
/**
* getByPrograms
*
* @param int $programIdList
* @access public
* @return void
*/
public function getByPrograms($programIdList = 0)
{
$stakeHolders = $this->program->getStakeholdersByPrograms($programIdList);
return $stakeHolders;
}
/**
* getByOrder
*
* @param string $orderBy
* @access public
* @return void
*/
public function getByOrder($orderBy = 'id_desc')
{
$stakeholders = $this->program->getStakeholders(2, $orderBy);
return checkOrder($stakeholders, $orderBy);
}
/**
* getTopPairs
*
* @param string $count
* @access public
* @return void
*/
public function getTopPairs($count = '')
{
if($count == 'count') return count($this->program->getTopPairs());
return $this->program->getTopPairs();
}
/**
* getUnfinished
*
* @param mixed $programID
* @access public
* @return void
*/
public function getUnfinished($programID)
{
$program = $this->program->getById($programID);
return $this->program->hasUnfinished($program);
}
/**
* getKanbanGroup
*
* @param string $type
* @access public
* @return void
*/
public function getKanbanGroup($type = '')
{
$program = $this->program->getKanbanGroup();
return $program;
}
/**
* getListByProgramID
*
* @param int $programID
* @access public
* @return void
*/
public function getListByProgramID($programID = 0)
{
return count($this->program->getProjectList($programID));
}
/**
* getListByStatusNo
*
* @param string $browseType
* @access public
* @return void
*/
public function getListByStatusNo($browseType = 'all')
{
$projects = $this->program->getProjectList('0', $browseType);
if(!$projects) return 0;
foreach($projects as $project)
{
if($project->status != $browseType and $browseType != 'all' and $browseType != 'undone') return 0;
if($browseType == 'undone' and ($project->status != ('wait' or 'doing'))) return 0;
}
return count($projects);
}
/**
* getListByOrderId
*
* @param string $orderBy
* @access public
* @return void
*/
public function getListByOrderId($orderBy = 'id_desc')
{
$projects = $this->program->getProjectList('0', 'all', '0', $orderBy);
return checkOrder($projects, $orderBy);
}
/**
* getListAddProgramTitle
*
* @param int $programTitle
* @access public
* @return void
*/
public function getListAddProgramTitle($programTitle = 0)
{
return $this->program->getProjectList('0', 'all', '0', 'id_desc', '', $programTitle);
}
/**
* getListByInvolved
*
* @param int $involved
* @param string $count
* @access public
* @return void
*/
public function getListByInvolved($involved = 0, $count = '')
{
$projects = $this->program->getProjectList('0', 'all', '0', 'id_desc', '', '0', $involved);
if($count == 'count') return count($projects);
return $projects;
}
/**
* setTreePath
*
* @param mixed $programID
* @access public
* @return void
*/
public function setTreePath($programID)
{
$programPath = $this->program->setTreePath($programID);
if($programPath)
{
return $this->program->getById($programID);
}
else
{
return 0;
}
}
/**
* update
*
* @param mixed $proguamID
* @param mixed $data
* @access public
* @return void
*/
public function update($programID, $data)
{
global $app;
$_POST = $data;
$result = $this->program->update(10);
if(dao::isError()) return array('message' => dao::getError());
$app->dbh->query("UPDATE " . TABLE_PROGRAM . " SET name = '" . $result[0]['old']. "' where id = '" . $programID . "'");
return $result;
}
/**
* updateProgram
*
* @param mixed $programID
* @param int $status
* @access public
* @return void
*/
public function updateProgram($programID, $status = 0)
{
$data = array(
'parent' => '0',
'name' => '测试更新项目集十',
'begin' => '2020-10-10',
'end' => '2020-10-11',
'acl' => 'private',
'budget' => '100',
'budgetUnit' => 'CNY',
'whitelist' => array('dev10', 'dev12')
);
switch($status)
{
case '1': // 项目集名称已经存在时
$data['name'] = '项目集1';
break;
case '2': // 当计划开始为空时更新项目集信息
$data['begin'] = '';
break;
case '3': // 当计划完成为空时更新项目集信息
$data['end'] = '';
break;
case '4': // 当计划完成小于计划开始时
$data['end'] = '2020-01-01';
break;
case '5': // 项目集开始时间小于父项目集时
$data['parent'] = '9';
$data['begin'] = '2019-01-01';
break;
default: // 更新id为10的项目集信息
}
return $this->update($programID, $data);
}
/**
* Test process node method.
*
* @param int $programID
* @param int $parentID
* @param string $oldPath
* @param int $oldGrade
* @access public
* @return void
*/
public function processNode($programID, $parentID, $oldPath, $oldGrade)
{
$programs = $this->program->processNode($programID, $parentID, $oldPath, $oldGrade);
return $programs;
}
}
?>