/**
  * estrae l'elenco di cariche di un parlamentare, per la legislatura corrente
  * se il parlamentare è un senatore a vita, vengono estratte solo le cariche attuali (la legislatura non conta)
  *
  * @return void
  * @author Guglielmo Celata
  */
 public function getCaricheCorrentiIds()
 {
     $c = new Criteria();
     $cton = $c->getNewCriterion(OppCaricaPeer::POLITICO_ID, $this->getId());
     $cton->addAnd($c->getNewCriterion(OppCaricaPeer::LEGISLATURA, sfConfig::get('app_legislatura_corrente')));
     $cton_vita = $c->getNewCriterion(OppCaricaPeer::POLITICO_ID, $this->getId());
     $cton_vita->addAnd($c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, 5));
     $cton_vita->addAnd($c->getNewCriterion(OppCaricaPeer::DATA_FINE, null, Criteria::ISNULL));
     $cton->addOr($cton_vita);
     $c->add($cton);
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $rs = OppCaricaPeer::doSelectRS($c);
     $cariche = array();
     while ($rs->next()) {
         $cariche[] = $rs->getInt(1);
     }
     return $cariche;
 }
 public function executeBoxparlamentari()
 {
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::COGNOME);
     $c->addSelectColumn(OppPoliticoPeer::NOME);
     $c->addSelectColumn(OppPoliticoPeer::N_MONITORING_USERS);
     $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN);
     $c->add(OppCaricaPeer::DATA_FINE, NULL, Criteria::ISNULL);
     // deputati + monitorati
     if ($this->type == 'deputati') {
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, 1);
     } else {
         // senatori + monitorati
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, 4);
     }
     $c->addDescendingOrderByColumn(OppPoliticoPeer::N_MONITORING_USERS);
     $c->setLimit(3);
     $this->parlamentari = OppCaricaPeer::doSelectRS($c);
 }
 public function executeClassifiche()
 {
     // box rotazione politici
     // random del ramo
     if ($this->ramo == 0) {
         if (rand(1, 2) == 1) {
             $tipo_carica = 1;
             $this->nome_carica = 'deputati';
         } else {
             $tipo_carica = 4;
             $this->nome_carica = 'senatori';
         }
     }
     if ($this->ramo == 1) {
         $tipo_carica = 1;
         $this->nome_carica = 'deputati';
     }
     if ($this->ramo == 2) {
         $tipo_carica = 4;
         $this->nome_carica = 'senatori';
     }
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::COGNOME);
     $c->addSelectColumn(OppPoliticoPeer::NOME);
     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
     $c->addSelectColumn(OppCaricaPeer::PRESENZE);
     $c->addSelectColumn(OppCaricaPeer::ASSENZE);
     $c->addSelectColumn(OppCaricaPeer::MISSIONI);
     $c->addSelectColumn(OppCaricaPeer::INDICE);
     $c->addSelectColumn(OppCaricaPeer::POSIZIONE);
     $c->addSelectColumn(OppCaricaPeer::MEDIA);
     $c->addSelectColumn(OppCaricaPeer::RIBELLE);
     $c->addSelectColumn(OppPoliticoPeer::N_MONITORING_USERS);
     $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN);
     $c->add(OppCaricaPeer::DATA_FINE, NULL, Criteria::ISNULL);
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, $tipo_carica);
     // escludere boldrini e grasso
     $c->add(OppPoliticoPeer::ID, array(686427, 687024), Criteria::NOT_IN);
     $this->quale_pagina = $this->classifica;
     // random sul cosa
     if ($this->classifica == 0) {
         $random = rand(1, 4);
     } else {
         $random = $this->classifica;
     }
     switch ($random) {
         case 1:
             $c->addDescendingOrderByColumn(OppCaricaPeer::PRESENZE);
             $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
             $this->color = 'green';
             $this->string = 'più presenti';
             $this->cosa = 1;
             break;
         case 2:
             $c->addDescendingOrderByColumn(OppCaricaPeer::ASSENZE);
             $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
             $this->color = 'red';
             $this->string = 'più assenti';
             $this->cosa = 2;
             break;
         case 5:
             $c->addDescendingOrderByColumn(OppCaricaPeer::INDICE);
             $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
             $this->color = 'blue';
             $this->string = 'pi&ugrave; produttivi <span style="margin-left:5px;"><a href="http://indice.openpolis.it/info.html" style="font-size:11px;">come sono calcolati?</a></span>';
             $this->cosa = 3;
             break;
         case 3:
             $c->addDescendingOrderByColumn(OppPoliticoPeer::N_MONITORING_USERS);
             $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
             $this->color = 'orange';
             $this->string = 'pi&ugrave; monitorati dagli utenti';
             $this->cosa = 4;
             break;
         case 4:
             $c->addDescendingOrderByColumn(OppCaricaPeer::RIBELLE);
             $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
             $this->color = 'violet';
             $this->string = 'pi&ugrave; ribelli al proprio gruppo';
             $this->cosa = 5;
             break;
             /*
              case 6:
               $c->addAscendingOrderByColumn(OppCaricaPeer::INDICE);
               $this->color='violet';
               $this->string='meno attivi';
               $this->cosa=6;
             break;
             */
     }
     $c->setLimit($this->limit);
     $this->parlamentari = OppCaricaPeer::doSelectRS($c);
 }
 public function getRibelliList($voto_gruppi = null)
 {
     if (is_null($voto_gruppi)) {
         $voto_gruppi = OppVotazioneHasCaricaPeer::doSelectGroupByGruppo($this->getId());
     }
     $ribelli_id = array();
     $ribelli = array();
     foreach ($voto_gruppi as $gruppo => $risultato) {
         if ($gruppo != 'Gruppo Misto') {
             $c = new Criteria();
             $c->add(OppGruppoPeer::NOME, $gruppo);
             $gruppo_id = $risultato['id'];
             $c = new Criteria();
             $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $this->getId());
             $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, $gruppo_id);
             $voto_gruppo = OppVotazioneHasGruppoPeer::doSelectOne($c);
             if ($voto_gruppo) {
                 if ($voto_gruppo->getVoto() != 'nv') {
                     unset($risultato['Assente']);
                     unset($risultato['In missione']);
                     arsort($risultato);
                     array_shift($risultato);
                     $c = new Criteria();
                     $c->clearSelectColumns();
                     $c->addSelectColumn(OppCaricaPeer::POLITICO_ID);
                     $c->addSelectColumn(OppGruppoPeer::NOME);
                     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
                     $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO);
                     $c->addJoin(OppCaricaPeer::ID, OppVotazioneHasCaricaPeer::CARICA_ID, Criteria::LEFT_JOIN);
                     $c->addJoin(OppCaricaPeer::ID, OppCaricaHasGruppoPeer::CARICA_ID, Criteria::LEFT_JOIN);
                     $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::LEFT_JOIN);
                     $c->add(OppGruppoPeer::NOME, $gruppo, Criteria::EQUAL);
                     $c->add(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, $this->getId(), Criteria::EQUAL);
                     $c->add(OppVotazioneHasCaricaPeer::VOTO, array_keys($risultato), Criteria::IN);
                     $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $this->getOppSeduta()->getData(), Criteria::LESS_EQUAL);
                     $cton1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $this->getOppSeduta()->getData(), Criteria::GREATER_EQUAL);
                     $cton2 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL);
                     $cton1->addOr($cton2);
                     $c->add($cton1);
                     $rs = OppCaricaPeer::doSelectRS($c);
                     while ($rs->next()) {
                         $ribelli1[$rs->getInt(1)] = array('id' => $rs->getInt(1), 'gruppo' => $rs->getString(2), 'circoscrizione' => $rs->getString(3), 'voto_gruppo' => $voto_gruppo->getVoto(), 'voto' => $rs->getString(4));
                         array_push($ribelli_id, $rs->getInt(1));
                     }
                 }
             }
         }
     }
     $c = new Criteria();
     $c->add(OppPoliticoPeer::ID, $ribelli_id, Criteria::IN);
     $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
     $rs1 = OppPoliticoPeer::doSelectRS($c);
     while ($rs1->next()) {
         $ribelli[$rs1->getString(3) . ' ' . $rs1->getString(2)] = $ribelli1[$rs1->getInt(1)];
     }
     return $ribelli;
 }
 public static function doSelectFullReport($politico_id)
 {
     $risultato = array();
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppCaricaPeer::DATA_INIZIO);
     $c->addSelectColumn(OppCaricaPeer::DATA_FINE);
     $c->addSelectColumn(OppCaricaPeer::CARICA);
     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
     $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO);
     $c->addSelectColumn(OppCaricaPeer::INDICE);
     $c->addSelectColumn(OppCaricaPeer::POSIZIONE);
     $c->addAsColumn('CONT', 'COUNT(*)');
     $c->addJoin(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaPeer::ID, Criteria::LEFT_JOIN);
     $c->addGroupByColumn(OppCaricaPeer::ID);
     $c->addGroupByColumn(OppVotazioneHasCaricaPeer::VOTO);
     $c->add(OppCaricaPeer::POLITICO_ID, $politico_id, Criteria::EQUAL);
     $c->addDescendingOrderByColumn(OppCaricaPeer::DATA_INIZIO);
     $c->addDescendingOrderByColumn(OppCaricaPeer::DATA_FINE);
     $rs = OppCaricaPeer::doSelectRS($c);
     while ($rs->next()) {
         if (!isset($risultato[$rs->getInt(1)])) {
             $risultato[$rs->getInt(1)] = array('data_inizio' => $rs->getDate(2, 'Y-m-d'), 'data_fine' => $rs->getDate(3, 'Y-m-d'), 'carica' => $rs->getString(4), 'circoscrizione' => $rs->getString(5), 'Assente' => 0, 'Astenuto' => 0, 'Contrario' => 0, 'Favorevole' => 0, 'In missione' => 0, 'Partecipante votazione non valida' => 0, 'Presidente di turno' => 0, 'Richiedente la votazione e non votante' => 0, 'Voto segreto' => 0, 'Indice' => $rs->getFloat(7), 'Posizione' => $rs->getInt(8));
         }
         $risultato[$rs->getInt(1)][$rs->getString(6)] = $rs->getInt(9);
     }
     return $risultato;
 }
 public function _get_most_something($crit, $tipo_carica, $field, $limit = null)
 {
     sfLoader::loadHelpers(array('Url', 'Tag', 'Slugger'));
     // if limit was not passed, then get it from config file
     if (is_null($limit)) {
         $limit = sfConfig::get('app_api_classifiche_limit', 5);
     }
     $c = clone $crit;
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, $tipo_carica);
     $c->addDescendingOrderByColumn($field);
     $c->setLimit($limit);
     $rs = OppCaricaPeer::doSelectRS($c);
     $results = array();
     while ($rs->next()) {
         $record = array();
         $record['img_src'] = OppPoliticoPeer::getThumbUrl($rs->getInt(2));
         $record['nome'] = $rs->getString(3) . ' ' . $rs->getString(4);
         $record['nome_link'] = url_for('@parlamentare?id=' . $rs->getInt(2) . '&slug=' . slugify($record['nome']));
         $record['gruppi'] = '';
         $gruppi = OppCaricaHasGruppoPeer::doSelectGruppiPerCarica($rs->getInt(1));
         foreach ($gruppi as $nome => $gruppo) {
             if (!$gruppo['data_fine']) {
                 $record['gruppi'] = " ({$nome})";
             }
         }
         switch ($field) {
             case OppCaricaPeer::PRESENZE:
                 $num_votazioni = $rs->getInt(6) + $rs->getInt(7) + $rs->getInt(8);
                 $record['descr'] = "%s% - %d su %d";
                 $record['values'] = array(number_format($rs->getInt(6) * 100 / $num_votazioni, 2), $rs->getInt(6), $num_votazioni);
                 break;
             case OppCaricaPeer::ASSENZE:
                 $num_votazioni = $rs->getInt(6) + $rs->getInt(7) + $rs->getInt(8);
                 $record['descr'] = "%s% - %d su %d";
                 $record['values'] = array(number_format($rs->getInt(7) * 100 / $num_votazioni, 2), $rs->getInt(7), $num_votazioni);
                 break;
             case OppCaricaPeer::INDICE:
                 $record['descr'] = "indice di attivit&agrave;: %5.2f";
                 $record['values'] = array($rs->getFloat(9));
                 break;
             case OppPoliticoPeer::N_MONITORING_USERS:
                 $record['descr'] = "&egrave; monitorato da %d utenti";
                 $record['values'] = array($rs->getInt(13));
                 break;
             case OppCaricaPeer::RIBELLE:
                 $record['descr'] = "voti diversi dal suo gruppo: %d su %d";
                 $record['values'] = array($rs->getInt(12), $rs->getInt(6));
                 break;
         }
         $results[] = $record;
     }
     return $results;
 }
