diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index b1221e3f1..dede8f328 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -1236,6 +1236,15 @@ class Cases $oCriteria = new Criteria('workflow'); $oCriteria->add(ListPausedPeer::APP_UID, $sAppUid); ListPausedPeer::doDelete($oCriteria); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(ListMyInboxPeer::APP_UID, $sAppUid); + ListMyInboxPeer::doDelete($oCriteria); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(ListParticipatedHistoryPeer::APP_UID, $sAppUid); + ListParticipatedHistoryPeer::doDelete($oCriteria); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(ListCompletedPeer::APP_UID, $sAppUid); + ListCompletedPeer::doDelete($oCriteria); /*----------------------------------********---------------------------------*/ return $result; } catch (exception $e) { @@ -5342,18 +5351,18 @@ class Cases $respTo = $this->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData); $sTo = $respTo['to']; - $sCc = $respTo['cc']; - - if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") { - if ($swtplDefault == 1) { - G::verifyPath ( $pathEmail, true ); // Create if it does not exist - $fileTemplate = $pathEmail . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ); - - if ((! file_exists ( $fileTemplate )) && file_exists ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ) )) { - @copy ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ), $fileTemplate ); - } - $sBody2 = G::replaceDataField ( file_get_contents ( $fileTemplate ), $arrayData2 ); - } + $sCc = $respTo['cc']; + + if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") { + if ($swtplDefault == 1) { + G::verifyPath ( $pathEmail, true ); // Create if it does not exist + $fileTemplate = $pathEmail . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ); + + if ((! file_exists ( $fileTemplate )) && file_exists ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ) )) { + @copy ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ), $fileTemplate ); + } + $sBody2 = G::replaceDataField ( file_get_contents ( $fileTemplate ), $arrayData2 ); + } } if ($sTo != null) { @@ -5390,124 +5399,124 @@ class Cases } catch (Exception $oException) { throw $oException; } - } - + } + public function getTo($taskType, $taskUid, $taskUsrUid, $arrayData) - { - $sTo = null; - $sCc = null; - $arrayResp = array (); - $task = new Tasks (); - $group = new Groups (); - $oUser = new Users (); + { + $sTo = null; + $sCc = null; + $arrayResp = array (); + $task = new Tasks (); + $group = new Groups (); + $oUser = new Users (); - switch ($taskType) { - case "SELF_SERVICE" : - if (isset ( $taskUid ) && ! empty ( $taskUid )) { - $arrayTaskUser = array (); - - $arrayAux1 = $task->getGroupsOfTask ( $taskUid, 1 ); - - foreach ( $arrayAux1 as $arrayGroup ) { - $arrayAux2 = $group->getUsersOfGroup ( $arrayGroup ["GRP_UID"] ); - - foreach ( $arrayAux2 as $arrayUser ) { - $arrayTaskUser [] = $arrayUser ["USR_UID"]; - } - } - - $arrayAux1 = $task->getUsersOfTask ( $taskUid, 1 ); - - foreach ( $arrayAux1 as $arrayUser ) { - $arrayTaskUser [] = $arrayUser ["USR_UID"]; - } - - $criteria = new Criteria ( "workflow" ); - - $criteria->addSelectColumn ( UsersPeer::USR_UID ); - $criteria->addSelectColumn ( UsersPeer::USR_USERNAME ); - $criteria->addSelectColumn ( UsersPeer::USR_FIRSTNAME ); - $criteria->addSelectColumn ( UsersPeer::USR_LASTNAME ); - $criteria->addSelectColumn ( UsersPeer::USR_EMAIL ); - $criteria->add ( UsersPeer::USR_UID, $arrayTaskUser, Criteria::IN ); - $rsCriteria = UsersPeer::doSelectRs ( $criteria ); - $rsCriteria->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); - - $to = null; - $cc = null; - $sw = 1; - - while ( $rsCriteria->next () ) { - $row = $rsCriteria->getRow (); - - $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; - - if ($sw == 1) { - $to = $toAux; - $sw = 0; - } else { - $cc = $cc . (($cc != null) ? "," : null) . $toAux; - } - } - $arrayResp ['to'] = $to; - $arrayResp ['cc'] = $cc; - } - break; - case "MULTIPLE_INSTANCE" : - $to = null; - $cc = null; - $sw = 1; - $oDerivation = new Derivation (); - $userFields = $oDerivation->getUsersFullNameFromArray ( $oDerivation->getAllUsersFromAnyTask ( $taskUid ) ); - if (isset ( $userFields )) { - foreach ( $userFields as $row ) { - $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; - if ($sw == 1) { - $to = $toAux; - $sw = 0; - } else { - $cc = $cc . (($cc != null) ? "," : null) . $toAux; - } - } - $arrayResp ['to'] = $to; - $arrayResp ['cc'] = $cc; - } - break; - case "MULTIPLE_INSTANCE_VALUE_BASED" : - $oTask = new Task (); - $aTaskNext = $oTask->load ( $taskUid ); - if (isset ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] ) && ! empty ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] )) { - $to = null; - $cc = null; - $sw = 1; - $nextTaskAssignVariable = trim ( $aTaskNext ["TAS_ASSIGN_VARIABLE"], " @#" ); - $arrayUsers = $arrayData [$nextTaskAssignVariable]; - $oDerivation = new Derivation (); - $userFields = $oDerivation->getUsersFullNameFromArray ( $arrayUsers ); - - foreach ( $userFields as $row ) { - $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; - if ($sw == 1) { - $to = $toAux; - $sw = 0; - } else { - $cc = $cc . (($cc != null) ? "," : null) . $toAux; - } - } - $arrayResp ['to'] = $to; - $arrayResp ['cc'] = $cc; - } - break; - default : - if (isset ( $taskUsrUid ) && ! empty ( $taskUsrUid )) { - $aUser = $oUser->load ( $taskUsrUid ); - $sTo = ((($aUser ["USR_FIRSTNAME"] != "") || ($aUser ["USR_LASTNAME"] != "")) ? $aUser ["USR_FIRSTNAME"] . " " . $aUser ["USR_LASTNAME"] . " " : "") . "<" . $aUser ["USR_EMAIL"] . ">"; - } - $arrayResp ['to'] = $sTo; - $arrayResp ['cc'] = ''; - break; - } - return $arrayResp; + switch ($taskType) { + case "SELF_SERVICE" : + if (isset ( $taskUid ) && ! empty ( $taskUid )) { + $arrayTaskUser = array (); + + $arrayAux1 = $task->getGroupsOfTask ( $taskUid, 1 ); + + foreach ( $arrayAux1 as $arrayGroup ) { + $arrayAux2 = $group->getUsersOfGroup ( $arrayGroup ["GRP_UID"] ); + + foreach ( $arrayAux2 as $arrayUser ) { + $arrayTaskUser [] = $arrayUser ["USR_UID"]; + } + } + + $arrayAux1 = $task->getUsersOfTask ( $taskUid, 1 ); + + foreach ( $arrayAux1 as $arrayUser ) { + $arrayTaskUser [] = $arrayUser ["USR_UID"]; + } + + $criteria = new Criteria ( "workflow" ); + + $criteria->addSelectColumn ( UsersPeer::USR_UID ); + $criteria->addSelectColumn ( UsersPeer::USR_USERNAME ); + $criteria->addSelectColumn ( UsersPeer::USR_FIRSTNAME ); + $criteria->addSelectColumn ( UsersPeer::USR_LASTNAME ); + $criteria->addSelectColumn ( UsersPeer::USR_EMAIL ); + $criteria->add ( UsersPeer::USR_UID, $arrayTaskUser, Criteria::IN ); + $rsCriteria = UsersPeer::doSelectRs ( $criteria ); + $rsCriteria->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); + + $to = null; + $cc = null; + $sw = 1; + + while ( $rsCriteria->next () ) { + $row = $rsCriteria->getRow (); + + $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; + + if ($sw == 1) { + $to = $toAux; + $sw = 0; + } else { + $cc = $cc . (($cc != null) ? "," : null) . $toAux; + } + } + $arrayResp ['to'] = $to; + $arrayResp ['cc'] = $cc; + } + break; + case "MULTIPLE_INSTANCE" : + $to = null; + $cc = null; + $sw = 1; + $oDerivation = new Derivation (); + $userFields = $oDerivation->getUsersFullNameFromArray ( $oDerivation->getAllUsersFromAnyTask ( $taskUid ) ); + if (isset ( $userFields )) { + foreach ( $userFields as $row ) { + $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; + if ($sw == 1) { + $to = $toAux; + $sw = 0; + } else { + $cc = $cc . (($cc != null) ? "," : null) . $toAux; + } + } + $arrayResp ['to'] = $to; + $arrayResp ['cc'] = $cc; + } + break; + case "MULTIPLE_INSTANCE_VALUE_BASED" : + $oTask = new Task (); + $aTaskNext = $oTask->load ( $taskUid ); + if (isset ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] ) && ! empty ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] )) { + $to = null; + $cc = null; + $sw = 1; + $nextTaskAssignVariable = trim ( $aTaskNext ["TAS_ASSIGN_VARIABLE"], " @#" ); + $arrayUsers = $arrayData [$nextTaskAssignVariable]; + $oDerivation = new Derivation (); + $userFields = $oDerivation->getUsersFullNameFromArray ( $arrayUsers ); + + foreach ( $userFields as $row ) { + $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; + if ($sw == 1) { + $to = $toAux; + $sw = 0; + } else { + $cc = $cc . (($cc != null) ? "," : null) . $toAux; + } + } + $arrayResp ['to'] = $to; + $arrayResp ['cc'] = $cc; + } + break; + default : + if (isset ( $taskUsrUid ) && ! empty ( $taskUsrUid )) { + $aUser = $oUser->load ( $taskUsrUid ); + $sTo = ((($aUser ["USR_FIRSTNAME"] != "") || ($aUser ["USR_LASTNAME"] != "")) ? $aUser ["USR_FIRSTNAME"] . " " . $aUser ["USR_LASTNAME"] . " " : "") . "<" . $aUser ["USR_EMAIL"] . ">"; + } + $arrayResp ['to'] = $sTo; + $arrayResp ['cc'] = ''; + break; + } + return $arrayResp; } /**