Merged in bugfix/PMC-126 (pull request #6788)

PMC-126

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Andrea Adamczyk
2019-02-26 20:04:28 +00:00
committed by Julio Cesar Laura Avendaño
5 changed files with 246 additions and 93 deletions

View File

@@ -7514,5 +7514,183 @@ class Cases
$caseDataRow["USR_UID"] = $targetUserId; $caseDataRow["USR_UID"] = $targetUserId;
$listInbox->create($caseDataRow); $listInbox->create($caseDataRow);
} }
/**
* Obtains the task information and the user delegated to the task for an specific case
*
* @param string $applicationUid
* @param string $processUid
*
* @see /workflow/engine/src/ProcessMaker/BusinessModel/Cases::getTasks($applicationUid)
*
* @return ResultSet
* @throws Exception
*
*/
public function getTasksInfoForACase($applicationUid, $processUid)
{
$conn = Propel::getConnection('workflow');
$sql = 'SELECT TASK.TAS_UID, TASK.TAS_TITLE, TASK.TAS_DESCRIPTION, TASK.TAS_START,
TASK.TAS_TYPE, TASK.TAS_DERIVATION, TASK.TAS_ASSIGN_TYPE, APP.USR_UID, USERS.USR_USERNAME,
USERS.USR_FIRSTNAME, USERS.USR_LASTNAME
FROM TASK LEFT JOIN (SELECT * FROM APP_DELEGATION WHERE APP_DELEGATION.APP_UID = ?) AS APP
ON TASK.TAS_UID = APP.TAS_UID LEFT JOIN USERS
ON (SELECT USR_UID FROM APP_DELEGATION WHERE APP_UID = ? AND TAS_UID = TASK.TAS_UID ORDER BY DEL_INDEX DESC LIMIT 1) = USERS.USR_UID
WHERE TASK.PRO_UID = ?';
$stmt = $conn->prepareStatement($sql);
$stmt->set(1, $applicationUid);
$stmt->set(2, $applicationUid);
$stmt->set(3, $processUid);
if (!$stmt->executeQuery()) {
throw Exception(G::LoadTranslation('ID_MSG_AJAX_FAILURE'));
}
return $stmt->getResultSet();
}
/**
* Get the task information when the task is a sub-process
*
* @param string $processUid
* @param string $tasUid
*
* @see /workflow/engine/src/ProcessMaker/BusinessModel/Cases::getTasks($applicationUid)
*
* @return ResultSet
*/
public function getTaskInfoForSubProcess($processUid, $tasUid)
{
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(SubProcessPeer::PRO_UID);
$criteria->addSelectColumn(TaskPeer::TAS_TITLE);
$criteria->addSelectColumn(TaskPeer::TAS_DESCRIPTION);
$criteria->addJoin(SubProcessPeer::TAS_PARENT, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->add(SubProcessPeer::PRO_PARENT, $processUid);
$criteria->add(SubProcessPeer::TAS_PARENT, $tasUid);
$rsCriteria = SubProcessPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $rsCriteria;
}
/**
* Get the routes of a task
*
* @param string $processUid
* @param string $tasUid
*
* @see /workflow/engine/src/ProcessMaker/BusinessModel/Cases::getTasks($applicationUid)
*
* @return ResultSet
*/
public function getTaskRoutes($processUid, $tasUid)
{
$criteria = new Criteria("workflow");
$criteria->addAsColumn("ROU_NUMBER", RoutePeer::ROU_CASE);
$criteria->addSelectColumn(RoutePeer::ROU_TYPE);
$criteria->addSelectColumn(RoutePeer::ROU_CONDITION);
$criteria->addAsColumn("TAS_UID", RoutePeer::ROU_NEXT_TASK);
$criteria->add(RoutePeer::PRO_UID, $processUid, Criteria::EQUAL);
$criteria->add(RoutePeer::TAS_UID, $tasUid, Criteria::EQUAL);
$criteria->addAscendingOrderByColumn("ROU_NUMBER");
$rsCriteria = RoutePeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $rsCriteria;
}
/**
* Get the delegations of an specific case
*
* @param string $applicationUid
* @param string $tasUid
*
* @see /workflow/engine/src/ProcessMaker/BusinessModel/Cases::getTasks($applicationUid)
*
* @return ResultSet
*/
public function getCaseDelegations($applicationUid, $tasUid)
{
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
$criteria->addSelectColumn(AppDelegationPeer::DEL_DELEGATE_DATE);
$criteria->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
$criteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
$criteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
$criteria->addSelectColumn(UsersPeer::USR_UID);
$criteria->addSelectColumn(UsersPeer::USR_USERNAME);
$criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$criteria->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$criteria->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL);
$criteria->add(AppDelegationPeer::TAS_UID, $tasUid, Criteria::EQUAL);
$criteria->addAscendingOrderByColumn(AppDelegationPeer::DEL_INDEX);
$rsCriteria = AppDelegationPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $rsCriteria;
}
/**
* Get the total amount and the minimun date of the Delegation table for an specific case
*
* @param string $applicationUid
* @param string $tasUid
*
* @see /workflow/engine/src/ProcessMaker/BusinessModel/Cases::getTasks($applicationUid)
*
* @return ResultSet
*/
public function getTotalAndMinDateForACase($applicationUid, $tasUid)
{
$criteria = new Criteria("workflow");
$criteria->addAsColumn("CANT", "COUNT(" . AppDelegationPeer::APP_UID . ")");
$criteria->addAsColumn("FINISH", "MIN(" . AppDelegationPeer::DEL_FINISH_DATE . ")");
$criteria->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL);
$criteria->add(AppDelegationPeer::TAS_UID, $tasUid, Criteria::EQUAL);
$rsCriteria = AppDelegationPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $rsCriteria;
}
/**
* Get the DEL_FINISH_DATE of the Delegation table of an specific task in a case
*
* @param string $applicationUid
* @param string $tasUid
*
* @see /workflow/engine/src/ProcessMaker/BusinessModel/Cases::getTasks($applicationUid)
*
* @return ResultSet
*/
public function getDelegationFinishDate($applicationUid, $tasUid)
{
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
$criteria->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL);
$criteria->add(AppDelegationPeer::TAS_UID, $tasUid, Criteria::EQUAL);
$criteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
$rsCriteria = AppDelegationPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
return $rsCriteria;
}
} }

