diff --git a/workflow/engine/classes/Processes.php b/workflow/engine/classes/Processes.php index c0534f69c..24c4ad523 100644 --- a/workflow/engine/classes/Processes.php +++ b/workflow/engine/classes/Processes.php @@ -1,5 +1,6 @@ getEmailServerDefault(); - + $emailEvent = new EmailEvent(); foreach ($arrayData as $value) { if (isset($value['__EMAIL_SERVER_UID_PRESERVED__']) && $value['__EMAIL_SERVER_UID_PRESERVED__'] === true) { unset($value['__EMAIL_SERVER_UID_PRESERVED__']); - } else { + } elseif(!EmailServer::exists($value['EMAIL_SERVER_UID'])) { unset($value['EMAIL_EVENT_FROM']); unset($value['EMAIL_SERVER_UID']); - if (!empty($arrayEmailServerDefault)) { - $value['EMAIL_EVENT_FROM'] = $arrayEmailServerDefault['MESS_ACCOUNT']; - $value['EMAIL_SERVER_UID'] = $arrayEmailServerDefault['MESS_UID']; - } } $emailEventData = $emailEvent->save($processUid, $value); diff --git a/workflow/engine/classes/model/EmailServer.php b/workflow/engine/classes/model/EmailServer.php index 1aefd8582..5243db077 100644 --- a/workflow/engine/classes/model/EmailServer.php +++ b/workflow/engine/classes/model/EmailServer.php @@ -1,28 +1,46 @@ clearSelectColumns(); + $c->addSelectColumn(EmailServerPeer::MESS_ACCOUNT); + $c->add(EmailServerPeer::MESS_DEFAULT, 1); + $rs = EmailServerPeer::doSelectRS($c, Propel::getDBConnection('workflow_ro')); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $rs->next(); + $response = $rs->getRow(); - $c->clearSelectColumns(); - $c->addSelectColumn( EmailServerPeer::MESS_ACCOUNT ); + return $response; + } - $c->add( EmailServerPeer::MESS_DEFAULT, 1 ); + /** + * Check if the MESS_UID exist + * + * @param string $emailServerUid + * + * @return boolean + * @throws Exception + */ + public static function exists($emailServerUid) + { + try { + $criteria = new Criteria('workflow'); + $criteria->add(EmailServerPeer::MESS_UID, $emailServerUid, Criteria::EQUAL); + $dataset = EmailServerPeer::doSelectOne($criteria); - $rs = EmailServerPeer::doSelectRS( $c, Propel::getDBConnection('workflow_ro') ); - $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $rs->next(); - $row = $rs->getRow(); - $response=$row; + return !is_null($dataset); - return $response; - } + } catch (Exception $e) { + throw $e; + } + } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php index abe037387..f4a0f2a1b 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php @@ -466,8 +466,17 @@ class EmailEvent } $arrayData = $this->existsEvent($prj_uid, $eventUid); if (sizeof($arrayData)) { - $oEmailServer = new EmailServer(); - $configEmailData = $oEmailServer->getEmailServer($arrayData[7]); + $emailServer = new EmailServer(); + if (empty($arrayData[7])){ + $configEmailData = $emailServer->getEmailServerDefault(); + //We will to show a message, if is not defined the email server default + if(empty($configEmailData)){ + $emailServer->throwExceptionIfNotExistsEmailServer('', 'MESS_UID'); + } + } else { + $configEmailData = $emailServer->getEmailServer($arrayData[7]); + } + $emailGroupTo = []; $emailTo = ''; $prfUid = $arrayData[6];