public function getCaricaDepSenCorrente()
 {
     $c = new Criteria();
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, array(1, 4, 5), Criteria::IN);
     $c->add(OppCaricaPeer::DATA_FINE, null, Criteria::ISNULL);
     $c->add(OppCaricaPeer::POLITICO_ID, $this->getId());
     return OppCaricaPeer::doSelectOne($c);
 }
 /**
  * restituisce i componenti del Governo (PresDelCons e Ministri) che appartengono ad un gruppo, se data_fine è zero (default, restituisce i componenti attuali, se 1 quelli di tutta la legislatura)
  *
  * @param integer $gruppo_id 
  * @return void
  * @author Ettore Di Cesare
  */
 public static function getCaricheGovernoPerGruppo($gruppo_id, $data_fine = 0, $leg = 16)
 {
     $c = new Criteria();
     $c->add(OppCaricaPeer::LEGISLATURA, $leg, Criteria::EQUAL);
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, array(2, 3), Criteria::IN);
     $ministri = OppCaricaPeer::doSelect($c);
     foreach ($ministri as $ministro) {
         $c = new Criteria();
         $c->add(OppCaricaPeer::POLITICO_ID, $ministro->getPoliticoId());
         $c->add(OppCaricaPeer::LEGISLATURA, $leg);
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, array(1, 4, 5), Criteria::IN);
         $deputato = OppCaricaPeer::doSelectOne($c);
         if ($deputato) {
             $gruppi = self::doSelectTuttiGruppiPerCarica($deputato->getId());
             foreach ($gruppi as $gruppo) {
                 if ($gruppo['gruppo_id'] == $gruppo_id) {
                     $rs[] = $ministro->getId();
                     break;
                 }
             }
         }
     }
     if (count($rs) > 0) {
         return $rs;
     } else {
         return NULL;
     }
 }
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();
print "Fetching data... \n";
$c = new Criteria();
$c->setOffset(3013213);
$c->setLimit(600000);
$votazioni = OppVotazioneHasPoliticoPeer::doSelect($c);
foreach ($votazioni as $votazione) {
    echo "votazione: " . $votazione->getVotazioneId() . " politico: " . $votazione->getPoliticoId() . "\n";
    $c1 = new Criteria();
    $c1->add(OppVotazionePeer::ID, $votazione->getVotazioneId(), Criteria::EQUAL);
    $vot = OppVotazionePeer::doSelectOne($c1);
    $c2 = new Criteria();
    $c2->add(OppSedutaPeer::ID, $vot->getSedutaId(), Criteria::EQUAL);
    $seduta = OppSedutaPeer::doSelectOne($c2);
    $senatori_a_vita = array("1529", "1606", "1719", "1519", "1682", "1456", "1524");
    $c3 = new Criteria();
    $c3->add(OppCaricaPeer::POLITICO_ID, $votazione->getPoliticoId());
    if (!in_array($votazione->getPoliticoId(), $senatori_a_vita)) {
        $c3->add(OppCaricaPeer::LEGISLATURA, $seduta->getLegislatura());
    }
    $carica = OppCaricaPeer::doSelectOne($c3);
    $votazioneCarica = new OppVotazioneHasCarica();
    $votazioneCarica->setVotazioneId($votazione->getVotazioneId());
    $votazioneCarica->setCaricaId($carica->getId());
    $votazioneCarica->setVoto($votazione->getVoto());
    $votazioneCarica->save();
    echo "OK\n";
}
print "done.\n";
 public function executePolitician()
 {
     $this->politician_id = $this->getRequestParameter('id');
     $this->politician = OppPoliticoPeer::retrieveByPK($this->politician_id);
     $this->n_news = oppNewsPeer::countNewsForItem('OppPolitico', $this->politician_id);
     $this->getResponse()->setTitle('tutte le notizie sul parlamentare ' . $this->politician->getNome() . ' ' . $this->politician->getCognome() . ' - ' . sfConfig::get('app_main_title'));
     $this->response->addMeta('description', 'Tutte le notizie aggiornate quotidianamente su cosa fa in Parlamento ' . $this->politician->getNome() . ' ' . $this->politician->getCognome(), true);
     $c = new Criteria();
     $c->add(OppCaricaPeer::TIPO_CARICA_ID, array(1, 4, 5), Criteria::IN);
     $c->add(OppCaricaPeer::DATA_FINE, null, Criteria::ISNULL);
     $c->add(OppCaricaPeer::POLITICO_ID, $this->politician_id);
     $this->carica = OppCaricaPeer::doSelectOne($c);
     $c = oppNewsPeer::getNewsForItemCriteria('OppPolitico', $this->politician_id);
     $c->addDescendingOrderByColumn(NewsPeer::DATE);
     if ($this->hasRequestParameter('itemsperpage')) {
         $this->getUser()->setAttribute('itemsperpage', $this->getRequestParameter('itemsperpage'));
     }
     $itemsperpage = $this->getUser()->getAttribute('itemsperpage', sfConfig::get('app_pagination_limit'));
     $pager = new deppNewsPager('News', $itemsperpage);
     $pager->setCriteria($c);
     $pager->setPage($this->getRequestParameter('page', 1));
     $pager->init();
     $this->pager = $pager;
 }
 public function executeUserVspolitician()
 {
     $arr = array();
     $user_id = $this->user->getId();
     $num = $this->num;
     $leg = $this->legislatura;
     $c = new Criteria();
     $c->add(sfVotingPeer::USER_ID, $user_id);
     $voting_objects = sfVotingPeer::doSelect($c);
     $this->voti_utente = count($voting_objects);
     foreach ($voting_objects as $voting_object) {
         $c = new Criteria();
         $c->addJoin(OppAttoPeer::ID, OppCaricaHasAttoPeer::ATTO_ID);
         $c->addJoin(OppCaricaPeer::ID, OppCaricaHasAttoPeer::CARICA_ID);
         $c->add(OppAttoPeer::ID, $voting_object->getVotableID());
         $c->add(OppAttoPeer::LEGISLATURA, $leg);
         $c->add(OppCaricaHasAttoPeer::TIPO, 'R', Criteria::NOT_EQUAL);
         // aggiunge vincolo su cariche (dep e sen. della leg. corrente + sen. a vita)
         $crit1 = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, $leg);
         $crit2 = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, 5);
         $crit1->addOr($crit2);
         $c->add($crit1);
         $firme = OppCaricaHasAttoPeer::doSelectJoinAll($c);
         foreach ($firme as $firma) {
             $value = $this->calcolaIndice($firma->getOppAtto()->getTipoAttoId(), $firma->getTipo());
             $carica = $firma->getOppCarica();
             if (!array_key_exists($carica->getPoliticoId(), $arr)) {
                 $arr[$carica->getPoliticoId()] = $value * $voting_object->getVoting();
             } else {
                 $arr[$carica->getPoliticoId()] += $value * $voting_object->getVoting();
             }
         }
     }
     $this->vicini = array();
     $this->lontani = array();
     if (count($arr) > 0) {
         arsort($arr);
         if ($num != 1000) {
             $vicini = array_slice($arr, 0, $num, true);
         } else {
             $vicini = $arr;
         }
         $max_valore_abs = max(abs(min($arr)), max($arr));
         $this->normalize = 100 / $max_valore_abs;
         $this->posizione = $arr;
         foreach ($vicini as $key => $vicino) {
             if ($vicino > 0) {
                 $c = new Criteria();
                 $crit0 = $c->getNewCriterion(OppCaricaPeer::POLITICO_ID, $key);
                 $crit1 = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, 16);
                 $crit2 = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, 5);
                 $crit1->addOr($crit2);
                 $crit0->addAnd($crit1);
                 $c->add($crit0);
                 $c->addAscendingOrderByColumn(OppCaricaPeer::TIPO_CARICA_ID);
                 $carica = OppCaricaPeer::doSelectOne($c);
                 $this->vicini[] = array($vicino, $carica);
             } else {
                 break;
             }
         }
         if ($num != 1000) {
             $lontani = array_slice($arr, count($arr) - $num, count($arr), true);
         } else {
             $lontani = $arr;
         }
         asort($lontani);
         foreach ($lontani as $key => $lontano) {
             if ($lontano < 0) {
                 $c = new Criteria();
                 $crit0 = $c->getNewCriterion(OppCaricaPeer::POLITICO_ID, $key);
                 $crit1 = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, 16);
                 $crit2 = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, 5);
                 $crit1->addOr($crit2);
                 $crit0->addAnd($crit1);
                 $c->add($crit0);
                 $c->addAscendingOrderByColumn(OppCaricaPeer::TIPO_CARICA_ID);
                 $carica = OppCaricaPeer::doSelectOne($c);
                 $this->lontani[] = array($lontano, $carica);
             }
         }
     }
 }
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();
print "Fetching data... \n";
$c = new Criteria();
$cariche = OppCaricaPeer::doSelect($c);
foreach ($cariche as $carica) {
    print $carica->getId() . "...\n";
    $c = new Criteria();
    $c->add(OppCaricaPeer::ID, $carica->getId(), Criteria::EQUAL);
    $c->add(OppCaricaPeer::TIPO_CARICA_ID, 1, Criteria::EQUAL);
    $mycarica = OppCaricaPeer::doSelectOne($c);
    switch ($mycarica->getCarica()) {
        case 'Deputato':
            $mycarica->setTipoCaricaId(1);
            break;
        case 'Ministro':
            $mycarica->setTipoCaricaId(2);
            break;
        case 'Presidente':
            $mycarica->setTipoCaricaId(3);
            break;
        case 'Senatore':
            $mycarica->setTipoCaricaId(4);
            break;
        case 'Senatore a vita':
            $mycarica->setTipoCaricaId(5);