public function executeCosa() { $this->_getAndCheckParlamentare(); if ($this->carica) { $this->id_gruppo_corrente = $this->parlamentare->getGruppoCorrente()->getId(); $this->incarico = OppChgIncaricoPeer::getIncaricoGruppoCorrente($this->carica->getId(), $this->id_gruppo_corrente); $this->acronimo_gruppo_corrente = $this->parlamentare->getGruppoCorrente()->getAcronimo(); $this->gruppi = OppCaricaHasGruppoPeer::doSelectTuttiGruppiPerCarica($this->carica->getId(), 2); $this->circoscrizione = $this->carica->getCircoscrizione(); // $this->cariche = $this->parlamentare->getAltreCariche(); // reset sessioni utente filtri e ordinamento $this->session = $this->getUser(); $this->session->getAttributeHolder()->removeNamespace('acts_filter'); $this->session->getAttributeHolder()->removeNamespace('opp_parlamentare_atti/sort'); $this->session->getAttributeHolder()->removeNamespace('votes_filter'); $this->session->getAttributeHolder()->removeNamespace('opp_parlamentare_voti/sort'); $c = new Criteria(); $c->addJoin(OppSedutaPeer::ID, OppVotazionePeer::SEDUTA_ID); if ($this->carica->getTipoCaricaId() == 1) { $ramo = 'C'; } if ($this->carica->getTipoCaricaId() == 4 || $this->carica->getTipoCaricaId() == 5) { $ramo = 'S'; } $this->ramo = $ramo == 'C' ? 'camera' : 'senato'; if ($this->ramo == 'camera') { $this->getResponse()->setTitle('On. ' . $this->parlamentare->getNome() . ' ' . $this->parlamentare->getCognome() . ' - cosa fa in parlamento - ' . sfConfig::get('app_main_title')); $c->add(OppSedutaPeer::RAMO, 'C'); } else { $this->getResponse()->setTitle('Sen. ' . $this->parlamentare->getNome() . ' ' . $this->parlamentare->getCognome() . ' - cosa fa in parlamento - ' . sfConfig::get('app_main_title')); $c->add(OppSedutaPeer::RAMO, 'S'); } $this->response->addMeta('description', 'Come vota, quali atti presenta, a chi è più vicino, quanto è presente, l\'indice di produttività di ' . $this->parlamentare->getNome() . ' ' . $this->parlamentare->getCognome(), true); $c->addDescendingOrderByColumn(OppSedutaPeer::DATA); $result = OppSedutaPeer::doSelectOne($c); $this->ultima_votazione = $result->getData(); $nparl = OppCaricaPeer::getNParlamentari($ramo); $this->presenze = $this->carica->getPresenze(); $this->assenze = $this->carica->getAssenze(); $this->missioni = $this->carica->getMissioni(); $this->nvotazioni = $this->presenze + $this->assenze + $this->missioni; $this->presenze_perc = $this->presenze * 100 / $this->nvotazioni; $this->assenze_perc = $this->assenze * 100 / $this->nvotazioni; $this->missioni_perc = $this->missioni * 100 / $this->nvotazioni; $this->presenze_media = OppCaricaPeer::getSomma('presenze', $ramo) / $nparl; $this->assenze_media = OppCaricaPeer::getSomma('assenze', $ramo) / $nparl; $this->missioni_media = OppCaricaPeer::getSomma('missioni', $ramo) / $nparl; $this->nvotazioni_media = $this->presenze_media + $this->assenze_media + $this->missioni_media; $this->presenze_media_perc = $this->presenze_media * 100 / $this->nvotazioni_media; $this->assenze_media_perc = $this->assenze_media * 100 / $this->nvotazioni_media; $this->missioni_media_perc = $this->missioni_media * 100 / $this->nvotazioni_media; // calcolo totale ribellioni e presenze ai fini del calcolo delle perc. a partire dai gruppi $pres_ribelli = 0; $ribellioni = 0; foreach ($this->gruppi as $acronimo => $gruppo) { $pres_ribelli += $gruppo['presenze']; $ribellioni += $gruppo['ribelle']; } $this->nvoti_validi = $pres_ribelli; $pres_ribelli_media = OppCaricaHasGruppoPeer::getSomma('presenze', $ramo) / $nparl; $this->ribelli = $ribellioni; if ($ribellioni == 0) { $this->ribelli_perc = 0; } else { $this->ribelli_perc = $ribellioni * 100 / $this->nvoti_validi; } $this->ribelli_media = OppCaricaHasGruppoPeer::getSomma('ribelle', $ramo) / $nparl; $this->ribelli_media_perc = $this->ribelli_media * 100 / $pres_ribelli_media; // altre cariche da openpolis $xml = simplexml_load_file("http://politici.openpolis.it/api/chargeFindByPolitician/3114a2d106054d26c364c4cfff85910f97f7e29a/" . $this->parlamentare->getId()); $this->descrizione_cariche = array(); if ($xml) { $this->descrizione_cariche = $xml->xpath("//description"); } // da quanti giorni รจ parlamentare da openpolis $xml = simplexml_load_file("http://politici.openpolis.it/api/parlamentareHowDays?id=" . $this->parlamentare->getId()); $this->giorni = array(); if ($xml) { $giorni = $xml->xpath("//days"); } if ($giorni[0] / 365 >= 2) { $durata = intval($giorni[0] / 365) . ' anni e '; } elseif ($giorni[0] / 365 >= 1) { $durata = 'un anno e '; } else { $durata = ""; } if ($giorni[0] % 365 > 0) { $durata = $durata . $giorni[0] % 365 . " giorni"; } $this->durata = $durata; } }