/**
  * API (protetta da una API key)
  * torna flusso xml con i dati di un singolo atto
  * progetto op_fb
  *
  * <opp xmlns="http://www.openpolis.it/2010/opp"
  *        xmlns:op="http://www.openpolis.it/2010/op"
  *        xmlns:xlink="http://www.w3.org/1999/xlink">
  *   <op:content> 
  *     <atto opp_id="38631">
  *       <ramo>S</ramo>
  *       <numero>1611-4-B</numero>
  *       <tipo_atto>12</tipo_atto>
  *       <titolo><![CDATA[
  *         [Ddl intercettazioni] Norme in materia di intercettazioni telefoniche, telematiche e ambientali. Modifica della disciplina in materia di astensione del giudice e degli atti di indagine. Integrazione della disciplina sulla responsabilità amministrativa delle persone giuridiche
  *         ]]>
  *       </titolo>
  *       <presentato_il>2009-06-11</presentato_il>
  *       <tipo_iniziativa>2</tipo_iniziativa>
  *       <primi_firmatari>
  *         <parlamentare opp_id="167">
  *           <tipo>On</tipo>
  *           <nome>Angelino</nome>
  *           <cognome>ALFANO</cognome>
  *           <gruppo>
  *             <nome>Popolo delle Libertà</nome>
  *             <acronimo>PdL</acronimo>
  *           </gruppo>
  *           <data_inizio_carica>2008-04-29</data_inizio_carica>
  *           <circoscrizione>Sicilia 1</circoscrizione>
  *         </parlamentare>
  *       </primi_firmatari>
  *       <cofirmatari>
  *
  *       </cofirmatari>
  *       <relatori>
  *         <parlamentare opp_id="1518">
  *           <tipo>Sen</tipo>
  *           <nome>Roberto</nome>
  *           <cognome>CENTARO</cognome>
  *           <gruppo>
  *             <nome>Popolo delle Libertà</nome>
  *             <acronimo>PdL</acronimo>
  *           </gruppo>
  *           <data_inizio_carica>2008-04-29</data_inizio_carica>
  *           <circoscrizione>Sicilia</circoscrizione>
  *         </parlamentare>
  *       </relatori>
  *       <commissioni_assegnatarie>
  *         <commissione tipo_sede="referente">Senato Commissione II Giustizia</commissione>
  *         <commissione tipo_sede="consultiva">Senato Commissione I Affari Costituzionali</commissione>
  *         <commissione tipo_sede="consultiva">Senato Commissione III Affari Esteri</commissione>
  *         <commissione tipo_sede="consultiva">Senato Commissione V Bilancio</commissione>
  *       </commissioni_assegnatarie>
  *       <url_fonte_ufficiale xlink:href="http://www.senato.it/leg/16/BGT/Schede/Ddliter/33809.htm"/>
  *       <testi_atto>
  *         <url_testo_atto xlink:href="http://www.senato.it/loc/link.asp?tipodoc=DDLPRES&amp;leg=16&amp;id=424336"/>        
  *       </testi_atto>
  *     </atto>
  *   </op:content>
  * </opp>
  *
  *       
  * Return error in case something's wrong
  * <opp xlmns="http://www.openpolis.it/2010/opp"
  *        xmlns:op="http://www.openpolis.it/2010/op"
  *   <op:error>Messaggio di errore</op:error>
  * </opp>
  * @return String
  * @author Guglielmo Celata
  **/
 public function executeAtto()
 {
     $key = $this->getRequestParameter('key');
     $id = $this->getRequestParameter('opp_id');
     $is_valid_key = deppApiKeysPeer::isValidKey($key);
     $storage_path = sfConfig::get('sf_root_cache_dir');
     $file_path = sprintf("%s/atti/%s.xml", $storage_path, $id);
     $resp_node = new SimpleXMLExtended('<opp xmlns="' . $this->opp_ns . '" ' . ' xmlns:op="' . $this->op_ns . '" ' . ' xmlns:xlink="' . $this->xlink_ns . '" >' . '</opp>');
     $is_error = false;
     if ($is_valid_key) {
         // controllo esistenza del file
         if ($fp = @fopen($file_path, "r")) {
             // retrieve contenuto XML dalla cache
             sfContext::getInstance()->getLogger()->info("reading from cache: " . $file_path);
             $xmlContent = fread($fp, filesize($file_path));
             fclose($fp);
             // send xml to output
             $this->_send_output($xmlContent);
             return sfView::NONE;
         }
         // estrazione informazioni
         $atto = OppAttoPeer::retrieveByPK($id);
         if ($atto) {
             $titulo = $atto->getTitolo();
             $data_pres = $atto->getDataPres('Y-m-d');
             $ramo = $atto->getRamo();
             $numero = str_replace("/", "-", $atto->getNumfase());
             $legislatura = $atto->getLegislatura();
             // produzione xml
             $content_node = $resp_node->addChild('op:content', null, $this->op_ns);
             $atto_node = $content_node->addChild('atto', null, $this->opp_ns);
             $atto_node->addAttribute('opp_id', $id);
             $atto_node->addChild('ramo', $ramo);
             $atto_node->addChild('numero', $numero);
             $tipo_atto = $atto_node->addChild('tipo_atto', $atto->getOppTipoAtto()->getDenominazione());
             // $tipo_atto->addAttribute('id', $atto->getTipoAttoId());
             $titulo_node = $atto_node->addChild('titolo', null);
             $titulo_node->addCData($titulo);
             $atto_node->addChild('presentato_il', $data_pres);
             //tipo di iniziativa
             $tipo_iniziativa = '';
             if ($atto->getIniziativa()) {
                 switch ($atto->getIniziativa()) {
                     case '1':
                         $tipo_iniziativa = 'Parlamentare';
                         break;
                     case '2':
                         $tipo_iniziativa = 'di Governo';
                         break;
                     case '4':
                         $tipo_iniziativa = 'Popolare';
                         break;
                     default:
                         $tipo_iniziativa = '';
                         break;
                 }
             }
             $primi_firmatari_node = $atto_node->addChild('primi_firmatari');
             $this->addFirmatari('P', $atto, $primi_firmatari_node);
             $relatori_node = $atto_node->addChild('relatori');
             $this->addFirmatari('R', $atto, $relatori_node);
             $co_firmatari_node = $atto_node->addChild('co_firmatari');
             $this->addFirmatari('C', $atto, $co_firmatari_node);
             $commissioni_node = $atto_node->addChild('commissioni_assegnatarie');
             $commissioni = $atto->getCommissioni();
             foreach ($commissioni as $commissione) {
                 $tipo_sede = $commissione->getTipo();
                 $commissione_node = $commissioni_node->addChild('commissione');
                 $commissione_node->addChild('tipo_sede', $tipo_sede);
                 $commissione_node->addChild('ramo', $commissione->getOppSede()->getRamo());
                 $commissione_node->addChild('nome', $commissione->getOppSede()->getDenominazione());
             }
             $atto_node->addChild('tipo_iniziativa', $tipo_iniziativa);
             // individuazione link fonte
             /*
             if ($atto->getTipoAttoId() == '1')
               $link = 'http://www.senato.it/leg/' . $atto->getLegislatura() . '/BGT/Schede/Ddliter/' . $atto->getParlamentoId() . '.htm';
             
             else if ($atto->getTipoAttoId() > '1' && $atto->getTipoAttoId() < '12' )
               $link = 'http://banchedati.camera.it/sindacatoispettivo_' . $atto->getLegislatura() . '/showXhtml.Asp?idAtto=' . $atto->getParlamentoId() . '&stile=6&highLight=1';
             else if ($atto->getTipoAttoId() == '12' )
             {
               $anno = explode("-",$atto->getDataPres());
               $numero = explode("/",$atto->getNumfase());
               $link = "http://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:decreto.legge:".$anno[0].";".$numero[0];
             }
             
             else if ($atto->getTipoAttoId() == '14' )
             {
                 	    if ($atto->getRamo()=='C')
                 $link = 'http://www.camera.it/_dati/leg' . $atto->getLegislatura() . '/lavori/stencomm/' . $atto->getNumfase() . '/s010.htm';
               else
                 $link = 'http://www.senato.it/leg/' . $atto->getLegislatura() . '/BGT/Schede/ProcANL/ProcANLscheda' . $atto->getParlamentoId() . '.htm';
             }  
             
             else if ($atto->getTipoAttoId() > '14' && $atto->getTipoAttoId() < '18' )
             {
               $str = $atto->getParlamentoId();
               $len = 5 - strlen($str);
               for($i=0; $i<$len; $i++)
                 $str = '0' . $str;
             
                 	    $link = 'http://www.camera.it/parlam/leggi/deleghe/'.$str.'dl.htm';
             }
             
             if ($atto->getTipoAttoId() == '13') 
               $link = 'http://www.governo.it/GovernoInforma/Comunicati/testo_int.asp?d='.$atto->getParlamentoId();   
             
             
             $fonte_node = $atto_node->addChild('fonte');
             $fonte_node->addAttribute('href', $link);
             */
             // estrazione documenti
             $c = new Criteria();
             $c->add(OppDocumentoPeer::DOSSIER, 0);
             $documenti = $atto->getOppDocumentos($c);
             $documenti_node = $atto_node->addChild('documenti');
             foreach ($documenti as $documento) {
                 $documento_node = $documenti_node->addChild('documento');
                 if ($documento->getUrlTesto()) {
                     $documento_node->addCData($documento->getTesto());
                     // $documento_node->addAttribute('href_txt', $documento->getUrlTesto());
                     if ($documento->getUrlPdf()) {
                         $documento_node->addAttribute('href_pdf', $documento->getUrlPdf());
                     }
                 }
             }
             $documenti_node->addAttribute('n', count($documenti));
             // determina ultimo status
             $status = $atto->getStatus();
             $status_str = "";
             foreach ($status as $data => $status_iter) {
                 $iter = OppIterPeer::retrieveByPK($status_iter);
                 $status_str = $iter->getFase();
             }
             $atto_node->addChild('status', $status_str);
             // determina lettura
             $preds = $atto->getAllPred();
             $atto_node->addChild('lettura', 1 + count($preds));
         } else {
             $is_error = true;
             $resp_node->addChild('op:error', 'Nessun atto trovato per questo ID', $this->op_ns);
         }
     } else {
         $is_error = true;
         $resp_node->addChild('op:error', 'Chiave di accesso non valida', $this->op_ns);
     }
     // build xml content out of respNode
     $xmlContent = $resp_node->asXML();
     // write xml cache to file system (for non-error xml's)
     if (!$is_error) {
         $fp = @fopen($file_path, "w");
         sfContext::getInstance()->getLogger()->info("writing to cache: " . $file_path);
         fwrite($fp, $xmlContent);
         fclose($fp);
     }
     // send xml to output
     $this->_send_output($xmlContent);
     return sfView::NONE;
 }
