public function executeList() { $this->session = $this->getUser(); $ramo = $this->getRequestParameter('ramo', 'camera'); // estrae i gruppi del ramo $this->all_groups = OppGruppoPeer::getAllGroups($ramo, 17, 'tutti'); // estrae le circoscrizioni, compreso il valore 0 $this->all_constituencies = OppCaricaPeer::getAllConstituencies($ramo, 'tutte'); // reset dei filtri se richiesto esplicitamente if ($this->getRequestParameter('reset_filters', 'false') == 'true') { $this->getRequest()->getParameterHolder()->set('filter_group', '0'); $this->getRequest()->getParameterHolder()->set('filter_const', '0'); } //estrazione parlamentari $this->processFilters(array('group', 'const'), $ramo); // if all filters were reset, then restart if ($this->getRequestParameter('filter_group') == '0' && $this->getRequestParameter('filter_const') == '0') { $this->redirect('@parlamentari?ramo=' . $ramo); } $this->processSort(); $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->addSelectColumn(OppCaricaPeer::DATA_INIZIO); $c->addSelectColumn(OppCaricaPeer::DATA_FINE); $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN); if ($ramo == 'camera') { $this->getResponse()->setTitle('elenco dei deputati - ' . sfConfig::get('app_main_title')); $this->response->addMeta('description', 'Elenco dei deputati della legislatura con assenze, indice di produttività e voti ribelli', true); $c->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL); $c->add(OppCaricaPeer::TIPO_CARICA_ID, '1', Criteria::EQUAL); //conteggio numero deputati $c1 = new Criteria(); $c1->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL); $c1->add(OppCaricaPeer::TIPO_CARICA_ID, '1', Criteria::EQUAL); $c1->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL); $this->numero_parlamentari = OppCaricaPeer::doCount($c1); } else { $this->getResponse()->setTitle('elenco dei senatori - ' . sfConfig::get('app_main_title')); $this->response->addMeta('description', 'Elenco dei senatori della legislatura con assenze, indice di produttività e voti ribelli', true); $cton = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL); //in questo modo considero i senatori a vita $cton1 = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, null, Criteria::EQUAL); $cton->addOr($cton1); $c->add($cton); $cton = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, '4', Criteria::EQUAL); $cton1 = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, '5', Criteria::EQUAL); $cton->addOr($cton1); $c->add($cton); //conteggio numero senatori $c1 = new Criteria(); $c1->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL); $c1->add(OppCaricaPeer::TIPO_CARICA_ID, '4', Criteria::EQUAL); $c1->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL); $numero_senatori = OppCaricaPeer::doCount($c1); //conteggio numero senatori a vita $c2 = new Criteria(); $c2->add(OppCaricaPeer::TIPO_CARICA_ID, '5', Criteria::EQUAL); $numero_senatori_a_vita = OppCaricaPeer::doCount($c2); $this->numero_parlamentari = $numero_senatori + $numero_senatori_a_vita; } $this->addSortCriteria($c); $this->addFiltersCriteria($c); $c->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL); $this->parlamentari = OppCaricaPeer::doSelectRS($c); $this->n_parlamentari = OppCaricaPeer::doCount($c); //estrazione parlamentari decaduti $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->addSelectColumn(OppCaricaPeer::DATA_INIZIO); $c->addSelectColumn(OppCaricaPeer::DATA_FINE); $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN); if ($ramo == 'camera') { $c->add(OppCaricaPeer::TIPO_CARICA_ID, '1', Criteria::EQUAL); } else { $c->add(OppCaricaPeer::TIPO_CARICA_ID, '4', Criteria::EQUAL); } $c->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL); $c->add(OppCaricaPeer::DATA_FINE, 'NULL', Criteria::NOT_EQUAL); $this->parlamentari_decaduti = OppCaricaPeer::doSelectRS($c); }