endpoints, running cases, export, import, files manager issues
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -242,6 +242,41 @@ class FilesManager
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function addProcessFilesManagerInDb($aData)
|
||||
{
|
||||
try {
|
||||
$oProcessFiles = new \ProcessFiles();
|
||||
$aData = array_change_key_case($aData, CASE_UPPER);
|
||||
$oProcessFiles->fromArray($aData, \BasePeer::TYPE_FIELDNAME);
|
||||
|
||||
if($this->existsProcessFile($aData['PRF_UID'])) {
|
||||
$sPkProcessFiles = \G::generateUniqueID();
|
||||
$oProcessFiles->setPrfUid($sPkProcessFiles);
|
||||
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $aData['PRO_UID'] . PATH_SEP . basename($aData['PRF_PATH']);
|
||||
$oProcessFiles->setPrfPath($sDirectory);
|
||||
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
$emailEvent->updatePrfUid($aData['PRF_UID'], $sPkProcessFiles, $aData['PRO_UID']);
|
||||
}
|
||||
|
||||
$result = $oProcessFiles->save();
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function existsProcessFile($prfUid)
|
||||
{
|
||||
try {
|
||||
$obj = \ProcessFilesPeer::retrieveByPK($prfUid);
|
||||
|
||||
return (!is_null($obj))? true : false;
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the Process Files Manager
|
||||
@@ -306,9 +341,11 @@ class FilesManager
|
||||
public function getFileManagerUid($path)
|
||||
{
|
||||
try {
|
||||
$path = explode("/",$path);
|
||||
$baseName = $path[count($path)-2].DIRECTORY_SEPARATOR.$path[count($path)-1];
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID);
|
||||
$criteria->add(\ProcessFilesPeer::PRF_PATH, $path, \Criteria::EQUAL);
|
||||
$criteria->add(\ProcessFilesPeer::PRF_PATH, "%" . $baseName . "%", \Criteria::LIKE);
|
||||
$rsCriteria = \ProcessFilesPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$rsCriteria->next();
|
||||
@@ -371,6 +408,9 @@ class FilesManager
|
||||
$oProcessFiles->setPrfUpdateUsrUid($userUID);
|
||||
$oProcessFiles->setPrfUpdateDate($sDate);
|
||||
$oProcessFiles->save();
|
||||
|
||||
$path = PATH_DATA_MAILTEMPLATES.$sProcessUID.DIRECTORY_SEPARATOR.$sFile;
|
||||
|
||||
$fp = fopen($path, 'w');
|
||||
$content = stripslashes($aData['prf_content']);
|
||||
$content = str_replace("@amp@", "&", $content);
|
||||
@@ -417,8 +457,11 @@ class FilesManager
|
||||
if ($path == '') {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('prf_uid')));
|
||||
}
|
||||
|
||||
if (file_exists($path)) {
|
||||
|
||||
$sFile = end(explode("/",$path));
|
||||
$path = PATH_DATA_MAILTEMPLATES.$sProcessUID.DIRECTORY_SEPARATOR.$sFile;
|
||||
|
||||
if (file_exists($path) && !is_dir($path)) {
|
||||
unlink($path);
|
||||
}
|
||||
|
||||
|
||||
@@ -391,7 +391,7 @@ abstract class Importer
|
||||
foreach ($arrayWorkflowTables["tasks"] as $key => $value) {
|
||||
$arrayTaskData = $value;
|
||||
|
||||
if (!in_array($arrayTaskData["TAS_TYPE"], array("GATEWAYTOGATEWAY", "WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT"))) {
|
||||
if (!in_array($arrayTaskData["TAS_TYPE"], array("GATEWAYTOGATEWAY", "WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT", "END-EMAIL-EVENT", "INTERMEDIATE-EMAIL-EVENT"))) {
|
||||
$result = $workflow->updateTask($arrayTaskData["TAS_UID"], $arrayTaskData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,8 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
"end-message-event" => array("type" => "END-MESSAGE-EVENT", "prefix" => "eme-"),
|
||||
"start-message-event" => array("type" => "START-MESSAGE-EVENT", "prefix" => "sme-"),
|
||||
"intermediate-throw-message-event" => array("type" => "INTERMEDIATE-THROW-MESSAGE-EVENT", "prefix" => "itme-"),
|
||||
"intermediate-catch-message-event" => array("type" => "INTERMEDIATE-CATCH-MESSAGE-EVENT", "prefix" => "icme-")
|
||||
"intermediate-catch-message-event" => array("type" => "INTERMEDIATE-CATCH-MESSAGE-EVENT", "prefix" => "icme-"),
|
||||
"end-email-event" => array("type" => "END-EMAIL-EVENT", "prefix" => "eee-")
|
||||
);
|
||||
|
||||
private $arrayElementTaskRelation = array();
|
||||
@@ -552,6 +553,20 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$messageEventDefinition->delete($arrayMessageEventDefinitionData["MSGED_UID"]);
|
||||
}
|
||||
}
|
||||
|
||||
//Email-Event - Delete
|
||||
$arrayEventType = array("END", "INTERMEDIATE");
|
||||
$arrayEventMarker = array("EMAIL");
|
||||
|
||||
if (in_array($bpmnEvent->getEvnType(), $arrayEventType) && in_array($bpmnEvent->getEvnMarker(), $arrayEventMarker)) {
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
|
||||
if ($emailEvent->existsEvent($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid())) {
|
||||
$arrayEmailEventData = $emailEvent->getEmailEventData($bpmnEvent->getPrjUid(), $bpmnEvent->getEvnUid());
|
||||
$arrayEmailEventData = array_change_key_case($arrayEmailEventData, CASE_UPPER);
|
||||
$emailEvent->delete($bpmnEvent->getPrjUid(), $arrayEmailEventData["EMAIL_EVENT_UID"], true);
|
||||
}
|
||||
}
|
||||
|
||||
//Element-Task-Relation - Delete
|
||||
$this->removeElementTaskRelation($bpmnEvent->getEvnUid(), "bpmnEvent");
|
||||
@@ -820,6 +835,16 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
);
|
||||
|
||||
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
default:
|
||||
//EMPTY //and others types
|
||||
$result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault);
|
||||
@@ -908,6 +933,16 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
"end-message-event"
|
||||
);
|
||||
|
||||
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
);
|
||||
|
||||
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
@@ -995,6 +1030,16 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($activity["ACT_UID"], $taskUid, "SEQUENTIAL");
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
);
|
||||
|
||||
$result = $this->wp->addRoute($activity["ACT_UID"], $taskUid, "SEQUENTIAL");
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
default:
|
||||
//EMPTY //This it's already implemented
|
||||
//and others types
|
||||
|
||||
@@ -1473,5 +1473,50 @@ class Bpmn extends Handler
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function getEmailEventTypeBetweenElementOriginAndElementDest(
|
||||
$elementOriginUid,
|
||||
$elementOriginType,
|
||||
$elementDestUid,
|
||||
$elementDestType
|
||||
) {
|
||||
try {
|
||||
$arrayEventType = array("END", "INTERMEDIATE");
|
||||
$arrayEventMarker = array("EMAIL");
|
||||
|
||||
$this->arrayElementOriginChecked = array();
|
||||
|
||||
$arrayEventAux = $this->getElementsBetweenElementOriginAndElementDest(
|
||||
$elementOriginUid,
|
||||
$elementOriginType,
|
||||
$elementDestUid,
|
||||
$elementDestType,
|
||||
0
|
||||
);
|
||||
|
||||
ksort($arrayEventAux);
|
||||
|
||||
$arrayEvent = array();
|
||||
|
||||
foreach ($arrayEventAux as $value) {
|
||||
if ($value[1] == "bpmnEvent") {
|
||||
$event = \BpmnEventPeer::retrieveByPK($value[0]);
|
||||
|
||||
if (!is_null($event) &&
|
||||
in_array($event->getEvnType(), $arrayEventType) && in_array($event->getEvnMarker(), $arrayEventMarker)
|
||||
) {
|
||||
$arrayEvent[] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayEvent;
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -855,6 +855,32 @@ class Workflow extends Handler
|
||||
|
||||
$messageEventDefinition->delete($row["MSGED_UID"]);
|
||||
}
|
||||
|
||||
//Delete Email-Event
|
||||
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\EmailEventPeer::EMAIL_EVENT_UID);
|
||||
$criteria->add(\EmailEventPeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL);
|
||||
$rsCriteria = \EmailEventPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$emailEvent->delete($sProcessUID,$row["EMAIL_EVENT_UID"],false);
|
||||
}
|
||||
|
||||
//Delete files Manager
|
||||
$filesManager = new \ProcessMaker\BusinessModel\FilesManager();
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID);
|
||||
$criteria->add(\ProcessFilesPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL);
|
||||
$rsCriteria = \ProcessFilesPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$filesManager->deleteProcessFilesManager($sProcessUID, $row["PRF_UID"]);
|
||||
}
|
||||
|
||||
//Delete the process
|
||||
try {
|
||||
@@ -1241,6 +1267,22 @@ class Workflow extends Handler
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Update EMAIL_EVENT.EVN_UID
|
||||
if (isset($arrayWorkflowData["emailEvent"])) {
|
||||
foreach ($arrayWorkflowData["emailEvent"] as $key => $value) {
|
||||
$emailEventEventUid = $arrayWorkflowData["emailEvent"][$key]["EVN_UID"];
|
||||
|
||||
foreach ($arrayUid as $value2) {
|
||||
$arrayItem = $value2;
|
||||
|
||||
if ($arrayItem["old_uid"] == $emailEventEventUid) {
|
||||
$arrayWorkflowData["emailEvent"][$key]["EVN_UID"] = $arrayItem["new_uid"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Workflow tables
|
||||
$workflowData = (object)($arrayWorkflowData);
|
||||
|
||||
@@ -48,10 +48,10 @@ class EmailEvent extends Api
|
||||
* @param string $prj_uid {@min 1} {@max 32}
|
||||
* @param string $act_uid {@min 1} {@max 32}
|
||||
*/
|
||||
public function doGetEmailEvent($prj_uid, $act_uid )
|
||||
public function doGetEmailEvent($prj_uid, $act_uid)
|
||||
{
|
||||
try {
|
||||
$response = $this->EmailEvent->getEmailEventData($act_uid);
|
||||
$response = $this->EmailEvent->getEmailEventData($prj_uid, $act_uid);
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
@@ -98,7 +98,22 @@ class EmailEvent extends Api
|
||||
public function doDeleteEmailEvent($prj_uid, $email_event_uid)
|
||||
{
|
||||
try {
|
||||
$this->EmailEvent->delete($email_event_uid);
|
||||
$this->EmailEvent->delete($prj_uid, $email_event_uid);
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url DELETE /:prj_uid/email-event/by-event/:act_uid
|
||||
*
|
||||
* @param string $prj_uid {@min 32}{@max 32}
|
||||
* @param string $act_uid {@min 32}{@max 32}
|
||||
*/
|
||||
public function doDeleteEmailEventByEvent ($prj_uid, $act_uid)
|
||||
{
|
||||
try {
|
||||
$this->EmailEvent->deleteByEvent($prj_uid, $act_uid);
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user