public static function getVotoGruppoVotazione($gruppo_id, $votazione_id)
 {
     $c = new Criteria();
     $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, $gruppo_id);
     $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $votazione_id);
     $voto = OppVotazioneHasGruppoPeer::doSelectOne($c);
     if ($voto) {
         return $voto->getVoto();
     } else {
         return null;
     }
 }
     $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());
         $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, $gr->getId());
         $result = OppVotazioneHasGruppoPeer::doSelectOne($c);
         if ($result) {
             $result->setVoto($voto_gruppo);
             $result->save();
             print $gr->getNome() . ": " . $voto_gruppo . "\n";
         } else {
             $insert = new OppVotazioneHasGruppo();
             $insert->setVotazioneId($votazione->getId());
             $insert->setGruppoId($gr->getId());
             $insert->setVoto($voto_gruppo);
             $insert->save();
             print "++++++++++++++++ " . $gr->getNome() . ": " . $voto_gruppo . "\n";
         }
         print $gr->getNome() . ": " . $voto_gruppo . "\n";
     }
 } else {
 public static function isMaggioranzaUnitaSuVotazione($votazione_id)
 {
     $votazione = OppVotazionePeer::retrieveByPk($votazione_id);
     $gruppi = OppGruppoRamoPeer::getGruppiRamo($votazione->getOppSeduta()->getRamo(), $votazione->getOppSeduta()->getData());
     $array_gruppi = array();
     foreach ($gruppi as $gruppo) {
         // controlla se il gruppo alla data faceva parte della maggioranza
         if (OppGruppoIsMaggioranzaPeer::isGruppoMaggioranza($gruppo->getGruppoId(), $votazione->getOppSeduta()->getData())) {
             $array_gruppi[] = $gruppo->getGruppoId();
         }
     }
     $voto_magg = "";
     foreach ($array_gruppi as $k => $g) {
         $c = new Criteria();
         $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, $g);
         $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $votazione_id);
         $voto_gruppo = OppVotazioneHasGruppoPeer::doSelectOne($c);
         if ($voto_magg == "" && $voto_gruppo->getVoto() != 'nv') {
             $voto_magg = $voto_gruppo->getVoto();
         } elseif ($voto_gruppo->getVoto() != 'nv') {
             if ($voto_gruppo->getVoto() != $voto_magg) {
                 return false;
             }
         }
     }
     return true;
 }
 public function getRibelliList($voto_gruppi = null)
 {
     if (is_null($voto_gruppi)) {
         $voto_gruppi = OppVotazioneHasCaricaPeer::doSelectGroupByGruppo($this->getId());
     }
     $ribelli_id = array();
     $ribelli = array();
     foreach ($voto_gruppi as $gruppo => $risultato) {
         if ($gruppo != 'Gruppo Misto') {
             $c = new Criteria();
             $c->add(OppGruppoPeer::NOME, $gruppo);
             $gruppo_id = $risultato['id'];
             $c = new Criteria();
             $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $this->getId());
             $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, $gruppo_id);
             $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);
                     $c = new Criteria();
                     $c->clearSelectColumns();
                     $c->addSelectColumn(OppCaricaPeer::POLITICO_ID);
                     $c->addSelectColumn(OppGruppoPeer::NOME);
                     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
                     $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO);
                     $c->addJoin(OppCaricaPeer::ID, OppVotazioneHasCaricaPeer::CARICA_ID, Criteria::LEFT_JOIN);
                     $c->addJoin(OppCaricaPeer::ID, OppCaricaHasGruppoPeer::CARICA_ID, Criteria::LEFT_JOIN);
                     $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::LEFT_JOIN);
                     $c->add(OppGruppoPeer::NOME, $gruppo, Criteria::EQUAL);
                     $c->add(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, $this->getId(), Criteria::EQUAL);
                     $c->add(OppVotazioneHasCaricaPeer::VOTO, array_keys($risultato), Criteria::IN);
                     $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $this->getOppSeduta()->getData(), Criteria::LESS_EQUAL);
                     $cton1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $this->getOppSeduta()->getData(), Criteria::GREATER_EQUAL);
                     $cton2 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL);
                     $cton1->addOr($cton2);
                     $c->add($cton1);
                     $rs = OppCaricaPeer::doSelectRS($c);
                     while ($rs->next()) {
                         $ribelli1[$rs->getInt(1)] = array('id' => $rs->getInt(1), 'gruppo' => $rs->getString(2), 'circoscrizione' => $rs->getString(3), 'voto_gruppo' => $voto_gruppo->getVoto(), 'voto' => $rs->getString(4));
                         array_push($ribelli_id, $rs->getInt(1));
                     }
                 }
             }
         }
     }
     $c = new Criteria();
     $c->add(OppPoliticoPeer::ID, $ribelli_id, Criteria::IN);
     $c->addAscendingOrderByColumn(OppPoliticoPeer::COGNOME);
     $rs1 = OppPoliticoPeer::doSelectRS($c);
     while ($rs1->next()) {
         $ribelli[$rs1->getString(3) . ' ' . $rs1->getString(2)] = $ribelli1[$rs1->getInt(1)];
     }
     return $ribelli;
 }
    $votazioni = OppVotazionePeer::doSelect(OppVotazionePeer::getVotazioniMaggioranzaSotto($argv[1]));
} else {
    $c = new Criteria();
    $c->add(OppVotazionePeer::ID, $argv[2]);
    $c->add(OppVotazionePeer::IS_MAGGIORANZA_SOTTO_SALVA, 1);
    $votazioni = OppVotazionePeer::doSelect($c);
}
echo count($votazioni) . "\n\n";
if (count($votazioni) > 0) {
    foreach ($votazioni as $v) {
        echo $v->getOppSeduta()->getRamo() . $v->getOppSeduta()->getData() . "\n\n";
        //controlla come ha votato la PD (gruppo id=71)
        $c = new Criteria();
        $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, 71);
        $c->add(OppVotazioneHasGruppoPeer::VOTAZIONE_ID, $v->getId());
        $voto_magg = OppVotazioneHasGruppoPeer::doSelectOne($c);
        //prendi i gruppi attivi alla data della votazione nel ramo della votazione
        $gruppi_ramo = OppGruppoRamoPeer::getGruppiRamo($v->getOppSeduta()->getRamo(), $v->getOppSeduta()->getData());
        foreach ($gruppi_ramo as $gruppo) {
            echo $gruppo->getGruppoId() . "\n";
            // controlla se il gruppo alla data faceva parte della maggioranza
            if (OppGruppoIsMaggioranzaPeer::isGruppoMaggioranza($gruppo->getGruppoId(), $v->getOppSeduta()->getData())) {
                //ctrl i voti dei componenti i gruppi di maggioranza
                $c = new Criteria();
                $c->addJoin(OppCaricaPeer::ID, OppCaricaHasGruppoPeer::CARICA_ID);
                $c->addJoin(OppCaricaPeer::ID, OppVotazioneHasCaricaPeer::CARICA_ID);
                $c->addJoin(OppVotazionePeer::ID, OppVotazioneHasCaricaPeer::VOTAZIONE_ID);
                $c->addJoin(OppVotazionePeer::SEDUTA_ID, OppSedutaPeer::ID);
                //ctrl se fa parte del gruppo alla data della votazione
                $crit0 = $c->getNewCriterion(OppCaricaHasGruppoPeer::GRUPPO_ID, $gruppo->getGruppoId());
                $crit1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_INIZIO, $v->getOppSeduta()->getData(), Criteria::LESS_EQUAL);