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

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