function viewEventSummary($domainID, $eventDate, $CSVFlag) { global $CSOs, $oUser; global $calledPrograms, $epsReportProgram, $epsReportProgramDetails; global $calledZones, $epsReportZone, $epsReportZoneDetails; global $PointChannels; global $viewEventSummary; $oUser = clone $_SESSION['UserObject']; $dateParts = explode('-', $eventDate); $month = $dateParts[0]; $day = $dateParts[1]; $year = $dateParts[2]; $eventDate = $year . '-' . $month . '-' . $day; $eventPerformanceSummary = new EventPerformanceSummary($domainID, $eventDate); $eventPerformanceSummary->Get(); $involvedAssetsList = $eventPerformanceSummary->allInvolvedAssets(); //preDebugger($involvedAssetsList); $calledPrograms = $involvedAssetsList['calledPrograms']; //$calledPrograms = $eventPerformanceSummary->calledPrograms(); MCB: leaving a traceable trail behind as today's mods are a shim $epsReportProgram = $eventPerformanceSummary->reportProgram(); $epsReportProgramDetails = $eventPerformanceSummary->reportProgramDetails(); $calledZones = $eventPerformanceSummary->calledZones(); $epsReportZone = $eventPerformanceSummary->reportZone(); $epsReportZoneDetails = $eventPerformanceSummary->reportZoneDetails(); $viewEventSummary = BuildEventSummaryHeader("Event Summary", $oUser->localDomain()->description(), $eventDate, $domainID, $CSVFlag); // TODO: This can be reworked so that the PointChannels object isn't needed -- see // mdr/EvtPerfSummary.php for clues :) // For now, we're filling display data from there so we'll leave it alone (2012-05-31) $PointChannels = new PointChannels(); $PointChannels->Load($oUser->id(), $oUser->Domains(0)->id(), null, null, true, $month, $year); preDebugger($eventPerformanceSummary, 'blue'); foreach ($calledPrograms as $inx => $calledProgram) { $CSOs[$calledProgram]['value'] = 0; foreach ($PointChannels->Resources() as $resourceObjectId => $attribs) { //preDebugger($epsReportProgramDetails[$calledProgram][$resourceObjectId],'blue'); if (array_key_exists($resourceObjectId, $involvedAssetsList['reportProgramSummary'][$calledProgram])) { $programDetailToUse = isset($epsReportProgramDetails[$calledProgram][$resourceObjectId]) ? $epsReportProgramDetails[$calledProgram][$resourceObjectId] : $involvedAssetsList['epsReportProgramDetails'][$calledProgram][$resourceObjectId]; $epsReportProgramDetails[$calledProgram][$resourceObjectId]; $programStack[$calledProgram][$attribs['identifier']] = restackAsset($resourceObjectId, $attribs['assets'], $programDetailToUse, $attribs, $calledProgram, $involvedAssetsList); } foreach ($calledZones[$calledProgram] as $inx => $calledZone) { if (!isset($CSOs[$calledProgram][$calledZone]['value'])) { $CSOs[$calledProgram][$calledZone]['value'] = 0; } if (array_key_exists($resourceObjectId, $involvedAssetsList['reportProgramSummary'][$calledProgram])) { $zoneDetailToUse = isset($epsReportZoneDetails[$calledProgram][$calledZone][$resourceObjectId]) ? $epsReportZoneDetails[$calledProgram][$calledZone][$resourceObjectId] : $involvedAssetsList['epsReportZoneDetails'][$calledProgram][$resourceObjectId]; $zoneStack[$calledProgram][$calledZone][$attribs['identifier']] = restackAsset($resourceObjectId, $attribs['assets'], $zoneDetailToUse, $attribs, $calledProgram, $calledZone); } } } } //preDebugger($zoneStack,'green'); return $CSVFlag ? renderCSV($programStack, $zoneStack) : renderHMTL($programStack, $zoneStack, $involvedAssetsList); }
function renderCSV($qr_result, $va_columns, $va_charting_rows, $va_total_columns) { $qr_result->seek(); foreach ($va_columns as $va_column => $va_colum_label) { print "{$va_colum_label};"; } print "\n"; while ($qr_result->nextRow()) { foreach ($va_columns as $va_column => $va_colum_label) { print $qr_result->get($va_colum_label) . ";"; if (in_array($va_colum_label, $va_total_columns)) { $va_total_value["{$va_colum_label}"] = $va_total_value["{$va_colum_label}"] + $qr_result->get($va_colum_label); } } print "\n"; } print "\n"; } /** --------------------------------------------------------------------- * main part * ---------------------------------------------------------------------- */ // local variables $va_statistics = $this->getVar('informations'); $va_columns = $va_statistics->columns; $va_total_columns = $va_statistics->total_columns; $query = $this->getVar('sql'); $qr_result = $query['result']; header("Content-Type: application/csv-tab-delimited-table"); header("Content-disposition: filename=table.csv"); renderCSV($qr_result, $va_columns, $va_charting_rows, $va_total_columns); exit;