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(); $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();
<?php 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();
public static function doSelectVotoGruppo($votazione_id, $gruppo) { $c = new Criteria(); $c->add(OppVotazionePeer::ID, $votazione_id); $votazione = OppVotazionePeer::doSelectOne($c); $data_votazione = $votazione->getOppSeduta()->getData(); $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO); $c->addAsColumn('CONT', 'COUNT(*)'); $c->addJoin(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaPeer::ID, Criteria::INNER_JOIN); $c->addJoin(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, OppVotazionePeer::ID, Criteria::INNER_JOIN); //$c->addJoin(OppVotazionePeer::SEDUTA_ID, OppSedutaPeer::ID, Criteria::INNER_JOIN); $c->addJoin(OppCaricaPeer::ID, OppCaricaHasGruppoPeer::CARICA_ID, Criteria::INNER_JOIN); $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::INNER_JOIN); $c->add(OppVotazioneHasCaricaPeer::VOTO, 'Assente', Criteria::NOT_EQUAL); $cton1 = $c->getNewCriterion(OppVotazioneHasCaricaPeer::VOTO, 'Favorevole', Criteria::EQUAL); $cton2 = $c->getNewCriterion(OppVotazioneHasCaricaPeer::VOTO, 'Contrario', Criteria::EQUAL); $cton1->addOr($cton2); $cton3 = $c->getNewCriterion(OppVotazioneHasCaricaPeer::VOTO, 'Astenuto', Criteria::EQUAL); $cton1->addOr($cton3); $c->add($cton1); $c->add(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, $votazione_id, Criteria::EQUAL); $c->add(OppGruppoPeer::NOME, $gruppo, Criteria::EQUAL); $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $data_votazione, Criteria::LESS_EQUAL); $cton4 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $data_votazione, Criteria::GREATER_EQUAL); $cton5 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL); $cton4->addOr($cton5); $c->add($cton4); $c->addGroupByColumn(OppVotazioneHasCaricaPeer::VOTO); $c->addDescendingOrderByColumn('CONT'); $c->setLimit(2); $rs = OppCaricaPeer::doSelectRS($c); $voto = 'nv'; $voti = array(); $i = 0; while ($rs->next()) { $voti[$i] = array('voto' => $rs->getString(1), 'numero' => $rs->getInt(2)); $i++; } if (count($voti) > 1 && $voti[0]['numero'] != $voti[1]['numero'] || count($voti) == 1) { $voto = $voti[0]['voto']; } return $voto; }