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');
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(); }
<?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');
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">
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) {
<?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;
<?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);
/** * 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 /* * ©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');