public function firmatario() { if ($this->pFirma) { return Utente::id($this->pFirma); } else { return false; } }
public function annullatore() { return Utente::id($this->pAnnullata); }
<?php /* * ©2014 Croce Rossa Italiana */ paginaPrivata(); if (isset($_GET['single'])) { controllaParametri(array('id', 'corso'), 'errore.fatale'); $iscritto = $_GET['id']; $corso = $_GET['corso']; $iscritto = Utente::id($iscritto); $corso = CorsoBase::id($corso); $f = $corso->generaScheda($iscritto); $f->download(); } else { controllaParametri(array('id'), 'errore.fatale'); $corso = $_GET['id']; $corso = CorsoBase::id($corso); $zip = new Zip(); $tabella = '<table border="1" style="width:100%"> <tbody> <tr> <td align="center"><b>Cognome e Nome</b></td> <td align="center"><b>Luogo di nascita</b></td> <td align="center"><b>Data di nascita</b></td> <td align="center"><b>Esito</b></td> </tr>'; $x = 0; foreach ($corso->partecipazioni(ISCR_SUPERATO) as $pb) { $iscritto = $pb->utente(); $dataNascita = date('d/m/Y', $iscritto->dataNascita);
<?php /* * ©2013 Croce Rossa Italiana */ paginaAdmin(); set_time_limit(0); $utenti = Utente::senzaSesso(); foreach ($utenti as $u) { $utente = Utente::id($u); echo '' . $utente->id . ' '; echo '' . $utente->nome . ' ' . $utente->cognome; if (intval(substr($utente->codiceFiscale, 9, 2)) < 40) { $utente->sesso = UOMO; echo ' UOMO '; $s = 1; } else { $utente->sesso = DONNA; echo ' DONNA '; $s = 0; } echo ' ' . $utente->sesso; if ($utente->sesso != $s) { echo '<strong> ERRORE </strong>'; } echo '<br>'; }
<?php /* * ©2013 Croce Rossa Italiana */ controllaParametri(array('id'), 'us.dash&err'); $id = $_GET['id']; $v = Utente::id($id); if (!$v->modificabileDa($me)) { redirect('us.dash&err'); } proteggiDatiSensibili($v, [APP_SOCI, APP_PRESIDENTE]); /* * Controllo se ordinario o attivo * e recupero valore della quota minima */ $attivo = false; if ($v->stato == VOLONTARIO) { $attivo = true; } if (!($t = Tesseramento::attivo())) { redirect('us.quoteNo&err'); } $quotaMin = $attivo ? $t->attivo : $t->ordinario; ?> <form action="?p=us.quote.nuova.ok" method="POST"> <input type="hidden" name="vol" value="<?php echo $id; ?> " /> <div class="modal fade automodal">
<?php /* * ©2014 Croce Rossa Italiana */ paginaAdmin(); controllaParametri(['id']); $id = $_GET['id']; $u = Utente::id($id); if ($u->admin) { redirect('errore.permessi&cattivo'); } if ($u->stato != PERSONA) { redirect('errore.permessi&cattivo'); } $app = $u->appartenenzaAttuale(); $ora = time(); $comitato = $app->comitato; $app->fine = $ora; $u->stato = VOLONTARIO; $nuovaApp = new Appartenenza(); $nuovaApp->volontario = $u; $nuovaApp->comitato = $comitato; $nuovaApp->stato = MEMBRO_VOLONTARIO; $nuovaApp->inizio = $ora; $nuovaApp->timestamp = time(); $nuovaApp->comferma = $me; redirect("presidente.utente.visualizza&innalzato&id={$id}");
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; }
</div> </div> <hr /> <table class="table table-striped table-bordered" id="tabellaUtenti"> <thead> <th>Nome</th> <th>Cognome</th> <th>Codice Fiscale</th> <th>Azione</th> </thead> <?php $comitati = $me->comitatiApp([APP_SOCI, APP_PRESIDENTE]); foreach ($comitati as $comitato) { foreach ($comitato->tesseriniNonRiconsegnati() as $v) { $v = Utente::id($v); ?> <tr> <td><?php echo $v->nome; ?> </td> <td><?php echo $v->cognome; ?> </td> <td><?php echo $v->codiceFiscale; ?> </td> <td>
public static function limbo() { global $db; $q = $db->prepare("\n SELECT \n anagrafica.id \n FROM \n anagrafica\n WHERE\n ( anagrafica.id NOT IN \n ( SELECT \n volontario \n FROM \n appartenenza \n )\n ) \n ORDER BY\n anagrafica.cognome ASC,\n anagrafica.nome ASC"); $q->execute(); $r = []; while ($k = $q->fetch(PDO::FETCH_NUM)) { $r[] = Utente::id($k[0]); } return $r; }
$nome = "{$g->nome}"; if ($g->_estensione() == EST_UNITA) { $nome = "Unità {$g->nome}"; } if ($d->applicazione == APP_OBIETTIVO) { $ruolo = "Delegato {$conf['nomiobiettivi'][$d->dominio]}: {$nome}"; } else { $ruolo = "{$conf['applicazioni'][$d->applicazione]}: {$nome}"; } $m->_DELEGA = $ruolo; } else { $m->_DELEGA = "Il volontario non ha deleghe o non ne sta usando nessuna"; } $m->_BROSWER = $_SERVER['HTTP_USER_AGENT'] . "\n\n"; //inserisco i dati del volontari per cui è richiesta assistenza $u = Utente::id($_POST['inputVolontario']); $m->_VSTATO = $conf['statoPersona'][$u->stato]; $m->_VNOME = $u->nomeCompleto(); $m->_VID = $u->id; $comitato = $u->unComitato(); if ($comitato) { $comitato = $comitato->nomeCompleto(); } else { $comitato = 'nessun comitato assegnato o volontario in attesa di conferma'; } $m->_VAPP = $comitato; $m->invia(); redirect('utente.me&suppok'); } $m = new Email('mailSupporto', 'Richiesta supporto: ' . $oggetto); $m->da = $me;
/** * Ottiene elenco dei potenziali soci del comitato in un dato anno, al solo uso di * successiva verifica del pagamento della quota o meno nell'anno - NESSUN altro uso! * @param int $anno Opzionale. Anno di riferimento. Default anno attuale. * @ * @return array(Utente) */ public function potenzialiSoci($anno = false, $stato = MEMBRO_VOLONTARIO) { global $conf; $anno = $anno ? (int) $anno : (int) date('Y'); $minimo = DT::createFromFormat('d/m/Y H:i', "1/1/{$anno} 00:00"); $minimo = $minimo->getTimestamp(); $massimo = DT::createFromFormat('d/m/Y H:i', "31/12/{$anno} 23:59"); $massimo = $massimo->getTimestamp(); if (!is_array($stato)) { if (array_key_exists($stato, $conf['appartenenze_posteri'])) { $stato = $conf['appartenenze_posteri'][$stato]; } else { $stato = [$stato]; } } foreach ($stato as &$s) { $s = (int) $s; } $stato = implode(', ', $stato); $query = "\n SELECT anagrafica.id\n FROM appartenenza, anagrafica\n WHERE appartenenza.comitato = :comitato\n AND anagrafica.id = appartenenza.volontario \n AND appartenenza.stato IN ({$stato})\n AND appartenenza.inizio <= :massimo\n AND (\n appartenenza.fine IS NULL\n OR appartenenza.fine = 0\n OR appartenenza.fine > :minimo\n )\n "; $q = $this->db->prepare($query); $q->bindParam(':comitato', $this->id, PDO::PARAM_INT); $q->bindParam(':minimo', $minimo, PDO::PARAM_INT); $q->bindParam(':massimo', $massimo, PDO::PARAM_INT); $q->execute(); $r = []; while ($k = $q->fetch(PDO::FETCH_NUM)) { $r[] = Utente::id($k[0]); } return $r; }
public function autore() { return Utente::id($this->autore); }
/** * Salva questa Email sul database (relativa MEntita) * @return MEmail creata */ public function accoda() { if ($this->a) { if (!is_array($this->a)) { $u = Utente::id($this->a); } elseif (count($this->a) == 1) { $u = Utente::id($this->a[0]); } if ($u && (!$u->email || !filter_var($u->email, FILTER_VALIDATE_EMAIL))) { return false; } } $x = new MEmail(); $x->timestamp = (int) time(); $x->oggetto = $this->oggetto; $x->corpo = $this->_costruisci_corpo(); $x->mittente_id = $this->_costruisci_mittente(); // invio.iniziato <= null // invio.terminato <= null global $db; $db->beginTransaction(); // Group transaction $d = $this->_costruisci_destinatari(); if ($d) { $q = $db->prepare("\n INSERT INTO email_destinatari\n (email, dest, ok)\n VALUES\n (:email, :dest, :ok)"); $q->bindParam(':email', $x->id); $q->bindValue(':ok', false, PDO::PARAM_INT); foreach ($d as $_d) { $q->bindValue(':dest', $_d, PDO::PARAM_INT); $q->execute(); } } $a = $this->_costruisci_allegati(); $q = $db->prepare("\n INSERT INTO email_allegati \n (email, allegato_id, allegato_nome)\n VALUES\n (:email, :aid, :anome)"); $q->bindParam(':email', $x->id); foreach ($a as $_a) { $q->bindValue(':aid', $_a['id'], PDO::PARAM_INT); $q->bindValue(':anome', $_a['nome']); $q->execute(); } $db->commit(); // Commit the transaction return $x; }
/** * Dettagli utente attuale */ private function api_utente() { $this->richiedi(['id']); $u = Utente::id($this->par['id']); $conAvatar = true; if (isset($this->par['conAvatar'])) { $conAvatar = (bool) $this->par['conAvatar']; } return $u->toJSON($conAvatar); }
/** * Invia l'email usando configurazione attuale * @param callback|null $callback Eventuale callback da chiamare dopo ogni invio */ public function invia($callback = null) { global $conf; // Ottiene un mailer $y = $this->_mailer(); // Imposta il mittente $y->From = '*****@*****.**'; $y->FromName = 'Croce Rossa Italiana'; // Configurazione del mittente if ($this->mittente_id) { $u = Utente::id($this->mittente_id); $y->addReplyTo($u->email(), $u->nomeCompleto()); } else { // Se non specificato, rispondi al Supporto $y->addReplyTo('*****@*****.**', 'Supporto Gaia'); } // Configurazione oggetto e corpo $y->Subject = $this->oggetto; $y->isHTML(true); $y->Body = $this->corpo; $y->CharSet = 'UTF-8'; // Configurazione degli allegati foreach ($this->allegati() as $allegato) { try { // Cerca file dell'allegato... $a = File::id($allegato['allegato_id']); } catch (Errore $e) { // Se allegato mancante, salta... continue; } $y->addAttachment($a->percorso(), $a->nome); } // Imposta invio inizio... $this->_inizia_invio(); $riuscito = false; // Se non ci sono destinatari... $destinatari = $this->destinatari(); if (!(bool) $destinatari) { /* $y->AddAddress( '*****@*****.**', 'Supporto Gaia' ); */ $y->AddAddress('*****@*****.**', 'GAIA'); $y->AddAddress('*****@*****.**', 'GAIA'); $riuscito = (bool) $y->send(); } else { $riuscito = true; // Per ogni destinatario... foreach ($destinatari as $dest) { // Salta se gia' inviato! if ($dest['inviato'] && $dest['ok']) { continue; } $utente = Utente::id($dest['dest']); // Destinatario non esistente if (!$utente) { $this->_errore_invio($dest['dest']); continue; } // Invia l'email in questione /* $y->AddAddress( $utente->email, $utente->nomeCompleto() ); */ $y->AddAddress('*****@*****.**', 'GAIA'); $y->AddAddress('*****@*****.**', 'GAIA'); $stato = $y->send(); $this->_stato_invio($dest['dest'], $stato, $y->ErrorInfo); $riuscito = $riuscito && $stato; $y->ClearAllRecipients(); if (is_callable($callback)) { call_user_func($callback); } } } if ($riuscito) { $this->_termina_invio(); } return $riuscito; }
<?php /* * ©2014 Croce Rossa Italiana */ paginaPrivata(); controllaParametri(['id']); $admin = $me->admin(); $i = 0; $corso = CorsoBase::id($_GET['corso']); paginaCorsoBase($corso); if (!$corso->modificabileDa($me)) { redirect("formazione.corsibase.scheda&id={$_GET['corso']}"); } $utente = Utente::id($_GET['id']); ?> <h2 class="allinea-centro text-success"><i class="icon-calendar"></i> Elenco assenze</h2> <h3 class="allinea-centro"><?php echo $utente->nomeCompleto(); ?> </h3> <hr /> <div class="row-fluid"> <table class="table table-striped table-bordered"> <thead> <th>Nome della lezione</th> <th>Inizio lezione</th> <th>Fine della lezione</th>
<?php /* * ©2014 Croce Rossa Italiana */ /* * Normalizzazione dei dati */ paginaApp([APP_SOCI, APP_PRESIDENTE]); controllaParametri(array('t'), 'presidente.utenti&errGen'); $id = $_GET['t']; $p = Utente::id($id); proteggiDatiSensibili($p); $admin = $me->admin(); $dnascita = DT::createFromFormat('d/m/Y', $_POST['inputDataNascita']); $dnascita = $dnascita->getTimestamp(); $prnascita = maiuscolo($_POST['inputProvinciaNascita']); $conascita = normalizzaNome($_POST['inputComuneNascita']); $coresidenza = normalizzaNome($_POST['inputComuneResidenza']); $caresidenza = normalizzaNome($_POST['inputCAPResidenza']); $prresidenza = maiuscolo($_POST['inputProvinciaResidenza']); $indirizzo = normalizzaNome($_POST['inputIndirizzo']); $civico = maiuscolo($_POST['inputCivico']); $cell = normalizzaNome($_POST['inputCellulare']); $cells = normalizzaNome(@$_POST['inputCellulareServizio']); /* * Registrazione vera e propria... */ $p->dataNascita = $dnascita; $p->provinciaNascita = $prnascita; $p->comuneNascita = $conascita;
$lezione->fine = $fine->getTimestamp(); } if ($inizio->getTimestamp() != $lezione->inizio) { if ($inizio < $fine && $inizio->getTimestamp() > time()) { $lezione->inizio = $inizio->getTimestamp(); } else { redirect("formazione.corsibase.lezioni&id={$_GET['id']}&date&in"); } } if ($fine->getTimestamp() != $lezione->fine) { if ($inizio < $fine && $fine->getTimestamp() > time()) { $lezione->fine = $fine->getTimestamp(); } else { redirect("formazione.corsibase.lezioni&id={$_GET['id']}&date&fi"); } } if (isset($_POST["assenti_{$lezione}"])) { foreach ($_POST["assenti_{$lezione}"] as $_r) { $_r = Utente::id($_r); if ($lezione->assente($_r)) { continue; } $a = new AssenzaLezione(); $a->utente = $_r; $a->lezione = $lezione; $a->pConferma = $me; $a->tConferma = time(); } } } redirect("formazione.corsibase.lezioni&id={$_GET['id']}");
<?php /* * ©2013 Croce Rossa Italiana */ $parametri = ['vol', 'inputImporto', 'inputData']; controllaParametri($parametri, 'us.dash&err'); $v = Utente::id($_POST['vol']); if (!$v->modificabileDa($me)) { redirect('us.dash&err'); } proteggiDatiSensibili($v, [APP_SOCI, APP_PRESIDENTE]); if (!($t = Tesseramento::attivo())) { redirect('us.quoteNo&err'); } $importo = (double) $_POST['inputImporto']; $importo = round($importo, 2); $attivo = false; if ($v->stato == VOLONTARIO) { $attivo = true; } $quotaMin = $attivo ? $t->attivo : $t->ordinario; if ($importo < $quotaMin) { redirect('us.quote.nuova&id=' . $id . '&importo'); } $app = $v->appartenenzaAttuale(); $quotaBen = $quotaMin + (double) $app->comitato()->quotaBenemeriti(); $anno = date('Y'); /* Controllo se gà vi è una quota pagata per l'anno in corso */ $gia = Quota::filtra([['appartenenza', $app], ['anno', $anno]]); foreach ($gia as $_g) {
/** * Ottiene l'utente collegato all'oggetto aspirante * @return Utente */ public function utente() { return Utente::id($this->utente); }
<?php /* * ©2014 Croce Rossa Italiana */ controllaParametri(['id', 'corso'], 'presidente.soci.ordinari&err'); paginaPrivata(); $u = Utente::id($_GET['id']); $corso = $_GET['corso']; proteggiDatiSensibili($u, [APP_SOCI, APP_PRESIDENTE]); paginaApp([APP_SOCI, APP_PRESIDENTE]); if ($u->partecipazioniBase(ISCR_CONFERMATA)) { redirect('presidente.soci.ordinari&gia'); } if (!CorsoBase::id($corso)) { redirect('presidente.soci.ordinari&err'); } $part = new PartecipazioneBase(); $part->volontario = $u; $part->corsoBase = $corso; $part->stato = ISCR_RICHIESTA; $part->timestamp = time(); $part->concedi(); $u->stato = ASPIRANTE; redirect('presidente.soci.ordinari&iscritto');
<?php /* * ©2014 Croce Rossa Italiana */ /*da sistemare tutto */ paginaApp([APP_SOCI, APP_PRESIDENTE]); controllaParametri(['id'], 'us.dash&err'); $f = $_GET['id']; $v = Utente::id($f); /* Verifico di poter lavorare sull'utente */ proteggiDatiSensibili($v, [APP_SOCI, APP_PRESIDENTE]); $elenco = $me->comitatiApp([APP_SOCI, APP_PRESIDENTE]); if (!$v->modificabileDa($me)) { redirect('errore.permessi&cattivo'); } /* Al momento oscurato ordinario */ if ($v->ordinario()) { redirect('errore.permessi&cattivo'); } $app = $v->appartenenzaAttuale(); if (!$app || !in_array($app->comitato()->id, $elenco)) { redirect('errore.permessi&cattivo'); } /* Verifico esistenza di un tesserino valido e che la richiesta di duplicato non sia già stata fatta */ $gia = true; $t = TesserinoRichiesta::filtra([['volontario', $v]]); foreach ($t as $tesserino) { if ($tesserino->stato < INVALIDATO && $tesserino->stato != RIFIUTATO) { $gia = false; }
<?php /* * ©2013 Croce Rossa Italiana */ paginaAdmin(); controllaParametri(array('id'), 'presidente.utenti&err'); $t = $_GET['id']; $t = Utente::id($t); $t->cancellaUtente(); redirect('presidente.utenti&ok');
/** * Restituisce il volontario di una validazione * @return volontario */ public function utente() { return Utente::id($this->volontario); }
<?php /* * ©2014 Croce Rossa Italiana */ controllaParametri(array('id', 'asp'), 'formazione.corsibase'); paginaPrivata(); paginaModale(); $part = PartecipazioneBase::id($_GET['id']); $corso = $part->corsoBase(); $comitato = $corso->organizzatore(); $u = Utente::id($_GET['asp']); paginaCorsoBase($corso); if (!$corso->iniziato()) { redirect("formazione.corsibase.scheda&id={$corso}&err"); } $comitati = new RamoGeoPolitico($comitato, ESPLORA_SOLO_FOGLIE, EST_UNITA); ?> <script type="text/javascript"><?php require './assets/js/formazione.corsibase.scheda.js'; ?> </script> <div class="modal fade automodal"> <div class="modal-header"> <h3><i class="icon-group muted"></i> Stai iscrivendo <?php echo $u->nome; ?> come Socio Ordinario</h3> </div> <div class="modal-body">