This commit is contained in:
Paula Quispe
2018-05-22 15:15:16 -04:00
parent 8487e072d9
commit 363a63991c
9 changed files with 180 additions and 89 deletions

View File

@@ -2533,10 +2533,11 @@ class Cases
* Get the transfer History
*
* @name getTransferHistoryCriteria
* @param string $sAppUid
* @return array
* @param integer $appNumber
*
* @return object
*/
public function getTransferHistoryCriteria($sAppUid)
public function getTransferHistoryCriteria($appNumber)
{
$c = new Criteria('workflow');
$c->addSelectColumn(UsersPeer::USR_FIRSTNAME);
@@ -2546,41 +2547,52 @@ class Cases
$c->addSelectColumn(AppDelegationPeer::TAS_UID);
$c->addSelectColumn(AppDelegationPeer::APP_UID);
$c->addSelectColumn(AppDelegationPeer::DEL_INDEX);
///-- $c->addAsColumn('USR_NAME', "CONCAT(USR_LASTNAME, ' ', USR_FIRSTNAME)");
$sDataBase = 'database_' . strtolower(DB_ADAPTER);
if (G::LoadSystemExist($sDataBase)) {
$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)
);
$c->addAsColumn(
'APP_TYPE', $oDataBase->getCaseWhen("DEL_FINISH_DATE IS NULL", "'IN_PROGRESS'", AppDelayPeer::APP_TYPE)
);
}
$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);
//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);
//We added this custom query for the case tracker
$c->addAsColumn(
'TAS_TITLE',
'CASE WHEN TASK.TAS_TITLE = "INTERMEDIATE-THROW-EMAIL-EVENT" THEN "' . G::LoadTranslation('ID_INTERMEDIATE_THROW_EMAIL_EVENT') . '"
WHEN TASK.TAS_TITLE = "INTERMEDIATE-THROW-MESSAGE-EVENT" THEN "' . G::LoadTranslation('ID_INTERMEDIATE_THROW_MESSAGE_EVENT') . '"
WHEN TASK.TAS_TITLE = "INTERMEDIATE-CATCH-MESSAGE-EVENT" THEN "' . G::LoadTranslation('ID_INTERMEDIATE_CATCH_MESSAGE_EVENT') . '"
WHEN TASK.TAS_TITLE = "INTERMEDIATE-CATCH-TIMER-EVENT" THEN "' . G::LoadTranslation('ID_INTERMEDIATE_CATCH_TIMER_EVENT') . '"
ELSE TASK.TAS_TITLE
END'
);
$dbAdapter = 'database_' . strtolower(DB_ADAPTER);
if (G::LoadSystemExist($dbAdapter)) {
$dataBase = new database();
$c->addAsColumn(
'USR_NAME',
$dataBase->concatString("USR_LASTNAME", "' '", "USR_FIRSTNAME")
);
$c->addAsColumn(
'DEL_FINISH_DATE',
$dataBase->getCaseWhen("DEL_FINISH_DATE IS NULL", "'-'", AppDelegationPeer::DEL_FINISH_DATE)
);
$c->addAsColumn(
'APP_TYPE',
$dataBase->getCaseWhen("DEL_FINISH_DATE IS NULL", "'IN_PROGRESS'", AppDelayPeer::APP_TYPE)
);
}
//Define the joins
$c->addJoin(AppDelegationPeer::USR_ID, UsersPeer::USR_ID, Criteria::LEFT_JOIN);
$c->addJoin(AppDelegationPeer::TAS_ID, TaskPeer::TAS_ID, Criteria::LEFT_JOIN);
$del = DBAdapter::getStringDelimiter();
$app = array();
$app[] = array(AppDelegationPeer::DEL_INDEX, AppDelayPeer::APP_DEL_INDEX);
$app[] = array(AppDelegationPeer::APP_UID, AppDelayPeer::APP_UID);
$app = [];
$app[] = [AppDelegationPeer::DEL_INDEX, AppDelayPeer::APP_DEL_INDEX];
$app[] = [AppDelegationPeer::APP_NUMBER, AppDelayPeer::APP_NUMBER];
$c->addJoinMC($app, Criteria::LEFT_JOIN);
//LEFT JOIN TASK TAS_TITLE
$c->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
//Define the where
$c->add(AppDelegationPeer::APP_NUMBER, $appNumber);
//WHERE
$c->add(AppDelegationPeer::APP_UID, $sAppUid);
//ORDER BY
//Order by
$c->clearOrderByColumns();
$c->addAscendingOrderByColumn(AppDelegationPeer::DEL_DELEGATE_DATE);

