/** * Ottiene l'unita' territoriale principale del comitato, * oppure null se questa non e' presente */ public function principale() { $p = Comitato::filtra([['locale', $this->id], ['principale', 1]]); if (!$p) { return false; } return $p[0]; }
public function provenienza() { return Comitato::id($this->cProvenienza); }
/* Controllo se la cartella è scrivibile */ if (!is_writable('upload/setup/')) { die("Errore: Directory upload/setup non scrivibile. Rendere upload e tutte le sue sottocartelle scrivibili da php.\n"); } /* Controllo se la cartella è scrivibile II la vendetta */ if (!is_writable('upload/')) { die("Errore: Directory upload/ non scrivibile. Rendere upload e tutte le sue sottocartelle scrivibili da php.\n"); } echo "================ INSTALLAZIONE DI GAIA ==============\n\n"; echo "Creazione directory upload/log...\n"; if (!mkdir('upload/log')) { die("Errore, impossibile scrivere dentro /upload\n"); } echo "Prova di scrittura sul database...\n"; try { $c = new Comitato(); $c->cancella(); } catch (Exception $e) { die("Errore: Impossibile scrivere sul database. È stato caricato il file /upload/setup/gaia.sql?\n"); } echo "Creazione delle cartelle per gli avatar...\n"; /* Crea le cartelle per gli avatar */ foreach ($conf['avatar'] as $x => $y) { @mkdir('upload/avatar/' . $x); } echo "Creazione delle cartelle per le fototessere...\n"; /* Crea le cartelle per gli fototessere */ foreach ($conf['fototessera'] as $x => $y) { @mkdir('upload/fototessere/' . $x); } echo "Creazione delle cartelle per i documenti...\n";
* ©2013 Croce Rossa Italiana */ $albero = GeoPolitica::ottieniAlbero()[0]; ?> <div class="row-fluid"> <div class="span8"> <h2> <i class="icon-globe text-error"></i> Dov'è Croce Rossa attorno a me? </h2> </div> <div class="span4 allinea-centro"> <i class="icon-bar-chart icon-2x text-error"></i><br /> <label class="label label-success"><?php echo count(Comitato::elenco()); ?> </label> <strong>Unità CRI aderiscono al progetto Gaia</strong> </div> </div> <hr /> <div class="row-fluid"> <div class="span5"> <p><strong>Elenco e contatti dei comitati che aderiscono al progetto Gaia.</strong></p>
<?php /* * ©2013 Croce Rossa Italiana */ $parametri = array('inputTesto', 'inputOggetto'); controllaParametri($parametri); $oggetto = $_POST['inputOggetto']; $testo = $_POST['inputTesto']; if (isset($_GET['pres'])) { foreach (Comitato::elenco() as $c) { $presidenti[] = $c->unPresidente(); } $presidenti = array_unique($presidenti); $delegati = array_unique($delegati); $i = 0; foreach ($presidenti as $presidente) { try { $m = new Email('mailTestolibero', '' . $oggetto); $m->a = $presidente; $m->_TESTO = $testo; $m->invia(); $i++; } catch (Exception $e) { } } $a = new Annunci(); $a->oggetto = $oggetto; $a->testo = $testo; $a->nPresidenti = $i; $a->timestamp = time();
<?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;
/* * ©2015 Croce Rossa Italiana */ //paginaAdmin(); paginaPresidenziale(null, null, APP_OBIETTIVO, OBIETTIVO_1); controllaParametri(['inizio', 'partecipanti', 'luogo', 'tipo', 'organizzatore'], 'formazione.corsi.crea&err'); if (!DT::controlloDataOra($_POST['inizio'])) { redirect('formazione.corsi.crea&err=' . CORSO_ERRORE_DATA_NON_CORRETTA); } $organizzatore = intval($_POST['organizzatore']); $partecipanti = intval($_POST['partecipanti']); $descrizione = $_POST['descrizione']; $luogo = $_POST['luogo']; $tipocorsoId = (int) intval($_POST['tipo']); $comitato = Comitato::id($organizzatore)->oid(); $inizio = DT::createFromFormat('d/m/Y H:i', $_POST['inizio']); $_POST['id'] = intval(@$_POST['id']); if (empty($_POST['id'])) { $c = new Corso(); } else { $c = Corso::id($_POST['id']); if (!$c->modificabile()) { redirect('formazione.corsi.riepilogo&id=' . $c->id . '&err=' . CORSO_ERRORE_CORSO_NON_MODIFICABILE); die; } } $c->tipo = $tipocorsoId; $c->organizzatore = $comitato; $c->responsabile = $me->id; $c->luogo = $luogo;
public function comitatiDiCompetenza($soloComitati = false) { if ($this->admin()) { $n = Nazionale::id(1); if ($soloComitati) { return Comitato::elenco('locale ASC'); } return $n->estensione($soloComitati); } else { return $this->comitatiPresidenzianti(); } }
public function comitato() { return Comitato::id($this->comitato); }
echo normalizzaNome($xyz[0]); if (isset($xyz[1])) { echo "provincia nascita: ", maiuscolo(str_replace(')', '', $xyz[1])); } $p->indirizzo = normalizzaNome($riga[5]); $p->civico = normalizzaNome($riga[6]); $p->comuneResidenza = normalizzaNome($riga[7]); $p->provinciaResidenza = maiuscolo($riga[8]); $p->CAPResidenza = maiuscolo($riga[9]); $email = minuscolo($riga[10]); if (filter_var($email, FILTER_VALIDATE_EMAIL) && !Persona::by('email', $email)) { echo "email OK"; } $app = null; $pres = null; echo "comitato:", Comitato::by('nome', $riga[15]); if ($riga[16] == '') { $riserva = false; } else { echo "Presente una riserva"; $riserva = true; } if ($riserva && !$ordinario) { $inizio = @DateTime::createFromFormat('d/m/Y', $riga[16]); $inizio = @$inizio->getTimestamp(); $fine = @DateTime::createFromFormat('d/m/Y', $riga[17]); $fine = @$fine->getTimestamp(); $protData = @DateTime::createFromFormat('d/m/Y', $riga[19]); $protData = @$protData->getTimestamp(); echo 'RISERVA'; }
$m = new Email('mailTestolibero', '' . $oggetto); $m->da = $me; $m->a = $v; $m->_TESTO = $testo; $m->accoda(); } } } } elseif (isset($_GET['zeroturnicom'])) { $anno = date('Y', $_GET['time']); $mese = date('m', $_GET['time']); $inizio = mktime(0, 0, 0, $mese, 1, $anno); $giorno = cal_days_in_month(CAL_GREGORIAN, $mese, $anno); $fine = mktime(0, 0, 0, $mese, $giorno, $anno); $comitato = $_GET['id']; $comitato = new Comitato($comitato); $volontari = $comitato->membriAttuali(); foreach ($volontari as $v) { $partecipazioni = $v->partecipazioni(); $x = 0; foreach ($partecipazioni as $part) { if ($x == 0) { if ($part->turno()->inizio >= $inizio && $part->turno()->fine <= $fine) { $auts = $part->autorizzazioni(); if ($auts[0]->stato == AUT_OK) { $x = 1; } $turno = $part->turno(); $co = Coturno::filtra([['turno', $turno], ['volontario', $v]]); if ($co) { $x = 1;
</div> </div> <div style="background-image: url('./img/HomePage2.jpg');" class="row-fluid blocco-con-sfondo centrato"> <div class="span6"> <h3 id="rollerComitati"> </h3> <h3>è su Gaia.</h3> </div> <div class="span6"> <h3><?php echo Comitato::conta(); ?> unità territoriali sono già su Gaia.</h3> <p class="grassetto" id=""></p> <p> <a href="?p=public.comitati.mappa" class="btn btn-large"> <i class="icon-globe"></i> Mappa completa dei comitati con recapiti </a> </p> </div> <script type="text/javascript"> comitati = <?php $c = [];
$app = null; $pres = null; /* format con pass e conferma*/ $app = new Appartenenza(); if ($ordinario) { /* Imposta la data di ingresso in CRI */ $dingresso = DateTime::createFromFormat('d/m/Y', $riga[12]); $dingresso = $dingresso->getTimestamp(); $app->stato = MEMBRO_ORDINARIO; $comitato = Comitato::by('nome', $riga[13]); } else { /* Imposta la data di ingresso in CRI */ $dingresso = DateTime::createFromFormat('d/m/Y', $riga[14]); $dingresso = $dingresso->getTimestamp(); $app->stato = MEMBRO_VOLONTARIO; $comitato = Comitato::by('nome', $riga[15]); } $pres = $comitato->unPresidente(); $comitato = $comitato->id; $app->comitato = $comitato; $app->volontario = $p->id; $app->inizio = $dingresso; $app->fine = PROSSIMA_SCADENZA; $app->timestamp = time(); $app->conferma = $pres; if ($p->email) { $m = new Email('registrazioneFormatpass', 'Registrato su Gaia'); $m->a = $p; $m->_NOME = $p->nome; $m->_PASSWORD = $password; $m->invia();
public function ritira(string $motivo) { global $sessione; // DA CHIEDERE: // se la partecipazione di un istruttore è ritirata // prima che partano i giorni "buffer", c'è ancora tempo per cercare altri istruttori // diversamente il corso viene annullato d'ufficio $comitato = Comitato::daOid($c->organizzatore); if (!$sessione->utente()->presiede($comitato)) { // N.B.: da estendere anche al delegato del presidente return false; } if (!$this->modificabile() && $this->stato == PARTECIPAZIONE_ACCETTATA && $this->ruolo == CORSO_RUOLO_DOCENTE) { // cancellazione del corso e collegati, // compreso il record db di questo oggetto PartecipazioneCorso // notifiche a chi di dovere return true; } // mettere corso in stato pending if (!empty($motivo)) { $this->note = $this->note . ' Partecipazione ritirata dal presidente/delegato: "' . $motivo . '".'; } $this->stato = PARTECIPAZIONE_RITIRATA; return true; }
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; }
$x = 1; } } } } if ($x == 0) { $excel->aggiungiRiga([$v->nome, $v->cognome, date('d/m/Y', $v->dataNascita), $v->unComitato()->nomeCompleto()]); } } $excel->genera("Report volontari zero turni {$comitato->nome}.xls"); $zip->aggiungi($excel); } $zip->comprimi("Report volontari zero turni.zip"); $zip->download(); } elseif (isset($_GET['unit'])) { $comitato = Comitato::id($_GET['c']); $excel = new Excel(); $excel->intestazione(['Nome', 'Cognome', 'Data nascita', 'Comitato']); $volontari = $comitato->membriAttuali(); foreach ($volontari as $v) { $partecipazioni = $v->partecipazioni(); $x = 0; foreach ($partecipazioni as $part) { if ($x == 0) { if ($part->turno()->inizio >= $inizio && $part->turno()->fine <= $fine) { $auts = $part->autorizzazioni(); if ($auts[0]->stato == AUT_OK) { $x = 1; } $turno = $part->turno(); $co = Coturno::filtra([['turno', $turno], ['volontario', $v]]);
/** * Ottiene i comitati nelle vicinanze * @return Comitato array di comitati */ public function comitati() { return array_merge(Comitato::contenutiIn($this), Locale::contenutiIn($this), Provinciale::contenutiIn($this)); }
<?php paginaAdmin(); ?> <h2>Playground</h2> <pre> <?php $com = Comitato::id(56); echo $com->nomeCompleto(); echo "<br />"; echo $com->principale; echo "<br />"; echo $com->linkMappa(); ?> </pre>
<?php /* * ©2013 Croce Rossa Italiana */ paginaApp([APP_SOCI, APP_PRESIDENTE]); $parametri = array('inputComitato', 'inputCodiceFiscale', 'inputNome', 'inputCognome', 'inputDataNascita', 'inputDataIngresso', 'inputProvinciaNascita', 'inputComuneNascita'); controllaParametri($parametri, 'us.dash&err'); $comitato = $_POST['inputComitato']; if (!$comitato) { redirect('us.utente.nuovo&c'); } $comitato = Comitato::id($comitato); if (!in_array($comitato, $me->comitatiApp([APP_SOCI, APP_PRESIDENTE]))) { redirect('us.utente.nuovo&c'); } $codiceFiscale = $_POST['inputCodiceFiscale']; $codiceFiscale = maiuscolo($codiceFiscale); $email = minuscolo($_POST['inputEmail']); /* Controlli */ /* Cerca anomalie nel formato del codice fiscale */ if (!preg_match("/^[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]\$/", $codiceFiscale)) { redirect('us.utente.nuovo&e'); } /* Cerca eventuali utenti con la stessa email... */ $e = Utente::by('email', $email); if ($e && $email && $e->password) { /* Se l'utente esiste, ed ha già pure una password */ redirect('us.utente.nuovo&mail'); } $p = Persona::by('codiceFiscale', $codiceFiscale);
<?php /* * ©2013 Croce Rossa Italiana */ $comitato = Comitato::id(27); paginaPresidenziale($comitato, null, APP_OBIETTIVO, 1);
<?php /* * ©2013 Croce Rossa Italiana */ paginaApp([APP_SOCI, APP_PRESIDENTE]); $parametri = array('inputVolontario', 'inputComitato', 'inputMotivo'); controllaParametri($parametri); $t = $_POST['inputVolontario']; $t = Volontario::id($t); $c = $_POST['inputComitato']; if (!$c) { redirect('us.utente.estendi&c'); } $c = Comitato::id($c); $m = $_POST['inputMotivo']; /* Cerco appartenenze al comitato specificato */ $f = Appartenenza::filtra([['volontario', $t], ['comitato', $c]]); /* Se sono già appartenente *ora*, * restituisco errore */ foreach ($f as $app) { if ($app->attuale()) { redirect('us.utente.estendi&e'); break; } } /*Se non sono appartenente allora avvio la procedura*/ $a = new Appartenenza(); $a->volontario = $t->id; $a->comitato = $c;
<?php /* * ©2013 Croce Rossa Italiana */ paginaAdmin(); controllaParametri(array('id'), 'admin.comitati&err'); $c = $_GET['id']; if (isset($_GET['com'])) { $nome = normalizzaNome($_POST['inputNome']); $gia = Comitato::filtra([['nome', $nome], ['locale', $c]]); if ($gia) { redirect('admin.comitati&dup'); } $t = new Comitato(); $t->nome = $nome; $t->locale = $c; redirect('admin.comitati&new'); } elseif (isset($_GET['loc'])) { $nome = normalizzaNome($_POST['inputNome']); $gia = Locale::filtra([['nome', $nome], ['provinciale', $c]]); if ($gia) { redirect('admin.comitati&dup'); } $t = new Locale(); $t->nome = $nome; $t->provinciale = $c; redirect('admin.comitati&new'); } elseif (isset($_GET['pro'])) { $nome = normalizzaNome($_POST['inputNome']); $gia = Provinciale::filtra([['nome', $nome], ['regionale', $c]]);