/**
  * etari i gruppi di magg e min. alla data e al ramo
  *
  * @param string $ramo 
  * @param string $data
  * @param integer $maggioranza 
  * @return array
  * @author Guglielmo Celata
  */
 public static function GruppiMaggioranzaMinoranzaNelRamoAllaData($ramo, $data, $maggioranza)
 {
     $c = new Criteria();
     $c->add(OppGruppoIsMaggioranzaPeer::RAMO, $ramo);
     $c->add(OppGruppoIsMaggioranzaPeer::MAGGIORANZA, $maggioranza);
     $c->add(OppGruppoIsMaggioranzaPeer::DATA_INIZIO, $data, Criteria::LESS_EQUAL);
     $crit0 = $c->getNewCriterion(OppGruppoIsMaggioranzaPeer::DATA_FINE, NULL, Criteria::ISNULL);
     $crit1 = $c->getNewCriterion(OppGruppoIsMaggioranzaPeer::DATA_FINE, $data, Criteria::GREATER_EQUAL);
     $crit0->addOr($crit1);
     $c->add($crit0);
     return $gruppi = OppGruppoIsMaggioranzaPeer::doSelect($c);
 }
     $ramo = 'camera';
 } else {
     $ramo = 'senato';
 }
 $arr_opposizione = array();
 $c = new Criteria();
 $c->addJoin(OppGruppoPeer::ID, OppGruppoRamoPeer::GRUPPO_ID);
 $c->add(OppGruppoRamoPeer::DATA_INIZIO, $votazione->getOppSeduta()->getData(), Criteria::LESS_EQUAL);
 $crit0 = $c->getNewCriterion(OppGruppoRamoPeer::DATA_FINE, NULL, Criteria::ISNULL);
 $crit1 = $c->getNewCriterion(OppGruppoRamoPeer::DATA_FINE, $votazione->getOppSeduta()->getData(), Criteria::GREATER_EQUAL);
 $crit0->addOr($crit1);
 $c->add($crit0);
 $c->add(OppGruppoRamoPeer::RAMO, $votazione->getOppSeduta()->getRamo());
 $gruppi = OppGruppoPeer::doSelect($c);
 foreach ($gruppi as $g) {
     if (!OppGruppoIsMaggioranzaPeer::isGruppoMaggioranza($g->getId(), $votazione->getOppSeduta()->getData()) and $g->getNome() != 'Gruppo Misto') {
         $voto_gruppo = OppVotazioneHasGruppoPeer::getVotoGruppoVotazione($g->getId(), $votazione->getId());
         if ($votazione->getEsito() == 'APPROVATA' && $voto_gruppo == 'Contrario' && $ramo == 'camera' || $votazione->getEsito() == 'RESPINTA' && $voto_gruppo == 'Favorevole' && $ramo == 'camera' || $votazione->getEsito() == 'APPROVATA' && ($voto_gruppo == 'Contrario' || $voto_gruppo == 'Astenuto') && $ramo == 'senato' || $votazione->getEsito() == 'RESPINTA' && $voto_gruppo == 'Favorevole' && $ramo == 'senato') {
             $c = new Criteria();
             $c->add(OppCaricaHasGruppoPeer::GRUPPO_ID, $g->getId());
             $c->add(OppCaricaHasGruppoPeer::DATA_INIZIO, $votazione->getOppSeduta()->getData(), Criteria::LESS_EQUAL);
             $crit0 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, NULL, Criteria::ISNULL);
             $crit1 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $votazione->getOppSeduta()->getData(), Criteria::GREATER_EQUAL);
             $crit0->addOr($crit1);
             $c->add($crit0);
             $parlamentari = OppCaricaHasGruppoPeer::doSelect($c);
             //$parlamentari = OppCaricaHasGruppoPeer::getParlamentariGruppoData($g->getId(),$votazione->getOppSeduta()->getData());
             foreach ($parlamentari as $p) {
                 $arr_opposizione[] = $p->getCaricaId();
             }
         }
	     </table>
	     <br/>
	     <div><span style="background-color:#022468; color:white; padding: 3px; margin-right:10px; font-size:10px;">maggioranza</span><span style="background-color:#766d04; color:white; padding: 3px; margin-right:10px; font-size:10px">opposizione</span></div>
	     <br/>
		
		
	</div>
	<div class="sevencol last">
		
		 <?php 
$perc_magg = array();
$perc_min = array();
$perc_neutral = array();
$num_totale = 0;
foreach ($gruppi_all as $k => $gruppo) {
    $valore = OppGruppoIsMaggioranzaPeer::isGruppoMaggioranza($k, date('Y-m-d'));
    if ($valore === null) {
        $perc_neutral[$k] = $gruppo;
    } elseif ($valore == 1) {
        $perc_magg[$k] = $gruppo;
    } elseif ($valore == 0) {
        $perc_min[$k] = $gruppo;
    }
    $num_totale = $num_totale + $gruppo;
}
$perc_grafico = "50,";
$label_grafico = "|";
$color_grafico = "FFFFFF|";
foreach ($perc_magg as $k => $perc) {
    $perc_grafico = $perc_grafico . number_format($perc * 100 / $num_totale / 2, 2) . ",";
    $label_grafico = $label_grafico . OppGruppoPeer::retrieveByPk($k)->getAcronimo() . " [" . $perc . "]|";
 /**
  * controlla se la carica è di maggioranza o no
  *
  * @param integer $carica_id
  * @param string  $data 
  * @param integer $gruppo_id
  * @return boolean
  * @author Guglielmo Celata
  */
 public static function inMaggioranza($carica_id, $data, $gruppo_id = null)
 {
     $carica = self::retrieveByPK($carica_id);
     // ministri, viceministri e sottosegretari, sono sempre in maggioranza
     if ($carica->getOppTipoCarica()->getNome() == 'Ministro' || $carica->getOppTipoCarica()->getNome() == 'Sottosegretario' || $carica->getOppTipoCarica()->getNome() == 'Viceministro') {
         return true;
     }
     if (is_null($gruppo_id)) {
         $gruppo_ar = self::getGruppo($carica_id, $data);
         $gruppo_id = $gruppo_ar['id'];
     }
     if ($gruppo_id) {
         return OppGruppoIsMaggioranzaPeer::isGruppoMaggioranza($gruppo_id, $data);
     } else {
         return null;
         // impossibile
     }
 }
Exemplo n.º 5
0
 /**
  * controlla se il gruppo, alla data specificata, è nella maggioranza o no
  *
  * @param string $date 
  * @return boolean
  * @author Guglielmo Celata
  */
 public function isMaggioranza($date)
 {
     return OppGruppoIsMaggioranzaPeer::isGruppoMaggioranza($this->getId(), $date);
 }
 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;
 }
}
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);
                $crit2 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, $v->getOppSeduta()->getData(), Criteria::GREATER_EQUAL);
                $crit3 = $c->getNewCriterion(OppCaricaHasGruppoPeer::DATA_FINE, null, Criteria::ISNULL);
                $crit2->addOr($crit3);
                $crit0->addAnd($crit1);
                $crit0->addAnd($crit2);
                $c->add($crit0);