BUG 0000 new Feature: Report table ver 2.

This commit is contained in:
Erik Amaru Ortiz
2011-06-28 12:53:25 -04:00
parent 07cda245a0
commit 38573084ac
29 changed files with 3910 additions and 312 deletions

View File

@@ -250,9 +250,9 @@ class Process extends BaseProcess {
// $this->pro_title = $aFields['PRO_TITLE'];
// $this->pro_description = $aFields['PRO_DESCRIPTION'];
$lang = defined ( 'SYS_LANG') ? SYS_LANG : 'en';
$c = new Criteria();
$c->clearSelectColumns();
$c->addSelectColumn(ContentPeer::CON_CATEGORY);
@@ -297,16 +297,16 @@ class Process extends BaseProcess {
$oPro->setProParent ( $oPro->getProUid() );
$oPro->save();
}
//Get category Name, by default No category
$aFields['PRO_CATEGORY_LABEL']=G::LoadTranslation("ID_PROCESS_NO_CATEGORY");
if($aFields['PRO_CATEGORY']!=""){
$oProCat = ProcessCategoryPeer::retrieveByPk( $aFields['PRO_CATEGORY'] );
$aFields['PRO_CATEGORY_LABEL']=G::LoadTranslation("ID_PROCESS_NO_CATEGORY");
if($aFields['PRO_CATEGORY']!=""){
$oProCat = ProcessCategoryPeer::retrieveByPk( $aFields['PRO_CATEGORY'] );
if (is_object ($oProCat) && get_class ($oProCat) == 'ProcessCategory' ) {
$aFields['PRO_CATEGORY_LABEL']=$oProCat->getCategoryName();
}
}
}
return $aFields;
}
else {
@@ -319,10 +319,62 @@ class Process extends BaseProcess {
}
function getAll($getAllLang=false) {
function getAll() {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessPeer::PRO_UID );
$oCriteria->addSelectColumn(ProcessPeer::PRO_PARENT );
$oCriteria->addSelectColumn(ProcessPeer::PRO_STATUS );
$oCriteria->addSelectColumn(ProcessPeer::PRO_CATEGORY );
$oCriteria->addSelectColumn(ProcessPeer::PRO_CREATE_DATE );
$oCriteria->addSelectColumn(ProcessPeer::PRO_CREATE_USER );
$oCriteria->addSelectColumn(ProcessPeer::PRO_DEBUG );
$oCriteria->add(ProcessPeer::PRO_UID, '', Criteria::NOT_EQUAL);
$oCriteria->add(ProcessPeer::PRO_STATUS, 'DISABLED', Criteria::NOT_EQUAL);
//execute the query
$oDataset = ProcessPeer::doSelectRS ( $oCriteria );
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$processes = Array();
$uids=array();
while( $oDataset->next() ) {
$processes[] = $oDataset->getRow();
$uids[] = $processes[sizeof($processes)-1]['PRO_UID'];
}
//process details will have the info about the processes
$processesDetails = Array();
//now get the labels for all process, using an array of Uids,
$c = new Criteria('workflow');
//$c->add ( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL );
$c->add ( ContentPeer::CON_LANG, defined('SYS_LANG')?SYS_LANG:'en', Criteria::EQUAL );
$c->add ( ContentPeer::CON_ID, $uids, Criteria::IN );
$dt = ContentPeer::doSelectRS ($c);
$dt->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while( $dt->next() ) {
$row = $dt->getRow();
$processesDetails[$row['CON_ID']] [$row['CON_CATEGORY']] = $row['CON_VALUE'];
}
G::loadClass('configuration');
$oConf = new Configurations;
$oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS','');
foreach( $processes as $i=>$process ) {
$processes[$i]['PRO_TITLE'] = $processes[$i]['PRO_DESCRIPTION'] = '';
if (isset($processesDetails[$process['PRO_UID']]['PRO_TITLE']))
$processes[$i]['PRO_TITLE'] = $processesDetails[$process['PRO_UID']]['PRO_TITLE'];
if (isset($processesDetails[$process['PRO_UID']]))
$processes[$i]['PRO_DESCRIPTION'] = $processesDetails[$process['PRO_UID']]['PRO_DESCRIPTION'];
}
return $processes;
}
/**
@@ -457,7 +509,7 @@ class Process extends BaseProcess {
$oPro = ProcessPeer::retrieveByPk( $ProUid );
return (is_object ($oPro) && get_class ($oPro) == 'Process' );
}
public function existsByProTitle($PRO_TITLE)
{
$oCriteria = new Criteria('workflow');
@@ -469,10 +521,10 @@ class Process extends BaseProcess {
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
return $aRow['PROCESS'] ? true : false;
}
//new functions
function getAllProcessesCount(){
$c = $this->tmpCriteria;
@@ -497,67 +549,61 @@ class Process extends BaseProcess {
$aProcesses = Array();
$categories = Array();
$oCriteria = new Criteria('workflow');
//$oCriteria->addSelectColumn(ProcessPeer::TABLE_NAME . '.*');
$oCriteria->addSelectColumn(ProcessPeer::PRO_UID );
$oCriteria->addSelectColumn(ProcessPeer::PRO_PARENT );
$oCriteria->addSelectColumn(ProcessPeer::PRO_STATUS );
$oCriteria->addSelectColumn(ProcessPeer::PRO_CATEGORY );
//$oCriteria->addSelectColumn(ProcessPeer::PRO_SUB_CATEGORY);
$oCriteria->addSelectColumn(ProcessPeer::PRO_CREATE_DATE );
$oCriteria->addSelectColumn(ProcessPeer::PRO_CREATE_USER );
$oCriteria->addSelectColumn(ProcessPeer::PRO_DEBUG );
//$oCriteria->addSelectColumn(UsersPeer::TABLE_NAME . '.*');
$oCriteria->addSelectColumn(UsersPeer::USR_UID );
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME );
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME );
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME );
//$oCriteria->addSelectColumn(ProcessCategoryPeer::TABLE_NAME . '.*');
$oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_UID );
$oCriteria->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME );
$oCriteria->add(ProcessPeer::PRO_UID, '', Criteria::NOT_EQUAL);
$oCriteria->add(ProcessPeer::PRO_STATUS, 'DISABLED', Criteria::NOT_EQUAL);
if( isset($category) )
$oCriteria->add(ProcessPeer::PRO_CATEGORY, $category, Criteria::EQUAL);
$oCriteria->addJoin(ProcessPeer::PRO_CREATE_USER, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$oCriteria->addJoin(ProcessPeer::PRO_CATEGORY, ProcessCategoryPeer::CATEGORY_UID, Criteria::LEFT_JOIN);
//$oCriteria->addDescendingOrderByColumn(ProcessPeer::PRO_CREATE_DATE);
$this->tmpCriteria = clone $oCriteria;
$this->tmpCriteria = clone $oCriteria;
if($start != '')
$oCriteria->setOffset($start);
if($limit != '' && !isset($category) && !isset($processName))
$oCriteria->setLimit($limit);
//execute a query to obtain numbers, how many cases there are by process
$casesCnt = $this->getCasesCountInAllProcesses();
//execute the query
//execute the query
$oDataset = ProcessPeer::doSelectRS ( $oCriteria );
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$processes = Array();
$uids=array();
while( $oDataset->next() ) {
$processes[] = $oDataset->getRow();
$uids[] = $processes[sizeof($processes)-1]['PRO_UID'];
$uids[] = $processes[sizeof($processes)-1]['PRO_UID'];
}
//process details will have the info about the processes
$processesDetails = Array();
//now get the labels for all process, using an array of Uids,
//now get the labels for all process, using an array of Uids,
$c = new Criteria('workflow');
//$c->add ( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL );
$c->add ( ContentPeer::CON_LANG, defined('SYS_LANG')?SYS_LANG:'en', Criteria::EQUAL );
$c->add ( ContentPeer::CON_ID, $uids, Criteria::IN );
$dt = ContentPeer::doSelectRS ($c);
$dt->setFetchmode(ResultSet::FETCHMODE_ASSOC);
@@ -577,11 +623,11 @@ class Process extends BaseProcess {
// verify if the title is already set on the current language
if ( trim($proTitle) == '') {
// if not, then load the record to generate content for current language
$proData = $this->load($process['PRO_UID']);
$proTitle = $proData['PRO_TITLE'];
$proData = $this->load($process['PRO_UID']);
$proTitle = $proData['PRO_TITLE'];
$proDescription = $proData['PRO_DESCRIPTION'];
}
//filtering by $processName
if( isset($processName) && $processName != '' && stripos($proTitle, $processName) === false){
continue;
@@ -597,13 +643,12 @@ class Process extends BaseProcess {
//get user format from configuration
$userOwner = isset($oConf->aConfig['format'])? $oConf->aConfig['format']: '';
$creationDateMask = isset($oConf->aConfig['dateFormat'])? $oConf->aConfig['dateFormat']: '';
if( $userOwner != '' ){
$userOwner = str_replace('@userName', $process['USR_USERNAME'], $userOwner);
if( $userOwner != '' ) {
$userOwner = str_replace('@userName', $process['USR_USERNAME'], $userOwner);
$userOwner = str_replace('@firstName', $process['USR_FIRSTNAME'], $userOwner);
$userOwner = str_replace('@lastName', $process['USR_LASTNAME'], $userOwner);
$userOwner = str_replace('@lastName', $process['USR_LASTNAME'], $userOwner);
if ( $userOwner == " ( )" ) $userOwner = '-';
}
}
else {
$userOwner = $process['USR_FIRSTNAME'].' '.$process['USR_LASTNAME'];
}
@@ -611,11 +656,11 @@ class Process extends BaseProcess {
//get date format from configuration
if( $creationDateMask != '' ){
list($date, $time) = explode(' ', $process['PRO_CREATE_DATE']);
list($y, $m, $d) = explode('-', $date);
list($h, $i, $s) = explode(':', $time);
list($y, $m, $d) = explode('-', $date);
list($h, $i, $s) = explode(':', $time);
$process['PRO_CREATE_DATE'] = date($creationDateMask, mktime($h, $i, $s, $m, $d, $y));
}
}
$process['PRO_CATEGORY_LABEL'] = trim($process['PRO_CATEGORY']) != ''? $process['CATEGORY_NAME']: G::LoadTranslation('ID_PROCESS_NO_CATEGORY');
$process['PRO_TITLE'] = $proTitle;
@@ -624,18 +669,18 @@ class Process extends BaseProcess {
$process['PRO_DEBUG_LABEL'] = ($process['PRO_DEBUG']=="1")? G::LoadTranslation('ID_ON'): G::LoadTranslation('ID_OFF');
$process['PRO_STATUS_LABEL'] = $process ['PRO_STATUS'] == 'ACTIVE'? G::LoadTranslation ('ID_ACTIVE'): G::LoadTranslation('ID_INACTIVE');
$process['PRO_CREATE_USER_LABEL'] = $userOwner;
$process['CASES_COUNT_TO_DO'] = (isset($casesCnt[$process['PRO_UID']]['TO_DO'])? $casesCnt[$process['PRO_UID']]['TO_DO']: 0);
$process['CASES_COUNT_TO_DO'] = (isset($casesCnt[$process['PRO_UID']]['TO_DO'])? $casesCnt[$process['PRO_UID']]['TO_DO']: 0);
$process['CASES_COUNT_COMPLETED'] = (isset($casesCnt[$process['PRO_UID']]['COMPLETED'])? $casesCnt[$process['PRO_UID']]['COMPLETED']: 0);
$process['CASES_COUNT_DRAFT'] = (isset($casesCnt[$process['PRO_UID']]['DRAFT'])? $casesCnt[$process['PRO_UID']]['DRAFT']: 0);
$process['CASES_COUNT_DRAFT'] = (isset($casesCnt[$process['PRO_UID']]['DRAFT'])? $casesCnt[$process['PRO_UID']]['DRAFT']: 0);
$process['CASES_COUNT_CANCELLED'] = (isset($casesCnt[$process['PRO_UID']]['CANCELLED'])? $casesCnt[$process['PRO_UID']]['CANCELLED']: 0);
$process['CASES_COUNT'] = $casesCountTotal;
unset( $process['PRO_CREATE_USER']);
$aProcesses[] = $process;
}
usort($aProcesses, 'ordProcessByProTitle');
return $aProcesses;
}
@@ -663,11 +708,11 @@ class Process extends BaseProcess {
}
return $aProcesses;
}
function getAllProcessesByCategory(){
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$oCriteria->addSelectColumn('COUNT(*) AS CNT');
$oCriteria->addSelectColumn('COUNT(*) AS CNT');
$oCriteria->addGroupByColumn(ProcessPeer::PRO_CATEGORY);
$oDataSet = ProcessPeer::doSelectRS($oCriteria);
$oDataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
@@ -678,20 +723,20 @@ class Process extends BaseProcess {
}
return $aProc;
}
} // Process
function ordProcessByProTitle($a, $b){
if ($a['PRO_TITLE']>$b['PRO_TITLE']) {
return 1;
} elseif ($a['PRO_TITLE']<$b['PRO_TITLE']) {
return -1;
} else {
return 0;
return 0;
}
}