$related_news = getRelatedNews($obj);
$n_related_news = count($related_news);
$t->ok($n_related_news == 3, 'Now there are two more news related to the act');
dumpNews($t, "news related to the act", $related_news);
$t->diag('Create a document');
$doc = new OppDocumento();
$doc->setData('2008-11-20');
$doc->setTitolo('Titolo di prova');
$doc->setOppAtto($obj);
$doc->save();
$related_news = getRelatedNews($obj);
$n_related_news = count($related_news);
$t->ok($n_related_news == 4, 'Four related news');
dumpNews($t, "news related to the act", $related_news);
$t->diag('Add a non-conclusive iter step');
$iter = OppIterPeer::retrieveByPK(29);
$iter_att = new OppAttoHasIter();
$iter_att->setOppAtto($obj);
$iter_att->setOppIter($iter);
$iter_att->save();
$related_news = getRelatedNews($obj);
$n_related_news = count($related_news);
$generated_news = $iter_att->getGeneratedNews();
$first_generated = $generated_news[0];
$t->ok($n_related_news == 5, 'Five related news');
$t->ok($first_generated->getPriority() == 2, 'Priority for non-conclusive iter step is ' . $first_generated->getPriority());
dumpNews($t, "news related to the act", $related_news);
$t->diag('Add a new politician');
$pol = new OppPolitico();
$pol->setNome('Guglielmo');
$pol->setCognome('Celata');
Exemplo n.º 3
0
                <?php 
            echo format_date($data, 'dd/MM/yyyy');
            ?>
                
              <?php 
        }
        ?>
            </p>
            <?php 
        $c = new Criteria();
        ?>
            <?php 
        $c->add(OppIterPeer::ID, $status_iter, Criteria::EQUAL);
        ?>
            <?php 
        $iter = OppIterPeer::doSelectOne($c);
        ?>
                <p class="<?php 
        echo $iter->getColor();
        ?>
