Files
luos/workflow/engine/methods/cases/proxyCasesList.php
Erik Amaru Ortiz 4bbf5a48e6 BUG 8099 "La opción status en Reassign, se vi..." SOLVED
- the translation was being overwritten, but it is fixed now
2011-11-29 12:55:02 -04:00

648 lines
29 KiB
PHP
Executable File

<?php
// getting the extJs parameters
$callback = isset($_POST['callback']) ? $_POST['callback'] : 'stcCallback1001';
$dir = isset($_POST['dir']) ? $_POST['dir'] : 'DESC';
$sort = isset($_POST['sort']) ? $_POST['sort'] : '';
$start = isset($_POST['start']) ? $_POST['start'] : '0';
$limit = isset($_POST['limit']) ? $_POST['limit'] : '25';
$filter = isset($_POST['filter']) ? $_POST['filter'] : '';
$search = isset($_POST['search']) ? $_POST['search'] : '';
$process = isset($_POST['process']) ? $_POST['process'] : '';
$user = isset($_POST['user']) ? $_POST['user'] : '';
$status = isset($_POST['status']) ? strtoupper($_POST['status']) : '';
$action = isset($_GET['action']) ? $_GET['action'] : (isset($_POST['action']) ? $_POST['action'] : 'todo');
$type = isset($_GET['type']) ? $_GET['type'] : (isset($_POST['type']) ? $_POST['type'] : 'extjs');
$user = isset($_POST['user']) ? $_POST['user'] : '';
$dateFrom = isset($_POST['dateFrom'])? substr($_POST['dateFrom'],0,10) : '';
$dateTo = isset($_POST['dateTo']) ? substr($_POST['dateTo'],0,10) : '';
try {
G::LoadClass("BasePeer" );
G::LoadClass ( 'configuration' );
require_once ( "classes/model/AppCacheView.php" );
require_once ( "classes/model/AppDelegation.php" );
require_once ( "classes/model/AdditionalTables.php" );
require_once ( "classes/model/AppDelay.php" );
require_once ( "classes/model/Fields.php" );
$userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null;
$oAppCache = new AppCacheView();
//get data configuration
$conf = new Configurations();
$confCasesList = $conf->getConfiguration('casesList',($action=='search'||$action=='simple_search')?'sent':$action );
// var_dump($confCasesList);
$oAppCache->confCasesList = $confCasesList;
// get the action based list
switch ( $action ) {
case 'draft' :
$Criteria = $oAppCache->getDraftListCriteria($userUid);
$CriteriaCount = $oAppCache->getDraftCountCriteria($userUid);
break;
case 'sent' :
$Criteria = $oAppCache->getSentListCriteria($userUid);
$CriteriaCount = $oAppCache->getSentCountCriteria($userUid);
// var_dump($Criteria);
break;
case 'selfservice' :
case 'unassigned':
$Criteria = $oAppCache->getUnassignedListCriteria($userUid);
$CriteriaCount = $oAppCache->getUnassignedCountCriteria($userUid);
break;
case 'paused' :
$Criteria = $oAppCache->getPausedListCriteria($userUid);
$CriteriaCount = $oAppCache->getPausedCountCriteria($userUid);
break;
case 'completed' :
$Criteria = $oAppCache->getCompletedListCriteria($userUid);
$CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid);
break;
case 'cancelled' :
$Criteria = $oAppCache->getCancelledListCriteria($userUid);
$CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid);
break;
case 'search' :
$Criteria = $oAppCache->getSearchListCriteria();
$CriteriaCount = $oAppCache->getSearchCountCriteria();
break;
case 'simple_search' :
$Criteria = $oAppCache->getSimpleSearchListCriteria();
$CriteriaCount = $oAppCache->getSimpleSearchCountCriteria();
break;
case 'to_revise' :
$Criteria = $oAppCache->getToReviseListCriteria($userUid);
$CriteriaCount = $oAppCache->getToReviseCountCriteria($userUid);
break;
case 'to_reassign' :
$Criteria = $oAppCache->getToReassignListCriteria();
$CriteriaCount = $oAppCache->getToReassignCountCriteria();
break;
case 'all' :
$Criteria = $oAppCache->getAllCasesListCriteria($userUid);
$CriteriaCount = $oAppCache->getAllCasesCountCriteria($userUid);
break;
// general criteria probably will be deprecated
case 'gral' :
$Criteria = $oAppCache->getGeneralListCriteria();
$CriteriaCount = $oAppCache->getGeneralCountCriteria();
break;
case 'todo' :
default:
$Criteria = $oAppCache->getToDoListCriteria($userUid);
$CriteriaCount = $oAppCache->getToDoCountCriteria($userUid);
break;
}
if ( !is_array($confCasesList) ) {
$rows = getDefaultFields( $action );
$result = genericJsonResponse( '', array(), $rows , 20, '' );
//$conf->saveObject($result,'casesList',$action,'','','');
}
// add the process filter
if ( $process != '' ) {
$Criteria->add (AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL );
$CriteriaCount->add (AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL );
}
// add the user filter
if ( $user != '' ) {
$Criteria->add (AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
$CriteriaCount->add (AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
}
if ( $status != '' ) {
$Criteria->add (AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
$CriteriaCount->add (AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
}
if ( $dateFrom != '' ) {
if( $dateTo != '' ){
$Criteria->add(
$Criteria->getNewCriterion(
AppCacheViewPeer::DEL_DELEGATE_DATE,
$dateFrom, Criteria::GREATER_EQUAL
)->addAnd($Criteria->getNewCriterion(
AppCacheViewPeer::DEL_DELEGATE_DATE,
$dateTo, Criteria::LESS_EQUAL
))
);
$CriteriaCount->add(
$CriteriaCount->getNewCriterion(
AppCacheViewPeer::DEL_DELEGATE_DATE,
$dateFrom, Criteria::GREATER_EQUAL
)->addAnd($Criteria->getNewCriterion(
AppCacheViewPeer::DEL_DELEGATE_DATE,
$dateTo, Criteria::LESS_EQUAL
))
);
} else {
$Criteria->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL );
$CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL );
}
} else if ( $dateTo != '' ) {
$Criteria->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
$CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
}
//add the filter
if ( $filter != '' ) {
switch ( $filter ) {
case 'read' :
$Criteria->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL);
$CriteriaCount->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL);
break;
case 'unread' :
$Criteria->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
$CriteriaCount->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
break;
case 'started' :
$Criteria->add (AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
$CriteriaCount->add (AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
break;
case 'completed' :
$Criteria->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
$CriteriaCount->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
break;
}
}
//add the search filter
if ( $search != '' ) {
$defaultFields = $oAppCache->getDefaultFields();
$oTmpCriteria = '';
// if there is PMTABLE for this case list:
if ( !empty($oAppCache->confCasesList) && isset($oAppCache->confCasesList['PMTable']) && trim($oAppCache->confCasesList['PMTable'])!='' ) {
// getting the table name
$oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
$tableName = $oAdditionalTables->getAddTabName();
$oNewCriteria = new Criteria( 'workflow' );
$counter = 0;
foreach($oAppCache->confCasesList['second']['data'] as $fieldData){
if ( !in_array($fieldData['name'],$defaultFields) ){
$fieldName = $tableName.'.'.$fieldData['name'];
if ( $counter == 0 ) {
$oTmpCriteria = $oNewCriteria->getNewCriterion ( $fieldName, '%' . $search . '%', Criteria::LIKE );
} else {
$oTmpCriteria = $oNewCriteria->getNewCriterion ( $fieldName, '%' . $search . '%', Criteria::LIKE )->addOr($oTmpCriteria);
}
$counter++;
}
}
//add the default and hidden DEL_INIT_DATE
}
// the criteria adds new fields if there are defined PM Table Fields in the cases list
if ($oTmpCriteria!='') {
$Criteria->add(
$Criteria->getNewCriterion(
AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
)->addOr($Criteria->getNewCriterion(
AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
)->addOr($Criteria->getNewCriterion(
AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
)->addOr($oTmpCriteria))
));
} else {
$Criteria->add(
$Criteria->getNewCriterion(
AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
)->addOr($Criteria->getNewCriterion(
AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
)->addOr($Criteria->getNewCriterion(
AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
))
));
}
// the count query needs to be the normal criteria query if there are defined PM Table Fields in the cases list
if ($oTmpCriteria!='') {
$CriteriaCount = $Criteria;
} else {
$CriteriaCount->add(
$CriteriaCount->getNewCriterion(
AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
)->addOr($CriteriaCount->getNewCriterion(
AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
)->addOr($CriteriaCount->getNewCriterion(
AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
))
));
}
}
//here we count how many records exists for this criteria.
//BUT there are some special cases, and if we dont optimize them the server will crash.
$doCountAlreadyExecuted = false;
//case 1. when the SEARCH action is selected and none filter, search criteria is defined,
//we need to count using the table APPLICATION, because APP_CACHE_VIEW takes 3 seconds
if ( $action == 'search' && $filter == '' && $search == '' && $process == '' && $status == '' && $dateFrom == '' && $dateTo == '') {
$totalCount = $oAppCache->getSearchAllCount();
$doCountAlreadyExecuted = true;
}
if ( $doCountAlreadyExecuted == false ) {
// in the case of reassign the distinct attribute shows a diferent count result comparing to the
// original list
if ($action == 'to_reassign' || $action == 'todo'){
$distinct = false;
} else{
$distinct = true;
}
// first check if there is a PMTable defined within the list,
// the issue that brokes the normal criteria query seems to be fixed
if (isset($oAppCache->confCasesList['PMTable']) && !empty($oAppCache->confCasesList['PMTable'])) {
// then
$oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
$tableName = $oAdditionalTables->getAddTabName();
$tableName = strtolower($tableName);
$tableNameArray = explode('_',$tableName);
foreach ($tableNameArray as $item){
$newTableName[] = ucfirst($item);
}
$tableName = implode('',$newTableName);
// so the pm table class can be invoqued from the pm table model clases
if (!class_exists($tableName)){
require_once(PATH_DB.SYS_SYS.PATH_SEP."classes".PATH_SEP.$tableName.".php");
}
}
$totalCount = AppCacheViewPeer::doCount( $CriteriaCount, $distinct );
}
//add sortable options
if ( $sort != '' ) {
if ( $dir == 'DESC' )
$Criteria->addDescendingOrderByColumn( $sort );
else
$Criteria->addAscendingOrderByColumn( $sort );
}
//limit the results according the interface
$Criteria->setLimit( $limit );
$Criteria->setOffset( $start );
/*
// this is the optimal way or query to render the cases search list
// fixing the bug related to the wrong data displayed in the list
if ( $action == 'search' ) {
$oDatasetIndex = AppCacheViewPeer::doSelectRS( $Criteria );
$oDatasetIndex->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDatasetIndex->next();
// a list of MAX_DEL_INDEXES is required in order to validate the right row
while($aRow = $oDatasetIndex->getRow()){
$maxDelIndexList[] = $aRow['MAX_DEL_INDEX'];
$oDatasetIndex->next();
}
// adding the validation condition in order to get the right row using the group by sentence
$Criteria->add(AppCacheViewPeer::DEL_INDEX, $maxDelIndexList, Criteria::IN );
//
$params = array ( $maxDelIndexList );
}
*/
//execute the query
$oDataset = AppCacheViewPeer::doSelectRS($Criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$result = array();
$result['totalCount'] = $totalCount;
$rows = array();
$aPriorities = array('1'=>'VL', '2'=>'L', '3'=>'N', '4'=>'H', '5'=>'VH');
$index = $start;
while($aRow = $oDataset->getRow()){
//$aRow = $oAppCache->replaceRowUserData($aRow);
/* For participated cases, we want the last step in the case, not only
* the last step this user participated. To do that we get every case
* information again for the last step. (This could be solved by a subquery,
* but Propel might not support it and subqueries can be slower for larger
* datasets).
*/
if ($action == 'sent' || $action == 'search') {
$maxCriteria = new Criteria('workflow');
$maxCriteria->add(AppCacheViewPeer::APP_UID, $aRow['APP_UID'], Criteria::EQUAL);
$maxCriteria->addDescendingOrderByColumn(AppCacheViewPeer::DEL_INDEX);
$maxCriteria->setLimit(1);
$maxDataset = AppCacheViewPeer::doSelectRS( $maxCriteria );
$maxDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$maxDataset->next();
$newData = $maxDataset->getRow();
foreach ($aRow as $col => $value) {
if (array_key_exists($col, $newData))
$aRow[$col] = $newData[$col];
}
$maxDataset->close();
}
if (!isset($aRow['APP_CURRENT_USER']))
$aRow['APP_CURRENT_USER'] = "[Unassigned]";
// replacing the status data with their respective translation
if( isset($aRow['APP_STATUS']) ){
$aRow['APP_STATUS'] = G::LoadTranslation("ID_{$aRow['APP_STATUS']}");
}
// replacing the priority data with their respective translation
if( isset($aRow['DEL_PRIORITY']) ){
$aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}");
}
$rows[] = $aRow;
$oDataset->next();
}
$result['data'] = $rows;
//print the result in json format
print G::json_encode( $result ) ;
}
catch ( Exception $e ) {
$msg = array ( 'error' => $e->getMessage() );
print G::json_encode( $msg ) ;
}
//TODO: Encapsulates these and another default generation functions inside a class
/**
* generate all the default fields
* @return Array $fields
*/
function setDefaultFields() {
$fields = array();
$fields['APP_NUMBER'] = array( 'name' => 'APP_NUMBER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_NUMBER') , 'width' => 40, 'align' => 'left');
$fields['APP_UID'] = array( 'name' => 'APP_UID' , 'fieldType' => 'key', 'label' => G::loadTranslation('ID_CASESLIST_APP_UID'), 'width' => 80, 'align' => 'left');
$fields['DEL_INDEX'] = array( 'name' => 'DEL_INDEX' , 'fieldType' => 'key' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_INDEX') , 'width' => 50, 'align' => 'left');
$fields['TAS_UID'] = array( 'name' => 'TAS_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_TAS_UID') , 'width' => 80, 'align' => 'left');
$fields['USR_UID'] = array( 'name' => 'USR_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_USR_UID') , 'width' => 80, 'align' => 'left', 'hidden' => true);
$fields['PREVIOUS_USR_UID'] = array( 'name' => 'PREVIOUS_USR_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_PREVIOUS_USR_UID') , 'width' => 80, 'align' => 'left', 'hidden' => true);
$fields['APP_TITLE'] = array( 'name' => 'APP_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TITLE') , 'width' => 140, 'align' => 'left');
$fields['APP_PRO_TITLE'] = array( 'name' => 'APP_PRO_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_PRO_TITLE') , 'width' => 140, 'align' => 'left');
$fields['APP_TAS_TITLE'] = array( 'name' => 'APP_TAS_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TAS_TITLE') , 'width' => 140, 'align' => 'left');
$fields['APP_DEL_PREVIOUS_USER'] = array( 'name' => 'APP_DEL_PREVIOUS_USER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DEL_PREVIOUS_USER') , 'width' => 120, 'align' => 'left');
$fields['APP_CURRENT_USER'] = array( 'name' => 'APP_CURRENT_USER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_CURRENT_USER') , 'width' => 120, 'align' => 'left');
$fields['DEL_TASK_DUE_DATE'] = array( 'name' => 'DEL_TASK_DUE_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_TASK_DUE_DATE') , 'width' => 100, 'align' => 'left');
$fields['APP_UPDATE_DATE'] = array( 'name' => 'APP_UPDATE_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_UPDATE_DATE') , 'width' => 100, 'align' => 'left');
$fields['DEL_PRIORITY'] = array( 'name' => 'DEL_PRIORITY' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_PRIORITY') , 'width' => 80, 'align' => 'left');
$fields['APP_STATUS'] = array( 'name' => 'APP_STATUS' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_STATUS') , 'width' => 80, 'align' => 'left');
$fields['APP_FINISH_DATE'] = array( 'name' => 'APP_FINISH_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_FINISH_DATE') , 'width' => 100, 'align' => 'left');
$fields['APP_DELAY_UID'] = array( 'name' => 'APP_DELAY_UID' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DELAY_UID') , 'width' => 100, 'align' => 'left');
$fields['APP_THREAD_INDEX'] = array( 'name' => 'APP_THREAD_INDEX' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_THREAD_INDEX') , 'width' => 100, 'align' => 'left');
$fields['APP_DEL_INDEX'] = array( 'name' => 'APP_DEL_INDEX' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DEL_INDEX') , 'width' => 100, 'align' => 'left');
$fields['APP_TYPE'] = array( 'name' => 'APP_TYPE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TYPE') , 'width' => 100, 'align' => 'left');
$fields['APP_DELEGATION_USER'] = array( 'name' => 'APP_DELEGATION_USER' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DELEGATION_USER') , 'width' => 100, 'align' => 'left');
$fields['APP_ENABLE_ACTION_USER'] = array( 'name' => 'APP_ENABLE_ACTION_USER' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_ENABLE_ACTION_USER') , 'width' => 100, 'align' => 'left');
$fields['APP_ENABLE_ACTION_DATE'] = array( 'name' => 'APP_ENABLE_ACTION_DATE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_AAPP_ENABLE_ACTION_DATE') , 'width' => 100, 'align' => 'left');
$fields['APP_DISABLE_ACTION_USER'] = array( 'name' => 'APP_DISABLE_ACTION_USER', 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DISABLE_ACTION_USER') , 'width' => 100, 'align' => 'left');
$fields['APP_DISABLE_ACTION_DATE'] = array( 'name' => 'APP_DISABLE_ACTION_DATE', 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DISABLE_ACTION_DATE') , 'width' => 100, 'align' => 'left');
$fields['APP_AUTOMATIC_DISABLED_DATE'] = array( 'name' => 'APP_AUTOMATIC_DISABLED_DATE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_AUTOMATIC_DISABLED_DATE') , 'width' => 100, 'align' => 'left');
return $fields;
}
/**
* this function return the default fields for a default case list
* @param $action
* @return an array with the default fields for an specific case list (action)
*/
function getDefaultFields ( $action ) {
$rows = array();
switch ( $action ) {
case 'todo' : // #, Case, task, process, sent by, due date, Last Modify, Priority
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['DEL_TASK_DUE_DATE'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['DEL_PRIORITY'];
break;
case 'draft' : //#, Case, task, process, due date, Last Modify, Priority },
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['DEL_TASK_DUE_DATE'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['DEL_PRIORITY'];
break;
case 'sent' : // #, Case, task, process, current user, sent by, Last Modify, Status
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_CURRENT_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['APP_STATUS'];
break;
case 'unassigned' : //#, Case, task, process, completed by user, finish date
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
break;
case 'paused' : //#, Case, task, process, sent by
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['APP_THREAD_INDEX'];
$rows[] = $fields['APP_DEL_INDEX'];
break;
case 'completed' : //#, Case, task, process, completed by user, finish date
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
break;
case 'cancelled' : //#, Case, task, process, due date, Last Modify
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
break;
case 'to_revise' : //#, Case, task, process, due date, Last Modify
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_CURRENT_USER'];
$rows[] = $fields['DEL_PRIORITY'];
$rows[] = $fields['APP_STATUS'];
break;
case 'to_reassign' : //#, Case, task, process, due date, Last Modify
$fields = setDefaultFields();
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['TAS_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_UID'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_CURRENT_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['APP_STATUS'];
break;
case 'all' : //#, Case, task, process, due date, Last Modify
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_CURRENT_USER'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['APP_STATUS'];
break;
case 'gral' : //#, Case, task, process, due date, Last Modify
$fields = setDefaultFields();
$rows[] = $fields['APP_UID'];
$rows[] = $fields['DEL_INDEX'];
$rows[] = $fields['USR_UID'];
$rows[] = $fields['PREVIOUS_USR_UID'];
$rows[] = $fields['APP_NUMBER'];
$rows[] = $fields['APP_TITLE'];
$rows[] = $fields['APP_PRO_TITLE'];
$rows[] = $fields['APP_TAS_TITLE'];
$rows[] = $fields['APP_CURRENT_USER'];
$rows[] = $fields['APP_DEL_PREVIOUS_USER'];
$rows[] = $fields['APP_UPDATE_DATE'];
$rows[] = $fields['APP_STATUS'];
break;
}
return $rows;
}
/**
* set the generic Json Response, using two array for the grid stores and a string for the pmtable name
* @param string $pmtable
* @param array $first
* @param array $second
* @return $response a json string
*/
function genericJsonResponse($pmtable, $first, $second, $rowsperpage, $dateFormat ) {
$firstGrid['totalCount'] = count($first);
$firstGrid['data'] = $first;
$secondGrid['totalCount'] = count($second);
$secondGrid['data'] = $second;
$result = array();
$result['first'] = $firstGrid;
$result['second'] = $secondGrid;
$result['PMTable'] = isset($pmtable) ? $pmtable : '';
$result['rowsperpage'] = isset($rowsperpage) ? $rowsperpage : 20;
$result['dateformat'] = isset($dateFormat) && $dateFormat != '' ? $dateFormat : 'M d, Y';
return $result;
}
/**
*
* @param String $itemKey
* @param array $fields
* @return Boolean
*/
function removeItem($itemKey,$fields) {
$removedField = false;
for ($i=0;$i<count($fields);$i++){
if ($fields[$i]['name']==$itemKey){
unset($fields[$i]);
$removedField = true;
}
}
$fields = array_values($fields);
//$fields = calculateGridIndex( $fields );
return ( $fields );
}
/**
*
* @param Array $fields
* @return Array
*
*/
function calculateGridIndex( $fields ) {
for ( $i=0;$i<count( $fields );$i++ ) {
$fields[$i]['gridIndex']=$i+1;
}
return ( $fields );
}