View File

@@ -15179,6 +15179,12 @@ msgstr "Screenshot640"
msgid "The input document is required, please select the value." msgid "The input document is required, please select the value."
msgstr "The input document is required, please select the value." msgstr "The input document is required, please select the value."
# TRANSLATION
# LABEL/ID_MAFE_99567b953da8beace4e3e7296bf1fc23
#: LABEL/ID_MAFE_99567b953da8beace4e3e7296bf1fc23
msgid "Assign type"
msgstr "Assign type"
# TRANSLATION # TRANSLATION
# LABEL/ID_MAFE_99b2439e63f73ad515f7ab2447a80673 # LABEL/ID_MAFE_99b2439e63f73ad515f7ab2447a80673
#: LABEL/ID_MAFE_99b2439e63f73ad515f7ab2447a80673 #: LABEL/ID_MAFE_99b2439e63f73ad515f7ab2447a80673
@@ -15557,6 +15563,12 @@ msgstr "Ok"
msgid "Notify the assigned user to this task" msgid "Notify the assigned user to this task"
msgstr "Notify the assigned user to this task" msgstr "Notify the assigned user to this task"
# TRANSLATION
# LABEL/ID_MAFE_a6122a65eaa676f700ae68d393054a37
#: LABEL/ID_MAFE_a6122a65eaa676f700ae68d393054a37
msgid "Start"
msgstr "Start"
# TRANSLATION # TRANSLATION
# LABEL/ID_MAFE_a6527af0da63377b07a3effae750a485 # LABEL/ID_MAFE_a6527af0da63377b07a3effae750a485
#: LABEL/ID_MAFE_a6527af0da63377b07a3effae750a485 #: LABEL/ID_MAFE_a6527af0da63377b07a3effae750a485
@@ -16379,6 +16391,12 @@ msgstr "Invalid Connection between elements"
msgid "Invalid operation: Delete message flow before converting it to" msgid "Invalid operation: Delete message flow before converting it to"
msgstr "Invalid operation: Delete message flow before converting it to" msgstr "Invalid operation: Delete message flow before converting it to"
# TRANSLATION
# LABEL/ID_MAFE_c5e54f7804fa817826dfa5ecc13cd92f
#: LABEL/ID_MAFE_c5e54f7804fa817826dfa5ecc13cd92f
msgid "Last User Name"
msgstr "Last User Name"
# TRANSLATION # TRANSLATION
# LABEL/ID_MAFE_c5f93fd19468533ea5c9114801c2958d # LABEL/ID_MAFE_c5f93fd19468533ea5c9114801c2958d
#: LABEL/ID_MAFE_c5f93fd19468533ea5c9114801c2958d #: LABEL/ID_MAFE_c5f93fd19468533ea5c9114801c2958d
@@ -17231,6 +17249,12 @@ msgstr "Select a Control"
msgid "Please configure script to wait for a signal." msgid "Please configure script to wait for a signal."
msgstr "Please configure script to wait for a signal." msgstr "Please configure script to wait for a signal."
# TRANSLATION
# LABEL/ID_MAFE_e2ac1703ae8a4bb8b146f7337a7e4cab
#: LABEL/ID_MAFE_e2ac1703ae8a4bb8b146f7337a7e4cab
msgid "Last User"
msgstr "Last User"
# TRANSLATION # TRANSLATION
# LABEL/ID_MAFE_e2b9d6eb9f3ec7d4e6089274a4481fab # LABEL/ID_MAFE_e2b9d6eb9f3ec7d4e6089274a4481fab
#: LABEL/ID_MAFE_e2b9d6eb9f3ec7d4e6089274a4481fab #: LABEL/ID_MAFE_e2b9d6eb9f3ec7d4e6089274a4481fab
@@ -17711,6 +17735,12 @@ msgstr "Assignment"
msgid "EXCLUSIVE" msgid "EXCLUSIVE"
msgstr "EXCLUSIVE" msgstr "EXCLUSIVE"
# TRANSLATION
# LABEL/ID_MAFE_f45fabda0c6a595f709b3996398132f5
#: LABEL/ID_MAFE_f45fabda0c6a595f709b3996398132f5
msgid "Diverging gateways expect to receive only one incoming flow."
msgstr "Diverging gateways expect to receive only one incoming flow."
# TRANSLATION # TRANSLATION
# LABEL/ID_MAFE_f4636507ca93332f92f92fb219a43b02 # LABEL/ID_MAFE_f4636507ca93332f92f92fb219a43b02
#: LABEL/ID_MAFE_f4636507ca93332f92f92fb219a43b02 #: LABEL/ID_MAFE_f4636507ca93332f92f92fb219a43b02

