. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ require_once 'classes/model/Application.php'; require_once 'classes/model/Users.php'; require_once 'classes/model/AppThread.php'; require_once 'classes/model/AppDelay.php'; require_once 'classes/model/Process.php'; require_once 'classes/model/Task.php'; require_once ("classes/model/AppCacheView.php"); require_once ("classes/model/AppDelegation.php"); require_once ("classes/model/AdditionalTables.php"); require_once ("classes/model/AppDelay.php"); G::LoadClass( 'case' ); $actionAjax = isset( $_REQUEST['actionAjax'] ) ? $_REQUEST['actionAjax'] : null; if ($actionAjax == "processListExtJs") { $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : null; $categoryUid = isset( $_REQUEST['CATEGORY_UID'] ) ? $_REQUEST['CATEGORY_UID'] : null; $userUid = (isset( $_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '') ? $_SESSION['USER_LOGGED'] : null; global $oAppCache; $oAppCache = new AppCacheView(); $processes = Array (); $processes[] = array ('',G::LoadTranslation( 'ID_ALL_PROCESS' ) ); //get the list based in the action provided switch ($action) { case 'draft': $cProcess = $oAppCache->getDraftListCriteria( $userUid ); //fast enough break; case 'sent': $cProcess = $oAppCache->getSentListProcessCriteria( $userUid ); // fast enough break; case 'simple_search': case 'search': //in search action, the query to obtain all process is too slow, so we need to query directly to //process and content tables, and for that reason we need the current language in AppCacheView. G::loadClass( 'configuration' ); $oConf = new Configurations(); $oConf->loadConfig( $x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '' ); $appCacheViewEngine = $oConf->aConfig; $lang = isset( $appCacheViewEngine['LANG'] ) ? $appCacheViewEngine['LANG'] : 'en'; $cProcess = new Criteria( 'workflow' ); $cProcess->clearSelectColumns(); $cProcess->addSelectColumn( ProcessPeer::PRO_UID ); $cProcess->addSelectColumn( ContentPeer::CON_VALUE ); if ($categoryUid) { $cProcess->add( ProcessPeer::PRO_CATEGORY, $categoryUid ); } $del = DBAdapter::getStringDelimiter(); $conds = array (); $conds[] = array (ProcessPeer::PRO_UID,ContentPeer::CON_ID); $conds[] = array (ContentPeer::CON_CATEGORY,$del . 'PRO_TITLE' . $del); $conds[] = array (ContentPeer::CON_LANG,$del . $lang . $del); $cProcess->addJoinMC( $conds, Criteria::LEFT_JOIN ); $cProcess->add( ProcessPeer::PRO_STATUS, 'ACTIVE' ); $oDataset = ProcessPeer::doSelectRS( $cProcess ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $processes[] = array ($aRow['PRO_UID'],$aRow['CON_VALUE'] ); $oDataset->next(); } return print G::json_encode( $processes ); break; case 'unassigned': $cProcess = $oAppCache->getUnassignedListCriteria( $userUid ); break; case 'paused': $cProcess = $oAppCache->getPausedListCriteria( $userUid ); break; case 'to_revise': $cProcess = $oAppCache->getToReviseListCriteria( $userUid ); break; case 'to_reassign': $cProcess = $oAppCache->getToReassignListCriteria(); $cProcess->addAscendingOrderByColumn( AppCacheViewPeer::APP_PRO_TITLE ); break; case 'gral': $cProcess = $oAppCache->getGeneralListCriteria(); $cProcess->addAscendingOrderByColumn( AppCacheViewPeer::APP_PRO_TITLE ); break; case 'todo': default: $cProcess = $oAppCache->getToDoListCriteria( $userUid ); //fast enough break; } //get the processes for this user in this action $cProcess->clearSelectColumns(); $cProcess->addSelectColumn( AppCacheViewPeer::PRO_UID ); $cProcess->addSelectColumn( AppCacheViewPeer::APP_PRO_TITLE ); $cProcess->setDistinct( AppCacheViewPeer::PRO_UID ); if ($categoryUid) { $cProcess->addAlias( 'CP', 'PROCESS' ); $cProcess->add( 'CP.PRO_CATEGORY', $categoryUid, Criteria::EQUAL ); $cProcess->addJoin( AppCacheViewPeer::PRO_UID, 'CP.PRO_UID', Criteria::LEFT_JOIN ); $cProcess->addAsColumn( 'CATEGORY_UID', 'CP.PRO_CATEGORY' ); } $oDataset = AppCacheViewPeer::doSelectRS( $cProcess ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $processes[] = array ($aRow['PRO_UID'],$aRow['APP_PRO_TITLE'] ); $oDataset->next(); } return print G::json_encode( $processes ); } if ($actionAjax == "getUsersToReassign") { $_SESSION['TASK'] = $_REQUEST['TAS_UID']; $case = new Cases(); $result->data = $case->getUsersToReassign( $_SESSION['TASK'], $_SESSION['USER_LOGGED'] ); print G::json_encode( $result ); } if ($actionAjax == 'reassignCase') { $APP_UID = $_REQUEST["APP_UID"]; $DEL_INDEX = $_REQUEST["DEL_INDEX"]; $_SESSION['APPLICATION'] = $APP_UID; $_SESSION['INDEX'] = $DEL_INDEX; $cases = new Cases(); $user = new Users(); $app = new Application(); $TO_USR_UID = $_POST['USR_UID']; try { $cases->reassignCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $TO_USR_UID ); $caseData = $app->load( $_SESSION['APPLICATION'] ); $userData = $user->load( $TO_USR_UID ); //print_r($caseData); $data['APP_NUMBER'] = $caseData['APP_NUMBER']; $data['USER'] = $userData['USR_LASTNAME'] . ' ' . $userData['USR_FIRSTNAME']; //TODO change with the farmated username from environment conf $result->status = 0; $result->msg = G::LoadTranslation( 'ID_REASSIGNMENT_SUCCESS', SYS_LANG, $data ); } catch (Exception $e) { $result->status = 1; $result->msg = $e->getMessage(); } print G::json_encode( $result ); } if ($actionAjax == 'showHistoryMessage') { ?> AddContent( 'xmlform', 'xmlform', 'cases/cases_MessagesView', '', $oCase->getHistoryMessagesTrackerView( $_POST['APP_UID'], $_POST['APP_MSG_UID'] ) ); ?> AddContent( 'view', 'cases/cases_DynaformHistory' ); G::RenderPage( 'publish', 'raw' ); } if ($actionAjax == 'dynaformChangeLogViewHistory') { ?> AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' ); ?> loadCase( $_SESSION['APPLICATION'] ); $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = ''; $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = ''; $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#'; $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'return false;'; $_SESSION['DYN_UID_PRINT'] = $_POST['DYN_UID']; $G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_POST['DYN_UID'], '', $Fields['APP_DATA'], '', '', 'view' ); ?>