diff --git a/framework/src/Maveriks/WebApplication.php b/framework/src/Maveriks/WebApplication.php
index b30f2b7f3..817864831 100644
--- a/framework/src/Maveriks/WebApplication.php
+++ b/framework/src/Maveriks/WebApplication.php
@@ -522,6 +522,7 @@ class WebApplication
define('MEMCACHED_ENABLED', $arraySystemConfiguration['memcached']);
define('MEMCACHED_SERVER', $arraySystemConfiguration['memcached_server']);
define('SYS_SKIN', $arraySystemConfiguration['default_skin']);
+ define('DISABLE_DOWNLOAD_DOCUMENTS_SESSION_VALIDATION', $arraySystemConfiguration['disable_download_documents_session_validation']);
require_once(PATH_DB . SYS_SYS . "/db.php");
diff --git a/workflow/engine/classes/Cases.php b/workflow/engine/classes/Cases.php
index 22fa0b623..1576d8249 100644
--- a/workflow/engine/classes/Cases.php
+++ b/workflow/engine/classes/Cases.php
@@ -5717,13 +5717,13 @@ class Cases
*/
public function getAllObjectsFrom($proUid, $appUid, $tasUid = '', $usrUid = '', $action = '', $delIndex = 0)
{
- $aCase = $this->loadCase($appUid);
+ $caseData = $this->loadCase($appUid);
if ($delIndex != 0) {
$appDelay = new AppDelay();
if ($appDelay->isPaused($appUid, $delIndex)) {
- $aCase["APP_STATUS"] = "PAUSED";
+ $caseData["APP_STATUS"] = "PAUSED";
}
}
@@ -5742,8 +5742,8 @@ class Cases
);
$oObjectPermission = new ObjectPermission();
- $userPermissions = $oObjectPermission->verifyObjectPermissionPerUser($usrUid, $proUid, $tasUid, $action, $aCase);
- $groupPermissions = $oObjectPermission->verifyObjectPermissionPerGroup($usrUid, $proUid, $tasUid, $action, $aCase);
+ $userPermissions = $oObjectPermission->verifyObjectPermissionPerUser($usrUid, $proUid, $tasUid, $action, $caseData);
+ $groupPermissions = $oObjectPermission->verifyObjectPermissionPerGroup($usrUid, $proUid, $tasUid, $action, $caseData);
$permissions = array_merge($userPermissions, $groupPermissions);
foreach ($permissions as $row) {
@@ -5783,7 +5783,7 @@ class Cases
$appUid,
$opTaskSource,
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
//For Ouputs
$result['OUTPUT'] = $oObjectPermission->objectPermissionByOutputInput(
@@ -5792,7 +5792,7 @@ class Cases
$opTaskSource,
'OUTPUT',
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
//For Inputs
$result['INPUT'] = $oObjectPermission->objectPermissionByOutputInput(
@@ -5801,7 +5801,7 @@ class Cases
$opTaskSource,
'INPUT',
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
//For Attachment
$result['ATTACHMENT'] = $oObjectPermission->objectPermissionByOutputInput(
@@ -5810,7 +5810,7 @@ class Cases
$opTaskSource,
'ATTACHED',
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
$result['CASES_NOTES'] = 1;
@@ -5826,7 +5826,7 @@ class Cases
$action,
$opTaskSource,
$opUserRelation,
- $aCase['APP_STATUS'],
+ $caseData['APP_STATUS'],
$opParticipated
);
break;
@@ -5835,7 +5835,7 @@ class Cases
$appUid,
$opTaskSource,
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
break;
case 'INPUT':
@@ -5845,7 +5845,7 @@ class Cases
$opTaskSource,
'INPUT',
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
break;
case 'ATTACHMENT':
@@ -5855,7 +5855,7 @@ class Cases
$opTaskSource,
'ATTACHED',
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
break;
case 'OUTPUT':
@@ -5865,7 +5865,7 @@ class Cases
$opTaskSource,
'OUTPUT',
$opObjUid,
- $aCase['APP_STATUS']
+ $caseData['APP_STATUS']
);
break;
case 'CASES_NOTES':
@@ -5884,7 +5884,7 @@ class Cases
$action,
$opTaskSource,
$opUserRelation,
- $aCase['APP_STATUS'],
+ $caseData['APP_STATUS'],
$opParticipated
);
break;
diff --git a/workflow/engine/classes/model/ObjectPermission.php b/workflow/engine/classes/model/ObjectPermission.php
index 932161b6f..e67cf340d 100644
--- a/workflow/engine/classes/model/ObjectPermission.php
+++ b/workflow/engine/classes/model/ObjectPermission.php
@@ -157,10 +157,11 @@ class ObjectPermission extends BaseObjectPermission
* @param string $proUid the uid of the process
* @param string $tasUid the uid of the task
* @param string $action for the object permissions VIEW, BLOCK, RESEND
+ * @param array $caseData for review the case status DRAFT, TODO, COMPLETED, PAUSED
*
* @return array
*/
- public function verifyObjectPermissionPerUser ($usrUid, $proUid, $tasUid = '', $action = '', $caseInfo = array())
+ public function verifyObjectPermissionPerUser ($usrUid, $proUid, $tasUid = '', $action = '', $caseData = array())
{
$userPermissions = array();
$oCriteria = new Criteria('workflow');
@@ -188,7 +189,7 @@ class ObjectPermission extends BaseObjectPermission
$row = $rs->getRow();
if ($row["OP_CASE_STATUS"] == "ALL" || $row["OP_CASE_STATUS"] == "" || $row["OP_CASE_STATUS"] == "0" ||
- $row["OP_CASE_STATUS"] == $caseInfo["APP_STATUS"]
+ $row["OP_CASE_STATUS"] == $caseData["APP_STATUS"]
) {
array_push($userPermissions, $row);
}
@@ -203,10 +204,11 @@ class ObjectPermission extends BaseObjectPermission
* @param string $proUid the uid of the process
* @param string $tasUid the uid of the task
* @param string $action for the object permissions VIEW, BLOCK, RESEND
+ * @param array $caseData for review the case status DRAFT, TODO, COMPLETED, PAUSED
*
* @return array
*/
- public function verifyObjectPermissionPerGroup ($usrUid, $proUid, $tasUid = '', $action = '')
+ public function verifyObjectPermissionPerGroup ($usrUid, $proUid, $tasUid = '', $action = '', $caseData = array())
{
$gr = new Groups();
$records = $gr->getActiveGroupsForAnUser($usrUid);
@@ -231,7 +233,7 @@ class ObjectPermission extends BaseObjectPermission
$row = $rs->getRow();
if ($row["OP_CASE_STATUS"] == "ALL" || $row["OP_CASE_STATUS"] == "" || $row["OP_CASE_STATUS"] == "0" ||
- $row["OP_CASE_STATUS"] == $aCase["APP_STATUS"]
+ $row["OP_CASE_STATUS"] == $caseData["APP_STATUS"]
) {
array_push($groupPermissions, $row);
}
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php
index 8e34eb0d9..853095c30 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php
@@ -2,25 +2,48 @@
namespace ProcessMaker\BusinessModel\Cases;
use ProcessMaker\Plugins\PluginRegistry;
+use AppDocument;
+use AppDocumentPeer;
+use Exception;
+use Criteria;
+use ResultSet;
+use G;
+use ObjectPermissionPeer;
+use StepPeer;
+use StepSupervisorPeer;
+use AppDelegation;
+use AppDelegationPeer;
+use Users;
+use Configurations;
+use Bootstrap;
+use WsBase;
+use ApplicationPeer;
+use ProcessMaker\BusinessModel\ProcessSupervisor;
+use ProcessMaker\BusinessModel\Cases AS BusinessModelCases;
+use Cases;
+use ProcessUserPeer;
+use AppFolder;
+
class InputDocument
{
/**
* Verify exists app_doc_uid in table APP_DOCUMENT
*
- * @param string $applicationUid
+ * @param string $appDocumentUid
*
- * return void Throw exception
+ * @return void Throw exception
+ * @throws Exception
*/
private function throwExceptionIfNotExistsAppDocument($appDocumentUid)
{
try {
- $appDocument = \AppDocumentPeer::retrieveByPK($appDocumentUid, 1);
+ $appDocument = AppDocumentPeer::retrieveByPK($appDocumentUid, 1);
if (is_null($appDocument)) {
- throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($appDocumentUid)));
+ throw new Exception(G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($appDocumentUid)));
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -31,15 +54,16 @@ class InputDocument
* @param string $applicationUid Unique id of Case
* @param string $delIndex Delegataion index
* @param string $userUid Unique id of User
- * @param string $inputDocumentUid
+ * @param string $appDocumentUid
*
- * return void Throw exception the user does not have permission to delete
+ * @return void Throw exception the user does not have permission to delete
+ * @throws Exception
*/
public function throwExceptionIfHaventPermissionToDelete($applicationUid, $delIndex, $userUid, $appDocumentUid)
{
try {
//Verify data inbox
- $case = new \ProcessMaker\BusinessModel\Cases();
+ $case = new BusinessModelCases();
$arrayResult = $case->getStatusInfo($applicationUid, $delIndex, $userUid);
$flagInbox = 1;
@@ -49,11 +73,11 @@ class InputDocument
}
//Verify data Supervisor
- $application = \ApplicationPeer::retrieveByPK($applicationUid);
+ $application = ApplicationPeer::retrieveByPK($applicationUid);
$flagSupervisor = 0;
- $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
+ $supervisor = new ProcessSupervisor();
$processSupervisor= $supervisor->getProcessSupervisors($application->getProUid(), "ASSIGNED");
$arraySupervisor = $processSupervisor["data"];
@@ -66,7 +90,7 @@ class InputDocument
}
if ($flagInbox == 0 && $flagSupervisor == 0) {
- throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION_DELETE_INPUT_DOCUMENT", array($userUid)));
+ throw new Exception(G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION_DELETE_INPUT_DOCUMENT", array($userUid)));
}
//verfiry exists $appDocumentUid
@@ -75,16 +99,16 @@ class InputDocument
//Verify data permission
$flagPermission = 0;
- $criteria = new \Criteria("workflow");
+ $criteria = new Criteria("workflow");
- $criteria->addSelectColumn(\AppDocumentPeer::DOC_UID);
+ $criteria->addSelectColumn(AppDocumentPeer::DOC_UID);
- $criteria->add(\AppDocumentPeer::APP_DOC_UID, $appDocumentUid, \Criteria::EQUAL);
- $criteria->add(\AppDocumentPeer::APP_UID, $applicationUid, \Criteria::EQUAL);
- $criteria->add(\AppDocumentPeer::APP_DOC_TYPE, "INPUT", \Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::APP_DOC_UID, $appDocumentUid, Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::APP_UID, $applicationUid, Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::APP_DOC_TYPE, "INPUT", Criteria::EQUAL);
- $rsCriteria = \AppDocumentPeer::doSelectRS($criteria);
- $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteria = AppDocumentPeer::doSelectRS($criteria);
+ $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
@@ -92,27 +116,27 @@ class InputDocument
$inputDocumentUid = $row["DOC_UID"];
//Criteria
- $criteria2 = new \Criteria("workflow");
+ $criteria2 = new Criteria("workflow");
- $criteria2->addSelectColumn(\ObjectPermissionPeer::OP_UID);
+ $criteria2->addSelectColumn(ObjectPermissionPeer::OP_UID);
- $criteria2->add(\ObjectPermissionPeer::PRO_UID, $application->getProUid(), \Criteria::EQUAL);
- $criteria2->add(\ObjectPermissionPeer::OP_OBJ_TYPE, "INPUT", \Criteria::EQUAL);
+ $criteria2->add(ObjectPermissionPeer::PRO_UID, $application->getProUid(), Criteria::EQUAL);
+ $criteria2->add(ObjectPermissionPeer::OP_OBJ_TYPE, "INPUT", Criteria::EQUAL);
$criteria2->add(
- $criteria2->getNewCriterion(\ObjectPermissionPeer::OP_OBJ_UID, $inputDocumentUid, \Criteria::EQUAL)->addOr(
- $criteria2->getNewCriterion(\ObjectPermissionPeer::OP_OBJ_UID, "0", \Criteria::EQUAL))->addOr(
- $criteria2->getNewCriterion(\ObjectPermissionPeer::OP_OBJ_UID, "", \Criteria::EQUAL))
+ $criteria2->getNewCriterion(ObjectPermissionPeer::OP_OBJ_UID, $inputDocumentUid, Criteria::EQUAL)->addOr(
+ $criteria2->getNewCriterion(ObjectPermissionPeer::OP_OBJ_UID, "0", Criteria::EQUAL))->addOr(
+ $criteria2->getNewCriterion(ObjectPermissionPeer::OP_OBJ_UID, "", Criteria::EQUAL))
);
- $criteria2->add(\ObjectPermissionPeer::OP_ACTION, "DELETE", \Criteria::EQUAL);
+ $criteria2->add(ObjectPermissionPeer::OP_ACTION, "DELETE", Criteria::EQUAL);
//User
$criteriaU = clone $criteria2;
- $criteriaU->add(\ObjectPermissionPeer::OP_USER_RELATION, 1, \Criteria::EQUAL);
- $criteriaU->add(\ObjectPermissionPeer::USR_UID, $userUid, \Criteria::EQUAL);
+ $criteriaU->add(ObjectPermissionPeer::OP_USER_RELATION, 1, Criteria::EQUAL);
+ $criteriaU->add(ObjectPermissionPeer::USR_UID, $userUid, Criteria::EQUAL);
- $rsCriteriaU = \ObjectPermissionPeer::doSelectRS($criteriaU);
- $rsCriteriaU->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteriaU = ObjectPermissionPeer::doSelectRS($criteriaU);
+ $rsCriteriaU->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($rsCriteriaU->next()) {
$flagPermission = 1;
@@ -122,13 +146,13 @@ class InputDocument
if ($flagPermission == 0) {
$criteriaG = clone $criteria2;
- $criteriaG->add(\ObjectPermissionPeer::OP_USER_RELATION, 2, \Criteria::EQUAL);
+ $criteriaG->add(ObjectPermissionPeer::OP_USER_RELATION, 2, Criteria::EQUAL);
- $criteriaG->addJoin(\ObjectPermissionPeer::USR_UID, \GroupUserPeer::GRP_UID, \Criteria::LEFT_JOIN);
- $criteriaG->add(\GroupUserPeer::USR_UID, $userUid, \Criteria::EQUAL);
+ $criteriaG->addJoin(ObjectPermissionPeer::USR_UID, GroupUserPeer::GRP_UID, Criteria::LEFT_JOIN);
+ $criteriaG->add(GroupUserPeer::USR_UID, $userUid, Criteria::EQUAL);
- $rsCriteriaG = \ObjectPermissionPeer::doSelectRS($criteriaG);
- $rsCriteriaG->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteriaG = ObjectPermissionPeer::doSelectRS($criteriaG);
+ $rsCriteriaG->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($rsCriteriaG->next()) {
$flagPermission = 1;
@@ -137,9 +161,9 @@ class InputDocument
}
if ($flagPermission == 0) {
- throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION_DELETE_INPUT_DOCUMENT", array($userUid)));
+ throw new Exception(G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION_DELETE_INPUT_DOCUMENT", array($userUid)));
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -151,53 +175,54 @@ class InputDocument
* @param string $delIndex Delegataion index
* @param string $appDocumentUid
*
- * return void Throw exception if not exists input Document in Steps
+ * @return void Throw exception if not exists input Document in Steps
+ * @throws Exception
*/
- public function throwExceptionIfInputDocumentNotExistsInSteps($applicacionUid, $delIndex, $appDocumentUid)
+ public function throwExceptionIfInputDocumentNotExistsInSteps($applicationUid, $delIndex, $appDocumentUid)
{
try {
//Verify Case
- $appDelegation = \AppDelegationPeer::retrieveByPK($applicacionUid, $delIndex);
+ $appDelegation = AppDelegationPeer::retrieveByPK($applicationUid, $delIndex);
if (is_null($appDelegation)) {
- throw new \Exception(\G::LoadTranslation("ID_CASE_DEL_INDEX_DOES_NOT_EXIST", array("app_uid", $applicacionUid, "del_index", $delIndex)));
+ throw new Exception(G::LoadTranslation("ID_CASE_DEL_INDEX_DOES_NOT_EXIST", array("app_uid", $applicationUid, "del_index", $delIndex)));
}
$taskUid = $appDelegation->getTasUid();
//Verify Steps
- $criteria = new \Criteria("workflow");
+ $criteria = new Criteria("workflow");
- $criteria->addSelectColumn(\AppDocumentPeer::DOC_UID);
+ $criteria->addSelectColumn(AppDocumentPeer::DOC_UID);
- $criteria->add(\AppDocumentPeer::APP_DOC_UID, $appDocumentUid, \Criteria::EQUAL);
- $criteria->add(\AppDocumentPeer::APP_UID, $applicacionUid, \Criteria::EQUAL);
- $criteria->add(\AppDocumentPeer::APP_DOC_TYPE, "INPUT", \Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::APP_DOC_UID, $appDocumentUid, Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::APP_UID, $applicationUid, Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::APP_DOC_TYPE, "INPUT", Criteria::EQUAL);
- $rsCriteria = \AppDocumentPeer::doSelectRS($criteria);
- $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteria = AppDocumentPeer::doSelectRS($criteria);
+ $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$inputDocumentUid = $row["DOC_UID"];
- $criteria = new \Criteria("workflow");
+ $criteria = new Criteria("workflow");
- $criteria->addSelectColumn(\StepPeer::STEP_UID);
+ $criteria->addSelectColumn(StepPeer::STEP_UID);
- $criteria->add(\StepPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
- $criteria->add(\StepPeer::STEP_TYPE_OBJ, "INPUT_DOCUMENT", \Criteria::EQUAL);
- $criteria->add(\StepPeer::STEP_UID_OBJ, $inputDocumentUid, \Criteria::EQUAL);
+ $criteria->add(StepPeer::TAS_UID, $taskUid, Criteria::EQUAL);
+ $criteria->add(StepPeer::STEP_TYPE_OBJ, "INPUT_DOCUMENT", Criteria::EQUAL);
+ $criteria->add(StepPeer::STEP_UID_OBJ, $inputDocumentUid, Criteria::EQUAL);
- $rsCriteria = \StepPeer::doSelectRS($criteria);
- $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteria = StepPeer::doSelectRS($criteria);
+ $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if (!$rsCriteria->next()) {
- throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_DOCUMENT_DOES_NOT_EXIST", array($appDocumentUid)));
+ throw new Exception(G::LoadTranslation("ID_CASES_INPUT_DOCUMENT_DOES_NOT_EXIST", array($appDocumentUid)));
}
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -205,39 +230,40 @@ class InputDocument
/**
* Get criteria for AppDocument
*
- * return object
+ * @return object
+ * @throws Exception
*/
public function getAppDocumentCriteriaByData($applicationUid)
{
try {
- $criteria = new \Criteria("workflow");
+ $criteria = new Criteria("workflow");
- $criteria->addSelectColumn(\AppDocumentPeer::APP_DOC_UID);
- $criteria->addSelectColumn(\AppDocumentPeer::DOC_VERSION);
- $criteria->addSelectColumn(\AppDocumentPeer::DOC_UID);
- $criteria->addSelectColumn(\AppDocumentPeer::USR_UID);
- $criteria->addSelectColumn(\AppDocumentPeer::APP_DOC_TYPE);
- $criteria->addSelectColumn(\AppDocumentPeer::APP_DOC_CREATE_DATE);
- $criteria->addSelectColumn(\AppDocumentPeer::APP_DOC_INDEX);
+ $criteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
+ $criteria->addSelectColumn(AppDocumentPeer::DOC_VERSION);
+ $criteria->addSelectColumn(AppDocumentPeer::DOC_UID);
+ $criteria->addSelectColumn(AppDocumentPeer::USR_UID);
+ $criteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE);
+ $criteria->addSelectColumn(AppDocumentPeer::APP_DOC_CREATE_DATE);
+ $criteria->addSelectColumn(AppDocumentPeer::APP_DOC_INDEX);
$sql = "
SELECT MAX(APPDOC.DOC_VERSION)
- FROM " . \AppDocumentPeer::TABLE_NAME . " AS APPDOC
- WHERE APPDOC.APP_DOC_UID = " . \AppDocumentPeer::APP_DOC_UID . "
+ FROM " . AppDocumentPeer::TABLE_NAME . " AS APPDOC
+ WHERE APPDOC.APP_DOC_UID = " . AppDocumentPeer::APP_DOC_UID . "
";
$criteria->add(
- $criteria->getNewCriterion(\AppDocumentPeer::APP_UID, $applicationUid, \Criteria::EQUAL)->addAnd(
- $criteria->getNewCriterion(\AppDocumentPeer::APP_DOC_TYPE, array("INPUT", "ATTACHED"), \Criteria::IN))->addAnd(
- $criteria->getNewCriterion(\AppDocumentPeer::APP_DOC_STATUS, array("ACTIVE"), \Criteria::IN))->addAnd(
- $criteria->getNewCriterion(\AppDocumentPeer::DOC_VERSION, \AppDocumentPeer::DOC_VERSION . " IN ($sql)", \Criteria::CUSTOM))
+ $criteria->getNewCriterion(AppDocumentPeer::APP_UID, $applicationUid, Criteria::EQUAL)->addAnd(
+ $criteria->getNewCriterion(AppDocumentPeer::APP_DOC_TYPE, array("INPUT", "ATTACHED"), Criteria::IN))->addAnd(
+ $criteria->getNewCriterion(AppDocumentPeer::APP_DOC_STATUS, array("ACTIVE"), Criteria::IN))->addAnd(
+ $criteria->getNewCriterion(AppDocumentPeer::DOC_VERSION, AppDocumentPeer::DOC_VERSION . " IN ($sql)", Criteria::CUSTOM))
);
- $criteria->addAscendingOrderByColumn(\AppDocumentPeer::APP_DOC_INDEX);
+ $criteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX);
//Return
return $criteria;
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -247,23 +273,43 @@ class InputDocument
*
* @param array $record Record
*
- * return array Return an array with data AppDocument
+ * @return array Return an array with data AppDocument
+ * @throws Exception
*/
public function getAppDocumentDataFromRecord(array $record)
{
try {
- return array(
- "app_doc_uid" => $record["APP_DOC_UID"],
- "app_doc_filename" => $record["APP_DOC_FILENAME"],
- "doc_uid" => $record["DOC_UID"],
- "app_doc_version" => $record["DOC_VERSION"],
- "app_doc_create_date" => $record["APP_DOC_CREATE_DATE"],
- "app_doc_create_user" => $record["APP_DOC_CREATE_USER"],
- "app_doc_type" => $record["APP_DOC_TYPE"],
- "app_doc_index" => (int)($record["APP_DOC_INDEX"]),
- "app_doc_link" => $record["APP_DOC_LINK"]
- );
- } catch (\Exception $e) {
+ $newArray = array();
+ if (isset($record["APP_DOC_UID"])) {
+ $newArray["app_doc_uid"] = $record["APP_DOC_UID"];
+ }
+ if (isset($record["APP_DOC_FILENAME"])) {
+ $newArray["app_doc_filename"] = $record["APP_DOC_FILENAME"];
+ }
+ if (isset($record["DOC_UID"])) {
+ $newArray["doc_uid"] = $record["DOC_UID"];
+ }
+ if (isset($record["DOC_VERSION"])) {
+ $newArray["app_doc_version"] = $record["DOC_VERSION"];
+ }
+ if (isset($record["APP_DOC_CREATE_DATE"])) {
+ $newArray["app_doc_create_date"] = $record["APP_DOC_CREATE_DATE"];
+ }
+ if (isset($record["APP_DOC_CREATE_USER"])) {
+ $newArray["app_doc_create_user"] = $record["APP_DOC_CREATE_USER"];
+ }
+ if (isset($record["APP_DOC_TYPE"])) {
+ $newArray["app_doc_type"] = $record["APP_DOC_TYPE"];
+ }
+ if (isset($record["APP_DOC_INDEX"])) {
+ $newArray["app_doc_index"] = $record["APP_DOC_INDEX"];
+ }
+ if (isset($record["APP_DOC_LINK"])) {
+ $newArray["app_doc_link"] = $record["APP_DOC_LINK"];
+ }
+
+ return $newArray;
+ } catch (Exception $e) {
throw $e;
}
}
@@ -274,17 +320,18 @@ class InputDocument
* @param string $applicationUid Unique id of Case
* @param string $userUid Unique id of User
*
- * return array Return data of input documents
+ * @return array Return data of input documents
+ * @throws Exception
*/
public function getCasesInputDocumentsBySupervisor($applicationUid, $userUid)
{
try {
//Verify data Supervisor
- $application = \ApplicationPeer::retrieveByPK($applicationUid);
+ $application = ApplicationPeer::retrieveByPK($applicationUid);
$flagSupervisor = 0;
- $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
+ $supervisor = new ProcessSupervisor();
$processSupervisor = $supervisor->getProcessSupervisors($application->getProUid(), "ASSIGNED");
$arraySupervisor = $processSupervisor["data"];
@@ -295,9 +342,9 @@ class InputDocument
}
}
- $user = new \Users();
- $appDocument = new \AppDocument();
- $configuraction = new \Configurations();
+ $user = new Users();
+ $appDocument = new AppDocument();
+ $configuraction = new Configurations();
$confEnvSetting = $configuraction->getFormats();
@@ -306,8 +353,8 @@ class InputDocument
//Query
$criteria = $this->getAppDocumentCriteriaByData($applicationUid);
- $rsCriteria = \AppDocumentPeer::doSelectRS($criteria);
- $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteria = AppDocumentPeer::doSelectRS($criteria);
+ $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
@@ -324,12 +371,12 @@ class InputDocument
}
if (!empty($arrayInputDocument) && $flagSupervisor == 0) {
- throw new \Exception(\G::LoadTranslation("ID_USER_IS_NOT_SUPERVISOR"));
+ throw new Exception(G::LoadTranslation("ID_USER_IS_NOT_SUPERVISOR"));
}
//Return
return $arrayInputDocument;
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -340,13 +387,14 @@ class InputDocument
* @param string $applicationUid
* @param string $userUid
*
- * return array Return an array with data of an InputDocument
+ * @return array Return an array with data of an InputDocument
+ * @throws Exception
*/
public function getCasesInputDocuments($applicationUid, $userUid)
{
try {
//Verify data inbox
- $case = new \ProcessMaker\BusinessModel\Cases();
+ $case = new BusinessModelCases();
$arrayResult = $case->getStatusInfo($applicationUid, 0, $userUid);
$flagInbox = true;
@@ -355,9 +403,9 @@ class InputDocument
$flagInbox = false;
}
- $user = new \Users();
- $appDocument = new \AppDocument();
- $configuraction = new \Configurations();
+ $user = new Users();
+ $appDocument = new AppDocument();
+ $configuraction = new Configurations();
$confEnvSetting = $configuraction->getFormats();
@@ -367,11 +415,11 @@ class InputDocument
$criteria = $this->getAppDocumentCriteriaByData($applicationUid);
if (!$flagInbox) {
- $criteria->add(\AppDocumentPeer::USR_UID, $userUid, \Criteria::EQUAL);
+ $criteria->add(AppDocumentPeer::USR_UID, $userUid, Criteria::EQUAL);
}
- $rsCriteria = \AppDocumentPeer::doSelectRS($criteria);
- $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $rsCriteria = AppDocumentPeer::doSelectRS($criteria);
+ $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
@@ -393,7 +441,7 @@ class InputDocument
//Return
return $arrayInputDocument;
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -405,7 +453,8 @@ class InputDocument
* @param string $userUid
* @param string $inputDocumentUid
*
- * return array Return an array with data of an InputDocument
+ * @return array Return an array with data of an InputDocument
+ * @throws Exception
*/
public function getCasesInputDocument($applicationUid, $userUid, $inputDocumentUid)
{
@@ -413,11 +462,11 @@ class InputDocument
$sApplicationUID = $applicationUid;
$sUserUID = $userUid;
- $oCase = new \Cases();
+ $oCase = new Cases();
$fields = $oCase->loadCase( $sApplicationUID );
$sProcessUID = $fields['PRO_UID'];
$sTaskUID = '';
- $oCaseRest = new \ProcessMaker\BusinessModel\Cases();
+ $oCaseRest = new BusinessModelCases();
$oCaseRest->getAllUploadedDocumentsCriteria( $sProcessUID, $sApplicationUID, $sTaskUID, $sUserUID );
$result = array ();
global $_DBArray;
@@ -439,7 +488,7 @@ class InputDocument
if ($docrow["app_doc_uid"] == $inputDocumentUid) {
$flagInputDocument = true;
- $appDocument = \AppDocumentPeer::retrieveByPK($inputDocumentUid, $row["DOC_VERSION"]);
+ $appDocument = AppDocumentPeer::retrieveByPK($inputDocumentUid, $row["DOC_VERSION"]);
if (is_null($appDocument)) {
$flagInputDocument = false;
@@ -452,12 +501,12 @@ class InputDocument
}
if (!$flagInputDocument) {
- throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($inputDocumentUid)));
+ throw new Exception(G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($inputDocumentUid)));
}
$oResponse = json_decode(json_encode($result), false);
return $oResponse;
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -468,12 +517,12 @@ class InputDocument
* @param $app_uid
* @param $app_doc_uid
* @param $version
- * @throws \Exception
+ * @throws Exception
*/
public function downloadInputDocument($app_uid, $app_doc_uid, $version)
{
try {
- $oAppDocument = new \AppDocument();
+ $oAppDocument = new AppDocument();
if ($version == 0) {
$docVersion = $oAppDocument->getLastAppDocVersion($app_doc_uid);
} else {
@@ -484,8 +533,8 @@ class InputDocument
$iDocVersion = $oAppDocument->getDocVersion();
$info = pathinfo($oAppDocument->getAppDocFilename());
- $app_uid = \G::getPathFromUID($oAppDocument->Fields['APP_UID']);
- $file = \G::getPathFromFileUID($oAppDocument->Fields['APP_UID'], $sAppDocUid);
+ $app_uid = G::getPathFromUID($oAppDocument->Fields['APP_UID']);
+ $file = G::getPathFromFileUID($oAppDocument->Fields['APP_UID'], $sAppDocUid);
$ext = (isset($info['extension']) ? $info['extension'] : '');
$realPath = PATH_DOCUMENT . $app_uid . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
@@ -513,7 +562,7 @@ class InputDocument
}
@fclose($fp);
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -691,19 +740,20 @@ class InputDocument
*
* @param string $inputDocumentUid
*
- * return array Return an array with data of an InputDocument
+ * @return array Return an array with data of an InputDocument
+ * @throws Exception
*/
public function removeInputDocument($inputDocumentUid)
{
try {
- $oAppDocument = \AppDocumentPeer::retrieveByPK( $inputDocumentUid, 1 );
+ $oAppDocument = AppDocumentPeer::retrieveByPK( $inputDocumentUid, 1 );
if (is_null( $oAppDocument ) || $oAppDocument->getAppDocStatus() == 'DELETED') {
- throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($inputDocumentUid)));
+ throw new Exception(G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($inputDocumentUid)));
}
- $ws = new \WsBase();
+ $ws = new WsBase();
$ws->removeDocument($inputDocumentUid);
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
@@ -717,7 +767,8 @@ class InputDocument
* @param string $inputDocumentUid
* @param string $userUid
*
- * return array Return an array with data of an InputDocument
+ * @return array Return an array with data of an InputDocument
+ * @throws Exception
*/
public function addCasesInputDocument($applicationUid, $taskUid, $appDocComment, $inputDocumentUid, $userUid, $runningWorkflow = true)
{
@@ -726,90 +777,90 @@ class InputDocument
$code = $_FILES['form']['error'];
switch ($code) {
case UPLOAD_ERR_INI_SIZE:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_INI_SIZE' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_INI_SIZE' );
break;
case UPLOAD_ERR_FORM_SIZE:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_FORM_SIZE' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_FORM_SIZE' );
break;
case UPLOAD_ERR_PARTIAL:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_PARTIAL' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_PARTIAL' );
break;
case UPLOAD_ERR_NO_FILE:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_NO_FILE' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_NO_FILE' );
break;
case UPLOAD_ERR_NO_TMP_DIR:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_NO_TMP_DIR' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_NO_TMP_DIR' );
break;
case UPLOAD_ERR_CANT_WRITE:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_CANT_WRITE' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_CANT_WRITE' );
break;
case UPLOAD_ERR_EXTENSION:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_EXTENSION' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_EXTENSION' );
break;
default:
- $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_UNKNOWN' );
+ $message = G::LoadTranslation( 'ID_UPLOAD_ERR_UNKNOWN' );
break;
}
- \G::SendMessageText( $message, "ERROR" );
+ G::SendMessageText( $message, "ERROR" );
$backUrlObj = explode( "sys" . SYS_SYS, $_SERVER['HTTP_REFERER'] );
- \G::header( "location: " . "/sys" . SYS_SYS . $backUrlObj[1] );
+ G::header( "location: " . "/sys" . SYS_SYS . $backUrlObj[1] );
die();
}
- $appDocUid = \G::generateUniqueID();
+ $appDocUid = G::generateUniqueID();
$docVersion = '';
$appDocType = 'INPUT';
- $case = new \Cases();
- $delIndex = \AppDelegation::getCurrentIndex($applicationUid);
+ $case = new Cases();
+ $delIndex = AppDelegation::getCurrentIndex($applicationUid);
if ($runningWorkflow) {
$case->thisIsTheCurrentUser($applicationUid, $delIndex, $userUid, 'REDIRECT', 'casesListExtJs');
} else {
- $criteria = new \Criteria('workflow');
+ $criteria = new Criteria('workflow');
- $criteria->add(\AppDelegationPeer::APP_UID, $applicationUid);
- $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex);
- $criteria->add(\AppDelegationPeer::USR_UID, $userUid);
+ $criteria->add(AppDelegationPeer::APP_UID, $applicationUid);
+ $criteria->add(AppDelegationPeer::DEL_INDEX, $delIndex);
+ $criteria->add(AppDelegationPeer::USR_UID, $userUid);
- $rsCriteria = \ProcessUserPeer::doSelectRS($criteria);
+ $rsCriteria = ProcessUserPeer::doSelectRS($criteria);
if (!$rsCriteria->next()) {
- $case2 = new \ProcessMaker\BusinessModel\Cases();
+ $case2 = new BusinessModelCases();
$arrayApplicationData = $case2->getApplicationRecordByPk($applicationUid, [], false);
$msg = '';
- $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
+ $supervisor = new ProcessSupervisor();
$flagps = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $userUid);
if ($flagps == false) {
- $msg = \G::LoadTranslation('ID_USER_NOT_IT_BELONGS_CASE_OR_NOT_SUPERVISOR');
+ $msg = G::LoadTranslation('ID_USER_NOT_IT_BELONGS_CASE_OR_NOT_SUPERVISOR');
}
if ($msg == '') {
- $criteria = new \Criteria('workflow');
+ $criteria = new Criteria('workflow');
- $criteria->add(\StepSupervisorPeer::PRO_UID, $arrayApplicationData['PRO_UID'], \Criteria::EQUAL);
- $criteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT', \Criteria::EQUAL);
- $criteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $inputDocumentUid, \Criteria::EQUAL);
+ $criteria->add(StepSupervisorPeer::PRO_UID, $arrayApplicationData['PRO_UID'], Criteria::EQUAL);
+ $criteria->add(StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT', Criteria::EQUAL);
+ $criteria->add(StepSupervisorPeer::STEP_UID_OBJ, $inputDocumentUid, Criteria::EQUAL);
- $rsCriteria = \StepSupervisorPeer::doSelectRS($criteria);
+ $rsCriteria = StepSupervisorPeer::doSelectRS($criteria);
if (!$rsCriteria->next()) {
- $msg = \G::LoadTranslation('ID_USER_IS_SUPERVISOR_DOES_NOT_ASSOCIATED_INPUT_DOCUMENT');
+ $msg = G::LoadTranslation('ID_USER_IS_SUPERVISOR_DOES_NOT_ASSOCIATED_INPUT_DOCUMENT');
}
}
if ($msg != '') {
if ($runningWorkflow) {
- \G::SendMessageText($msg, 'ERROR');
+ G::SendMessageText($msg, 'ERROR');
$backUrlObj = explode('sys' . SYS_SYS, $_SERVER['HTTP_REFERER']);
- \G::header('location: ' . '/sys' . SYS_SYS . $backUrlObj[1]);
+ G::header('location: ' . '/sys' . SYS_SYS . $backUrlObj[1]);
exit(0);
} else {
- throw new \Exception($msg);
+ throw new Exception($msg);
}
}
}
@@ -817,19 +868,19 @@ class InputDocument
//Load the fields
$arrayField = $case->loadCase($applicationUid);
- $arrayField["APP_DATA"] = array_merge($arrayField["APP_DATA"], \G::getSystemConstants());
+ $arrayField["APP_DATA"] = array_merge($arrayField["APP_DATA"], G::getSystemConstants());
//Validate Process Uid and Input Document Process Uid
$inputDocumentInstance = new \InputDocument();
$inputDocumentFields = $inputDocumentInstance->load($inputDocumentUid);
if ($arrayField['PRO_UID'] != $inputDocumentFields['PRO_UID']) {
- throw new \Exception(\G::LoadTranslation("ID_INPUT_DOCUMENT_DOES_NOT_EXIST",
+ throw new Exception(G::LoadTranslation("ID_INPUT_DOCUMENT_DOES_NOT_EXIST",
array('UID=' . $inputDocumentUid, 'PRO_UID=' . $arrayField['PRO_UID'])));
}
//Triggers
$arrayTrigger = $case->loadTriggers($taskUid, "INPUT_DOCUMENT", $inputDocumentUid, "AFTER");
//Add Input Document
if (empty($_FILES)) {
- throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_FILENAME_DOES_NOT_EXIST"));
+ throw new Exception(G::LoadTranslation("ID_CASES_INPUT_FILENAME_DOES_NOT_EXIST"));
}
if (!$_FILES["form"]["error"]) {
$_FILES["form"]["error"] = 0;
@@ -866,14 +917,14 @@ class InputDocument
$arrayData["TAS_UID"] = $taskUid;
$case->updateCase($applicationUid, $arrayData);
return($this->getCasesInputDocument($applicationUid, $userUid, $appDocUid));
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
}
/**
* @param $files $_FILES request files
- * @param $caseInstance \Cases object class.cases
+ * @param $caseInstance Cases object class.cases
* @param $aData array data case
* @param $userUid string user id
* @param $appUid string application id
@@ -941,10 +992,10 @@ class InputDocument
$aID = $oInputDocument->load($indocUid);
//Get the Custom Folder ID (create if necessary)
- $oFolder = new \AppFolder();
+ $oFolder = new AppFolder();
//***Validating the file allowed extensions***
- $res = \G::verifyInputDocExtension($aID['INP_DOC_TYPE_FILE'], $arrayFileName[$i], $arrayFileTmpName[$i]);
+ $res = G::verifyInputDocExtension($aID['INP_DOC_TYPE_FILE'], $arrayFileName[$i], $arrayFileTmpName[$i]);
if ($res->status == 0) {
//The value of the variable "_label" is cleared because the file load failed.
//The validation of the die command should be improved.
@@ -953,9 +1004,9 @@ class InputDocument
$caseInstance->updateCase($appUid, $aData);
}
$message = $res->message;
- \G::SendMessageText($message, "ERROR");
+ G::SendMessageText($message, "ERROR");
$backUrlObj = explode("sys" . SYS_SYS, $_SERVER['HTTP_REFERER']);
- \G::header("location: " . "/sys" . SYS_SYS . $backUrlObj[1]);
+ G::header("location: " . "/sys" . SYS_SYS . $backUrlObj[1]);
die();
}
@@ -967,9 +1018,9 @@ class InputDocument
if ($inpDocMaxFilesize > 0 && $fileSizeByField > 0) {
if ($fileSizeByField > $inpDocMaxFilesize) {
- \G::SendMessageText(\G::LoadTranslation("ID_SIZE_VERY_LARGE_PERMITTED"), "ERROR");
+ G::SendMessageText(G::LoadTranslation("ID_SIZE_VERY_LARGE_PERMITTED"), "ERROR");
$arrayAux1 = explode("sys" . SYS_SYS, $_SERVER["HTTP_REFERER"]);
- \G::header("location: /sys" . SYS_SYS . $arrayAux1[1]);
+ G::header("location: /sys" . SYS_SYS . $arrayAux1[1]);
exit(0);
}
}
@@ -980,31 +1031,31 @@ class InputDocument
}
$sExtension = pathinfo($aFields["APP_DOC_FILENAME"]);
- if (\Bootstrap::getDisablePhpUploadExecution() === 1 && $sExtension["extension"] === 'php') {
- $message = \G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED');
- \Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, $sFileName);
- \G::SendMessageText($message, "ERROR");
+ if (Bootstrap::getDisablePhpUploadExecution() === 1 && $sExtension["extension"] === 'php') {
+ $message = G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED');
+ Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, 'processmaker.log');
+ G::SendMessageText($message, "ERROR");
$backUrlObj = explode("sys" . SYS_SYS, $_SERVER['HTTP_REFERER']);
- \G::header("location: " . "/sys" . SYS_SYS . $backUrlObj[1]);
+ G::header("location: " . "/sys" . SYS_SYS . $backUrlObj[1]);
die();
}
- $oAppDocument = new \AppDocument();
+ $oAppDocument = new AppDocument();
$oAppDocument->create($aFields);
$iDocVersion = $oAppDocument->getDocVersion();
$sAppDocUid = $oAppDocument->getAppDocUid();
$aInfo = pathinfo($oAppDocument->getAppDocFilename());
$sExtension = ((isset($aInfo["extension"])) ? $aInfo["extension"] : "");
- $pathUID = \G::getPathFromUID($appUid);
+ $pathUID = G::getPathFromUID($appUid);
$sPathName = PATH_DOCUMENT . $pathUID . PATH_SEP;
$sFileName = $sAppDocUid . "_" . $iDocVersion . "." . $sExtension;
- \G::uploadFile($arrayFileTmpName[$i], $sPathName, $sFileName);
+ G::uploadFile($arrayFileTmpName[$i], $sPathName, $sFileName);
//set variable for APP_DOC_UID
- $aData["APP_DATA"][$oAppDocument->getAppDocFieldname()] = \G::json_encode([$oAppDocument->getAppDocUid()]);
- $aData["APP_DATA"][$oAppDocument->getAppDocFieldname() . "_label"] = \G::json_encode([$oAppDocument->getAppDocFilename()]);
+ $aData["APP_DATA"][$oAppDocument->getAppDocFieldname()] = G::json_encode([$oAppDocument->getAppDocUid()]);
+ $aData["APP_DATA"][$oAppDocument->getAppDocFieldname() . "_label"] = G::json_encode([$oAppDocument->getAppDocFilename()]);
$caseInstance->updateCase($appUid, $aData);
//Plugin Hook PM_UPLOAD_DOCUMENT for upload document
@@ -1031,4 +1082,62 @@ class InputDocument
}
}
}
+
+ /**
+ * Get all versions related to the appDocUid
+ * @param string $appUid, Uid of the case
+ * @param string $appDocUid, Uid of the document
+ * @param string $docUid, Uid of the inputDocument
+ * @param string $userUid, Uid of user
+ * @param string $status, It can be ACTIVE, DELETED
+ * @param string $docType, It can be ATTACHED, INPUT
+ * @param string $docTags, It can be EXTERNAL, INPUT
+ *
+ * @return array $docVersion
+ * @throws Exception
+ */
+ public function getAllVersionByDocUid ($appUid, $appDocUid, $docUid = '', $userUid = '', $status = 'ACTIVE', $docType = '', $docTags = '')
+ {
+ try {
+ $criteria = new Criteria('workflow');
+ $criteria->add(AppDocumentPeer::APP_UID, $appUid);
+ $criteria->add(AppDocumentPeer::APP_DOC_UID, $appDocUid);
+ $criteria->add(AppDocumentPeer::APP_DOC_STATUS, $status, Criteria::EQUAL);
+ if (!empty($docUid)) {
+ $criteria->add(AppDocumentPeer::DOC_UID, $docUid);
+ }
+ if (!empty($userUid)) {
+ $criteria->add(AppDocumentPeer::USR_UID, $userUid);
+ }
+ if (!empty($docType)) {
+ $criteria->add(AppDocumentPeer::APP_DOC_TYPE, $docType);
+ }
+ if (!empty($docTags)) {
+ $criteria->add(AppDocumentPeer::APP_DOC_TAGS, $docTags);
+ }
+ $criteria->addDescendingOrderByColumn(AppDocumentPeer::DOC_VERSION);
+ $dataset = AppDocumentPeer::doSelectRS($criteria);
+ $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $dataset->next();
+ $config = new Configurations();
+ $confEnvSetting = $config->getFormats();
+ $user = new Users();
+
+ $arrayInputDocument = array();
+ while ($row = $dataset->getRow()) {
+ //todo, we use this *** in others endpoint for mark that user not exist, but we need to change
+ $userInfo = '***';
+ if ($row["USR_UID"] !== '-1') {
+ $arrayUserData = $user->load($row["USR_UID"]);
+ $userInfo = $config->usersNameFormatBySetParameters($confEnvSetting["format"], $arrayUserData["USR_USERNAME"], $arrayUserData["USR_FIRSTNAME"], $arrayUserData["USR_LASTNAME"]);
+ }
+ $row["APP_DOC_CREATE_USER"] = $userInfo;
+ $arrayInputDocument[] = $this->getAppDocumentDataFromRecord($row);
+ $dataset->next();
+ }
+ return $arrayInputDocument;
+ } catch (Exception $e) {
+ throw $e;
+ }
+ }
}
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
index 2e3942477..9a0025743 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
@@ -3,7 +3,6 @@
namespace ProcessMaker\BusinessModel;
use ProcessMaker\BusinessModel\Lists;
-use ProcessMaker\BusinessModel\Cases;
use G;
use Criteria;
use UsersPeer;
@@ -12,6 +11,31 @@ use AppDelayPeer;
use ProcessMaker\Core\System;
use ProcessMaker\Util\DateTime;
use PmLicenseManager;
+use Bootstrap;
+use ProcessPeer;
+use BpmnProjectPeer;
+use Propel;
+use ResultSet;
+use Process;
+use Cases;
+use ProcessMaker\BusinessModel\Task as BusinessModelTask;
+use ProcessMaker\Services\Api\Project\Activity\Step as ActivityStep;
+use Exception;
+use AppCacheView;
+use database;
+use TaskPeer;
+use StepPeer;
+use GulliverBasePeer;
+use AppDocument;
+use Users;
+use ProcessMaker\BusinessModel\User as BusinessModelUser;
+use ProcessMaker\BusinessModel\Cases as BusinessModelCases;
+use ProcessMaker\Core\RoutingScreen;
+use Configurations;
+use InputDocument;
+use AppFolder;
+use PMmemcached;
+use RBAC;
class Light
{
@@ -21,7 +45,7 @@ class Light
*
* @param $userId User id
* @return array
- * @throws \Exception
+ * @throws Exception
*/
public function getProcessListStartCase($userId)
{
@@ -29,9 +53,9 @@ class Light
try {
// getting bpmn projects
$c = new Criteria('workflow');
- $c->addSelectColumn(\BpmnProjectPeer::PRJ_UID);
- $ds = \ProcessPeer::doSelectRS($c, \Propel::getDbConnection('workflow_ro'));
- $ds->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $c->addSelectColumn(BpmnProjectPeer::PRJ_UID);
+ $ds = ProcessPeer::doSelectRS($c, Propel::getDbConnection('workflow_ro'));
+ $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$bpmnProjects = array();
while ($ds->next()) {
@@ -39,49 +63,50 @@ class Light
$bpmnProjects[] = $row['PRJ_UID'];
}
- $oProcess = new \Process();
- $oCase = new \Cases();
+ $oProcess = new Process();
+ $oCase = new Cases();
//Get ProcessStatistics Info
- $start = 0;
- $limit = '';
- $proData = $oProcess->getAllProcesses( $start, $limit, null, null, false, true );
+ $start = 0;
+ $limit = '';
+ $proData = $oProcess->getAllProcesses($start, $limit, null, null, false, true);
- $processListInitial = $oCase->getStartCasesPerType( $userId, 'category' );
+ $processListInitial = $oCase->getStartCasesPerType($userId, 'category');
- $processList = array ();
+ $processList = array();
foreach ($processListInitial as $key => $procInfo) {
- if (isset( $procInfo['pro_uid'] )) {
- if (trim( $procInfo['cat'] ) == "") {
+ if (isset($procInfo['pro_uid'])) {
+ if (trim($procInfo['cat']) == "") {
$procInfo['cat'] = "_OTHER_";
}
$processList[$procInfo['catname']][$procInfo['value']] = $procInfo;
}
}
- ksort( $processList );
+ ksort($processList);
foreach ($processList as $key => $processInfo) {
- ksort( $processList[$key] );
+ ksort($processList[$key]);
}
foreach ($proData as $key => $proInfo) {
$proData[$proInfo['PRO_UID']] = $proInfo;
}
- $task = new \ProcessMaker\BusinessModel\Task();
+ $task = new BusinessModelTask();
$task->setFormatFieldNameInUppercase(false);
$task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid"));
- $step = new \ProcessMaker\Services\Api\Project\Activity\Step();
+ $step = new ActivityStep();
$response = array();
foreach ($processList as $key => $processInfo) {
- $tempTreeChildren = array ();
+ $tempTreeChildren = array();
foreach ($processList[$key] as $keyChild => $processInfoChild) {
if (in_array($processInfoChild['pro_uid'], $bpmnProjects)) {
- $tempTreeChild['text'] = $keyChild; //ellipsis ( $keyChild, 50 );
+ $tempTreeChild['text'] = $keyChild; //ellipsis ( $keyChild, 50 );
$tempTreeChild['processId'] = $processInfoChild['pro_uid'];
- $tempTreeChild['taskId'] = $processInfoChild['uid'];
- list($tempTreeChild['offlineEnabled'], $tempTreeChild['autoRoot']) = $task->getColumnValues($processInfoChild['pro_uid'], $processInfoChild['uid'], array('TAS_OFFLINE', 'TAS_AUTO_ROOT'));
+ $tempTreeChild['taskId'] = $processInfoChild['uid'];
+ list($tempTreeChild['offlineEnabled'], $tempTreeChild['autoRoot']) = $task->getColumnValues($processInfoChild['pro_uid'],
+ $processInfoChild['uid'], array('TAS_OFFLINE', 'TAS_AUTO_ROOT'));
//Add process category
$tempTreeChild['categoryName'] = $processInfoChild['catname'];
$tempTreeChild['categoryId'] = $processInfoChild['cat'];
@@ -94,30 +119,32 @@ class Light
$newForm[$c]['formId'] = $form['step_uid_obj'];
$newForm[$c]['formUpdateDate'] = DateTime::convertUtcToIso8601($dynaForm->getDynUpdateDate());
- $newForm[$c]['index'] = $c+1;
+ $newForm[$c]['index'] = $c + 1;
$newForm[$c]['title'] = $form['obj_title'];
$newForm[$c]['description'] = $form['obj_description'];
- $newForm[$c]['stepId'] = $form["step_uid"];
- $newForm[$c]['stepUidObj'] = $form["step_uid_obj"];
- $newForm[$c]['stepMode'] = $form['step_mode'];
+ $newForm[$c]['stepId'] = $form["step_uid"];
+ $newForm[$c]['stepUidObj'] = $form["step_uid_obj"];
+ $newForm[$c]['stepMode'] = $form['step_mode'];
$newForm[$c]['stepCondition'] = $form['step_condition'];
$newForm[$c]['stepPosition'] = $form['step_position'];
- $trigger = $this->statusTriggers($step->doGetActivityStepTriggers($form["step_uid"], $tempTreeChild['taskId'], $tempTreeChild['processId']));
- $newForm[$c]["triggers"] = $trigger;
+ $trigger = $this->statusTriggers($step->doGetActivityStepTriggers($form["step_uid"],
+ $tempTreeChild['taskId'], $tempTreeChild['processId']));
+ $newForm[$c]["triggers"] = $trigger;
$c++;
}
}
$tempTreeChild['forms'] = $newForm;
- if (isset( $proData[$processInfoChild['pro_uid']] )) {
+ if (isset($proData[$processInfoChild['pro_uid']])) {
$tempTreeChildren[] = $tempTreeChild;
}
}
}
$response = array_merge($response, $tempTreeChildren);
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
+
return $response;
}
@@ -128,15 +155,16 @@ class Light
*/
public function statusTriggers($triggers)
{
- $return = array("before" => false, "after"=> false);
- foreach($triggers as $trigger){
- if ($trigger['st_type'] == "BEFORE"){
- $return["before"]= true;
+ $return = array("before" => false, "after" => false);
+ foreach ($triggers as $trigger) {
+ if ($trigger['st_type'] == "BEFORE") {
+ $return["before"] = true;
}
- if ($trigger['st_type'] == "AFTER"){
- $return["after"]= true;
+ if ($trigger['st_type'] == "AFTER") {
+ $return["after"] = true;
}
}
+
return $return;
}
@@ -144,32 +172,33 @@ class Light
* Get counters each type of list
* @param $userId
* @return array
- * @throws \Exception
+ * @throws Exception
*/
public function getCounterCase($userId)
{
try {
- $userUid = (isset( $userId ) && $userId != '') ? $userId : null;
- $oAppCache = new \AppCacheView();
+ $userUid = (isset($userId) && $userId != '') ? $userId : null;
+ $oAppCache = new AppCacheView();
- $aTypes = Array ();
- $aTypes['to_do'] = 'toDo';
- $aTypes['draft'] = 'draft';
- $aTypes['cancelled'] = 'cancelled';
- $aTypes['sent'] = 'participated';
- $aTypes['paused'] = 'paused';
- $aTypes['completed'] = 'completed';
+ $aTypes = Array();
+ $aTypes['to_do'] = 'toDo';
+ $aTypes['draft'] = 'draft';
+ $aTypes['cancelled'] = 'cancelled';
+ $aTypes['sent'] = 'participated';
+ $aTypes['paused'] = 'paused';
+ $aTypes['completed'] = 'completed';
$aTypes['selfservice'] = 'unassigned';
- $aCount = $oAppCache->getAllCounters( array_keys( $aTypes ), $userUid );
+ $aCount = $oAppCache->getAllCounters(array_keys($aTypes), $userUid);
- $response = Array ();
+ $response = Array();
foreach ($aCount as $type => $count) {
$response[$aTypes[$type]] = $count;
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
+
return $response;
}
@@ -191,10 +220,11 @@ class Light
$sDataBase = 'database_' . strtolower(DB_ADAPTER);
if (G::LoadSystemExist($sDataBase)) {
- $oDataBase = new \database();
+ $oDataBase = new database();
$c->addAsColumn('USR_NAME', $oDataBase->concatString("USR_LASTNAME", "' '", "USR_FIRSTNAME"));
$c->addAsColumn(
- 'DEL_FINISH_DATE', $oDataBase->getCaseWhen("DEL_FINISH_DATE IS NULL", "'-'", AppDelegationPeer::DEL_FINISH_DATE)
+ 'DEL_FINISH_DATE',
+ $oDataBase->getCaseWhen("DEL_FINISH_DATE IS NULL", "'-'", AppDelegationPeer::DEL_FINISH_DATE)
);
$c->addAsColumn(
'APP_TYPE', $oDataBase->getCaseWhen("DEL_FINISH_DATE IS NULL", "'IN_PROGRESS'", AppDelayPeer::APP_TYPE)
@@ -203,13 +233,10 @@ class Light
$c->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
$c->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE);
$c->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_DATE);
- $c->addSelectColumn(\TaskPeer::TAS_TITLE);
+ $c->addSelectColumn(TaskPeer::TAS_TITLE);
//APP_DELEGATION LEFT JOIN USERS
$c->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
- //APP_DELAY FOR MORE DESCRIPTION
- //$c->addJoin(AppDelegationPeer::DEL_INDEX, AppDelayPeer::APP_DEL_INDEX, Criteria::LEFT_JOIN);
- //$c->addJoin(AppDelegationPeer::APP_UID, AppDelayPeer::APP_UID, Criteria::LEFT_JOIN);
$del = \DBAdapter::getStringDelimiter();
$app = array();
$app[] = array(AppDelegationPeer::DEL_INDEX, AppDelayPeer::APP_DEL_INDEX);
@@ -217,7 +244,7 @@ class Light
$c->addJoinMC($app, Criteria::LEFT_JOIN);
//LEFT JOIN TASK TAS_TITLE
- $c->addJoin(AppDelegationPeer::TAS_UID, \TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
+ $c->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
//WHERE
$c->add(AppDelegationPeer::APP_UID, $sAppUid);
@@ -234,39 +261,34 @@ class Light
*
* @param $app_uid
* @return array
- * @throws \Exception
+ * @throws Exception
*/
public function getCasesListHistory($app_uid)
{
//global $G_PUBLISH;
- $c = $this->getTransferHistoryCriteria( $app_uid );
+ $c = $this->getTransferHistoryCriteria($app_uid);
+ $aProcesses = Array();
- //$result = new \stdClass();
- $aProcesses = Array ();
-
- $rs = \GulliverBasePeer::doSelectRs( $c );
- $rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
+ $rs = GulliverBasePeer::doSelectRs($c);
+ $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
- for ($j = 0; $j < $rs->getRecordCount(); $j ++) {
- $result = $rs->getRow();
+ for ($j = 0; $j < $rs->getRecordCount(); $j++) {
+ $result = $rs->getRow();
$result["ID_HISTORY"] = $result["PRO_UID"] . '_' . $result["APP_UID"] . '_' . $result["TAS_UID"];
- $aProcesses[] = $result;
+ $aProcesses[] = $result;
$rs->next();
$processUid = $result["PRO_UID"];
}
- $process = new \Process();
+ $process = new Process();
$arrayProcessData = $process->load($processUid);
- //$newDir = '/tmp/test/directory';
- //G::verifyPath( $newDir );
-
$result = array();
$result["processName"] = $arrayProcessData["PRO_TITLE"];
- //$result["PRO_DESCRIPTION"] = $arrayProcessData["PRO_DESCRIPTION"];
$result['flow'] = $aProcesses;
+
return $result;
}
@@ -277,16 +299,16 @@ class Light
* @param string $proUid
* @param string $taskUid
* @return array
- * @throws \Exception
+ * @throws Exception
*/
public function startCase($userId = '', $proUid = '', $taskUid = '')
{
try {
- $oCase = new \Cases();
+ $oCase = new Cases();
- $aData = $oCase->startCase( $taskUid, $userId );
+ $aData = $oCase->startCase($taskUid, $userId);
- $user = new \ProcessMaker\BusinessModel\User();
+ $user = new BusinessModelUser();
$arrayUserData = $user->getUserRecordByPk($userId, ['$userUid' => '$userId']);
$_SESSION['APPLICATION'] = $aData['APPLICATION'];
@@ -296,8 +318,8 @@ class Light
$_SESSION["USER_LOGGED"] = $userId;
$_SESSION['USR_USERNAME'] = $arrayUserData['USR_USERNAME'];
- $aFields = $oCase->loadCase( $aData['APPLICATION'], $aData['INDEX'] );
- $oCase->updateCase( $aData['APPLICATION'], $aFields );
+ $aFields = $oCase->loadCase($aData['APPLICATION'], $aData['INDEX']);
+ $oCase->updateCase($aData['APPLICATION'], $aFields);
$response = array();
$response['caseId'] = $aData['APPLICATION'];
@@ -305,45 +327,48 @@ class Light
$response['caseNumber'] = $aData['CASE_NUMBER'];
//Log
- \Bootstrap::registerMonolog('MobileCreateCase', 200, "Create case", ['application_uid' => $aData['APPLICATION'], 'usr_uid' => $userId], SYS_SYS, 'processmaker.log');
+ Bootstrap::registerMonolog('MobileCreateCase', 200, "Create case",
+ ['application_uid' => $aData['APPLICATION'], 'usr_uid' => $userId], SYS_SYS, 'processmaker.log');
} catch (Exception $e) {
$response['status'] = 'failure';
$response['message'] = $e->getMessage();
}
+
return $response;
}
- public function lookinginforContentProcess ($sproUid)
+ public function lookinginforContentProcess($sproUid)
{
$oContent = new \Content();
///we are looking for a pro title for this process $sproUid
- $oCriteria = new \Criteria( 'workflow' );
- $oCriteria->add(\ProcessPeer::PRO_UID, $sproUid);
- $oDataset = \ProcessPeer::doSelectRS( $oCriteria );
- $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ProcessPeer::PRO_UID, $sproUid);
+ $oDataset = ProcessPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
if (!is_array($aRow)) {
- $oC = new \Criteria('workflow');
- $oC->addSelectColumn(\TaskPeer::TAS_UID);
- $oC->addSelectColumn(\TaskPeer::TAS_TITLE);
- $oC->add(\TaskPeer::PRO_UID, $sproUid);
- $oDataset1 = \TaskPeer::doSelectRS($oC);
- $oDataset1->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $oC = new Criteria('workflow');
+ $oC->addSelectColumn(TaskPeer::TAS_UID);
+ $oC->addSelectColumn(TaskPeer::TAS_TITLE);
+ $oC->add(TaskPeer::PRO_UID, $sproUid);
+ $oDataset1 = TaskPeer::doSelectRS($oC);
+ $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($oDataset1->next()) {
$aRow1 = $oDataset1->getRow();
\Content::insertContent('TAS_TITLE', '', $aRow1['TAS_UID'], 'en', $aRow1['TAS_TITLE']);
}
$oC2 = new Criteria('workflow');
- $oC2->addSelectColumn(\ProcessPeer::PRO_UID);
- $oC2->addSelectColumn(\ProcessPeer::PRO_TITLE);
- $oC2->add(\ProcessPeer::PRO_UID, $sproUid);
- $oDataset3 = \ProcessPeer::doSelectRS($oC2);
- $oDataset3->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $oC2->addSelectColumn(ProcessPeer::PRO_UID);
+ $oC2->addSelectColumn(ProcessPeer::PRO_TITLE);
+ $oC2->add(ProcessPeer::PRO_UID, $sproUid);
+ $oDataset3 = ProcessPeer::doSelectRS($oC2);
+ $oDataset3->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset3->next();
$aRow3 = $oDataset3->getRow();
\Content::insertContent('PRO_TITLE', '', $aRow3['PRO_UID'], 'en', $aRow3['PRO_TITLE']);
}
+
return 1;
}
@@ -355,38 +380,40 @@ class Light
public function doExecuteTriggerCase($usr_uid, $prj_uid, $act_uid, $cas_uid, $step_uid, $type, $del_index = null)
{
$userData = $this->getUserData($usr_uid);
- $c = new \Criteria();
+ $c = new Criteria();
$c->clearSelectColumns();
- $c->addSelectColumn(\StepPeer::STEP_UID);
- $c->addSelectColumn(\StepPeer::STEP_UID_OBJ);
- $c->add(\StepPeer::TAS_UID, $act_uid);
- $c->add(\StepPeer::STEP_TYPE_OBJ, 'DYNAFORM');
- $c->add(\StepPeer::STEP_UID, $step_uid);
- $rs = \StepPeer::doSelectRS($c);
- $rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
+ $c->addSelectColumn(StepPeer::STEP_UID);
+ $c->addSelectColumn(StepPeer::STEP_UID_OBJ);
+ $c->add(StepPeer::TAS_UID, $act_uid);
+ $c->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM');
+ $c->add(StepPeer::STEP_UID, $step_uid);
+ $rs = StepPeer::doSelectRS($c);
+ $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$step_uid_obj = $row['STEP_UID_OBJ'];
- $oCase = new \Cases();
- $Fields = $oCase->loadCase( $cas_uid );
+ $oCase = new Cases();
+ $Fields = $oCase->loadCase($cas_uid);
$_SESSION["APPLICATION"] = $cas_uid;
$_SESSION["PROCESS"] = $prj_uid;
$_SESSION["TASK"] = $act_uid;
$_SESSION["USER_LOGGED"] = $usr_uid;
$_SESSION["USR_USERNAME"] = $userData['firstName'];
$_SESSION["INDEX"] = $Fields["DEL_INDEX"] = $del_index !== null ? $del_index : \AppDelegation::getCurrentIndex($cas_uid);
- $Fields['APP_DATA'] = array_merge( $Fields['APP_DATA'], G::getSystemConstants() );
- $triggers = $oCase->loadTriggers( $act_uid, 'DYNAFORM', $step_uid_obj, strtoupper($type) );
- if($triggers){
- $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $act_uid, 'DYNAFORM', $step_uid_obj, strtoupper($type), $Fields['APP_DATA'] );
+ $Fields['APP_DATA'] = array_merge($Fields['APP_DATA'], G::getSystemConstants());
+ $triggers = $oCase->loadTriggers($act_uid, 'DYNAFORM', $step_uid_obj, strtoupper($type));
+ if ($triggers) {
+ $Fields['APP_DATA'] = $oCase->ExecuteTriggers($act_uid, 'DYNAFORM', $step_uid_obj, strtoupper($type),
+ $Fields['APP_DATA']);
}
$Fields['TAS_UID'] = $act_uid;
$Fields['CURRENT_DYNAFORM'] = $step_uid_obj;
$Fields['USER_UID'] = $usr_uid;
$Fields['PRO_UID'] = $prj_uid;
- $oCase->updateCase( $cas_uid, $Fields );
+ $oCase->updateCase($cas_uid, $Fields);
$response = array('status' => 'ok');
+
return $response;
}
@@ -399,39 +426,42 @@ class Light
public function getPrepareInformation($usr_uid, $tas_uid, $app_uid, $del_index = null)
{
try {
- $oCase = new \Cases();
- $Fields = $oCase->loadCase( $app_uid );
- $_SESSION["APPLICATION"] = $app_uid;
- $_SESSION["PROCESS"] = $Fields['PRO_UID'];
- $_SESSION["TASK"] = $tas_uid;
- $_SESSION["INDEX"] = $del_index;
- $_SESSION["USER_LOGGED"] = $usr_uid;
- $_SESSION["USR_USERNAME"] = isset($Fields['APP_DATA']['USR_USERNAME'])?$Fields['APP_DATA']['USR_USERNAME']:'';
+ $oCase = new Cases();
+ $Fields = $oCase->loadCase($app_uid);
+ $_SESSION["APPLICATION"] = $app_uid;
+ $_SESSION["PROCESS"] = $Fields['PRO_UID'];
+ $_SESSION["TASK"] = $tas_uid;
+ $_SESSION["INDEX"] = $del_index;
+ $_SESSION["USER_LOGGED"] = $usr_uid;
+ $_SESSION["USR_USERNAME"] = isset($Fields['APP_DATA']['USR_USERNAME']) ? $Fields['APP_DATA']['USR_USERNAME'] : '';
- $triggers = $oCase->loadTriggers( $tas_uid, 'ASSIGN_TASK', '-1', 'BEFORE');
- if (isset($triggers)){
- $Fields['APP_DATA'] = array_merge( $Fields['APP_DATA'], G::getSystemConstants() );
- $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $tas_uid, 'DYNAFORM', '-1', 'BEFORE', $Fields['APP_DATA'] );
- $oCase->updateCase( $app_uid, $Fields );
+ $triggers = $oCase->loadTriggers($tas_uid, 'ASSIGN_TASK', '-1', 'BEFORE');
+ if (isset($triggers)) {
+ $Fields['APP_DATA'] = array_merge($Fields['APP_DATA'], G::getSystemConstants());
+ $Fields['APP_DATA'] = $oCase->ExecuteTriggers($tas_uid, 'DYNAFORM', '-1', 'BEFORE',
+ $Fields['APP_DATA']);
+ $oCase->updateCase($app_uid, $Fields);
}
$oDerivation = new \Derivation();
$aData = array();
$aData['APP_UID'] = $app_uid;
$aData['DEL_INDEX'] = $del_index;
$aData['USER_UID'] = $usr_uid;
- $oRoute = new \ProcessMaker\Core\RoutingScreen();
+ $oRoute = new RoutingScreen();
$derive = $oRoute->prepareRoutingScreen($aData);
$response = array();
foreach ($derive as $sKey => &$aValues) {
$sPriority = ''; //set priority value
if ($derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] != '') {
//TO DO: review this type of assignment
- if (isset( $aData['APP_DATA'][str_replace( '@@', '', $derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] )] )) {
- $sPriority = $aData['APP_DATA'][str_replace( '@@', '', $derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] )];
+ if (isset($aData['APP_DATA'][str_replace('@@', '',
+ $derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'])])) {
+ $sPriority = $aData['APP_DATA'][str_replace('@@', '',
+ $derive[$sKey]['NEXT_TASK']['TAS_PRIORITY_VARIABLE'])];
}
} //set priority value
- $taskType = (isset($aValues["NEXT_TASK"]["TAS_TYPE"]))? $aValues["NEXT_TASK"]["TAS_TYPE"] : false;
+ $taskType = (isset($aValues["NEXT_TASK"]["TAS_TYPE"])) ? $aValues["NEXT_TASK"]["TAS_TYPE"] : false;
$taskMessage = "";
switch ($taskType) {
case "SCRIPT-TASK":
@@ -452,14 +482,14 @@ class Light
$taskAss['taskName'] = $aValues['NEXT_TASK']['TAS_TITLE'];
$taskAss['taskAssignType'] = $aValues['NEXT_TASK']['TAS_ASSIGN_TYPE'];
$taskAss['taskDefProcCode'] = $aValues['NEXT_TASK']['TAS_DEF_PROC_CODE'];
- $taskAss['delPriority'] = isset($aValues['NEXT_TASK']['DEL_PRIORITY'])?$aValues['NEXT_TASK']['DEL_PRIORITY']:"";
+ $taskAss['delPriority'] = isset($aValues['NEXT_TASK']['DEL_PRIORITY']) ? $aValues['NEXT_TASK']['DEL_PRIORITY'] : "";
$taskAss['taskParent'] = $aValues['NEXT_TASK']['TAS_PARENT'];
- $taskAss['taskMessage'] = $taskType?$taskMessage:"";
+ $taskAss['taskMessage'] = $taskType ? $taskMessage : "";
$taskAss['sourceUid'] = $aValues['SOURCE_UID'];
$users = array();
$users['userId'] = $derive[$sKey]['NEXT_TASK']['USER_ASSIGNED']['USR_UID'];
$users['userFullName'] = strip_tags($derive[$sKey]['NEXT_TASK']['USER_ASSIGNED']['USR_FULLNAME']);
- $taskAss['users'][] = $users;
+ $taskAss['users'][] = $users;
$response[] = $taskAss;
break;
case 'MANUAL':
@@ -470,15 +500,15 @@ class Light
$manual['taskName'] = $aValues['NEXT_TASK']['TAS_TITLE'];
$manual['taskAssignType'] = $aValues['NEXT_TASK']['TAS_ASSIGN_TYPE'];
$manual['taskDefProcCode'] = $aValues['NEXT_TASK']['TAS_DEF_PROC_CODE'];
- $manual['delPriority'] = isset($aValues['NEXT_TASK']['DEL_PRIORITY'])?$aValues['NEXT_TASK']['DEL_PRIORITY']:"";
+ $manual['delPriority'] = isset($aValues['NEXT_TASK']['DEL_PRIORITY']) ? $aValues['NEXT_TASK']['DEL_PRIORITY'] : "";
$manual['taskParent'] = $aValues['NEXT_TASK']['TAS_PARENT'];
- $manual['taskMessage'] = $taskType?$taskMessage:"";
+ $manual['taskMessage'] = $taskType ? $taskMessage : "";
$manual['sourceUid'] = $aValues['SOURCE_UID'];
- $Aux = array ();
+ $Aux = array();
foreach ($aValues['NEXT_TASK']['USER_ASSIGNED'] as $aUser) {
$Aux[$aUser['USR_UID']] = $aUser['USR_FULLNAME'];
}
- asort( $Aux );
+ asort($Aux);
$users = array();
foreach ($Aux as $id => $fullname) {
$user['userId'] = $id;
@@ -490,23 +520,24 @@ class Light
break;
case '': //when this task is the Finish process
case 'nobody':
- $userFields = $oDerivation->getUsersFullNameFromArray( $derive[$sKey]['USER_UID'] );
+ $userFields = $oDerivation->getUsersFullNameFromArray($derive[$sKey]['USER_UID']);
$taskAss = array();
$taskAss['routeFinishFlag'] = true;
$user['userId'] = $derive[$sKey]['USER_UID'];
$user['userFullName'] = $userFields['USR_FULLNAME'];
- $taskAss['users'][] = $user;
+ $taskAss['users'][] = $user;
$response[] = $taskAss;
break;
}
}
- if (empty( $response )) {
- throw new \Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE"));
+ if (empty($response)) {
+ throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE"));
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
+
return $response;
}
@@ -529,11 +560,12 @@ class Light
}
$ws = new \WsBase();
- $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, $bExecuteTriggersBeforeAssignment = false, $tasks);
+ $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, $bExecuteTriggersBeforeAssignment = false,
+ $tasks);
$array = json_decode(json_encode($fields), true);
$array['message'] = trim(strip_tags($array['message']));
if ($array ["status_code"] != 0) {
- throw (new \Exception($array ["message"]));
+ throw (new Exception($array ["message"]));
} else {
unset($array['status_code']);
unset($array['message']);
@@ -541,10 +573,12 @@ class Light
}
//Log
- \Bootstrap::registerMonolog('MobileRouteCase', 200, 'Route case', ['application_uid' => $applicationUid, 'usr_uid' => $userUid], SYS_SYS, 'processmaker.log');
- } catch (\Exception $e) {
+ Bootstrap::registerMonolog('MobileRouteCase', 200, 'Route case',
+ ['application_uid' => $applicationUid, 'usr_uid' => $userUid], SYS_SYS, 'processmaker.log');
+ } catch (Exception $e) {
throw $e;
}
+
return $fields;
}
@@ -562,27 +596,28 @@ class Light
{
try {
$direction = PATH_IMAGES_ENVIRONMENT_USERS . $userUid . ".gif";
- if (! file_exists( $direction )) {
+ if (!file_exists($direction)) {
$direction = PATH_HOME . 'public_html/images/user.gif';
}
- $gestor = fopen($direction, "r");
+ $gestor = fopen($direction, "r");
$contenido = fread($gestor, filesize($direction));
fclose($gestor);
$oUser = new \Users();
$aUserLog = $oUser->loadDetailed($userUid);
- $response['userId'] = $aUserLog['USR_UID'];
- $response['userName'] = $aUserLog['USR_USERNAME'];
- $response['firstName'] = $aUserLog['USR_FIRSTNAME'];
- $response['lastName'] = $aUserLog['USR_LASTNAME'];
- $response['fullName'] = $aUserLog['USR_FULLNAME'];
- $response['email'] = $aUserLog['USR_EMAIL'];
- $response['userRole'] = $aUserLog['USR_ROLE_NAME'];
- $response['userPhone'] = $aUserLog['USR_PHONE'];
+ $response['userId'] = $aUserLog['USR_UID'];
+ $response['userName'] = $aUserLog['USR_USERNAME'];
+ $response['firstName'] = $aUserLog['USR_FIRSTNAME'];
+ $response['lastName'] = $aUserLog['USR_LASTNAME'];
+ $response['fullName'] = $aUserLog['USR_FULLNAME'];
+ $response['email'] = $aUserLog['USR_EMAIL'];
+ $response['userRole'] = $aUserLog['USR_ROLE_NAME'];
+ $response['userPhone'] = $aUserLog['USR_PHONE'];
$response['updateDate'] = $aUserLog['USR_UPDATE_DATE'];
- $response['userPhoto'] = base64_encode($contenido);
- } catch (\Exception $e) {
+ $response['userPhoto'] = base64_encode($contenido);
+ } catch (Exception $e) {
throw $e;
}
+
return $response;
}
@@ -595,69 +630,72 @@ class Light
public function downloadFile($app_uid, $request_data)
{
try {
- $oAppDocument = new \AppDocument();
+ $oAppDocument = new AppDocument();
$arrayFiles = array();
foreach ($request_data as $key => $fileData) {
- if (! isset( $fileData['version'] )) {
+ if (!isset($fileData['version'])) {
//Load last version of the document
- $docVersion = $oAppDocument->getLastAppDocVersion( $fileData['fileId'] );
+ $docVersion = $oAppDocument->getLastAppDocVersion($fileData['fileId']);
} else {
$docVersion = $fileData['version'];
}
- $oAppDocument->Fields = $oAppDocument->load( $fileData['fileId'], $docVersion );
+ $oAppDocument->Fields = $oAppDocument->load($fileData['fileId'], $docVersion);
- $sAppDocUid = $oAppDocument->getAppDocUid();
+ $sAppDocUid = $oAppDocument->getAppDocUid();
$iDocVersion = $oAppDocument->getDocVersion();
- $info = pathinfo( $oAppDocument->getAppDocFilename() );
- $ext = (isset($info['extension'])?$info['extension']:'');//BUG fix: must handle files without any extension
+ $info = pathinfo($oAppDocument->getAppDocFilename());
+ $ext = (isset($info['extension']) ? $info['extension'] : '');//BUG fix: must handle files without any extension
- //$app_uid = \G::getPathFromUID($oAppDocument->Fields['APP_UID']);
- $file = \G::getPathFromFileUID($oAppDocument->Fields['APP_UID'], $sAppDocUid);
+ //$app_uid = G::getPathFromUID($oAppDocument->Fields['APP_UID']);
+ $file = G::getPathFromFileUID($oAppDocument->Fields['APP_UID'], $sAppDocUid);
- $realPath = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
+ $realPath = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
$realPath1 = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '.' . $ext;
- $width = isset($fileData['width']) ? $fileData['width']:null;
- $height = isset($fileData['height']) ? $fileData['height']:null;
- if (file_exists( $realPath )) {
- switch($ext){
+ $width = isset($fileData['width']) ? $fileData['width'] : null;
+ $height = isset($fileData['height']) ? $fileData['height'] : null;
+ if (file_exists($realPath)) {
+ switch ($ext) {
case 'jpg':
case 'jpeg':
case 'gif':
case 'png':
- $arrayFiles[$key]['fileId'] = $fileData['fileId'];
- $arrayFiles[$key]['fileContent'] = base64_encode($this->imagesThumbnails($realPath, $ext, $width, $height));
+ $arrayFiles[$key]['fileId'] = $fileData['fileId'];
+ $arrayFiles[$key]['fileContent'] = base64_encode($this->imagesThumbnails($realPath, $ext,
+ $width, $height));
break;
default:
- $fileTmp = fopen($realPath, "r");
+ $fileTmp = fopen($realPath, "r");
$content = fread($fileTmp, filesize($realPath));
- $arrayFiles[$key]['fileId'] = $fileData['fileId'];
+ $arrayFiles[$key]['fileId'] = $fileData['fileId'];
$arrayFiles[$key]['fileContent'] = base64_encode($content);
fclose($fileTmp);
break;
}
- } elseif (file_exists( $realPath1 )) {
- switch($ext){
+ } elseif (file_exists($realPath1)) {
+ switch ($ext) {
case 'jpg':
case 'jpeg':
case 'gif':
case 'png':
- $arrayFiles[$key]['fileId'] = $fileData['fileId'];
- $arrayFiles[$key]['fileContent'] = $this->imagesThumbnails($realPath1, $ext, $width, $height);
+ $arrayFiles[$key]['fileId'] = $fileData['fileId'];
+ $arrayFiles[$key]['fileContent'] = $this->imagesThumbnails($realPath1, $ext, $width,
+ $height);
break;
default:
- $fileTmp = fopen($realPath, "r");
+ $fileTmp = fopen($realPath, "r");
$content = fread($fileTmp, filesize($realPath));
- $arrayFiles[$key]['fileId'] = $fileData['fileId'];
+ $arrayFiles[$key]['fileId'] = $fileData['fileId'];
$arrayFiles[$key]['fileContent'] = base64_encode($content);
fclose($fileTmp);
break;
}
}
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
+
return $arrayFiles;
}
@@ -672,7 +710,7 @@ class Light
*/
public function imagesThumbnails($path, $extensions, $newWidth = null, $newHeight = null)
{
- switch($extensions){
+ switch ($extensions) {
case 'jpg':
case 'jpeg':
ini_set('gd.jpeg_ignore_warning', 1);
@@ -687,22 +725,22 @@ class Light
break;
}
- $width = imagesx($imgTmp);
+ $width = imagesx($imgTmp);
$height = imagesy($imgTmp);
- $ratio = $width / $height;
+ $ratio = $width / $height;
$isThumbnails = false;
if (isset($newWidth) && !isset($newHeight)) {
- $newwidth = $newWidth;
+ $newwidth = $newWidth;
$newheight = round($newwidth / $ratio);
$isThumbnails = true;
} elseif (!isset($newWidth) && isset($newHeight)) {
$newheight = $newHeight;
- $newwidth = round($newheight / $ratio);
+ $newwidth = round($newheight / $ratio);
$isThumbnails = true;
} elseif (isset($newWidth) && isset($newHeight)) {
- $newwidth = $newWidth;
+ $newwidth = $newWidth;
$newheight = $newHeight;
$isThumbnails = true;
}
@@ -713,7 +751,7 @@ class Light
imagecopyresampled($thumb, $imgTmp, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
ob_start();
- switch($extensions){
+ switch ($extensions) {
case 'jpg':
case 'jpeg':
imagejpeg($thumb);
@@ -727,6 +765,7 @@ class Light
}
$image = ob_get_clean();
imagedestroy($thumb);
+
return $image;
}
@@ -784,7 +823,8 @@ class Light
/*----------------------------------********---------------------------------*/
$licenseManager =& PmLicenseManager::getSingleton();
- if (in_array(md5($licenseManager->result), array('38afd7ae34bd5e3e6fc170d8b09178a3', 'ba2b45bdc11e2a4a6e86aab2ac693cbb'))) {
+ if (in_array(md5($licenseManager->result),
+ array('38afd7ae34bd5e3e6fc170d8b09178a3', 'ba2b45bdc11e2a4a6e86aab2ac693cbb'))) {
$G_PUBLISH = new \Publisher();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/licenseExpired', '', array(), 'licenseUpdate');
G::RenderPage('publish');
@@ -798,9 +838,10 @@ class Light
$response["status"] = "OK";
} catch (Exception $e) {
- $response["status"] = "ERROR";
+ $response["status"] = "ERROR";
$response["message"] = $e->getMessage();
}
+
return $response;
}
@@ -811,7 +852,7 @@ class Light
* @param $userUid
* @param $type
* @param $app_uid
- * @throws \Exception
+ * @throws Exception
*/
public function getInformation($userUid, $type, $app_uid)
{
@@ -820,22 +861,23 @@ class Light
case 'unassigned':
case 'paused':
case 'participated':
- $oCase = new \Cases();
- $iDelIndex = $oCase->getCurrentDelegationCase( $app_uid );
+ $oCase = new Cases();
+ $iDelIndex = $oCase->getCurrentDelegationCase($app_uid);
$aFields = $oCase->loadCase($app_uid, $iDelIndex);
$response = $this->getInfoResume($userUid, $aFields, $type);
break;
case 'lastopenindex':
//Get the last participate from a user
- $oNewCase = new \ProcessMaker\BusinessModel\Cases();
+ $oNewCase = new BusinessModelCases();
$iDelIndex = $oNewCase->getLastParticipatedByUser($app_uid, $userUid, 'OPEN');
- $oCase = new \Cases();
+ $oCase = new Cases();
$aFields = $oCase->loadCase($app_uid, $iDelIndex);
$aFields['DEL_INDEX'] = $iDelIndex === 0 ? '' : $iDelIndex;
$aFields['USR_UID'] = $userUid;
$response = $this->getInfoResume($userUid, $aFields, $type);
break;
}
+
return $response;
}
@@ -845,13 +887,13 @@ class Light
* @param $userUid
* @param $Fields
* @param $type
- * @throws \Exception
+ * @throws Exception
*/
public function getInfoResume($userUid, $Fields, $type)
{
/* Prepare page before to show */
- $objProc = new \Process();
- $aProc = $objProc->load( $Fields['PRO_UID'] );
+ $objProc = new Process();
+ $aProc = $objProc->load($Fields['PRO_UID']);
$Fields['PRO_TITLE'] = $aProc['PRO_TITLE'];
$objTask = new \Task();
@@ -860,8 +902,8 @@ class Light
$task = explode('|', $Fields['TAS_UID']);
$Fields['TAS_TITLE'] = '';
- for( $i = 0; $i < sizeof($task)-1; $i ++ ) {
- $aTask = $objTask->load( $task[$i] );
+ for ($i = 0; $i < sizeof($task) - 1; $i++) {
+ $aTask = $objTask->load($task[$i]);
$Fields['TAS_TITLE'][] = $aTask['TAS_TITLE'];
}
@@ -875,43 +917,47 @@ class Light
}
/**
- * first step for upload file
+ * First step for upload file
* create uid app_document for upload file
*
- * @param $userUid
- * @param $Fields
- * @param $type
- * @throws \Exception
+ * @param string $userUid
+ * @param string $appUid
+ * @param array $requestData
+ * @return array $response
+ * @throws Exception
*/
- public function postUidUploadFiles($userUid, $app_uid, $request_data)
+ public function postUidUploadFiles($userUid, $appUid, $requestData)
{
$response = array();
- if (is_array($request_data)) {
- foreach ($request_data as $k => $file) {
+ if (is_array($requestData)) {
+ $config = new Configurations();
+ $confEnvSetting = $config->getFormats();
+ $user = new Users();
+ foreach ($requestData as $k => $file) {
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
- if (\Bootstrap::getDisablePhpUploadExecution() === 1 && $ext === 'php') {
- $message = \G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED');
- \Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, $file['name']);
+ if (Bootstrap::getDisablePhpUploadExecution() === 1 && $ext === 'php') {
+ $message = G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED');
+ Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, $file['name']);
$response[$k]['error'] = array(
"code" => "400",
"message" => $message
);
continue;
}
- $oCase = new \Cases();
- $delIndex = $oCase->getCurrentDelegation($app_uid, $userUid);
+ $cases = new Cases();
+ $delIndex = $cases->getCurrentDelegation($appUid, $userUid);
$docUid = !empty($file['docUid']) ? $file['docUid'] : -1;
$folderId = '';
- if($docUid !== -1){
- $inputDocument = new \InputDocument();
+ if ($docUid !== -1) {
+ $inputDocument = new InputDocument();
$aInputDocumentData = $inputDocument->load($docUid);
- $appFolder = new \AppFolder();
- $folderId = $appFolder->createFromPath($aInputDocumentData["INP_DOC_DESTINATION_PATH"], $app_uid);
+ $appFolder = new AppFolder();
+ $folderId = $appFolder->createFromPath($aInputDocumentData["INP_DOC_DESTINATION_PATH"], $appUid);
}
$appDocType = !empty($file['appDocType']) ? $file['appDocType'] : "ATTACHED";
$fieldName = !empty($file['fieldName']) ? $file['fieldName'] : null;
- $aFields = array(
- "APP_UID" => $app_uid,
+ $fieldsInput = array(
+ "APP_UID" => $appUid,
"DEL_INDEX" => $delIndex,
"USR_UID" => $userUid,
"DOC_UID" => $docUid,
@@ -923,12 +969,31 @@ class Light
"APP_DOC_FIELDNAME" => $fieldName,
"FOLDER_UID" => $folderId
);
- $oAppDocument = new \AppDocument();
- $oAppDocument->create($aFields);
- $response[$k]['docVersion'] = $iDocVersion = $oAppDocument->getDocVersion();
- $response[$k]['appDocUid'] = $sAppDocUid = $oAppDocument->getAppDocUid();
+ //We will to create a new version related to the appDocUid
+ if (isset($file['appDocUid'])) {
+ $fieldsInput['APP_DOC_UID'] = $file['appDocUid'];
+ }
+ $appDocument = new AppDocument();
+ $appDocument->create($fieldsInput);
+ //todo, we need to uniform the response format with camelCase
+ $response[$k]['appDocUid'] = $appDocUid = $appDocument->getAppDocUid();
+ $response[$k]['docVersion'] = $docVersion = $appDocument->getDocVersion();
+ $response[$k]['appDocFilename'] = $appDocument->getAppDocFilename();
+ $response[$k]['appDocCreateDate'] = $appDocument->getAppDocCreateDate();
+ $response[$k]['appDocType'] = $appDocument->getAppDocType();
+ $response[$k]['appDocIndex'] = $appDocument->getAppDocIndex();
+ //todo, we use this *** in others endpoint for mark that user not exist, but we need to change
+ $userInfo = '***';
+ if ($userUid !== '-1') {
+ $arrayUserData = $user->load($userUid);
+ $userInfo = $config->usersNameFormatBySetParameters($confEnvSetting["format"],
+ $arrayUserData["USR_USERNAME"], $arrayUserData["USR_FIRSTNAME"],
+ $arrayUserData["USR_LASTNAME"]);
+ }
+ $response[$k]['appDocCreateUser'] = $userInfo;
}
}
+
return $response;
}
@@ -939,22 +1004,22 @@ class Light
* @param $userUid
* @param $Fields
* @param $type
- * @throws \Exception
+ * @throws Exception
*/
public function documentUploadFiles($userUid, $app_uid, $app_doc_uid, $request_data)
{
$response = array("status" => "fail");
- if (isset( $_FILES["form"]["name"] ) && count( $_FILES["form"]["name"] ) > 0) {
- $arrayField = array ();
- $arrayFileName = array ();
- $arrayFileTmpName = array ();
- $arrayFileError = array ();
+ if (isset($_FILES["form"]["name"]) && count($_FILES["form"]["name"]) > 0) {
+ $arrayField = array();
+ $arrayFileName = array();
+ $arrayFileTmpName = array();
+ $arrayFileError = array();
$i = 0;
foreach ($_FILES["form"]["name"] as $fieldIndex => $fieldValue) {
- if (is_array( $fieldValue )) {
+ if (is_array($fieldValue)) {
foreach ($fieldValue as $index => $value) {
- if (is_array( $value )) {
+ if (is_array($value)) {
foreach ($value as $grdFieldIndex => $grdFieldValue) {
$arrayField[$i]["grdName"] = $fieldIndex;
$arrayField[$i]["grdFieldName"] = $grdFieldIndex;
@@ -976,24 +1041,24 @@ class Light
$i = $i + 1;
}
}
- if (count( $arrayField ) > 0) {
- for ($i = 0; $i <= count( $arrayField ) - 1; $i ++) {
+ if (count($arrayField) > 0) {
+ for ($i = 0; $i <= count($arrayField) - 1; $i++) {
if ($arrayFileError[$i] == 0) {
$indocUid = null;
$fieldName = null;
$fileSizeByField = 0;
- $oAppDocument = new \AppDocument();
+ $oAppDocument = new AppDocument();
$aAux = $oAppDocument->load($app_doc_uid);
$iDocVersion = $oAppDocument->getDocVersion();
$sAppDocUid = $oAppDocument->getAppDocUid();
- $aInfo = pathinfo( $oAppDocument->getAppDocFilename() );
- $sExtension = ((isset( $aInfo["extension"] )) ? $aInfo["extension"] : "");
+ $aInfo = pathinfo($oAppDocument->getAppDocFilename());
+ $sExtension = ((isset($aInfo["extension"])) ? $aInfo["extension"] : "");
$pathUID = G::getPathFromUID($app_uid);
$sPathName = PATH_DOCUMENT . $pathUID . PATH_SEP;
$sFileName = $sAppDocUid . "_" . $iDocVersion . "." . $sExtension;
- G::uploadFile( $arrayFileTmpName[$i], $sPathName, $sFileName );
+ G::uploadFile($arrayFileTmpName[$i], $sPathName, $sFileName);
$response = array("status" => "ok");
}
}
@@ -1009,24 +1074,25 @@ class Light
* @param $userUid
* @param $Fields
* @param $type
- * @throws \Exception
+ * @throws Exception
*/
public function claimCaseUser($userUid, $sAppUid)
{
$response = array("status" => "fail");
- $oCase = new \Cases();
- $iDelIndex = $oCase->getCurrentDelegation( $sAppUid, '', true );
+ $oCase = new Cases();
+ $iDelIndex = $oCase->getCurrentDelegation($sAppUid, '', true);
$oAppDelegation = new \AppDelegation();
- $aDelegation = $oAppDelegation->load( $sAppUid, $iDelIndex );
+ $aDelegation = $oAppDelegation->load($sAppUid, $iDelIndex);
//if there are no user in the delegation row, this case is still in selfservice
if ($aDelegation['USR_UID'] == "") {
- $oCase->setCatchUser( $sAppUid,$iDelIndex, $userUid );
+ $oCase->setCatchUser($sAppUid, $iDelIndex, $userUid);
$response = array("status" => "ok");
} else {
//G::SendMessageText( G::LoadTranslation( 'ID_CASE_ALREADY_DERIVATED' ), 'error' );
}
+
return $response;
}
@@ -1035,24 +1101,25 @@ class Light
*
* @return array
*/
- public function getCategoryList ()
+ public function getCategoryList()
{
- $category = array ();
- $category[] = array ("", G::LoadTranslation( "ID_ALL_CATEGORIES" ));
+ $category = array();
+ $category[] = array("", G::LoadTranslation("ID_ALL_CATEGORIES"));
- $criteria = new Criteria( 'workflow' );
- $criteria->addSelectColumn( \ProcessCategoryPeer::CATEGORY_UID );
- $criteria->addSelectColumn( \ProcessCategoryPeer::CATEGORY_NAME );
- $criteria->addAscendingOrderByColumn(\ProcessCategoryPeer::CATEGORY_NAME);
+ $criteria = new Criteria('workflow');
+ $criteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_UID);
+ $criteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME);
+ $criteria->addAscendingOrderByColumn(ProcessCategoryPeer::CATEGORY_NAME);
- $dataset = \ProcessCategoryPeer::doSelectRS( $criteria );
- $dataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
+ $dataset = ProcessCategoryPeer::doSelectRS($criteria);
+ $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next();
while ($row = $dataset->getRow()) {
- $category[] = array ($row['CATEGORY_UID'],$row['CATEGORY_NAME']);
+ $category[] = array($row['CATEGORY_UID'], $row['CATEGORY_NAME']);
$dataset->next();
}
+
return $category;
}
@@ -1061,65 +1128,66 @@ class Light
* @param $categoryUid
* @param $userUid
* @return array
- * @throws \PropelException
+ * @throws PropelException
*/
- public function getProcessList ($action, $categoryUid, $userUid)
+ public function getProcessList($action, $categoryUid, $userUid)
{
//$action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : null;
//$categoryUid = isset( $_REQUEST['CATEGORY_UID'] ) ? $_REQUEST['CATEGORY_UID'] : null;
//$userUid = (isset( $_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '') ? $_SESSION['USER_LOGGED'] : null;
// global $oAppCache;
- $oAppCache = new \AppCacheView();
- $processes = array ();
- $processes[] = array ('',G::LoadTranslation( 'ID_ALL_PROCESS' ));
+ $oAppCache = new AppCacheView();
+ $processes = array();
+ $processes[] = array('', G::LoadTranslation('ID_ALL_PROCESS'));
//get the list based in the action provided
switch ($action) {
case 'draft':
- $cProcess = $oAppCache->getDraftListCriteria( $userUid ); //fast enough
+ $cProcess = $oAppCache->getDraftListCriteria($userUid); //fast enough
break;
case 'sent':
- $cProcess = $oAppCache->getSentListProcessCriteria( $userUid ); // fast enough
+ $cProcess = $oAppCache->getSentListProcessCriteria($userUid); // fast enough
break;
case 'simple_search':
case 'search':
//in search action, the query to obtain all process is too slow, so we need to query directly to
//process and content tables, and for that reason we need the current language in AppCacheView.
- $oConf = new \Configurations();
- $oConf->loadConfig( $x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '' );
+ $oConf = new Configurations();
+ $oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '');
$appCacheViewEngine = $oConf->aConfig;
- $lang = isset( $appCacheViewEngine['LANG'] ) ? $appCacheViewEngine['LANG'] : 'en';
+ $lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en';
- $cProcess = new Criteria( 'workflow' );
+ $cProcess = new Criteria('workflow');
$cProcess->clearSelectColumns();
- $cProcess->addSelectColumn( \ProcessPeer::PRO_UID );
- $cProcess->addSelectColumn( \ProcessPeer::PRO_TITLE );
+ $cProcess->addSelectColumn(ProcessPeer::PRO_UID);
+ $cProcess->addSelectColumn(ProcessPeer::PRO_TITLE);
if ($categoryUid) {
- $cProcess->add( \ProcessPeer::PRO_CATEGORY, $categoryUid );
+ $cProcess->add(ProcessPeer::PRO_CATEGORY, $categoryUid);
}
- $cProcess->add( ProcessPeer::PRO_STATUS, 'ACTIVE' );
- $cProcess->addAscendingOrderByColumn(\ProcessPeer::PRO_TITLE);
+ $cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
+ $cProcess->addAscendingOrderByColumn(ProcessPeer::PRO_TITLE);
- $oDataset = \ProcessPeer::doSelectRS( $cProcess );
- $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
+ $oDataset = ProcessPeer::doSelectRS($cProcess);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
- $processes[] = array ($aRow['PRO_UID'],$aRow['PRO_TITLE']);
+ $processes[] = array($aRow['PRO_UID'], $aRow['PRO_TITLE']);
$oDataset->next();
}
- return print G::json_encode( $processes );
+
+ return print G::json_encode($processes);
break;
case 'unassigned':
- $cProcess = $oAppCache->getUnassignedListCriteria( $userUid );
+ $cProcess = $oAppCache->getUnassignedListCriteria($userUid);
break;
case 'paused':
- $cProcess = $oAppCache->getPausedListCriteria( $userUid );
+ $cProcess = $oAppCache->getPausedListCriteria($userUid);
break;
case 'to_revise':
- $cProcess = $oAppCache->getToReviseListCriteria( $userUid );
+ $cProcess = $oAppCache->getToReviseListCriteria($userUid);
break;
case 'to_reassign':
$cProcess = $oAppCache->getToReassignListCriteria($userUid);
@@ -1129,33 +1197,36 @@ class Light
break;
case 'todo':
default:
- $cProcess = $oAppCache->getToDoListCriteria( $userUid ); //fast enough
+ $cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough
break;
}
//get the processes for this user in this action
$cProcess->clearSelectColumns();
- $cProcess->addSelectColumn( \AppCacheViewPeer::PRO_UID );
- $cProcess->addSelectColumn( \AppCacheViewPeer::APP_PRO_TITLE );
- $cProcess->setDistinct( \AppCacheViewPeer::PRO_UID );
+ $cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID);
+ $cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
+ $cProcess->setDistinct(AppCacheViewPeer::PRO_UID);
if ($categoryUid) {
require_once 'classes/model/Process.php';
- $cProcess->addAlias( 'CP', 'PROCESS' );
- $cProcess->add( 'CP.PRO_CATEGORY', $categoryUid, Criteria::EQUAL );
- $cProcess->addJoin( \AppCacheViewPeer::PRO_UID, 'CP.PRO_UID', Criteria::LEFT_JOIN );
- $cProcess->addAsColumn( 'CATEGORY_UID', 'CP.PRO_CATEGORY' );
+ $cProcess->addAlias('CP', 'PROCESS');
+ $cProcess->add('CP.PRO_CATEGORY', $categoryUid, Criteria::EQUAL);
+ $cProcess->addJoin(AppCacheViewPeer::PRO_UID, 'CP.PRO_UID', Criteria::LEFT_JOIN);
+ $cProcess->addAsColumn('CATEGORY_UID', 'CP.PRO_CATEGORY');
}
- $cProcess->addAscendingOrderByColumn(\AppCacheViewPeer::APP_PRO_TITLE);
+ $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
- $oDataset = \AppCacheViewPeer::doSelectRS( $cProcess, \Propel::getDbConnection('workflow_ro') );
- $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
+ $oDataset = AppCacheViewPeer::doSelectRS($cProcess, Propel::getDbConnection('workflow_ro'));
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
- $processes[] = array ($aRow['PRO_UID'],$aRow['APP_PRO_TITLE']
+ $processes[] = array(
+ $aRow['PRO_UID'],
+ $aRow['APP_PRO_TITLE']
);
$oDataset->next();
}
+
return $processes;
}
@@ -1165,22 +1236,23 @@ class Light
public function getUsersToReassign($usr_uid, $task_uid)
{
- $memcache = \PMmemcached::getSingleton( SYS_SYS );
- $RBAC = \RBAC::getSingleton( PATH_DATA, session_id() );
+ $memcache = PMmemcached::getSingleton(SYS_SYS);
+ $RBAC = RBAC::getSingleton(PATH_DATA, session_id());
$RBAC->sSystem = 'PROCESSMAKER';
$RBAC->initRBAC();
$memKey = 'rbacSession' . session_id();
- if (($RBAC->aUserInfo = $memcache->get( $memKey )) === false) {
- $RBAC->loadUserRolePermission( $RBAC->sSystem, $usr_uid );
- $memcache->set( $memKey, $RBAC->aUserInfo, \PMmemcached::EIGHT_HOURS );
+ if (($RBAC->aUserInfo = $memcache->get($memKey)) === false) {
+ $RBAC->loadUserRolePermission($RBAC->sSystem, $usr_uid);
+ $memcache->set($memKey, $RBAC->aUserInfo, PMmemcached::EIGHT_HOURS);
}
$GLOBALS['RBAC'] = $RBAC;
$task = new \Task();
$tasks = $task->load($task_uid);
- $case = new \Cases();
+ $case = new Cases();
$result = new \stdclass();
$result->data = $case->getUsersToReassign($task_uid, $usr_uid, $tasks['PRO_UID']);
+
return $result;
}
@@ -1189,13 +1261,13 @@ class Light
*/
public function reassignCase($usr_uid, $app_uid, $TO_USR_UID)
{
- $cases = new \Cases();
+ $cases = new Cases();
$user = new \Users();
$app = new \Application();
$result = new \stdclass();
try {
- $iDelIndex = $cases->getCurrentDelegation( $app_uid, $usr_uid );
+ $iDelIndex = $cases->getCurrentDelegation($app_uid, $usr_uid);
$cases->reassignCase($app_uid, $iDelIndex, $usr_uid, $TO_USR_UID);
$caseData = $app->load($app_uid);
$userData = $user->load($TO_USR_UID);
@@ -1203,7 +1275,7 @@ class Light
$data['USER'] = $userData['USR_LASTNAME'] . ' ' . $userData['USR_FIRSTNAME']; //TODO change with the farmated username from environment conf
$result->status = 0;
$result->msg = G::LoadTranslation('ID_REASSIGNMENT_SUCCESS', SYS_LANG, $data);
- } catch (\Exception $e) {
+ } catch (Exception $e) {
$result->status = 1;
$result->msg = $e->getMessage();
}
@@ -1219,8 +1291,8 @@ class Light
$result = new \stdclass();
try {
- $oCase = new \Cases();
- $iDelIndex = $oCase->getCurrentDelegation( $app_uid, $usr_uid );
+ $oCase = new Cases();
+ $iDelIndex = $oCase->getCurrentDelegation($app_uid, $usr_uid);
// Save the note pause reason
if ($request_data['noteContent'] != '') {
$request_data['noteContent'] = G::LoadTranslation('ID_CASE_PAUSE_LABEL_NOTE') . ' ' . $request_data['noteContent'];
@@ -1238,9 +1310,10 @@ class Light
$result->success = true;
$result->msg = G::LoadTranslation('ID_CASE_PAUSED_SUCCESSFULLY', SYS_LANG, $data);
- } catch (\Exception $e) {
+ } catch (Exception $e) {
throw $e;
}
+
return $result;
}
@@ -1250,7 +1323,7 @@ class Light
*/
public function getConfiguration($params)
{
- $sysConf = \Bootstrap::getSystemConfiguration('','',SYS_SYS);
+ $sysConf = Bootstrap::getSystemConfiguration('', '', SYS_SYS);
$multiTimeZone = false;
//Set Time Zone
/*----------------------------------********---------------------------------*/
@@ -1259,9 +1332,10 @@ class Light
$multiTimeZone = (int)($sysConf['system_utc_time_zone']) == 1;
}
/*----------------------------------********---------------------------------*/
- $tz = isset($_SESSION['USR_TIME_ZONE'])?$_SESSION['USR_TIME_ZONE']:$sysConf['time_zone'];
- $offset = timezone_offset_get( new \DateTimeZone( $tz ), new \DateTime() );
- $response['timeZone'] = sprintf( "GMT%s%02d:%02d", ( $offset >= 0 ) ? '+' : '-', abs( $offset / 3600 ), abs( ($offset % 3600) / 60 ) );
+ $tz = isset($_SESSION['USR_TIME_ZONE']) ? $_SESSION['USR_TIME_ZONE'] : $sysConf['time_zone'];
+ $offset = timezone_offset_get(new \DateTimeZone($tz), new \DateTime());
+ $response['timeZone'] = sprintf("GMT%s%02d:%02d", ($offset >= 0) ? '+' : '-', abs($offset / 3600),
+ abs(($offset % 3600) / 60));
$response['multiTimeZone'] = $multiTimeZone;
$fields = System::getSysInfo();
$response['version'] = $fields['PM_VERSION'];
@@ -1272,24 +1346,24 @@ class Light
/*----------------------------------********---------------------------------*/
$response['buildType'] = $buildType;
- $conf = new \Configurations();
+ $conf = new Configurations();
$confEnvironment = $conf->getFormats();
$response['environment'] = array();
- if (is_array($confEnvironment)){
- $response['environment']['format'] = isset($confEnvironment['format'])?$confEnvironment['format']:'';
- $response['environment']['dateFormat'] = isset($confEnvironment['dateFormat'])?$confEnvironment['dateFormat']:'';
- $response['environment']['casesListDateFormat'] = isset($confEnvironment['casesListDateFormat'])?$confEnvironment['casesListDateFormat']:'';
+ if (is_array($confEnvironment)) {
+ $response['environment']['format'] = isset($confEnvironment['format']) ? $confEnvironment['format'] : '';
+ $response['environment']['dateFormat'] = isset($confEnvironment['dateFormat']) ? $confEnvironment['dateFormat'] : '';
+ $response['environment']['casesListDateFormat'] = isset($confEnvironment['casesListDateFormat']) ? $confEnvironment['casesListDateFormat'] : '';
}
$Translations = new \Translation;
$translationsTable = $Translations->getTranslationEnvironments();
- $languagesList = array ();
+ $languagesList = array();
foreach ($translationsTable as $locale) {
$LANG_ID = $locale['LOCALE'];
if ($locale['COUNTRY'] != '.') {
- $LANG_NAME = $locale['LANGUAGE'] . ' (' . (ucwords( strtolower( $locale['COUNTRY'] ) )) . ')';
+ $LANG_NAME = $locale['LANGUAGE'] . ' (' . (ucwords(strtolower($locale['COUNTRY']))) . ')';
} else {
$LANG_NAME = $locale['LANGUAGE'];
}
@@ -1301,14 +1375,15 @@ class Light
if (isset($params['fileLimit']) && $params['fileLimit']) {
$postMaxSize = $this->return_bytes(ini_get('post_max_size'));
$uploadMaxFileSize = $this->return_bytes(ini_get('upload_max_filesize'));
- if ($postMaxSize < $uploadMaxFileSize){
+ if ($postMaxSize < $uploadMaxFileSize) {
$uploadMaxFileSize = $postMaxSize;
}
$response['fileLimit'] = $uploadMaxFileSize;
}
if (isset($params['tz']) && $params['tz']) {
- $response['tz'] = isset($_SESSION['USR_TIME_ZONE'])?$_SESSION['USR_TIME_ZONE']:$sysConf['time_zone'];
+ $response['tz'] = isset($_SESSION['USR_TIME_ZONE']) ? $_SESSION['USR_TIME_ZONE'] : $sysConf['time_zone'];
}
+
return $response;
}
@@ -1331,22 +1406,23 @@ class Light
public function getInformationDerivatedCase($app_uid, $del_index)
{
- $oCriteria = new Criteria( 'workflow' );
- $children = array ();
+ $oCriteria = new Criteria('workflow');
+ $children = array();
$oCriteria->clearSelectColumns();
- $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );
- $oCriteria->addSelectColumn( AppDelegationPeer::PRO_UID );
- $oCriteria->addSelectColumn( AppDelegationPeer::TAS_UID );
- $oCriteria->addSelectColumn( AppDelegationPeer::USR_UID );
- $oCriteria->add( AppDelegationPeer::APP_UID, $app_uid );
- $oCriteria->add( AppDelegationPeer::DEL_PREVIOUS, $del_index );
- $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );
- $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
+ $oCriteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
+ $oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
+ $oCriteria->addSelectColumn(AppDelegationPeer::TAS_UID);
+ $oCriteria->addSelectColumn(AppDelegationPeer::USR_UID);
+ $oCriteria->add(AppDelegationPeer::APP_UID, $app_uid);
+ $oCriteria->add(AppDelegationPeer::DEL_PREVIOUS, $del_index);
+ $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($row = $oDataset->getRow()) {
$children[] = $row;
$oDataset->next();
}
+
return $children;
}
diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php
index d12ef50f1..47818ac73 100644
--- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php
+++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php
@@ -5,6 +5,7 @@ use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
use \ProcessMaker\Util\DateTime;
use \ProcessMaker\BusinessModel\Validator;
+use AppDocument;
/**
* Cases Api Controller
@@ -108,7 +109,27 @@ class Cases extends Api
}
}
break;
- }
+ case 'doDownloadInputDocument':
+ //Verify if the user can be download the file
+ $appDocUid = $this->parameters[$arrayArgs['app_doc_uid']];
+ $version = $this->parameters[$arrayArgs['v']];
+ $usrUid = $this->getUserId();
+ $oAppDocument = new AppDocument();
+ if ($version == 0) {
+ $docVersion = $oAppDocument->getLastAppDocVersion($appDocUid);
+ } else {
+ $docVersion = $version;
+ }
+ if (defined('DISABLE_DOWNLOAD_DOCUMENTS_SESSION_VALIDATION') && DISABLE_DOWNLOAD_DOCUMENTS_SESSION_VALIDATION == 0) {
+ if ($oAppDocument->canDownloadInput($usrUid, $appDocUid, $docVersion)) {
+ return true;
+ }
+ } else {
+ return true;
+ }
+ break;
+ }
+
return false;
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases/InputDocument.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases/InputDocument.php
index 7a2f48c42..45983547b 100644
--- a/workflow/engine/src/ProcessMaker/Services/Api/Cases/InputDocument.php
+++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases/InputDocument.php
@@ -3,6 +3,8 @@ namespace ProcessMaker\Services\Api\Cases;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
+use ProcessMaker\BusinessModel\Cases\InputDocument AS CasesInputDocument;
+use Exception;
/**
* Cases\InputDocument Api Controller
@@ -54,6 +56,8 @@ class InputDocument extends Api
}
/**
+ * @access protected
+ * @class AccessControl {@className \ProcessMaker\Services\Api\Cases}
* @url GET /:app_uid/input-document/:app_doc_uid/file
*
* @param string $app_uid {@min 32}{@max 32}
@@ -111,5 +115,24 @@ class InputDocument extends Api
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
+
+ /**
+ * @url GET /:app_uid/input-document/:app_doc_uid/versions
+ *
+ * @param string $app_uid {@min 32}{@max 32}
+ * @param string $app_doc_uid {@min 32}{@max 32}
+ * @return array $response
+ * @throws Exception
+ */
+ public function doGetDocumentByVersion($app_uid, $app_doc_uid)
+ {
+ try {
+ $inputDocument = new CasesInputDocument();
+ $response = $inputDocument->getAllVersionByDocUid($app_uid, $app_doc_uid);
+ return $response;
+ } catch (Exception $e) {
+ throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
+ }
+ }
}
diff --git a/workflow/engine/templates/cases/pmdynaform.html b/workflow/engine/templates/cases/pmdynaform.html
index e593e3597..aa199753e 100644
--- a/workflow/engine/templates/cases/pmdynaform.html
+++ b/workflow/engine/templates/cases/pmdynaform.html
@@ -14,6 +14,7 @@
+