HOR-1258

Solve the ITME to Start and ITEE

Solve the Send By

-Claim case: Previous User

HOR-1258

EOP send 2 email

, Solve the observation 7
This commit is contained in:
Paula V. Quispe
2016-06-09 16:14:50 -04:00
parent 3eb153c90d
commit 1d719e4ad5
15 changed files with 163 additions and 262 deletions

View File

@@ -114,11 +114,10 @@ class Derivation
$arrayTaskData["NEXT_TASK"]["TAS_PARENT"] = ""; $arrayTaskData["NEXT_TASK"]["TAS_PARENT"] = "";
} }
$regexpTaskTypeToExclude = "GATEWAYTOGATEWAY|END-MESSAGE-EVENT|SCRIPT-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT"; $regexpTaskTypeToExclude = "GATEWAYTOGATEWAY|END-MESSAGE-EVENT|SCRIPT-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT";
$arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!preg_match("/^(?:" . $regexpTaskTypeToExclude . ")$/", $arrayTaskData["NEXT_TASK"]["TAS_TYPE"]))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "", "USR_FULLNAME" => ""); $arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!preg_match("/^(?:" . $regexpTaskTypeToExclude . ")$/", $arrayTaskData["NEXT_TASK"]["TAS_TYPE"]))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "", "USR_FULLNAME" => "");
} }
//Return //Return
return $arrayTaskData; return $arrayTaskData;
} catch (Exception $e) { } catch (Exception $e) {
@@ -150,14 +149,6 @@ class Derivation
$arrayNextTaskDefault = array(); $arrayNextTaskDefault = array();
$i = 0; $i = 0;
//SELECT *
//FROM APP_DELEGATION AS A
//LEFT JOIN TASK AS T ON(T.TAS_UID = A.TAS_UID)
//LEFT JOIN ROUTE AS R ON(R.TAS_UID = A.TAS_UID)
//WHERE
//APP_UID = '$arrayData["APP_UID"]'
//AND DEL_INDEX = '$arrayData["DEL_INDEX"]'
$criteria = new Criteria("workflow"); $criteria = new Criteria("workflow");
$criteria->addSelectColumn(RoutePeer::TAS_UID); $criteria->addSelectColumn(RoutePeer::TAS_UID);
@@ -271,7 +262,7 @@ class Derivation
} }
} }
} else { } else {
$regexpTaskTypeToInclude = "END-MESSAGE-EVENT|END-EMAIL-EVENT"; $regexpTaskTypeToInclude = "END-MESSAGE-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT";
if ($arrayNextTaskData["NEXT_TASK"]["TAS_UID"] == "-1" && if ($arrayNextTaskData["NEXT_TASK"]["TAS_UID"] == "-1" &&
preg_match("/^(?:" . $regexpTaskTypeToInclude . ")$/", $arrayNextTaskData["TAS_TYPE"]) preg_match("/^(?:" . $regexpTaskTypeToInclude . ")$/", $arrayNextTaskData["TAS_TYPE"])
@@ -329,13 +320,6 @@ class Derivation
*/ */
function getRouteCondition ($aData) function getRouteCondition ($aData)
{ {
//SELECT *
//FROM APP_DELEGATION AS A
//LEFT JOIN TASK AS T ON(T.TAS_UID = A.TAS_UID)
//LEFT JOIN ROUTE AS R ON(R.TAS_UID = A.TAS_UID)
//WHERE
//APP_UID = '$aData['APP_UID']'
//AND DEL_INDEX = '$aData['DEL_INDEX']'
$c = new Criteria( 'workflow' ); $c = new Criteria( 'workflow' );
$c->clearSelectColumns(); $c->clearSelectColumns();
$c->addSelectColumn( AppDelegationPeer::TAS_UID ); $c->addSelectColumn( AppDelegationPeer::TAS_UID );
@@ -506,22 +490,10 @@ class Derivation
*/ */
function getNextAssignedUser ($tasInfo) function getNextAssignedUser ($tasInfo)
{ {
//$oUser = new Users();
$nextAssignedTask = $tasInfo['NEXT_TASK']; $nextAssignedTask = $tasInfo['NEXT_TASK'];
$lastAssigned = $tasInfo['NEXT_TASK']['TAS_LAST_ASSIGNED']; $lastAssigned = $tasInfo['NEXT_TASK']['TAS_LAST_ASSIGNED'];
$sTasUid = $tasInfo['NEXT_TASK']['TAS_UID']; $sTasUid = $tasInfo['NEXT_TASK']['TAS_UID'];
//// to do: we can increase the LOCATION by COUNTRY, STATE and LOCATION
///* Verify if the next Task is set with the option "TAS_ASSIGN_LOCATION == TRUE" */
//$assignLocation = '';
//if ($tasInfo['NEXT_TASK']['TAS_ASSIGN_LOCATION'] == 'TRUE') {
// $oUser->load( $tasInfo['USER_UID'] );
// krumo( $oUser->getUsrLocation() );
// //to do: assign for location
// //$assignLocation = " AND USR_LOCATION = " . $oUser->Fields['USR_LOCATION'];
//}
///* End - Verify if the next Task is set with the option "TAS_ASSIGN_LOCATION == TRUE" */
$taskNext = TaskPeer::retrieveByPK($nextAssignedTask["TAS_UID"]); $taskNext = TaskPeer::retrieveByPK($nextAssignedTask["TAS_UID"]);
$bpmnActivityNext = BpmnActivityPeer::retrieveByPK($nextAssignedTask["TAS_UID"]); $bpmnActivityNext = BpmnActivityPeer::retrieveByPK($nextAssignedTask["TAS_UID"]);
@@ -671,239 +643,90 @@ class Derivation
} }
/** /**
* Throw Events for the Case * Execute Event
* *
* @param string $elementOriginUid Unique id of Element Origin (unique id of Task) * @param string $dummyTaskUid Unique id of Element Origin (unique id of Task) This is the nextTask
* @param string $elementDestUid Unique id of Element Destination (unique id of Task) * @param array $applicationData Case data
* @param array $arrayApplicationData Case data
* @param bool $flagEventExecuteBeforeGateway Execute event before gateway * @param bool $flagEventExecuteBeforeGateway Execute event before gateway
* @param bool $flagEventExecuteAfterGateway Execute event after gateway * @param bool $flagEventExecuteAfterGateway Execute event after gateway
* *
* @return void * @return void
*/ */
private function throwEventsBetweenElementOriginAndElementDest($elementOriginUid, $elementDestUid, array $arrayApplicationData, $flagEventExecuteBeforeGateway = true, $flagEventExecuteAfterGateway = true, $rouCondition="") private function executeEvent($dummyTaskUid, array $applicationData, $flagEventExecuteBeforeGateway = true, $flagEventExecuteAfterGateway = true, $elementOriUid='')
{ {
try { try {
//Verify if the Project is BPMN //Verify if the Project is BPMN
$bpmn = new \ProcessMaker\Project\Bpmn(); $bpmn = new \ProcessMaker\Project\Bpmn();
if (!$bpmn->exists($arrayApplicationData["PRO_UID"])) { if (!$bpmn->exists($applicationData["PRO_UID"])) {
return; return;
} }
//Element origin and dest //Element origin and dest
$arrayElement = array();
$elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation(); $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation();
$arrayElementTaskRelationData = $elementTaskRelation->getElementTaskRelationWhere(
$arrayElement = [
"elementOrigin" => ["uid" => $elementOriginUid, "type" => "bpmnActivity"],
"elementDest" => ["uid" => $elementDestUid, "type" => "bpmnActivity"]
];
foreach ($arrayElement as $key => $value) {
$arrayElementTaskRelationData = $elementTaskRelation->getElementTaskRelationWhere(
[ [
ElementTaskRelationPeer::PRJ_UID => $arrayApplicationData["PRO_UID"], ElementTaskRelationPeer::PRJ_UID => $applicationData["PRO_UID"],
ElementTaskRelationPeer::ELEMENT_TYPE => "bpmnEvent", ElementTaskRelationPeer::ELEMENT_TYPE => "bpmnEvent",
ElementTaskRelationPeer::TAS_UID => $arrayElement[$key]["uid"] ElementTaskRelationPeer::TAS_UID => $dummyTaskUid
], ],
true true
);
if(is_null($arrayElementTaskRelationData)){
$arrayOtherElement = array();
$arrayOtherElement = $bpmn->getElementsBetweenElementOriginAndElementDest(
$elementOriUid,
"bpmnActivity",
$dummyTaskUid,
"bpmnActivity"
); );
$count = 0;
if (!is_null($arrayElementTaskRelationData)) { foreach ($arrayOtherElement as $value) {
$arrayElement[$key]["uid"] = $arrayElementTaskRelationData["ELEMENT_UID"]; if($value[1] === 'bpmnEvent'){
$arrayElement[$key]["type"] = "bpmnEvent"; $arrayElement[$count]["uid"] = $value[0];
$arrayElement[$count++]["type"] = $value[1];
}
} }
} }
if (!is_null($arrayElementTaskRelationData)) {
$elementOriginUid = $arrayElement["elementOrigin"]["uid"]; $arrayElement[0]["uid"] = $arrayElementTaskRelationData["ELEMENT_UID"];
$elementOriginType = $arrayElement["elementOrigin"]["type"]; $arrayElement[0]["type"] = "bpmnEvent";
$elementDestUid = $arrayElement["elementDest"]["uid"]; }
$elementDestType = $arrayElement["elementDest"]["type"];
//Throw Events //Throw Events
$messageApplication = new \ProcessMaker\BusinessModel\MessageApplication(); $messageApplication = new \ProcessMaker\BusinessModel\MessageApplication();
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent(); $emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
$arrayEventExecute = ["BEFORE" => $flagEventExecuteBeforeGateway, "AFTER" => $flagEventExecuteAfterGateway]; $arrayEventExecute = ["BEFORE" => $flagEventExecuteBeforeGateway, "AFTER" => $flagEventExecuteAfterGateway];
$positionEventExecute = "BEFORE"; $positionEventExecute = "BEFORE";
$arrayElement = $bpmn->getElementsBetweenElementOriginAndElementDest( if(sizeof($arrayElement)){
$elementOriginUid, foreach ($arrayElement as $value) {
$elementOriginType, switch ($value['type']) {
$elementDestUid, case 'bpmnEvent':
$elementDestType if ($arrayEventExecute[$positionEventExecute]) {
); $event = \BpmnEventPeer::retrieveByPK($value['uid']);
//Search next is INTERMEDIATE and MESSAGECATCH if (!is_null($event)) {
$searchMessageCatch = false; if (preg_match("/^(?:END|INTERMEDIATE)$/", $event->getEvnType()) && $event->getEvnMarker() === 'MESSAGETHROW') {
if($elementDestType === 'bpmnEvent'){ //Message-Application throw
$c = new Criteria("workflow"); $result = $messageApplication->create($applicationData["APP_UID"], $applicationData["PRO_UID"], $value['uid'], $applicationData);
$c->addSelectColumn(BpmnEventPeer::EVN_TYPE); }
$c->addSelectColumn(BpmnEventPeer::EVN_MARKER);
$c->add(BpmnEventPeer::EVN_UID, $elementDestUid);
$c->add(BpmnEventPeer::PRJ_UID, $arrayApplicationData["PRO_UID"]);
$rsC = RoutePeer::doSelectRS($c);
$rsC->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if($rsC->next()){ if (preg_match("/^(?:END|INTERMEDIATE)$/", $event->getEvnType()) && $event->getEvnMarker() === 'EMAIL') {
$row = $rsC->getRow(); //Email-Event throw
if($row['EVN_TYPE'] === 'INTERMEDIATE' && $row['EVN_MARKER'] === 'MESSAGECATCH'){ $result = $emailEvent->sendEmail($applicationData["APP_UID"], $applicationData["PRO_UID"], $value['uid'], $applicationData);
$searchMessageCatch = true; }
}
}
}
if($elementDestUid === '-1' || count($arrayElement) === 0 || $searchMessageCatch){
$arrayElement = $this->throwElementToEnd($elementOriginUid, $rouCondition);
}
foreach ($arrayElement as $value) {
switch ($value[1]) {
case 'bpmnEvent':
if ($arrayEventExecute[$positionEventExecute]) {
$event = \BpmnEventPeer::retrieveByPK($value[0]);
if (!is_null($event)) {
if (preg_match("/^(?:END|INTERMEDIATE)$/", $event->getEvnType()) && $event->getEvnMarker() === 'MESSAGETHROW') {
//Message-Application throw
$result = $messageApplication->create($arrayApplicationData["APP_UID"], $arrayApplicationData["PRO_UID"], $value[0], $arrayApplicationData);
}
if (preg_match("/^(?:END|INTERMEDIATE)$/", $event->getEvnType()) && $event->getEvnMarker() === 'EMAIL') {
//Email-Event throw
$result = $emailEvent->sendEmail($arrayApplicationData["APP_UID"], $arrayApplicationData["PRO_UID"], $value[0], $arrayApplicationData);
} }
} }
} break;
break; case 'bpmnGateway':
case 'bpmnGateway': $positionEventExecute = 'AFTER';
$positionEventExecute = 'AFTER'; break;
break;
}
}
} catch (Exception $e) {
throw $e;
}
}
/**
* Throw all events to End Process
*
* @param string $currentTask Task uid
*
* @return void
*/
private function throwElementToEnd($currentTask, $routeCondition){
try{
$bpmnFlow = new BpmnFlow();
$rsCriFlow = $bpmnFlow->getElementOriginToElementDest($currentTask);
$arrayElement = array();
$count = 0;
$continue = false;
if($rsCriFlow->next()){
$continue = true;
$row = $rsCriFlow->getRow();
}
while ($continue) {
$array[0] = $row["FLO_ELEMENT_DEST"];
$array[1] = $row["FLO_ELEMENT_DEST_TYPE"];
$arrayElement[$count++] = $array;
$continue = false;
if($rsCriFlow->next()){
$continue = true;
$row = $rsCriFlow->getRow();
}else{
$rsCriFlow = $bpmnFlow->getElementOriginToElementDest($row["FLO_ELEMENT_DEST"],$routeCondition,"bpmnEvent");
$routeCondition = '';
$continue = false;
if($rsCriFlow->next()){
$continue = true;
$row = $rsCriFlow->getRow();
} }
} }
} }
return $arrayElement;
} catch (Exception $e) {
throw $e;
}
}
/**
* Throw Events for the Case
*
* @param string $currentTask Task uid
*
* @return void
*/
private function throwAllRouteInFlow($currentTask,$appFields){
$criFlow = new Criteria("workflow");
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_ORIGIN);
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_DEST);
$criFlow->add(BpmnFlowPeer::FLO_ELEMENT_ORIGIN, $currentTask, Criteria::EQUAL);
$rsCriFlow = RoutePeer::doSelectRS($criFlow);
$rsCriFlow->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if($rsCriFlow->next()){
$continue = true;
$row = $rsCriFlow->getRow();
}
while ($continue) {
$origin = $row["FLO_ELEMENT_ORIGIN"];
$destiny = $row["FLO_ELEMENT_DEST"];
$this->throwEventsElemntOriginToElementDest($destiny, $appFields);
$currentDestiny = $destiny;
$continue = false;
if($rsCriFlow->next()){
$continue = true;
$row = $rsCriFlow->getRow();
}else{
//Search the next
$criFlow = new Criteria("workflow");
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_ORIGIN);
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_DEST);
$criFlow->add(BpmnFlowPeer::FLO_ELEMENT_ORIGIN, $currentDestiny, Criteria::EQUAL);
$rsCriFlow = RoutePeer::doSelectRS($criFlow);
$rsCriFlow->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$continue = false;
if($rsCriFlow->next()){
$continue = true;
$row = $rsCriFlow->getRow();
}
}
}
return $currentDestiny;
}
/**
* Throw Events for the Case
*
* @param string $eventUid Unique id of Event
* @param array $appFields Case data
*
* @return void
*/
private function throwEventsElemntOriginToElementDest($eventUid, $appFields){
try {
//Verify if the Project is BPMN
$bpmn = new \ProcessMaker\Project\Bpmn();
if (!$bpmn->exists($appFields["PRO_UID"])) {
return;
}
//Throw Events
$messageApplication = new \ProcessMaker\BusinessModel\MessageApplication();
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent();
$event = \BpmnEventPeer::retrieveByPK($eventUid);
if (!is_null($event)) {
if (preg_match("/^(?:END|INTERMEDIATE)$/", $event->getEvnType()) && $event->getEvnMarker() == "MESSAGETHROW") {
//Message-Application throw
$result = $messageApplication->create($appFields["APP_UID"], $appFields["PRO_UID"], $value[0], $appFields);
}
if (preg_match("/^(?:END|INTERMEDIATE)$/", $event->getEvnType()) && $event->getEvnMarker() == "EMAIL") {
//Email-Event throw
$result = $emailEvent->sendEmail($appFields["APP_UID"], $appFields["PRO_UID"], $eventUid, $appFields);
}
}
} catch (Exception $e) { } catch (Exception $e) {
throw $e; throw $e;
} }
@@ -1035,7 +858,7 @@ class Derivation
$flagFirstIteration = true; $flagFirstIteration = true;
foreach ($nextDelegations as $nextDel) { foreach ($nextDelegations as $nextDel) {
//BpmnEvent - END-MESSAGE-EVENT, END-EMAIL-EVENT //BpmnEvent - END-MESSAGE-EVENT, END-EMAIL-EVENT, INTERMEDIATE-THROW-EMAIL-EVENT
//Check and get unique id //Check and get unique id
if (preg_match("/^(.{32})\/(\-1)$/", $nextDel["TAS_UID"], $arrayMatch)) { if (preg_match("/^(.{32})\/(\-1)$/", $nextDel["TAS_UID"], $arrayMatch)) {
$nextDel["TAS_UID"] = $arrayMatch[2]; $nextDel["TAS_UID"] = $arrayMatch[2];
@@ -1102,17 +925,14 @@ class Derivation
if (!isset($nextDel['ROU_CONDITION'])) { if (!isset($nextDel['ROU_CONDITION'])) {
$nextDel['ROU_CONDITION'] = ''; $nextDel['ROU_CONDITION'] = '';
} }
//Execute the Intermediate Event After the End of Process
$this->executeEvent($nextDel["TAS_UID"], $appFields, true, true);
if (isset($nextDel["TAS_UID_DUMMY"]) ) { if (isset($nextDel["TAS_UID_DUMMY"]) ) {
$taskDummy = TaskPeer::retrieveByPK($nextDel["TAS_UID_DUMMY"]); $taskDummy = TaskPeer::retrieveByPK($nextDel["TAS_UID_DUMMY"]);
if (preg_match("/^(?:END-MESSAGE-EVENT|END-EMAIL-EVENT)$/", $taskDummy->getTasType())) { if (preg_match("/^(?:END-MESSAGE-EVENT|END-EMAIL-EVENT)$/", $taskDummy->getTasType())) {
//Throw Events //Throw Events
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID_DUMMY"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']); $this->executeEvent($nextDel["TAS_UID_DUMMY"], $appFields, $flagFirstIteration, true);
} else {
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']);
} }
} else {
//BpmnEvent
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']);
} }
break; break;
case TASK_FINISH_TASK: case TASK_FINISH_TASK:
@@ -1194,8 +1014,11 @@ class Derivation
if(isset($nextDel['ROU_CONDITION'])){ if(isset($nextDel['ROU_CONDITION'])){
$rouCondition = $nextDel['ROU_CONDITION']; $rouCondition = $nextDel['ROU_CONDITION'];
} }
if(!isset($nextDel['USR_UID'])){
$nextDel['USR_UID'] = '';
}
//Throw Events //Throw Events
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $rouCondition); $this->executeEvent($nextDel["TAS_UID"], $appFields, true, true, $currentDelegation["TAS_UID"]);
//Derivate //Derivate
$aSP = (isset($aSP))? $aSP : null; $aSP = (isset($aSP))? $aSP : null;
@@ -1239,7 +1062,7 @@ class Derivation
$appFields["APP_DATA"] = $scriptTask->execScriptByActivityUid($nextDel["TAS_UID"], $appFields); $appFields["APP_DATA"] = $scriptTask->execScriptByActivityUid($nextDel["TAS_UID"], $appFields);
//Create record in table APP_ASSIGN_SELF_SERVICE_VALUE //Create record in table APP_ASSIGN_SELF_SERVICE_VALUE
$regexpTaskTypeToExclude = "SCRIPT-TASK"; $regexpTaskTypeToExclude = "SCRIPT-TASK|INTERMEDIATE-THROW-EMAIL-EVENT";
if (!is_null($taskNextDel) && !preg_match("/^(?:" . $regexpTaskTypeToExclude . ")$/", $taskNextDel->getTasType())) { if (!is_null($taskNextDel) && !preg_match("/^(?:" . $regexpTaskTypeToExclude . ")$/", $taskNextDel->getTasType())) {
if ($taskNextDel->getTasAssignType() == "SELF_SERVICE" && trim($taskNextDel->getTasGroupVariable()) != "") { if ($taskNextDel->getTasAssignType() == "SELF_SERVICE" && trim($taskNextDel->getTasGroupVariable()) != "") {
@@ -1259,14 +1082,13 @@ class Derivation
} }
//Check if $taskNextDel is Script-Task //Check if $taskNextDel is Script-Task
if (!is_null($taskNextDel) && $taskNextDel->getTasType() == "SCRIPT-TASK") { if (!is_null($taskNextDel) && ($taskNextDel->getTasType() === "SCRIPT-TASK" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-EMAIL-EVENT")) {
//Get for $nextDel["TAS_UID"] your next Task //Get for $nextDel["TAS_UID"] your next Task
$currentDelegationAux = array_merge($currentDelegation, array("DEL_INDEX" => $iNewDelIndex, "TAS_UID" => $nextDel["TAS_UID"])); $currentDelegationAux = array_merge($currentDelegation, array("DEL_INDEX" => $iNewDelIndex, "TAS_UID" => $nextDel["TAS_UID"]));
$nextDelegationsAux = array(); $nextDelegationsAux = array();
$taskNextDelNextDelRouType = ""; $taskNextDelNextDelRouType = "";
$i = 0; $i = 0;
$arrayTaskNextDelNextDelegations = $this->prepareInformation(array( $arrayTaskNextDelNextDelegations = $this->prepareInformation(array(
"USER_UID" => $_SESSION["USER_LOGGED"], "USER_UID" => $_SESSION["USER_LOGGED"],
"APP_UID" => $currentDelegation["APP_UID"], "APP_UID" => $currentDelegation["APP_UID"],
@@ -1320,8 +1142,11 @@ class Derivation
switch ($routeType) { switch ($routeType) {
case 'SEC-JOIN': case 'SEC-JOIN':
//Throw Events //If the all Siblings are done execute the events
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, false); if(sizeof($arraySiblings) === 0){
//Throw Events
$this->executeEvent($nextDel["TAS_UID"], $appFields, $flagFirstIteration, false);
}
//Close thread //Close thread
$this->case->closeAppThread( $currentDelegation['APP_UID'], $iAppThreadIndex ); $this->case->closeAppThread( $currentDelegation['APP_UID'], $iAppThreadIndex );

View File

@@ -190,7 +190,6 @@ class AppDelegation extends BaseAppDelegation
// Hook for the trigger PM_CREATE_NEW_DELEGATION // Hook for the trigger PM_CREATE_NEW_DELEGATION
if (defined( 'PM_CREATE_NEW_DELEGATION' )) { if (defined( 'PM_CREATE_NEW_DELEGATION' )) {
$bpmn = new \ProcessMaker\Project\Bpmn(); $bpmn = new \ProcessMaker\Project\Bpmn();
$flagActionsByEmail = true; $flagActionsByEmail = true;

View File

@@ -264,7 +264,7 @@ class ListInbox extends BaseListInbox
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next(); $dataset->next();
$aRow = $dataset->getRow(); $aRow = $dataset->getRow();
if ($aRow['CON_VALUE'] == '') { if ($aRow['CON_VALUE'] == '') {
$criteria = new Criteria(); $criteria = new Criteria();
$criteria->addSelectColumn(ContentPeer::CON_VALUE); $criteria->addSelectColumn(ContentPeer::CON_VALUE);
$criteria->add( ContentPeer::CON_ID, $data['APP_UID'], Criteria::EQUAL ); $criteria->add( ContentPeer::CON_ID, $data['APP_UID'], Criteria::EQUAL );
@@ -306,6 +306,11 @@ class ListInbox extends BaseListInbox
$data['APP_PREVIOUS_USER'] = ''; $data['APP_PREVIOUS_USER'] = '';
if($data['DEL_PREVIOUS_USR_UID'] === ''){
global $RBAC;
$aUser = $RBAC->aUserInfo['USER_INFO'];
$data['DEL_PREVIOUS_USR_UID'] = $aUser['USR_UID'];
}
if ($data['DEL_PREVIOUS_USR_UID'] != '') { if ($data['DEL_PREVIOUS_USR_UID'] != '') {
$criteria = new Criteria(); $criteria = new Criteria();
$criteria->addSelectColumn(UsersPeer::USR_USERNAME); $criteria->addSelectColumn(UsersPeer::USR_USERNAME);

View File

@@ -188,6 +188,7 @@ class Process extends BaseProcess
$this->setProWidth( 10000 ); $this->setProWidth( 10000 );
$this->setProTitleX( 0 ); $this->setProTitleX( 0 );
$this->setProTitleY( 0 ); $this->setProTitleY( 0 );
$this->setProItee( 1 );
$this->setProDynaforms( isset( $aData['PRO_DYNAFORMS'] ) ? (is_array( $aData['PRO_DYNAFORMS'] ) ? serialize( $aData['PRO_DYNAFORMS'] ) : $aData['PRO_DYNAFORMS']) : '' ); $this->setProDynaforms( isset( $aData['PRO_DYNAFORMS'] ) ? (is_array( $aData['PRO_DYNAFORMS'] ) ? serialize( $aData['PRO_DYNAFORMS'] ) : $aData['PRO_DYNAFORMS']) : '' );
if ($this->validate()) { if ($this->validate()) {

View File

@@ -135,6 +135,8 @@ class ProcessMapBuilder
$tMap->addColumn('PRO_UNIT_COST', 'ProUnitCost', 'string', CreoleTypes::VARCHAR, false, 50); $tMap->addColumn('PRO_UNIT_COST', 'ProUnitCost', 'string', CreoleTypes::VARCHAR, false, 50);
$tMap->addColumn('PRO_ITEE', 'ProItee', 'int', CreoleTypes::INTEGER, true, null);
$tMap->addValidator('PRO_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'WEEKS|MONTHS|DAYS|HOURS|MINUTES', 'Please select a valid Time Unit.'); $tMap->addValidator('PRO_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'WEEKS|MONTHS|DAYS|HOURS|MINUTES', 'Please select a valid Time Unit.');
$tMap->addValidator('PRO_STATUS', 'validValues', 'propel.validator.ValidValuesValidator', 'ACTIVE|INACTIVE|DISABLED', 'Please select a valid Process Status.'); $tMap->addValidator('PRO_STATUS', 'validValues', 'propel.validator.ValidValuesValidator', 'ACTIVE|INACTIVE|DISABLED', 'Please select a valid Process Status.');

View File

@@ -159,7 +159,7 @@ class TaskMapBuilder
$tMap->addColumn('TAS_SELFSERVICE_EXECUTION', 'TasSelfserviceExecution', 'string', CreoleTypes::VARCHAR, false, 15); $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|START-TIMER-EVENT|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT', 'Please set 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|START-TIMER-EVENT|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT', 'Please set 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.'); $tMap->addValidator('TAS_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'MINUTES|HOURS|DAYS|WEEKS|MONTHS', 'Please select a valid value for TAS_TIMEUNIT.');

View File

@@ -237,6 +237,12 @@ abstract class BaseProcess extends BaseObject implements Persistent
*/ */
protected $pro_unit_cost = ''; protected $pro_unit_cost = '';
/**
* The value for the pro_debug field.
* @var int
*/
protected $pro_itee = 1;
/** /**
* Flag to prevent endless save loop, if this object is referenced * Flag to prevent endless save loop, if this object is referenced
* by another object which falls in this transaction. * by another object which falls in this transaction.
@@ -678,6 +684,17 @@ abstract class BaseProcess extends BaseObject implements Persistent
return $this->pro_unit_cost; return $this->pro_unit_cost;
} }
/**
* Get the [pro_itee] column value.
*
* @return string
*/
public function getProItee()
{
return $this->pro_itee;
}
/** /**
* Set the value of [pro_uid] column. * Set the value of [pro_uid] column.
* *
@@ -1450,6 +1467,28 @@ abstract class BaseProcess extends BaseObject implements Persistent
} // setProUnitCost() } // setProUnitCost()
/**
* Set the value of [pro_itee] column.
*
* @param int $v new value
* @return void
*/
public function setProItee($v)
{
// Since the native PHP type for this column is integer,
// we will cast the input value to an int (if it is not).
if ($v !== null && !is_int($v) && is_numeric($v)) {
$v = (int) $v;
}
if ($this->pro_itee !== $v || $v === 1) {
$this->pro_itee = $v;
$this->modifiedColumns[] = ProcessPeer::PRO_ITEE;
}
} // setProItee()
/** /**
* Hydrates (populates) the object variables with values from the database resultset. * Hydrates (populates) the object variables with values from the database resultset.
* *
@@ -1537,12 +1576,14 @@ abstract class BaseProcess extends BaseObject implements Persistent
$this->pro_unit_cost = $rs->getString($startcol + 34); $this->pro_unit_cost = $rs->getString($startcol + 34);
$this->pro_itee = $rs->getString($startcol + 35);
$this->resetModified(); $this->resetModified();
$this->setNew(false); $this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer. // FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 35; // 35 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). return $startcol + 36; // 36 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) { } catch (Exception $e) {
throw new PropelException("Error populating Process object", $e); throw new PropelException("Error populating Process object", $e);
@@ -1851,6 +1892,9 @@ abstract class BaseProcess extends BaseObject implements Persistent
case 34: case 34:
return $this->getProUnitCost(); return $this->getProUnitCost();
break; break;
case 35:
return $this->getProItee();
break;
default: default:
return null; return null;
break; break;
@@ -1906,6 +1950,7 @@ abstract class BaseProcess extends BaseObject implements Persistent
$keys[32] => $this->getProDerivationScreenTpl(), $keys[32] => $this->getProDerivationScreenTpl(),
$keys[33] => $this->getProCost(), $keys[33] => $this->getProCost(),
$keys[34] => $this->getProUnitCost(), $keys[34] => $this->getProUnitCost(),
$keys[35] => $this->getProItee(),
); );
return $result; return $result;
} }
@@ -2042,6 +2087,9 @@ abstract class BaseProcess extends BaseObject implements Persistent
case 34: case 34:
$this->setProUnitCost($value); $this->setProUnitCost($value);
break; break;
case 35:
$this->setProItee($value);
break;
} // switch() } // switch()
} }
@@ -2205,6 +2253,10 @@ abstract class BaseProcess extends BaseObject implements Persistent
$this->setProUnitCost($arr[$keys[34]]); $this->setProUnitCost($arr[$keys[34]]);
} }
if (array_key_exists($keys[35], $arr)) {
$this->setProItee($arr[$keys[35]]);
}
} }
/** /**
@@ -2356,6 +2408,10 @@ abstract class BaseProcess extends BaseObject implements Persistent
$criteria->add(ProcessPeer::PRO_UNIT_COST, $this->pro_unit_cost); $criteria->add(ProcessPeer::PRO_UNIT_COST, $this->pro_unit_cost);
} }
if ($this->isColumnModified(ProcessPeer::PRO_ITEE)) {
$criteria->add(ProcessPeer::PRO_ITEE, $this->pro_itee);
}
return $criteria; return $criteria;
} }
@@ -2478,6 +2534,8 @@ abstract class BaseProcess extends BaseObject implements Persistent
$copyObj->setProUnitCost($this->pro_unit_cost); $copyObj->setProUnitCost($this->pro_unit_cost);
$copyObj->setProItee($this->pro_itee);
$copyObj->setNew(true); $copyObj->setNew(true);

View File

@@ -136,6 +136,9 @@ abstract class BaseProcessPeer
/** the column name for the PRO_UNIT_COST field */ /** the column name for the PRO_UNIT_COST field */
const PRO_UNIT_COST = 'PROCESS.PRO_UNIT_COST'; const PRO_UNIT_COST = 'PROCESS.PRO_UNIT_COST';
/** the column name for the PRO_ITEE field */
const PRO_ITEE = 'PROCESS.PRO_ITEE';
/** The PHP to DB Name Mapping */ /** The PHP to DB Name Mapping */
private static $phpNameMap = null; private static $phpNameMap = null;
@@ -147,10 +150,10 @@ abstract class BaseProcessPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/ */
private static $fieldNames = array ( private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', ), BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', 'ProItee', ),
BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ), BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ProcessPeer::PRO_ITEE, ),
BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', ), BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', 'PRO_ITEE', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, )
); );
/** /**
@@ -160,10 +163,10 @@ abstract class BaseProcessPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/ */
private static $fieldKeys = array ( private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProSubprocess' => 10, 'ProTriOpen' => 11, 'ProTriDeleted' => 12, 'ProTriCanceled' => 13, 'ProTriPaused' => 14, 'ProTriReassigned' => 15, 'ProTriUnpaused' => 16, 'ProTypeProcess' => 17, 'ProShowDelegate' => 18, 'ProShowDynaform' => 19, 'ProCategory' => 20, 'ProSubCategory' => 21, 'ProIndustry' => 22, 'ProUpdateDate' => 23, 'ProCreateDate' => 24, 'ProCreateUser' => 25, 'ProHeight' => 26, 'ProWidth' => 27, 'ProTitleX' => 28, 'ProTitleY' => 29, 'ProDebug' => 30, 'ProDynaforms' => 31, 'ProDerivationScreenTpl' => 32, 'ProCost' => 33, 'ProUnitCost' => 34, ), BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProSubprocess' => 10, 'ProTriOpen' => 11, 'ProTriDeleted' => 12, 'ProTriCanceled' => 13, 'ProTriPaused' => 14, 'ProTriReassigned' => 15, 'ProTriUnpaused' => 16, 'ProTypeProcess' => 17, 'ProShowDelegate' => 18, 'ProShowDynaform' => 19, 'ProCategory' => 20, 'ProSubCategory' => 21, 'ProIndustry' => 22, 'ProUpdateDate' => 23, 'ProCreateDate' => 24, 'ProCreateUser' => 25, 'ProHeight' => 26, 'ProWidth' => 27, 'ProTitleX' => 28, 'ProTitleY' => 29, 'ProDebug' => 30, 'ProDynaforms' => 31, 'ProDerivationScreenTpl' => 32, 'ProCost' => 33, 'ProUnitCost' => 34, 'ProItee' => 35, ),
BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SUBPROCESS => 10, ProcessPeer::PRO_TRI_OPEN => 11, ProcessPeer::PRO_TRI_DELETED => 12, ProcessPeer::PRO_TRI_CANCELED => 13, ProcessPeer::PRO_TRI_PAUSED => 14, ProcessPeer::PRO_TRI_REASSIGNED => 15, ProcessPeer::PRO_TRI_UNPAUSED => 16, ProcessPeer::PRO_TYPE_PROCESS => 17, ProcessPeer::PRO_SHOW_DELEGATE => 18, ProcessPeer::PRO_SHOW_DYNAFORM => 19, ProcessPeer::PRO_CATEGORY => 20, ProcessPeer::PRO_SUB_CATEGORY => 21, ProcessPeer::PRO_INDUSTRY => 22, ProcessPeer::PRO_UPDATE_DATE => 23, ProcessPeer::PRO_CREATE_DATE => 24, ProcessPeer::PRO_CREATE_USER => 25, ProcessPeer::PRO_HEIGHT => 26, ProcessPeer::PRO_WIDTH => 27, ProcessPeer::PRO_TITLE_X => 28, ProcessPeer::PRO_TITLE_Y => 29, ProcessPeer::PRO_DEBUG => 30, ProcessPeer::PRO_DYNAFORMS => 31, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 32, ProcessPeer::PRO_COST => 33, ProcessPeer::PRO_UNIT_COST => 34, ), BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SUBPROCESS => 10, ProcessPeer::PRO_TRI_OPEN => 11, ProcessPeer::PRO_TRI_DELETED => 12, ProcessPeer::PRO_TRI_CANCELED => 13, ProcessPeer::PRO_TRI_PAUSED => 14, ProcessPeer::PRO_TRI_REASSIGNED => 15, ProcessPeer::PRO_TRI_UNPAUSED => 16, ProcessPeer::PRO_TYPE_PROCESS => 17, ProcessPeer::PRO_SHOW_DELEGATE => 18, ProcessPeer::PRO_SHOW_DYNAFORM => 19, ProcessPeer::PRO_CATEGORY => 20, ProcessPeer::PRO_SUB_CATEGORY => 21, ProcessPeer::PRO_INDUSTRY => 22, ProcessPeer::PRO_UPDATE_DATE => 23, ProcessPeer::PRO_CREATE_DATE => 24, ProcessPeer::PRO_CREATE_USER => 25, ProcessPeer::PRO_HEIGHT => 26, ProcessPeer::PRO_WIDTH => 27, ProcessPeer::PRO_TITLE_X => 28, ProcessPeer::PRO_TITLE_Y => 29, ProcessPeer::PRO_DEBUG => 30, ProcessPeer::PRO_DYNAFORMS => 31, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 32, ProcessPeer::PRO_COST => 33, ProcessPeer::PRO_UNIT_COST => 34, ProcessPeer::PRO_ITEE => 35, ),
BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SUBPROCESS' => 10, 'PRO_TRI_OPEN' => 11, 'PRO_TRI_DELETED' => 12, 'PRO_TRI_CANCELED' => 13, 'PRO_TRI_PAUSED' => 14, 'PRO_TRI_REASSIGNED' => 15, 'PRO_TRI_UNPAUSED' => 16, 'PRO_TYPE_PROCESS' => 17, 'PRO_SHOW_DELEGATE' => 18, 'PRO_SHOW_DYNAFORM' => 19, 'PRO_CATEGORY' => 20, 'PRO_SUB_CATEGORY' => 21, 'PRO_INDUSTRY' => 22, 'PRO_UPDATE_DATE' => 23, 'PRO_CREATE_DATE' => 24, 'PRO_CREATE_USER' => 25, 'PRO_HEIGHT' => 26, 'PRO_WIDTH' => 27, 'PRO_TITLE_X' => 28, 'PRO_TITLE_Y' => 29, 'PRO_DEBUG' => 30, 'PRO_DYNAFORMS' => 31, 'PRO_DERIVATION_SCREEN_TPL' => 32, 'PRO_COST' => 33, 'PRO_UNIT_COST' => 34, ), BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SUBPROCESS' => 10, 'PRO_TRI_OPEN' => 11, 'PRO_TRI_DELETED' => 12, 'PRO_TRI_CANCELED' => 13, 'PRO_TRI_PAUSED' => 14, 'PRO_TRI_REASSIGNED' => 15, 'PRO_TRI_UNPAUSED' => 16, 'PRO_TYPE_PROCESS' => 17, 'PRO_SHOW_DELEGATE' => 18, 'PRO_SHOW_DYNAFORM' => 19, 'PRO_CATEGORY' => 20, 'PRO_SUB_CATEGORY' => 21, 'PRO_INDUSTRY' => 22, 'PRO_UPDATE_DATE' => 23, 'PRO_CREATE_DATE' => 24, 'PRO_CREATE_USER' => 25, 'PRO_HEIGHT' => 26, 'PRO_WIDTH' => 27, 'PRO_TITLE_X' => 28, 'PRO_TITLE_Y' => 29, 'PRO_DEBUG' => 30, 'PRO_DYNAFORMS' => 31, 'PRO_DERIVATION_SCREEN_TPL' => 32, 'PRO_COST' => 33, 'PRO_UNIT_COST' => 34, 'PRO_ITEE' => 35, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, )
); );
/** /**
@@ -334,6 +337,8 @@ abstract class BaseProcessPeer
$criteria->addSelectColumn(ProcessPeer::PRO_UNIT_COST); $criteria->addSelectColumn(ProcessPeer::PRO_UNIT_COST);
$criteria->addSelectColumn(ProcessPeer::PRO_ITEE);
} }
const COUNT = 'COUNT(PROCESS.PRO_UID)'; const COUNT = 'COUNT(PROCESS.PRO_UID)';

View File

@@ -904,6 +904,7 @@
<column name="PRO_DERIVATION_SCREEN_TPL" type="VARCHAR" size="128" default="" required="false"/> <column name="PRO_DERIVATION_SCREEN_TPL" type="VARCHAR" size="128" default="" required="false"/>
<column name="PRO_COST" type="DECIMAL" size="7,2" required="false" default="0"/> <column name="PRO_COST" type="DECIMAL" size="7,2" required="false" default="0"/>
<column name="PRO_UNIT_COST" type="VARCHAR" size="50" required="false" default=""/> <column name="PRO_UNIT_COST" type="VARCHAR" size="50" required="false" default=""/>
<column name="PRO_ITEE" type="INTEGER" required="true" default="0"/>
<validator column="PRO_TIMEUNIT"> <validator column="PRO_TIMEUNIT">
<rule name="validValues" value="WEEKS|MONTHS|DAYS|HOURS|MINUTES" message="Please select a valid Time Unit."/> <rule name="validValues" value="WEEKS|MONTHS|DAYS|HOURS|MINUTES" message="Please select a valid Time Unit."/>
</validator> </validator>
@@ -1298,7 +1299,7 @@
</index> </index>
<validator column="TAS_TYPE"> <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|START-TIMER-EVENT|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT" message="Please set 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|START-TIMER-EVENT|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT" message="Please set a valid value for TAS_TYPE" />
</validator> </validator>
<validator column="TAS_TIMEUNIT"> <validator column="TAS_TIMEUNIT">
<rule name="validValues" value="MINUTES|HOURS|DAYS|WEEKS|MONTHS" message="Please select a valid value for TAS_TIMEUNIT."/> <rule name="validValues" value="MINUTES|HOURS|DAYS|WEEKS|MONTHS" message="Please select a valid value for TAS_TIMEUNIT."/>

View File

@@ -452,6 +452,7 @@ CREATE TABLE `PROCESS`
`PRO_DERIVATION_SCREEN_TPL` VARCHAR(128) default '', `PRO_DERIVATION_SCREEN_TPL` VARCHAR(128) default '',
`PRO_COST` DECIMAL(7,2) default 0, `PRO_COST` DECIMAL(7,2) default 0,
`PRO_UNIT_COST` VARCHAR(50) default '', `PRO_UNIT_COST` VARCHAR(50) default '',
`PRO_ITEE` INTEGER default 0 NOT NULL,
PRIMARY KEY (`PRO_UID`) PRIMARY KEY (`PRO_UID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Store process Information'; )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Store process Information';
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------

View File

@@ -65,7 +65,7 @@ try {
$oCurUser->load( $aAppDel['USR_UID'] ); $oCurUser->load( $aAppDel['USR_UID'] );
$Fields['PREVIOUS_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname(); $Fields['PREVIOUS_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
} catch (Exception $oError) { } catch (Exception $oError) {
$Fields['PREVIOUS_USER'] = ''; $Fields['PREVIOUS_USER'] = G::LoadTranslation( 'ID_NO_PREVIOUS_USR_UID' );
} }
$objTask = new Task(); $objTask = new Task();

View File

@@ -949,6 +949,9 @@ try {
case "INTERMEDIATE-CATCH-TIMER-EVENT": case "INTERMEDIATE-CATCH-TIMER-EVENT":
$aFields["TASK"][$sKey]["NEXT_TASK"]["USR_UID"] = G::LoadTranslation("ID_ROUTE_TO_TASK_INTERMEDIATE_CATCH_TIMER_EVENT"); $aFields["TASK"][$sKey]["NEXT_TASK"]["USR_UID"] = G::LoadTranslation("ID_ROUTE_TO_TASK_INTERMEDIATE_CATCH_TIMER_EVENT");
break; break;
case "INTERMEDIATE-THROW-EMAIL-EVENT":
$aFields["TASK"][$sKey]["NEXT_TASK"]["TAS_TITLE"] = G::LoadTranslation("ID_ROUTE_TO_TASK_INTERMEDIATE-THROW-EMAIL-EVENT");
break;
} }
$hiddenName = 'form[TASKS][' . $sKey . ']'; $hiddenName = 'form[TASKS][' . $sKey . ']';

View File

@@ -481,7 +481,7 @@ abstract class Importer
foreach ($arrayWorkflowTables["tasks"] as $key => $value) { foreach ($arrayWorkflowTables["tasks"] as $key => $value) {
$arrayTaskData = $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", "START-TIMER-EVENT", "INTERMEDIATE-CATCH-TIMER-EVENT", "END-EMAIL-EVENT", "INTERMEDIATE-EMAIL-EVENT"))) { if (!in_array($arrayTaskData["TAS_TYPE"], array("GATEWAYTOGATEWAY", "WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT", "START-TIMER-EVENT", "INTERMEDIATE-CATCH-TIMER-EVENT", "END-EMAIL-EVENT", "INTERMEDIATE-THROW-EMAIL-EVENT"))) {
$result = $workflow->updateTask($arrayTaskData["TAS_UID"], $arrayTaskData); $result = $workflow->updateTask($arrayTaskData["TAS_UID"], $arrayTaskData);
} }
} }

View File

@@ -31,7 +31,8 @@ class BpmnWorkflow extends Project\Bpmn
"intermediate-catch-message-event" => array("type" => "INTERMEDIATE-CATCH-MESSAGE-EVENT", "prefix" => "icme-"), "intermediate-catch-message-event" => array("type" => "INTERMEDIATE-CATCH-MESSAGE-EVENT", "prefix" => "icme-"),
"start-timer-event" => array("type" => "START-TIMER-EVENT", "prefix" => "ste-"), "start-timer-event" => array("type" => "START-TIMER-EVENT", "prefix" => "ste-"),
"intermediate-catch-timer-event" => array("type" => "INTERMEDIATE-CATCH-TIMER-EVENT", "prefix" => "icte-"), "intermediate-catch-timer-event" => array("type" => "INTERMEDIATE-CATCH-TIMER-EVENT", "prefix" => "icte-"),
"end-email-event" => array("type" => "END-EMAIL-EVENT", "prefix" => "eee-") "end-email-event" => array("type" => "END-EMAIL-EVENT", "prefix" => "eee-"),
"intermediate-throw-email-event" => array("type" => "INTERMEDIATE-THROW-EMAIL-EVENT", "prefix" => "itee-")
); );
private $arrayElementTaskRelation = array(); private $arrayElementTaskRelation = array();
@@ -885,10 +886,6 @@ class BpmnWorkflow extends Project\Bpmn
\BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => "bpmnGateway" \BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => "bpmnGateway"
)); ));
//if ($arrayFlow > 0) {
// $this->wp->resetTaskRoutes($activityUid);
//}
foreach ($arrayFlow as $value) { foreach ($arrayFlow as $value) {
$arrayFlowData = $value->toArray(); $arrayFlowData = $value->toArray();
@@ -980,12 +977,13 @@ class BpmnWorkflow extends Project\Bpmn
if (!is_null($arrayEventData)) { if (!is_null($arrayEventData)) {
$arrayEventType = array("INTERMEDIATE"); $arrayEventType = array("INTERMEDIATE");
$arrayEventMarker = array("MESSAGECATCH", "TIMER"); $arrayEventMarker = array("MESSAGECATCH", "TIMER", "EMAIL");
if (in_array($arrayEventData["EVN_TYPE"], $arrayEventType) && in_array($arrayEventData["EVN_MARKER"], $arrayEventMarker)) { if (in_array($arrayEventData["EVN_TYPE"], $arrayEventType) && in_array($arrayEventData["EVN_MARKER"], $arrayEventMarker)) {
$arrayKey = array( $arrayKey = array(
"MESSAGECATCH" => "intermediate-catch-message-event", "MESSAGECATCH" => "intermediate-catch-message-event",
"TIMER" => "intermediate-catch-timer-event" "TIMER" => "intermediate-catch-timer-event",
"EMAIL" => "intermediate-throw-email-event"
); );
$taskUid = $this->createTaskByElement( $taskUid = $this->createTaskByElement(

View File

@@ -37,10 +37,13 @@ class Common extends \Maveriks\Util\Common
} }
$numc = 50; $numc = 50;
$total = $numc - 2 - strlen($data);
if($total < 0){
$total = 0;
}
switch ($option) { switch ($option) {
case "BAR": case "BAR":
echo "\r" . "| " . $data . str_repeat(" ", $numc - 2 - strlen($data)); echo "\r" . "| " . $data . str_repeat(" ", $total);
break; break;
case "TEXT": case "TEXT":
echo "\r" . '| ' . $data . "\n"; echo "\r" . '| ' . $data . "\n";