Example #1
0
 public function generaAutorizzazioni()
 {
     /* IMPORTANTE: Logica generazione autorizzazioni */
     // Se richiedo part., nello stesso comitato
     if ($this->comitatoAppartenenza()->haMembro($this->volontario())) {
         /* Allora come da accordi, genero
          * una sola Autorizzazione al presidente
          * del comitato organizzatore...
          */
         $a = new Autorizzazione();
         $a->partecipazione = $this->id;
         $a->volontario = $this->turno()->attivita()->referente()->id;
         $a->richiedi();
         $m = new Email('richiestaAutorizzazione', 'Richiesta autorizzazione partecipazione attività');
         $m->da = $me;
         $m->a = $this->turno()->attivita()->referente();
         $m->_NOME = $this->turno()->attivita()->referente()->nome;
         $m->_ATTIVITA = $this->turno()->attivita()->nome;
         $m->_VOLONTARIO = $this->volontario()->nomeCompleto();
         $m->_TURNO = $this->turno()->nome;
         $m->_DATA = date('d/m/Y H:i', $this->turno()->inizio);
         $m->invia();
     } else {
         /*
          * Se chiedo partecipazione in un comitato differente,
          * faccio richiesta al mio ed al suo presidente.
          */
         // Al suo...
         $a = new Autorizzazione();
         $a->partecipazione = $this->id;
         $a->volontario = $this->turno()->attivita()->referente()->id;
         $a->richiedi();
         $m = new Email('richiestaAutorizzazione', 'Richiesta autorizzazione partecipazione attività');
         $m->da = $me;
         $m->a = $this->turno()->attivita()->referente();
         $m->_NOME = $this->turno()->attivita()->referente()->nome;
         $m->_ATTIVITA = $this->turno()->attivita()->nome;
         $m->_VOLONTARIO = $this->volontario()->nomeCompleto();
         $m->_TURNO = $this->turno()->nome;
         $m->_DATA = $a->timestamp()->format('d-m-Y H:i');
         $m->invia();
         /*
                     // Al mio...
                     $a = new Autorizzazione();
                     $a->partecipazione = $this->id;
                     $a->volontario     = $this->volontario()->unComitato()->unPresidente()->id;
                     $a->richiedi();
                     
                     $m = new Email('richiestaAutorizzazione', 'Richiesta autorizzazione partecipazione attività');
                     $m->a            = $this->volontario()->unComitato()->unPresidente();
                     $m->_NOME        = $this->volontario()->unComitato()->unPresidente()->nome;
                     $m->_ATTIVITA    = $this->turno()->attivita()->nome;
                     $m->_VOLONTARIO  = $this->volontario()->nomeCompleto();
                     $m->_TURNO       = $this->turno()->nome;
                     $m->_DATA        = $a->timestamp()->format('d-m-Y H:i');
                     $m->invia();
         * 
         */
     }
 }
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
$parametri = array('turno', 'v');
controllaParametri($parametri, 'utente.me&err');
$turno = Turno::id($_GET['turno']);
$attivita = $turno->attivita();
paginaAttivita($attivita);
$v = Volontario::id($_GET['v']);
$p = Partecipazione::filtra([['turno', $turno], ['volontario', $v]]);
$aut = Autorizzazione::by('partecipazione', $p[0]);
$aut->concedi();
$cal = new ICalendar();
$cal->genera($attivita->id, $turno->id);
$m = new Email('autorizzazioneConcessa', "Autorizzazione CONCESSA: {$a->nome}, {$turno->nome}");
$m->a = $v;
$m->da = $attivita->referente();
$m->_NOME = $aut->partecipazione()->volontario()->nome;
$m->_ATTIVITA = $attivita->nome;
$m->_TURNO = $turno->nome;
$m->_DATA = $turno->inizio()->format('d-m-Y H:i');
$m->_LUOGO = $attivita->luogo;
$m->_REFERENTE = $attivita->referente()->nomeCompleto();
$m->_CELLREFERENTE = $attivita->referente()->cellulare();
$m->allega($cal);
$m->invia();
redirect("attivita.scheda&id={$attivita->id}&turno={$turno->id}&riapri={$turno->id}");
 $d->appartenenza = $attuale;
 $d->comitato = $comitato;
 $d->motivo = $_POST['motivo'];
 $d->info = $_POST['info'];
 $d->tConferma = time();
 $d->pConferma = $me;
 /* Evitiamo di lasciare compiti a chi non è più in CRI */
 $f = Area::filtra([['responsabile', $v]]);
 foreach ($f as $_f) {
     $_f->dimettiReferente();
 }
 $f = Attivita::filtra([['referente', $v]]);
 foreach ($f as $_f) {
     $_f->referente = $comitato->unPresidente();
 }
 $f = Autorizzazione::filtra([['volontario', $v]]);
 foreach ($f as $_f) {
     $_f->volontario = $comitato->unPresidente();
 }
 $f = Gruppo::filtra([['referente', $v]]);
 foreach ($f as $_f) {
     $_f->referente = $comitato->unPresidente();
 }
 $f = AppartenenzaGruppo::filtra([['volontario', $v]]);
 foreach ($f as $_f) {
     $_f->cancella();
 }
 $f = Reperibilita::filtra([['volontario', $v]]);
 foreach ($f as $_f) {
     $_f->fine = time();
 }
