Merged in bugfix/PMCORE-3552 (pull request #8330)
PMCORE-3552 Approved-by: Julio Cesar Laura Avendaño
This commit is contained in:
committed by
Julio Cesar Laura Avendaño
commit
1ae23462d1
@@ -222,7 +222,7 @@ abstract class Importer
|
|||||||
foreach ($objectList as $rowObject) {
|
foreach ($objectList as $rowObject) {
|
||||||
if ($rowObject['name'] === 'PROCESSDEFINITION') {
|
if ($rowObject['name'] === 'PROCESSDEFINITION') {
|
||||||
$onlyDiagram = true;
|
$onlyDiagram = true;
|
||||||
$this->removeProject($onlyDiagram);
|
$this->removeProject($onlyDiagram, $objectsToImport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
@@ -453,7 +453,14 @@ abstract class Importer
|
|||||||
$project->setDisabled();
|
$project->setDisabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function removeProject($onlyDiagram = false)
|
/**
|
||||||
|
* Remove the project
|
||||||
|
*
|
||||||
|
* @param bool $onlyDiagram
|
||||||
|
* @param array $objectsToImport
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function removeProject($onlyDiagram = false, $objectsToImport = [])
|
||||||
{
|
{
|
||||||
/* @var $process \Process */
|
/* @var $process \Process */
|
||||||
$processes = new \Processes();
|
$processes = new \Processes();
|
||||||
@@ -464,7 +471,7 @@ abstract class Importer
|
|||||||
$process->load($this->metadata["uid"]);
|
$process->load($this->metadata["uid"]);
|
||||||
$this->currentProcessTitle = $process->getProTitle();
|
$this->currentProcessTitle = $process->getProTitle();
|
||||||
$project = \ProcessMaker\Project\Adapter\BpmnWorkflow::load($this->metadata["uid"]);
|
$project = \ProcessMaker\Project\Adapter\BpmnWorkflow::load($this->metadata["uid"]);
|
||||||
$project->remove(true, false, $onlyDiagram);
|
$project->remove(true, false, $onlyDiagram, $objectsToImport);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1248,10 +1248,19 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function remove($flagForceRemoveProject = false, $flagRemoveCases = true, $onlyDiagram = false)
|
/**
|
||||||
|
* Remove Project
|
||||||
|
*
|
||||||
|
* @param bool $flagForceRemoveProject
|
||||||
|
* @param bool $flagRemoveCases
|
||||||
|
* @param bool $onlyDiagram
|
||||||
|
* @param array $objectsToImport
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function remove($flagForceRemoveProject = false, $flagRemoveCases = true, $onlyDiagram = false, $objectsToImport = [])
|
||||||
{
|
{
|
||||||
parent::remove($flagForceRemoveProject);
|
parent::remove($flagForceRemoveProject);
|
||||||
$this->wp->remove($flagRemoveCases, $onlyDiagram);
|
$this->wp->remove($flagRemoveCases, $onlyDiagram, $objectsToImport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function createFromStruct(array $projectData, $generateUid = true, $allData = null)
|
public static function createFromStruct(array $projectData, $generateUid = true, $allData = null)
|
||||||
|
|||||||
@@ -2,20 +2,21 @@
|
|||||||
namespace ProcessMaker\Project;
|
namespace ProcessMaker\Project;
|
||||||
|
|
||||||
use Criteria;
|
use Criteria;
|
||||||
use ProcessMaker\Plugins\PluginRegistry;
|
use ObjectPermissionPeer;
|
||||||
use ResultSet;
|
|
||||||
|
|
||||||
use Process as ClassesProcess;
|
use Process as ClassesProcess;
|
||||||
use Tasks;
|
use ProcessMaker\Exception;
|
||||||
use Task as ClassesTask;
|
use ProcessMaker\Model\ProcessCategory;
|
||||||
|
use ProcessMaker\Plugins\PluginRegistry;
|
||||||
|
use ProcessMaker\Util;
|
||||||
|
use ProcessMaker\Util\Common;
|
||||||
|
use ProcessUserPeer;
|
||||||
|
use ReportTables;
|
||||||
|
use ResultSet;
|
||||||
use Route;
|
use Route;
|
||||||
use RoutePeer;
|
use RoutePeer;
|
||||||
|
use StepSupervisorPeer;
|
||||||
use ProcessMaker\Model\ProcessCategory;
|
use Tasks;
|
||||||
use ProcessMaker\Util\Common;
|
use Task as ClassesTask;
|
||||||
use ProcessMaker\Exception;
|
|
||||||
use ProcessMaker\Util;
|
|
||||||
use ReportTables;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Workflow
|
* Class Workflow
|
||||||
@@ -115,11 +116,20 @@ class Workflow extends Handler
|
|||||||
$process->update($data);
|
$process->update($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function remove($flagRemoveCases = true, $onlyDiagram = false)
|
/**
|
||||||
|
* Remove project
|
||||||
|
*
|
||||||
|
* @param bool $flagRemoveCases
|
||||||
|
* @param bool $onlyDiagram
|
||||||
|
* @param array $objectsToImport
|
||||||
|
* @return void
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function remove($flagRemoveCases = true, $onlyDiagram = false, $objectsToImport = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
self::log("Remove Process with uid: {$this->proUid}");
|
self::log("Remove Process with uid: {$this->proUid}");
|
||||||
$this->deleteProcess($this->proUid, $flagRemoveCases, $onlyDiagram);
|
$this->deleteProcess($this->proUid, $flagRemoveCases, $onlyDiagram, $objectsToImport);
|
||||||
self::log("Remove Process Success!");
|
self::log("Remove Process Success!");
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||||
@@ -579,7 +589,17 @@ class Workflow extends Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteProcess($sProcessUID, $flagRemoveCases = true, $onlyDiagram = false)
|
/**
|
||||||
|
* Delete process
|
||||||
|
*
|
||||||
|
* @param string $sProcessUID
|
||||||
|
* @param bool $flagRemoveCases
|
||||||
|
* @param bool $onlyDiagram
|
||||||
|
* @param array $objectsToImport
|
||||||
|
* @return bool
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function deleteProcess($sProcessUID, $flagRemoveCases = true, $onlyDiagram = false, $objectsToImport = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -761,18 +781,24 @@ class Workflow extends Handler
|
|||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Delete the supervisors
|
if (array_search('SUPERVISORS', array_column($objectsToImport, 'id')) !== false || empty($objectsToImport)) {
|
||||||
$oCriteria = new Criteria('workflow');
|
//Delete the supervisors
|
||||||
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
|
$oCriteria = new Criteria('workflow');
|
||||||
\ProcessUserPeer::doDelete($oCriteria);
|
$oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
|
||||||
//Delete the object permissions
|
ProcessUserPeer::doDelete($oCriteria);
|
||||||
$oCriteria = new Criteria('workflow');
|
}
|
||||||
$oCriteria->add(\ObjectPermissionPeer::PRO_UID, $sProcessUID);
|
if (array_search('PERMISSIONS', array_column($objectsToImport, 'id')) !== false || empty($objectsToImport)) {
|
||||||
\ObjectPermissionPeer::doDelete($oCriteria);
|
//Delete the object permissions
|
||||||
//Delete the step supervisors
|
$oCriteria = new Criteria('workflow');
|
||||||
$oCriteria = new Criteria('workflow');
|
$oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID);
|
||||||
$oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
|
ObjectPermissionPeer::doDelete($oCriteria);
|
||||||
\StepSupervisorPeer::doDelete($oCriteria);
|
}
|
||||||
|
if (array_search('SUPERVISORSOBJECTS', array_column($objectsToImport, 'id')) !== false || empty($objectsToImport)) {
|
||||||
|
//Delete the step supervisors
|
||||||
|
$oCriteria = new Criteria('workflow');
|
||||||
|
$oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
|
||||||
|
StepSupervisorPeer::doDelete($oCriteria);
|
||||||
|
}
|
||||||
//Delete the report tables
|
//Delete the report tables
|
||||||
$oCriteria = new Criteria('workflow');
|
$oCriteria = new Criteria('workflow');
|
||||||
$oCriteria->add(\ReportTablePeer::PRO_UID, $sProcessUID);
|
$oCriteria->add(\ReportTablePeer::PRO_UID, $sProcessUID);
|
||||||
|
|||||||
Reference in New Issue
Block a user