Пример #1
0
 /**
  * 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];
 }
Пример #2
0
 public function provenienza()
 {
     return Comitato::id($this->cProvenienza);
 }
Пример #3
0
/* 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";
Пример #4
0
 * ©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>
Пример #5
0
<?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;
Пример #7
0
/*
 * ©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;
Пример #8
0
 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();
     }
 }
Пример #9
0
 public function comitato()
 {
     return Comitato::id($this->comitato);
 }
Пример #10
0
 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';
 }
Пример #11
0
                $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;
Пример #12
0
          </div>
      </div>

      



<div style="background-image: url('./img/HomePage2.jpg');" class="row-fluid blocco-con-sfondo centrato">
    <div class="span6">
        <h3 id="rollerComitati">&nbsp;</h3>
        <h3>&egrave; su Gaia.</h3>
    </div>
    <div class="span6">
        <h3><?php 
echo Comitato::conta();
?>
 unit&agrave; territoriali sono gi&agrave; 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 = [];
Пример #13
0
 $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();
Пример #14
0
 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;
 }
Пример #15
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;
}
Пример #16
0
                            $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]]);
Пример #17
0
 /**
  * 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));
 }
Пример #18
0
<?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>

Пример #19
0
<?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);
Пример #20
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
$comitato = Comitato::id(27);
paginaPresidenziale($comitato, null, APP_OBIETTIVO, 1);
Пример #21
0
<?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;
Пример #22
0
<?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]]);