Example #4
0
 /**
  * Dimette un volontario
  * @param $motivo, motivazione di dimissione
  * @param $info default NULL, informazioni aggiuntive sulla dimissione
  */
 public function dimettiVolontario($motivo, $info = NULL, $chi)
 {
     $quando = time();
     $v = $this->volontario();
     $attuale = $v->appartenenzaAttuale();
     $comitato = $attuale->comitato();
     $motivazione = $conf['dimissioni'][$motivo];
     $fine = time();
     /* Avviso il volontario */
     $m = new Email('dimissionevolontario', 'Dimissione Volontario: ' . $v->nomeCompleto());
     $m->da = $chi;
     $m->a = $v;
     $m->_NOME = $v->nome;
     $m->_MOTIVO = $motivazione;
     $m->_INFO = $info;
     $m->invia();
     /* Creo la dimissione */
     $d = new Dimissione();
     $d->volontario = $v->id;
     $d->appartenenza = $attuale;
     $d->comitato = $comitato;
     $d->motivo = $motivo;
     $d->info = $info;
     $d->tConferma = time();
     $d->pConferma = $chi;
     /* Evitiamo di lasciare compiti a chi non è più in CRI */
     $f = Area::filtra([['responsabile', $v]]);
     foreach ($f as $_f) {
         $_f->dimettiReferente();
     }
     $f = Attivita::filtra([['referente', $v]]);
     foreach ($f as $_f) {
         $_f->referente = $comitato->unPresidente();
     }
     $f = Autorizzazione::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         $_f->volontario = $comitato->unPresidente();
     }
     $f = Gruppo::filtra([['referente', $v]]);
     foreach ($f as $_f) {
         $_f->referente = $comitato->unPresidente();
     }
     $f = AppartenenzaGruppo::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         $_f->cancella();
     }
     $f = Reperibilita::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         $_f->fine = $fine;
     }
     $f = Estensione::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         if ($_f->stato == EST_OK || $_f->stato == EST_AUTO) {
             $_f->termina();
         } elseif ($_f->stato == EST_INCORSO) {
             $_f->nega($motivazione);
         }
     }
     $f = Riserva::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         if ($_f->stato == RISERVA_OK || $_f->stato == RISERVA_AUTO) {
             $_f->termina();
         } elseif ($_f->stato == RISERVA_INCORSO) {
             $_f->nega($motivazione);
         }
     }
     $f = Trasferimento::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         if ($_f->stato == TRASF_INCORSO) {
             $_f->nega($motivazione);
         }
     }
     $p = Partecipazione::filtra([['volontario', $v]]);
     foreach ($p as $_p) {
         if ($_p->turno()->futuro() && $_p->turno()->attivita()->comitato() == $c->id) {
             $_p->cancella();
         }
     }
     $f = Delegato::filtra([['volontario', $v]]);
     foreach ($f as $_f) {
         $_f->fine = $fine;
     }
     /* Chiudo l'appartenenza e declasso a persona */
     $attuale->fine = $fine;
     $attuale->stato = MEMBRO_DIMESSO;
     $v->stato = PERSONA;
     $v->admin = null;
     return;
 }
