Merge remote-tracking branch 'pm/3.1' into HOR-1544
This commit is contained in:
@@ -9,8 +9,7 @@ class ElementTaskRelation
|
||||
"PRJ_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "projectUid"),
|
||||
"ELEMENT_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementUid"),
|
||||
"ELEMENT_TYPE" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementType"),
|
||||
"TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid"),
|
||||
"ELEMENT_UID_DEST" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementUidDest")
|
||||
"TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid")
|
||||
);
|
||||
|
||||
private $formatFieldNameInUppercase = true;
|
||||
@@ -360,30 +359,5 @@ class ElementTaskRelation
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if exists the Element-Task-Relation Gateway to Gateway
|
||||
*
|
||||
* @param string $elementUid uid of Element-Task-Relation
|
||||
* @param string $elementUidDest uid of Element-Task-Relation Destiny
|
||||
*
|
||||
* return bool Return true if exists the Element-Task-Relation Gateway to Gateway, false otherwise
|
||||
*/
|
||||
public function existsGatewayToGateway($elementUid,$elementUidDest)
|
||||
{
|
||||
try {
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\ElementTaskRelationPeer::ETR_UID);
|
||||
$criteria->add(\ElementTaskRelationPeer::ELEMENT_UID, $elementUid, \Criteria::EQUAL);
|
||||
$criteria->add(\ElementTaskRelationPeer::ELEMENT_UID_DEST, $elementUidDest, \Criteria::EQUAL);
|
||||
$rsCriteria = \UsersPeer::doSelectRS( $criteria );
|
||||
$rsCriteria->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
|
||||
$rsCriteria->next();
|
||||
|
||||
return ( $rsCriteria->getRow() )? true : false;
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,9 +69,9 @@ class EmailEvent
|
||||
$aRow['EMAIL'] = $aRow['MESS_ACCOUNT'];
|
||||
} else {
|
||||
$aRow['EMAIL'] = $aRow['MESS_FROM_MAIL'];
|
||||
}
|
||||
}
|
||||
if($aRow['EMAIL'] != "") {
|
||||
$accountsArray[] = array_change_key_case($aRow, CASE_LOWER);
|
||||
$accountsArray[] = array_change_key_case($aRow, CASE_LOWER);
|
||||
}
|
||||
}
|
||||
$result->next();
|
||||
@@ -445,10 +445,12 @@ class EmailEvent
|
||||
$emailTo = $email;
|
||||
}
|
||||
}
|
||||
if(!empty($emailTo)) {
|
||||
if(!empty($emailTo) && $arrayData[3] != '') {
|
||||
$subject = $arrayData[5];
|
||||
$subject = \G::replaceDataField($arrayData[5], $arrayApplicationData['APP_DATA']);
|
||||
\PMFSendMessage($appUID, $arrayData[3], $emailTo, '', '', $subject, $contentFile['prf_filename'], array());
|
||||
} else {
|
||||
\Bootstrap::registerMonolog('EmailEventMailError', 200, \G::LoadTranslation('ID_EMAIL_EVENT_CONFIGURATION_EMAIL', array($eventUid, $prj_uid)), ['eventUid' => $eventUid, 'prj_uid' => $prj_uid], SYS_SYS, 'emailEvent.log');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -718,26 +718,10 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
}
|
||||
*/
|
||||
|
||||
public function createTaskByElement($elementUid, $elementType, $key, $elementUidDest="", $routeType = '')
|
||||
private function __createTaskByElement($elementUid, $elementType, $key)
|
||||
{
|
||||
try {
|
||||
$flagElementTaskRelation = false;
|
||||
if($elementUidDest != ""){
|
||||
if( isset($this->arrayElementTaskRelation[$elementUid][$elementUidDest]) ){
|
||||
$flagElementTaskRelation = true;
|
||||
}else{
|
||||
$flagElementTaskRelation = false;
|
||||
}
|
||||
}else{
|
||||
if (isset($this->arrayElementTaskRelation[$elementUid])) {
|
||||
$taskUid = $this->arrayElementTaskRelation[$elementUid];
|
||||
$flagElementTaskRelation = true;
|
||||
}else{
|
||||
$flagElementTaskRelation = false;
|
||||
}
|
||||
}
|
||||
if ($flagElementTaskRelation || (isset($this->arrayElementTaskRelation[$elementUid]) && $routeType ===
|
||||
'SEC-JOIN')) {
|
||||
if (isset($this->arrayElementTaskRelation[$elementUid])) {
|
||||
$taskUid = $this->arrayElementTaskRelation[$elementUid];
|
||||
} else {
|
||||
$taskPosX = 0;
|
||||
@@ -793,30 +777,16 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//Element-Task-Relation - Create
|
||||
$elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation();
|
||||
|
||||
if($elementUidDest == ""){
|
||||
$arrayResult = $elementTaskRelation->create(
|
||||
$this->wp->getUid(),
|
||||
array(
|
||||
"ELEMENT_UID" => $elementUid,
|
||||
"ELEMENT_TYPE" => $elementType,
|
||||
"TAS_UID" => $taskUid
|
||||
)
|
||||
);
|
||||
}else{
|
||||
$createGaToGa = $elementTaskRelation->existsGatewayToGateway($elementUid, $elementUidDest);
|
||||
if(!$createGaToGa){
|
||||
$arrayResult = $elementTaskRelation->create(
|
||||
$this->wp->getUid(),
|
||||
array(
|
||||
"ELEMENT_UID" => $elementUid,
|
||||
"ELEMENT_TYPE" => $elementType,
|
||||
"TAS_UID" => $taskUid,
|
||||
"ELEMENT_UID_DEST" => $elementUidDest
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
$arrayResult = $elementTaskRelation->create(
|
||||
$this->wp->getUid(),
|
||||
[
|
||||
'ELEMENT_UID' => $elementUid,
|
||||
'ELEMENT_TYPE' => $elementType,
|
||||
'TAS_UID' => $taskUid
|
||||
]
|
||||
);
|
||||
|
||||
//Array - Add element
|
||||
$this->arrayElementTaskRelation[$elementUid] = $taskUid;
|
||||
}
|
||||
|
||||
@@ -899,12 +869,10 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
break;
|
||||
case "bpmnGateway":
|
||||
//Gateway ----> Gateway
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$gatewayUid,
|
||||
"bpmnGateway",
|
||||
"gateway-to-gateway",
|
||||
$arrayFlowData["FLO_ELEMENT_DEST"],
|
||||
$routeType
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$arrayFlowData['FLO_ELEMENT_DEST'],
|
||||
'bpmnGateway',
|
||||
'gateway-to-gateway'
|
||||
);
|
||||
|
||||
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);
|
||||
@@ -924,7 +892,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$event->getEvnMarker(): EMPTY or MESSAGETHROW
|
||||
switch ($event->getEvnMarker()) {
|
||||
case "MESSAGETHROW":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-message-event"
|
||||
@@ -934,7 +902,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
@@ -986,7 +954,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
"EMAIL" => "intermediate-throw-email-event"
|
||||
);
|
||||
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$eventUid,
|
||||
"bpmnEvent",
|
||||
$arrayKey[$arrayEventData["EVN_MARKER"]]
|
||||
@@ -1039,7 +1007,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$event->getEvnMarker(): EMPTY or MESSAGETHROW
|
||||
switch ($event->getEvnMarker()) {
|
||||
case "MESSAGETHROW":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-message-event"
|
||||
@@ -1049,7 +1017,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
@@ -1060,7 +1028,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
break;
|
||||
default:
|
||||
//EMPTY //and others types
|
||||
$result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault, $eventUid);
|
||||
$result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -1088,18 +1056,17 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
|
||||
public function mapBpmnFlowsToWorkflowRoutes()
|
||||
{
|
||||
//Task dummies //Delete Task Routes
|
||||
foreach ($this->arrayElementTaskRelation as $value) {
|
||||
$this->wp->resetTaskRoutes($value);
|
||||
}
|
||||
//Delete Routes
|
||||
$criteria = new \Criteria('workflow');
|
||||
|
||||
$criteria->add(\RoutePeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL);
|
||||
|
||||
\RoutePeer::doDelete($criteria);
|
||||
|
||||
//Activities
|
||||
foreach ($this->getActivities() as $value) {
|
||||
$activity = $value;
|
||||
|
||||
//Delete Task Routes
|
||||
$this->wp->resetTaskRoutes($activity["ACT_UID"]);
|
||||
|
||||
//Flows
|
||||
$arrayFlow = \BpmnFlow::findAllBy(array(
|
||||
\BpmnFlowPeer::FLO_TYPE => array("MESSAGE", \Criteria::NOT_EQUAL),
|
||||
@@ -1133,7 +1100,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$event->getEvnMarker(): EMPTY or MESSAGETHROW
|
||||
switch ($event->getEvnMarker()) {
|
||||
case "MESSAGETHROW":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-message-event"
|
||||
@@ -1143,7 +1110,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
@@ -1178,7 +1145,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
case "START":
|
||||
switch ($event["EVN_MARKER"]) {
|
||||
case "MESSAGECATCH":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event["EVN_UID"],
|
||||
"bpmnEvent",
|
||||
"start-message-event"
|
||||
@@ -1189,7 +1156,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$this->mapBpmnEventToWorkflowRoutes($taskUid, $event["EVN_UID"]);
|
||||
break;
|
||||
case "TIMER":
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$event["EVN_UID"],
|
||||
"bpmnEvent",
|
||||
"start-timer-event"
|
||||
@@ -1481,6 +1448,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$uidOld = $lanesetData["LNS_UID"];
|
||||
$lanesetData["LNS_UID"] = Util\Common::generateUID();
|
||||
$diagram = self::refreshElementUid($diagram, $uidOld, $lanesetData["LNS_UID"]);
|
||||
|
||||
$result[] = array(
|
||||
"object" => "laneset",
|
||||
"old_uid" => $uidOld,
|
||||
@@ -1525,6 +1493,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$uidOld = $laneData["LAN_UID"];
|
||||
$laneData["LAN_UID"] = Util\Common::generateUID();
|
||||
$diagram = self::refreshElementUid($diagram, $uidOld, $laneData["LAN_UID"]);
|
||||
|
||||
$result[] = array(
|
||||
"object" => "lane",
|
||||
"old_uid" => $uidOld,
|
||||
@@ -1948,14 +1917,27 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$arrayGatewayData = $bwp->getGateway($value);
|
||||
|
||||
if (!is_null($arrayGatewayData)) {
|
||||
$arrayFlow = \BpmnFlow::findAllBy(array(
|
||||
\BpmnFlowPeer::FLO_TYPE => array("MESSAGE", \Criteria::NOT_EQUAL),
|
||||
\BpmnFlowPeer::FLO_ELEMENT_DEST => $arrayGatewayData["GAT_UID"],
|
||||
\BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => "bpmnGateway"
|
||||
));
|
||||
$arrayFlow = \BpmnFlow::findAllBy([
|
||||
\BpmnFlowPeer::FLO_TYPE => ['MESSAGE', \Criteria::NOT_EQUAL],
|
||||
\BpmnFlowPeer::FLO_ELEMENT_DEST => $arrayGatewayData['GAT_UID'],
|
||||
\BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => 'bpmnGateway'
|
||||
]);
|
||||
|
||||
if (count($arrayFlow) > 1) {
|
||||
$bwp->updateGateway($arrayGatewayData["GAT_UID"], array("GAT_DIRECTION" => "CONVERGING"));
|
||||
$arrayFlow = \BpmnFlow::findAllBy([
|
||||
\BpmnFlowPeer::FLO_TYPE => ['MESSAGE', \Criteria::NOT_EQUAL],
|
||||
\BpmnFlowPeer::FLO_ELEMENT_ORIGIN => $arrayGatewayData['GAT_UID'],
|
||||
\BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => 'bpmnGateway'
|
||||
]);
|
||||
|
||||
if (count($arrayFlow) == 1) {
|
||||
$bwp->updateGateway($arrayGatewayData['GAT_UID'], ['GAT_DIRECTION' => 'CONVERGING']);
|
||||
|
||||
$arrayFlowData = $arrayFlow[0]->toArray();
|
||||
|
||||
$bpmn = new Project\Bpmn();
|
||||
$bpmn->updateFlow($arrayFlowData['FLO_UID'], array_merge($arrayFlowData, ['FLO_CONDITION' => '']));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1968,6 +1950,8 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//Map Bpmn-Flows to Workflow-Routes
|
||||
$bwp->mapBpmnFlowsToWorkflowRoutes();
|
||||
|
||||
$bwp->__gatewayToGatewayDeleteCorruptedRecords(); //Delete corrupted records in task and element_task_relation tables
|
||||
|
||||
//Return
|
||||
return $result;
|
||||
}
|
||||
@@ -2058,5 +2042,74 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
);
|
||||
return $diagram;
|
||||
}
|
||||
}
|
||||
|
||||
private function __gatewayToGatewayDeleteCorruptedRecords()
|
||||
{
|
||||
//Delete corrupted records in task and element_task_relation tables
|
||||
|
||||
$actionDone = 'GATEWAYTOGATEWAY_DELETE_CORRUPTED_RECORDS';
|
||||
|
||||
$criteria = new \Criteria('workflow');
|
||||
|
||||
$criteria->addSelectColumn(\ProcessPeer::PRO_UID);
|
||||
|
||||
$criteria->add(\ProcessPeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL);
|
||||
$criteria->add(\ProcessPeer::PRO_ACTION_DONE, '%' . $actionDone . '%', \Criteria::LIKE);
|
||||
|
||||
$rsCriteria = \ProcessPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
$arrayTaskUid = [];
|
||||
|
||||
$criteria = new \Criteria('workflow');
|
||||
|
||||
$criteria->addSelectColumn(\TaskPeer::TAS_UID);
|
||||
|
||||
$criteria->addAlias('RT', \RoutePeer::TABLE_NAME);
|
||||
$criteria->addAlias('RNT', \RoutePeer::TABLE_NAME);
|
||||
|
||||
$arrayCondition = [];
|
||||
$arrayCondition[] = [\TaskPeer::TAS_UID, 'RT.TAS_UID', \Criteria::EQUAL];
|
||||
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
|
||||
|
||||
$arrayCondition = [];
|
||||
$arrayCondition[] = [\TaskPeer::TAS_UID, 'RNT.ROU_NEXT_TASK', \Criteria::EQUAL];
|
||||
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
|
||||
|
||||
$criteria->add(\TaskPeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL);
|
||||
$criteria->add(\TaskPeer::TAS_TYPE, 'GATEWAYTOGATEWAY', \Criteria::EQUAL);
|
||||
|
||||
$criteria->add(
|
||||
$criteria->getNewCriterion('RT.ROU_UID', null, \Criteria::ISNULL)->addAnd(
|
||||
$criteria->getNewCriterion('RNT.ROU_UID', null, \Criteria::ISNULL))
|
||||
);
|
||||
|
||||
$rsCriteria = \TaskPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$record = $rsCriteria->getRow();
|
||||
|
||||
$arrayTaskUid[] = $record['TAS_UID'];
|
||||
}
|
||||
|
||||
//Delete Task corrupted
|
||||
$criteria = new \Criteria('workflow');
|
||||
$criteria->add(\TaskPeer::TAS_UID, $arrayTaskUid, \Criteria::IN);
|
||||
$result = \TaskPeer::doDelete($criteria);
|
||||
|
||||
//Delete ElementTaskRelation corrupted
|
||||
$criteria = new \Criteria('workflow');
|
||||
$criteria->add(\ElementTaskRelationPeer::TAS_UID, $arrayTaskUid, \Criteria::IN);
|
||||
$result = \ElementTaskRelationPeer::doDelete($criteria);
|
||||
|
||||
//Update Process
|
||||
$process = \ProcessPeer::retrieveByPk($this->wp->getUid());
|
||||
|
||||
$arrayActionDone = ($process->getProActionDone() != '')? unserialize($process->getProActionDone()) : [];
|
||||
$arrayActionDone[] = $actionDone;
|
||||
|
||||
$this->wp->update(['PRO_ACTION_DONE' => serialize($arrayActionDone)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,10 +25,6 @@ class Workflow extends Handler
|
||||
protected $process;
|
||||
protected $proUid;
|
||||
|
||||
protected $tasks = array();
|
||||
protected $routes = array();
|
||||
|
||||
|
||||
public function __construct($data = null)
|
||||
{
|
||||
if (! is_null($data)) {
|
||||
@@ -66,13 +62,13 @@ class Workflow extends Handler
|
||||
$data['PRO_CATEGORY'] = array_key_exists('PRO_CATEGORY', $data) ? $data['PRO_CATEGORY'] : "";
|
||||
|
||||
try {
|
||||
|
||||
|
||||
// Check to make sure that there aren't any html sneaking into process titles.
|
||||
|
||||
$testTitle = htmlspecialchars($data['PRO_TITLE']);
|
||||
|
||||
if($testTitle != $data['PRO_TITLE']) {
|
||||
$data['PRO_TITLE'] = $testTitle;
|
||||
|
||||
if($testTitle != $data['PRO_TITLE']) {
|
||||
$data['PRO_TITLE'] = $testTitle;
|
||||
}
|
||||
|
||||
self::log("Create Process with data:", $data);
|
||||
@@ -373,7 +369,7 @@ class Workflow extends Handler
|
||||
* @return string
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function addRoute($fromTasUid, $toTasUid, $type, $condition = "", $default = 0, $eventUidOrigin = "")
|
||||
public function addRoute($fromTasUid, $toTasUid, $type, $condition = '', $default = 0)
|
||||
{
|
||||
try {
|
||||
$validTypes = array("SEQUENTIAL", "SELECT", "EVALUATE", "PARALLEL", "PARALLEL-BY-EVALUATION", "SEC-JOIN", "DISCRIMINATOR");
|
||||
@@ -393,21 +389,13 @@ class Workflow extends Handler
|
||||
//$oTasks->deleteAllRoutesOfTask($this->proUid, $fromTasUid);
|
||||
//}
|
||||
|
||||
if($toTasUid == "-1"){
|
||||
$route = \Route::findOneBy(array(
|
||||
\RoutePeer::TAS_UID => $fromTasUid,
|
||||
\RoutePeer::ROU_NEXT_TASK => $toTasUid,
|
||||
\RoutePeer::ROU_ELEMENT_ORIGIN => $eventUidOrigin
|
||||
));
|
||||
} else {
|
||||
$route = \Route::findOneBy(array(
|
||||
\RoutePeer::TAS_UID => $fromTasUid,
|
||||
\RoutePeer::ROU_NEXT_TASK => $toTasUid
|
||||
));
|
||||
}
|
||||
$route = \Route::findOneBy([
|
||||
\RoutePeer::TAS_UID => $fromTasUid,
|
||||
\RoutePeer::ROU_NEXT_TASK => $toTasUid
|
||||
]);
|
||||
|
||||
if (is_null($route)) {
|
||||
$result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default, $eventUidOrigin);
|
||||
$result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default);
|
||||
} else {
|
||||
$result = $this->updateRoute($route->getRouUid(), array(
|
||||
"TAS_UID" => $fromTasUid,
|
||||
@@ -521,7 +509,7 @@ class Workflow extends Handler
|
||||
}
|
||||
}
|
||||
|
||||
private function saveNewPattern($sProcessUID = "", $sTaskUID = "", $sNextTask = "", $sType = "", $condition = "", $default = 0, $elementUidOrigin = "")
|
||||
private function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $condition = '', $default = 0)
|
||||
{
|
||||
try {
|
||||
self::log("Add Route from task: $sTaskUID -> to task: $sNextTask ($sType)");
|
||||
@@ -544,7 +532,6 @@ class Workflow extends Handler
|
||||
$aFields["ROU_CASE"] = (int)($aRow["ROUTE_NUMBER"]) + 1;
|
||||
$aFields["ROU_TYPE"] = $sType;
|
||||
$aFields["ROU_DEFAULT"] = $default;
|
||||
$aFields["ROU_ELEMENT_ORIGIN"] = $elementUidOrigin;
|
||||
|
||||
if(! empty($condition)) {
|
||||
$aFields['ROU_CONDITION'] = $condition;
|
||||
|
||||
@@ -14,26 +14,9 @@ class Calendar extends Api
|
||||
private $formatFieldNameInUppercase = false;
|
||||
|
||||
/**
|
||||
* Constructor of the class
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
try {
|
||||
$user = new \ProcessMaker\BusinessModel\User();
|
||||
|
||||
$usrUid = $this->getUserId();
|
||||
|
||||
if (!$user->checkPermission($usrUid, "PM_SETUP")) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION", array($usrUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_CALENDAR}
|
||||
* @url GET
|
||||
*/
|
||||
public function index($filter = null, $start = null, $limit = null)
|
||||
@@ -50,6 +33,9 @@ class Calendar extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_CALENDAR}
|
||||
* @url GET /:cal_uid
|
||||
*
|
||||
* @param string $cal_uid {@min 32}{@max 32}
|
||||
@@ -68,6 +54,9 @@ class Calendar extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_CALENDAR}
|
||||
* @url POST
|
||||
*
|
||||
* @param array $request_data
|
||||
@@ -91,6 +80,9 @@ class Calendar extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_CALENDAR}
|
||||
* @url PUT /:cal_uid
|
||||
*
|
||||
* @param string $cal_uid {@min 32}{@max 32}
|
||||
@@ -109,6 +101,9 @@ class Calendar extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_CALENDAR}
|
||||
* @url DELETE /:cal_uid
|
||||
*
|
||||
* @param string $cal_uid {@min 32}{@max 32}
|
||||
|
||||
@@ -29,6 +29,37 @@ class Light extends Api
|
||||
'dueDate',
|
||||
'delRiskDate'
|
||||
];
|
||||
|
||||
/**
|
||||
* Constructor of the class
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
try {
|
||||
/**
|
||||
* The variable $RBAC can be defined as follows:
|
||||
*
|
||||
* $RBAC = new \stdClass();
|
||||
* $RBAC->aUserInfo['USER_INFO'] = ["USR_UID" => $this->getUserId()];
|
||||
*
|
||||
* Please consider removing the use of this variable in model class,
|
||||
* or perform a corresponding improvement.
|
||||
*/
|
||||
global $RBAC;
|
||||
if (!isset($RBAC)) {
|
||||
\Bootstrap::LoadSystem('rbac');
|
||||
$RBAC = \RBAC::getSingleton(PATH_DATA, session_id());
|
||||
$RBAC->sSystem = 'PROCESSMAKER';
|
||||
$RBAC->initRBAC();
|
||||
$RBAC->loadUserRolePermission($RBAC->sSystem, $this->getUserId());
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list counters
|
||||
* @return array
|
||||
|
||||
@@ -21,13 +21,6 @@ class ProcessCategory extends Api
|
||||
public function __construct()
|
||||
{
|
||||
try {
|
||||
$user = new \ProcessMaker\BusinessModel\User();
|
||||
|
||||
$usrUid = $this->getUserId();
|
||||
|
||||
if (!$user->checkPermission($usrUid, "PM_SETUP")) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION", array($usrUid)));
|
||||
}
|
||||
|
||||
$this->category = new \ProcessMaker\BusinessModel\ProcessCategory();
|
||||
|
||||
@@ -38,6 +31,9 @@ class ProcessCategory extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES}
|
||||
* @url GET /categories
|
||||
*/
|
||||
public function doGetCategories($filter = null, $start = null, $limit = null)
|
||||
@@ -52,6 +48,9 @@ class ProcessCategory extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES}
|
||||
* @url GET /category/:cat_uid
|
||||
*
|
||||
* @param string $cat_uid {@min 32}{@max 32}
|
||||
@@ -68,6 +67,9 @@ class ProcessCategory extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES}
|
||||
* @url POST /category
|
||||
*
|
||||
* @param array $request_data
|
||||
@@ -88,6 +90,9 @@ class ProcessCategory extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES}
|
||||
* @url PUT /category/:cat_uid
|
||||
*
|
||||
* @param string $cat_uid {@min 32}{@max 32}
|
||||
@@ -103,6 +108,9 @@ class ProcessCategory extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES}
|
||||
* @url DELETE /category/:cat_uid
|
||||
*
|
||||
* @param string $cat_uid {@min 32}{@max 32}
|
||||
|
||||
@@ -233,42 +233,42 @@ class ActivityPropertiesStructure
|
||||
public $tas_title;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_description;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_priority_variable;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_derivation_screen_tpl;
|
||||
|
||||
/**
|
||||
* @var string {@from body} {@choice TRUE,FALSE}
|
||||
* @var string {@from body} {@choice TRUE,FALSE} {@required false}
|
||||
*/
|
||||
public $tas_start;
|
||||
|
||||
/**
|
||||
* @var string {@from body} {@choice BALANCED,MANUAL,EVALUATE,REPORT_TO,SELF_SERVICE,SELF_SERVICE_EVALUATE,MULTIPLE_INSTANCE,MULTIPLE_INSTANCE_VALUE_BASED}
|
||||
* @var string {@from body} {@choice BALANCED,MANUAL,EVALUATE,REPORT_TO,SELF_SERVICE,SELF_SERVICE_EVALUATE,MULTIPLE_INSTANCE,MULTIPLE_INSTANCE_VALUE_BASED} {@required false}
|
||||
*/
|
||||
public $tas_assign_type;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_assign_variable;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_group_variable;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var int {@from body} {@required false}
|
||||
*/
|
||||
public $tas_selfservice_time;
|
||||
|
||||
@@ -278,12 +278,12 @@ class ActivityPropertiesStructure
|
||||
public $tas_selfservice_timeout;
|
||||
|
||||
/**
|
||||
* @var string {@from body} {@choice DAYS,,HOURS,MINUTES}
|
||||
* @var string {@from body} {@choice DAYS,,HOURS,MINUTES} {@required false}
|
||||
*/
|
||||
public $tas_selfservice_time_unit;
|
||||
|
||||
/**
|
||||
* @var string {@from body} {@min 0} {@max 32}
|
||||
* @var string {@from body} {@min 0} {@max 32} {@required false}
|
||||
*/
|
||||
public $tas_selfservice_trigger_uid;
|
||||
|
||||
@@ -298,22 +298,22 @@ class ActivityPropertiesStructure
|
||||
public $tas_transfer_fly;
|
||||
|
||||
/**
|
||||
* @var int {@from body}
|
||||
* @var int {@from body} {@required false}
|
||||
*/
|
||||
public $tas_duration;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_timeunit;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_type_day;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_calendar;
|
||||
|
||||
@@ -323,12 +323,12 @@ class ActivityPropertiesStructure
|
||||
public $tas_type;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_def_title;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_def_description;
|
||||
|
||||
@@ -338,22 +338,22 @@ class ActivityPropertiesStructure
|
||||
public $tas_send_last_email;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_def_subject_message;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_def_message_type;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_def_message;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
* @var string {@from body} {@required false}
|
||||
*/
|
||||
public $tas_def_message_template;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user