Exemplo n.º 7
0
 public function getReport()
 {
     $risultato = array('Assente' => 0, 'Astenuto' => 0, 'Contrario' => 0, 'Favorevole' => 0, 'In missione' => 0, 'Partecipante votazione non valida' => 0, 'Presidente di turno' => 0, 'Richiedente la votazione e non votante' => 0, 'Voto segreto' => 0);
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppCaricaPeer::DATA_INIZIO);
     $c->addSelectColumn(OppCaricaPeer::DATA_FINE);
     $c->addSelectColumn(OppCaricaPeer::CARICA);
     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
     $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO);
     $c->addAsColumn('CONT', 'COUNT(*)');
     $c->addJoin(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaPeer::ID, Criteria::LEFT_JOIN);
     $c->addGroupByColumn(OppCaricaPeer::ID);
     $c->addGroupByColumn(OppVotazioneHasCaricaPeer::VOTO);
     $c->add(OppCaricaPeer::ID, $this->getId(), Criteria::EQUAL);
     $c->addDescendingOrderByColumn(OppCaricaPeer::DATA_INIZIO);
     $c->addDescendingOrderByColumn(OppCaricaPeer::DATA_FINE);
     $rs = OppCaricaPeer::doSelectRS($c);
     while ($rs->next()) {
         if (!isset($risultato['carica'])) {
             $risultato['carica'] = $rs->getString(4);
         }
         $risultato[$rs->getString(6)] = $rs->getInt(7);
     }
     return $risultato;
 }
 public function executeSenatorisioccupanodi()
 {
     $options = array('limit' => 10, 'sort_by_relevance' => true);
     //$options = array('sort_by_relevance' => true);
     // estrazione cariche, tipo firma, tipo atto
     $c = new Criteria();
     $c->addJoin(OppCaricaPeer::ID, OppCaricaHasAttoPeer::CARICA_ID);
     $c->addJoin(OppCaricaHasAttoPeer::ATTO_ID, OppAttoPeer::ID);
     $c->addJoin(TaggingPeer::TAGGABLE_ID, OppAttoPeer::ID);
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, array(4, 5), Criteria::IN);
     $c->add(OppCaricaPeer::DATA_FINE, NULL);
     $c->add(TaggingPeer::TAG_ID, $this->tag->getId());
     $c->add(TaggingPeer::TAGGABLE_MODEL, 'OppAtto');
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppCaricaHasAttoPeer::TIPO);
     $c->addSelectColumn(OppAttoPeer::TIPO_ATTO_ID);
     // costruzione array associativo dei politici
     $politici = array();
     $rs = OppCaricaPeer::doSelectRS($c);
     while ($rs->next()) {
         $carica_id = $rs->getInt(1);
         $tipo = $rs->getString(2);
         $tipo_atto_id = $rs->getInt(3);
         if (!array_key_exists($carica_id, $politici)) {
             $politici[$carica_id] = 0;
         }
         $politici[$carica_id] += OppCaricaHasAttoPeer::get_nuovo_fattore_firma($tipo) * OppAttoPeer::get_fattore_tipo_atto($tipo_atto_id);
     }
     // ordinamento per rilevanza, prima dello slice
     arsort($politici);
     // slice dell'array, se specificata l'opzione limit
     $this->n_remaining_politici = 0;
     if (isset($options['limit']) && count($politici) > $options['limit']) {
         $this->n_remaining_politici = count($politici) - $options['limit'];
         $politici = array_slice($politici, 0, $options['limit'], true);
     }
     // ordinamento per triple_value, in caso sort_by_relevance non sia specificato
     if (!isset($options['sort_by_relevance']) || true !== $options['sort_by_relevance']) {
         krsort($politici);
     }
     $this->politici = $politici;
 }
 public static function doSelectVotoGruppo($votazione_id, $gruppo)
 {
     $c = new Criteria();
     $c->add(OppVotazionePeer::ID, $votazione_id);
     $votazione = OppVotazionePeer::doSelectOne($c);
     $data_votazione = $votazione->getOppSeduta()->getData();
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO);
     $c->addAsColumn('CONT', 'COUNT(*)');
     $c->addJoin(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaPeer::ID, Criteria::INNER_JOIN);
     $c->addJoin(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, OppVotazionePeer::ID, Criteria::INNER_JOIN);
     //$c->addJoin(OppVotazionePeer::SEDUTA_ID, OppSedutaPeer::ID, Criteria::INNER_JOIN);
     $c->addJoin(OppCaricaPeer::ID, OppCaricaHasGruppoPeer::CARICA_ID, Criteria::INNER_JOIN);
     $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::INNER_JOIN);
     $c->add(OppVotazioneHasCaricaPeer::VOTO, 'Assente', Criteria::NOT_EQUAL);
     $cton1 = $c->getNewCriterion(OppVotazioneHasCaricaPeer::VOTO, 'Favorevole', Criteria::EQUAL);
     $cton2 = $c->getNewCriterion(OppVotazioneHasCaricaPeer::VOTO, 'Contrario', Criteria::EQUAL);
     $cton1->addOr($cton2);
     $cton3 = $c->getNewCriterion(OppVotazioneHasCaricaPeer::VOTO, 'Astenuto', Criteria::EQUAL);
     $cton1->addOr($cton3);
     $c->add($cton1);
     $c->add(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, $votazione_id, Criteria::EQUAL);
     $c->add(OppGruppoPeer::NOME, $gruppo, Criteria::EQUAL);
     $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $data_votazione, Criteria::LESS_EQUAL);
     $cton4 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $data_votazione, Criteria::GREATER_EQUAL);
     $cton5 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL);
     $cton4->addOr($cton5);
     $c->add($cton4);
     $c->addGroupByColumn(OppVotazioneHasCaricaPeer::VOTO);
     $c->addDescendingOrderByColumn('CONT');
     $c->setLimit(2);
     $rs = OppCaricaPeer::doSelectRS($c);
     $voto = 'nv';
     $voti = array();
     $i = 0;
     while ($rs->next()) {
         $voti[$i] = array('voto' => $rs->getString(1), 'numero' => $rs->getInt(2));
         $i++;
     }
     if (count($voti) > 1 && $voti[0]['numero'] != $voti[1]['numero'] || count($voti) == 1) {
         $voto = $voti[0]['voto'];
     }
     return $voto;
 }
 public function executeComparaQuesto()
 {
     if ($this->ramo == 1) {
         $this->tipo_carica = 1;
     } else {
         $this->tipo_carica = 4;
     }
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppPoliticoPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::COGNOME);
     $c->addSelectColumn(OppPoliticoPeer::NOME);
     $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID);
     $c->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, $this->tipo_carica, Criteria::EQUAL);
     $c->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL);
     $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
     $this->parlamentari = OppCaricaPeer::doSelectRS($c);
 }
 public function executeParlamentariSalva()
 {
     $ramo = $this->getRequestParameter('ramo');
     $this->ramo = $ramo;
     $this->getResponse()->setTitle('la classifica dei ' . ($ramo == 'camera' ? 'deputati' : 'senatori') . ' di opposizione che hanno salvato la maggioranza nelle votazioni - ' . sfConfig::get('app_main_title'));
     $this->response->addMeta('description', 'La lista e il dettaglio dei ' . ($ramo == 'camera' ? 'deputati' : 'senatori') . ' di opposizione che con i loro voti e con le assenze hanno salvato la maggioranza nelle votazione elettroniche', true);
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::COGNOME);
     $c->addSelectColumn(OppPoliticoPeer::NOME);
     $c->addSelectColumn(OppCaricaPeer::MAGGIORANZA_SALVA);
     $c->addSelectColumn(OppCaricaPeer::TIPO_CARICA_ID);
     $c->addSelectColumn(OppCaricaPeer::MAGGIORANZA_SALVA_ASSENTE);
     $c->addAsColumn("CONT", "CONCAT(" . OppCaricaPeer::MAGGIORANZA_SALVA . " - " . OppCaricaPeer::MAGGIORANZA_SALVA_ASSENTE . ")");
     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
     $c->addSelectColumn(OppCaricaPeer::DATA_FINE);
     $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN);
     $c->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
     //$c->add(OppCaricaPeer::DATA_FINE, NULL, Criteria::ISNULL);
     if ($this->getRequestParameter('ramo') == 'camera') {
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, 1);
     } elseif ($this->getRequestParameter('ramo') == 'senato') {
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, 4);
     }
     $c->addDescendingOrderByColumn(OppCaricaPeer::MAGGIORANZA_SALVA);
     //$c->addDescendingOrderByColumn('CAST(CONT AS UNSIGNED )');
     $this->parlamentari = OppCaricaPeer::doSelectRS($c);
 }
 public function executeCommissioniMembri()
 {
     $this->setLayout(false);
     $this->getResponse()->setTitle('I componenti della Commissione - ' . sfConfig::get('app_main_title'));
     $sede_id = $this->getRequestParameter('sede');
     $this->sort = $this->getRequestParameter('sort');
     //estrae le commissioni parmanenti senato
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppTipoCaricaPeer::NOME);
     $c->addSelectColumn(OppCaricaHasGruppoPeer::GRUPPO_ID);
     $c->addJoin(OppCaricaInternaPeer::TIPO_CARICA_ID, OppTipoCaricaPeer::ID);
     $c->addJoin(OppCaricaInternaPeer::CARICA_ID, OppCaricaPeer::ID);
     $c->addJoin(OppPoliticoPeer::ID, OppCaricaPeer::POLITICO_ID);
     $c->addJoin(OppCaricaHasGruppoPeer::CARICA_ID, OppCaricaPeer::ID);
     $c->add(OppCaricaInternaPeer::SEDE_ID, $sede_id);
     $c->add(OppCaricaInternaPeer::DATA_FINE, NULL, Criteria::ISNULL);
     $c->add(OppCaricaHasGruppoPeer::DATA_FINE, NULL, Criteria::ISNULL);
     $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
     $rs = OppCaricaPeer::doSelectRS($c);
     $g_membri = array();
     while ($rs->next()) {
         $c_membri[$rs->getInt(1)] = strtolower($rs->getString(2));
         if (array_key_exists($rs->getInt(3), $g_membri)) {
             $g_membri[$rs->getInt(3)] = $g_membri[$rs->getInt(3)] . "," . $rs->getInt(1) . "-" . strtolower($rs->getString(2));
         } else {
             $g_membri[$rs->getInt(3)] = $rs->getInt(1) . "-" . strtolower($rs->getString(2));
         }
     }
     $this->c_membri = $c_membri;
     $this->g_membri = $g_membri;
     $this->sede_id = $sede_id;
 }