Example #5
0
 /**
  * Cancella il comitato con tutte le sue dipendenze
  * @param comitato
  */
 public function cancella()
 {
     /* Cancello aree e responsabili */
     $aree = Area::filtra([['comitato', $this]]);
     foreach ($aree as $area) {
         $area->cancella();
     }
     /* Cancello le attività */
     $attivita = Attivita::filtra([['comitato', $this]]);
     foreach ($attivita as $att) {
         $turni = Turno::filtra([['attivita', $att]]);
         foreach ($turni as $turno) {
             $partecipazioni = Partecipazione::filtra([['turno', $turno]]);
             foreach ($partecipazioni as $partecipazione) {
                 $autorizzazioni = Autorizzazione::filtra([['partecipazione', $partecipazione]]);
                 foreach ($autorizzazioni as $autorizzazione) {
                     $autorizzazione->cancella();
                 }
                 $partecipazione->cancella();
             }
             $coturni = Coturno::filtra([['turno', $turno]]);
             foreach ($coturni as $coturno) {
                 $coturno->cancella();
             }
             $turno->cancella();
         }
         $mipiaci = Like::filtra([['oggetto', $att->oid()]]);
         foreach ($mipiaci as $mipiace) {
             $mipiace->cancella();
         }
         $att->cancella();
     }
     /* Cancello le dimissioni */
     $dimissioni = Dimissione::filtra([['comitato', $this]]);
     foreach ($dimissioni as $dimissione) {
         try {
             $appartenenza = $dimissione->appartenenza();
             $appartenenza->cancella();
         } catch (Exception $e) {
         }
         $dimissione->cancella();
     }
     /* Cancello le dimissioni */
     $estensioni = Estensione::filtra([['cProvenienza', $this]]);
     foreach ($estensioni as $estensione) {
         try {
             $appartenenza = $estensione->appartenenza();
             $appartenenza->cancella();
         } catch (Exception $e) {
         }
         $estensione->cancella();
     }
     /* Cancello i gruppi personali */
     $appgruppi = AppartenenzaGruppo::filtra([['comitato', $this]]);
     foreach ($appgruppi as $appgruppo) {
         $appgruppo->cancella();
     }
     /* Cancello reperibilità */
     $reperibilita = Reperibilita::filtra([['comitato', $t]]);
     foreach ($reperibilita as $reperibile) {
         $reperibile->cancella();
     }
     /* Cancello appartenenze */
     $appartenenze = Appartenenza::filtra([['comitato', $this]]);
     foreach ($appartenenze as $appa) {
         $riserve = Riserva::filtra([['appartenenza', $appa]]);
         foreach ($riserve as $riserva) {
             $riserva->cancella();
         }
         $estensioni = Estensione::filtra([['appartenenza', $appa]]);
         foreach ($estensioni as $estensione) {
             $estensione->cancella();
         }
         $trasferimenti = Trasferimento::filtra([['appartenenza', $appa]]);
         foreach ($trasferimenti as $trasferimento) {
             $trasferimento->cancella();
         }
         $appa->cancella();
     }
     parent::cancella();
 }
