/** * Genera attestato, sulla base del corso e del volontario * @return PDF */ public function inviaInvito(Corso $c) { print "inviaInvito"; $m = new Email('crs_invitoDocente', "Invito " . $this->id); $m->a = $this->volontario(); //$m->da = "*****@*****.**"; //$m->a = $this->direttore(); $m->_NOME = $this->volontario()->nomeCompleto(); $m->_HOSTNAME = filter_input(INPUT_SERVER, "SERVER_NAME"); $m->_CORSO = $c->nome(); $m->_DATA = $c->inizio(); $m->_ID = $this->id; $m->_MD5 = $this->md5; $m->invia(); return $m; }
public function nega($motivo) { global $sessione; $v = $this->volontario(); $this->tConferma = time(); $this->pConferma = $sessione->utente(); $this->negazione = $motivo; $this->stato = TRASF_NEGATO; /* rimetto a posto l'appartenenza attuale */ $a = Appartenenza::id($this->appartenenza); $a->timestamp = time(); $a->stato = MEMBRO_TRASF_NEGATO; $a->conferma = $this->pConferma; $a->inizio = time(); $a->fine = time(); $m = new Email('richiestaTrasferimentono', 'Richiesta trasferimento negata: ' . $a->comitato()->nome); $m->da = $this->pConferma; $m->a = $a->volontario(); $m->_NOME = $v->nome; $m->_COMITATO = $a->comitato()->nomeCompleto(); $m->_TIME = $this->dataRichiesta()->format('d/m/Y'); $m->_MOTIVO = $motivo; $m->invia(); }
<?php /* * ©2013 Croce Rossa Italiana */ $parametri = array('inputEmail', 'inputCodiceFiscale'); controllaParametri($parametri, 'recuperaPassword&err'); $codiceFiscale = $_POST['inputCodiceFiscale']; $codiceFiscale = maiuscolo($codiceFiscale); $email = $_POST['inputEmail']; $p = Utente::by('codiceFiscale', $codiceFiscale); if (!$p) { redirect('recuperaPassword&cf'); } elseif ($p->email != $email) { redirect('recuperaPassword&email'); } /* Genera codice di validazione */ $codice = Validazione::generaValidazione($p, VAL_PASS); if (!$codice) { redirect('recuperaPassword&gia'); } $e = new Email('recuperaPassword', 'Richiesta reimpostazione password'); $e->a = $p; $e->_NOME = $p->nome; $e->_DATA = date('d-m-Y H:i'); $e->_CODICE = $codice; $e->invia(); redirect('recuperaPassword.step');
redirect('nuovaAnagraficaContatti&match'); } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { redirect('nuovaAnagraficaContatti&emailnon'); } if (strlen($_POST['inputPassword']) < 8 || strlen($_POST['inputPassword']) > 15) { redirect('nuovaAnagraficaContatti&e'); } if ($_POST['inputPassword'] != $_POST['inputPassword2']) { redirect('nuovaAnagraficaContatti&dis'); } $p = $sessione->utente(); $p->email = $email; $p->cellulare = $cell; $p->cellulareServizio = $cells; /* Imposta la password */ $password = $_POST['inputPassword']; $sessione->utente()->cambiaPassword($password); /* Tutto è andato a buon fine cancello sessioni */ $sessione->email = null; $sessione->email2 = null; $sessione->cell = null; $sessione->cells = null; if ($sessione->tipoRegistrazione == VOLONTARIO) { redirect('nuovaAnagraficaAccesso'); } $m = new Email('registrazioneAspirante', 'Grazie futuro volontario'); $m->a = $sessione->utente(); $m->_NOME = $sessione->utente()->nome; $m->invia(); redirect('aspirante.registra');
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; }
public function annulla() { $a = $this->appartenenza(); $ora = time(); $a->fine = $ora; $a->timestamp = $ora; $a->stato = MEMBRO_EST_ANN; $this->timestamp = $ora; $this->stato = EST_ANN; $v = $this->volontario(); $destinatari = [$v, $this->comitato()->unPresidente(), $v->unComitato()->unPresidente()]; $m = new Email('richiestaEstensioneAnnullamento', 'Annullata richiesta estensione'); $m->a = $destinatari; $m->_NOME = $v->nomeCompleto(); $m->_COMITATO = $this->comitato()->nomeCompleto(); $m->invia(); }
/** * 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; }
/** * Genera attestato, sulla base del corso e del volontario * @return PDF */ public function inviaRichiestaIscrizione(Volontario $iscrivente, $dati = array()) { //$iscritto = Volontario::id("2"); $sesso = null; if ($iscrivente->sesso == UOMO) { $sesso = "Volontario"; } else { $sesso = "Volontaria"; } $tipo = TipoCorso::id($this->tipo); $m = new Email('crs_richiestaIscrizione', "Richiesta di iscrizione ad un corso"); //$m->a = $aut->partecipazione()->volontario(); //$m->da = "*****@*****.**"; $m->a = $this->presidente()->email; //$m->a = '*****@*****.**'; $m->_NOME = $this->presidente()->nomeCompleto(); $m->_VOLONTARIO = $iscrivente->nomeCompleto(); $m->_CF = $iscrivente->codiceFiscale; $m->_CORSO = $tipo->nome; $m->_DATA = $this->inizio()->format('d/m/Y'); $m->_LUOGO = $this->luogo; $m->_DATI_NOME = @normalizzaNome($dati['inputNome']) . ' ' . @normalizzaNome($dati['inputCogome']); $m->_DATI_TELEFONO = @normalizzaNome($dati['inputNome']) . ' ' . @normalizzaNome($dati['inputCogome']); $m->_DATI_EMAIL = @$dati['inputTelefono']; $m->_DATI_RICHIESTA = @$dati['inputRichiesta']; $m->invia(true); return $f; }
private function api_corsobase_accetta() { $this->richiedi(['id']); $me = $this->richiediLogin(); $part = PartecipazioneBase::id($this->par['id']); $corsoBase = $part->corsoBase(); if (!$corsoBase->modificabileDa($me)) { return ['ok' => false]; } if ($part->stato == ISCR_RICHIESTA) { if ($this->par['iscr']) { $part->concedi($this->par['com'], $me); $cal = new ICalendar(); $cal->generaCorsoBase($corsoBase); $m = new Email('corsoBaseAmmesso', "Ammesso al {$corsoBase->nome()}"); $m->a = $part->utente(); $m->da = $corsoBase->direttore(); $m->_NOME = $part->utente()->nome; $m->_CORSO = $corsoBase->nome(); $m->_DATA = $corsoBase->inizio()->inTesto(false, true); $m->_DIRETTORE = $corsoBase->direttore()->nomeCompleto(); $m->_CELLDIRETTORE = $corsoBase->direttore()->cellulare(); $m->allega($cal); $m->invia(); } else { $part->nega($me); $motivo = $this->par['motivo']; $m = new Email('corsoBaseNonAmmesso', "Non ammesso al {$corsoBase->nome()}"); $m->a = $part->utente(); $m->da = $corsoBase->direttore(); $m->_NOME = $part->utente()->nome; $m->_MOTIVO = $motivo; $m->_CORSO = $corsoBase->nome(); $m->_DIRETTORE = $corsoBase->direttore()->nomeCompleto(); $m->invia(); } } return ['id' => $corsoBase->id]; }
public function generaAutorizzazioni() { /* IMPORTANTE: Logica generazione autorizzazioni */ // Se richiedo part., nello stesso comitato if ($this->comitatoAppartenenza()->haMembro($this->volontario())) { /* Allora come da accordi, genero * una sola Autorizzazione al presidente * del comitato organizzatore... */ $a = new Autorizzazione(); $a->partecipazione = $this->id; $a->volontario = $this->turno()->attivita()->referente()->id; $a->richiedi(); $m = new Email('richiestaAutorizzazione', 'Richiesta autorizzazione partecipazione attività'); $m->da = $me; $m->a = $this->turno()->attivita()->referente(); $m->_NOME = $this->turno()->attivita()->referente()->nome; $m->_ATTIVITA = $this->turno()->attivita()->nome; $m->_VOLONTARIO = $this->volontario()->nomeCompleto(); $m->_TURNO = $this->turno()->nome; $m->_DATA = date('d/m/Y H:i', $this->turno()->inizio); $m->invia(); } else { /* * Se chiedo partecipazione in un comitato differente, * faccio richiesta al mio ed al suo presidente. */ // Al suo... $a = new Autorizzazione(); $a->partecipazione = $this->id; $a->volontario = $this->turno()->attivita()->referente()->id; $a->richiedi(); $m = new Email('richiestaAutorizzazione', 'Richiesta autorizzazione partecipazione attività'); $m->da = $me; $m->a = $this->turno()->attivita()->referente(); $m->_NOME = $this->turno()->attivita()->referente()->nome; $m->_ATTIVITA = $this->turno()->attivita()->nome; $m->_VOLONTARIO = $this->volontario()->nomeCompleto(); $m->_TURNO = $this->turno()->nome; $m->_DATA = $a->timestamp()->format('d-m-Y H:i'); $m->invia(); /* // Al mio... $a = new Autorizzazione(); $a->partecipazione = $this->id; $a->volontario = $this->volontario()->unComitato()->unPresidente()->id; $a->richiedi(); $m = new Email('richiestaAutorizzazione', 'Richiesta autorizzazione partecipazione attività'); $m->a = $this->volontario()->unComitato()->unPresidente(); $m->_NOME = $this->volontario()->unComitato()->unPresidente()->nome; $m->_ATTIVITA = $this->turno()->attivita()->nome; $m->_VOLONTARIO = $this->volontario()->nomeCompleto(); $m->_TURNO = $this->turno()->nome; $m->_DATA = $a->timestamp()->format('d-m-Y H:i'); $m->invia(); * */ } }