View File

@@ -59383,6 +59383,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_9925fd3c9d09e862da22c5d6912420d9','en','End event must have an incoming sequence flow', NOW()) , ( 'LABEL','ID_MAFE_9925fd3c9d09e862da22c5d6912420d9','en','End event must have an incoming sequence flow', NOW()) ,
( 'LABEL','ID_MAFE_992d1d47106d77216cd6c3a15415dbea','en','Screenshot640', NOW()) , ( 'LABEL','ID_MAFE_992d1d47106d77216cd6c3a15415dbea','en','Screenshot640', NOW()) ,
( 'LABEL','ID_MAFE_99493c187e709deb387b6ee3ec6c8179','en','The input document is required, please select the value.', NOW()) , ( 'LABEL','ID_MAFE_99493c187e709deb387b6ee3ec6c8179','en','The input document is required, please select the value.', NOW()) ,
( 'LABEL','ID_MAFE_99567b953da8beace4e3e7296bf1fc23','en','Assign type', NOW()) ,
( 'LABEL','ID_MAFE_99b2439e63f73ad515f7ab2447a80673','en','PAUSED', NOW()) , ( 'LABEL','ID_MAFE_99b2439e63f73ad515f7ab2447a80673','en','PAUSED', NOW()) ,
( 'LABEL','ID_MAFE_99c293babcada00063dd86b4f53bccd7','en','Variable sent in email', NOW()) , ( 'LABEL','ID_MAFE_99c293babcada00063dd86b4f53bccd7','en','Variable sent in email', NOW()) ,
( 'LABEL','ID_MAFE_9a0364b9e99bb480dd25e1f0284c8555','en','content', NOW()) , ( 'LABEL','ID_MAFE_9a0364b9e99bb480dd25e1f0284c8555','en','content', NOW()) ,
@@ -59448,6 +59449,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_a603905470e2a5b8c13e96b579ef0dba','en','Debug', NOW()) , ( 'LABEL','ID_MAFE_a603905470e2a5b8c13e96b579ef0dba','en','Debug', NOW()) ,
( 'LABEL','ID_MAFE_a60852f204ed8028c1c58808b746d115','en','Ok', NOW()) , ( 'LABEL','ID_MAFE_a60852f204ed8028c1c58808b746d115','en','Ok', NOW()) ,
( 'LABEL','ID_MAFE_a60cf2ece5b3e294aa794916477ac6a8','en','Notify the assigned user to this task', NOW()) , ( 'LABEL','ID_MAFE_a60cf2ece5b3e294aa794916477ac6a8','en','Notify the assigned user to this task', NOW()) ,
( 'LABEL','ID_MAFE_a6122a65eaa676f700ae68d393054a37','en','Start', NOW()) ,
( 'LABEL','ID_MAFE_a6527af0da63377b07a3effae750a485','en','<br/>Triggers: Create scripts.', NOW()) , ( 'LABEL','ID_MAFE_a6527af0da63377b07a3effae750a485','en','<br/>Triggers: Create scripts.', NOW()) ,
( 'LABEL','ID_MAFE_a6c0580005d36b8ad4194b3b31cdb9ee','en','Input Document deleted successfully', NOW()) , ( 'LABEL','ID_MAFE_a6c0580005d36b8ad4194b3b31cdb9ee','en','Input Document deleted successfully', NOW()) ,
( 'LABEL','ID_MAFE_a6ca4597da3795aed1b1fa92f0e8d9a6','en','Previous Decade', NOW()) , ( 'LABEL','ID_MAFE_a6ca4597da3795aed1b1fa92f0e8d9a6','en','Previous Decade', NOW()) ,
@@ -59589,6 +59591,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_c53385d51221bcb27c5f37de31043c24','en','No Category', NOW()) , ( 'LABEL','ID_MAFE_c53385d51221bcb27c5f37de31043c24','en','No Category', NOW()) ,
( 'LABEL','ID_MAFE_c5bcf625cbb751aba886be634ef4ef47','en','Invalid Connection between elements', NOW()) , ( 'LABEL','ID_MAFE_c5bcf625cbb751aba886be634ef4ef47','en','Invalid Connection between elements', NOW()) ,
( 'LABEL','ID_MAFE_c5d84b6c19cb058b7b5471b30e926823','en','Invalid operation: Delete message flow before converting it to', NOW()) , ( 'LABEL','ID_MAFE_c5d84b6c19cb058b7b5471b30e926823','en','Invalid operation: Delete message flow before converting it to', NOW()) ,
( 'LABEL','ID_MAFE_c5e54f7804fa817826dfa5ecc13cd92f','en','Last User Name', NOW()) ,
( 'LABEL','ID_MAFE_c5f93fd19468533ea5c9114801c2958d','en','Input Document updated successfully', NOW()) , ( 'LABEL','ID_MAFE_c5f93fd19468533ea5c9114801c2958d','en','Input Document updated successfully', NOW()) ,
( 'LABEL','ID_MAFE_c61404957758dfda283709e89376ab3e','en','layout', NOW()) , ( 'LABEL','ID_MAFE_c61404957758dfda283709e89376ab3e','en','layout', NOW()) ,
( 'LABEL','ID_MAFE_c61dee25881b22ead46aca2bc70f0f9d','en','Assigned supervisors list', NOW()) , ( 'LABEL','ID_MAFE_c61dee25881b22ead46aca2bc70f0f9d','en','Assigned supervisors list', NOW()) ,
@@ -59733,6 +59736,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_e2627d9094274c7bcdc01ce1dadbaaab','en','Select Target Process', NOW()) , ( 'LABEL','ID_MAFE_e2627d9094274c7bcdc01ce1dadbaaab','en','Select Target Process', NOW()) ,
( 'LABEL','ID_MAFE_e29d57981d438d31f08b968bb12ed568','en','Select a Control', NOW()) , ( 'LABEL','ID_MAFE_e29d57981d438d31f08b968bb12ed568','en','Select a Control', NOW()) ,
( 'LABEL','ID_MAFE_e2a990c9958b0fd2ecb860335737c258','en','Please configure script to wait for a signal.', NOW()) , ( 'LABEL','ID_MAFE_e2a990c9958b0fd2ecb860335737c258','en','Please configure script to wait for a signal.', NOW()) ,
( 'LABEL','ID_MAFE_e2ac1703ae8a4bb8b146f7337a7e4cab','en','Last User', NOW()) ,
( 'LABEL','ID_MAFE_e2b9d6eb9f3ec7d4e6089274a4481fab','en','There are problems getting the list of DynaForms, please try again.', NOW()) , ( 'LABEL','ID_MAFE_e2b9d6eb9f3ec7d4e6089274a4481fab','en','There are problems getting the list of DynaForms, please try again.', NOW()) ,
( 'LABEL','ID_MAFE_e30f555e5a24f076a5d5be70a4625270','en','TNS', NOW()) , ( 'LABEL','ID_MAFE_e30f555e5a24f076a5d5be70a4625270','en','TNS', NOW()) ,
( 'LABEL','ID_MAFE_e3ce9b91bd7b1be415b5e687006ad179','en','false: No default selection <br>true: current date<br>year: the first day of the current year<br>month: the first day of the month<br>day: the current day<br>hour: the current hour without minutes<br>minute: the current minute', NOW()) , ( 'LABEL','ID_MAFE_e3ce9b91bd7b1be415b5e687006ad179','en','false: No default selection <br>true: current date<br>year: the first day of the current year<br>month: the first day of the month<br>day: the current day<br>hour: the current hour without minutes<br>minute: the current minute', NOW()) ,
@@ -59815,6 +59819,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_f3a29486bed19a90f2da6d007818b427','en','Steps', NOW()) , ( 'LABEL','ID_MAFE_f3a29486bed19a90f2da6d007818b427','en','Steps', NOW()) ,
( 'LABEL','ID_MAFE_f3b92fc0f97f128818cfb44321376bca','en','Assignment', NOW()) , ( 'LABEL','ID_MAFE_f3b92fc0f97f128818cfb44321376bca','en','Assignment', NOW()) ,
( 'LABEL','ID_MAFE_f45c3a0bb3687ed8e221253b3fd4a2ce','en','EXCLUSIVE', NOW()) , ( 'LABEL','ID_MAFE_f45c3a0bb3687ed8e221253b3fd4a2ce','en','EXCLUSIVE', NOW()) ,
( 'LABEL','ID_MAFE_f45fabda0c6a595f709b3996398132f5','en','Diverging gateways expect to receive only one incoming flow.', NOW()) ,
( 'LABEL','ID_MAFE_f4636507ca93332f92f92fb219a43b02','en','Database Connection', NOW()) , ( 'LABEL','ID_MAFE_f4636507ca93332f92f92fb219a43b02','en','Database Connection', NOW()) ,
( 'LABEL','ID_MAFE_f49b52022300199128ed01380edda751','en','There are problems updating the Timer Event, please try again.', NOW()) , ( 'LABEL','ID_MAFE_f49b52022300199128ed01380edda751','en','There are problems updating the Timer Event, please try again.', NOW()) ,
( 'LABEL','ID_MAFE_f4ae7ce97eda9edfe1541b3fdea115b6','en','Group or User', NOW()) , ( 'LABEL','ID_MAFE_f4ae7ce97eda9edfe1541b3fdea115b6','en','Group or User', NOW()) ,

