Performance improvement in the reassign
- Improvement for the query: SELECT APPLICATION.APP_UID, APPLICATION.APP_NUMBER, APPLICATION.APP_STATUS, APPLICATION.PRO_UID, APPLICATION.APP_CREATE_DATE, APPLICATION.APP_FINISH_DATE, APPLICATION.APP_UPDATE_DATE, APPLICATION.APP_DATA, ad.DEL_INDEX, ad.DEL_PREVIOUS, ad.TAS_UID, ad.USR_UID, ad.DEL_TYPE, ad.DEL_THREAD, ad.DEL_THREAD_STATUS, ad.DEL_PRIORITY, ad.DEL_DELEGATE_DATE, ad.DEL_INIT_DATE, ad.DEL_TASK_DUE_DATE, ad.DEL_FINISH_DATE, ad.DEL_DURATION, ad.DEL_QUEUE_DURATION, ad.DEL_DELAY_DURATION, ad.DEL_STARTED, ad.DEL_FINISHED, ad.DEL_DELAYED, ad.APP_OVERDUE_PERCENTAGE, at.APP_THREAD_INDEX, at.APP_THREAD_PARENT, at.APP_THREAD_STATUS, capp.CON_VALUE AS APP_TITLE, cpro.CON_VALUE AS PRO_TITLE FROM APPLICATION JOIN APP_DELEGATION ad ON (APPLICATION.APP_UID=ad.APP_UID) LEFT JOIN CONTENT capp ON (APPLICATION.APP_UID=capp.CON_ID AND capp.CON_CATEGORY='?' AND capp.CON_LANG='?') LEFT JOIN CONTENT cpro ON (APPLICATION.PRO_UID=cpro.CON_ID AND cpro.CON_CATEGORY='?' AND cpro.CON_LANG='?') JOIN APP_THREAD at ON (ad.APP_UID=at.APP_UID AND ad.DEL_THREAD=at.APP_THREAD_INDEX) WHERE APPLICATION.APP_UID='?'
This commit is contained in:
@@ -2804,7 +2804,7 @@ class Cases
|
||||
* @Author Erik Amaru Ortiz <erik@colosa.com>
|
||||
* @return array
|
||||
*/
|
||||
public function loadCaseInCurrentDelegation($APP_UID)
|
||||
public function loadCaseInCurrentDelegation($APP_UID, $titles = false)
|
||||
{
|
||||
$c = new Criteria('workflow');
|
||||
$c->clearSelectColumns();
|
||||
@@ -2827,17 +2827,21 @@ class Cases
|
||||
$c->addSelectColumn(UsersPeer::USR_UID);
|
||||
$c->addAsColumn('APP_CURRENT_USER', "CONCAT(USERS.USR_LASTNAME, ' ', USERS.USR_FIRSTNAME)");
|
||||
$c->addSelectColumn(ApplicationPeer::APP_STATUS);
|
||||
$c->addAsColumn('APP_TITLE', 'APP_TITLE.CON_VALUE');
|
||||
$c->addAsColumn('APP_PRO_TITLE', 'PRO_TITLE.CON_VALUE');
|
||||
$c->addAsColumn('APP_TAS_TITLE', 'TAS_TITLE.CON_VALUE');
|
||||
if ($titles) {
|
||||
$c->addAsColumn('APP_TITLE', 'APP_TITLE.CON_VALUE');
|
||||
$c->addAsColumn('APP_PRO_TITLE', 'PRO_TITLE.CON_VALUE');
|
||||
$c->addAsColumn('APP_TAS_TITLE', 'TAS_TITLE.CON_VALUE');
|
||||
}
|
||||
//$c->addAsColumn('APP_DEL_PREVIOUS_USER', 'APP_LAST_USER.USR_USERNAME');
|
||||
$c->addAsColumn(
|
||||
'APP_DEL_PREVIOUS_USER',
|
||||
"CONCAT(APP_LAST_USER.USR_LASTNAME, ' ', APP_LAST_USER.USR_FIRSTNAME)");
|
||||
|
||||
$c->addAlias("APP_TITLE", 'CONTENT');
|
||||
$c->addAlias("PRO_TITLE", 'CONTENT');
|
||||
$c->addAlias("TAS_TITLE", 'CONTENT');
|
||||
if ($titles) {
|
||||
$c->addAlias("APP_TITLE", 'CONTENT');
|
||||
$c->addAlias("PRO_TITLE", 'CONTENT');
|
||||
$c->addAlias("TAS_TITLE", 'CONTENT');
|
||||
}
|
||||
$c->addAlias("APP_PREV_DEL", 'APP_DELEGATION');
|
||||
$c->addAlias("APP_LAST_USER", 'USERS');
|
||||
|
||||
@@ -2848,24 +2852,26 @@ class Cases
|
||||
$c->addJoinMC($appThreadConds, Criteria::LEFT_JOIN);
|
||||
$c->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
|
||||
|
||||
$del = DBAdapter::getStringDelimiter();
|
||||
$appTitleConds = array();
|
||||
$appTitleConds[] = array(ApplicationPeer::APP_UID, 'APP_TITLE.CON_ID');
|
||||
$appTitleConds[] = array('APP_TITLE.CON_CATEGORY', $del . 'APP_TITLE' . $del);
|
||||
$appTitleConds[] = array('APP_TITLE.CON_LANG', $del . SYS_LANG . $del);
|
||||
$c->addJoinMC($appTitleConds, Criteria::LEFT_JOIN);
|
||||
if ($titles) {
|
||||
$del = DBAdapter::getStringDelimiter();
|
||||
$appTitleConds = array();
|
||||
$appTitleConds[] = array(ApplicationPeer::APP_UID, 'APP_TITLE.CON_ID');
|
||||
$appTitleConds[] = array('APP_TITLE.CON_CATEGORY', $del . 'APP_TITLE' . $del);
|
||||
$appTitleConds[] = array('APP_TITLE.CON_LANG', $del . SYS_LANG . $del);
|
||||
$c->addJoinMC($appTitleConds, Criteria::LEFT_JOIN);
|
||||
|
||||
$proTitleConds = array();
|
||||
$proTitleConds[] = array(ApplicationPeer::PRO_UID, 'PRO_TITLE.CON_ID');
|
||||
$proTitleConds[] = array('PRO_TITLE.CON_CATEGORY', $del . 'PRO_TITLE' . $del);
|
||||
$proTitleConds[] = array('PRO_TITLE.CON_LANG', $del . SYS_LANG . $del);
|
||||
$c->addJoinMC($proTitleConds, Criteria::LEFT_JOIN);
|
||||
$proTitleConds = array();
|
||||
$proTitleConds[] = array(ApplicationPeer::PRO_UID, 'PRO_TITLE.CON_ID');
|
||||
$proTitleConds[] = array('PRO_TITLE.CON_CATEGORY', $del . 'PRO_TITLE' . $del);
|
||||
$proTitleConds[] = array('PRO_TITLE.CON_LANG', $del . SYS_LANG . $del);
|
||||
$c->addJoinMC($proTitleConds, Criteria::LEFT_JOIN);
|
||||
|
||||
$tasTitleConds = array();
|
||||
$tasTitleConds[] = array(AppDelegationPeer::TAS_UID, 'TAS_TITLE.CON_ID');
|
||||
$tasTitleConds[] = array('TAS_TITLE.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
|
||||
$tasTitleConds[] = array('TAS_TITLE.CON_LANG', $del . SYS_LANG . $del);
|
||||
$c->addJoinMC($tasTitleConds, Criteria::LEFT_JOIN);
|
||||
$tasTitleConds = array();
|
||||
$tasTitleConds[] = array(AppDelegationPeer::TAS_UID, 'TAS_TITLE.CON_ID');
|
||||
$tasTitleConds[] = array('TAS_TITLE.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
|
||||
$tasTitleConds[] = array('TAS_TITLE.CON_LANG', $del . SYS_LANG . $del);
|
||||
$c->addJoinMC($tasTitleConds, Criteria::LEFT_JOIN);
|
||||
}
|
||||
|
||||
$prevConds = array();
|
||||
$prevConds[] = array(ApplicationPeer::APP_UID, 'APP_PREV_DEL.APP_UID');
|
||||
|
||||
Reference in New Issue
Block a user