diff --git a/rbac/engine/classes/model/RolesPermissions.php b/rbac/engine/classes/model/RolesPermissions.php
index f571c823e..b1c50332b 100644
--- a/rbac/engine/classes/model/RolesPermissions.php
+++ b/rbac/engine/classes/model/RolesPermissions.php
@@ -67,7 +67,7 @@ class RolesPermissions extends BaseRolesPermissions
if (is_array($aRow)) {
return true;
}
- $this->permission_name = $aData['PER_NAME'];
+ $this->permission_name = isset($aData['PER_NAME']) ? $aData['PER_NAME'] : '';
$oRolesPermissions = new RolesPermissions();
$oRolesPermissions->fromArray($aData, BasePeer::TYPE_FIELDNAME);
diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php
index 95119d7c7..475a250c0 100644
--- a/workflow/engine/classes/class.case.php
+++ b/workflow/engine/classes/class.case.php
@@ -2039,7 +2039,7 @@ class Cases
* @return Fields
*/
- public function startCase($sTasUid, $sUsrUid, $isSubprocess = false, $dataPreviusApplication = array())
+ public function startCase($sTasUid, $sUsrUid, $isSubprocess = false, $dataPreviusApplication = array(), $isSelfService = false)
{
if ($sTasUid != '') {
try {
@@ -2182,15 +2182,16 @@ class Cases
if(!$isSubprocess){
$Fields['APP_STATUS'] = 'DRAFT';
}
+
$inbox = new ListInbox();
- $inbox->newRow($Fields, $sUsrUid, $isSubprocess, $dataPreviusApplication);
+ $inbox->newRow($Fields, $sUsrUid, $isSelfService);
//Multiple Instance
foreach($aUserFields as $rowUser){
$Fields["USR_UID"] = $rowUser["USR_UID"];
$Fields["DEL_INDEX"] = $rowUser["DEL_INDEX"];
$inbox = new ListInbox();
- $inbox->newRow($Fields, $sUsrUid, $isSubprocess, $dataPreviusApplication);
+ $inbox->newRow($Fields, $sUsrUid, $isSelfService);
}
/*----------------------------------********---------------------------------*/
} catch (exception $e) {
@@ -4528,11 +4529,11 @@ class Cases
/*----------------------------------********---------------------------------*/
$this->getExecuteTriggerProcess($sApplicationUID, 'REASSIGNED');
-
+
//Delete record of the table LIST_UNASSIGNED
$unassigned = new ListUnassigned();
$unassigned->remove($sApplicationUID, $iDelegation);
-
+
return true;
}
diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php
index dd8a18e77..a753716c4 100644
--- a/workflow/engine/classes/class.derivation.php
+++ b/workflow/engine/classes/class.derivation.php
@@ -822,7 +822,7 @@ class Derivation
$arrayApplicationData2["REMOVED_LIST"] = $removeList;
$inbox = new ListInbox();
- $inbox->newRow($arrayApplicationData2, $arrayApplicationData["CURRENT_USER_UID"], false, array(), (($arrayNextDelegationData["TAS_ASSIGN_TYPE"] == "SELF_SERVICE")? true : false));
+ $inbox->newRow($arrayApplicationData2, $arrayApplicationData["CURRENT_USER_UID"], (($arrayNextDelegationData["TAS_ASSIGN_TYPE"] == "SELF_SERVICE")? true : false));
}
}
}
@@ -1435,9 +1435,14 @@ class Derivation
//if there are subprocess to create
if (isset( $aSP )) {
+ //Check if is Selfservice the task in the subprocess
+ $isSelfservice = false;
+ if (empty($aSP['USR_UID'])) {
+ $isSelfservice = true;
+ }
//Create the new case in the sub-process
- // set the initial date to null the time its created
- $aNewCase = $this->case->startCase( $aSP['TAS_UID'], $aSP['USR_UID'], true, $appFields);
+ //Set the initial date to null the time its created
+ $aNewCase = $this->case->startCase( $aSP['TAS_UID'], $aSP['USR_UID'], true, $appFields, $isSelfservice);
$taskNextDel = TaskPeer::retrieveByPK($aSP["TAS_UID"]); //Sub-Process
diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php
index f68cc9083..a3dc3f43d 100644
--- a/workflow/engine/classes/class.pmDynaform.php
+++ b/workflow/engine/classes/class.pmDynaform.php
@@ -28,6 +28,7 @@ class pmDynaform
private $dataSources = null;
private $databaseProviders = null;
private $propertiesToExclude = array();
+ public static $prefixs = array("@@", "@#", "@%", "@?", "@$", "@=");
public function __construct($fields = array())
{
@@ -194,7 +195,7 @@ class pmDynaform
$fn($json, $key, $value);
}
//set properties from trigger
- $prefixs = array("@@", "@#", "@%", "@?", "@$", "@=");
+ $prefixs = self::$prefixs;
if (is_string($value) && in_array(substr($value, 0, 2), $prefixs)) {
$triggerValue = substr($value, 2);
if (isset($this->fields["APP_DATA"][$triggerValue])) {
diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php
index fa42477eb..08b93a8d1 100644
--- a/workflow/engine/classes/class.wsTools.php
+++ b/workflow/engine/classes/class.wsTools.php
@@ -2452,35 +2452,36 @@ class workspaceTools
CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n");
}
- public function regenerateListParticipatedLast(){
+ public function regenerateListParticipatedLast()
+ {
$this->initPropel(true);
- $query = 'INSERT INTO '.$this->dbName.'.LIST_PARTICIPATED_LAST
+ $query = 'INSERT INTO ' . $this->dbName . '.LIST_PARTICIPATED_LAST
(
- APP_UID,
- USR_UID,
- DEL_INDEX,
- TAS_UID,
- PRO_UID,
- APP_NUMBER,
- APP_TITLE,
- APP_PRO_TITLE,
- APP_TAS_TITLE,
- APP_STATUS,
- DEL_PREVIOUS_USR_UID,
- DEL_PREVIOUS_USR_USERNAME,
- DEL_PREVIOUS_USR_FIRSTNAME,
- DEL_PREVIOUS_USR_LASTNAME,
- DEL_CURRENT_USR_USERNAME,
- DEL_CURRENT_USR_FIRSTNAME,
- DEL_CURRENT_USR_LASTNAME,
- DEL_DELEGATE_DATE,
- DEL_INIT_DATE,
- DEL_DUE_DATE,
- DEL_CURRENT_TAS_TITLE,
- DEL_PRIORITY,
- DEL_THREAD_STATUS)
-
- SELECT
+ APP_UID,
+ USR_UID,
+ DEL_INDEX,
+ TAS_UID,
+ PRO_UID,
+ APP_NUMBER,
+ APP_TITLE,
+ APP_PRO_TITLE,
+ APP_TAS_TITLE,
+ APP_STATUS,
+ DEL_PREVIOUS_USR_UID,
+ DEL_PREVIOUS_USR_USERNAME,
+ DEL_PREVIOUS_USR_FIRSTNAME,
+ DEL_PREVIOUS_USR_LASTNAME,
+ DEL_CURRENT_USR_USERNAME,
+ DEL_CURRENT_USR_FIRSTNAME,
+ DEL_CURRENT_USR_LASTNAME,
+ DEL_DELEGATE_DATE,
+ DEL_INIT_DATE,
+ DEL_DUE_DATE,
+ DEL_CURRENT_TAS_TITLE,
+ DEL_PRIORITY,
+ DEL_THREAD_STATUS)
+
+ SELECT
ACV.APP_UID,
ACV.USR_UID,
ACV.DEL_INDEX,
@@ -2491,45 +2492,74 @@ class workspaceTools
ACV.APP_PRO_TITLE,
ACV.APP_TAS_TITLE,
ACV.APP_STATUS,
- PRE_USR.USR_UID AS DEL_PREVIOUS_USR_UID,
- PRE_USR.USR_USERNAME AS DEL_PREVIOUS_USR_USERNAME,
- PRE_USR.USR_FIRSTNAME AS DEL_PREVIOUS_USR_FIRSTNAME,
- PRE_USR.USR_LASTNAME AS DEL_PREVIOUS_USR_LASTNAME,
- CUR_USR.USR_USERNAME AS DEL_CURRENT_USR_USERNAME,
- CUR_USR.USR_FIRSTNAME AS DEL_CURRENT_USR_FIRSTNAME,
- CUR_USR.USR_LASTNAME AS DEL_CURRENT_USR_LASTNAME,
- ACV.DEL_DELEGATE_DATE AS DEL_DELEGATE_DATE,
- ACV.DEL_INIT_DATE AS DEL_INIT_DATE,
- ACV.DEL_TASK_DUE_DATE AS DEL_DUE_DATE,
- CURR_USER_ACV.APP_TAS_TITLE AS DEL_CURRENT_TAS_TITLE,
+ DEL_PREVIOUS_USR_UID,
+ IFNULL(PRE_USR.USR_USERNAME, CUR_USR.USR_USERNAME) AS DEL_PREVIOUS_USR_USERNAME,
+ IFNULL(PRE_USR.USR_FIRSTNAME, CUR_USR.USR_FIRSTNAME) AS DEL_PREVIOUS_USR_USERNAME,
+ IFNULL(PRE_USR.USR_LASTNAME, CUR_USR.USR_LASTNAME) AS DEL_PREVIOUS_USR_USERNAME,
+ CUR_USR.USR_USERNAME AS DEL_CURRENT_USR_USERNAME,
+ CUR_USR.USR_FIRSTNAME AS DEL_CURRENT_USR_FIRSTNAME,
+ CUR_USR.USR_LASTNAME AS DEL_CURRENT_USR_LASTNAME,
+ ACV.DEL_DELEGATE_DATE AS DEL_DELEGATE_DATE,
+ ACV.DEL_INIT_DATE AS DEL_INIT_DATE,
+ ACV.DEL_TASK_DUE_DATE AS DEL_DUE_DATE,
+ ACV.APP_TAS_TITLE AS DEL_CURRENT_TAS_TITLE,
ACV.DEL_PRIORITY,
ACV.DEL_THREAD_STATUS
- FROM
- (SELECT
- *, MAX(ACV_INT.DEL_INDEX) MAX_DEL_INDEX
- FROM
- '.$this->dbName.'.APP_CACHE_VIEW ACV_INT
- GROUP BY ACV_INT.APP_UID , ACV_INT.USR_UID) ACV
- INNER JOIN
- (SELECT
- ACV.APP_UID, ACV.USR_UID, ACV.APP_TAS_TITLE, ACV.PREVIOUS_USR_UID, ACV.DEL_INDEX
- FROM
- APP_CACHE_VIEW ACV
- INNER JOIN
- (SELECT
- ACV_INT.APP_UID, MAX(ACV_INT.DEL_INDEX) DEL_INDEX
- FROM
- '.$this->dbName.'.APP_CACHE_VIEW ACV_INT
- GROUP BY ACV_INT.APP_UID) LAST_ACV ON LAST_ACV.APP_UID = ACV.APP_UID
- AND LAST_ACV.DEL_INDEX = ACV.DEL_INDEX) CURR_USER_ACV ON CURR_USER_ACV.APP_UID = ACV.APP_UID
- LEFT JOIN
- '.$this->dbName.'.USERS PRE_USR ON CURR_USER_ACV.PREVIOUS_USR_UID = PRE_USR.USR_UID
- LEFT JOIN
- '.$this->dbName.'.USERS CUR_USR ON CURR_USER_ACV.USR_UID = CUR_USR.USR_UID
- ';
+ FROM
+ (
+ SELECT
+ CASE WHEN ACV1.PREVIOUS_USR_UID = \'\' AND ACV1.DEL_INDEX = 1
+ THEN ACV1.USR_UID
+ ELSE ACV1.PREVIOUS_USR_UID END AS DEL_PREVIOUS_USR_UID,
+ ACV1.*
+ FROM ' . $this->dbName . '.APP_CACHE_VIEW ACV1
+ JOIN
+ (SELECT
+ ACV_INT.APP_UID,
+ MAX(ACV_INT.DEL_INDEX) MAX_DEL_INDEX
+ FROM
+ ' . $this->dbName . '.APP_CACHE_VIEW ACV_INT
+ GROUP BY
+ ACV_INT.USR_UID,
+ ACV_INT.APP_UID
+ ) ACV2
+ ON ACV2.APP_UID = ACV1.APP_UID AND ACV2.MAX_DEL_INDEX = ACV1.DEL_INDEX
+ ) ACV
+ LEFT JOIN ' . $this->dbName . '.USERS PRE_USR ON ACV.PREVIOUS_USR_UID = PRE_USR.USR_UID
+ LEFT JOIN ' . $this->dbName . '.USERS CUR_USR ON ACV.USR_UID = CUR_USR.USR_UID';
$con = Propel::getConnection("workflow");
$stmt = $con->createStatement();
$stmt->executeQuery($query);
+ CLI::logging("> Inserted data into table LIST_PARTICIPATED_LAST\n");
+ $query = 'UPDATE ' . $this->dbName . '.LIST_PARTICIPATED_LAST LPL, (
+ SELECT
+ TASK.TAS_TITLE,
+ CUR_USER.APP_UID,
+ USERS.USR_UID,
+ USERS.USR_USERNAME,
+ USERS.USR_FIRSTNAME,
+ USERS.USR_LASTNAME
+ FROM (
+ SELECT
+ APP_UID,
+ TAS_UID,
+ DEL_INDEX,
+ USR_UID
+ FROM ' . $this->dbName . '.APP_DELEGATION
+ WHERE DEL_LAST_INDEX = 1
+ ) CUR_USER
+ LEFT JOIN ' . $this->dbName . '.USERS ON CUR_USER.USR_UID = USERS.USR_UID
+ LEFT JOIN ' . $this->dbName . '.TASK ON CUR_USER.TAS_UID = TASK.TAS_UID) USERS_VALUES
+ SET
+ LPL.DEL_CURRENT_USR_USERNAME = USERS_VALUES.USR_USERNAME,
+ LPL.DEL_CURRENT_USR_FIRSTNAME = USERS_VALUES.USR_FIRSTNAME,
+ LPL.DEL_CURRENT_USR_LASTNAME = USERS_VALUES.USR_LASTNAME,
+ LPL.DEL_CURRENT_TAS_TITLE = USERS_VALUES.TAS_TITLE
+ WHERE LPL.APP_UID = USERS_VALUES.APP_UID';
+ $con = Propel::getConnection("workflow");
+ $stmt = $con->createStatement();
+ CLI::logging("> Updating the current users data on table LIST_PARTICIPATED_LAST\n");
+ $stmt->executeQuery($query);
CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");
}
diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php
index 9b02ef50e..5b405fc45 100644
--- a/workflow/engine/classes/model/ListInbox.php
+++ b/workflow/engine/classes/model/ListInbox.php
@@ -216,7 +216,20 @@ class ListInbox extends BaseListInbox
}
}
- public function newRow ($data, $delPreviusUsrUid, $isInitSubprocess = false, $dataPreviusApplication = array(), $isSelfService = false)
+ /**
+ * Define the variables before created the row
+ *
+ * This method is used before create the new data
+ * we completed the information about some variables
+ * for create the record
+ *
+ * @param array $data
+ * @param string $delPreviusUsrUid Uid from the user previous
+ * @param boolean $isSelfService this value define if the case is Unassigned
+ * @return void
+ *
+ */
+ public function newRow ($data, $delPreviusUsrUid, $isSelfService = false)
{
$removeList = true;
if (isset($data['REMOVED_LIST'])) {
diff --git a/workflow/engine/classes/model/ListUnassigned.php b/workflow/engine/classes/model/ListUnassigned.php
index 992dcd502..304f79cdf 100644
--- a/workflow/engine/classes/model/ListUnassigned.php
+++ b/workflow/engine/classes/model/ListUnassigned.php
@@ -99,7 +99,7 @@ class ListUnassigned extends BaseListUnassigned
public function newRow ($data, $delPreviusUsrUid)
{
$data['DEL_PREVIOUS_USR_UID'] = $delPreviusUsrUid;
- $data['DEL_DUE_DATE'] = $data['DEL_TASK_DUE_DATE'];
+ $data['DEL_DUE_DATE'] = isset($data['DEL_TASK_DUE_DATE']) ? $data['DEL_TASK_DUE_DATE'] : '';
$criteria = new Criteria();
$criteria->addSelectColumn( ApplicationPeer::APP_NUMBER );
diff --git a/workflow/engine/methods/processes/processes_doUpload.php b/workflow/engine/methods/processes/processes_doUpload.php
index 90dc80850..afe1d21ba 100644
--- a/workflow/engine/methods/processes/processes_doUpload.php
+++ b/workflow/engine/methods/processes/processes_doUpload.php
@@ -1,19 +1,20 @@
userCanAccess('PM_FACTORY') == 1) {
- if (isset( $_SESSION['processes_upload'] )) {
- $form = $_SESSION['processes_upload'];
- G::LoadClass('processes');
- $app = new Processes();
- if (!$app->processExists($form['PRO_UID'])) {
- $result = 0;
- $msg = G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED');
- echo "{'result': $result, 'msg':'$msg'}";
- die;
- }
+
+sleep(1);
+global $RBAC;
+if ($RBAC->userCanAccess('PM_FACTORY') == 1) {
+ if (isset($_SESSION['processes_upload'])) {
+ $form = $_SESSION['processes_upload'];
+ G::LoadClass('processes');
+ $app = new Processes();
+ if (!$app->processExists($form['PRO_UID'])) {
+ $result = 0;
+ $msg = G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED');
+ echo "{'result': $result, 'msg':'$msg'}";
+ die;
+ }
switch ($form['MAIN_DIRECTORY']) {
- case 'mailTemplates':
+ case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $form['PRO_UID'] . PATH_SEP . ($form['CURRENT_DIRECTORY'] != '' ? $form['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
case 'public':
@@ -22,18 +23,29 @@ if ( $RBAC->userCanAccess('PM_FACTORY') == 1) {
default:
die();
break;
- }
+ }
}
- if ($_FILES['form']['error'] == "0") {
- G::uploadFile( $_FILES['form']['tmp_name'], $sDirectory, $_FILES['form']['name'] );
- $msg = "Uploaded (" . (round( (filesize( $sDirectory . $_FILES['form']['name'] ) / 1024) * 10 ) / 10) . " kb)";
+ $fileName = $_FILES['form']['name'];
+ $canUploadPhpFile = true;
+ $extension = pathinfo($fileName, PATHINFO_EXTENSION);
+ if (\Bootstrap::getDisablePhpUploadExecution() === 1 && $extension === 'php') {
+ $message = \G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED');
+ \Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, $fileName);
+ $canUploadPhpFile = false;
+ }
+
+ if ($_FILES['form']['error'] == "0" && $canUploadPhpFile) {
+ G::uploadFile($_FILES['form']['tmp_name'], $sDirectory, $fileName);
+ $msg = "Uploaded (" . (round((filesize($sDirectory . $fileName) / 1024) * 10) / 10) . " kb)";
$result = 1;
- //echo $sDirectory.$_FILES['form']['name'];
} else {
$msg = "Failed";
+ if ($canUploadPhpFile === false) {
+ $msg = $message;
+ }
$result = 0;
}
-
- echo "{'result': $result, 'msg':'$msg'}";
+
+ echo "{'result': $result, 'msg':'$msg'}";
}
\ No newline at end of file
diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php
index 0ece6966f..626b61968 100644
--- a/workflow/engine/methods/services/soap2.php
+++ b/workflow/engine/methods/services/soap2.php
@@ -1,5 +1,5 @@
WSDL_CACHE_NONE
+);
+$server = new SoapServer($wsdl, $options);
$server->addFunction("Login");
$server->addFunction("ProcessList");
diff --git a/workflow/engine/methods/services/wsdl2.php b/workflow/engine/methods/services/wsdl2.php
index a1ee34085..5062aedef 100644
--- a/workflow/engine/methods/services/wsdl2.php
+++ b/workflow/engine/methods/services/wsdl2.php
@@ -1,14 +1,14 @@
$valueKey) {
+ if (in_array($key, $field, true) != false) {
+ $keyname = array_search($key, $field);
+ if (isset($field['dataType']) && $field['dataType'] != 'grid') {
+ $caseVariable[$field[$keyname]] = $appData[$field[$keyname]];
+
+ if (isset($appData[$field[$keyname] . '_label'])) {
+ $caseVariable[$field[$keyname] . '_label'] = $appData[$field[$keyname] . '_label'];
+ } else {
+ $caseVariable[$field[$keyname] . '_label'] = '';
+ }
+ } else {
+ $caseVariable[$field[$keyname]] = $appData[$field[$keyname]];
+ }
+ break;
+ }
+ }
+
} else {
$caseVariableAux = $this->__getFieldsAndValuesByDynaFormAndAppData($field, $appData, $caseVariable);
$caseVariable = array_merge($caseVariable, $caseVariableAux);
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php b/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php
index a949ce0a5..9df620d1a 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php
@@ -84,12 +84,13 @@ class FilesManager
}
}
foreach ($aFiles as $aFile) {
- $arrayFileUid = $this->getFileManagerUid($sDirectory.$aFile['FILE']);
+ $arrayFileUid = $this->getFileManagerUid($sDirectory.$aFile['FILE'], $aFile['FILE']);
$fcontent = "";
if ($getContent === true) {
$fcontent = file_get_contents($sDirectory . $aFile['FILE']);
}
- $fileUid = $arrayFileUid["PRF_UID"];
+ $fileUid = isset($arrayFileUid["PRF_UID"]) ? $arrayFileUid["PRF_UID"] : '';
+ $derivationScreen = isset($arrayFileUid["DERIVATION_SCREEN_TPL"]) ? true : false;
if ($fileUid != null) {
$oProcessFiles = \ProcessFilesPeer::retrieveByPK($fileUid);
$editable = $oProcessFiles->getPrfEditable();
@@ -107,7 +108,8 @@ class FilesManager
'prf_editable' => $editable,
'prf_create_date' => $oProcessFiles->getPrfCreateDate(),
'prf_update_date' => $oProcessFiles->getPrfUpdateDate(),
- 'prf_content' => $fcontent);
+ 'prf_content' => $fcontent,
+ 'prf_derivation_screen' => $derivationScreen);
} else {
$extention = end(explode(".", $aFile['FILE']));
if ($extention == 'docx' || $extention == 'doc' || $extention == 'html' || $extention == 'php' || $extention == 'jsp'
@@ -125,7 +127,8 @@ class FilesManager
'prf_editable' => $editable,
'prf_create_date' => '',
'prf_update_date' => '',
- 'prf_content' => $fcontent);
+ 'prf_content' => $fcontent,
+ 'prf_derivation_screen' => false);
}
}
return $aTheFiles;
@@ -389,13 +392,14 @@ class FilesManager
}
/**
- * Get data of unique ids of a file
+ * Get data of unique ids of a file and if the template is used in a derivation screen
*
* @param string $path
+ * @param string $fileName the name of template
*
* return array
*/
- public function getFileManagerUid($path)
+ public function getFileManagerUid($path, $fileName = '')
{
try {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
@@ -406,11 +410,25 @@ class FilesManager
$baseName2 = $path[count($path)-2]."/".$path[count($path)-1];
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID);
+ $criteria->addSelectColumn(\ProcessPeer::PRO_DERIVATION_SCREEN_TPL);
+ $criteria->addSelectColumn(\TaskPeer::TAS_DERIVATION_SCREEN_TPL);
+ $criteria->addJoin(\ProcessFilesPeer::PRO_UID, \ProcessPeer::PRO_UID);
+ $criteria->addJoin(\ProcessPeer::PRO_UID, \TaskPeer::PRO_UID);
$criteria->add( $criteria->getNewCriterion( \ProcessFilesPeer::PRF_PATH, '%' . $baseName . '%', \Criteria::LIKE )->addOr( $criteria->getNewCriterion( \ProcessFilesPeer::PRF_PATH, '%' . $baseName2 . '%', \Criteria::LIKE )));
$rsCriteria = \ProcessFilesPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
- $rsCriteria->next();
- return $rsCriteria->getRow();
+ $row = array();
+ while ($rsCriteria->next()) {
+ $row = $rsCriteria->getRow();
+ if (!empty($row['PRO_DERIVATION_SCREEN_TPL']) && $row['PRO_DERIVATION_SCREEN_TPL'] == $fileName) {
+ $row['DERIVATION_SCREEN_TPL'] = true;
+ return $row;
+ } elseif (!empty($row['TAS_DERIVATION_SCREEN_TPL']) && $row['TAS_DERIVATION_SCREEN_TPL'] == $fileName) {
+ $row['DERIVATION_SCREEN_TPL'] = true;
+ return $row;
+ }
+ }
+ return $row;
} catch (\Exception $e) {
throw $e;
}
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
index d33c85488..7daf4ad82 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
@@ -68,19 +68,12 @@ class Light
$task->setFormatFieldNameInUppercase(false);
$task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid"));
- $webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent();
- $arrayWebEntryEvent = array();
- $allWebEntryEvents = $webEntryEvent->getAllWebEntryEvents();
- foreach ($allWebEntryEvents as $webEntryEvents) {
- $arrayWebEntryEvent[] = $webEntryEvents["ACT_UID"];
- }
-
$step = new \ProcessMaker\Services\Api\Project\Activity\Step();
$response = array();
foreach ($processList as $key => $processInfo) {
$tempTreeChildren = array ();
foreach ($processList[$key] as $keyChild => $processInfoChild) {
- if (!in_array($processInfoChild['uid'], $arrayWebEntryEvent) && in_array($processInfoChild['pro_uid'], $bpmnProjects)) {
+ if (in_array($processInfoChild['pro_uid'], $bpmnProjects)) {
$tempTreeChild['text'] = $keyChild; //ellipsis ( $keyChild, 50 );
$tempTreeChild['processId'] = $processInfoChild['pro_uid'];
$tempTreeChild['taskId'] = $processInfoChild['uid'];
diff --git a/workflow/engine/templates/processes/processes_Upload.php b/workflow/engine/templates/processes/processes_Upload.php
index ec3884cb1..1d95ed0ba 100644
--- a/workflow/engine/templates/processes/processes_Upload.php
+++ b/workflow/engine/templates/processes/processes_Upload.php
@@ -1,123 +1,96 @@
-
-
-
-
-
-
-
+
+
+
-
-
-
+ }
+
+
+
+
diff --git a/workflow/engine/templates/processes/wsClient.php b/workflow/engine/templates/processes/wsClient.php
index 607fe73dc..bc5634010 100644
--- a/workflow/engine/templates/processes/wsClient.php
+++ b/workflow/engine/templates/processes/wsClient.php
@@ -96,33 +96,51 @@ function ws_parser($result) {
return $rows;
}
-function ws_open() {
- global $sessionId;
- global $client;
- $endpoint = WS_WSDL_URL;
- $sessionId = '';
+/**
+ * Initiates a connection using the SoapClient object, to start a web services
+ * session in ProcessMaker.
+ *
+ * @global type $sessionId
+ * @global SoapClient $client
+ * @return int
+ * @throws Exception
+ */
+function ws_open()
+{
+ global $sessionId;
+ global $client;
+ $endpoint = WS_WSDL_URL;
+ $sessionId = '';
- $client = new SoapClient(
- $endpoint,
- ['stream_context' => stream_context_create(['ssl' => ['verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true]])]
- );
+ $streamContext = stream_context_create(array(
+ 'ssl' => array(
+ 'verify_peer' => false,
+ 'verify_peer_name' => false,
+ 'allow_self_signed' => true
+ ))
+ );
+ $options = array(
+ "cache_wsdl" => WSDL_CACHE_NONE,
+ "stream_context" => $streamContext
+ );
+ $client = new SoapClient($endpoint, $options);
- $user = WS_USER_ID;
- $pass = WS_USER_PASS;
+ $user = WS_USER_ID;
+ $pass = WS_USER_PASS;
- $params = array (
- 'userid' => $user,
- 'password' => $pass
- );
- $result = $client->__SoapCall('login', array (
- $params
- ));
+ $params = array(
+ 'userid' => $user,
+ 'password' => $pass
+ );
+ $result = $client->__SoapCall('login', array(
+ $params
+ ));
- if ($result->status_code == 0) {
- $sessionId = $result->message;
- return 1;
- }
- throw (new Exception($result->message));
+ if ($result->status_code == 0) {
+ $sessionId = $result->message;
+ return 1;
+ }
+ throw (new Exception($result->message));
}
function ws_open_with_params($endpoint, $user, $pass) {