View File

@@ -2128,6 +2128,11 @@ class Cases
* *
* @param string $applicationUid Unique id of Case * @param string $applicationUid Unique id of Case
* *
* @see workflow/engine/src/ProcessMaker/Services/Api/Cases.php
* @see workflow/engine/src/ProcessMaker/Services/Api/Light.php
*
* @link https://wiki.processmaker.com/3.3/REST_API_Cases/Cases#Get_Case.27s_Tasks:_GET_.2Fcases.2F.7Bapp_uid.7D.2Ftasks
*
* @return array Return an array with all Tasks of Case * @return array Return an array with all Tasks of Case
* @throws Exception * @throws Exception
*/ */
@@ -2151,33 +2156,20 @@ class Cases
$taskUid = ""; $taskUid = "";
//Get data //Obtain the list of tasks and their respectives users assigned to each one for an specific case
//SQL $case = new ClassesCases();
$delimiter = DBAdapter::getStringDelimiter(); $rsTasks = $case->getTasksInfoForACase($applicationUid, $processUid);
$criteria = new Criteria("workflow"); while ($rsTasks->next()) {
$row = $rsTasks->getRow();
$criteria->addSelectColumn(TaskPeer::TAS_UID); //If the task is a multiple task
$criteria->addSelectColumn(TaskPeer::TAS_TITLE); if ($row["TAS_ASSIGN_TYPE"] == 'MULTIPLE_INSTANCE' || $row["TAS_ASSIGN_TYPE"] == 'MULTIPLE_INSTANCE_VALUE_BASED') {
$criteria->addSelectColumn(TaskPeer::TAS_DESCRIPTION); $row["USR_UID"] = "";
$criteria->addSelectColumn(TaskPeer::TAS_START); $row["USR_USERNAME"] = "";
$criteria->addSelectColumn(TaskPeer::TAS_TYPE); $row["USR_FIRSTNAME"] = "";
$criteria->addSelectColumn(TaskPeer::TAS_DERIVATION); $row["USR_LASTNAME"] = "";
$criteria->addSelectColumn(TaskPeer::TAS_ASSIGN_TYPE); }
$criteria->addSelectColumn(UsersPeer::USR_UID);
$criteria->addSelectColumn(UsersPeer::USR_USERNAME);
$criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$criteria->addJoin(TaskPeer::TAS_LAST_ASSIGNED, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$criteria->add(TaskPeer::PRO_UID, $processUid, Criteria::EQUAL);
$rsCriteria = TaskPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
//Task //Task
if ($row["TAS_TYPE"] == "NORMAL") { if ($row["TAS_TYPE"] == "NORMAL") {
@@ -2189,17 +2181,9 @@ class Cases
$row["TAS_TITLE"] = $task->getTasTitle(); $row["TAS_TITLE"] = $task->getTasTitle();
} }
} else { } else {
$criteria2 = new Criteria("workflow");
$criteria2->addSelectColumn(SubProcessPeer::PRO_UID); //Get the task information when the task type is different from normal
$criteria2->addSelectColumn(TaskPeer::TAS_TITLE); $rsCriteria2 = $case->getTaskInfoForSubProcess($processUid, $row["TAS_UID"]);
$criteria2->addSelectColumn(TaskPeer::TAS_DESCRIPTION);
$criteria2->addJoin(SubProcessPeer::TAS_PARENT, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria2->add(SubProcessPeer::PRO_PARENT, $processUid);
$criteria2->add(SubProcessPeer::TAS_PARENT, $row["TAS_UID"]);
$rsCriteria2 = SubProcessPeer::doSelectRS($criteria2);
$rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria2->next(); $rsCriteria2->next();
@@ -2215,18 +2199,8 @@ class Cases
$routeType = ""; $routeType = "";
$arrayRoute = array(); $arrayRoute = array();
$criteria2 = new Criteria("workflow"); //Get the routes of a task
$rsCriteria2 = $case->getTaskRoutes($processUid, $row["TAS_UID"]);
$criteria2->addAsColumn("ROU_NUMBER", RoutePeer::ROU_CASE);
$criteria2->addSelectColumn(RoutePeer::ROU_TYPE);
$criteria2->addSelectColumn(RoutePeer::ROU_CONDITION);
$criteria2->addAsColumn("TAS_UID", RoutePeer::ROU_NEXT_TASK);
$criteria2->add(RoutePeer::PRO_UID, $processUid, Criteria::EQUAL);
$criteria2->add(RoutePeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL);
$criteria2->addAscendingOrderByColumn("ROU_NUMBER");
$rsCriteria2 = RoutePeer::doSelectRS($criteria2);
$rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria2->next()) { while ($rsCriteria2->next()) {
$row2 = $rsCriteria2->getRow(); $row2 = $rsCriteria2->getRow();
@@ -2243,25 +2217,7 @@ class Cases
//Delegations //Delegations
$arrayAppDelegation = array(); $arrayAppDelegation = array();
$criteria2 = new Criteria("workflow"); $rsCriteria2 = $case->getCaseDelegations($applicationUid, $row["TAS_UID"]);
$criteria2->addSelectColumn(AppDelegationPeer::DEL_INDEX);
$criteria2->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
$criteria2->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
$criteria2->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
$criteria2->addSelectColumn(UsersPeer::USR_UID);
$criteria2->addSelectColumn(UsersPeer::USR_USERNAME);
$criteria2->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$criteria2->addSelectColumn(UsersPeer::USR_LASTNAME);
$criteria2->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$criteria2->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL);
$criteria2->add(AppDelegationPeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL);
$criteria2->addAscendingOrderByColumn(AppDelegationPeer::DEL_INDEX);
$rsCriteria2 = AppDelegationPeer::doSelectRS($criteria2);
$rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria2->next()) { while ($rsCriteria2->next()) {
$row2 = $rsCriteria2->getRow(); $row2 = $rsCriteria2->getRow();
@@ -2292,8 +2248,10 @@ class Cases
$appDelegationDuration = G::LoadTranslation("ID_NOT_FINISHED"); $appDelegationDuration = G::LoadTranslation("ID_NOT_FINISHED");
if (!empty($row2["DEL_FINISH_DATE"]) && !empty($row2["DEL_INIT_DATE"])) { $date = empty($row2["DEL_INIT_DATE"]) ? $row2["DEL_DELEGATE_DATE"] : $row2["DEL_INIT_DATE"];
$t = strtotime($row2["DEL_FINISH_DATE"]) - strtotime($row2["DEL_INIT_DATE"]);
if (!empty($row2["DEL_FINISH_DATE"]) && !empty($date)) {
$t = strtotime($row2["DEL_FINISH_DATE"]) - strtotime($date);
$h = $t * (1 / 60) * (1 / 60); $h = $t * (1 / 60) * (1 / 60);
$m = ($h - (int)($h)) * (60 / 1); $m = ($h - (int)($h)) * (60 / 1);
@@ -2314,40 +2272,22 @@ class Cases
$this->getFieldNameByFormatFieldName("DEL_FINISH_DATE") => $arrayAppDelegationDate["DEL_FINISH_DATE"]["dateFormated"], $this->getFieldNameByFormatFieldName("DEL_FINISH_DATE") => $arrayAppDelegationDate["DEL_FINISH_DATE"]["dateFormated"],
$this->getFieldNameByFormatFieldName("DEL_DURATION") => $appDelegationDuration, $this->getFieldNameByFormatFieldName("DEL_DURATION") => $appDelegationDuration,
$this->getFieldNameByFormatFieldName("USR_UID") => $row2["USR_UID"], $this->getFieldNameByFormatFieldName("USR_UID") => $row2["USR_UID"],
$this->getFieldNameByFormatFieldName("USR_USERNAME") => $row2["USR_USERNAME"] . "", $this->getFieldNameByFormatFieldName("USR_USERNAME") => $row2["USR_USERNAME"],
$this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $row2["USR_FIRSTNAME"] . "", $this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $row2["USR_FIRSTNAME"],
$this->getFieldNameByFormatFieldName("USR_LASTNAME") => $row2["USR_LASTNAME"] . "" $this->getFieldNameByFormatFieldName("USR_LASTNAME") => $row2["USR_LASTNAME"]
); );
} }
//Status //Status
$status = ""; $status = "";
//$criteria2 $rsCriteria2 = $case->getTotalAndMinDateForACase($applicationUid, $row["TAS_UID"]);
$criteria2 = new Criteria("workflow");
$criteria2->addAsColumn("CANT", "COUNT(" . AppDelegationPeer::APP_UID . ")");
$criteria2->addAsColumn("FINISH", "MIN(" . AppDelegationPeer::DEL_FINISH_DATE . ")");
$criteria2->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL);
$criteria2->add(AppDelegationPeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL);
$rsCriteria2 = AppDelegationPeer::doSelectRS($criteria2);
$rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria2->next(); $rsCriteria2->next();
$row2 = $rsCriteria2->getRow(); $row2 = $rsCriteria2->getRow();
//$criteria3 $rsCriteria3 = $case->getDelegationFinishDate($applicationUid, $row["TAS_UID"]);
$criteria3 = new Criteria("workflow");
$criteria3->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
$criteria3->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL);
$criteria3->add(AppDelegationPeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL);
$criteria3->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
$rsCriteria3 = AppDelegationPeer::doSelectRS($criteria3);
$rsCriteria3->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria3->next(); $rsCriteria3->next();

