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;
 }
예제 #2
0
 /**
  * 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;
 }