View File

@@ -3932,7 +3932,7 @@ class WorkspaceTools
WHERE AM.TAS_ID = 0 AND AM.PRO_ID = 0 AND AM.APP_NUMBER != 0 AND AM.DEL_INDEX != 0");
$con->commit();
// Populating APP_MESSAGE.PRO_ID when does not exits DEL_INDEX
// Populating APP_MESSAGE.PRO_ID
CLI::logging("-> Populating APP_MESSAGE.PRO_ID\n");
$con->begin();
$stmt = $con->createStatement();
@@ -3948,7 +3948,7 @@ class WorkspaceTools
WHERE AM.PRO_ID = 0 AND AM.APP_NUMBER != 0");
$con->commit();
// Populating APP_MESSAGE.PRO_ID
// Populating APP_MESSAGE.APP_MSG_STATUS_ID
CLI::logging("-> Populating APP_MESSAGE.APP_MSG_STATUS_ID \n");
$con->begin();
$rs = $stmt->executeQuery("UPDATE APP_MESSAGE
@@ -3961,8 +3961,8 @@ class WorkspaceTools
APP_MSG_STATUS_ID = 0");
$con->commit();
// Populating APP_MESSAGE.PRO_ID
CLI::logging("-> Populating APP_MESSAGE.APP_MSG_STATUS_ID \n");
// Populating APP_MESSAGE.APP_MSG_TYPE_ID
CLI::logging("-> Populating APP_MESSAGE.APP_MSG_TYPE_ID \n");
$con->begin();
$rs = $stmt->executeQuery("UPDATE APP_MESSAGE
SET APP_MSG_TYPE_ID = (case
@@ -3975,6 +3975,28 @@ class WorkspaceTools
APP_MSG_TYPE_ID = 0");
$con->commit();
// Populating TAS.TAS_TITLE with BPMN_EVENT.EVN_NAME
/*----------------------------------********---------------------------------*/
CLI::logging("-> Populating TASK.TAS_TITLE with BPMN_EVENT.EVN_NAME\n");
$con->begin();
$rs = $stmt->executeQuery("UPDATE TASK
INNER JOIN (
SELECT ELEMENT_TASK_RELATION.TAS_UID, BPMN_EVENT.EVN_NAME
FROM ELEMENT_TASK_RELATION
JOIN BPMN_EVENT ON (BPMN_EVENT.EVN_UID = ELEMENT_TASK_RELATION.ELEMENT_UID)
) AS EVENT
ON (TASK.TAS_UID = EVENT.TAS_UID)
SET TASK.TAS_TITLE = EVENT.EVN_NAME
WHERE TASK.TAS_TITLE IN (
'INTERMEDIATE-THROW-MESSAGE-EVENT',
'INTERMEDIATE-THROW-EMAIL-EVENT',
'INTERMEDIATE-CATCH-TIMER-EVENT',
'INTERMEDIATE-CATCH-MESSAGE-EVENT'
)
AND EVENT.EVN_NAME != ''");
$con->commit();
/*----------------------------------********---------------------------------*/
CLI::logging("-> Migrating And Populating Indexing for avoiding the use of table APP_CACHE_VIEW Done \n");
// Populating PRO_ID, USR_ID

View File

@@ -16,12 +16,19 @@
*/
class Task extends BaseTask
{
const tas_type_events = [
'INTERMEDIATE-THROW-MESSAGE-EVENT',
'INTERMEDIATE-THROW-EMAIL-EVENT',
'INTERMEDIATE-CATCH-TIMER-EVENT',
'INTERMEDIATE-CATCH-MESSAGE-EVENT'
];
/**
* This value goes in the content table
* @var string
*/
protected $tas_title_content = '';
/**
* Get the tas_title column value.
* @return string

View File

@@ -9911,6 +9911,18 @@ msgstr "Insufficient privileges to execute this function"
msgid "INT"
msgstr "INT"
# TRANSLATION
# LABEL/ID_INTERMEDIATE_CATCH_MESSAGE_EVENT
#: LABEL/ID_INTERMEDIATE_CATCH_MESSAGE_EVENT
msgid "Untitled - Intermediate Send Message Event"
msgstr "Untitled - Intermediate Send Message Event"
# TRANSLATION
# LABEL/ID_INTERMEDIATE_CATCH_TIMER_EVENT
#: LABEL/ID_INTERMEDIATE_CATCH_TIMER_EVENT
msgid "Untitled - Intermediate Timer Event"
msgstr "Untitled - Intermediate Timer Event"
# TRANSLATION
# LABEL/ID_INTERMEDIATE_MESSAGE_EVENT
#: LABEL/ID_INTERMEDIATE_MESSAGE_EVENT
@@ -9935,6 +9947,18 @@ msgstr "Intermediate Timer Event (Multiple Event)"
msgid "[LABEL/ID_INTERMEDIATE_TIMER_EVENTS] Intermediate Timer Event (Multiple Event)"
msgstr "Intermediate Timer Event (Multiple Event)"
# TRANSLATION
# LABEL/ID_INTERMEDIATE_THROW_EMAIL_EVENT
#: LABEL/ID_INTERMEDIATE_THROW_EMAIL_EVENT
msgid "Untitled - Intermediate Email Event"
msgstr "Untitled - Intermediate Email Event"
# TRANSLATION
# LABEL/ID_INTERMEDIATE_THROW_MESSAGE_EVENT
#: LABEL/ID_INTERMEDIATE_THROW_MESSAGE_EVENT
msgid "Untitled - Intermediate Receive Message Event"
msgstr "Untitled - Intermediate Receive Message Event"
# TRANSLATION
# LABEL/ID_INTERNATIONAL
#: LABEL/ID_INTERNATIONAL

View File

@@ -58482,10 +58482,14 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_INSTRUCTIONS_TEXT','en','To assign a case, first select the case in the list. Then enter a user name in the ''Search'' field and select a user to whom the case will be reassigned.','2014-10-21') ,
( 'LABEL','ID_INSUFFICIENT_PRIVILEGES_FUNCTION','en','Insufficient privileges to execute this function','2014-01-15') ,
( 'LABEL','ID_INT','en','INT','2014-01-15') ,
( 'LABEL','ID_INTERMEDIATE_CATCH_MESSAGE_EVENT','en','Untitled - Intermediate Send Message Event','2018-05-23') ,
( 'LABEL','ID_INTERMEDIATE_CATCH_TIMER_EVENT','en','Untitled - Intermediate Timer Event','2018-05-23') ,
( 'LABEL','ID_INTERMEDIATE_MESSAGE_EVENT','en','Intermediate Message Events (Task Notifications)','2014-01-15') ,
( 'LABEL','ID_INTERMEDIATE_MESSAGE_EVENTS','en','Intermediate Message Events (Task Notifications)','2014-01-15') ,
( 'LABEL','ID_INTERMEDIATE_TIMER_EVENT','en','Intermediate Timer Event (Multiple Event)','2014-01-15') ,
( 'LABEL','ID_INTERMEDIATE_TIMER_EVENTS','en','Intermediate Timer Event (Multiple Event)','2014-01-15') ,
( 'LABEL','ID_INTERMEDIATE_THROW_EMAIL_EVENT','en','Untitled - Intermediate Email Event','2018-05-23') ,
( 'LABEL','ID_INTERMEDIATE_THROW_MESSAGE_EVENT','en','Untitled - Intermediate Receive Message Event','2018-05-23') ,
( 'LABEL','ID_INTERNATIONAL','en','International','2014-01-15') ,
( 'LABEL','ID_INVALID_APPLICATION_ID_MSG','en','An invalid application ID was stored for the session. <br/> This could have happened if you opened another case in a new tab or window. <br/> Please {0} the case.','2014-10-21') ,
( 'LABEL','ID_INVALID_APPLICATION_NUMBER','en','You have set a invalid Application Number','2014-01-15') ,

View File

@@ -1,5 +1,6 @@
<?php
use Cases as ClassesCases;
use ProcessMaker\Util\DateTime;
$actionAjax = isset($_REQUEST['actionAjax']) ? $_REQUEST['actionAjax'] : null;
@@ -7,7 +8,10 @@ $actionAjax = isset($_REQUEST['actionAjax']) ? $_REQUEST['actionAjax'] : null;
switch ($actionAjax) {
case 'historyGridList_JXP':
global $G_PUBLISH;
$criteria = Cases::getTransferHistoryCriteria($_SESSION['APPLICATION']);
$appUid = $_SESSION['APPLICATION'];
$case = new ClassesCases();
$fields = $case->loadCase($appUid);
$criteria = Cases::getTransferHistoryCriteria($fields['APP_NUMBER']);
$dataSet = GulliverBasePeer::doSelectRs($criteria);
$totalCount = $dataSet->getRecordCount();

View File

@@ -60,7 +60,7 @@ $G_PUBLISH = new Publisher();
if ($noShowTitle == 0) {
$G_PUBLISH->AddContent( 'smarty', 'cases/cases_title', '', '', $aFields );
}
$G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'tracker/tracker_TransferHistory', Cases::getTransferHistoryCriteria( $_SESSION['APPLICATION'] ), array () );
$G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_TransferHistory', Cases::getTransferHistoryCriteria($aFields['APP_NUMBER']), []);
$bpmn = new ProcessMaker\Project\Bpmn();
$flagIsBpmn = ($bpmn->exists($_SESSION["PROCESS"]))? true : false;

View File

@@ -2,7 +2,12 @@
namespace ProcessMaker\BusinessModel\Light;
use AppDelegationPeer;
use Cases as ClassesCases;
use G;
use PmDynaform;
use Process as ClassesProcess;
use ResultSet;
class Tracker
{
@@ -73,37 +78,46 @@ class Tracker
}
/**
* This function get the case history related to the case
*
* @param string $idProcess
* @param string $appUid
*
* @return array
*/
public function history($idProcess, $appUid)
{
$oCase = new \Cases();
$aFields = $oCase->loadCase( $appUid );
$case = new ClassesCases();
$fields = $case->loadCase($appUid);
$oProcess = new \Process();
$aProcessFieds = $oProcess->load( $idProcess );
$process = new ClassesProcess();
$processFields = $process->load($idProcess);
$noShowTitle = 0;
if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
$noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
if (isset($processFields['PRO_SHOW_MESSAGE'])) {
$noShowTitle = $processFields['PRO_SHOW_MESSAGE'];
}
if (isset( $aFields['TITLE'] )) {
$aFields['APP_TITLE'] = $aFields['TITLE'];
if (isset($fields['TITLE'])) {
$fields['APP_TITLE'] = $fields['TITLE'];
}
if ($aFields['APP_PROC_CODE'] != '') {
$aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
if ($fields['APP_PROC_CODE'] != '') {
$fields['APP_NUMBER'] = $fields['APP_PROC_CODE'];
}
$aFields['CASE'] = \G::LoadTranslation( 'ID_CASE' );
$aFields['TITLE'] = \G::LoadTranslation( 'ID_TITLE' );
$fields['CASE'] = G::LoadTranslation('ID_CASE');
$fields['TITLE'] = G::LoadTranslation('ID_TITLE');
$c = \Cases::getTransferHistoryCriteria( $appUid );
$dataset = \AppDelegationPeer::doSelectRS( $c );
$dataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$c = ClassesCases::getTransferHistoryCriteria($fields['APP_NUMBER']);
$dataset = AppDelegationPeer::doSelectRS($c);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next();
$history = array();
$history = [];
while ($row = $dataset->getRow()) {
$history[] = $row;
$dataset->next();
}
$response = $this->parserHistory($history);
return $response;
}

View File

@@ -2,9 +2,14 @@
namespace ProcessMaker\Project\Adapter;
use BpmnFlow;
use BpmnFlowPeer;
use Exception;
use ProcessMaker\BusinessModel\ElementTaskRelation;
use ProcessMaker\Plugins\PluginRegistry;
use ProcessMaker\Project;
use ProcessMaker\Util;
use ProcessMaker\Util\Common;
/**
* Class BpmnWorkflow
@@ -777,39 +782,39 @@ class BpmnWorkflow extends Project\Bpmn
}
}
/*
public function updateEventStartObjects($eventUid, $taskUid)
{
$event = \BpmnEventPeer::retrieveByPK($eventUid);
//Case-Scheduler - Update
if (!is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "TIMER") {
$caseScheduler = new \CaseScheduler();
if ($caseScheduler->Exists($eventUid)) {
$this->wp->updateCaseScheduler($eventUid, array("TAS_UID" => $taskUid));
}
}
//Update web entry
//if (!is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "MESSAGE") {
// $this->wp->updateWebEntry($eventUid, array("TAS_UID" => $taskUid));
//}
}
*/
private function __createTaskByElement($elementUid, $elementType, $key)
/**
* This function get the TAS_UID
* Create or just return the value
*
* @param string $elementUid
* @param string $elementType
* @param string $key
* @param string $eventName
*
* @return string
* @throws Exception
*/
private function __createTaskByElement($elementUid, $elementType, $key, $eventName = '')
{
try {
$taskTitle = $taskType = $this->arrayTaskAttribute[$key]["type"];
/*----------------------------------********---------------------------------*/
$taskTitle = empty($eventName) ? $taskType : $eventName;
/*----------------------------------********---------------------------------*/
if (isset($this->arrayElementTaskRelation[$elementUid])) {
$taskUid = $this->arrayElementTaskRelation[$elementUid];
/*----------------------------------********---------------------------------*/
$dataTask = ["TAS_TITLE" => $taskTitle];
$this->wp->updateTask($taskUid, $dataTask);
/*----------------------------------********---------------------------------*/
} else {
$taskPosX = 0;
$taskPosY = 0;
$flow = \BpmnFlow::findOneBy(array(
\BpmnFlowPeer::FLO_ELEMENT_ORIGIN => $elementUid,
\BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => $elementType
$flow = BpmnFlow::findOneBy(array(
BpmnFlowPeer::FLO_ELEMENT_ORIGIN => $elementUid,
BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => $elementType
));
if (!is_null($flow)) {
@@ -818,9 +823,9 @@ class BpmnWorkflow extends Project\Bpmn
$taskPosX = (int)($arrayFlowData["FLO_X1"]);
$taskPosY = (int)($arrayFlowData["FLO_Y1"]);
} else {
$flow = \BpmnFlow::findOneBy(array(
\BpmnFlowPeer::FLO_ELEMENT_DEST => $elementUid,
\BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => $elementType
$flow = BpmnFlow::findOneBy(array(
BpmnFlowPeer::FLO_ELEMENT_DEST => $elementUid,
BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => $elementType
));
if (!is_null($flow)) {
@@ -832,18 +837,16 @@ class BpmnWorkflow extends Project\Bpmn
}
$prefix = $this->arrayTaskAttribute[$key]["prefix"];
$taskType = $this->arrayTaskAttribute[$key]["type"];
$taskUid = $this->wp->addTask(array(
"TAS_UID" => $prefix . substr(Util\Common::generateUID(), (32 - strlen($prefix)) * -1),
$taskUid = $this->wp->addTask([
"TAS_UID" => $prefix . substr(Common::generateUID(), (32 - strlen($prefix)) * -1),
"TAS_TYPE" => $taskType,
"TAS_TITLE" => $taskType,
"TAS_TITLE" => $taskTitle,
"TAS_POSX" => $taskPosX,
"TAS_POSY" => $taskPosY
));
]);
//Element-Task-Relation - Create
$elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation();
$elementTaskRelation = new ElementTaskRelation();
$arrayResult = $elementTaskRelation->create(
$this->wp->getUid(),
@@ -860,7 +863,7 @@ class BpmnWorkflow extends Project\Bpmn
//Return
return $taskUid;
} catch (\Exception $e) {
} catch (Exception $e) {
throw $e;
}
}
@@ -1026,7 +1029,8 @@ class BpmnWorkflow extends Project\Bpmn
$taskUid = $this->__createTaskByElement(
$eventUid,
"bpmnEvent",
$arrayKey[$arrayEventData["EVN_MARKER"]]
$arrayKey[$arrayEventData["EVN_MARKER"]],
isset($arrayEventData["EVN_NAME"]) ? $arrayEventData["EVN_NAME"] : ''
);
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);