View File

@@ -117,7 +117,7 @@ class ProcessMap
$tmpData[5] = ""; $tmpData[5] = "";
$tmpData[6] = $lanes['lan_name']; $tmpData[6] = $lanes['lan_name'];
$tmpData[7] = ""; $tmpData[7] = "";
$tmpData[8] = $lanes['lan_uid']; $tmpData[8] = array_key_exists('lan_uid', $lanes) ? $lanes['lan_uid']: "";
$tmpData[9] = ""; $tmpData[9] = "";
$tmpData[10] = $lanes['bou_container']; $tmpData[10] = $lanes['bou_container'];
@@ -719,7 +719,7 @@ class ProcessMap
if($element['bou_container'] != "bpmnDiagram"){ if($element['bou_container'] != "bpmnDiagram"){
$resRec = $this->getNewPoints($element['bou_element'],$element['bou_container']); $resRec = $this->getNewPoints($element['bou_element'],$element['bou_container']);
} }
if($element['lns_uid'] == $idElement || $element['lan_uid'] == $idElement){ if ($element['lns_uid'] == $idElement || (array_key_exists('lan_uid', $element) ? $element['lan_uid'] == $idElement : false)) {
$result = array($element['bou_x'] + $resRec[0],$element['bou_y'] + $resRec[1]); $result = array($element['bou_x'] + $resRec[0],$element['bou_y'] + $resRec[1]);
} }
} }