This commit is contained in:
ronald
2018-11-29 12:10:35 -04:00
parent 6c52f97599
commit 039518481c
3 changed files with 47 additions and 1 deletions

View File

@@ -731,11 +731,13 @@ class ActionsByEmailCoreClass extends PMPlugin
*/ */
private function getBodyByResponse($fieldValue) private function getBodyByResponse($fieldValue)
{ {
$abeRequest = $this->getAbeRequest();
$bodyToCrypt = [ $bodyToCrypt = [
'workspace' => $this->getWorkspace(), 'workspace' => $this->getWorkspace(),
'appUid' => $this->getAppUid(), 'appUid' => $this->getAppUid(),
'delIndex' => $this->getIndex(), 'delIndex' => $this->getIndex(),
'fieldValue' => $fieldValue, 'fieldValue' => $fieldValue,
'ABE_REQ_UID' => $abeRequest['ABE_REQ_UID']
]; ];
$bodyToCrypt = G::json_encode($bodyToCrypt); $bodyToCrypt = G::json_encode($bodyToCrypt);

View File

@@ -406,13 +406,14 @@ class SpoolRun
switch ($this->config['MESS_ENGINE']) { switch ($this->config['MESS_ENGINE']) {
case 'MAIL': case 'MAIL':
case 'PHPMAILER': case 'PHPMAILER':
case 'IMAP':
switch ($this->config['MESS_ENGINE']) { switch ($this->config['MESS_ENGINE']) {
case 'MAIL': case 'MAIL':
$oPHPMailer = new PHPMailer(); $oPHPMailer = new PHPMailer();
$oPHPMailer->Mailer = 'mail'; $oPHPMailer->Mailer = 'mail';
break; break;
case 'IMAP':
case 'PHPMAILER': case 'PHPMAILER':
$oPHPMailer = new PHPMailer(true); $oPHPMailer = new PHPMailer(true);
$oPHPMailer->Mailer = 'smtp'; $oPHPMailer->Mailer = 'smtp';
@@ -424,6 +425,7 @@ class SpoolRun
switch ($this->config['MESS_ENGINE']) { switch ($this->config['MESS_ENGINE']) {
case 'MAIL': case 'MAIL':
break; break;
case 'IMAP':
case 'PHPMAILER': case 'PHPMAILER':
//Posible Options for SMTPSecure are: "", "ssl" or "tls" //Posible Options for SMTPSecure are: "", "ssl" or "tls"
if (isset($this->config['SMTPSecure']) && preg_match('/^(ssl|tls)$/', $this->config['SMTPSecure'])) { if (isset($this->config['SMTPSecure']) && preg_match('/^(ssl|tls)$/', $this->config['SMTPSecure'])) {

View File

@@ -3,6 +3,7 @@
namespace ProcessMaker\BusinessModel\ActionsByEmail; namespace ProcessMaker\BusinessModel\ActionsByEmail;
use AbeConfigurationPeer; use AbeConfigurationPeer;
use AbeResponses;
use ActionsByEmailCoreClass; use ActionsByEmailCoreClass;
use AppDelegation; use AppDelegation;
use AppNotes; use AppNotes;
@@ -220,6 +221,27 @@ class ResponseReader
$dataField[$actionBodyField] = $textPlain; $dataField[$actionBodyField] = $textPlain;
$caseFieldsABE['APP_DATA'] = array_merge($caseFieldsABE['APP_DATA'], $dataField); $caseFieldsABE['APP_DATA'] = array_merge($caseFieldsABE['APP_DATA'], $dataField);
$dataResponses = [];
$dataResponses['ABE_REQ_UID'] = $caseInfo['ABE_REQ_UID'];
$dataResponses['ABE_RES_CLIENT_IP'] = 'localhost';
$dataResponses['ABE_RES_DATA'] = serialize($dataField);
$dataResponses['ABE_RES_STATUS'] = 'PENDING';
$dataResponses['ABE_RES_MESSAGE'] = '';
try {
$abeAbeResponsesInstance = new AbeResponses();
$dataResponses['ABE_RES_UID'] = $abeAbeResponsesInstance->createOrUpdate($dataResponses);
} catch (Exception $e) {
Bootstrap::registerMonolog(
$this->channel,
300,
$e->getMessage(),
$this->case,
config("system.workspace"),
'processmaker.log'
);
}
ChangeLog::getChangeLog() ChangeLog::getChangeLog()
->getUsrIdByUsrUid($caseFieldsABE['CURRENT_USER_UID'], true) ->getUsrIdByUsrUid($caseFieldsABE['CURRENT_USER_UID'], true)
->setSourceId(ChangeLog::FromABE); ->setSourceId(ChangeLog::FromABE);
@@ -250,6 +272,24 @@ class ResponseReader
throw (new Exception(G::LoadTranslation('ID_ABE_LOG_ROUTING_FAILED'), 400)); throw (new Exception(G::LoadTranslation('ID_ABE_LOG_ROUTING_FAILED'), 400));
} }
//Update AbeResponses
$dataResponses['ABE_RES_STATUS'] = ($code == 0)? 'SENT' : 'ERROR';
$dataResponses['ABE_RES_MESSAGE'] = ($code == 0)? '-' : $result->message;
try {
$abeAbeResponsesInstance = new AbeResponses();
$abeAbeResponsesInstance->createOrUpdate($dataResponses);
} catch (Exception $e) {
Bootstrap::registerMonolog(
$this->channel,
300,
$e->getMessage(),
$this->case,
config("system.workspace"),
'processmaker.log'
);
}
$dataAbeRequests = loadAbeRequest($caseInfo['ABE_REQ_UID']);
//Save Cases Notes //Save Cases Notes
if ($dataAbe['ABE_CASE_NOTE_IN_RESPONSE'] == 1) { if ($dataAbe['ABE_CASE_NOTE_IN_RESPONSE'] == 1) {
$customGrid = unserialize($dataAbe['ABE_CUSTOM_GRID']); $customGrid = unserialize($dataAbe['ABE_CUSTOM_GRID']);
@@ -267,6 +307,8 @@ class ResponseReader
$noteContent = addslashes($noteText); $noteContent = addslashes($noteText);
$appNotes->postNewNote($caseInfo['appUid'], $caseFieldsABE['APP_DATA']['USER_LOGGED'], $noteContent, false); $appNotes->postNewNote($caseInfo['appUid'], $caseFieldsABE['APP_DATA']['USER_LOGGED'], $noteContent, false);
} }
$dataAbeRequests['ABE_REQ_ANSWERED'] = 1;
$code == 0 ? uploadAbeRequest($dataAbeRequests) : '';
} catch (Exception $e) { } catch (Exception $e) {
if ($e->getCode() == 400) { if ($e->getCode() == 400) {
throw (new Exception($e->getMessage(), $e->getCode())); throw (new Exception($e->getMessage(), $e->getCode()));