<?php /* * ©2013 Croce Rossa Italiana */ paginaPrivata(); $parametri = array('id', 'inputGruppo'); controllaParametri($parametri); $t = $_GET['id']; $g = $_POST['inputGruppo']; $g = Gruppo::id($g); /* Cerco se già iscritto a gruppo */ $x = AppartenenzaGruppo::filtra([['volontario', $t], ['gruppo', $g]]); /* Se sono già appartenente *ora*, * restituisco errore */ foreach ($x as $app) { if ($app->attuale()) { redirect('utente.gruppo&e'); break; } } /*Se non sono appartenente allora avvio la procedura*/ $t = new AppartenenzaGruppo(); $t->volontario = $me; $t->comitato = $g->comitato(); $t->gruppo = $g; $t->inizio = time(); $t->timestamp = time(); redirect('utente.gruppo&ok');
<?php /* * ©2012 Croce Rossa Italiana */ paginaPrivata(); controllaParametri(array('id'), 'gruppi.dash&err'); $id = $_GET['id']; $g = AppartenenzaGruppo::id($id); $gruppo = $g->gruppo(); proteggiClasse($gruppo, $me); ?> <div class="row-fluid"> <div class="span12"> <div class="row-fluid"> <h2><i class="icon-warning-sign muted"></i> Espulsione Volontario da gruppo di lavoro</h2> <div class="alert alert-error"> <div class="row-fluid"> <span class="span12"> <p><strong><?php if ($me->presiede()) { ?> <span class="muted">Presidente,</span><?php } ?> </strong></p> <p>Stai espellendo il volontario <strong><?php echo $g->volontario()->nomeCompleto(); ?> </strong> dal gruppo di lavoro <strong><?php echo $g->gruppo()->nome;
public function trasferisci($auto = false, $data = false) { if ($data) { $ora = $data; } else { $ora = time(); } $this->tConferma = $ora; if ($auto) { $this->stato = TRASF_AUTO; } else { global $sessione; $this->stato = TRASF_OK; $this->pConferma = $sessione->utente(); } $v = $this->volontario(); $a = $v->appartenenzaAttuale(); $c = $a->comitato(); /* Chiusura delle estensioni in corso*/ $e = Estensione::filtra([['volontario', $v], ['stato', EST_OK]]); foreach ($e as $_e) { $_e->termina(); } /* Chiudo eventuale riserva in corso*/ $r = Riserva::filtra([['volontario', $v], ['stato', RISERVA_OK]]); foreach ($r as $_r) { $_r->fine = $ora; $_r->stato = RISERVA_INT; } /* Chiudo tutto ciò che è legato all'appartenenza attuale */ // chiudo le deleghe su quel comitato $presidente = $c->primoPresidente(); $d = Delegato::filtra([['volontario', $v]]); foreach ($d as $_d) { if ($_d->attuale()) { $_d->fine = $ora; } } // chiudo le attività referenziate $att = Attivita::filtra([['referente', $v->id], ['comitato', $c->id]]); foreach ($att as $_att) { $_att->referente = $presidente->id; } // rimetto al presidente i gruppi $g = Gruppo::filtra([['referente', $v->id], ['comitato', $c->id]]); foreach ($g as $_g) { $_g->referente = $presidente->id; } // chiudo l'appartenenza ad un gruppo $ag = AppartenenzaGruppo::filtra([['volontario', $v->id], ['comitato', $c->id]]); foreach ($ag as $_ag) { $_ag->cancella(); } // chiudo le reperibilità $re = Reperibilita::filtra([['volontario', $v->id], ['comitato', $c->id]]); foreach ($re as $_re) { $_re->cancella(); } // chiudo le partecipazioni $p = Partecipazione::filtra([['volontario', $v->id]]); foreach ($p as $_p) { if ($_p->turno()->futuro()) { $_p->cancella(); } } /* Chiudo eventuale richiesta di tesserini o invalido l'attuale */ $motivo = "Trasferimento presso altro comitato"; $v->invalidaTesserino($motivo); /* Posso chiudere definitivamente la vecchia appartenenza */ $a = Appartenenza::id($a); $a->timestamp = $ora; $a->fine = $ora; $a->stato = MEMBRO_TRASFERITO; /* A questo punto rendo operativa la nuova appartenenza */ $nuovaApp = $this->appartenenza(); $nuovaApp->timestamp = $ora; $nuovaApp->stato = MEMBRO_VOLONTARIO; if (!$auto) { $nuovaApp->conferma = $sessione->utente()->id; } $nuovaApp->inizio = $ora; $nuovaApp->fine = PROSSIMA_SCADENZA; $destinatari = [$v, $presidente, $nuovaApp->comitato()->unPresidente()]; $m = new Email('richiestaTrasferimentook', 'Approvata richiesta trasferimento verso: ' . $nuovaApp->comitato()->nome); if (!$auto) { $m->da = $sessione->utente(); } $m->a = $destinatari; $m->_NOME = $nuovaApp->volontario()->nomeCompleto(); $m->_COMITATO = $nuovaApp->comitato()->nomeCompleto(); $m->_TIME = $this->dataRichiesta()->format('d/m/Y'); $m->accoda(); }
public function termina() { $this->timestamp = time(); $this->stato = EST_CONCLUSA; $app = $this->appartenenza(); $app->stato = MEMBRO_EST_TERMINATA; $app->fine = time(); $c = $app->comitato(); $v = $this->volontario(); // chiudo le deleghe su quel comitato $d = $v->delegazioni(null, $c->id); foreach ($d as $_d) { $_d->fine = $ora; } // chiudo le attività referenziate $a = Attivita::filtra([['referente', $v->id], ['comitato', $c->id]]); $presidente = $c->unPresidente(); foreach ($a as $_a) { $_a->referente = $presidente->id; } // rimetto al presidente i gruppi $g = Gruppo::filtra([['referente', $v->id], ['comitato', $c->id]]); foreach ($g as $_g) { $_g->referente = $presidente->id; } // chiudo l'appartenenza ad un gruppo $ag = AppartenenzaGruppo::filtra([['volontario', $v->id], ['comitato', $c->id]]); foreach ($ag as $_ag) { $_ag->cancella(); } // chiudo le reperibilità $r = Reperibilita::filtra([['volontario', $v->id], ['comitato', $c->id]]); foreach ($r as $_r) { $_r->cancella(); } // chiudo le partecipazioni $p = Partecipazione::filtra([['volontario', $v->id]]); foreach ($p as $_p) { if ($_p->turno()->futuro() && $_p->turno()->attivita()->comitato() == $c->id) { $_p->cancella(); } } // mando email per avvisare dello spiacevole evento :o( $destinatari = [$v, $app->comitato()->unPresidente(), $v->unComitato()->unPresidente()]; $m = new Email('richiestaEstensioneConclusa', 'Termine estensione: ' . $app->comitato()->nome); $m->a = $destinatari; $m->_NOME = $app->volontario()->nomeCompleto(); $m->_COMITATO = $app->comitato()->nomeCompleto(); $m->accoda(); }
public function appartenenze() { return AppartenenzaGruppo::filtra([['gruppo', $this->id]]); }
<?php /* * ©2014 Croce Rossa Italiana */ paginaPrivata(); controllaParametri(array('id')); $t = $_GET['id']; /* Cerco i gruppi a cui appartengo attualmente */ $g = $me->contaGruppi(); /* Se appartengo solo ad un gruppo non dimetto */ if ($g == 1) { redirect('utente.gruppo&last'); } /*Se non sono appartenente allora avvio la procedura*/ $t = AppartenenzaGruppo::id($t); if ($me->id != $t->volontario()->id) { redirect('errore.permessi'); } $t->fine = time(); $t->motivazione = "Abbandono spontaneo del gruppo"; $t->tNega = time(); $t->pNega = $me; redirect('utente.gruppo&del');
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(); } $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($motivo); } }
/** * 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; }
/** * 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(); }
<?php /* * ©2014 Croce Rossa Italiana */ paginaPrivata(); controllaParametri(array('id'), 'gruppi.dash&err'); $id = $_GET['id']; $gruppo = Gruppo::id($id); proteggiClasse($gruppo, $me); $appartenenti = AppartenenzaGruppo::filtra([['gruppo', $gruppo]]); foreach ($appartenenti as $appartenente) { $appartenente->cancella(); } $gruppo->cancella(); redirect('gruppi.dash&cancellato');
<?php /* * ©2013 Croce Rossa Italiana */ paginaPrivata(); controllaParametri(array('id'), 'gruppi.dash&err'); $id = $_GET['id']; $g = Gruppo::id($id); proteggiClasse($g, $me); foreach ($_POST['volontari'] as $v) { $v = Volontario::id($v); $gp = AppartenenzaGruppo::filtra([['volontario', $v], ['gruppo', $g->id], ['fine', NULL]]); if ($gp) { continue; } $t = new AppartenenzaGruppo(); $t->volontario = $v; $t->comitato = $g->comitato(); $t->gruppo = $g; $t->inizio = time(); $t->timestamp = time(); $m = new Email('aggiuntogruppo', "Aggiunto al gruppo di lavoro {$g->nome}"); $m->a = $v; $m->da = $me; $m->_NOME = $v->nomeCompleto(); $m->_GRUPPO = $g->nome; $m->_REFERENTE = $g->referente()->nomecompleto(); $m->_CELLREFERENTE = $g->referente()->cellulare(); $m->invia(); }