protected function _generateResultsXML($data)
 {
     $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><report/>');
     foreach ($data as $rows) {
         $systemName = ReportBase::generateSystemName($rows['reportQuery']['displayName']);
         $xmlQuery = $xml->addChild($systemName);
         $ctr = 0;
         foreach ($rows['rows'] as $row) {
             $xmlRow = $xmlQuery->addChild('row');
             $xmlRow->addAttribute('sequence', $ctr++);
             if ($rows['reportQuery']['type'] == ReportQuery::TYPE_NSDR) {
                 $row = array($row['Name'] => $row['Value']);
             }
             foreach ($row as $key => $value) {
                 $xmlRow->addChild(ReportBase::generateSystemName($key), $value);
             }
         }
     }
     return $xml;
 }
 public function processReorderFilterAction()
 {
     $baseId = (int) $this->_getParam('baseId');
     $from = $this->_getParam('from');
     $to = $this->_getParam('to');
     // utilizing the ORM in the meantime, but can be optimized
     $reportBase = new ReportBase();
     $reportBase->reportBaseId = $baseId;
     $reportBase->populate();
     $rows = array();
     if (strlen($reportBase->filters) > 0) {
         $filters = unserialize($reportBase->filters);
         foreach ($filters as $id => $filter) {
             if ($from == $id) {
                 $fromFilter = $filters[$id];
                 unset($filters[$id]);
                 break;
             }
         }
         if (isset($fromFilter)) {
             $tmpFilters = array();
             foreach ($filters as $id => $filter) {
                 $tmpFilters[$id] = $filter;
                 if ($to == $id) {
                     $tmpFilters[$from] = $fromFilter;
                 }
             }
             $filters = $tmpFilters;
         }
         foreach ($filters as $id => $filter) {
             $row = array();
             $row['id'] = $filter->id;
             $row['data'] = array();
             $row['data'][] = $filter->name;
             $row['data'][] = $filter->defaultValue;
             $row['data'][] = $filter->type;
             $row['data'][] = $this->_formatOptions($filter->options);
             $rows[] = $row;
         }
         $reportBase->filters = serialize($filters);
         $reportBase->persist();
     }
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct(array('rows' => $rows));
 }
 protected function _previewStatements(array $claimIds, SimpleXMLElement $xml = null)
 {
     $refId = 'a2f8d4b3-73cf-4637-9e2e-2904ab55d64d';
     $attachment = new Attachment();
     $attachment->attachmentReferenceId = $refId;
     $attachment->populateWithAttachmentReferenceId();
     if ($xml === null) {
         $xml = new SimpleXMLElement('<data/>');
     }
     foreach ($claimIds as $claimId) {
         $this->_generateXMLStatements($xml->addChild('statements'), $claimId);
     }
     try {
         $content = ReportBase::mergepdfset($xml, $attachment->rawData);
         $this->getResponse()->setHeader('Content-Type', 'application/pdf');
     } catch (Exception $e) {
         $content = '<script>alert("' . $e->getMessage() . '")</script>';
     }
     return $content;
 }
 public function processQueryAction()
 {
     $viewId = (int) $this->_getParam('viewId');
     $queryId = (int) $this->_getParam('queryId');
     $result = ReportBase::generateResults($viewId, array());
     file_put_contents('/tmp/results.txt', print_r($result, true));
     $data = array('error' => 'Query ID ' . $queryId . ' does not exists');
     foreach ($result['data'] as $query) {
         if ($query['reportQuery']['reportQueryId'] == $queryId) {
             $data = $query;
             break;
         }
     }
     //trigger_error(print_r($data,true),E_USER_NOTICE);
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }
Beispiel #5
0
 protected static function _generateResultsXML($data)
 {
     $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><report/>');
     foreach ($data as $rows) {
         $systemName = ReportBase::generateSystemName($rows['reportQuery']['displayName']);
         $xmlQuery = $xml->addChild($systemName);
         $ctr = 0;
         $tagNames = array();
         foreach ($rows['headers'] as $key => $value) {
             $tagNames[$key] = $value;
         }
         foreach ($rows['rows'] as $row) {
             $xmlRow = $xmlQuery->addChild('row');
             $xmlRow->addAttribute('sequence', $ctr++);
             foreach ($row['data'] as $key => $value) {
                 $xmlRow->addChild($tagNames[$key], $value);
             }
         }
     }
     return $xml;
 }