Example #1
0
 public function ritira(string $motivo)
 {
     global $sessione;
     // DA CHIEDERE:
     // se la partecipazione di un istruttore è ritirata
     // prima che partano i giorni "buffer", c'è ancora tempo per cercare altri istruttori
     // diversamente il corso viene annullato d'ufficio
     $comitato = Comitato::daOid($c->organizzatore);
     if (!$sessione->utente()->presiede($comitato)) {
         // N.B.: da estendere anche al delegato del presidente
         return false;
     }
     if (!$this->modificabile() && $this->stato == PARTECIPAZIONE_ACCETTATA && $this->ruolo == CORSO_RUOLO_DOCENTE) {
         // cancellazione del corso e collegati,
         // compreso il record db di questo oggetto PartecipazioneCorso
         // notifiche a chi di dovere
         return true;
     }
     // mettere corso in stato pending
     if (!empty($motivo)) {
         $this->note = $this->note . ' Partecipazione ritirata dal presidente/delegato: "' . $motivo . '".';
     }
     $this->stato = PARTECIPAZIONE_RITIRATA;
     return true;
 }