PMC-778
This commit is contained in:
committed by
Paula Quispe
parent
5344dc7f32
commit
90a8150bd7
@@ -7,6 +7,7 @@ use AbeConfigurationPeer;
|
||||
use AbeRequests;
|
||||
use AbeRequestsPeer;
|
||||
use AbeResponsesPeer;
|
||||
use ActionsByEmailCoreClass;
|
||||
use AppDelegation;
|
||||
use AppDelegationPeer;
|
||||
use AppMessage;
|
||||
@@ -18,6 +19,8 @@ use G;
|
||||
use PmDynaform;
|
||||
use PMLicensedFeatures;
|
||||
use ProcessMaker\Core\System;
|
||||
use ProcessMaker\Model\AbeConfiguration as AbeConfigurationModel;
|
||||
use ProcessMaker\Model\EmailServerModel;
|
||||
use ProcessMaker\Plugins\PluginRegistry;
|
||||
use Publisher;
|
||||
use ResultSet;
|
||||
@@ -267,10 +270,10 @@ class ActionsByEmail
|
||||
|
||||
/**
|
||||
* Get the information for the log.
|
||||
*
|
||||
*
|
||||
* @param array $arrayData
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see ProcessMaker\Services\Api\ActionsByEmail->loadActionByEmail()
|
||||
* @see workflow/engine/methods/actionsByEmail/actionsByEmailAjax.php
|
||||
* @link https://wiki.processmaker.com/3.3/Actions_by_Email
|
||||
@@ -376,34 +379,27 @@ class ActionsByEmail
|
||||
if (!isset($arrayData['REQ_UID'])) {
|
||||
$arrayData['REQ_UID'] = '';
|
||||
}
|
||||
|
||||
$abeRequest = new AbeRequests();
|
||||
$dataRes = $abeRequest->getAbeRequest($arrayData['REQ_UID']);
|
||||
|
||||
$dataRes = AbeConfigurationModel::getAbeRequest($arrayData['REQ_UID']);
|
||||
if (!empty($dataRes)) {
|
||||
if (is_null($dataRes['DEL_FINISH_DATE'])) {
|
||||
|
||||
$emailServer = new EmailServer();
|
||||
$criteria = $emailServer->getEmailServerCriteria();
|
||||
$rsCriteria = EmailServerPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
if ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$arrayConfigAux = $row;
|
||||
$arrayConfigAux["SMTPSecure"] = $row["SMTPSECURE"];
|
||||
}
|
||||
$aSetup = (!empty($arrayConfigAux))? $arrayConfigAux : System::getEmailConfiguration();
|
||||
|
||||
$emailServer = new EmailServerModel();
|
||||
$criteria = $emailServer->getEmailServer($dataRes['ABE_EMAIL_SERVER_UID']);
|
||||
$setup = !empty($criteria) ? $criteria : $emailServer->getEmailServerDefault();
|
||||
$spool = new SpoolRun();
|
||||
$spool->setConfig($aSetup);
|
||||
$spool->setConfig($setup);
|
||||
$abeCore = new ActionsByEmailCoreClass();
|
||||
$abeCore->setTaskAbeProperties([
|
||||
'ABE_MAILSERVER_OR_MAILCURRENT' => $dataRes['ABE_MAILSERVER_OR_MAILCURRENT'],
|
||||
'ABE_TYPE' => $dataRes['ABE_TYPE']
|
||||
]);
|
||||
$abeCore->publicDefineEmailFrom($setup);
|
||||
$messageArray = AppMessage::buildMessageRow(
|
||||
'',
|
||||
$dataRes['APP_UID'],
|
||||
$dataRes['DEL_INDEX'],
|
||||
WsBase::MESSAGE_TYPE_ACTIONS_BY_EMAIL,
|
||||
$dataRes['ABE_REQ_SUBJECT'],
|
||||
$aSetup['MESS_ACCOUNT'],
|
||||
$abeCore->getEmailFrom(),
|
||||
$dataRes['ABE_REQ_SENT_TO'],
|
||||
$dataRes['ABE_REQ_BODY'],
|
||||
'',
|
||||
@@ -413,7 +409,7 @@ class ActionsByEmail
|
||||
'pending',
|
||||
1,
|
||||
'',
|
||||
false,
|
||||
true,
|
||||
isset($dataRes['APP_NUMBER']) ? $dataRes['APP_NUMBER'] : 0,
|
||||
$dataRes['PRO_ID'],
|
||||
$dataRes['TAS_ID']
|
||||
@@ -436,10 +432,10 @@ class ActionsByEmail
|
||||
throw $error;
|
||||
}
|
||||
} else {
|
||||
$message = G::LoadTranslation('ID_UNABLE_TO_SEND_EMAIL');
|
||||
$message = G::LoadTranslation('ID_UNABLE_TO_SEND_EMAIL');
|
||||
}
|
||||
} else {
|
||||
$message = G::LoadTranslation('ID_UNEXPECTED_ERROR_OCCURRED_PLEASE');
|
||||
$message = G::LoadTranslation('ID_UNEXPECTED_ERROR_OCCURRED_PLEASE');
|
||||
}
|
||||
|
||||
//Return
|
||||
@@ -451,7 +447,7 @@ class ActionsByEmail
|
||||
* @param array $arrayData
|
||||
*
|
||||
* @return string $message
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/actionsByEmail/actionsByEmailAjax.php
|
||||
* @see ProcessMaker\Services\Api\ActionsByEmail->viewForm()
|
||||
* @link https://wiki.processmaker.com/3.3/Actions_by_Email#Actions_by_Email_Log
|
||||
@@ -560,10 +556,10 @@ class ActionsByEmail
|
||||
|
||||
/**
|
||||
* Get the decision from Actions By Email by BPMN dynaform.
|
||||
*
|
||||
*
|
||||
* @param array $dataRes
|
||||
* @return string
|
||||
*
|
||||
*
|
||||
* @see ActionsByEmail->viewForm()
|
||||
* @link https://wiki.processmaker.com/3.3/Actions_by_Email
|
||||
*/
|
||||
@@ -640,7 +636,7 @@ class ActionsByEmail
|
||||
$message = $field->label . ': ';
|
||||
if (!empty($value)) {
|
||||
/**
|
||||
* Value 'On' is deprecated in version ProcessMaker 3.x.x.
|
||||
* Value 'On' is deprecated in version ProcessMaker 3.x.x.
|
||||
* now return '1'.
|
||||
* @deprecated
|
||||
*/
|
||||
|
||||
100
workflow/engine/src/ProcessMaker/Model/AbeConfiguration.php
Normal file
100
workflow/engine/src/ProcessMaker/Model/AbeConfiguration.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AbeConfiguration extends model
|
||||
{
|
||||
protected $table = "ABE_CONFIGURATION";
|
||||
// We do not have create/update timestamps for this table
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* Relation between process
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
*/
|
||||
public function process()
|
||||
{
|
||||
return $this->belongsTo(Process::class, 'PRO_UID', 'PRO_UID');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relation between task
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
*/
|
||||
public function task()
|
||||
{
|
||||
return $this->belongsTo(Task::class, 'TAS_UID', 'TAS_UID');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relation between emailServer
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
*/
|
||||
public function emailServer()
|
||||
{
|
||||
return $this->belongsTo(EmailServer::class, 'MESS_UID', 'MESS_UID');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get information about the notification sent
|
||||
*
|
||||
* @param string $abeRequestUid
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getAbeRequest($abeRequestUid)
|
||||
{
|
||||
$selectedColumns = [
|
||||
'ABE_CONFIGURATION.ABE_UID',
|
||||
'ABE_CONFIGURATION.PRO_UID',
|
||||
'ABE_CONFIGURATION.TAS_UID',
|
||||
'ABE_CONFIGURATION.ABE_EMAIL_SERVER_UID',
|
||||
'ABE_CONFIGURATION.ABE_TYPE',
|
||||
'ABE_CONFIGURATION.ABE_MAILSERVER_OR_MAILCURRENT',
|
||||
'TASK.TAS_ID',
|
||||
'PROCESS.PRO_ID',
|
||||
'ABE_REQUESTS.ABE_REQ_UID',
|
||||
'ABE_REQUESTS.APP_UID',
|
||||
'ABE_REQUESTS.DEL_INDEX',
|
||||
'ABE_REQUESTS.ABE_REQ_SENT_TO',
|
||||
'ABE_REQUESTS.ABE_REQ_SUBJECT',
|
||||
'ABE_REQUESTS.ABE_REQ_BODY',
|
||||
'ABE_REQUESTS.ABE_REQ_ANSWERED',
|
||||
'ABE_REQUESTS.ABE_REQ_STATUS',
|
||||
'APP_DELEGATION.DEL_FINISH_DATE',
|
||||
'APP_DELEGATION.APP_NUMBER'
|
||||
];
|
||||
$query = AbeConfiguration::query()->select($selectedColumns);
|
||||
|
||||
$query->leftJoin('TASK', function ($join) {
|
||||
$join->on('ABE_CONFIGURATION.TAS_UID', '=', 'TASK.TAS_UID');
|
||||
});
|
||||
$query->leftJoin('PROCESS', function ($join) {
|
||||
$join->on('ABE_CONFIGURATION.PRO_UID', '=', 'PROCESS.PRO_UID');
|
||||
});
|
||||
$query->leftJoin('ABE_REQUESTS', function ($join) {
|
||||
$join->on('ABE_CONFIGURATION.ABE_UID', '=', 'ABE_REQUESTS.ABE_UID');
|
||||
});
|
||||
$query->leftJoin('APP_DELEGATION', function ($join) {
|
||||
$join->on('ABE_REQUESTS.APP_UID', '=', 'APP_DELEGATION.APP_UID')
|
||||
->on('ABE_REQUESTS.DEL_INDEX', '=', 'APP_DELEGATION.DEL_INDEX');
|
||||
});
|
||||
$query->where('ABE_REQUESTS.ABE_REQ_UID', '=', $abeRequestUid);
|
||||
|
||||
$query->limit(1);
|
||||
|
||||
$res = $query->get()->values()->toArray();
|
||||
|
||||
if (!empty($res)) {
|
||||
return $res[0];
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
33
workflow/engine/src/ProcessMaker/Model/AbeRequest.php
Normal file
33
workflow/engine/src/ProcessMaker/Model/AbeRequest.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AbeRequest extends Model
|
||||
{
|
||||
protected $table = "ABE_REQUESTS";
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* Relation between application
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasOne
|
||||
*/
|
||||
public function application()
|
||||
{
|
||||
return $this->hasOne(Application::class, 'APP_UID', 'APP_UID');
|
||||
}
|
||||
|
||||
/**
|
||||
* Relation between abeConfiguration
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasOne
|
||||
*/
|
||||
public function abeConfiguration()
|
||||
{
|
||||
return $this->hasOne(AbeConfiguration::class, 'ABE_UID', 'ABE_UID');
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class EmailServer extends Model
|
||||
{
|
||||
protected $table = 'EMAIL_SERVER';
|
||||
protected $primaryKey = 'MESS_UID';
|
||||
public $timestamps = false;
|
||||
|
||||
}
|
||||
84
workflow/engine/src/ProcessMaker/Model/EmailServerModel.php
Normal file
84
workflow/engine/src/ProcessMaker/Model/EmailServerModel.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class EmailServerModel extends Model
|
||||
{
|
||||
protected $table = 'EMAIL_SERVER';
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* Obtain the selected columns of the EMAIL_SERVER table
|
||||
*
|
||||
* @param string $messUid
|
||||
* @return array
|
||||
* @see ProcessMaker\BusinessModel\ActionsByEmail::forwardMail()
|
||||
*/
|
||||
public function getEmailServer($messUid)
|
||||
{
|
||||
$selectedColumns = [
|
||||
'EMAIL_SERVER.MESS_UID',
|
||||
'EMAIL_SERVER.MESS_ENGINE',
|
||||
'EMAIL_SERVER.MESS_SERVER',
|
||||
'EMAIL_SERVER.MESS_PORT',
|
||||
'EMAIL_SERVER.MESS_RAUTH',
|
||||
'EMAIL_SERVER.MESS_ACCOUNT',
|
||||
'EMAIL_SERVER.MESS_PASSWORD',
|
||||
'EMAIL_SERVER.MESS_FROM_MAIL',
|
||||
'EMAIL_SERVER.MESS_FROM_NAME',
|
||||
'EMAIL_SERVER.SMTPSECURE',
|
||||
'EMAIL_SERVER.MESS_TRY_SEND_INMEDIATLY',
|
||||
'EMAIL_SERVER.MAIL_TO',
|
||||
'EMAIL_SERVER.MESS_DEFAULT'
|
||||
];
|
||||
$query = EmailServerModel::query()->select($selectedColumns);
|
||||
$query->where('EMAIL_SERVER.MESS_UID', '=', $messUid);
|
||||
$res = $query->get()->values()->toArray();
|
||||
$firstElement = head($res);
|
||||
|
||||
return $firstElement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtain the default EMAI_SERVER configuration
|
||||
*
|
||||
* @return array
|
||||
* @see ProcessMaker\BusinessModel\ActionsByEmail::forwardMail()
|
||||
*/
|
||||
public function getEmailServerDefault()
|
||||
{
|
||||
$selectedColumns = [
|
||||
'EMAIL_SERVER.MESS_UID',
|
||||
'EMAIL_SERVER.MESS_ENGINE',
|
||||
'EMAIL_SERVER.MESS_SERVER',
|
||||
'EMAIL_SERVER.MESS_PORT',
|
||||
'EMAIL_SERVER.MESS_INCOMING_SERVER',
|
||||
'EMAIL_SERVER.MESS_INCOMING_PORT',
|
||||
'EMAIL_SERVER.MESS_RAUTH',
|
||||
'EMAIL_SERVER.MESS_ACCOUNT',
|
||||
'EMAIL_SERVER.MESS_PASSWORD',
|
||||
'EMAIL_SERVER.MESS_FROM_MAIL',
|
||||
'EMAIL_SERVER.MESS_FROM_NAME',
|
||||
'EMAIL_SERVER.SMTPSECURE',
|
||||
'EMAIL_SERVER.MESS_TRY_SEND_INMEDIATLY',
|
||||
'EMAIL_SERVER.MAIL_TO',
|
||||
'EMAIL_SERVER.MESS_DEFAULT'
|
||||
];
|
||||
$query = EmailServerModel::query()->select($selectedColumns)
|
||||
->where('MESS_DEFAULT', '=', 1);
|
||||
$firstElement = $query->get()->values()->toArray();
|
||||
|
||||
if (!empty($firstElement)) {
|
||||
$firstElement = head($firstElement);
|
||||
// @todo these index are been keep due to compatibility reasons
|
||||
$firstElement['MESS_BACKGROUND'] = '';
|
||||
$firstElement['MESS_PASSWORD_HIDDEN'] = '';
|
||||
$firstElement['MESS_EXECUTE_EVERY'] = '';
|
||||
$firstElement['MESS_SEND_MAX'] = '';
|
||||
}
|
||||
|
||||
return $firstElement;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user