Example #1
0
function cronjobGiornaliero()
{
    global $log, $db, $cache;
    $ok = true;
    /* === 0. PERSISTE LA CACHE SU DISCO */
    cronjobEsegui("Persistere la cache di Redis su disco", function () use($cache) {
        if ($cache) {
            $cache->save();
        }
        return true;
    }, $log, $ok);
    cronjobEsegui("Cancellare file scaduti da disco e database", function () {
        $n = 0;
        foreach (File::scaduti() as $f) {
            $f->cancella();
            $n++;
        }
        return "Cancellati {$n} file scaduti";
    }, $log, $ok);
    cronjobEsegui("Autorizzare estensioni dopo 30gg, con notifica ai volontari", function () {
        $n = 0;
        foreach (Estensione::daAutorizzare() as $e) {
            $e->auto();
            $n++;
        }
        return "Concesse {$n} estensioni";
    }, $log, $ok);
    cronjobEsegui("Terminare estensioni", function () {
        $n = 0;
        foreach (Estensione::daChiudere() as $e) {
            $e->termina();
            $n++;
        }
        return "Chiuse {$n} estensioni";
    }, $log, $ok);
    cronjobEsegui("Autorizzare trasferimenti dopo 30gg, notifica e chiusura sospesi e turni", function () {
        $n = 0;
        foreach (Trasferimento::daAutorizzare() as $t) {
            $t->auto();
            $n++;
        }
        return "Autorizzati {$n} trasferimenti";
    }, $log, $ok);
    cronjobEsegui("Autorizzare riserve dopo 30gg", function () {
        $n = 0;
        foreach (Riserva::daAutorizzare() as $r) {
            $r->auto();
            $n++;
        }
        return "Autorizzate {$n} riserve";
    }, $log, $ok);
    cronjobEsegui("Pulitura e fix delle attività", function () {
        $n = 0;
        $n = Attivita::pulizia();
        return "Fix di {$n} attività";
    }, $log, $ok);
    cronjobEsegui("Rigenerazione albero dei comitati", function () {
        GeoPolitica::rigeneraAlbero();
        return true;
    }, $log, $ok);
    cronjobEsegui("Chiusura validazioni scadute", function () {
        Validazione::chiudi();
        return true;
    }, $log, $ok);
    cronjobEsegui("Rimozione errori vecchi di una settimana", function () {
        $n = MErrore::pulisci();
        return "Cancellati log di {$n} errori in database";
    }, $log, $ok);
    /****************************************************
     * MODULO FORMAZIONE
     ****************************************************/
    // Creo i certificati per i corsi superati
    cronjobEsegui("Cerca i corsi in stato da elaborare e genera i relativi certificati", function () {
        $n = Corso::chiudiCorsi();
        return "Generati ({$n}) certificati";
    }, $log, $ok);
    return $ok;
}
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaApp([APP_SOCI, APP_PRESIDENTE]);
$parametri = array('id', 'numprotocollo', 'dataprotocollo');
controllaParametri($parametri, 'presidente.trasferimento&err');
$t = $_POST['id'];
$a = Trasferimento::id($t);
$v = $a->volontario();
if (!$v->modificabileDa($me)) {
    redirect('errore.permessi&cattivo');
}
if ($a->protData && $a->protNumero) {
    redirect('presidente.trasferimento&giaprot');
}
$a->protNumero = $_POST['numprotocollo'];
$protData = @DateTime::createFromFormat('d/m/Y', $_POST['dataprotocollo']);
$protData = @$protData->getTimestamp();
$a->protData = $protData;
try {
    $m = new Email('richiestaTrasferimentoprot', 'Richiesta trasferimento Protocollata: ' . $a->comitato()->nome);
    $m->a = $a->volontario();
    $m->_NOME = $a->volontario()->nome;
    $m->_COMITATO = $a->comitato()->nomeCompleto();
    $m->_TIME = $a->dataRichiesta()->format('d/m/Y');
    $m->_NUM = $a->protNumero;
    $m->invia();
} catch (Exception $e) {
}
Example #3
0
?>
        <?php 
