email_event
This commit is contained in:
@@ -112,7 +112,7 @@ class Derivation
|
||||
$arrayTaskData["NEXT_TASK"]["TAS_PARENT"] = "";
|
||||
}
|
||||
|
||||
$arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!in_array($arrayTaskData["NEXT_TASK"]["TAS_TYPE"], array("GATEWAYTOGATEWAY", "END-MESSAGE-EVENT", "SCRIPT-TASK")))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "", "USR_FULLNAME" => "");
|
||||
$arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!in_array($arrayTaskData["NEXT_TASK"]["TAS_TYPE"], array("GATEWAYTOGATEWAY", "END-MESSAGE-EVENT", "SCRIPT-TASK", "END-EMAIL-EVENT")))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "", "USR_FULLNAME" => "");
|
||||
}
|
||||
|
||||
//Return
|
||||
@@ -219,7 +219,7 @@ class Derivation
|
||||
$arrayNextTask[++$i] = $this->prepareInformationTask($arrayNextTaskDefault);
|
||||
}
|
||||
|
||||
//Check Task GATEWAYTOGATEWAY or END-MESSAGE-EVENT
|
||||
//Check Task GATEWAYTOGATEWAY or END-MESSAGE-EVENT or END-EMAIL-EVENT
|
||||
$arrayNextTaskBackup = $arrayNextTask;
|
||||
$arrayNextTask = array();
|
||||
$i = 0;
|
||||
@@ -228,7 +228,7 @@ class Derivation
|
||||
$arrayNextTaskData = $value;
|
||||
|
||||
if ($arrayNextTaskData["NEXT_TASK"]["TAS_UID"] != "-1" &&
|
||||
in_array($arrayNextTaskData["NEXT_TASK"]["TAS_TYPE"], array("GATEWAYTOGATEWAY", "END-MESSAGE-EVENT"))
|
||||
in_array($arrayNextTaskData["NEXT_TASK"]["TAS_TYPE"], array("GATEWAYTOGATEWAY", "END-MESSAGE-EVENT", "END-EMAIL-EVENT"))
|
||||
) {
|
||||
$arrayAux = $this->prepareInformation($arrayData, $arrayNextTaskData["NEXT_TASK"]["TAS_UID"]);
|
||||
|
||||
@@ -236,8 +236,8 @@ class Derivation
|
||||
$arrayNextTask[++$i] = $value2;
|
||||
}
|
||||
} else {
|
||||
if ($arrayNextTaskData["TAS_TYPE"] == "END-MESSAGE-EVENT" &&
|
||||
$arrayNextTaskData["NEXT_TASK"]["TAS_UID"] == "-1"
|
||||
if (in_array($arrayNextTaskData["TAS_TYPE"], array("END-MESSAGE-EVENT", "END-EMAIL-EVENT")) &&
|
||||
$arrayNextTaskData["NEXT_TASK"]["TAS_UID"] == "-1"
|
||||
) {
|
||||
$arrayNextTaskData["NEXT_TASK"]["TAS_UID"] = $arrayNextTaskData["TAS_UID"] . "/" . $arrayNextTaskData["NEXT_TASK"]["TAS_UID"];
|
||||
}
|
||||
@@ -599,6 +599,7 @@ class Derivation
|
||||
|
||||
foreach ($nextDelegations as $nextDel) {
|
||||
//BpmnEvent - END-MESSAGE-EVENT - Check and get unique id
|
||||
//BpmnEvent - END-EMAIL-EVENT - Check and get unique id
|
||||
if (preg_match("/^(.{32})\/(\-1)$/", $nextDel["TAS_UID"], $arrayMatch)) {
|
||||
$nextDel["TAS_UID"] = $arrayMatch[2];
|
||||
$nextDel["TAS_UID_DUMMY"] = $arrayMatch[1];
|
||||
@@ -643,15 +644,31 @@ class Derivation
|
||||
$this->case->closeAllThreads( $currentDelegation['APP_UID'] );
|
||||
//I think we need to change the APP_STATUS to completed,
|
||||
|
||||
//Throw Message-Events - BpmnEvent - END-MESSAGE-EVENT
|
||||
//BpmnEvent - END-MESSAGE-EVENT and END-EMAIL-EVENT
|
||||
if (isset($nextDel["TAS_UID_DUMMY"])) {
|
||||
$case = new \ProcessMaker\BusinessModel\Cases();
|
||||
|
||||
$case->throwMessageEventBetweenElementOriginAndElementDest(
|
||||
$currentDelegation["TAS_UID"],
|
||||
$nextDel["TAS_UID_DUMMY"],
|
||||
$appFields
|
||||
);
|
||||
$taskDummy = TaskPeer::retrieveByPK($nextDel["TAS_UID_DUMMY"]);
|
||||
switch ($taskDummy->getTasType()) {
|
||||
case "END-MESSAGE-EVENT":
|
||||
//Throw Message-Events - BpmnEvent - END-MESSAGE-EVENT
|
||||
$case = new \ProcessMaker\BusinessModel\Cases();
|
||||
|
||||
$case->throwMessageEventBetweenElementOriginAndElementDest(
|
||||
$currentDelegation["TAS_UID"],
|
||||
$nextDel["TAS_UID_DUMMY"],
|
||||
$appFields
|
||||
);
|
||||
break;
|
||||
case "END-EMAIL-EVENT":
|
||||
//Email Event
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
|
||||
$emailEvent->emailEventBetweenElementOriginAndElementDest(
|
||||
$currentDelegation["TAS_UID"],
|
||||
$nextDel["TAS_UID_DUMMY"],
|
||||
$appFields
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TASK_FINISH_TASK:
|
||||
@@ -713,7 +730,16 @@ class Derivation
|
||||
$case = new \ProcessMaker\BusinessModel\Cases();
|
||||
|
||||
$case->throwMessageEventBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields);
|
||||
|
||||
//Email Event
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
|
||||
$emailEvent->emailEventBetweenElementOriginAndElementDest(
|
||||
$currentDelegation["TAS_UID"],
|
||||
$nextDel["TAS_UID"],
|
||||
$appFields
|
||||
);
|
||||
|
||||
//Derivate
|
||||
$aSP = isset( $aSP ) ? $aSP : null;
|
||||
|
||||
|
||||
@@ -847,6 +847,18 @@ class Processes
|
||||
$oData->messageType[$key]["PRJ_UID"] = $sNewProUid;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($oData->emailEvent)) {
|
||||
foreach ($oData->emailEvent as $key => $value) {
|
||||
$oData->emailEvent[$key]["PRJ_UID"] = $sNewProUid;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($oData->filesManager)) {
|
||||
foreach ($oData->filesManager as $key => $value) {
|
||||
$oData->filesManager[$key]["PRO_UID"] = $sNewProUid;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2389,7 +2401,7 @@ class Processes
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renew the GUID's for all the Uids for all the elements
|
||||
*
|
||||
@@ -3168,6 +3180,60 @@ class Processes
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function getEmailEvent($processUid)
|
||||
{
|
||||
try {
|
||||
$arrayEmailEvent = array();
|
||||
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
$criteria = $emailEvent->getEmailEventCriteria();
|
||||
|
||||
//Get data
|
||||
$criteria->add(EmailEventPeer::PRJ_UID, $processUid, Criteria::EQUAL);
|
||||
$rsCriteria = EmailEventPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rsCriteria->next();
|
||||
while ($aRow = $rsCriteria->getRow()) {
|
||||
$arrayEmailEvent[] = $aRow;
|
||||
$rsCriteria->next();
|
||||
}
|
||||
//Return
|
||||
return $arrayEmailEvent;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function getFilesManager($processUid)
|
||||
{
|
||||
try {
|
||||
$arrayFilesManager = array();
|
||||
//Get data
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRO_UID);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::USR_UID);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_UPDATE_USR_UID);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_PATH);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_TYPE);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_EDITABLE);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_CREATE_DATE);
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_UPDATE_DATE);
|
||||
$criteria->add(ProcessFilesPeer::PRO_UID, $processUid, Criteria::EQUAL);
|
||||
$rsCriteria = ProcessFilesPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rsCriteria->next();
|
||||
while ($aRow = $rsCriteria->getRow()) {
|
||||
$arrayFilesManager[] = $aRow;
|
||||
$rsCriteria->next();
|
||||
}
|
||||
//Return
|
||||
return $arrayFilesManager;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function getScriptTasks($processUid)
|
||||
{
|
||||
@@ -3462,6 +3528,48 @@ class Processes
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Email-event records
|
||||
*
|
||||
* @param string $processUid Unique id of Process
|
||||
* @param array $arrayData Data
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function createEmailEvent($processUid, array $arrayData)
|
||||
{
|
||||
try {
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
|
||||
foreach ($arrayData as $value) {
|
||||
$emailEventData = $emailEvent->save($processUid, $value);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Files Manager records
|
||||
*
|
||||
* @param string $processUid Unique id of Process
|
||||
* @param array $arrayData Data
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function createFilesManager($processUid, array $arrayData)
|
||||
{
|
||||
try {
|
||||
$filesManager = new \ProcessMaker\BusinessModel\FilesManager();
|
||||
|
||||
foreach ($arrayData as $value) {
|
||||
$filesManager->addProcessFilesManagerInDb($value);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Script-Task records
|
||||
@@ -3676,6 +3784,8 @@ class Processes
|
||||
$oData->messageTypeVariable = $this->getMessageTypeVariables($sProUid);
|
||||
$oData->messageEventDefinition = $this->getMessageEventDefinitions($sProUid);
|
||||
$oData->scriptTask = $this->getScriptTasks($sProUid);
|
||||
$oData->emailEvent = $this->getEmailEvent($sProUid);
|
||||
$oData->filesManager = $this->getFilesManager($sProUid);
|
||||
$oData->groupwfs = $this->groupwfsMerge($oData->groupwfs, $oData->processUser, "USR_UID");
|
||||
$oData->process["PRO_TYPE_PROCESS"] = "PUBLIC";
|
||||
|
||||
@@ -4776,6 +4886,8 @@ class Processes
|
||||
$this->createMessageTypeVariable((isset($oData->messageTypeVariable))? $oData->messageTypeVariable : array());
|
||||
$this->createMessageEventDefinition($arrayProcessData["PRO_UID"], (isset($oData->messageEventDefinition))? $oData->messageEventDefinition : array());
|
||||
$this->createScriptTask($arrayProcessData["PRO_UID"], (isset($oData->scriptTask))? $oData->scriptTask : array());
|
||||
$this->createEmailEvent($arrayProcessData["PRO_UID"], (isset($oData->emailEvent))? $oData->emailEvent : array());
|
||||
$this->createFilesManager($arrayProcessData["PRO_UID"], (isset($oData->filesManager))? $oData->filesManager : array());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -5343,4 +5455,4 @@ class ObjectCellection
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -159,7 +159,7 @@ class TaskMapBuilder
|
||||
|
||||
$tMap->addColumn('TAS_SELFSERVICE_EXECUTION', 'TasSelfserviceExecution', 'string', CreoleTypes::VARCHAR, false, 15);
|
||||
|
||||
$tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK', 'Please enter a valid value for TAS_TYPE');
|
||||
$tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK|END-EMAIL-EVENT', 'Please enter a valid value for TAS_TYPE');
|
||||
|
||||
$tMap->addValidator('TAS_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'MINUTES|HOURS|DAYS|WEEKS|MONTHS', 'Please select a valid value for TAS_TIMEUNIT.');
|
||||
|
||||
|
||||
@@ -1255,7 +1255,7 @@
|
||||
<column name="TAS_SELFSERVICE_EXECUTION" type="VARCHAR" size="15" default="EVERY_TIME"/>
|
||||
|
||||
<validator column="TAS_TYPE">
|
||||
<rule name="validValues" value="NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK" message="Please enter a valid value for TAS_TYPE"/>
|
||||
<rule name="validValues" value="NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK|END-EMAIL-EVENT|" message="Please enter a valid value for TAS_TYPE"/>
|
||||
</validator>
|
||||
<validator column="TAS_TIMEUNIT">
|
||||
<rule name="validValues" value="MINUTES|HOURS|DAYS|WEEKS|MONTHS" message="Please select a valid value for TAS_TIMEUNIT."/>
|
||||
@@ -5078,4 +5078,26 @@
|
||||
<rule name="validValues" value="TRIGGER" message="Please set a valid value for TMREVN_DEF_STATUS" />
|
||||
</validator>
|
||||
</table>
|
||||
|
||||
<table name="EMAIL_EVENT">
|
||||
<vendor type="mysql">
|
||||
<parameter name="Name" value="EMAIL_EVENT" />
|
||||
<parameter name="Engine" value="InnoDB" />
|
||||
<parameter name="Version" value="10" />
|
||||
<parameter name="Row_format" value="Dynamic" />
|
||||
<parameter name="Data_free" value="0" />
|
||||
<parameter name="Auto_increment" value="" />
|
||||
<parameter name="Check_time" value="" />
|
||||
<parameter name="Collation" value="utf8_general_ci" />
|
||||
<parameter name="Checksum" value="" />
|
||||
<parameter name="Create_options" value="" />
|
||||
</vendor>
|
||||
<column name="EMAIL_EVENT_UID" type="VARCHAR" size="32" required="true" primaryKey="true" />
|
||||
<column name="PRJ_UID" type="VARCHAR" size="32" required="true" default=""/>
|
||||
<column name="EVN_UID" type="VARCHAR" size="32" required="true" />
|
||||
<column name="EMAIL_EVENT_FROM" type="VARCHAR" size="100" required="true" default="" />
|
||||
<column name="EMAIL_EVENT_TO" type="LONGVARCHAR" required="true" />
|
||||
<column name="EMAIL_EVENT_SUBJECT" type="VARCHAR" size="150" required="false" default=""/>
|
||||
<column name="PRF_UID" type="VARCHAR" size="32" required="false" default="" />
|
||||
</table>
|
||||
</database>
|
||||
|
||||
@@ -2845,6 +2845,23 @@ CREATE TABLE SCRIPT_TASK
|
||||
PRIMARY KEY (SCRTAS_UID)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
#-- EMAIL_EVENT
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
DROP TABLE IF EXISTS `EMAIL_EVENT`;
|
||||
CREATE TABLE `EMAIL_EVENT`
|
||||
(
|
||||
`EMAIL_EVENT_UID` VARCHAR(32) NOT NULL,
|
||||
`PRJ_UID` VARCHAR(32) default '' NOT NULL,
|
||||
`EVN_UID` VARCHAR(32) NOT NULL,
|
||||
`EMAIL_EVENT_FROM` VARCHAR(100) default '' NOT NULL,
|
||||
`EMAIL_EVENT_TO` MEDIUMTEXT NOT NULL,
|
||||
`EMAIL_EVENT_SUBJECT` VARCHAR(150) default '' NOT NULL,
|
||||
`PRF_UID` VARCHAR(32) default '' NOT NULL,
|
||||
PRIMARY KEY (`EMAIL_EVENT_UID`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
|
||||
|
||||
# This restores the fkey checks, after having unset them earlier
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ debug = 1
|
||||
web-entry-event = "ProcessMaker\Services\Api\Project\WebEntryEvent"
|
||||
message-event-definition = "ProcessMaker\Services\Api\Project\MessageEventDefinition"
|
||||
script-task = "ProcessMaker\Services\Api\Project\ScriptTask"
|
||||
email-event = "ProcessMaker\Services\Api\Project\EmailEvent"
|
||||
|
||||
[alias: projects]
|
||||
project = "ProcessMaker\Services\Api\Project"
|
||||
|
||||
Reference in New Issue
Block a user