Beispiel #1
0
function cronjobSettimanale()
{
    global $log, $db;
    $ok = true;
    cronjobEsegui("Invio reminder patenti CRI in scadenza nei prossimi 15gg", function () {
        $patenti = TitoloPersonale::inScadenza(2700, 2709, 15);
        // Minimo id titolo, Massimo id titolo, Giorni
        $n = 0;
        $giaInsultati = [];
        foreach ($patenti as $patente) {
            $_v = $patente->volontario();
            if (in_array($_v->id, $giaInsultati)) {
                continue;
                // Il prossimo...
            }
            $giaInsultati[] = $_v->id;
            $m = new Email('patenteScadenza', 'Avviso patente CRI in scadenza');
            $m->a = $_v;
            $m->_NOME = $_v->nome;
            $m->_SCADENZA = date('d-m-Y', $patente->fine);
            $m->invia();
            $n++;
        }
        return "Inviate {$n} notifiche di scadenza patente";
    }, $log, $ok);
    cronjobEsegui("Invio reminder patenti civili in scadenza nei prossimi 15gg", function () {
        $patenti = TitoloPersonale::inScadenza(70, 77, 15);
        // Minimo id titolo, Massimo id titolo, Giorni
        $n = 0;
        $giaInsultati = [];
        foreach ($patenti as $patente) {
            $_v = $patente->volontario();
            if (in_array($_v->id, $giaInsultati)) {
                continue;
                // Il prossimo...
            }
            $giaInsultati[] = $_v->id;
            $m = new Email('patenteScadenzaCivile', 'Avviso patente Civile in scadenza');
            $m->a = $_v;
            $m->_NOME = $_v->nome;
            $m->_SCADENZA = date('d-m-Y', $patente->fine);
            $m->invia();
            $n++;
        }
        return "Inviate {$n} notifiche di scadenza patente civili";
    }, $log, $ok);
    cronjobEsegui("Invio del riepilogo per i presidenti", function () {
        $n = 0;
        foreach (Comitato::elenco() as $comitato) {
            $a = count($comitato->appartenenzePendenti());
            $b = count($comitato->titoliPendenti());
            $c = count($comitato->fototesserePendenti());
            $z = $a + $b + $c;
            if ($z == 0) {
                continue;
            }
            foreach ($comitato->volontariPresidenti() as $presidente) {
                $m = new Email('riepilogoPresidente', "Promemoria: Ci sono {$c} azioni in sospeso");
                $m->a = $presidente;
                $m->_NOME = $presidente->nomeCompleto();
                $m->_COMITATO = $comitato->nomeCompleto();
                $m->_APPPENDENTI = $a;
                $m->_TITPENDENTI = $b;
                $m->_FOTPENDENTI = $c;
                $m->invia();
                $n++;
            }
        }
        return "Inviati {$n} promemoria ai presidenti";
    }, $log, $ok);
    cronjobEsegui("Invio reminder anniversario riserva a breve", function () {
        $n = 0;
        foreach (Riserva::inScadenza() as $r) {
            $n++;
            $m = new Email('promemoriaScadenzaRiserva', "Promemoria: Riserva in scadenza tra pochi giorni");
            $m->a = $r->volontario();
            $m->_NOME = $r->volontario()->nome;
            $m->_SCADENZA = date('d-m-Y', $r->fine);
            $m->invia();
        }
        return "Notificate {$n} riserve in scadenza";
    }, $log, $ok);
    cronjobEsegui("Invio reminder scadenza estensione a breve", function () {
        $n = 0;
        foreach (Estensione::inScadenza() as $e) {
            $n++;
            $m = new Email('promemoriaScadenzaEstensione', "Promemoria: Estensione in scadenza tra pochi giorni");
            $m->a = $e->volontario();
            $m->_NOME = $e->volontario()->nome;
            $m->_COMITATO = $e->appartenenza()->comitato()->nomeCompleto();
            $m->_SCADENZA = date('d-m-Y', $e->appartenenza()->fine);
            $m->invia();
        }
        return "Notificate {$n} estensioni in scadenza";
    }, $log, $ok);
    cronjobEsegui("Controllo aspiranti, promemoria e cancellazione", function () use($db) {
        $n = $c = 0;
        $query = "\n                SELECT  aspiranti.utente,\n                        COUNT(corsibase.geo),\n                        aspiranti.id\n                FROM    aspiranti, corsibase\n                WHERE   utente NOT IN (\n                    SELECT  volontario\n                    FROM    partecipazioniBase\n                    WHERE   stato >= 10\n                )\n                AND         ST_DISTANCE( corsibase.geo, aspiranti.geo ) < aspiranti.raggio\n                AND         corsibase.stato = 30\n                AND         corsibase.inizio >= UNIX_TIMESTAMP()\n                GROUP BY    aspiranti.utente\n            ";
        $query = $db->query($query);
        while ($r = $query->fetch(PDO::FETCH_NUM)) {
            try {
                $u = Utente::id($r[0]);
            } catch (Errore $e) {
                $c++;
                $a = Aspirante::id($r[2]);
                $a->cancella();
                continue;
            }
            $n++;
            $m = new Email('promemoriaCorsiBase', "Entra in CRI: Ci sono {$r[1]} Corsi Base vicino a te");
            $m->a = $u;
            $m->_NOME = $u->nome;
            $m->_NUMERO = $r[1];
            $m->accoda();
        }
        return "Inviati {$n} promemoria ad Aspiranti, cancellati {$c} aspiranti invalidi";
    }, $log, $ok);
    return $ok;
}
<?php

