. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ use ProcessMaker\Plugins\PluginRegistry; /** * Report - Report view * * @package ProcessMaker * @author Everth S. Berrios Morales * @copyright 2008 COLOSA */ global $RBAC; switch ($RBAC->userCanAccess('PM_REPORTS')) { case - 2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die(); break; case - 1: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die(); break; } try { //form type format hours in the form xml $G_MAIN_MENU = 'processmaker'; $G_ID_MENU_SELECTED = 'REPORTS'; $RPT_UID = $_GET['RPT_UID']; switch ($RPT_UID) { case 1: $sw = 0; if (isset($_POST['form'])) { if ($_POST['form']['FROM'] != '0000-00-00' || $_POST['form']['TO'] != '0000-00-00') { $sw = 1; } $fields['FROM'] = $_POST['form']['FROM']; $fields['TO'] = $_POST['form']['TO']; $fields['STARTEDBY'] = $_POST['form']['STARTEDBY']; } else { $fields['FROM'] = date('Y-m-d'); $fields['TO'] = date('Y-m-d'); } $oReport = new Report(); if ($sw == 0) { $c = $oReport->generatedReport1(); } else { $c = $oReport->generatedReport1_filter($_POST['form']['FROM'], $_POST['form']['TO'], $_POST['form']['STARTEDBY']); } $oHeadPublisher = headPublisher::getSingleton(); $oHeadPublisher->addScriptFile('/jscore/reports/reports.js'); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reports/report1', $c); if (isset($_POST['form'])) { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report1_search', '', $fields); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report1_search'); } G::RenderPage('publish'); break; case 2: $sw = 0; if (isset($_POST['form'])) { if ($_POST['form']['FROM'] != '0000-00-00' || $_POST['form']['TO'] != '0000-00-00') { $sw = 1; } $fields['FROM'] = $_POST['form']['FROM']; $fields['TO'] = $_POST['form']['TO']; $fields['STARTEDBY'] = $_POST['form']['STARTEDBY']; } else { $fields['FROM'] = date('Y-m-d'); $fields['TO'] = date('Y-m-d'); } $oReport = new Report(); if ($sw == 0) { $c = $oReport->generatedReport2(); } else { $c = $oReport->generatedReport2_filter($_POST['form']['FROM'], $_POST['form']['TO'], $_POST['form']['STARTEDBY']); } $oHeadPublisher = headPublisher::getSingleton(); $oHeadPublisher->addScriptFile('/jscore/reports/reports.js'); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reports/report2', $c); if (isset($_POST['form'])) { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report1_search', '', $fields); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report1_search'); } G::RenderPage('publish'); break; case 3: $sw = 0; if (isset($_POST['form'])) { $sw = 1; $fields['PROCESS'] = $_POST['form']['PROCESS']; $fields['TASKS'] = $_POST['form']['TASKS']; } else { $fields['FROM'] = date('Y-m-d'); $fields['TO'] = date('Y-m-d'); } $oReport = new Report(); if ($sw == 0) { $c = $oReport->generatedReport3(); } else { $c = $oReport->generatedReport3_filter($_POST['form']['PROCESS'], $_POST['form']['TASKS']); } $oHeadPublisher = headPublisher::getSingleton(); $oHeadPublisher->addScriptFile('/jscore/reports/reports.js'); $G_PUBLISH = new Publisher(); if (isset($_POST['form'])) { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report_filter', '', $fields); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report_filter'); } $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reports/report3', $c); G::RenderPage('publish'); break; case 4: $sw = 0; if (isset($_POST['form'])) { $sw = 1; $fields['PROCESS'] = $_POST['form']['PROCESS']; $fields['TASKS'] = $_POST['form']['TASKS']; } $oReport = new Report(); if ($sw == 0) { $c = $oReport->generatedReport4(); } else { $c = $oReport->generatedReport4_filter($_POST['form']['PROCESS'], $_POST['form']['TASKS']); } $oHeadPublisher = headPublisher::getSingleton(); $oHeadPublisher->addScriptFile('/jscore/reports/reports.js'); $G_PUBLISH = new Publisher(); if (isset($_POST['form'])) { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report_filter', '', $fields); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report_filter'); } $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reports/report4', $c); G::RenderPage('publish'); break; case 5: $sw = 0; if (isset($_POST['form'])) { $sw = 1; $fields['PROCESS'] = $_POST['form']['PROCESS']; $fields['TASKS'] = $_POST['form']['TASKS']; } $oReport = new Report(); if ($sw == 0) { $c = $oReport->generatedReport5(); } else { $c = $oReport->generatedReport5_filter($_POST['form']['PROCESS'], $_POST['form']['TASKS']); } $oHeadPublisher = headPublisher::getSingleton(); $oHeadPublisher->addScriptFile('/jscore/reports/reports.js'); $G_PUBLISH = new Publisher(); if (isset($_POST['form'])) { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report_filter', '', $fields); } else { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'reports/report_filter'); } $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reports/report5', $c); G::RenderPage('publish'); break; default: $foundReport = false; $oPluginRegistry = PluginRegistry::loadSingleton(); $aAvailableReports = $oPluginRegistry->getReports(); foreach ($aAvailableReports as $sReportClass) { require_once PATH_PLUGINS . $sReportClass . PATH_SEP . 'class.' . $sReportClass . '.php'; $sClassName = $sReportClass . 'Class'; $oInstance = new $sClassName(); $aReports = $oInstance->getAvailableReports(); foreach ($aReports as $oReport) { if ($RPT_UID == $oReport['uid'] && method_exists($oInstance, $RPT_UID)) { $foundReport = true; $result = $oInstance->{$RPT_UID}(); } } } //now check if there are customized reports inside the processes if (file_exists(PATH_DATA_PUBLIC) && is_dir(PATH_DATA_PUBLIC)) { if ($handle = opendir(PATH_DATA_PUBLIC)) { while (false !== ($dir = readdir($handle))) { if ($dir[0] != '.' && file_exists(PATH_DATA_PUBLIC . $dir . PATH_SEP . 'reports.php')) { include_once(PATH_DATA_PUBLIC . $dir . PATH_SEP . 'reports.php'); $className = 'report' . $dir; if (class_exists($className)) { $oInstance = new $className(); $aReports = $oInstance->getAvailableReports(); foreach ($aReports as $oReport) { if ($RPT_UID == $oReport['uid'] && method_exists($oInstance, $RPT_UID)) { $foundReport = true; $result = $oInstance->{$RPT_UID}(); } } } } } } closedir($handle); } if (! $foundReport) { throw (new Exception("Call to an nonexistent member function " . $RPT_UID . "() ")); } } } catch (Exception $e) { $G_PUBLISH = new Publisher(); $aMessage['MESSAGE'] = $e->getMessage(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage); G::RenderPage('publish', 'blank'); }