$c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTAZIONE_ID); $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO); $c->addJoin(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, OppVotazionePeer::ID, Criteria::LEFT_JOIN); $c->addJoin(OppVotazionePeer::SEDUTA_ID, OppSedutaPeer::ID, Criteria::LEFT_JOIN); $c->add(OppVotazioneHasCaricaPeer::CARICA_ID, $argv[1], Criteria::EQUAL); if ($df != '') { $cton1 = $c->getNewCriterion(OppSedutaPeer::DATA, $di, Criteria::GREATER_EQUAL); $cton2 = $c->getNewCriterion(OppSedutaPeer::DATA, $df, Criteria::LESS_EQUAL); $cton1->addAnd($cton2); $c->add($cton1); } else { $c->add(OppSedutaPeer::DATA, $di, Criteria::GREATER_EQUAL); } $rs = OppVotazioneHasCaricaPeer::doSelectRS($c); $voto_carica = array(); while ($rs->next()) { $voto_carica[$rs->getInt(1)] = $rs->getString(2); } $cont = 0; foreach ($voto_gruppo as $indice => $voto) { if (isset($voto_carica[$indice]) && ($voto == 'Favorevole' || $voto == 'Astenuto' || $voto == 'Contrario') && $voto != $voto_carica[$indice]) { if ($voto_carica[$indice] == 'Favorevole' || $voto_carica[$indice] == 'Astenuto' || $voto_carica[$indice] == 'Contrario') { $cont = $cont + 1; echo "votazione: " . $indice . " voto gruppo: " . $voto . " voto carica: " . $voto_carica[$indice] . "\n"; } } } /* $c = new Criteria();
/** * torna array contenente il dettaglio del comportamento dei gruppi * - Gruppo Misto * - favorevole => N * - contrario => N * - astenuto => N * - assente => N * - in missione => N * * @param integer $votazione_id * @return complex hash * @author Guglielmo Celata */ public static function doSelectGroupByGruppo($votazione_id, $data = null) { if (is_null($data)) { $votazione = OppVotazionePeer::retrieveByPK($votazione_id); $data = $votazione->getOppSeduta()->getData('Y-m-d'); } $risultato = array(); $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(OppGruppoPeer::NOME); $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO); $c->addSelectColumn(OppGruppoPeer::ID); $c->addAsColumn('CONT', 'COUNT(*)'); $c->addJoin(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaPeer::ID, Criteria::INNER_JOIN); $c->addJoin(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaHasGruppoPeer::CARICA_ID, Criteria::INNER_JOIN); $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::INNER_JOIN); $c->add(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, $votazione_id); $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $data, Criteria::LESS_EQUAL); $cton1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $data, Criteria::GREATER_EQUAL); $cton2 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL); $cton1->addOr($cton2); $c->add($cton1); $c->addGroupByColumn(OppGruppoPeer::NOME); $c->addGroupByColumn(OppVotazioneHasCaricaPeer::VOTO); $rs = OppVotazioneHasCaricaPeer::doSelectRS($c); while ($rs->next()) { if (!isset($risultato[$rs->getString(1)])) { $risultato[$rs->getString(1)] = array('id' => $rs->getInt(3), 'Favorevole' => 0, 'Contrario' => 0, 'Astenuto' => 0, 'Assente' => 0, 'In missione' => 0); } if (isset($risultato[$rs->getString(1)][$rs->getString(2)])) { $risultato[$rs->getString(1)][$rs->getString(2)] = $rs->getInt(4); } } return $risultato; }
public function getVoti($page = 1) { $voti = array(); $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(OppVotazionePeer::ID); $c->addSelectColumn(OppSedutaPeer::RAMO); $c->addSelectColumn(OppSedutaPeer::LEGISLATURA); $c->addSelectColumn(OppSedutaPeer::DATA); $c->addSelectColumn(OppVotazionePeer::TITOLO); $c->addSelectColumn(OppVotazioneHasCaricaPeer::VOTO); $c->addSelectColumn(OppVotazionePeer::ESITO); $c->addSelectColumn(OppGruppoPeer::NOME); $c->addSelectColumn(OppVotazioneHasGruppoPeer::VOTO); $c->addJoin(OppCaricaPeer::ID, OppVotazioneHasCaricaPeer::CARICA_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(OppVotazioneHasCaricaPeer::CARICA_ID, OppCaricaHasGruppoPeer::CARICA_ID, Criteria::INNER_JOIN); $c->addJoin(OppCaricaHasGruppoPeer::GRUPPO_ID, OppGruppoPeer::ID, Criteria::INNER_JOIN); $c->addJoin(OppVotazioneHasCaricaPeer::VOTAZIONE_ID, OppVotazioneHasGruppoPeer::VOTAZIONE_ID, Criteria::INNER_JOIN); $c->add(OppCaricaPeer::POLITICO_ID, $this->getId(), Criteria::EQUAL); $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, OppSedutaPeer::DATA, Criteria::LESS_EQUAL); $cton1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, OppSedutaPeer::DATA, Criteria::GREATER_EQUAL); $cton2 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL); $cton1->addOr($cton2); $c->add($cton1); $c->add(OppVotazioneHasGruppoPeer::GRUPPO_ID, OppVotazioneHasGruppoPeer::GRUPPO_ID . '=' . OppGruppoPeer::ID, Criteria::CUSTOM); $c->addDescendingOrderByColumn(OppSedutaPeer::DATA); if ($page != 1) { $c->setOffset(sfConfig::get('app_pagination_limit') * $page); } $c->setLimit(sfConfig::get('app_pagination_limit')); $rs = OppVotazioneHasCaricaPeer::doSelectRS($c); while ($rs->next()) { //$voto_gruppo = OppVotazionePeer::doSelectVotoGruppo($rs->getInt(1), $rs->getString(8)); $voti[$rs->getInt(1)] = array('ramo' => $rs->getString(2) == 'C' ? 'Camera' : 'Senato', 'legislatura' => $rs->getString(3), 'data' => $rs->getDate(4, 'Y-m-d'), 'titolo' => str_replace(';NULL', '', $rs->getString(5)), 'voto' => $rs->getString(6), 'voto_gruppo' => $rs->getString(9), 'esito' => Text::decodeEsito($rs->getString(7))); } return $voti; }