public function getRibelliCount() { $risultati = OppVotazioneHasCaricaPeer::doSelectGroupByGruppo($this->getId()); $n = 0; foreach ($risultati as $gruppo => $risultato) { if ($gruppo != 'Gruppo Misto') { $c = new Criteria(); $c->add(OppGruppoPeer::NOME, $gruppo); $gruppo_id = OppGruppoPeer::doSelectOne($c); $c = new Criteria(); $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $this->getId()); $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, $gruppo_id->getId()); $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); $n += array_sum($risultato); } } } } return $n; }
/** * fornisce il gruppo cui la carica appartiene a una certa data * se la data non è passata, fornisce il gruppo corrente * * @param string $date * @return OppGruppo * @author Guglielmo Celata */ public function getGruppo($date = '') { $c = new Criteria(); $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::LEFT_JOIN); $c->add(OppCaricaHasGruppoPeer::CARICA_ID, $this->getId()); if ($date == '') { $c->add(OppCaricaHasGruppoPeer::DATA_FINE, NULL, Criteria::ISNULL); } else { $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $date, Criteria::LESS_EQUAL); $cton0 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL); $cton1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $date, Criteria::GREATER_THAN); $cton0->addOr($cton1); $c->add($cton0); } return OppGruppoPeer::doSelectOne($c); }
/** * restituisce il gruppo corrente per la carica * * @param integer $carica_id * @return void * @author Ettore Di Cesare */ public static function getGruppoCorrentePerCarica($carica_id) { $c = new Criteria(); $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID); $c->add(OppCaricaHasGruppoPeer::CARICA_ID, $carica_id, Criteria::EQUAL); $c->add(OppCaricaHasGruppoPeer::DATA_FINE, NULL, Criteria::ISNULL); $rs = OppGruppoPeer::doSelectOne($c); if ($rs) { return $rs; } else { return NULL; } }
public function executeDdl2legge() { if ($this->gruppo != NULL) { $c = new Criteria(); $c->add(OppGruppoPeer::ACRONIMO, $this->gruppo); $gruppo = OppGruppoPeer::doSelectOne($c); $cariche = OppCaricaHasGruppoPeer::getCarichePerGruppo($gruppo->getId(), 1); foreach ($cariche as $carica) { $componenti_gruppo[] = $carica->getCaricaId(); } } if ($this->gruppo != NULL) { $c = new Criteria(); $c->add(OppGruppoPeer::ACRONIMO, $this->gruppo); $gruppo = OppGruppoPeer::doSelectOne($c); $cariche = OppCaricaHasGruppoPeer::getCaricheGovernoPerGruppo($gruppo->getId(), 1); foreach ($cariche as $carica) { $componenti_gruppo[] = $carica; } } $arrs = array(); $arr_alls = array(); foreach (array(1, 2, 4) as $i) { $c = new Criteria(); if ($this->gruppo != NULL) { $c->addJoin(OppAttoPeer::ID, OppCaricaHasAttoPeer::ATTO_ID); $c->add(OppCaricaHasAttoPeer::CARICA_ID, $componenti_gruppo, Criteria::IN); $c->add(OppCaricaHasAttoPeer::TIPO, 'P'); } $c->add(OppAttoPeer::TIPO_ATTO_ID, 1); $c->add(OppAttoPeer::LEGISLATURA, $this->leg); $c->add(OppAttoPeer::INIZIATIVA, $i); $c->setDistinct(OppAttoPeer::ID); $atti = OppAttoPeer::doSelect($c); $c = new Criteria(); if ($this->gruppo != NULL) { $c->addJoin(OppAttoPeer::ID, OppCaricaHasAttoPeer::ATTO_ID); $c->add(OppCaricaHasAttoPeer::CARICA_ID, $componenti_gruppo, Criteria::IN); $c->add(OppCaricaHasAttoPeer::TIPO, 'P'); } $c->addJoin(OppAttoPeer::ID, OppAttoHasIterPeer::ATTO_ID); $c->add(OppAttoPeer::TIPO_ATTO_ID, 1); $c->add(OppAttoPeer::LEGISLATURA, $this->leg); $c->add(OppAttoPeer::INIZIATIVA, $i); $c->add(OppAttoHasIterPeer::ITER_ID, 16); $c->setDistinct(OppAttoPeer::ID); $leggi = OppAttoHasIterPeer::doSelect($c); $tempo_medio = 0; foreach ($leggi as $legge) { $ddl = $legge->getOppAtto(); while ($ddl->getPred() != NULL) { $ddl = OppAttoPeer::retrieveByPk($ddl->getPred()); } //$this->data_pres=$ddl->getDataPres(); //$this->data_appr=$legge->getData(); $data_pres = strtotime($ddl->getDataPres()); $data_appr = strtotime($legge->getData()); $tempo_medio = $tempo_medio + ($data_appr - $data_pres) / 86400; $arr_alls[] = array($legge->getOppAtto(), ($data_appr - $data_pres) / 86400); } if (count($leggi) > 0) { $tempo_medio = intval($tempo_medio / count($leggi)); } else { $tempo_medio = $tempo_medio; } $arrs[] = array(count($atti), count($leggi), $tempo_medio); } $this->arrs = $arrs; function cmp($a, $b) { if ($a[1] == $b[1]) { return 0; } return $a[1] < $b[1] ? -1 : 1; } usort($arr_alls, "cmp"); $this->arr_alls = $arr_alls; }
<?php define('SF_ROOT_DIR', realpath(dirname(__FILE__) . '/..')); define('SF_APP', 'fe'); define('SF_ENVIRONMENT', 'dev'); define('SF_DEBUG', true); require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php'; sfContext::getInstance(); print "Fetching data... \n"; $cariche = OppCaricaPeer::doSelect(new Criteria()); foreach ($cariche as $carica) { $c = new Criteria(); $c->add(OppGruppoPeer::NOME, $carica->getGruppo(), Criteria::EQUAL); $gruppo = OppGruppoPeer::doSelectOne($c); if ($gruppo != null) { $carica_gruppo = new OppCaricaHasGruppo(); $carica_gruppo->setCaricaId($carica->getId()); $carica_gruppo->setGruppoId($gruppo->getId()); $carica_gruppo->setDataInizio($carica->getDataInizio()); $carica_gruppo->setDataFine($carica->getDataFine()); $carica_gruppo->save(); } else { echo "carica {$carica->getId}() gruppo non trovato\n"; } } print "done.\n";
public function executeGetIndexChartsTopPoliticians() { # check query string parameters and validate to avoid SQL injection $this->forward404Unless($this->hasRequestParameter('ramo')); $ramo = $this->getRequestParameter('ramo', ''); $this->forward404Unless(in_array($ramo, array('C', 'S'))); //$this->forward404Unless($this->hasRequestParameter('data')); $data = $this->getRequestParameter('data', ''); if ($data != '') { $this->forward404Unless(strtotime($data)); } $this->forward404Unless($this->hasRequestParameter('limit')); $limit = (int) $this->getRequestParameter('limit', ''); $this->forward404Unless(is_integer($limit)); $group_acr = $this->getRequestParameter('group', ''); $group_id = null; if ($group_acr != '') { $c = new Criteria(); $c->add(OppGruppoPeer::ACRONIMO, $group_acr); $group = OppGruppoPeer::doSelectOne($c); $this->forward404If(is_null($group)); $group_id = $group->getId(); } foreach ($this->regioni as $reg) { sfContext::getInstance()->getLogger()->info($reg); } $constituency = $this->getRequestParameter('circoscrizione', ''); if ($constituency != '') { $constituency_is_valid = in_array(strtolower($constituency), $this->regioni); $this->forward404Unless($constituency_is_valid); } if ($data != '') { $items = OppPoliticianHistoryCachePeer::getIndexChartsTopPoliticians($ramo, $data, $limit, $group_id, $constituency); } else { $items = OppCaricaPeer::getIndexChartsTopPoliticiansRealTime($ramo, $data, $limit, $group_id, $constituency); } $this->_send_json_output(json_encode($items)); return sfView::NONE; }
public function getGruppoCorrente() { $c = new Criteria(); $c->add(OppCaricaPeer::TIPO_CARICA_ID, array(1, 4, 5), Criteria::IN); $c->add(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL); // dava errore per i senatori a vita // $c->add(OppCaricaPeer::LEGISLATURA, 16); $c->add(OppCaricaPeer::POLITICO_ID, $this->getId()); $c->addJoin(OppCaricaPeer::ID, OppCaricaHasGruppoPeer::CARICA_ID); $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID); return OppGruppoPeer::doSelectOne($c); }
public function executeChartRibelli() { $ribelli = $this->ribelli; $label = ""; $valore = ""; $ribelli_gruppi = array(); foreach ($ribelli as $cognome => $ribelle) { $c1 = new Criteria(); $c1->add(OppGruppoPeer::NOME, $ribelle['gruppo_nome']); $obj_gruppo = OppGruppoPeer::doSelectOne($c1); $gruppo_acr = $obj_gruppo->getAcronimo(); if (!array_key_exists($gruppo_acr, $ribelli_gruppi)) { $ribelli_gruppi[$gruppo_acr] = 0; } $ribelli_gruppi[$gruppo_acr] += 1; } foreach ($ribelli_gruppi as $gruppo1 => $numvoto) { if ($numvoto > 0) { if ($valore == "") { $valore = round($numvoto * 100 / $this->votazione->getRibelli(), 0); } else { $valore = $valore . "," . round($numvoto * 100 / $this->votazione->getRibelli(), 0); } if ($label == "") { $label = $gruppo1 . " " . $numvoto . " (" . round($numvoto * 100 / $this->votazione->getRibelli(), 0) . "%)"; } else { $label = $label . "|" . $gruppo1 . " " . $numvoto . " (" . round($numvoto * 100 / $this->votazione->getRibelli(), 0) . "%)"; } } } $gchartRibelli = "http://chart.apis.google.com/chart?chs=350x130&chd=t:" . $valore . "&cht=p&chl=" . $label . "&chdlp=bv"; $this->gchartRibelli = $gchartRibelli; }