public function aggiungi(Corso $c, Volontario $v, $ruolo = 0) { global $sessione; /* $comitato = Comitato::daOid($c->organizzatore); if (!$sessione->utente()->presiede($comitato)) { // N.B.: da estendere anche al delegato del presidente return false; } */ $this->corso = $c->id; $this->volontario = $v->id; $this->stato = PARTECIPAZIONE_RICHIESTA; $this->ruolo = $ruolo; $this->md5 = PartecipazioneCorso::md5($this->id); $this->timestamp = (new DT())->getTimestamp(); $this->inviaInvito($c); return true; }
<?php $p = PartecipazioneCorso::id(63); $p->md5 = PartecipazioneCorso::md5($p->id); $c = Corso::id($p->corso); $v = $p->volontario(); $r = $p->inviaInvito(Corso::id($p->corso), $v);
*/ paginaPresidenziale(null, null, APP_OBIETTIVO, OBIETTIVO_1); controllaParametri(['id', 'direttori'], 'admin.corsi.crea&err'); $c = $direttore = null; try { $c = Corso::id(intval($_POST['id'])); if (!$c->modificabile()) { redirect('formazione.corsi.riepilogo&id=' . $c->id . '&err=1'); } $direttore = Volontario::id(intval($_POST['direttori'])); if (empty($c) || empty($direttore)) { throw new Exception('Manomissione'); } } catch (Exception $e) { redirect('admin.corsi.crea&err'); } $c->direttore = $direttore->id; $c->aggiornaStato(); $partecipazione = new PartecipazioneCorso(); $partecipazione->aggiungi($c, $direttore, CORSO_RUOLO_DIRETTORE); if (!empty($_POST['wizard'])) { $tipoCorso = TipoCorso::id($c->tipo); if ($tipoCorso->giorni > 1) { redirect('formazione.corsi.lezioni&id=' . $c->id . '&wizard=1'); die; } else { redirect('formazione.corsi.docenti&id=' . $c->id . '&wizard=1'); die; } } redirect('formazione.corsi.riepilogo&id=' . $c->id);
// se il nuovo è anche tra i vecchi, lo toglie dalla lista di quelli da eliminare unset($daEliminare[$d]); } else { // se il nuovo non è tra i vecchi, lo aggiunge dalla lista di quelli da aggiungere $daAggiungere[$d] = true; } } $daAggiungere = array_keys($daAggiungere); $daEliminare = array_keys($daEliminare); foreach ($daEliminare as $d) { PartecipazioneCorso::id($d)->cancella(); } foreach ($daAggiungere as $d) { $docente = Volontario::id($d); // aggiungere verifica del fatto che sia effettivamente un docente $part = new PartecipazioneCorso(); $part->aggiungi($c, $docente, CORSO_RUOLO_DOCENTE); } } else { throw new Exception('Manomissione'); } $c->aggiornaStato(); } catch (Exception $e) { die($e->getMessage()); redirect('admin.corsi.crea&err'); } if (!empty($_POST['wizard'])) { redirect('formazione.corsi.affiancamenti&id=' . $c->id . '&wizard=1'); die; } redirect('formazione.corsi.riepilogo&id=' . $c->id);
/** * Restituisce l'elenco dei corsi base a cui ho richiesto partecipazione * @return Partecipazione elenco dei corsi a cui mi sono rpeiscritto o iscritto */ public function corsiRichiesti() { return PartecipazioneCorso::filtra([['volontario', $this->id]]); }
<?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ $id = intval(filter_input(INPUT_GET, "id")); $md5 = filter_input(INPUT_GET, "md5"); $part = PartecipazioneCorso::id($id); if ($part->md5 != $md5) { header('HTTP/1.0 403 Forbidden'); redirect("errore.403"); exit(0); } $part->nega("rifiuto docente");
$c = Corso::id($id); if (empty($c)) { throw new Exception('Manomissione'); } $tipoCorso = Certificato::by('id', intval($c->tipocorso)); } catch (Exception $e) { redirect('admin.corsi.crea&err'); } /* if (!$c->modificabile()) { redirect('formazione.corsi.riepilogo&id='.$id); } */ $discenti = PartecipazioneCorso::filtra([['corso', $c->id], ['ruolo', CORSO_RUOLO_DISCENTE], ['stato', PARTECIPAZIONE_ACCETTATA]]); $affiancamenti = PartecipazioneCorso::filtra([['corso', $c->id], ['ruolo', CORSO_RUOLO_AFFIANCAMENTO], ['stato', PARTECIPAZIONE_ACCETTATA]]); $docenti = PartecipazioneCorso::filtra([['corso', $c->id], ['ruolo', CORSO_RUOLO_DOCENTE], ['stato', PARTECIPAZIONE_ACCETTATA]]); caricaSelettoreDiscente(); $d = new DateTime('@' . $c->inizio); ?> <div class="row-fluid"> <div class="span8"> <h2><i class="icon-plus-square icon-calendar muted"></i> Corso di formazione</h2> <form action="?p=formazione.corsi.risultati.ok" method="POST"> <input type="hidden" name="id" value="<?php echo $id; ?> " /> <div class="alert alert-block alert-success"> <div class="row-fluid">
/** * Genera scheda valutazione, sulla base del corso e del volontario * @return PDF */ public function generaScheda($iscritto) { $pb = PartecipazioneCorso::filtra([['volontario', $iscritto], ['corso', $this], ['stato', PARTECIPAZIONE_EFFETTUATA_SUCCESSO]]); $pb = array_merge($pb, PartecipazioneCorso::filtra([['volontario', $iscritto], ['corsoBase', $this], ['stato', PARTECIPAZIONE_EFFETTUATA_FALLIMENTO]])); $pb = array_unique($pb); $pb = $pb[0]; /* costruisco i testi del pdf secondo regolamento */ if ($pb->p1) { $p1 = "Positivo"; } else { $p1 = "Negativo"; } if ($pb->p2) { $p2 = "Positivo"; } else { $p2 = "Negativo"; } if ($pb->stato == PARTECIPAZIONE_EFFETTUATA_SUCCESSO) { $idoneo = "Idoneo"; } else { $idoneo = "Non Idoneo"; } /* Appongo eventuali X */ $extra1 = "_"; $extra2 = "_"; if ($pb->e1) { $extra1 = "X"; } if ($pb->e2) { $extra2 = "X"; } /*testi con sesso già inserito */ if ($iscritto->sesso == UOMO) { $candidato = "il candidato"; } else { $candidato = "la candidata"; } $file = "Scheda valutazione "; $file .= $iscritto->nomeCompleto(); $file .= ".pdf"; $p = new PDF('schedacorso', $file); $p->_COMITATO = $this->organizzatore()->nomeCompleto(); $p->_VERBALENUM = $this->progressivo(); $p->_DATAESAME = date('d/m/Y', $this->tEsame); $p->_UNOESITO = $p1; $p->_ARGUNO = $pb->a1; $p->_DUEESITO = $p2; $p->_ARGDUE = $pb->a2; $p->_NOMECOMPLETO = $iscritto->nomeCompleto(); $p->_LUOGONASCITA = $iscritto->comuneNascita; $p->_CF = $iscritto->codiceFiscale; $p->_DATANASCITA = date('d/m/Y', $iscritto->dataNascita); $p->_IDONETA = $idoneo; $p->_EXTRAUNO = $extra1; $p->_EXTRADUE = $extra2; $p->_CANDIDATO = $candidato; $f = $p->salvaFile(null, true); return $f; }
// se il nuovo è anche tra i vecchi, lo toglie dalla lista di quelli da eliminare unset($daEliminare[$id]); } else { // se il nuovo non è tra i vecchi, lo aggiunge dalla lista di quelli da aggiungere $daAggiungere[$id] = true; } } $daAggiungere = array_keys($daAggiungere); $daEliminare = array_keys($daEliminare); foreach ($daEliminare as $id) { PartecipazioneCorso::id($id)->cancella(); } foreach ($daAggiungere as $id) { $docente = Volontario::id($id); // aggiungere verifica del fatto che sia effettivamente un docente $part = new PartecipazioneCorso(); $part->aggiungi($c, $docente, CORSO_RUOLO_AFFIANCAMENTO); } } else { throw new Exception('Manomissione'); } $c->aggiornaStato(); } } catch (Exception $e) { die($e->getMessage()); redirect('admin.corsi.crea&err'); } if (!empty($_POST['wizard'])) { redirect('formazione.corsi.discenti&id=' . $c->id . '&wizard=1'); die; }
try { $c = Corso::id($id); if (empty($c)) { throw new Exception('Manomissione'); } $tipoCorso = TipoCorso::id($c->tipo); $lezioni = $c->giornateCorso(); $ruolo = $tipoCorso->ruoloDocenti; $qualifica = $tipoCorso->qualifica; } catch (Exception $e) { redirect('admin.corsi.crea&err=' . CORSO_ERRORE_CORSO_NON_TROVATO); } if (!$c->modificabile()) { redirect('formazione.corsi.riepilogo&id=' . $id); } $partecipazioni = PartecipazioneCorso::filtra([['corso', $c->id], ['ruolo', CORSO_RUOLO_DOCENTE]]); $docenti = []; foreach ($partecipazioni as $p) { $docenti[] = $p->volontario(); } unset($partecipazioni); // carica i selettori caricaSelettoreDocente(['max_selected_options' => 1, 'no_results_text' => 'Nessun docente trovato']); if (isset($_GET['date'])) { ?> <div class="alert alert-error"> <i class="icon-warning-sign"></i> <strong>Data non valida</strong>. Hai inserito una data non valida. Non possono essere modificate date passate, per correggere contatta il supporto. </div> <?php
$c = Corso::id($id); if (empty($c)) { throw new Exception('Manomissione'); } $tipocorso = TipoCorso::by('id', intval($c->tipo)); } catch (Exception $e) { redirect('admin.corsi.crea&err=' . CORSO_ERRORE_CORSO_NON_TROVATO); } if (!$c->modificabile()) { redirect('formazione.corsi.riepilogo&id=' . $id); } // calcola il numero massimo di docenti per il corso $maxAffiancamenti = $c->numeroDocentiPotenziali() * max(1, intval($c->tipo()->proporzioneAffiancamento)); // recupera gli id di docenti già presenti per il corso // per popolare automaticamente la lista in caso di pagina di modifica $partecipazioni = PartecipazioneCorso::filtra([['corso', $c->id], ['ruolo', CORSO_RUOLO_AFFIANCAMENTO]]); $docenti = $affiancamenti = []; foreach ($partecipazioni as $part) { $affiancamenti[] = $part->volontario(); } unset($partecipazioni); // carica i selettori caricaSelettoreDocenteInAffiancamento(['max_selected_options' => $maxAffiancamenti, 'no_results_text' => 'Nessun affiancamento trovato']); $d = new DateTime('@' . $c->inizio); $ruolo = $tipocorso->ruoloAffiancamento; $qualifica = $tipocorso->qualifica; ?> <div class="row-fluid"> <div class="span8">
unset($daEliminare[$id]); } else { // se il nuovo non è tra i vecchi, lo aggiunge dalla lista di quelli da aggiungere $daAggiungere[$id] = true; } } $daAggiungere = array_keys($daAggiungere); $daEliminare = array_keys($daEliminare); /* var_dump($c); var_dump($_POST); var_dump($discenti); var_dump($daAggiungere); var_dump($daEliminare); die; */ foreach ($daEliminare as $id) { PartecipazioneCorso::id($id)->cancella(); } foreach ($daAggiungere as $id) { $discente = Volontario::id($id); // aggiungere verifica del fatto che sia effettivamente un istruttore $part = new PartecipazioneCorso(); $part->aggiungi($c, $discente, CORSO_RUOLO_DISCENTE); } } $c->aggiornaStato(); } catch (Exception $e) { redirect('admin.corsi.crea&err'); } redirect('formazione.corsi.riepilogo&id=' . $c->id);
} catch (Exception $e) { redirect('admin.corsi.crea&err'); } if (!empty($_GET['err']) && is_int($_GET['err'])) { if (!empty($conf['errori_corsi'][$_GET['err']])) { $err = $conf['errori_corsi'][$_GET['err']]; } else { $err = 'errore sconosciuto'; } } global $db; $db->beginTransaction(); try { $l = new GiornataCorso(); $l->corso = $id; $l->nome = normalizzaNome($_POST['nome']); $data = DT::createFromFormat('d/m/Y H:i', $_POST["data"]); $l->data = $data->getTimestamp(); $l->luogo = normalizzaNome($_POST['luogo']); $l->note = addslashes($_POST['note']); $l->docente = intval($_POST['docenti'][0]); $docente = Volontario::id(intval($_POST['docenti'][0])); $part = new PartecipazioneCorso(); $part->aggiungi(Corso::id($id), $docente, CORSO_RUOLO_DOCENTE); $db->commit(); } catch (Exception $e) { $db->rollBack(); redirect("formazione.corsi.lezioni&id={$id}&err"); die; } redirect("formazione.corsi.lezioni&id={$id}");