Merged in feature/HOR-4823 (pull request #6604)

HOR-4825

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Paula Quispe
2018-08-28 13:18:46 +00:00
committed by Julio Cesar Laura Avendaño
3 changed files with 53 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
<?php <?php
use ProcessMaker\BusinessModel\EmailEvent;
use ProcessMaker\Core\System; use ProcessMaker\Core\System;
class Processes class Processes
@@ -4183,26 +4184,19 @@ class Processes
* @param string $processUid Unique id of Process * @param string $processUid Unique id of Process
* @param array $arrayData Data * @param array $arrayData Data
* *
* return void * @return void
* @throws Exception
*/ */
public function createEmailEvent($processUid, array $arrayData) public function createEmailEvent($processUid, array $arrayData)
{ {
try { try {
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent(); $emailEvent = new EmailEvent();
$emailServer = new \ProcessMaker\BusinessModel\EmailServer();
$arrayEmailServerDefault = $emailServer->getEmailServerDefault();
foreach ($arrayData as $value) { foreach ($arrayData as $value) {
if (isset($value['__EMAIL_SERVER_UID_PRESERVED__']) && $value['__EMAIL_SERVER_UID_PRESERVED__'] === true) { if (isset($value['__EMAIL_SERVER_UID_PRESERVED__']) && $value['__EMAIL_SERVER_UID_PRESERVED__'] === true) {
unset($value['__EMAIL_SERVER_UID_PRESERVED__']); unset($value['__EMAIL_SERVER_UID_PRESERVED__']);
} else { } elseif(!EmailServer::exists($value['EMAIL_SERVER_UID'])) {
unset($value['EMAIL_EVENT_FROM']); unset($value['EMAIL_EVENT_FROM']);
unset($value['EMAIL_SERVER_UID']); 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); $emailEventData = $emailEvent->save($processUid, $value);

View File

@@ -1,28 +1,46 @@
<?php <?php
class EmailServer extends BaseEmailServer class EmailServer extends BaseEmailServer
{ {
/** /**
* Get the evn_description column value. * Load the default account
* *
* @return string * @return array
*/ */
public function loadDefaultAccount () public function loadDefaultAccount()
{ {
$c = new Criteria( 'workflow' ); $c = new Criteria('workflow');
$del = DBAdapter::getStringDelimiter(); $c->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(); return $response;
$c->addSelectColumn( EmailServerPeer::MESS_ACCOUNT ); }
$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') ); return !is_null($dataset);
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$rs->next();
$row = $rs->getRow();
$response=$row;
return $response; } catch (Exception $e) {
} throw $e;
}
}
} }

View File

@@ -466,8 +466,17 @@ class EmailEvent
} }
$arrayData = $this->existsEvent($prj_uid, $eventUid); $arrayData = $this->existsEvent($prj_uid, $eventUid);
if (sizeof($arrayData)) { if (sizeof($arrayData)) {
$oEmailServer = new EmailServer(); $emailServer = new EmailServer();
$configEmailData = $oEmailServer->getEmailServer($arrayData[7]); 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 = []; $emailGroupTo = [];
$emailTo = ''; $emailTo = '';
$prfUid = $arrayData[6]; $prfUid = $arrayData[6];