Пример #1
0
 /**
  * In caso di cancellazione o rimozione delegato utente, 
  * mette come delegato il presidente
  * @param $num numero dell'obiettivo strategico
  */
 public function dimettiDelegatoObiettivo($num)
 {
     $c = $this->comitato();
     $this->fine = time();
     $area = Area::filtra([['comitato', $c->oid()], ['nome', 'Generale'], ['obiettivo', $num]]);
     if ($area) {
         $area = $area[0];
         if ($area->attivita()) {
             $area->responsabile = $c->primoPresidente()->id;
         } else {
             $area->cancella();
         }
     } else {
         /* Per compatibilità con le aree cancellate, se l'area non c'è più la ricreo*/
         $a = new Area();
         $a->comitato = $c->oid();
         $a->obiettivo = $num;
         $a->nome = 'Generale';
         $a->responsabile = $c->primoPresidente()->id;
     }
     return;
 }
Пример #2
0
        $m->invia();
        /* Se è il primo, crea apposita AREA */
        if ($primo) {
            $a = new Area();
            $a->comitato = $c->oid();
            $a->obiettivo = $num;
            $a->nome = 'Generale';
            $a->responsabile = $v->id;
        } else {
            /* Il problema è che se è cambiato il delegato col cazzo che ribecco l'area.... */
            $vecchioDelegato = $vecchioDelegato[0]->id;
            /* Controllo se c'è l'area del precedente delegato */
            $area = Area::filtra([['responsabile', $vecchioDelegato], ['comitato', $c->oid()], ['obiettivo', $num]]);
            if (!$area) {
                /* Controllo se c'è almeno un'area con il nome Generale */
                $area = Area::filtra([['comitato', $c->oid()], ['nome', 'Generale'], ['obiettivo', $num]]);
            }
            if ($area) {
                $area = $area[0];
                $area->responsabile = $v->id;
            } else {
                /* Per compatibilità con le aree cancellate, se l'area non c'è più la ricreo*/
                $a = new Area();
                $a->comitato = $c->oid();
                $a->obiettivo = $num;
                $a->nome = 'Generale';
                $a->responsabile = $v->id;
            }
        }
    }
}
Пример #3
0
    $attuale->fine = $ora;
    $attuale->stato = MEMBRO_ORDINARIO_DIMESSO;
    $v->stato = PERSONA;
    $v->admin = null;
} else {
    /* Creo la dimissione */
    $d = new Dimissione();
    $d->volontario = $v->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();
    }
Пример #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;
 }
Пример #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();
 }
Пример #6
0
 public function aree($obiettivo = null, $espandiLocali = false)
 {
     if ($obiettivo) {
         $obiettivo = (int) $obiettivo;
         return Area::filtra([['comitato', $this->oid()], ['obiettivo', $obiettivo]], 'obiettivo ASC');
     } else {
         return Area::filtra([['comitato', $this->oid()]], 'obiettivo ASC');
     }
 }