Exemplo n.º 1
0
 public function cancella()
 {
     foreach (TitoloPersonale::filtra([['titolo', $this->id]]) as $t) {
         $t->cancella();
     }
     parent::cancella();
 }
Exemplo n.º 2
0
 public static function scadenzame($volontario)
 {
     global $db;
     $q = $db->prepare("\n            SELECT \n                id \n            FROM \n                titoliPersonali \n            WHERE \n                volontario = :volontario \n            AND\n                titolo BETWEEN :min AND :max\n            AND \n                fine > :oggi \n            AND\n                fine <= :limite\n                ");
     $oggi = time();
     $limite = strtotime("+15 days");
     $pat1 = 2700;
     $pat2 = 2709;
     $q->bindParam(':oggi', $oggi, PDO::PARAM_INT);
     $q->bindParam(':min', $pat1, PDO::PARAM_INT);
     $q->bindParam(':max', $pat2, PDO::PARAM_INT);
     $q->bindParam(':limite', $limite, PDO::PARAM_INT);
     $q->bindParam(':volontario', $volontario, PDO::PARAM_INT);
     $q->execute();
     $t = [];
     while ($r = $q->fetch(PDO::FETCH_NUM)) {
         $t[] = TitoloPersonale::id($r[0]);
     }
     return $t;
 }
Exemplo n.º 3
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;
}
Exemplo n.º 4
0
<?php

/**
 * (c)2015 Croce Rossa Italiana
 */
paginaAdmin();
caricaSelettore();
$t = Titolo::id($_GET['id']);
$tp = TitoloPersonale::filtra([['titolo', $t], ['corso', true, OP_NNULL]]);
?>

<script type="text/javascript">

function _aggiungicf(codiceFiscale) {
	$("#rimuovi").val($("#rimuovi").val() + "\n" + codiceFiscale);
	$("#rimuovi").focus();
}

</script>

