Merged in victorsl/processmaker/PM-3121-B (pull request #2773)

PM-3121
This commit is contained in:
Julio Cesar Laura Avendaño
2015-09-14 16:07:57 -04:00
committed by Enrique Ponce De Leon
5 changed files with 240 additions and 93 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -165,7 +165,7 @@ class TaskMapBuilder
$tMap->addValidator('TAS_ALERT', 'validValues', 'propel.validator.ValidValuesValidator', 'TRUE|FALSE', 'Please select a valid value for TAS_ALERT.');
$tMap->addValidator('TAS_ASSIGN_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'BALANCED|MANUAL|EVALUATE|REPORT_TO|SELF_SERVICE|STATIC_MI|CANCEL_MI', 'Please select a valid value for TAS_ASSIGN_TYPE.');
$tMap->addValidator('TAS_ASSIGN_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'BALANCED|MANUAL|EVALUATE|REPORT_TO|SELF_SERVICE|STATIC_MI|CANCEL_MI|MULTIPLE_INSTANCE|MULTIPLE_INSTANCE_VALUE_BASED', 'Please set a valid value for TAS_ASSIGN_TYPE');
$tMap->addValidator('TAS_ASSIGN_LOCATION', 'validValues', 'propel.validator.ValidValuesValidator', 'TRUE|FALSE', 'Please select a valid value for TAS_ASSIGN_LOCATION.');

View File

@@ -163,7 +163,7 @@ if ($flagExecuteBeforeTriggers) {
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] );
} else {
unset($_SESSION['beforeTriggersExecuted']);
}
}
//Execute before triggers - End
} else {
unset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] );
@@ -763,7 +763,6 @@ try {
}
} //set priority value
//$sTask = $aFields['TASK'][$sKey]['NEXT_TASK']['TAS_UID'];
//TAS_UID has a hidden field to store the TAS_UID
$hiddenName = "form[TASKS][" . $sKey . "][TAS_UID]";
@@ -891,6 +890,18 @@ try {
$aFields['TASK'][$sKey]['NEXT_TASK']['ROU_FINISH_FLAG'] = true;
$aFields['PROCESS']['ROU_FINISH_FLAG'] = true;
break;
case "MULTIPLE_INSTANCE":
case "MULTIPLE_INSTANCE_VALUE_BASED":
$arrayAux = array();
foreach ($aValues["NEXT_TASK"]["USER_ASSIGNED"] as $value) {
$arrayAux[$value["USR_UID"]] = $value["USR_FULLNAME"];
}
asort($arrayAux);
$aFields["TASK"][$sKey]["NEXT_TASK"]["USR_UID"] = "<div style=\"overflow: auto; max-height: 200px;\">" . implode("<br />", $arrayAux) . "</div>";
break;
}
$optionTaskType = (isset($aFields["TASK"][$sKey]["NEXT_TASK"]["TAS_TYPE"]))? $aFields["TASK"][$sKey]["NEXT_TASK"]["TAS_TYPE"] : "";

View File

@@ -239,6 +239,7 @@ class Task
$task = new \Task();
$aTaskInfo = $task->load($arrayProperty["TAS_UID"]);
$bpmnActivity = \BpmnActivityPeer::retrieveByPK($act_uid);
$arrayResult = array();
if ($arrayProperty["TAS_SELFSERVICE_TIMEOUT"] == "1") {
@@ -272,6 +273,17 @@ class Task
}
}
$flagTaskIsMultipleInstance = $bpmnActivity->getActType() == "TASK" && preg_match("/^(?:EMPTY|USERTASK|MANUALTASK)$/", $bpmnActivity->getActTaskType()) && $bpmnActivity->getActLoopType() == "PARALLEL";
$flagTaskAssignTypeIsMultipleInstance = preg_match("/^(?:MULTIPLE_INSTANCE|MULTIPLE_INSTANCE_VALUE_BASED)$/", $arrayProperty["TAS_ASSIGN_TYPE"]);
if ($flagTaskIsMultipleInstance && !$flagTaskAssignTypeIsMultipleInstance) {
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_INVALID_ASSIGNMENT_METHOD_FOR_MULTIPLE_INSTANCE_ACTIVITY", array(strtolower("ACT_UID"), $act_uid)));
}
if (!$flagTaskIsMultipleInstance && $flagTaskAssignTypeIsMultipleInstance) {
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_INVALID_ASSIGNMENT_METHOD_FOR_ACTIVITY", array(strtolower("ACT_UID"), $act_uid)));
}
switch ($arrayProperty["TAS_ASSIGN_TYPE"]) {
case 'BALANCED':
case 'MANUAL':
@@ -329,6 +341,11 @@ class Task
$this->unsetVar($arrayProperty, "TAS_SELFSERVICE_EXECUTION");
}
break;
case "MULTIPLE_INSTANCE_VALUE_BASED":
if (trim($arrayProperty["TAS_ASSIGN_VARIABLE"]) == "") {
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array(strtolower("TAS_ASSIGN_VARIABLE"))));
}
break;
}
//Validating TAS_TRANSFER_FLY value

View File

@@ -59,7 +59,7 @@ class Activity extends Api
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* @param string $pro_uid {@min 32} {@max 32}
@@ -98,7 +98,7 @@ class Activity extends Api
}
}
/**
* @param string $prj_uid {@min 32} {@max 32}
* @param string $act_uid {@min 32} {@max 32}
@@ -233,7 +233,7 @@ class ActivityPropertiesStructure
public $tas_start;
/**
* @var string {@from body} {@choice BALANCED,MANUAL,EVALUATE,REPORT_TO,SELF_SERVICE,SELF_SERVICE_EVALUATE}
* @var string {@from body} {@choice BALANCED,MANUAL,EVALUATE,REPORT_TO,SELF_SERVICE,SELF_SERVICE_EVALUATE,MULTIPLE_INSTANCE,MULTIPLE_INSTANCE_VALUE_BASED}
*/
public $tas_assign_type;