/**
  * esporta csv con dati storici della somma della rilevanza dei tag op_geo
  * aggregati per macro-regioni
  *
  * @return void
  * @author Guglielmo Celata
  */
 public function executeGeoAggregatiRilevanzaTagExport()
 {
     sfLoader::loadHelpers(array('Number'));
     $this->session = $this->getUser();
     $this->forward404Unless($this->session->hasCredential('adhoc'));
     $data_inizio = OppLegislaturaPeer::$legislature[OppLegislaturaPeer::getCurrent()]['data_inizio'];
     $data_fine = OppTagHistoryCachePeer::fetchLastData();
     $date = Util::buildCacheDatesArray($data_inizio, $data_fine);
     // fetch delle macrozone e degli id delle località relative (city, prov, reg)
     $macroregions = OppLocationPeer::retrieveMacroregions();
     foreach ($macroregions as $cnt => $macro_region) {
         $macro_region_id = $macro_region['macroregional_id'];
         $macro_region_name = $macro_region['name'];
         $csv_row = $macro_region_name . ",";
         $locations_ids = OppLocationPeer::getLocationsIdsByMacroRegion($macro_region_id);
         $storico = OppTagHistoryCachePeer::getGeoAggregatedHistory('S', $locations_ids);
         foreach ($date as $cnt => $data) {
             if (array_key_exists($data, $storico)) {
                 $storico[$data] = format_number(round($storico[$data], 2), 'it_IT');
             } else {
                 $storico[$data] = 0;
             }
             $csv_row .= '"' . $storico[$data] . '"';
             if ($cnt < count($date) - 1) {
                 $csv_row .= ",";
             }
         }
         $csv_rows[] = $csv_row;
         $regions = OppLocationPeer::getRegionsByMacroRegion($macro_region_id);
         foreach ($regions as $cnt => $region) {
             $region_id = $region['regional_id'];
             $region_name = $region['name'];
             $csv_row = $region_name . ",";
             $locations_ids = OppLocationPeer::getLocationsIdsByRegion($region_id);
             $storico = OppTagHistoryCachePeer::getGeoAggregatedHistory('S', $locations_ids);
             foreach ($date as $cnt => $data) {
                 if (array_key_exists($data, $storico)) {
                     $storico[$data] = format_number(round($storico[$data], 2), 'it_IT');
                 } else {
                     $storico[$data] = 0;
                 }
                 $csv_row .= '"' . $storico[$data] . '"';
                 if ($cnt < count($date) - 1) {
                     $csv_row .= ",";
                 }
             }
             $csv_rows[] = $csv_row;
         }
     }
     $this->csv_header = "(macro)region name," . implode(",", $date);
     $this->csv_rows = $csv_rows;
     $this->setLayout(false);
     $this->setTemplate('rilevanzaTagExport');
     $this->response->setContentType('text/plain');
 }