<?php 
if (isset($_GET['tot'])) {
    ?>

	<div class="alert alert-info">
		<i class="icon-info-sign"></i> <strong>Sono stati aggiunti o rimossi n. <?php 
    echo (int) $_GET['tot'];
    ?>
 elementi.</strong>
	</div>
Exemplo n.º 5
0
<h3><i class="icon-wrench muted"></i> Manutenzione titoli</h3>
<pre>
<code>
Unione titoli doppioni:
<?php 
$titoli = Titolo::elenco();
$eseguiti = 0;
$nDoppioni = 0;
echo "Start manutenzione titoli:<br/>";
foreach ($titoli as $t) {
    $ripetuto = Titolo::filtra([['nome', $t->nome]]);
    if (count($ripetuto) > 1) {
        $eseguiti++;
        echo "Titolo doppione {$t->id}: {$t->nome} <br />";
        // Prendo il secondo e vedo se esistono titoli personali
        $personali = TitoloPersonale::filtra([['titolo', $ripetuto[1]]]);
        foreach ($personali as $personale) {
            echo "Sostituisco titolo {$ripetuto[1]->id} con {$ripetuto[0]->id} <br />";
            $personale->titolo = $ripetuto[0];
        }
        echo "Cancellazione di {$ripetuto[1]->id} <br/>";
        $ripetuto[1]->cancella();
    }
}
$fine = time();
?>
Eseguite <strong><?php 
echo $eseguiti;
?>
</strong> riparazioni in <strong><?php 
echo $fine - $inizio;
Exemplo n.º 6
0
                <td colspan="7" class="grassetto">
                    <?php 
    echo $comitato->nomeCompleto();
    ?>
                    <span class="label label-warning">
                        <?php 
    echo count($t);
    ?>
                    </span>
                </td>
            </tr>
            
            <?php 
    foreach ($t as $v) {
        $_v = $v->volontario();
        $t = TitoloPersonale::id($v->titolo);
        $t = Titolo::id($t->titolo());
        ?>
                <tr>
                    <td><?php 
        echo $_v->cognome;
        ?>
</td>
                    <td><?php 
        echo $_v->nome;
        ?>
</td>
                    <td><?php 
        echo $t->nome;
        ?>
</td>
Exemplo n.º 7
0
         $anno = $_GET['anno'];
         if ($anno > (int) $questanno) {
             redirect('us.quoteNo.ordinarii');
         }
     }
     foreach ($c->quoteNo($anno, MEMBRO_ORDINARIO) as $v) {
         $i++;
         $excel->aggiungiRiga([$i, $v->nome, $v->cognome, date('d/m/Y', $v->dataNascita), $v->comuneNascita, $v->provinciaNascita, $v->codiceFiscale, $v->indirizzo, $v->civico, $v->comuneResidenza, $v->CAPResidenza, $v->provinciaResidenza, $v->email, $v->emailServizio, $v->cellulare, $v->cellulareServizio, ($_di = $v->ingresso()) ? $_di->format('d/m/Y') : $nessuna_data]);
     }
     $excel->genera("Ordinari quota non pagata {$c->nome}.xls");
 } elseif (isset($_GET['mass'])) {
     $f = $_GET['t'];
     $f = new Titolo($f);
     $volontari = $c->ricercaMembriTitoli([$f]);
     foreach ($volontari as $v) {
         $titolo = TitoloPersonale::filtra([['volontario', $v], ['titolo', $f]]);
         $titolo = $titolo[0];
         $i++;
         $excel->aggiungiRiga([$i, $v->nome, $v->cognome, date('d/m/Y', $v->dataNascita), $v->comuneNascita, $v->provinciaNascita, $v->codiceFiscale, $v->email, $v->emailServizio, $v->cellulare, $v->cellulareServizio, $f->nome, $titolo->inizio()->format("d/m/Y"), $titolo->luogo, $titolo->fine()->format("d/m/Y"), $titolo->codice, ($_di = $v->ingresso()) ? $_di->format('d/m/Y') : $nessuna_data]);
     }
     $excel->genera("Risultati in {$c->nomeCompleto()}.xls");
 } elseif (isset($_GET['riserva'])) {
     foreach ($c->riserve() as $r) {
         if ($r->attuale()) {
             $i++;
             $excel->aggiungiRiga([$i, $v->nome, $v->cognome, date('d/m/Y', $v->dataNascita), $v->comuneNascita, $v->provinciaNascita, $v->codiceFiscale, $v->indirizzo, $v->civico, $v->comuneResidenza, $v->CAPResidenza, $v->provinciaResidenza, date('d/m/Y', $r->inizio), date('d/m/Y', $r->fine), $r->protNumero, date('d/m/Y', $r->protData), $r->motivo]);
         }
     }
     $excel->genera("Volontari riserva {$c->nome}.xls");
 } elseif (isset($_GET['riserveold'])) {
     foreach ($c->riserve() as $r) {
Exemplo n.º 8
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
controllaParametri(array('id'));
$id = $_GET['id'];
$u = Utente::id($id);
$t = TitoloPersonale::filtra([['volontario', $u]]);
?>
<!--Visualizzazione e modifica anagrafica utente-->
<div class="row-fluid">
    <div class="span6">
  <!--Visualizzazione e modifica avatar utente-->
        <div class="span12">
            <h2><i class="icon-edit muted"></i> Anagrafica</h2>
        </div>
        <div class="span12 allinea-centro">
            <img src="<?php 
echo $u->avatar()->img(20);
?>
" class="img-polaroid" />
            <br/><br/>
        </div>
        <form class="form-horizontal" action="?p=presidente.utente.modifica.ok&t=<?php 
echo $id;
?>
" method="POST">
            <hr />
            <div class="control-group">
Exemplo n.º 9
0
<?php

/*
 * ©2014 Croce Rossa Italiana
 */
paginaPrivata();
controllaParametri(array('id'));
$t = $_GET['id'];
$t = TitoloPersonale::id($t);
$v = $t->volontario();
$tipo = $t->titolo()->tipo;
if ($v->modificabileDa($me) || $me == $v->id) {
    $t->cancella();
} else {
    redirect('errore.permessi');
}
if (isset($_GET['pre'])) {
    redirect('presidente.utente.visualizza&id=' . $v->id);
} else {
    redirect('utente.titoli&t=' . $tipo);
}
Exemplo n.º 10
0
foreach ($me->appartenenzePendenti() as $app) {
    $attenzione = true;
    ?>
                <div class="alert alert-block">
                    <h4><i class="icon-time"></i> In attesa di conferma</h4>
                    <p>La tua appartenenza a <strong><?php 
    echo $app->comitato()->nomeCompleto();
    ?>
</strong> attende conferma.</p>
                    <p>Successivamente riceverai una email di notifica e potrai partecipare ai servizi del comitato.</p>

                </div>
                <?php 
}
$h = 0;
foreach ($patenti = TitoloPersonale::scadenzame($me) as $patente) {
    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()) {
Exemplo n.º 11
0
 public function cancella()
 {
     // 1. Cancella il mio avatar
     $this->avatar()->cancella();
     Avatar::cancellaTutti([['utente', $this->id]]);
     // 2. Cancella le mie appartenenze ai gruppi
     Appartenenza::cancellaTutti([['volontario', $this->id]]);
     // 3. Cancella le mie partecipazioni
     Partecipazione::cancellaTutti([['volontario', $this->id]]);
     // 4. Elimina le autorizzazioni che mi sono state chieste
     Autorizzazione::cancellaTutti([['volontario', $this->id]]);
     // 5. Elimina tutte le delegazioni che mi sono associate
     Delegato::cancellaTutti([['volontario', $this->id]]);
     // 6. Riassegna le Aree al primo presidente a salire l'albero
     foreach ($this->areeDiResponsabilita() as $a) {
         $a->responsabile = $a->comitato()->primoPresidente();
     }
     // 7. Commenti lasciati in giro
     Commento::cancellaTutti([['volontario', $this->id]]);
     // 8. Gruppi di cui sono referente
     Gruppo::cancellaTutti([['referente', $this->id]]);
     // 9. Gruppi di cui faccio parte
     AppartenenzaGruppo::cancellaTutti([['volontario', $this->id]]);
     // 10. Estensioni mie
     Estensione::cancellaTutti([['volontario', $this->id]]);
     // 10. Mie Riserve
     Riserva::cancellaTutti([['volontario', $this->id]]);
     // 11. Mie reperibilita'
     Reperibilita::cancellaTutti([['volontario', $this->id]]);
     // 13. Titoli personali
     TitoloPersonale::cancellaTutti([['volontario', $this->id]]);
     // 14. PartecipazioniBase
     PartecipazioneBase::cancellaTutti([['volontario', $this->id]]);
     // 15. Provvedimenti
     Provvedimento::cancellaTutti([['volontario', $this->id]]);
     // 16. Aspirante
     Aspirante::cancellaTutti([['utente', $this->id]]);
     // 17. Attivita di cui sono referente
     foreach (Attivita::filtra([['referente', $this->id]]) as $a) {
         $a->referente = $a->comitato() ? $a->comitato()->primoPresidente() : null;
     }
     // 18. Corsi base cui sono direttore
     foreach (CorsoBase::filtra([['direttore', $this->id]]) as $c) {
         $a->direttore = $a->organizzatore() ? $a->organizzatore()->primoPresidente() : null;
     }
     // 19. Coturni
     Coturno::cancellaTutti([['volontario', $this->id]]);
     // 20. Dimissioni
     Dimissione::cancellaTutti([['volontario', $this->id]]);
     // 21. Documenti
     Documento::cancellaTutti([['volontario', $this->id]]);
     // 22. Fototessere
     Fototessera::cancellaTutti([['utente', $this->id]]);
     // 23. Privacy
     Privacy::cancellaTutti([['volontario', $this->id]]);
     // 24. Richiesta tesserino
     TesserinoRichiesta::cancellaTutti([['volontario', $this->id]]);
     parent::cancella();
 }
Exemplo n.º 12
0
 /**
  * Restituisce elenco volontari in possesso di un dato titolo
  * @param $titoli Array di elementi Titolo
  */
 public function ricercaMembriTitoli($titoli = [], $stato = MEMBRO_ESTESO)
 {
     $daFiltrare = $this->membriAttuali($stato);
     foreach ($titoli as $titolo) {
         $filtrato = [];
         foreach ($daFiltrare as $volontario) {
             if ($t = TitoloPersonale::filtra([['titolo', $titolo->id], ['volontario', $volontario]])) {
                 if ($t[0]->confermato()) {
                     $filtrato[] = $volontario;
                 }
             }
         }
         $daFiltrare = $filtrato;
     }
     return $daFiltrare;
 }
Exemplo n.º 13
0
            $totale++;
            echo 'Anagrafica ID:[' . $_v->id . '] senza stato -> provvedo alla rimozione di ' . $_v->codiceFiscale . ' ' . $_v->nome . ' ' . $_v->cognome . '<br>';
            $f = TitoloPersonale::filtra([['volontario', $_v->id]]);
            foreach ($f as $_f) {
                $_f->cancella();
            }
            $_v->cancella();
        }
    }
}
if (isset($_GET['contatti'])) {
    echo '<br><strong>Avviata procedura di pulizia per mancanza contatti</strong><br><br>';
    $v = Volontario::elenco();
    foreach ($v as $_v) {
        $appartenenze = $_v->numAppartenenzeTotali(MEMBRO_DIMESSO);
        if ($appartenenze == 0 && !$_v->email) {
            $totale++;
            echo 'Anagrafica ID:[' . $_v->id . '] senza contatti -> provvedo alla rimozione di ' . $_v->codiceFiscale . ' ' . $_v->nome . ' ' . $_v->cognome . '<br>';
            $f = TitoloPersonale::filtra([['volontario', $_v->id]]);
            foreach ($f as $_f) {
                $_f->cancella();
            }
            $_v->cancella();
        }
    }
}
echo '<br><strong>Sono state cancellate ' . $totale . ' persone</strong>';
?>
</code>
</pre>
            continue;
        }
        // Ok, aggiungi.
        $a = new TitoloPersonale();
        $a->volontario = $v->id;
        $a->titolo = $t->id;
        $a->inizio = strtotime($_POST['inizio']);
        $a->fine = $_POST['fine'] ? strtotime($_POST['fine']) : null;
        $a->pConferma = $_POST['pConferma'] ? $_POST['pConferma'] : $me->id;
        $a->tConferma = time();
        $a->luogo = $_POST['luogo'];
        $a->corso = maiuscolo($_POST['corso']);
        $tot++;
    }
} else {
    // Rimozione
    foreach ($cfs as $cf) {
        // 1. Controlla che esista la persona
        $v = Utente::by('codiceFiscale', $cf);
        if (!$v) {
            continue;
        }
        // 2. Controlla che non abbia gia' il titolo
        if ($a = TitoloPersonale::filtra([['titolo', $t->id], ['volontario', $v->id]])) {
            $a = $a[0];
            $a->cancella();
            $tot++;
        }
    }
}
redirect("admin.titolo.volontari&id={$t->id}&tot={$tot}");
Exemplo n.º 15
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaApp([APP_SOCI, APP_PRESIDENTE]);
controllaParametri(array('id'), 'presidente.titoli&err');
$id = $_GET['id'];
$t = TitoloPersonale::id($id);
$v = $t->volontario();
if (!$v->modificabileDa($me)) {
    redirect('presidente.titoli&err');
}
if (isset($_GET['si'])) {
    $t->tConferma = time();
    $t->pConferma = $me->id;
    $m = new Email('confermatitolo', 'Conferma titolo: ' . $t->titolo()->nome);
    $m->da = $me;
    $m->a = $t->volontario();
    $m->_NOME = $t->volontario()->nome;
    $m->_TITOLO = $t->titolo()->nome;
    $m->invia();
} else {
    $m = new Email('negazionetitolo', 'Negazione titolo: ' . $t->titolo()->nome);
    $m->da = $me;
    $m->a = $t->volontario();
    $m->_NOME = $t->volontario()->nome;
    $m->_TITOLO = $t->titolo()->nome;
    $m->invia();
    $t->cancella();
}