Example #6
0
                        echo "<br />Correggo autorizzazione! <br>";
                    }
                }
            }
            echo " - Operazione completata! <br/><br />";
            $eseguiti++;
            continue;
        }
        continue;
    } else {
        echo "Inizio rimozione attività con dati incompleti: ID: ", $a->id, $a->nome;
        $turni = Turno::filtra([['attivita', $a]]);
        foreach ($turni as $turno) {
            $partecipazioni = Partecipazione::filtra([['turno', $turno]]);
            foreach ($partecipazioni as $partecipazione) {
                $autorizzazioni = Autorizzazione::filtra([['partecipazione', $partecipazione]]);
                foreach ($autorizzazioni as $autorizzazione) {
                    $autorizzazione->cancella();
                    $nAutorizzazioni++;
                }
                $partecipazione->cancella();
                $nPartecipazioni++;
            }
            $turno->cancella();
            $nTurni++;
        }
        $a->cancella();
        $nAttivita++;
    }
    echo " - Attività rimossa - Operazione completata!<br/>";
}
Example #7
0
 private function api_autorizza()
 {
     $this->richiedi(['id']);
     $this->richiediLogin();
     $aut = Autorizzazione::id($this->par['id']);
     if ($aut->stato == AUT_PENDING) {
         $turno = $aut->partecipazione()->turno();
         $attivita = $turno->attivita();
         if ($this->par['aut']) {
             $aut->concedi();
             $cal = new ICalendar();
             $cal->genera($attivita->id, $turno->id);
             $m = new Email('autorizzazioneConcessa', "Autorizzazione CONCESSA: {$attivita->nome}, {$turno->nome}");
             $m->a = $aut->partecipazione()->volontario();
             $m->da = $attivita->referente();
             $m->_NOME = $aut->partecipazione()->volontario()->nome;
             $m->_ATTIVITA = $attivita->nome;
             $m->_TURNO = $turno->nome;
             $m->_DATA = $turno->inizio()->format('d-m-Y H:i');
             $m->_LUOGO = $attivita->luogo;
             $m->_REFERENTE = $attivita->referente()->nomeCompleto();
             $m->_CELLREFERENTE = $attivita->referente()->cellulare();
             $m->allega($cal);
             $m->invia(true);
         } else {
             $aut->nega();
             $m = new Email('autorizzazioneNegata', "Autorizzazione NEGATA: {$attivita->nome}, {$turno->nome}");
             $m->a = $aut->partecipazione()->volontario();
             $m->da = $attivita->referente();
             $m->_NOME = $aut->partecipazione()->volontario()->nome;
             $m->_ATTIVITA = $attivita->nome;
             $m->_TURNO = $turno->nome;
             $m->_DATA = $turno->inizio()->format('d-m-Y H:i');
             $m->_LUOGO = $attivita->luogo;
             $m->_MOTIVO = $this->par['motivo'];
             $m->invia();
         }
     }
     return ['id' => $aut];
 }
Example #8
0
 public static function pulizia()
 {
     $attivita = Attivita::elenco();
     $eseguiti = 0;
     $nAttivita = 0;
     foreach ($attivita as $a) {
         $comitato = $a->comitato();
         if ($comitato) {
             if (!$a->referente()) {
                 $comitato = $a->comitato();
                 $presidente = $comitato->primoPresidente();
                 $a->referente = $presidente;
                 $turni = Turno::filtra([['attivita', $a]]);
                 foreach ($turni as $_t) {
                     $part = Partecipazione::filtra([['turno', $_t]]);
                     foreach ($part as $_p) {
                         $aut = Autorizzazione::filtra([['partecipazione', $_p]]);
                         foreach ($aut as $_a) {
                             $_a->volontario = $presidente;
                         }
                     }
                 }
                 $eseguiti++;
                 continue;
             }
             continue;
         } else {
             $turni = Turno::filtra([['attivita', $a]]);
             foreach ($turni as $turno) {
                 $partecipazioni = Partecipazione::filtra([['turno', $turno]]);
                 foreach ($partecipazioni as $partecipazione) {
                     $autorizzazioni = Autorizzazione::filtra([['partecipazione', $partecipazione]]);
                     foreach ($autorizzazioni as $autorizzazione) {
                         $autorizzazione->cancella();
                     }
                     $partecipazione->cancella();
                 }
                 $turno->cancella();
             }
             $a->cancella();
             $nAttivita++;
         }
     }
     $t = $eseguiti + $nAttivita;
     return $t;
 }
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
$parametri = array('id', 'inputReferente');
controllaParametri($parametri);
$attivita = $_POST['id'];
$attivita = Attivita::id($attivita);
paginaAttivita($attivita);
$referente = $_POST['inputReferente'];
$referente = Volontario::id($referente);
$volontario = $attivita->referente();
$autorizzazioni = Autorizzazione::filtra([['volontario', $volontario], ['stato', AUT_PENDING]]);
foreach ($autorizzazioni as $autorizzazione) {
    $autorizzazione->volontario = $referente;
}
$attivita->referente = $referente;
$m = new Email('referenteAttivita', 'Referente attività');
$m->_NOME = $referente->nome;
$m->_ATTIVITA = $attivita->nome;
$m->_COMITATO = $attivita->comitato()->nomeCompleto();
$m->a = $referente;
$m->invia();
redirect('attivita.gestione&ok');