diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index c0ab06e26..890baaf18 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -613,6 +613,7 @@ class Process extends BaseProcess $oCriteria->addSelectColumn( ProcessPeer::PRO_PARENT ); $oCriteria->addSelectColumn( ProcessPeer::PRO_STATUS ); $oCriteria->addSelectColumn( ProcessPeer::PRO_CATEGORY ); + $oCriteria->addSelectColumn( ProcessPeer::PRO_UPDATE_DATE ); $oCriteria->addSelectColumn( ProcessPeer::PRO_CREATE_DATE ); $oCriteria->addSelectColumn( ProcessPeer::PRO_CREATE_USER ); $oCriteria->addSelectColumn( ProcessPeer::PRO_DEBUG ); diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 8ddc8f3bf..fbc6d0990 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -80,22 +80,39 @@ class BpmnWorkflow extends Project\Bpmn public static function getList($start = null, $limit = null, $filter = "", $changeCaseTo = CASE_UPPER) { - $bpmnProjects = parent::getList($start, $limit, $filter, $changeCaseTo); - $workflowProjects = Project\Workflow::getList($start, $limit, "", ""); - - $workflowProjectsUids = array(); - - foreach ($workflowProjects as $workflowProject) { - $workflowProjectsUids[] = $workflowProject["PRO_UID"]; - } - - $prjUidKey = $changeCaseTo == CASE_UPPER ? "PRJ_UID" : "prj_uid"; + $bpmnProjects = parent::getList($start, $limit, $filter); + $workflowProjects = Project\Workflow::getList($start, $limit, $filter); + $bpmnProjectsUid = array(); + $bpmnProjectsList = array(); $list = array(); foreach ($bpmnProjects as $bpmnProject) { - if (in_array($bpmnProject[$prjUidKey], $workflowProjectsUids)) { - $list[] = $bpmnProject; + $bpmnProjectsList[$bpmnProject["PRJ_UID"]] = $bpmnProject; + } + + $bpmnProjectsUid = array_keys($bpmnProjectsList); + + foreach ($workflowProjects as $workflowProject) { + $data["PRJ_UID"] = $workflowProject["PRO_UID"]; + $data["PRJ_NAME"] = $workflowProject["PRO_TITLE"]; + $data["PRJ_DESCRIPTION"] = $workflowProject["PRO_DESCRIPTION"]; + $data["PRJ_CATEGORY"] = $workflowProject["PRO_CATEGORY"]; + + if (in_array($workflowProject["PRO_UID"], $bpmnProjectsUid)) { + $data["PRJ_TYPE"] = "bpmn"; + $data["PRJ_CREATE_DATE"] = $bpmnProjectsList[$workflowProject["PRO_UID"]]["PRJ_CREATE_DATE"]; + $data["PRJ_UPDATE_DATE"] = $bpmnProjectsList[$workflowProject["PRO_UID"]]["PRJ_UPDATE_DATE"]; + } else { + $data["PRJ_TYPE"] = "classic"; + $data["PRJ_CREATE_DATE"] = $workflowProject["PRO_CREATE_DATE"]; + $data["PRJ_UPDATE_DATE"] = $workflowProject["PRO_UPDATE_DATE"]; } + + if ($changeCaseTo != CASE_UPPER) { + $data = array_change_key_case($data, $changeCaseTo); + } + + $list[] = $data; } return $list; diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php b/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php index 1e058ba9c..61c658efb 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php @@ -76,6 +76,11 @@ class WorkflowBpmn extends Project\Workflow } } + public static function getList($start = null, $limit = null, $filter = "", $changeCaseTo = CASE_UPPER) + { + return parent::getList($start, $limit, $filter, $changeCaseTo); + } + public function remove() { parent::remove(); diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index c98ca1134..b1d0bbf63 100644 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -129,6 +129,12 @@ class Workflow extends Handler $processes = $process->getAllProcesses( $start, $limit, "", ""); //$processes = $process->getAll(); + if ($changeCaseTo != CASE_UPPER) { + foreach ($processes as $i => $processRow) { + $processes[$i] = array_change_key_case($processRow, $changeCaseTo); + } + } + return $processes; }