From cd895ee87f6d2be5cdda2c66c7f563ea89f1cfc7 Mon Sep 17 00:00:00 2001 From: "Marco A. Nina Mena" Date: Tue, 15 Mar 2016 17:31:34 -0400 Subject: [PATCH] =?UTF-8?q?BY-231=20Al=20momento=20de=20crear=20un=20caso?= =?UTF-8?q?=20si=20no=20est=C3=A1=20configurado=20el=20serv.=20de=20email?= =?UTF-8?q?=20sale=20un=20error.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add validation email server --- .../ProcessMaker/BusinessModel/Pmgmail.php | 115 ++++++++++-------- 1 file changed, 61 insertions(+), 54 deletions(-) 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, '
'); fwrite($file, ''); @@ -194,7 +203,8 @@ class Pmgmail { $change = array('[', ']', '"'); $fdata = str_replace($change, ' ', $dataFormToShowString); - $aFields = array('proName' => $proName, + $aFields = array( + 'proName' => $proName, 'appNumber' => $appNumber, 'caseUid' => $app_uid, 'taskName' => $tasName, @@ -207,10 +217,7 @@ class Pmgmail { 'oform' => $fdata ); - $subject = "[PM] " .$proName. " (" . $index . ") Case: ". $appNumber; - - //getting the default email server - $defaultEmail = $this->emailAccount(); + $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber; $ws = new \wsBase();