示例#1
0
文件: Aspirante.php 项目: pizar/gaia
 /**
  * Ottiene i corsi base nelle vicinanze
  * @return CorsoBase     array di corsi base
  */
 public function corsiBase()
 {
     $corsiBase = CorsoBase::contenutiIn($this);
     $r = [];
     foreach ($corsiBase as $c) {
         if ($c->accettaIscrizioni()) {
             $r[] = $c;
         }
     }
     return $r;
 }
示例#2
0
文件: ICalendar.php 项目: pizar/gaia
 public function generaCorsoBase($corso)
 {
     global $sessione;
     $corso = CorsoBase::id($corso);
     $dir = $corso->direttore();
     $c = $corso->organizzatore();
     $name = '' . date('Ymd_THis', $corso->inizio) . '_' . $corso->id . '_.ics';
     $fine = (string) ((int) $corso->inizio + 5400);
     /* Strutturo il file */
     $this->autore = $sessione->utente;
     $this->nome = $name;
     $this->mime = 'text/calendar; charset=utf-8; method=REQUEST';
     /* Inserisco le informazioni */
     $s = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//Croce Rossa Italiana//Progetto GAIA//IT\nMETHOD:REQUEST\nBEGIN:VTIMEZONE\nTZID:Europe/Rome\nBEGIN:DAYLIGHT\nTZOFFSETFROM:+0100\nTZOFFSETTO:+0200\nTZNAME:CEST\nDTSTART:19700329T020000\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\nEND:DAYLIGHT\nBEGIN:STANDARD\nTZOFFSETFROM:+0200\nTZOFFSETTO:+0100\nTZNAME:CET\nDTSTART:19701025T030000\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\nEND:STANDARD\nEND:VTIMEZONE\nBEGIN:VEVENT\nDTSTAMP:" . date('Ymd\\THis', time()) . "\nDTSTART;TZID=Europe/Rome:" . date('Ymd\\THis', $corso->inizio) . "\nDTEND;TZID=Europe/Rome:" . date('Ymd\\THis', $fine) . "\nSUMMARY:" . $corso->nome() . "\nLOCATION:" . $corso->luogo . "\nUID:" . $corso->id . "\nDESCRIPTION:\nCorso organizzato da " . $c->nomeCompleto() . ",\ndettagli: " . strip_tags($corso->descrizione) . "\nORGANIZER;CN=\"" . $dir->nomeCompleto() . "\":mailto:" . $dir->email . "\nEND:VEVENT\nEND:VCALENDAR\n";
     file_put_contents($this->percorso(), utf8_encode($s));
 }
<?php

