/** * 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; }
$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(); }
/** * 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(); }
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/>"; }
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');
public function autorizzazioni() { return Autorizzazione::filtra([['partecipazione', $this->id]]); }