diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php index e37a1975e..09e59ff1d 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php @@ -82,14 +82,21 @@ class Pmgmail { */ public function sendEmail($app_uid, $mailToAddresses, $index, $arrayTask = null, $arrayData = null) { - $mailCcAddresses = ""; + //getting the default email server + $defaultEmail = $this->emailAccount(); + + if ($defaultEmail === null) { + error_log(G::LoadTranslation('ID_EMAIL_ENGINE_IS_NOT_ENABLED')); + return false; + } + $mailCcAddresses = ""; $oApplication = new \Application(); $formData = $oApplication->Load($app_uid); $frmData = unserialize($formData['APP_DATA']); $dataFormToShowString = ""; - foreach ($frmData as $field=>$value){ - if( ($field != 'SYS_LANG') && + foreach ($frmData as $field => $value) { + if (($field != 'SYS_LANG') && ($field != 'SYS_SKIN') && ($field != 'SYS_SYS') && ($field != 'APPLICATION') && @@ -99,14 +106,15 @@ class Pmgmail { ($field != 'USER_LOGGED') && ($field != 'USR_USERNAME') && ($field != 'DYN_CONTENT_HISTORY') && - ($field != 'PIN') && - (!is_array($value))){ + ($field != 'PIN') && + (!is_array($value)) + ) { $dataFormToShowString .= " " . $field . " " . $value; } } $appData = $this->getDraftApp($app_uid, $index); - foreach ($appData as $application){ + foreach ($appData as $application) { $appNumber = $application['APP_NUMBER']; $appStatus = $application['APP_STATUS']; $index = $application['DEL_INDEX']; @@ -120,59 +128,60 @@ class Pmgmail { $tasUid = $application['TAS_UID']; $lastIndex = $application['DEL_LAST_INDEX']; - if($appStatus == "DRAFT"){ + if ($appStatus == "DRAFT") { $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']); + if ((string)$mailToAddresses === "") { + if ($arrayTask) { + $oCases = new \Cases(); - foreach ($taskUsers as $user) { - $oUsers = new \Users(); - $usrData = $oUsers->loadDetails($user); - $nextMail = $usrData['USR_EMAIL']; - $mailToAddresses .= ($mailToAddresses == '') ? $nextMail : ',' . $nextMail; - } - } - } - } - }else { - $oUsers = new \Users(); - - $usrData = $oUsers->loadDetails($nextUsr); - $mailToAddresses = $usrData['USR_EMAIL']; - } + 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 { + $oUsers = new \Users(); + + $usrData = $oUsers->loadDetails($nextUsr); + $mailToAddresses = $usrData['USR_EMAIL']; + } } //first template $pathTemplate = PATH_DATA_SITE . "mailTemplates" . PATH_SEP . "pmGmail.html"; - if (!file_exists($pathTemplate)){ + if (!file_exists($pathTemplate)) { $file = @fopen($pathTemplate, "w"); fwrite($file, '