if (isset($_GET['comitato'])) {
    ?>
            <div class="alert alert-danger">
                <i class="icon-ban-circle"></i> <strong>Errore date</strong>.
                Le date e gli orari inseriti non sono nel formato corretto.
            </div>
        <?php 
}
?>
        <?php 
$i = 0;
foreach ($me->storico() as $app) {
    if ($app->attuale()) {
        $trasferimento = Trasferimento::by('appartenenza', $app->id);
        if ($app->stato == MEMBRO_PENDENTE) {
            redirect('errore.comitato');
            $i = 1;
        } elseif ($trasferimento && $trasferimento->stato == TRASF_INCORSO) {
            ?>
                 <div class="row-fluid">
                    <h2><i class="icon-warning-sign muted"></i> Impossibile inserire la propria disponiblità</h2>
                    <div class="alert alert-error">
                        <div class="row-fluid">
                            <span class="span12">
                                <p>Ci dispiace ma non puoi inserire la tua disponibilità finchè il tuo trasferimento è pendente.</p>
                            </span>
                        </div>
                    </div>           
                </div>  
Example #4
0
foreach ($delegati as $delegato) {
    $delegato->fine = time();
}
if ($estensione == EST_UNITA) {
    /* Estensioni dal comitato */
    $est = Estensione::filtra([['cProvenienza', $t], ['stato', EST_INCORSO]]);
    foreach ($est as $este) {
        $este->nega($motivo);
    }
    /* Estensioni verso il comitato */
    $appest = Appartenenza::filtra([['comitato', $t], ['stato', MEMBRO_EST_PENDENTE]]);
    foreach ($appest as $apest) {
        $apest->estensione()->nega($motivo);
    }
    /* Trasferimenti dal comitato */
    $trasf = Trasferimento::filtra([['cProvenienza', $t], ['stato', TRASF_INCORSO]]);
    foreach ($trasf as $trasfe) {
        $trasfe->nega($motivo);
    }
    /* Trasferimenti verso il comitato */
    $apptrasf = Appartenenza::filtra([['comitato', $t], ['stato', MEMBRO_TRASF_IN_CORSO]]);
    foreach ($apptrasf as $aptrasf) {
        $aptrasf->trasferimento()->nega($motivo);
    }
    $riserve = Riserva::filtra([['comitato', $t], ['stato', RISERVA_INCORSO]]);
    foreach ($riserve as $riserva) {
        $riserva->nega($motivo);
    }
    $t->principale = 0;
    $t->locale = $c;
} elseif ($estensione == EST_LOCALE) {
 foreach ($f as $_f) {
     if ($_f->stato == EST_OK || $_f->stato == EST_AUTO) {
         $_f->termina();
     } elseif ($_f->stato == EST_INCORSO) {
         $_f->nega($motivo);
     }
 }
 $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($motivo);
     }
 }
 $f = Trasferimento::filtra([['volontario', $v]]);
 foreach ($f as $_f) {
     if ($_f->stato == TRASF_INCORSO) {
         $_f->nega($motivo);
     }
 }
 $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;
 }
Example #6
0
 public static function daAutorizzare()
 {
     $t = Trasferimento::filtra([['stato', TRASF_INCORSO]]);
     $r = [];
     $unmesefa = time() - MESE;
     foreach ($t as $_t) {
         if ($_t->appartenenza()->inizio < $unmesefa) {
             $r[] = $_t;
         }
     }
     return $r;
 }
Example #7
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 #8
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaAdmin();
controllaParametri(array('a'));
$a = $_GET['a'];
$app = Appartenenza::id($a);
$v = $app->volontario;
foreach (Coturno::filtra([['appartenenza', $app]]) as $coturno) {
    $coturno->cancella();
}
foreach (Dimissione::filtra([['appartenenza', $app]]) as $dimissioni) {
    $dimissioni->cancella();
}
foreach (Estensione::filtra([['appartenenza', $app]]) as $estensione) {
    $estensione->cancella();
}
foreach (Quota::filtra([['appartenenza', $app]]) as $quote) {
    $quote->cancella();
}
foreach (Trasferimento::filtra([['appartenenza', $app]]) as $trasferimento) {
    $trasferimento->cancella();
}
foreach (Riserva::filtra([['appartenenza', $app]]) as $riserva) {
    $riserva->cancella();
}
$app->cancella();
redirect('presidente.utente.visualizza&id=' . $v);
Example #9
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();
 }
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
controllaParametri(array('id'), 'presidente.trasferimento&err');
$f = $_GET['id'];
$t = Trasferimento::id($f);
$cin = $t->comitato();
$cout = Comitato::id($t->cProvenienza);
$app = $me->appartenenzaAttuale();
/* Modificando questo, modificare anche utente.trasferimento.ok */
$p = new PDF('trasferimento', 'Trasferimento.pdf');
$p->_COMITATOOUT = $cout->locale()->nomeCompleto();
$p->_COMITATOIN = $cin->nomeCompleto();
$p->_COMITATOC = $cout->nomeCompleto();
$p->_NOME = $t->volontario()->nome;
$p->_COGNOME = $t->volontario()->cognome;
$p->_LUOGO = $t->volontario()->comuneNascita;
$p->_DATA = date('d/m/Y', $t->volontario()->dataNascita);
$p->_ANNOCRI = $t->volontario()->ingresso()->format('d/m/Y');
$p->_MOTIVO = $t->motivo;
$p->_TIME = date('d/m/Y', $t->timestamp);
$f = $p->salvaFile();
if ($sessione->inGenerazioneTrasferimento) {
    $sessione->inGenerazioneTrasferimento = null;
    try {
        /* Richiesta all'utente */
        $m = new Email('richiestaTrasferimento', 'Richiesta trasferimento: ' . $t->comitato()->nome);
        $m->a = $me;
Example #11
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
richiediComitato();
$parametri = array('inputComitato', 'inputMotivo');
controllaParametri($parametri);
$c = $_POST['inputComitato'];
$gia = Trasferimento::filtra([['volontario', $me], ['stato', TRASF_INCORSO]]);
if (!$c) {
    redirect('utente.trasferimento');
}
if ($gia) {
    redirect('utente.trasferimento&gia');
}
$m = $_POST['inputMotivo'];
/* Cerco appartenenze al comitato specificato */
$f = Appartenenza::filtra([['volontario', $me], ['comitato', $c], ['stato', MEMBRO_VOLONTARIO]]);
/* Se sono già appartenente *ora*,
 * restituisco errore
 */
foreach ($f as $app) {
    if ($app->attuale()) {
        redirect('utente.trasferimento&e');
        break;
    }
}
/*Se non sono appartenente allora avvio la procedura*/
foreach ($me->storico() as $app) {
Example #12
0
 /**
  * Ritorna l'oggetto trasferimento relativo all'appartenenza 
  * @return Trasferimento
  */
 public function trasferimento()
 {
     return Trasferimento::by('appartenenza', $this);
 }
Example #13
0
</div>

<hr />
<table class="table table-striped table-bordered" id="tabellaUtenti">
    <thead>
        <th>Nome</th>
        <th>Cognome</th>
        <th>Codice Fiscale</th>
        <th>Data Richiesta</th>
        <th>Comitato destinazione</th>
        <th>Azione</th>
    </thead>
    <?php 
$comitati = $me->comitatiApp([APP_SOCI, APP_PRESIDENTE]);
foreach ($comitati as $comitato) {
    $t = Trasferimento::filtra([['stato', TRASF_INCORSO], ['cProvenienza', $comitato->id]]);
    foreach ($t as $_t) {
        $v = $_t->volontario();
        ?>
            <tr>
                <td><?php 
        echo $v->nome;
        ?>
</td>
                <td><?php 
        echo $v->cognome;
        ?>
</td>
                <td><?php 
        echo $v->codiceFiscale;
        ?>