824 lines
35 KiB
PHP
824 lines
35 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Report - Report
|
|
*/
|
|
class Report
|
|
{
|
|
|
|
/**
|
|
* This function does a sql statment to a report
|
|
*
|
|
*
|
|
* @name generatedReport1
|
|
*
|
|
* param
|
|
* @return object
|
|
*/
|
|
public function generatedReport1()
|
|
{
|
|
$this->reportsPatch();
|
|
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addSelectColumn(ProcessPeer::PRO_TITLE);
|
|
$oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("TOTALDUR", "SUM(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("PROMEDIO", "AVG(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addJoin(AppDelegationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
|
|
$oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addGroupByColumn(ProcessPeer::PRO_TITLE);
|
|
|
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
$aProcess[] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$oCriteria = new Criteria('workflow');
|
|
$oCriteria->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
|
|
$aProcess[] = array('PRO_UID' => $aRow['PRO_UID'], 'PRO_TITLE' => $aRow['PRO_TITLE'], 'CANTCASES' => ApplicationPeer::doCount($oCriteria), 'MIN' => number_format($aRow['MIN'], 2), 'MAX' => number_format($aRow['MAX'], 2), 'TOTALDUR' => number_format($aRow['TOTALDUR'], 2), 'PROMEDIO' => number_format($aRow['PROMEDIO'], 2)
|
|
);
|
|
$oDataset->next();
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $aProcess;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function does a sql statment to a report wiht a condition
|
|
* or maybe when you're looking for some specials cases
|
|
*
|
|
* @name generatedReport1_filter
|
|
*
|
|
* @param string $from
|
|
* @param string $to
|
|
* @param string $startedby
|
|
* @return object
|
|
*/
|
|
public function generatedReport1_filter($from, $to, $startedby)
|
|
{
|
|
$this->reportsPatch();
|
|
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
require_once 'classes/model/Users.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addSelectColumn(ProcessPeer::PRO_TITLE);
|
|
$oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("TOTALDUR", "SUM(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("PROMEDIO", "AVG(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addJoin(AppDelegationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
|
|
$oCriteria->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
|
|
//$oCriteria->add(AppDelegationPeer::DEL_DURATION, $from, Criteria::GREATER_EQUAL);
|
|
//$oCriteria->add(AppDelegationPeer::DEL_DURATION, $to, Criteria::LESS_EQUAL);
|
|
//$aAux1 = explode('-', $from); date('Y-m-d H:i:s', mktime(0, 0, 0, $aAux1[1], $aAux1[2], $aAux1[0]))
|
|
$oCriteria->add($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $from . ' 00:00:00', Criteria::GREATER_EQUAL)->addAnd($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $to . ' 23:59:59', Criteria::LESS_EQUAL)));
|
|
|
|
if ($startedby != '') {
|
|
$oCriteria->add(ApplicationPeer::APP_INIT_USER, $startedby);
|
|
}
|
|
|
|
$oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addGroupByColumn(ProcessPeer::PRO_TITLE);
|
|
|
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
|
|
$aProcess[] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$oCriteria = new Criteria('workflow');
|
|
$oCriteria->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
if ($startedby != '') {
|
|
$oCriteria->add(ApplicationPeer::APP_INIT_USER, $startedby);
|
|
}
|
|
|
|
$aProcess[] = array('PRO_UID' => $aRow['PRO_UID'], 'PRO_TITLE' => $aRow['PRO_TITLE'], 'CANTCASES' => ApplicationPeer::doCount($oCriteria), 'MIN' => number_format($aRow['MIN'], 2), 'MAX' => number_format($aRow['MAX'], 2), 'TOTALDUR' => number_format($aRow['TOTALDUR'], 2), 'PROMEDIO' => number_format($aRow['PROMEDIO'], 2));
|
|
$oDataset->next();
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $aProcess;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function gets info about a report
|
|
*
|
|
*
|
|
* @name descriptionReport1
|
|
*
|
|
* @param string $PRO_UID
|
|
* @return object
|
|
*/
|
|
public function descriptionReport1($PRO_UID)
|
|
{
|
|
$this->reportsPatch();
|
|
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Task.php';
|
|
require_once 'classes/model/Content.php';
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addSelectColumn(TaskPeer::TAS_TITLE);
|
|
$oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("TOTALDUR", "SUM(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("PROMEDIO", "AVG(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
|
|
$oCriteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
|
$oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID);
|
|
|
|
$oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addGroupByColumn(TaskPeer::TAS_TITLE);
|
|
|
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
|
|
$aProcess[] = array('TAS_TITLE' => 'char', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$aProcess[] = array('TAS_TITLE' => $aRow['TAS_TITLE'], 'MIN' => number_format($aRow['MIN'], 2), 'MAX' => number_format($aRow['MAX'], 2), 'TOTALDUR' => number_format($aRow['TOTALDUR'], 2), 'PROMEDIO' => number_format($aRow['PROMEDIO'], 2)
|
|
);
|
|
$oDataset->next();
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $aProcess;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function generates a other kind of report
|
|
*
|
|
*
|
|
* @name generatedReport2
|
|
*
|
|
* param
|
|
* @return object
|
|
*/
|
|
public function generatedReport2()
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addSelectColumn(ProcessPeer::PRO_TITLE);
|
|
$oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addJoin(AppDelegationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
|
|
$oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
|
|
|
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
|
|
$month = date('Y-m-d', mktime(0, 0, 0, date("m") - 1, date("d"), date("Y")));
|
|
$lastmonth = date('Y-m-d', mktime(0, 0, 0, date("m") - 2, date("d"), date("Y")));
|
|
|
|
$day = mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"));
|
|
$lastday = mktime(0, 0, 0, date("m"), date("d") - 2, date("Y"));
|
|
|
|
$aProcess[] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'CASELASTMONTH' => 'integer', 'CASELASTDAY' => 'integer'
|
|
);
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$oCriteria2 = new Criteria('workflow');
|
|
$oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
|
|
$oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
$oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
|
|
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
|
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset2->next();
|
|
$aRow2 = $oDataset2->getRow();
|
|
$cant = $aRow2['CANTCASES'];
|
|
|
|
$oCriteria2 = new Criteria('workflow');
|
|
$oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
|
|
$oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $lastmonth, Criteria::GREATER_EQUAL);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $month, Criteria::LESS_EQUAL);
|
|
$oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
|
|
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
|
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset2->next();
|
|
$aRow2 = $oDataset2->getRow();
|
|
$cant1 = $aRow2['CANTCASES'];
|
|
|
|
$oCriteria2 = new Criteria('workflow');
|
|
$oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
|
|
$oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $lastday, Criteria::GREATER_EQUAL);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $day, Criteria::LESS_EQUAL);
|
|
$oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
|
|
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
|
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset2->next();
|
|
$aRow2 = $oDataset2->getRow();
|
|
$cant2 = $aRow2['CANTCASES'];
|
|
|
|
$aProcess[] = array('PRO_UID' => $aRow['PRO_UID'], 'PRO_TITLE' => $aRow['PRO_TITLE'], 'CANTCASES' => $cant, 'MIN' => number_format($aRow['MIN'], 2), 'MAX' => number_format($aRow['MAX'], 2), 'CASELASTMONTH' => number_format($cant1, 2), 'CASELASTDAY' => number_format($cant2, 2)
|
|
);
|
|
$oDataset->next();
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $aProcess;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function generates the description about a report
|
|
*
|
|
*
|
|
* @name reports_Description_filter
|
|
*
|
|
* @param string $from
|
|
* @param string $to
|
|
* @param string $startedby
|
|
* @param string $PRO_UID
|
|
* @return object
|
|
*/
|
|
public function reports_Description_filter($from, $to, $startedby, $PRO_UID)
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Task.php';
|
|
require_once 'classes/model/Content.php';
|
|
require_once 'classes/model/Users.php';
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addSelectColumn(TaskPeer::TAS_TITLE);
|
|
$oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("TOTALDUR", "SUM(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("PROMEDIO", "AVG(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
|
|
$oCriteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
|
$oCriteria->add($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $from . ' 00:00:00', Criteria::GREATER_EQUAL)->addAnd($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $to . ' 23:59:59', Criteria::LESS_EQUAL)));
|
|
|
|
if ($startedby != '') {
|
|
$oCriteria->add(AppDelegationPeer::USR_UID, $startedby);
|
|
}
|
|
|
|
$oCriteria->add(AppDelegationPeer::PRO_UID, $PRO_UID);
|
|
|
|
$oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addGroupByColumn(TaskPeer::TAS_TITLE);
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function looks for an special case it has a condition
|
|
*
|
|
*
|
|
* @name generatedReport2_filter
|
|
*
|
|
* @param string $from
|
|
* @param string $to
|
|
* @param string $startedby
|
|
* @return object
|
|
*/
|
|
public function generatedReport2_filter($from, $to, $startedby)
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
require_once 'classes/model/Users.php';
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addSelectColumn(ProcessPeer::PRO_TITLE);
|
|
$oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
|
|
$oCriteria->addJoin(AppDelegationPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
|
|
$oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
|
|
$oCriteria->addGroupByColumn(ProcessPeer::PRO_TITLE);
|
|
|
|
$oCriteria->add($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $from . ' 00:00:00', Criteria::GREATER_EQUAL)->addAnd($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $to . ' 23:59:59', Criteria::LESS_EQUAL)));
|
|
|
|
if ($startedby != '') {
|
|
$oCriteria->add(AppDelegationPeer::USR_UID, $startedby);
|
|
}
|
|
|
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
|
|
$month = date('Y-m-d', mktime(0, 0, 0, date("m") - 1, date("d"), date("Y")));
|
|
$lastmonth = date('Y-m-d', mktime(0, 0, 0, date("m") - 2, date("d"), date("Y")));
|
|
$day = mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"));
|
|
$lastday = mktime(0, 0, 0, date("m"), date("d") - 2, date("Y"));
|
|
$aProcess[] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'CASELASTMONTH' => 'integer', 'CASELASTDAY' => 'integer');
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$oCriteria2 = new Criteria('workflow');
|
|
$oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
|
|
$oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
if ($startedby != '') {
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_USER, $startedby);
|
|
}
|
|
$oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
|
|
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
|
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset2->next();
|
|
$aRow2 = $oDataset2->getRow();
|
|
$cant = $aRow2['CANTCASES'];
|
|
|
|
$oCriteria2 = new Criteria('workflow');
|
|
$oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
|
|
$oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $lastmonth, Criteria::GREATER_EQUAL);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $month, Criteria::LESS_EQUAL);
|
|
if ($startedby != '') {
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_USER, $startedby);
|
|
}
|
|
$oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
|
|
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
|
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset2->next();
|
|
$aRow2 = $oDataset2->getRow();
|
|
$cant1 = $aRow2['CANTCASES'];
|
|
|
|
$oCriteria2 = new Criteria('workflow');
|
|
$oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
$oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
|
|
$oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $lastday, Criteria::GREATER_EQUAL);
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $day, Criteria::LESS_EQUAL);
|
|
if ($startedby != '') {
|
|
$oCriteria2->add(ApplicationPeer::APP_INIT_USER, $startedby);
|
|
}
|
|
$oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
|
|
$oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
|
|
$oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset2->next();
|
|
$aRow2 = $oDataset2->getRow();
|
|
$cant2 = $aRow2['CANTCASES'];
|
|
|
|
/*$aProcess[] = array('PRO_UID' => $aRow['PRO_UID'],
|
|
'PRO_TITLE' => $aRow['PRO_TITLE'],
|
|
'CANTCASES' => $cant,
|
|
'CASELASTMONTH' => $cant1,
|
|
'CASELASTDAY' => $cant2
|
|
);*/
|
|
$aProcess[] = array('PRO_UID' => $aRow['PRO_UID'], 'PRO_TITLE' => $aRow['PRO_TITLE'], 'CANTCASES' => $cant, 'MIN' => number_format($aRow['MIN'], 2), 'MAX' => number_format($aRow['MAX'], 2), 'CASELASTMONTH' => number_format($cant1, 2), 'CASELASTDAY' => number_format($cant2, 2));
|
|
$oDataset->next();
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $aProcess;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function looks for an special case it has a condition
|
|
*
|
|
*
|
|
* @name generatedReport2_filter
|
|
*
|
|
* @param string $from
|
|
* @param string $to
|
|
* @param string $startedby
|
|
* @return object
|
|
*/
|
|
public function generatedReport3()
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$sql = "SELECT CONCAT(SUBSTRING(AD.DEL_INIT_DATE,6,2),'-', SUBSTRING(AD.DEL_INIT_DATE,1,4)) AS FECHA,
|
|
COUNT(DISTINCT(AD.APP_UID)) AS CANTCASES,
|
|
MIN(AD.DEL_DURATION) AS MIN,
|
|
MAX(AD.DEL_DURATION) AS MAX,
|
|
SUM(AD.DEL_DURATION) AS TOTALDUR,
|
|
AVG(AD.DEL_DURATION) AS PROMEDIO
|
|
FROM APP_DELEGATION AS AD
|
|
LEFT JOIN PROCESS AS P ON (P.PRO_UID = AD.PRO_UID)
|
|
WHERE AD.APP_UID<>'' AND P.PRO_STATUS<>'DISABLED'
|
|
GROUP BY FECHA";
|
|
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->prepareStatement($sql);
|
|
$rs = $stmt->executeQuery();
|
|
|
|
$ROW[] = array('FECHA' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float');
|
|
|
|
while ($rs->next()) {
|
|
$ROW[] = array('FECHA' => $rs->getString('FECHA'), 'CANTCASES' => $rs->getString('CANTCASES'), 'MIN' => number_format($rs->getString('MIN'), 2), 'MAX' => number_format($rs->getString('MAX'), 2), 'TOTALDUR' => number_format($rs->getString('TOTALDUR'), 2), 'PROMEDIO' => number_format($rs->getString('PROMEDIO'), 2));
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $ROW;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
|
|
}
|
|
|
|
/**
|
|
* This function looks for an special case it has a condition
|
|
*
|
|
*
|
|
* @name generatedReport3_filter
|
|
*
|
|
* @param string $process
|
|
* @param string $task
|
|
* @return object
|
|
*/
|
|
public function generatedReport3_filter($process, $task)
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
if ($process == '') {
|
|
$var = " WHERE P.PRO_STATUS<>'DISABLED'";
|
|
} else {
|
|
if ($task == '') {
|
|
$var = " LEFT JOIN TASK AS T ON (AD.TAS_UID = T.TAS_UID)
|
|
WHERE P.PRO_STATUS<>'DISABLED' AND AD.PRO_UID='" . $process . "'";
|
|
} else {
|
|
$var = " LEFT JOIN TASK AS T ON (AD.TAS_UID = T.TAS_UID)
|
|
WHERE P.PRO_STATUS<>'DISABLED' AND AD.PRO_UID='" . $process . "' AND AD.TAS_UID='" . $task . "' ";
|
|
}
|
|
}
|
|
$sql = "SELECT CONCAT(SUBSTRING(AD.DEL_INIT_DATE,6,2),'-', SUBSTRING(AD.DEL_INIT_DATE,1,4)) AS FECHA,
|
|
COUNT(DISTINCT(AD.APP_UID)) AS CANTCASES,
|
|
MIN(AD.DEL_DURATION) AS MIN,
|
|
MAX(AD.DEL_DURATION) AS MAX,
|
|
SUM(AD.DEL_DURATION) AS TOTALDUR,
|
|
AVG(AD.DEL_DURATION) AS PROMEDIO
|
|
FROM APP_DELEGATION AS AD
|
|
LEFT JOIN PROCESS AS P ON (P.PRO_UID = AD.PRO_UID)
|
|
" . $var . "
|
|
GROUP BY FECHA";
|
|
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->prepareStatement($sql);
|
|
$rs = $stmt->executeQuery();
|
|
$ROW[] = array('FECHA' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float');
|
|
|
|
while ($rs->next()) {
|
|
$ROW[] = array('FECHA' => $rs->getString('FECHA'), 'CANTCASES' => $rs->getString('CANTCASES'), 'MIN' => number_format($rs->getString('MIN'), 2), 'MAX' => number_format($rs->getString('MAX'), 2), 'TOTALDUR' => number_format($rs->getString('TOTALDUR'), 2), 'PROMEDIO' => number_format($rs->getString('PROMEDIO'), 2));
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $ROW;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function generates a report
|
|
*
|
|
*
|
|
* @name generatedReport4
|
|
*
|
|
* param
|
|
* @return object
|
|
*/
|
|
public function generatedReport4()
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
require_once 'classes/model/Process.php';
|
|
require_once 'classes/model/Users.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$sql = "SELECT CONCAT(U.USR_LASTNAME,' ',USR_FIRSTNAME) AS USER,
|
|
COUNT(*) AS CANTCASES,
|
|
MIN(AD.DEL_DURATION) AS MIN,
|
|
MAX(AD.DEL_DURATION) AS MAX,
|
|
SUM(AD.DEL_DURATION) AS TOTALDUR,
|
|
AVG(AD.DEL_DURATION) AS PROMEDIO
|
|
FROM APPLICATION AS A
|
|
LEFT JOIN APP_DELEGATION AS AD ON(A.APP_UID = AD.APP_UID AND AD.DEL_INDEX=1)
|
|
LEFT JOIN USERS AS U ON(U.USR_UID = A.APP_INIT_USER)
|
|
WHERE A.APP_UID<>''
|
|
GROUP BY USER";
|
|
// AND P.PRO_STATUS<>'DISABLED' that hapens when it is created to new version it exists at the moment to import
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->prepareStatement($sql);
|
|
$rs = $stmt->executeQuery();
|
|
|
|
$ROW[] = array('USER' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
|
|
while ($rs->next()) {
|
|
$ROW[] = array('USER' => $rs->getString('USER'), 'CANTCASES' => $rs->getString('CANTCASES'), 'MIN' => number_format($rs->getString('MIN'), 2), 'MAX' => number_format($rs->getString('MAX'), 2), 'TOTALDUR' => number_format($rs->getString('TOTALDUR'), 2), 'PROMEDIO' => number_format($rs->getString('PROMEDIO'), 2)
|
|
);
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $ROW;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
|
|
}
|
|
|
|
/**
|
|
* This function generates a filter to report 4
|
|
*
|
|
*
|
|
* @name generatedReport4_filter
|
|
*
|
|
* @param string process
|
|
* @param string task
|
|
* @return object
|
|
*/
|
|
public function generatedReport4_filter($process, $task)
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
require_once 'classes/model/Process.php';
|
|
require_once 'classes/model/Users.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
if ($process == '') {
|
|
$var = " ";
|
|
} else {
|
|
if ($task == '') {
|
|
$var = " LEFT JOIN TASK AS T ON (AD.TAS_UID = T.TAS_UID)
|
|
WHERE AD.PRO_UID='" . $process . "'";
|
|
} else {
|
|
$var = " LEFT JOIN TASK AS T ON (AD.TAS_UID = T.TAS_UID)
|
|
WHERE AD.PRO_UID='" . $process . "' AND AD.TAS_UID='" . $task . "' ";
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT CONCAT(U.USR_LASTNAME,' ',USR_FIRSTNAME) AS USER,
|
|
COUNT(*) AS CANTCASES,
|
|
MIN(AD.DEL_DURATION) AS MIN,
|
|
MAX(AD.DEL_DURATION) AS MAX,
|
|
SUM(AD.DEL_DURATION) AS TOTALDUR,
|
|
AVG(AD.DEL_DURATION) AS PROMEDIO
|
|
FROM APPLICATION AS A
|
|
LEFT JOIN APP_DELEGATION AS AD ON(A.APP_UID = AD.APP_UID AND AD.DEL_INDEX=1)
|
|
LEFT JOIN USERS AS U ON(U.USR_UID = A.APP_INIT_USER)
|
|
" . $var . "
|
|
GROUP BY USER";
|
|
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->prepareStatement($sql);
|
|
$rs = $stmt->executeQuery();
|
|
|
|
$ROW[] = array('USER' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
|
|
while ($rs->next()) {
|
|
$ROW[] = array('USER' => $rs->getString('USER'), 'CANTCASES' => $rs->getString('CANTCASES'), 'MIN' => number_format($rs->getString('MIN'), 2), 'MAX' => number_format($rs->getString('MAX'), 2), 'TOTALDUR' => number_format($rs->getString('TOTALDUR'), 2), 'PROMEDIO' => number_format($rs->getString('PROMEDIO'), 2)
|
|
);
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $ROW;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function generates a Report
|
|
*
|
|
*
|
|
* @name generatedReport4_filter
|
|
*
|
|
* @param string process
|
|
* @param string task
|
|
* @return object
|
|
*/
|
|
public function generatedReport5()
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
require_once 'classes/model/Process.php';
|
|
require_once 'classes/model/Users.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$sql = "SELECT CONCAT(U.USR_LASTNAME,' ',USR_FIRSTNAME) AS USER,
|
|
COUNT(*) AS CANTCASES,
|
|
MIN(AD.DEL_DURATION) AS MIN,
|
|
MAX(AD.DEL_DURATION) AS MAX,
|
|
SUM(AD.DEL_DURATION) AS TOTALDUR,
|
|
AVG(AD.DEL_DURATION) AS PROMEDIO
|
|
FROM APP_DELEGATION AS AD
|
|
LEFT JOIN PROCESS AS P ON (P.PRO_UID = AD.PRO_UID)
|
|
LEFT JOIN USERS AS U ON(U.USR_UID = AD.USR_UID)
|
|
WHERE AD.APP_UID<>'' AND AD.DEL_FINISH_DATE IS NULL
|
|
GROUP BY USER";
|
|
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->prepareStatement($sql);
|
|
$rs = $stmt->executeQuery();
|
|
|
|
$ROW[] = array('USER' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
|
|
while ($rs->next()) {
|
|
$ROW[] = array('USER' => $rs->getString('USER'), 'CANTCASES' => $rs->getString('CANTCASES'), 'MIN' => number_format($rs->getString('MIN'), 2), 'MAX' => number_format($rs->getString('MAX'), 2), 'TOTALDUR' => number_format($rs->getString('TOTALDUR'), 2), 'PROMEDIO' => number_format($rs->getString('PROMEDIO'), 2)
|
|
);
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $ROW;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
|
|
}
|
|
|
|
/**
|
|
* This function generates a filter to report 5
|
|
*
|
|
*
|
|
* @name generatedReport5_filter
|
|
*
|
|
* @param string process
|
|
* @param string task
|
|
* @return object
|
|
*/
|
|
public function generatedReport5_filter($process, $task)
|
|
{
|
|
$this->reportsPatch();
|
|
require_once 'classes/model/AppDelegation.php';
|
|
require_once 'classes/model/Application.php';
|
|
require_once 'classes/model/Process.php';
|
|
require_once 'classes/model/Users.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
if ($process == '') {
|
|
$var = " WHERE AD.DEL_FINISH_DATE IS NULL";
|
|
} else {
|
|
if ($task == '') {
|
|
$var = " LEFT JOIN TASK AS T ON (AD.TAS_UID = T.TAS_UID)
|
|
WHERE AD.PRO_UID='" . $process . "' AND AD.DEL_FINISH_DATE IS NULL";
|
|
} else {
|
|
$var = " LEFT JOIN TASK AS T ON (AD.TAS_UID = T.TAS_UID)
|
|
WHERE AD.PRO_UID='" . $process . "' AND AD.TAS_UID='" . $task . "' ";
|
|
}
|
|
}
|
|
$sql = "SELECT CONCAT(U.USR_LASTNAME,' ',USR_FIRSTNAME) AS USER,
|
|
COUNT(*) AS CANTCASES,
|
|
MIN(AD.DEL_DURATION) AS MIN,
|
|
MAX(AD.DEL_DURATION) AS MAX,
|
|
SUM(AD.DEL_DURATION) AS TOTALDUR,
|
|
AVG(AD.DEL_DURATION) AS PROMEDIO
|
|
FROM APP_DELEGATION AS AD
|
|
LEFT JOIN PROCESS AS P ON (P.PRO_UID = AD.PRO_UID)
|
|
LEFT JOIN USERS AS U ON(U.USR_UID = AD.USR_UID)
|
|
" . $var . "
|
|
GROUP BY USER";
|
|
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->prepareStatement($sql);
|
|
$rs = $stmt->executeQuery();
|
|
|
|
$ROW[] = array('USER' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'TOTALDUR' => 'float', 'PROMEDIO' => 'float'
|
|
);
|
|
|
|
while ($rs->next()) {
|
|
$ROW[] = array('USER' => $rs->getString('USER'), 'CANTCASES' => $rs->getString('CANTCASES'), 'MIN' => number_format($rs->getString('MIN'), 2), 'MAX' => number_format($rs->getString('MAX'), 2), 'TOTALDUR' => number_format($rs->getString('TOTALDUR'), 2), 'PROMEDIO' => number_format($rs->getString('PROMEDIO'), 2)
|
|
);
|
|
}
|
|
|
|
global $_DBArray;
|
|
$_DBArray['reports'] = $ROW;
|
|
$_SESSION['_DBArray'] = $_DBArray;
|
|
$oCriteria = new Criteria('dbarray');
|
|
$oCriteria->setDBArrayTable('reports');
|
|
|
|
return $oCriteria;
|
|
}
|
|
|
|
/**
|
|
* This function returns an array, it has the reports' names
|
|
*
|
|
*
|
|
* @name getAvailableReports
|
|
*
|
|
* param
|
|
* @return array
|
|
*/
|
|
public function getAvailableReports()
|
|
{
|
|
return array('ID_REPORT1', 'ID_REPORT2', 'ID_REPORT3', 'ID_REPORT4', 'ID_REPORT5'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Patch for reports by The Answer (17-10-2k8)
|
|
*
|
|
*
|
|
* @name reportsPatch
|
|
*
|
|
* param
|
|
* @return void
|
|
*/
|
|
|
|
public function reportsPatch()
|
|
{
|
|
require_once 'classes/model/AppDelegation.php';
|
|
|
|
$oCriteria = new Criteria('workflow');
|
|
$del = DBAdapter::getStringDelimiter();
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::APP_UID);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::TAS_UID);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_DELEGATE_DATE);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
|
|
$oCriteria->addSelectColumn(AppDelegationPeer::DEL_DURATION);
|
|
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$oAppDelegation = new AppDelegation();
|
|
|
|
$aData['APP_UID'] = $aRow['APP_UID'];
|
|
$aData['DEL_INDEX'] = $aRow['DEL_INDEX'];
|
|
$aData['DEL_DELEGATE_DATE'] = $aRow['DEL_DELEGATE_DATE'];
|
|
|
|
if ($aRow['DEL_INIT_DATE'] == null) {
|
|
$aData['DEL_INIT_DATE'] = $aRow['DEL_DELEGATE_DATE'];
|
|
} else {
|
|
$aData['DEL_INIT_DATE'] = $aRow['DEL_INIT_DATE'];
|
|
}
|
|
//$aData['DEL_FINISH_DATE']=$aRow['DEL_FINISH_DATE'];
|
|
if ($aRow['DEL_DURATION'] != 0) {
|
|
$oDates = new dates();
|
|
$aData['DEL_DURATION'] = $oDates->calculateDuration($aData['DEL_INIT_DATE'], $aRow['DEL_FINISH_DATE'], null, null, $aRow['TAS_UID']);
|
|
}
|
|
|
|
$oAppDelegation->update($aData);
|
|
|
|
$oDataset->next();
|
|
}
|
|
return;
|
|
}
|
|
}
|