diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 3f0d72746..0ef82788e 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -969,6 +969,18 @@ class Processes } } + if (isset($oData->taskExtraProperties)) { + foreach ($oData->taskExtraProperties as $key => $value) { + $record = $value; + + if (isset($map[$record["OBJ_UID"]])) { + $newUid = $map[$record["OBJ_UID"]]; + + $oData->taskExtraProperties[$key]["OBJ_UID"] = $newUid; + } + } + } + if (isset($oData->webEntry)) { foreach ($oData->webEntry as $key => $value) { $record = $value; diff --git a/workflow/engine/classes/class.tasks.php b/workflow/engine/classes/class.tasks.php index e464bfb7b..a276e2e5d 100755 --- a/workflow/engine/classes/class.tasks.php +++ b/workflow/engine/classes/class.tasks.php @@ -391,12 +391,23 @@ class Tasks $oCriteria = new Criteria('workflow'); $oCriteria->add(ObjectPermissionPeer::OP_TASK_SOURCE, $sTaskUID); ObjectPermissionPeer::doDelete($oCriteria); + + //Delete Cases Schedulers + $criteria = new Criteria("workflow"); + + $criteria->add(CaseSchedulerPeer::TAS_UID, $sTaskUID, Criteria::EQUAL); + + $result = CaseSchedulerPeer::doDelete($criteria); + + //Delete Configuration + $criteria = new Criteria("workflow"); + + $criteria->add(ConfigurationPeer::OBJ_UID, $sTaskUID, Criteria::EQUAL); + + $result = ConfigurationPeer::doDelete($criteria); + //Delete task $oTask->remove($sTaskUID); - //Delete cases schedulers added by krlos - $oCriteria = new Criteria('workflow'); - $oCriteria->add(CaseSchedulerPeer::TAS_UID, $sTaskUID); - CaseSchedulerPeer::doDelete($oCriteria); } catch (Exception $oError) { throw ($oError); } @@ -855,4 +866,4 @@ class Tasks } } } - \ No newline at end of file + diff --git a/workflow/engine/classes/model/Configuration.php b/workflow/engine/classes/model/Configuration.php index 50fd285a1..51c8fb86c 100755 --- a/workflow/engine/classes/model/Configuration.php +++ b/workflow/engine/classes/model/Configuration.php @@ -1,28 +1,42 @@ begin(); - $this->setCfgUid($aData['CFG_UID']); - $this->setObjUid($aData['OBJ_UID']); - $this->setCfgValue(isset($aData['CFG_VALUE'])?$aData['CFG_VALUE']:''); - $this->setProUid($aData['PRO_UID']); - $this->setUsrUid($aData['USR_UID']); - $this->setAppUid($aData['APP_UID']); - if ($this->validate()) { - $result=$this->save(); - $con->commit(); + $configuration = new Configuration(); + + $configuration->setCfgUid($arrayData["CFG_UID"]); + $configuration->setObjUid($arrayData["OBJ_UID"]); + $configuration->setCfgValue((isset($arrayData["CFG_VALUE"]))? $arrayData["CFG_VALUE"] : ""); + $configuration->setProUid($arrayData["PRO_UID"]); + $configuration->setUsrUid($arrayData["USR_UID"]); + $configuration->setAppUid($arrayData["APP_UID"]); + + if ($configuration->validate()) { + $cnn->begin(); + + $result = $configuration->save(); + + $cnn->commit(); + + //Return return $result; } else { - $con->rollback(); - throw(new Exception("Failed Validation in class ".get_class($this).".")); + $msg = ""; + + foreach ($configuration->getValidationFailures() as $validationFailure) { + $msg = $msg . (($msg != "")? "\n" : "") . $validationFailure->getMessage(); + } + + throw new Exception(G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . (($msg != "")? "\n" . $msg : "")); } } catch (Exception $e) { - $con->rollback(); - throw($e); + $cnn->rollback(); + + throw $e; } }