/*
* ©2014 Croce Rossa Italiana
*/
caricaSelettore();
controllaParametri(['id']);
$corso = CorsoBase::id($_GET['id']);
if (!$corso->modificabileDa($me)) {
    redirect("formazione.corsibase.scheda&id={$_GET['id']}");
}
$admin = $me->admin();
$lezioni = $_POST['lezioni'];
foreach ($lezioni as $lezione) {
    $lezione = Lezione::id($lezione);
    $lezione->nome = normalizzaNome($_POST["nome_{$lezione}"]);
    $inizio = DT::createFromFormat('d/m/Y H:i', $_POST["inizio_{$lezione}"]);
    $fine = DT::createFromFormat('d/m/Y H:i', $_POST["fine_{$lezione}"]);
    if ($admin && $inizio < $fine) {
        $lezione->inizio = $inizio->getTimestamp();
        $lezione->fine = $fine->getTimestamp();
    }
    if ($inizio->getTimestamp() != $lezione->inizio) {
        if ($inizio < $fine && $inizio->getTimestamp() > time()) {
            $lezione->inizio = $inizio->getTimestamp();
        } else {
            redirect("formazione.corsibase.lezioni&id={$_GET['id']}&date&in");
        }
    }
    if ($fine->getTimestamp() != $lezione->fine) {
        if ($inizio < $fine && $fine->getTimestamp() > time()) {
<?php

/*
* ©2014 Croce Rossa Italiana
*/
paginaPrivata();
controllaParametri(['id']);
$admin = $me->admin();
$i = 0;
$corso = CorsoBase::id($_GET['corso']);
paginaCorsoBase($corso);
if (!$corso->modificabileDa($me)) {
    redirect("formazione.corsibase.scheda&id={$_GET['corso']}");
}
$utente = Utente::id($_GET['id']);
?>

<h2 class="allinea-centro text-success"><i class="icon-calendar"></i> Elenco assenze</h2>
<h3 class="allinea-centro"><?php 
echo $utente->nomeCompleto();
?>
</h3>

<hr />
<div class="row-fluid">
	<table class="table table-striped table-bordered">

		<thead>
			<th>Nome della lezione</th>
			<th>Inizio lezione</th>
			<th>Fine della lezione</th>
/*
 * ©2014 Croce Rossa Italiana
 */
paginaPrivata();
if (isset($_GET['single'])) {
    controllaParametri(array('id', 'corso'), 'errore.fatale');
    $iscritto = $_GET['id'];
    $corso = $_GET['corso'];
    $iscritto = Utente::id($iscritto);
    $corso = CorsoBase::id($corso);
    $f = $corso->generaScheda($iscritto);
    $f->download();
} else {
    controllaParametri(array('id'), 'errore.fatale');
    $corso = $_GET['id'];
    $corso = CorsoBase::id($corso);
    $zip = new Zip();
    $tabella = '<table border="1" style="width:100%">
                    <tbody>
                        <tr>
                            <td align="center"><b>Cognome e Nome</b></td>
                            <td align="center"><b>Luogo di nascita</b></td>
                            <td align="center"><b>Data di nascita</b></td>
                            <td align="center"><b>Esito</b></td>
                        </tr>';
    $x = 0;
    foreach ($corso->partecipazioni(ISCR_SUPERATO) as $pb) {
        $iscritto = $pb->utente();
        $dataNascita = date('d/m/Y', $iscritto->dataNascita);
        $esito = $conf['partecipazioneBase'][$pb->stato];
        $tabella .= "<tr>\n                        <td>{$iscritto->nomeCompleto()}</td>\n                        <td>{$iscritto->comuneNascita}</td>\n                        <td>{$dataNascita}</td>\n                        <td>{$esito}</td>\n                    </tr>";
<?php

/*
 * ©2014 Croce Rossa Italiana
 */
paginaPrivata();
paginaPresidenziale();
controllaParametri(['comitato', 'inputDataInizio'], 'formazione.corsibase&err');
$comitato = $_POST['comitato'];
$comitato = GeoPolitica::daOid($comitato);
proteggiClasse($comitato, $me);
$data = DT::daFormato($_POST['inputDataInizio'], 'd/m/Y H:i');
if (!$data) {
    redirect('formazione.corsibase&err');
}
if ($data->getTimestamp() < time() && !$me->admin()) {
    redirect('formazione.corsibase&err');
}
$corsoBase = new CorsoBase();
$corsoBase->stato = CORSO_S_DACOMPLETARE;
$corsoBase->organizzatore = $comitato->oid();
$corsoBase->inizio = $data->getTimestamp();
$corsoBase->tEsame = (int) $corsoBase->inizio + MESE;
$corsoBase->anno = $data->format('Y');
$corsoBase->aggiornamento = time();
$corsoBase->assegnaProgressivo();
redirect('formazione.corsibase.direttore&id=' . $corsoBase->id);
<?php

/*
 * ©2014 Croce Rossa Italiana
 */
controllaParametri(array('id'));
$id = $_GET['id'];
$corsoBase = CorsoBase::id($id);
// Calcola il dominio per la scelta del Direttore del Corso.
// Se unita' locale, espande a comitato Locale, come da #1600
$organizzatore = $corsoBase->organizzatore();
$superiore = $organizzatore->superiore();
if ($organizzatore->_estensione() == EST_UNITA && $superiore && $me->puoLeggereDati($superiore)) {
    $dominio = $superiore->oid();
} else {
    $dominio = $organizzatore->oid();
}
paginaPrivata();
paginaCorsoBase($corsoBase);
caricaSelettore();
paginaModale();
?>
<form action="?p=formazione.corsibase.direttore.ok" method="POST">
               

<input type="hidden" name="id" value="<?php 
echo $corsoBase->id;
?>
" />

<div class="modal fade automodal">
<?php

/*
* ©2014 Croce Rossa Italiana
*/
paginaPrivata();
controllaParametri(['id']);
$corso = CorsoBase::id($_POST['id']);
paginaCorsoBase($corso);
if (!$corso->daCompletare()) {
    redirect("formazione.corsibase.scheda&id={$corso}");
}
$corso->stato = CORSO_S_ATTIVO;
$aspiranti = $corso->potenzialiAspiranti();
$r = [];
foreach ($aspiranti as $aspirante) {
    try {
        $utente = $aspirante->utente();
    } catch (Exception $e) {
        $aspirante->cancella();
        continue;
    }
    $r[] = $utente;
}
foreach ($r as $utente) {
    // Ref #1908
    if ($utente->stato != ASPIRANTE) {
        continue;
    }
    $m = new Email('corsoBaseAttivato', 'Nuovo Corso per Volontari CRI');
    $m->a = $utente;
示例#9
0
文件: Lezione.php 项目: pizar/gaia
 /**
  * Ritorna il Corso collegato alla lezione
  * @return CorsoBase
  */
 public function corso()
 {
     return CorsoBase::id($this->corso);
 }
<?php

/*
* ©2014 Croce Rossa Italiana
*/
controllaParametri(['id', 'corso'], 'presidente.soci.ordinari&err');
paginaPrivata();
$u = Utente::id($_GET['id']);
$corso = $_GET['corso'];
proteggiDatiSensibili($u, [APP_SOCI, APP_PRESIDENTE]);
paginaApp([APP_SOCI, APP_PRESIDENTE]);
if ($u->partecipazioniBase(ISCR_CONFERMATA)) {
    redirect('presidente.soci.ordinari&gia');
}
if (!CorsoBase::id($corso)) {
    redirect('presidente.soci.ordinari&err');
}
$part = new PartecipazioneBase();
$part->volontario = $u;
$part->corsoBase = $corso;
$part->stato = ISCR_RICHIESTA;
$part->timestamp = time();
$part->concedi();
$u->stato = ASPIRANTE;
redirect('presidente.soci.ordinari&iscritto');
示例#11
0
文件: Utente.php 项目: pizar/gaia
 /**
  * Restituisce l'elenco dei corsi base di cui sono direttore e devo completare
  * @return CorsoBase    elenco dei corsi diretti da completare
  */
 public function corsiBaseDirettiDaCompletare()
 {
     return CorsoBase::filtra([['direttore', $this->id], ['stato', CORSO_S_DACOMPLETARE]]);
 }
示例#12
0
                        </th>
                        <th>
                            Data e luogo
                        </th>
                        <th>
                            Stato
                        </th>

                        <th>
                            Azione
                        </th>
                    </thead>

                    <?php 
if ($me->admin()) {
    $corsi = CorsoBase::elenco();
} else {
    $corsi = $me->corsiBaseDiGestione();
}
foreach ($corsi as $corso) {
    // autorisolutore problemi dei direttori mancanti
    $direttore = $corso->direttore();
    if (!$direttore) {
        $corso->stato = CORSO_S_DACOMPLETARE;
    }
    ?>

                    <tr>

                    	<td style="width: 20%;">
                            <?php 
示例#13
0
 /**
  * Cancella Geopolitica
  * @param GeoPolitica
  */
 public function cancella()
 {
     $oid = $this->oid();
     /* Cancello autoparchi e veicoli ad esso associati li passo al nazionale */
     Autoparco::cancellaTutti([['comitato', $oid]]);
     /* Cancello i corsi base */
     CorsoBase::cancellaTutti([['comitato', $oid]]);
     /* Cancello i delegati */
     Delegato::cancellaTutti([['comitato', $oid]]);
     /* Cancello i gruppi */
     Gruppo::cancellaTutti([['comitato', $oid]]);
     /* Assegno veicoli a nazionale */
     Veicolo::cancellaTutti([['comitato', $oid]]);
     parent::cancella();
 }