* Finish task #45161.

This commit is contained in:
孙广明
2021-11-29 10:29:56 +08:00
parent a2f81d7d85
commit 19e08aafdc
9 changed files with 111 additions and 12 deletions
+19 -10
View File
@@ -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;