Merged in victorsl/processmaker (pull request #2207)
PM-2685 "Error al importar y sobre-escribir un proceso que ya" SOLVED
This commit is contained in:
@@ -259,8 +259,7 @@ abstract class Importer
|
||||
public function removeProject()
|
||||
{
|
||||
$project = \ProcessMaker\Project\Adapter\BpmnWorkflow::load($this->metadata["uid"]);
|
||||
$force = true;
|
||||
$project->remove($force);
|
||||
$project->remove(true, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1038,10 +1038,10 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
}
|
||||
}
|
||||
|
||||
public function remove($force = false)
|
||||
public function remove($flagForceRemoveProject = false, $flagRemoveCases = true)
|
||||
{
|
||||
parent::remove($force);
|
||||
$this->wp->remove();
|
||||
parent::remove($flagForceRemoveProject);
|
||||
$this->wp->remove($flagRemoveCases);
|
||||
}
|
||||
|
||||
public static function createFromStruct(array $projectData, $generateUid = true)
|
||||
|
||||
@@ -106,11 +106,11 @@ class Workflow extends Handler
|
||||
$process->update($data);
|
||||
}
|
||||
|
||||
public function remove()
|
||||
public function remove($flagRemoveCases = true)
|
||||
{
|
||||
try {
|
||||
self::log("Remove Process with uid: {$this->proUid}");
|
||||
$this->deleteProcess($this->proUid);
|
||||
$this->deleteProcess($this->proUid, $flagRemoveCases);
|
||||
self::log("Remove Process Success!");
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
@@ -559,7 +559,7 @@ class Workflow extends Handler
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteProcess($sProcessUID)
|
||||
public function deleteProcess($sProcessUID, $flagRemoveCases = true)
|
||||
{
|
||||
try {
|
||||
//G::LoadClass('case');
|
||||
@@ -580,17 +580,24 @@ class Workflow extends Handler
|
||||
$oReportTable = new \ReportTables();
|
||||
$oCaseTracker = new \CaseTracker();
|
||||
$oCaseTrackerObject = new \CaseTrackerObject();
|
||||
//Delete the applications of process
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->add(\ApplicationPeer::PRO_UID, $sProcessUID);
|
||||
$oDataset = \ApplicationPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$oCase = new \Cases();
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$oCase->removeCase($aRow['APP_UID']);
|
||||
$oDataset->next();
|
||||
//Delete the applications of process
|
||||
if ($flagRemoveCases) {
|
||||
$case = new \Cases();
|
||||
|
||||
$criteria = new \Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(\ApplicationPeer::APP_UID);
|
||||
$criteria->add(\ApplicationPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = \ApplicationPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$result = $case->removeCase($row["APP_UID"]);
|
||||
}
|
||||
}
|
||||
|
||||
//Delete the tasks of process
|
||||
|
||||
Reference in New Issue
Block a user