. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ /** * Cases list (Refactored) * By Erik A. O. */ /* Permissions */ if (($RBAC_Response = $RBAC->userCanAccess("PM_CASES"))!=1) return $RBAC_Response; /* Includes */ G::LoadClass('case'); G::LoadClass('configuration'); // $_GET['l'] has the type of cases list like todo,pause,cancel, all $conf = new Configurations(); if (!isset($_GET['l'])) { $confCasesList = $conf->loadObject('ProcessMaker','cases_List','',$_SESSION['USER_LOGGED'],''); if (is_array($confCasesList)) { $sTypeList = $confCasesList['sTypeList']; } else { $sTypeList = 'to_do'; } } else { $sTypeList = $_GET['l']; $confCasesList=array('sTypeList'=>$sTypeList); $conf->saveObject($confCasesList,'ProcessMaker','cases_List','',$_SESSION['USER_LOGGED'],''); } $sUIDUserLogged = $_SESSION['USER_LOGGED']; $_SESSION['CASES_MENU_OPTION'] = $sTypeList; $oCases = new Cases(); /** here we verify if there is a any case with a unpause on this day*/ if( $sTypeList === 'to_do' or $sTypeList === 'draft' or $sTypeList === 'paused') { $oCases->ThrowUnpauseDaemon(date('Y-m-d')); } /* * * Prepare the addtional filters before to show * By Erik */ $aAdditionalFilter = Array(); if( isset($_GET['PROCESS_UID']) and $_GET['PROCESS_UID'] != "0" && $_GET['PROCESS_UID'] != ""){ $PRO_UID = $_GET['PROCESS_UID']; $aAdditionalFilter['PRO_UID'] = $PRO_UID; } else { $PRO_UID = "0"; } if( isset($_GET['READ']) and $_GET['READ'] == "1" ){ $aAdditionalFilter['READ'] = $_GET['READ']; } if( isset($_GET['UNREAD']) and $_GET['UNREAD'] == "1" ){ $aAdditionalFilter['UNREAD'] = $_GET['UNREAD']; } if( isset($_GET['APP_STATUS_FILTER']) and $_GET['APP_STATUS_FILTER'] != "ALL" ){ $aAdditionalFilter['APP_STATUS_FILTER'] = $_GET['APP_STATUS_FILTER']; } if( isset($_GET['MINE']) and $_GET['MINE'] == "1" ){ $aAdditionalFilter['MINE'] = $_GET['MINE']; } switch ( $sTypeList ) { case 'to_do' : if ( defined( 'ENABLE_CASE_LIST_OPTIMIZATION' ) ) { $aCriteria = $oCases->prepareCriteriaForToDo($sUIDUserLogged); $xmlfile = 'cases/cases_ListTodoNew'; } else list($aCriteria, $xmlfile) = $oCases->getConditionCasesList( $sTypeList, $sUIDUserLogged, true, $aAdditionalFilter); break; default : list($aCriteria, $xmlfile) = $oCases->getConditionCasesList( $sTypeList, $sUIDUserLogged, true, $aAdditionalFilter); } /* $rs = ApplicationPeer::doSelectRS($aCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $aRows1 = Array(); while($rs->next()) { $aRows1[] = $rs->getRow(); } g::pr($aRows1);die;*/ /* GET , POST & $_SESSION Vars */ if( !isset($_GET['PROCESS_UID']) ) { $oCase = new Cases(); $rs = ApplicationPeer::doSelectRS($aCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $aProcess = Array(); while($rs->next()) { $aRow = $rs->getRow(); //g::pr($aRow); die; if( !InAssocArray($aRow, 'PRO_UID', $aRow['PRO_UID']) ){ array_push($aProcess, Array('PRO_UID'=>$aRow['PRO_UID'], 'PRO_TITLE'=>$aRow['APP_PRO_TITLE'])); } } $_DBArray['_PROCESSES'] = array_merge(Array(Array('PRO_UID'=>'char', 'PRO_TITLE'=>'char')), $aProcess); $_SESSION['_DBArray'] = $_DBArray; } else { $_DBArray = $_SESSION['_DBArray']; } /* Render page */ $G_PUBLISH = new Publisher; $G_PUBLISH->ROWS_PER_PAGE = 12; if ($sTypeList == 'to_reassign') { $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_ReassignBy', '', array('REASSIGN_BY' => 1)); } $aData = Array( 'PROCESS_FILTER'=>$PRO_UID, 'APP_STATUS_FILTER'=>(isset($_GET['APP_STATUS_FILTER'])?$_GET['APP_STATUS_FILTER']:'0') ); $G_PUBLISH->AddContent('propeltable', 'paged-table', $xmlfile, $aCriteria, $aData); G::RenderPage('publish', 'blank'); function InAssocArray($a, $k, $v){ foreach($a as $item){ if( isset($item[$k]) && $v == $item[$k]) return true; } return false; } ?>