* Finish task #45161.
This commit is contained in:
+19
-10
@@ -4418,18 +4418,27 @@ class upgradeModel extends model
|
||||
/* Use historical projects as project upgrades. */
|
||||
$projects = $this->dao->select('id,name,begin,end,status,PM,acl')->from(TABLE_PROJECT)->where('id')->in($projectIdList)->fetchAll('id');
|
||||
|
||||
$hasExistedProjects = $this->dao->select('name')->from(TABLE_PROJECT)->where('type')->eq('project')->fetchPairs('name');
|
||||
$projectPairs = $this->dao->select('name,id')->from(TABLE_PROJECT)
|
||||
->where('deleted')->eq('0')
|
||||
->andWhere('type')->eq('project')
|
||||
->andWhere('parent')->eq($programID)
|
||||
->fetchPairs();
|
||||
|
||||
$this->lang->error->unique = $this->lang->upgrade->projectNameUnique;
|
||||
|
||||
$nameList = array();
|
||||
foreach($projectIdList as $projectID)
|
||||
$duplicateList = '';
|
||||
foreach($projects as $projectID => $project)
|
||||
{
|
||||
$projectName = $projects[$projectID]->name;
|
||||
if(isset($hasExistedProjects[$projectName]) or isset($nameList[$projectName])) dao::$errors['name'][] = 'project#' . $projectID . sprintf($this->lang->error->unique, $this->lang->project->name, $projectName);
|
||||
$nameList[$projectName] = $projectName;
|
||||
if(isset($projectPairs[$project->name]))
|
||||
{
|
||||
$duplicateList .= "$projectID,";
|
||||
$duplicateList .= "{$projectPairs[$project->name]},";
|
||||
}
|
||||
}
|
||||
|
||||
if($duplicateList)
|
||||
{
|
||||
echo "<script>new parent.$.zui.ModalTrigger({url: parent.$.createLink('upgrade', 'renameObject', 'type=project&duplicateList=$duplicateList', '', 1), type: 'iframe', width:'40%'}).show();</script>";
|
||||
die;
|
||||
}
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
foreach($projectIdList as $projectID)
|
||||
{
|
||||
@@ -4492,7 +4501,7 @@ class upgradeModel extends model
|
||||
|
||||
$this->dao->insert(TABLE_PROJECT)->data($project)
|
||||
->batchcheck('name', 'notempty')
|
||||
->check('name', 'unique', "type='project'")
|
||||
->check('name', 'unique', "type='project' AND deleted=0")
|
||||
->exec();
|
||||
if(dao::isError()) return false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user