"><?php 
        echo strtolower($iter->getFase());
        ?>
</p>
          <?php 
    }
    ?>
        </td>
        <td><p><?php 
    echo $atto->getNInterventi();
    ?>
dumpNews($t, "news related to the act", $related_news);
$t->diag('Add a non-conclusive iter step');
$iter = OppIterPeer::retrieveByPK(29);
$iter_att = new OppAttoHasIter();
$iter_att->setOppAtto($obj);
$iter_att->setOppIter($iter);
$iter_att->save();
$related_news = getRelatedNews($obj);
$n_related_news = count($related_news);
$generated_news = $iter_att->getGeneratedNews();
$first_generated = $generated_news[0];
$t->ok($n_related_news == 7, 'Seven related news');
$t->ok($first_generated->getPriority() == 2, 'Priority for non-conclusive iter step is ' . $first_generated->getPriority());
dumpNews($t, "news related to the act", $related_news);
$t->diag('Add a conclusive iter step');
$iter = OppIterPeer::retrieveByPK(45);
$iter_att = new OppAttoHasIter();
$iter_att->setOppAtto($obj);
$iter_att->setOppIter($iter);
$iter_att->save();
$related_news = getRelatedNews($obj);
$n_related_news = count($related_news);
$generated_news = $iter_att->getGeneratedNews();
$first_generated = $generated_news[0];
$t->ok($n_related_news == 8, 'Eight related news');
$t->ok($first_generated->getPriority() == 1, 'Priority for conclusive iter step is ' . $first_generated->getPriority());
dumpNews($t, "news related to the act", $related_news);
$t->diag('Add a new assignment to a commission');
$sede = OppSedePeer::retrieveByPK(24);
$sede_att = new OppAttoHasSede();
$sede_att->setOppAtto($obj);
 /**
  * calcola l'indice di rilevanza, per un atto, nel suo complesso
  *
  * @param integer $atto_id
  * @param integer $tipo_atto_id 
  * @param date $data 
  * @param SimpleXMLElement    $xml_node   
  * @param boolean   $verbose
  * @return float
  * @author Guglielmo Celata
  */
 public static function calcolaRilevanzaAtto($atto, $tipo_atto_id, $data, $xml_node, $verbose = false)
 {
     $atto_node = $xml_node->addChild('atto', null, self::$opp_ns);
     $atto_id = $atto->getId();
     // calcolo gruppi e schieramenti che presentano
     list($schier_pres, $grup_pres) = OppCaricaHasAttoPeer::getSchierGrupPresAtto($atto_id, $data);
     if ($verbose) {
         printf("\n    presentazione:\n");
         printf("      schieramenti: %s\n", join(',', $schier_pres));
         printf("      gruppi: %s\n", join(',', $grup_pres));
     }
     // il peso di un atto non dipende mai da chi lo ha presentato
     // il coefficiente che si considera è sempre quello di maggioranza
     $di_maggioranza = true;
     // determina la priorità dell'atto
     $priorita = is_null($atto->getPriorityValue()) ? 1 : $atto->getPriorityValue();
     $atto_is_ratifica = $atto->isRatifica();
     // determina il tipo di atto (per quello che concerne il calcolo dell'indice)
     $tipo_atto = OppTipoAttoPeer::getTipoPerIndice($tipo_atto_id);
     if (is_null($tipo_atto)) {
         return 0;
     }
     $atto_node->addAttribute('tipo_atto', $tipo_atto);
     $atto_node->addAttribute('priorita', $priorita);
     $atto_node->addAttribute('id', $atto_id);
     $punteggio = 0.0;
     // punteggio dato all'atto per-se, a seconda del tipo
     if ($tipo_atto == 'SDDL') {
         $punteggio = 1.0;
     } else {
         $punteggio = 0.5;
     }
     $presentazione_node = $atto_node->addChild('presentazione', null, self::$opp_ns);
     $presentazione_node->addAttribute('totale', $punteggio);
     // --- consenso ---
     $consenso_node = $atto_node->addChild('consenso', null, self::$opp_ns);
     $firmeRS = OppCaricaHasAttoPeer::getFirmeAttoDataTipoRS($atto_id, $data, "'C'");
     $n_firme = array('gruppo' => 0, 'altri' => 0, 'opp' => 0);
     while ($firmeRS->next()) {
         $row = $firmeRS->getRow();
         if ($verbose) {
             printf("    %d firme per gruppo %d\n", $row['nf'], $row['gruppo_id']);
         }
         // gestione del caso in cui l'atto è presentato dai due schieramenti
         // tutte le firme sono assegnate a gruppo, altri e opp
         if (count($schier_pres) > 1) {
             $n_firme['gruppo'] += $row['nf'];
             $n_firme['altri'] += $row['nf'];
             $n_firme['opp'] += $row['nf'];
             continue;
         }
         // gestione del caso in cui l'atto è presentato da più di un gruppo
         // le firme dello schieramento di pres. sono assegnate a gruppo e altri
         if (count($grup_pres) > 1) {
             if ($row['maggioranza'] == $schier_pres[0]) {
                 $n_firme['gruppo'] += $row['nf'];
                 $n_firme['altri'] += $row['nf'];
             } else {
                 $n_firme['opp'] += $row['nf'];
             }
             continue;
         }
         if (in_array($row['gruppo_id'], $grup_pres)) {
             if ($row['nf'] > 1) {
                 $n_firme['gruppo'] += $row['nf'];
             }
         } else {
             if (count($schier_pres) > 0 && $row['maggioranza'] == $schier_pres[0]) {
                 $n_firme['altri'] += $row['nf'];
             } else {
                 $n_firme['gruppo'] += $row['nf'];
             }
         }
     }
     $d_punteggio = 0.0;
     foreach ($n_firme as $tipo => $value) {
         if (!$value) {
             continue;
         }
         $soglia = self::$soglia_cofirme;
         if ($tipo_atto == 'mozione') {
             $soglia = self::$soglia_cofirme_mozioni;
         }
         if ($value <= $soglia) {
             $d_punteggio += $dd_punteggio = self::getPunteggio($tipo_atto, "cofirme_{$tipo}_lo", $di_maggioranza);
         } else {
             $d_punteggio += $dd_punteggio = self::getPunteggio($tipo_atto, "cofirme_{$tipo}_hi", $di_maggioranza);
         }
         $firme_node = $consenso_node->addChild('firme_' . $tipo, null, self::$opp_ns);
         $firme_node->addAttribute('n_firme', $value);
         $firme_node->addAttribute('totale', $dd_punteggio);
         if ($verbose) {
             printf("    firme %s (%d) %7.2f\n", $tipo, $value, $dd_punteggio);
         }
     }
     $punteggio += $d_punteggio;
     if ($verbose) {
         printf("  totale firme  %7.2f\n", $d_punteggio);
     }
     $consenso_node->addAttribute('n_firme', $n_firme['gruppo'] + $n_firme['altri'] + $n_firme['opp']);
     $consenso_node->addAttribute('totale', $d_punteggio);
     // --- iter ---
     // controlla se atti non assorbiti sono diventati legge dopo passaggi in altri rami
     // atti diventati legge non prendono il punteggio di approvazione
     $diventato_legge_in_altri_rami = false;
     if (!isset($passaggio) || $passaggio != 'assorbito') {
         $atto = OppAttoPeer::retrieveByPK($atto_id);
         $c = new Criteria();
         $c->add(OppAttoHasIterPeer::ITER_ID, 16);
         $c->add(OppAttoHasIterPeer::DATA, $data, Criteria::LESS_EQUAL);
         while ($atto_succ_id = $atto->getSucc()) {
             $atto = OppAttoPeer::retrieveByPK($atto_succ_id);
             if ($atto->countOppAttoHasIters($c) > 0) {
                 $diventato_legge_in_altri_rami = true;
             }
         }
         unset($c);
         unset($atto);
     }
     // determina se l'atto è parte di un Testo Unificato
     $is_unified = OppAttoPeer::isUnifiedText($atto_id);
     // determina se l'atto è stato assorbito
     $is_absorbed = OppAttoPeer::isAbsorbed($atto_id);
     // determina se l'atto unificato è principale o meno
     $is_unificato_non_main = is_array($is_unified) && !$is_unified['is_main_unified'];
     $is_unificato_main = is_array($is_unified) && $is_unified['is_main_unified'];
     $itinera_atto_rs = OppAttoHasIterPeer::getItineraAttoDataRS($atto_id, $data);
     $iter_node = $atto_node->addChild('iter', null, self::$opp_ns);
     $d_punteggio = 0.0;
     $n_passaggi = 0;
     while ($itinera_atto_rs->next()) {
         $iter_atto = $itinera_atto_rs->getRow();
         $passaggio = OppIterPeer::getIterPerIndice($iter_atto['iter_id']);
         if (is_null($passaggio)) {
             continue;
         }
         // se l'atto è unificato e non-main, allora prende il punteggio come gli atti assorbiti
         if ($is_unificato_non_main && $passaggio == 'approvato') {
             $passaggio = 'assorbito';
         }
         // se diventato legge in altri rami, non prende punteggio di approvazione
         if ($diventato_legge_in_altri_rami && $passaggio == 'approvato') {
             continue;
         }
         $n_passaggi++;
         $passaggio_node = $iter_node->addChild('passaggio', null, self::$opp_ns);
         if ($passaggio == 'assorbito' && $is_unificato_non_main) {
             $passaggio_node->addAttribute('tipo', 'assorbimento come unificato non principale');
         } else {
             $passaggio_node->addAttribute('tipo', $passaggio);
         }
         $d_punteggio += $dd_punteggio = self::getPunteggio($tipo_atto, $passaggio, $di_maggioranza);
         if ($verbose) {
             if ($passaggio == 'assorbito' && $is_unificato_non_main) {
                 printf("    iter %s %7.2f\n", 'assorbimento come unificato non principale', $dd_punteggio);
             } else {
                 printf("    iter %s %7.2f\n", $passaggio, $dd_punteggio);
             }
         }
         $passaggio_node->addAttribute('totale', $dd_punteggio);
         // il break su atti assorbiti avviene dopo l'assegnazione del punteggio
         if ($passaggio == 'assorbito') {
             break;
         }
         // --- bonus maggioranza ---
         if ($passaggio == 'approvato') {
             if ($di_maggioranza && OppAttoPeer::isAttoVotatoDaOpposizione($atto_id, $data)) {
                 $d_punteggio += $dd_punteggio = self::getPunteggio($tipo_atto, 'bonus_bi_partisan', true);
                 $bonus_node = $iter_node->addChild('bonus_maggioranza', null, self::$opp_ns);
                 $bonus_node->addAttribute('totale', $dd_punteggio);
                 if ($verbose) {
                     printf("    bonus di maggioranza! %7.2f\n", $dd_punteggio);
                 }
             }
         }
         // break se mozione, risoluzione o odg approvato
         if (in_array($tipo_atto, array('mozione', 'risoluzione', 'odg')) && $passaggio == 'approvato') {
             break;
         }
     }
     // assegna punteggio se diventato legge in altri rami
     if ($diventato_legge_in_altri_rami && is_null($is_absorbed) && (is_null($is_unified) || $is_unificato_main)) {
         $d_punteggio += $dd_punteggio = self::getPunteggio($tipo_atto, 'diventato_legge', $di_maggioranza);
         $passaggio_node = $iter_node->addChild('passaggio', null, self::$opp_ns);
         $passaggio_node->addAttribute('tipo', "diventato legge in altri rami");
         $passaggio_node->addAttribute('totale', $dd_punteggio);
         if ($verbose) {
             printf("    iter %s %7.2f\n", "diventato legge in altri rami", $dd_punteggio);
         }
     }
     $punteggio += $d_punteggio;
     if ($verbose) {
         printf("  totale iter   %7.2f\n", $d_punteggio);
     }
     $iter_node->addAttribute('n_passaggi', $n_passaggi);
     $iter_node->addAttribute('totale', $d_punteggio);
     // --- componente emendamenti con funzione sigmoide ---
     $punteggio += $d_punteggio = self::calcolaComponenteEmendamentiPerAtto($atto_id, $data, $atto_node, $verbose);
     // --- sedute con interventi in commissione e assemblea ---
     $sedute_con_interventi_node = $atto_node->addChild('sedute_con_interventi', null, self::$opp_ns);
     $sedute_commissioni_node = $sedute_con_interventi_node->addChild('commissioni', null, self::$opp_ns);
     $n_sedute_commissioni = OppInterventoPeer::getNSeduteConInterventiAttoData($atto_id, 'C', $data);
     if ($n_sedute_commissioni) {
         $n_sedute_commissioni--;
     }
     if ($verbose) {
         printf("    n. sedute in commissione   %d\n", $n_sedute_commissioni);
     }
     $d_punteggio_sedute_commissioni = $n_sedute_commissioni * parent::$punteggi['seduta_in_comm'];
     $sedute_commissioni_node->addAttribute('n_sedute', $n_sedute_commissioni);
     $sedute_commissioni_node->addAttribute('totale', $d_punteggio_sedute_commissioni);
     $sedute_assemblea_node = $sedute_con_interventi_node->addChild('assemblea', null, self::$opp_ns);
     $n_sedute_assemblea = OppInterventoPeer::getNSeduteConInterventiAttoData($atto_id, 'A', $data);
     if ($n_sedute_assemblea) {
         $n_sedute_assemblea--;
     }
     if ($verbose) {
         printf("    n. sedute in commissione   %d\n", $n_sedute_assemblea);
     }
     $d_punteggio_sedute_assemblea = $n_sedute_assemblea * parent::$punteggi['seduta_in_ass'];
     $sedute_assemblea_node->addAttribute('n_sedute', $n_sedute_assemblea);
     $sedute_assemblea_node->addAttribute('totale', $d_punteggio_sedute_assemblea);
     $punteggio += $d_punteggio_sedute = $d_punteggio_sedute_commissioni + $d_punteggio_sedute_assemblea;
     if ($verbose) {
         printf("  totale sedute   %7.2f\n", $d_punteggio_sedute);
     }
     $sedute_con_interventi_node->addAttribute('totale', $d_punteggio_sedute);
     if ($atto_is_ratifica) {
         $atto_node->addAttribute('totale_pre_decurtazione_ratifica', $punteggio);
         if ($verbose) {
             print "questo ATTO è una ratifica\n";
         }
         $punteggio = $punteggio / self::$punteggi['fattore_diminuzione_ratifica'];
     }
     $punteggio = $priorita * $punteggio;
     $atto_node->addAttribute('totale', $punteggio);
     return $punteggio;
 }
