diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 9045aac16..b1221e3f1 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -5342,18 +5342,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) { diff --git a/workflow/engine/classes/model/SubApplication.php b/workflow/engine/classes/model/SubApplication.php index 8e8962aa9..d8781db71 100755 --- a/workflow/engine/classes/model/SubApplication.php +++ b/workflow/engine/classes/model/SubApplication.php @@ -37,52 +37,6 @@ class SubApplication extends BaseSubApplication } } - public function loadSubProUidByParent($appUidParent, $delThreadParent, $delIndexParent ) - { - try { - $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(SubApplicationPeer::APP_UID); - $criteria->add(SubApplicationPeer::APP_PARENT, $appUidParent); - $criteria->add(SubApplicationPeer::DEL_INDEX_PARENT, $delIndexParent); - $criteria->add(SubApplicationPeer::DEL_THREAD_PARENT, $delThreadParent); - - $rsCriteria = SubApplicationPeer::doSelectRs($criteria); - $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); - while ($rsCriteria->next()) { - $row = $rsCriteria->getRow(); - } - if(is_array( $row )){ - return($row['APP_UID']); - } - return ""; - } catch (Exception $oError) { - throw($oError); - } - } - - public function loadSubProUidBySon($appUidSon, $delThreadParent, $delIndexParent ) - { - try { - $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(SubApplicationPeer::APP_PARENT); - $criteria->add(SubApplicationPeer::APP_UID, $appUidSon); - $criteria->add(SubApplicationPeer::DEL_INDEX_PARENT, $delIndexParent); - $criteria->add(SubApplicationPeer::DEL_THREAD_PARENT, $delThreadParent); - - $rsCriteria = SubApplicationPeer::doSelectRs($criteria); - $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); - while ($rsCriteria->next()) { - $row = $rsCriteria->getRow(); - } - if(is_array( $row )){ - return($row['APP_PARENT']); - } - return ""; - } catch (Exception $oError) { - throw($oError); - } - } - public function create($aData) { $oConnection = Propel::getConnection(SubApplicationPeer::DATABASE_NAME); diff --git a/workflow/engine/methods/cases/cases_Derivate.php b/workflow/engine/methods/cases/cases_Derivate.php index ddfa6a4b4..a60e632b4 100755 --- a/workflow/engine/methods/cases/cases_Derivate.php +++ b/workflow/engine/methods/cases/cases_Derivate.php @@ -163,32 +163,32 @@ try { // Send notifications - Start $oUser = new Users(); $aUser = $oUser->load( $_SESSION['USER_LOGGED'] ); - $sFromName = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ($aUser['USR_EMAIL'] != '' ? ' <' . $aUser['USR_EMAIL'] . '>' : ''); - - $flagGmail = false; - /*----------------------------------********---------------------------------*/ - $licensedFeatures = &PMLicensedFeatures::getSingleton(); - if($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')){ - G::LoadClass( "pmGoogleApi" ); - $pmGoogle = new PMGoogleApi(); - if($pmGoogle->getServiceGmailStatus()){ - $flagGmail = true; - - $appDel = new AppDelegation(); - $actualThread = $appDel->Load($_SESSION['APPLICATION'], $_SESSION['INDEX']); + $sFromName = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ($aUser['USR_EMAIL'] != '' ? ' <' . $aUser['USR_EMAIL'] . '>' : ''); - $appDelPrev = $appDel->LoadParallel($_SESSION['APPLICATION']); - $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail(); - if(!$appDelPrev){ - $Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $_SESSION['INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']); - }else{ - foreach ($appDelPrev as $app){ - if( ($app['DEL_INDEX'] != $_SESSION['INDEX']) && ($app['DEL_PREVIOUS'] != $actualThread['DEL_PREVIOUS']) ){ - $Pmgmail->sendEmail($_SESSION['APPLICATION'], "", $app['DEL_INDEX'], $_POST['form']['TASKS'], $appFields['APP_DATA']); - } - } - } - } + $flagGmail = false; + /*----------------------------------********---------------------------------*/ + $licensedFeatures = &PMLicensedFeatures::getSingleton (); + if ($licensedFeatures->verifyfeature ( '7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09' )) { + G::LoadClass ( "pmGoogleApi" ); + $pmGoogle = new PMGoogleApi (); + if ($pmGoogle->getServiceGmailStatus ()) { + $flagGmail = true; + + $appDel = new AppDelegation (); + $actualThread = $appDel->Load ( $_SESSION ['APPLICATION'], $_SESSION ['INDEX'] ); + + $appDelPrev = $appDel->LoadParallel ( $_SESSION ['APPLICATION'] ); + $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail (); + if (! $appDelPrev) { + $Pmgmail->sendEmail ( $_SESSION ['APPLICATION'], "", $_SESSION ['INDEX'], $_POST ['form'] ['TASKS'], $appFields ['APP_DATA'] ); + } else { + foreach ( $appDelPrev as $app ) { + if (($app ['DEL_INDEX'] != $_SESSION ['INDEX']) && ($app ['DEL_PREVIOUS'] != $actualThread ['DEL_PREVIOUS'])) { + $Pmgmail->sendEmail ( $_SESSION ['APPLICATION'], "", $app ['DEL_INDEX'], $_POST ['form'] ['TASKS'], $appFields ['APP_DATA'] ); + } + } + } + } } /*----------------------------------********---------------------------------*/ @@ -251,16 +251,16 @@ try { // Set users drive - End /*----------------------------------********---------------------------------*/ - $debuggerAvailable = true; - - $casesRedirector = 'casesListExtJsRedirector'; - if (isset( $_SESSION['user_experience'] ) && $flagGmail === false ) { - $aNextStep['PAGE'] = $casesRedirector.'?ux=' . $_SESSION['user_experience']; - $debuggerAvailable = false; - } else if( $flagGmail == true ){ - $aNextStep['PAGE'] = $casesRedirector.'?gmail=1'; - } else { - $aNextStep['PAGE'] = $casesRedirector; + $debuggerAvailable = true; + + $casesRedirector = 'casesListExtJsRedirector'; + if (isset ( $_SESSION ['user_experience'] ) && $flagGmail === false) { + $aNextStep ['PAGE'] = $casesRedirector . '?ux=' . $_SESSION ['user_experience']; + $debuggerAvailable = false; + } else if ($flagGmail == true) { + $aNextStep ['PAGE'] = $casesRedirector . '?gmail=1'; + } else { + $aNextStep ['PAGE'] = $casesRedirector; } if (isset( $_SESSION['PMDEBUGGER'] ) && $_SESSION['PMDEBUGGER'] && $debuggerAvailable) { diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php index 1aed73e16..52c4baeb5 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php @@ -115,10 +115,6 @@ class Pmgmail { } $appData = $this->getDraftApp($app_uid, $index); - if (!$appData){ - $appData = $this->getDraftApp($app_uid, $index-1); - } - foreach ($appData as $application) { $appNumber = $application['APP_NUMBER']; $appStatus = $application['APP_STATUS']; @@ -137,102 +133,55 @@ class Pmgmail { $labelID = "PMDRFT"; } else { $labelID = "PMIBX"; - } - - if ((string)$mailToAddresses === "") { - if ($arrayTask) { - $oCases = new \Cases(); + } - foreach ($arrayTask as $aTask) { - if(!isset($aTask["USR_UID"])){ - $aTask["USR_UID"] = ""; - } - $respTo = $oCases->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData); - $mailToAddresses = $respTo['to']; - $mailCcAddresses = $respTo['cc']; - - if($aTask["TAS_ASSIGN_TYPE"] === "SELF_SERVICE"){ - $labelID = "PMUASS"; - if ((string)$mailToAddresses === ""){ // Self Service Value Based - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\AppAssignSelfServiceValuePeer::GRP_UID); - $criteria->add(\AppAssignSelfServiceValuePeer::APP_UID, $app_uid); - - $rsCriteria = \AppAssignSelfServiceValuePeer::doSelectRs($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); - - while ($rsCriteria->next()) { - $row = $rsCriteria->getRow(); - } - $taskUsers = unserialize($row['GRP_UID']); - - foreach ($taskUsers as $user) { - $oUsers = new \Users(); - $usrData = $oUsers->loadDetails($user); - $nextMail = $usrData['USR_EMAIL']; - $mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail; - } - } - } else { - if (!$aTask["TAS_PARENT"]){ - $aTask["TAS_PARENT"] = $tasUid; - } - $oTask = new \Task(); - $aTaskInfo = $oTask->load($aTask["TAS_PARENT"]); + if (( string ) $mailToAddresses === "") { + if ($arrayTask) { + $oCases = new \Cases (); - $oSubPro = new \SubApplication(); - $subProAppUid = ""; - if( ($aTaskInfo["TAS_TYPE"] === "SUBPROCESS") ){ - $subProAppUid = $oSubPro->loadSubProUidByParent($app_uid, $index, $index+1); - } else if($aTask['TAS_UID'] == -1 && $aTask['TAS_ASSIGN_TYPE'] == "nobody"){ - $subProAppUid = $oSubPro->loadSubProUidBySon($app_uid, $index, $index+1); + foreach ( $arrayTask as $aTask ) { + if (! isset ( $aTask ["USR_UID"] )) { + $aTask ["USR_UID"] = ""; + } + $respTo = $oCases->getTo ( $aTask ["TAS_ASSIGN_TYPE"], $aTask ["TAS_UID"], $aTask ["USR_UID"], $arrayData ); + $mailToAddresses = $respTo ['to']; + $mailCcAddresses = $respTo ['cc']; + + if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") { + $labelID = "PMUASS"; + if (( string ) $mailToAddresses === "") { // Self Service Value Based + $criteria = new \Criteria ( "workflow" ); + $criteria->addSelectColumn ( \AppAssignSelfServiceValuePeer::GRP_UID ); + $criteria->add ( \AppAssignSelfServiceValuePeer::APP_UID, $app_uid ); - $appDel = new \AppDelegation(); - $actualThread = $appDel->Load($subProAppUid, $index+1); - $index = $actualThread['DEL_INDEX']+1; - - $aCriteria = new \Criteria("workflow"); - $aCriteria->addSelectColumn(\RoutePeer::ROU_NEXT_TASK); - $aCriteria->add(\RoutePeer::TAS_UID, $actualThread['TAS_UID']); + $rsCriteria = \AppAssignSelfServiceValuePeer::doSelectRs ( $criteria ); + $rsCriteria->setFetchmode ( \ResultSet::FETCHMODE_ASSOC ); - $roCriteria = \RoutePeer::doSelectRs($aCriteria); - $roCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ( $rsCriteria->next () ) { + $row = $rsCriteria->getRow (); + } + $taskUsers = unserialize ( $row ['GRP_UID'] ); + $oUsers = new \Users (); + if ($taskUsers !== false){ + foreach ( $taskUsers as $user ) { + $usrData = $oUsers->loadDetails ( $user ); + $nextMail = $usrData ['USR_EMAIL']; + $mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail; + } + } else { + $usrData = $oUsers->loadDetails ( $user ); + $mailToAddresses = $usrData ['USR_EMAIL']; + } + + } + } + } + } else { + $oUsers = new \Users (); - while ($roCriteria->next()) { - $rowTas = $roCriteria->getRow(); - } - - $aTaskInfo = $oTask->load($rowTas['ROU_NEXT_TASK']); - $newTask = new \Tasks(); - $aTaskUsers = $newTask->getUsersOfTask($rowTas['ROU_NEXT_TASK'],1); - - foreach ($aTaskUsers as $user) { - $nextMail = $user['USR_EMAIL']; - $mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail; - } - } - - if($subProAppUid !== ""){ - $subProData = $oApplication->Load($subProAppUid); - $oProcess = new \Processes(); - $proInfo = $oProcess->getProcessRow($subProData['PRO_UID']); - - $appNumber = $subProData['APP_NUMBER']; - $app_uid = $subProAppUid; - $tasName = $aTaskInfo["TAS_TITLE"]; - $appStatus = $subProData['APP_STATUS']; - $prvUsr = $nextUsr; - $delegateDate = $subProData['APP_CREATE_DATE']; - $proName = $proInfo['PRO_TITLE']; - } - } - } - }else { - $oUsers = new \Users(); - - $usrData = $oUsers->loadDetails($nextUsr); - $mailToAddresses = $usrData['USR_EMAIL']; - } + $usrData = $oUsers->loadDetails ( $nextUsr ); + $mailToAddresses = $usrData ['USR_EMAIL']; + } } //first template diff --git a/workflow/public_html/pmGmail/sso.php b/workflow/public_html/pmGmail/sso.php index 8af583ab5..be1d3feff 100644 --- a/workflow/public_html/pmGmail/sso.php +++ b/workflow/public_html/pmGmail/sso.php @@ -26,16 +26,16 @@ curl_setopt( $gCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt( $gCurl, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt($gCurl, CURLOPT_SSL_VERIFYHOST, false); -if(curl_exec($gCurl) === false){ - echo 'Curl error: ' . curl_error($gCurl); +if (curl_exec ( $gCurl ) === false) { + echo 'Curl error: ' . curl_error ( $gCurl ); } else { - $gCurl_response = curl_exec($gCurl); - curl_close($gCurl); - $gResp = G::json_decode($gCurl_response); - if ($gResp === false) { - echo Bootstrap::LoadTranslation('ID_NO_LICENSE_FEATURE_ENABLED'); - die; - } + $gCurl_response = curl_exec ( $gCurl ); + curl_close ( $gCurl ); + $gResp = G::json_decode ( $gCurl_response ); + if ($gResp === false) { + echo Bootstrap::LoadTranslation ( 'ID_NO_LICENSE_FEATURE_ENABLED' ); + die (); + } } set_time_limit(60); @@ -72,11 +72,11 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp // init curl object $ch = curl_init(); // define options - $optArray = array( - CURLOPT_URL => $url, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_SSL_VERIFYPEER => false, - CURLOPT_SSL_VERIFYHOST => false + $optArray = array( + CURLOPT_URL => $url, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_SSL_VERIFYPEER => false, + CURLOPT_SSL_VERIFYHOST => false ); // apply those options curl_setopt_array($ch, $optArray); @@ -124,13 +124,15 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp if ($action == "draft"){ //sending the email - $curlApp = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/sendEmail/' . $appUid . '/to/' . $gmail . '/index/' . $delIndex ); - curl_setopt( $curlApp, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $pmtoken ) ); - curl_setopt( $curlApp, CURLOPT_CUSTOMREQUEST, "POST"); - curl_setopt( $curlApp, CURLOPT_RETURNTRANSFER, true); - curl_setopt( $curlApp, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt( $curlApp, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt( $curlApp, CURLOPT_CONNECTTIMEOUT, 0); + $curlApp = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/sendEmail/' . $appUid . '/to/' . $gmail . '/index/' . $delIndex ); + curl_setopt ( $curlApp, CURLOPT_HTTPHEADER, array ( + 'Authorization: Bearer ' . $pmtoken + ) ); + curl_setopt ( $curlApp, CURLOPT_CUSTOMREQUEST, "POST" ); + curl_setopt ( $curlApp, CURLOPT_RETURNTRANSFER, true ); + curl_setopt ( $curlApp, CURLOPT_SSL_VERIFYPEER, false ); + curl_setopt ( $curlApp, CURLOPT_SSL_VERIFYHOST, false ); + curl_setopt ( $curlApp, CURLOPT_CONNECTTIMEOUT, 0 ); $curl_response_app = curl_exec( $curlApp ); curl_close( $curlApp );