* Finish task #8164.

This commit is contained in:
Yagami
2020-10-27 14:46:03 +08:00
parent 5002be3199
commit 0f3348ad2a
9 changed files with 100 additions and 103 deletions
+14 -17
View File
@@ -249,15 +249,12 @@ class upgrade extends control
}
elseif($type == 'moreLink')
{
foreach($this->post->programs as $i => $programID)
foreach($this->post->projects as $i => $projectID)
{
$projectID = $this->post->projects[$i];
$sprintID = $this->post->sprints[$i];
/* Change program field for product and project. */
$this->upgrade->setProgram4Project($programID, array($projectID));
/* Set program team. */
$this->upgrade->setProgramTeam($programID, array(), array($projectID));
$this->upgrade->processMergedData(0, $projectID, array(), array($sprintID));
}
}
@@ -376,31 +373,31 @@ class upgrade extends control
/* Get no merged projects that link more then two products. */
if($type == 'moreLink')
{
$noMergedProjects = $this->dao->select('*')->from(TABLE_PROJECT)->where('model')->eq('')->andWhere('deleted')->eq(0)->fetchAll('id');
$projectProducts = $this->dao->select('*')->from(TABLE_PROJECTPRODUCT)->where('project')->in(array_keys($noMergedProjects))->fetchGroup('project', 'product');
$noMergedSprints = $this->dao->select('*')->from(TABLE_PROJECT)->where('parent')->eq(0)->andWhere('path')->eq('')->fetchAll('id');
$projectProducts = $this->dao->select('*')->from(TABLE_PROJECTPRODUCT)->where('project')->in(array_keys($noMergedSprints))->fetchGroup('project', 'product');
$productPairs = array();
foreach($projectProducts as $projectID => $products)
foreach($projectProducts as $sprintID => $products)
{
foreach($products as $productID => $data) $productPairs[$productID] = $productID;
}
$programs = $this->dao->select('t1.*,t2.id as productID')->from(TABLE_PROJECT)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.id=t2.program')
->where('t2.id')->in($productPairs)
$projects = $this->dao->select('t1.*,t2.product as productID')->from(TABLE_PROJECT)->alias('t1')
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id=t2.project')
->where('t2.product')->in($productPairs)
->fetchAll('productID');
foreach($noMergedProjects as $projectID => $project)
foreach($noMergedSprints as $sprintID => $sprint)
{
$products = zget($projectProducts, $projectID, array());
$products = zget($projectProducts, $sprintID, array());
foreach($products as $productID => $data)
{
$program = zget($programs, $productID, '');
if($program) $project->programs[$program->id] = $program->name;
$project = zget($projects, $productID, '');
if($project) $sprint->projects[$project->id] = $project->name;
}
}
$this->view->noMergedProjects = $noMergedProjects;
$this->view->noMergedSprints = $noMergedSprints;
}
$this->view->title = $this->lang->upgrade->mergeProgram;