/*
 * ©2014 Croce Rossa Italiana
 */
paginaApp([APP_SOCI, APP_PRESIDENTE]);
controllaParametri(['id'], 'presidente.riserva&err');
$t = $_GET['id'];
$t = Riserva::id($t);
$t->termina();
redirect("presidente.utenti.riserve");
    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) {
    $t->provinciale = $c;
} elseif ($estensione == EST_PROVINCIALE) {
    $t->regionale = $c;
}
GeoPolitica::rigeneraAlbero();
redirect('admin.comitati&spostato');
Beispiel #4
0
 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();
 }
Beispiel #5
0
<?php

/*
 * ©2014 Croce Rossa Italiana
 */
paginaAdmin();
controllaParametri(array('id'), 'presidente.riserva&err');
$r = $_GET['id'];
$r = Riserva::id($r);
$r->cancella();
redirect('presidente.riserva&canc');
Beispiel #6
0
    if ($h != 1) {
        ?>
                        <div class="alert alert-error">
                            <h4><i class="icon-warning-sign"></i> Patente in scadenza</h4>
                            <p>La tua <strong>PATENTE CRI</strong> scadrà il <strong><?php 
        echo date('d-m-Y', $patente->fine);
        ?>
</strong></p>
                        </div>
                        <?php 
        $h = 1;
    }
}
/* Utente in riserva */
if ($me->inRiserva()) {
    $r = Riserva::filtra([['volontario', $me->id], ['stato', RISERVA_OK]]);
    $r = $r[0];
    ?>
                    <div class="alert alert-block">
                        <h4><i class="icon-pause"></i> In riserva</h4>
                        <p>Sei nel ruolo di riserva fino al  <strong><?php 
    echo date('d/m/Y', $r->fine);
    ?>
</strong>.</p>
                    </div>
                <?php 
}
/* Utente con provvedimento */
if ($me->provvedimento()) {
    ?>
                    <div class="alert alert-block">
Beispiel #7
0
 public static function inScadenza()
 {
     $risok = Riserva::filtra([['stato', RISERVA_OK]]);
     $risauto = Riserva::filtra([['stato', RISERVA_AUTO]]);
     $ris = array_merge($risok, $risauto);
     $r = [];
     $traunmese = time() + MESE;
     $ora = time();
     foreach ($ris as $_ris) {
         if ($_ris->fine > $ora && $_ris->fine < $traunmese) {
             $r[] = $_ris;
         }
     }
     return $r;
 }
 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);
     }
 }
 $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) {
Beispiel #9
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
controllaParametri(array('id'));
$id = $_GET['id'];
$ris = Riserva::id($id);
$ris->termina();
$m = new Email('riservaTermina', 'Termine riserva: ' . $ris->comitato()->nomeCompleto());
$m->a = $ris->comitato()->primoPresidente();
$m->_NOME = $ris->volontario()->nomeCompleto();
$m->_COMITATO = $ris->comitato()->nomeCompleto();
$m->invia();
redirect('utente.storico&rister');
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
controllaParametri(array('id'), 'presidente.riserva&err');
$f = $_GET['id'];
$t = Riserva::id($f);
$c = $t->volontario()->unComitato();
$app = $me->appartenenzaAttuale();
/* Modificando questo, modificare anche utente.trasferimento.ok */
$p = new PDF('riserva', 'Riserva.pdf');
$p->_COMITATO = $c->locale()->nome;
$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 = date('d/m/Y', $app->inizio);
$p->_MOTIVO = $t->motivo;
$p->_INIZIO = date('d/m/Y', $t->inizio);
$p->_FINE = date('d/m/Y', $t->fine);
$p->_TIME = date('d/m/Y', $t->timestamp);
$f = $p->salvaFile();
if ($sessione->inGenerazioneRiserva) {
    $sessione->inGenerazioneRiserva = null;
    try {
        /* Richiesta all'utente */
        $m = new Email('richiestaRiserva', 'Richiesta riserva');
        $m->a = $me;
        $m->_NOME = $me->nome;
Beispiel #11
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);
Beispiel #12
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;
 }
Beispiel #13
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
 */
paginaApp([APP_SOCI, APP_PRESIDENTE]);
$parametri = array('id', 'numprotocollo', 'dataprotocollo');
controllaParametri($parametri, 'presidente.riserva&err');
$t = $_GET['id'];
$a = Riserva::id($t);
$v = $a->volontario();
if (!$v->modificabileDa($me) && !$me->admin()) {
    redirect('presidente.riserva&err');
}
if ($a->protData && $a->protNumero) {
    redirect('presidente.riserva&giaprot');
}
$a->protNumero = $_POST['numprotocollo'];
$protData = @DateTime::createFromFormat('d/m/Y', $_POST['dataprotocollo']);
$protData = @$protData->getTimestamp();
$a->protData = $protData;
redirect('presidente.riserva&prot');