Exemplo n.º 6
0
<?php

if ($status) {
    ?>
  <li><h6>
  ultimo status: 
  <?php 
    foreach ($status as $data => $status_iter) {
        ?>
    <?php 
        $iter = OppIterPeer::retrieveByPK($status_iter);
        ?>
    <em>
      <?php 
        if ($data != '' || $data != null) {
            ?>
        <span class="date"><?php 
            echo format_date($data, 'dd/MM/yyyy');
            ?>
</span>
      <?php 
        }
        ?>
 
      <?php 
        echo ($atto->getRamo() == 'C' ? 'Camera' : 'Senato') . ": " . $iter->getFase();
        ?>
   
    </em>
  <?php 
    }
  
          <?php 
                    } else {
                        ?>
            <li class="<?php 
                        echo OppIterPeer::retrieveByPk($status_value[0])->getColor() == 'green' ? 'step-yes' : 'step-no';
                        ?>
"><span class="date"><?php 
                        echo format_date($status_date[0], 'dd/MM/yyyy');
                        ?>
</span><strong><?php 
                        echo link_to($succ->getRamo() . '.' . (strlen($succ->getNumfase()) > 13 ? substr($succ->getNumfase(), 0, 12) . ' ...' : $succ->getNumfase()), 'atto/index?id=' . $succ->getId());
                        ?>
</strong>
            <p><?php 
                        echo OppIterPeer::retrieveByPk($status_value[0])->getShortName() . ($succ->getRamo() == 'C' ? ' alla Camera' : ' al Senato');
                        ?>
</p></li>
        <?php 
                    }
                    ?>
      <?php 
                }
                ?>
	<?php 
            }
            ?>
    <?php 
        }
        ?>