public static function doSelectDataUltimaVotazione($data_inizio, $data_fine, $legislatura, $ramo) { $c = new Criteria(); $c->addJoin(OppSedutaPeer::ID, OppVotazionePeer::SEDUTA_ID); //$c->add(OppSedutaPeer::DATA, $data_inizio, Criteria::GREATER_EQUAL); $c->add(OppSedutaPeer::RAMO, $ramo, Criteria::EQUAL); $c->add(OppSedutaPeer::LEGISLATURA, $legislatura, Criteria::EQUAL); if ($data_inizio != '') { $c->add(OppSedutaPeer::DATA, $data_inizio, Criteria::GREATER_EQUAL); } if ($data_fine != '') { $c->add(OppSedutaPeer::DATA, $data_fine, Criteria::LESS_EQUAL); } $c->addDescendingOrderByColumn(OppSedutaPeer::DATA); $result = OppSedutaPeer::doSelectOne($c); return $result->getData(); }
define('SF_ROOT_DIR', realpath(dirname(__FILE__) . '/..')); define('SF_APP', 'fe'); define('SF_ENVIRONMENT', 'dev'); define('SF_DEBUG', false); require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php'; sfContext::getInstance(); if ($argv[1]) { print "elaborazione votazione: " . $argv[1] . "...\n"; $c = new Criteria(); $c->add(OppVotazionePeer::ID, $argv[1], Criteria::EQUAL); $votazione = OppVotazionePeer::doSelectOne($c); if ($votazione) { $c = new Criteria(); $c->add(OppSedutaPeer::ID, $votazione->getSedutaId(), Criteria::EQUAL); $seduta = OppSedutaPeer::doSelectOne($c); $c = new Criteria(); $crit0 = $c->getNewCriterion(OppGruppoRamoPeer::RAMO, $seduta->getRamo()); $crit1 = $c->getNewCriterion(OppGruppoRamoPeer::DATA_INIZIO, $seduta->getData(), Criteria::LESS_EQUAL); $crit2 = $c->getNewCriterion(OppGruppoRamoPeer::DATA_FINE, $seduta->getData(), Criteria::GREATER_THAN); $crit3 = $c->getNewCriterion(OppGruppoRamoPeer::DATA_FINE, NULL, Criteria::ISNULL); $crit2->addOr($crit3); $crit0->addAnd($crit1); $crit0->addAnd($crit2); $c->add($crit0); $gruppi_votazione = OppGruppoRamoPeer::doSelect($c); foreach ($gruppi_votazione as $gruppo) { $gr = OppGruppoPeer::retrieveByPk($gruppo->getGruppoId()); $voto_gruppo = OppVotazionePeer::doSelectVotoGruppo($votazione->getId(), $gr->getNome()); $c = new Criteria(); $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $votazione->getId());
public function executeCosa() { $this->_getAndCheckParlamentare(); if ($this->carica) { $this->id_gruppo_corrente = $this->parlamentare->getGruppoCorrente()->getId(); $this->incarico = OppChgIncaricoPeer::getIncaricoGruppoCorrente($this->carica->getId(), $this->id_gruppo_corrente); $this->acronimo_gruppo_corrente = $this->parlamentare->getGruppoCorrente()->getAcronimo(); $this->gruppi = OppCaricaHasGruppoPeer::doSelectTuttiGruppiPerCarica($this->carica->getId(), 2); $this->circoscrizione = $this->carica->getCircoscrizione(); // $this->cariche = $this->parlamentare->getAltreCariche(); // reset sessioni utente filtri e ordinamento $this->session = $this->getUser(); $this->session->getAttributeHolder()->removeNamespace('acts_filter'); $this->session->getAttributeHolder()->removeNamespace('opp_parlamentare_atti/sort'); $this->session->getAttributeHolder()->removeNamespace('votes_filter'); $this->session->getAttributeHolder()->removeNamespace('opp_parlamentare_voti/sort'); $c = new Criteria(); $c->addJoin(OppSedutaPeer::ID, OppVotazionePeer::SEDUTA_ID); if ($this->carica->getTipoCaricaId() == 1) { $ramo = 'C'; } if ($this->carica->getTipoCaricaId() == 4 || $this->carica->getTipoCaricaId() == 5) { $ramo = 'S'; } $this->ramo = $ramo == 'C' ? 'camera' : 'senato'; if ($this->ramo == 'camera') { $this->getResponse()->setTitle('On. ' . $this->parlamentare->getNome() . ' ' . $this->parlamentare->getCognome() . ' - cosa fa in parlamento - ' . sfConfig::get('app_main_title')); $c->add(OppSedutaPeer::RAMO, 'C'); } else { $this->getResponse()->setTitle('Sen. ' . $this->parlamentare->getNome() . ' ' . $this->parlamentare->getCognome() . ' - cosa fa in parlamento - ' . sfConfig::get('app_main_title')); $c->add(OppSedutaPeer::RAMO, 'S'); } $this->response->addMeta('description', 'Come vota, quali atti presenta, a chi è più vicino, quanto è presente, l\'indice di produttività di ' . $this->parlamentare->getNome() . ' ' . $this->parlamentare->getCognome(), true); $c->addDescendingOrderByColumn(OppSedutaPeer::DATA); $result = OppSedutaPeer::doSelectOne($c); $this->ultima_votazione = $result->getData(); $nparl = OppCaricaPeer::getNParlamentari($ramo); $this->presenze = $this->carica->getPresenze(); $this->assenze = $this->carica->getAssenze(); $this->missioni = $this->carica->getMissioni(); $this->nvotazioni = $this->presenze + $this->assenze + $this->missioni; $this->presenze_perc = $this->presenze * 100 / $this->nvotazioni; $this->assenze_perc = $this->assenze * 100 / $this->nvotazioni; $this->missioni_perc = $this->missioni * 100 / $this->nvotazioni; $this->presenze_media = OppCaricaPeer::getSomma('presenze', $ramo) / $nparl; $this->assenze_media = OppCaricaPeer::getSomma('assenze', $ramo) / $nparl; $this->missioni_media = OppCaricaPeer::getSomma('missioni', $ramo) / $nparl; $this->nvotazioni_media = $this->presenze_media + $this->assenze_media + $this->missioni_media; $this->presenze_media_perc = $this->presenze_media * 100 / $this->nvotazioni_media; $this->assenze_media_perc = $this->assenze_media * 100 / $this->nvotazioni_media; $this->missioni_media_perc = $this->missioni_media * 100 / $this->nvotazioni_media; // calcolo totale ribellioni e presenze ai fini del calcolo delle perc. a partire dai gruppi $pres_ribelli = 0; $ribellioni = 0; foreach ($this->gruppi as $acronimo => $gruppo) { $pres_ribelli += $gruppo['presenze']; $ribellioni += $gruppo['ribelle']; } $this->nvoti_validi = $pres_ribelli; $pres_ribelli_media = OppCaricaHasGruppoPeer::getSomma('presenze', $ramo) / $nparl; $this->ribelli = $ribellioni; if ($ribellioni == 0) { $this->ribelli_perc = 0; } else { $this->ribelli_perc = $ribellioni * 100 / $this->nvoti_validi; } $this->ribelli_media = OppCaricaHasGruppoPeer::getSomma('ribelle', $ramo) / $nparl; $this->ribelli_media_perc = $this->ribelli_media * 100 / $pres_ribelli_media; // altre cariche da openpolis $xml = simplexml_load_file("http://politici.openpolis.it/api/chargeFindByPolitician/3114a2d106054d26c364c4cfff85910f97f7e29a/" . $this->parlamentare->getId()); $this->descrizione_cariche = array(); if ($xml) { $this->descrizione_cariche = $xml->xpath("//description"); } // da quanti giorni è parlamentare da openpolis $xml = simplexml_load_file("http://politici.openpolis.it/api/parlamentareHowDays?id=" . $this->parlamentare->getId()); $this->giorni = array(); if ($xml) { $giorni = $xml->xpath("//days"); } if ($giorni[0] / 365 >= 2) { $durata = intval($giorni[0] / 365) . ' anni e '; } elseif ($giorni[0] / 365 >= 1) { $durata = 'un anno e '; } else { $durata = ""; } if ($giorni[0] % 365 > 0) { $durata = $durata . $giorni[0] % 365 . " giorni"; } $this->durata = $durata; } }