public function formatDataFromDb($data)
 {
     if (strlen($data) == 10 && preg_match('/^\\d{4}-\\d{2}-\\d{2}$/', $data) > 0) {
         // Data is probably coming from database
         $dt = DT::createFromFormat('Y-m-d', $data);
         if ($dt != null) {
             $data = $dt->date();
         }
     }
     return $data;
 }
Пример #2
0
$p->stato = VOLONTARIO;
$p->consenso = true;
/*
 * Normalizzazione dei dati
 */
$cell = normalizzaNome($_POST['inputCellulare']);
$cells = normalizzaNome(@$_POST['inputCellulareServizio']);
$p->email = $email;
$p->cellulare = $cell;
$p->cellulareServizio = $cells;
$gia = Appartenenza::filtra([['volontario', $p->id], ['comitato', $comitato->id]]);
if (!$gia) {
    $a = new Appartenenza();
    $a->volontario = $p->id;
    $a->comitato = $comitato;
    $inizio = DT::createFromFormat('d/m/Y', $_POST['inputDataIngresso']);
    $inizio = $inizio->getTimestamp();
    $a->inizio = $inizio;
    $a->fine = PROSSIMA_SCADENZA;
    $a->timestamp = time();
    $a->stato = MEMBRO_VOLONTARIO;
    $a->conferma = $me;
}
/* 
 * Non si può far parte di IV e CM contemporaneamente
 */
if (!(isset($_POST['inputIV']) && isset($_POST['inputCM']))) {
    if ($p->sesso == DONNA) {
        $p->iv = $_POST['inputIV'];
    }
    $p->cm = $_POST['inputCM'];
Пример #3
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;
$c->inizio = $inizio->getTimeStamp();
/*
* ©2014 Croce Rossa Italiana
*/
caricaSelettore();
controllaParametri(['id']);
$corso = CorsoBase::id($_GET['id']);
if (!$corso->modificabileDa($me)) {
    redirect("formazione.corsibase.scheda&id={$_GET['id']}");
}
$admin = $me->admin();
$lezioni = $_POST['lezioni'];
foreach ($lezioni as $lezione) {
    $lezione = Lezione::id($lezione);
    $lezione->nome = normalizzaNome($_POST["nome_{$lezione}"]);
    $inizio = DT::createFromFormat('d/m/Y H:i', $_POST["inizio_{$lezione}"]);
    $fine = DT::createFromFormat('d/m/Y H:i', $_POST["fine_{$lezione}"]);
    if ($admin && $inizio < $fine) {
        $lezione->inizio = $inizio->getTimestamp();
        $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 {
Пример #5
0
        <div class="controls">
          <button type="submit" class="btn btn-large btn-success">
            <i class="icon-ok"></i>
            Cambia stato!
          </button>
        </div>
      </div>
    </form>

  </div>
</div>


<?php 
} else {
    $data = DT::createFromFormat('d/m/Y', $_POST['inputDataTaglio']);
    ?>
  <pre>
    <code>
      <?php 
    echo '<br><strong>Avviata procedura di cambio stato con taglio a ' . $data->getTimeStamp() . '<br><br>';
    $v = Volontario::elenco();
    $totale = 0;
    foreach ($v as $_v) {
        $appartenenze = $_v->numAppartenenzeTotali(MEMBRO_DIMESSO);
        if ($appartenenze == 0 && $_v->stato == VOLONTARIO && $_v->timestamp > $data->getTimeStamp()) {
            $totale++;
            echo 'Anagrafica ID:[' . $_v->id . '] ' . $_v->codiceFiscale . ' ' . $_v->nome . ' ' . $_v->cognome . ' ' . $_v->timestamp . ' -> nuovo stato: Aspirante<br>';
            $_v->stato = ASPIRANTE;
        }
    }
Пример #6
0
}
$p = Persona::by('codiceFiscale', $codiceFiscale);
if ($p) {
    redirect('us.ordinario.nuovo&gia');
} else {
    $p = new Utente();
    $p->codiceFiscale = $codiceFiscale;
}
/*
 * Normalizzazione dei dati
 */
$id = $p->id;
$nome = normalizzaNome($_POST['inputNome']);
$cognome = normalizzaNome($_POST['inputCognome']);
$sesso = $_POST['inputSesso'];
$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']);
/*
 * Registrazione vera e propria...
 */
$p->nome = $nome;
$p->cognome = $cognome;
$p->sesso = $sesso;
$p->dataNascita = $dnascita;
Пример #7
0
 /**
  * Ritorna l'elenco di appartenenze passibili al pagamento di una quota in un dato anno
  * Se il volontario e' dimesso o non passibile al pagamento della quota, ritorna array vuoto
  * 
  * @param int $anno                 (Opzionale) Anno di riferimento. Default = Anno attuale
  * @return array(Appartenenza)      Lista di appartenenze. Se non passibile, lista vuota.
  */
 public function appartenenzePassibiliQuota($anno = false)
 {
     global $conf;
     $anno = $anno ? (int) $anno : (int) date('Y');
     $minimo = DT::createFromFormat('d/m/Y H:i', "1/1/{$anno} 00:00");
     $massimo = DT::createFromFormat('d/m/Y H:i', "31/12/{$anno} 23:59");
     $r = [];
     // Applica algoritmo pubblicato su
     // https://github.com/CroceRossaCatania/gaia/issues/1218#issuecomment-69459905
     foreach ($this->storico() as $appartenenza) {
         // Se appartenenza fuori contesto temporale, termina esecuzione
         if (!$appartenenza->validoTra($minimo, $massimo)) {
             continue;
         }
         // Se non appartenenza valida, ignora
         if (in_array($appartenenza->stato, $conf['membro_invalido'])) {
             continue;
         }
         // Se non appartenenza valida scopo quota, ignora
         if (in_array($appartenenza->stato, $conf['membro_nonquota'])) {
             continue;
         }
         // Se appartenenza terminata con dimissione, termina esecuzione
         if (in_array($appartenenza->stato, $conf['membro_dimesso'])) {
             continue;
         }
         // In tutti gli altri casi, appartenenza legittima, passibile a pagamento quota per l'A.A.
         $r[] = $appartenenza;
         // Se ho registrato una quota per questa appartenenza, le appartenenze
         // precedenti non sono passibili di quota.
         if (Quota::conta([['appartenenza', $appartenenza->id], ['anno', $anno], ['pAnnullata', false, OP_NULL]])) {
             break;
         }
     }
     return $r;
 }
Пример #8
0
<?php

/*
 * ©2014 Croce Rossa Italiana
 */
paginaAdmin();
controllaParametri(['tesseramenti'], 'admin.tesseramento&err');
paginaAdmin();
foreach ($_POST['tesseramenti'] as $tesseramento) {
    $t = Tesseramento::id($tesseramento);
    $t->stato = $_POST["{$tesseramento}_stato"];
    if ($t->aperto()) {
        $inizio = DT::createFromFormat('d/m/Y', $_POST["{$tesseramento}_inizio"]);
        $t->inizio = $inizio->getTimestamp();
        $fine = DT::createFromFormat('d/m/Y', $_POST["{$tesseramento}_fine"]);
        $t->fine = $fine->getTimestamp();
        $importoA = (double) $_POST["{$tesseramento}_attivo"];
        $t->attivo = round($importoA, 2);
        $importoO = (double) $_POST["{$tesseramento}_ordinario"];
        $t->ordinario = round($importoO, 2);
        $importoB = (double) $_POST["{$tesseramento}_benemerito"];
        $t->benemerito = round($importoB, 2);
    }
}
redirect('admin.tesseramento&ok');
Пример #9
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaAdmin();
$parametri = array('id', 'inputComitato', 'dataingresso');
controllaParametri($parametri, 'admin.limbo&err');
$v = $_GET['id'];
$c = $_POST['inputComitato'];
$t = DT::createFromFormat('d/m/Y', $_POST['dataingresso']);
$a = new Appartenenza();
$a->volontario = $v;
$a->comitato = $c;
$a->inizio = $t->getTimestamp();
$a->fine = PROSSIMA_SCADENZA;
$a->timestamp = time();
$a->stato = MEMBRO_PENDENTE;
$a->conferma = $me;
$v = new Volontario($v);
$v->stato = VOLONTARIO;
/* Genera e cambia la password casuale */
$password = generaStringaCasuale(8, DIZIONARIO_ALFANUMERICO);
$v->cambiaPassword($password);
$m = new Email('registrazioneFormatpass', 'Registrato su Gaia');
$m->a = $v;
$m->_NOME = $v->nome;
$m->_PASSWORD = $password;
$m->invia();
redirect("presidente.utente.visualizza&id={$v->id}");
Пример #10
0
}
$turni = $a->turni();
foreach ($turni as $t) {
    if (!isset($_POST["{$t->id}_nome"])) {
        continue;
    }
    $dinizio = DT::createFromFormat('d/m/Y H:i', $_POST["{$t->id}_inizio"]);
    $dfine = DT::createFromFormat('d/m/Y H:i', $_POST["{$t->id}_fine"]);
    if ($dinizio >= $dfine) {
        $errori[] = $_POST["{$t->id}_nome"];
        continue;
    }
    $t->nome = normalizzaTitolo($_POST["{$t->id}_nome"]);
    $inizio = $dinizio;
    $fine = $dfine;
    $prenotazione = DT::createFromFormat('d/m/Y H:i', $_POST["{$t->id}_prenotazione"]);
    $t->inizio = $inizio->getTimestamp();
    $t->fine = $fine->getTimestamp();
    $t->prenotazione = $prenotazione->getTimestamp();
    $t->minimo = (int) $_POST["{$t->id}_minimo"];
    $t->massimo = (int) $_POST["{$t->id}_massimo"];
}
switch ($_POST['azione']) {
    case 'aggiungiTurno':
        $num = count($turni) + 1;
        $t = new Turno();
        $t->attivita = $a->id;
        $t->inizio = strtotime('+2 hours', $fine->getTimestamp());
        $t->fine = strtotime('+4 hours', $fine->getTimestamp());
        $t->nome = "Turno {$num}";
        $t->minimo = 1;
<?php

/*
* ©2014 Croce Rossa Italiana
*/
caricaSelettore();
controllaParametri(['id', 'nome', 'inizio', 'fine']);
$corso = CorsoBase::id($_GET['id']);
if (!$corso->modificabileDa($me)) {
    redirect("formazione.corsibase.scheda&id={$_GET['id']}");
}
$l = new Lezione();
$l->corso = (int) $_GET['id'];
$l->nome = normalizzaNome($_POST['nome']);
$inizio = DT::createFromFormat('d/m/Y H:i', $_POST["inizio"]);
$fine = DT::createFromFormat('d/m/Y H:i', $_POST["fine"]);
$l->inizio = $inizio->getTimestamp();
$l->fine = $fine->getTimestamp();
redirect("formazione.corsibase.lezioni&id={$_GET['id']}");
Пример #12
0
Файл: DT.php Проект: pizar/gaia
 /**
  * Controlla validità di una data in formato ed esistenza
  * @param $data data in formato gg/mm/aaaa
  * @return false se data errata, true se corretta
  */
 public static function controlloDataOra($data)
 {
     if (DT::createFromFormat('d/m/Y H:i', $data)) {
         return true;
     } else {
         return false;
     }
 }
} catch (Exception $e) {
    redirect('admin.corsi.crea&err');
}
if (!empty($_GET['err']) && is_int($_GET['err'])) {
    if (!empty($conf['errori_corsi'][$_GET['err']])) {
        $err = $conf['errori_corsi'][$_GET['err']];
    } else {
        $err = 'errore sconosciuto';
    }
}
global $db;
$db->beginTransaction();
try {
    $l = new GiornataCorso();
    $l->corso = $id;
    $l->nome = normalizzaNome($_POST['nome']);
    $data = DT::createFromFormat('d/m/Y H:i', $_POST["data"]);
    $l->data = $data->getTimestamp();
    $l->luogo = normalizzaNome($_POST['luogo']);
    $l->note = addslashes($_POST['note']);
    $l->docente = intval($_POST['docenti'][0]);
    $docente = Volontario::id(intval($_POST['docenti'][0]));
    $part = new PartecipazioneCorso();
    $part->aggiungi(Corso::id($id), $docente, CORSO_RUOLO_DOCENTE);
    $db->commit();
} catch (Exception $e) {
    $db->rollBack();
    redirect("formazione.corsi.lezioni&id={$id}&err");
    die;
}
redirect("formazione.corsi.lezioni&id={$id}");
Пример #14
0
$id = $_GET['id'];
if (isset($_GET['presa'])) {
    $r = PatentiRichieste::id($id);
    $r->stato = PATENTE_ATTESA_VISITA;
    $r->tCarico = time();
    $r->pCarico = $me;
} elseif (isset($_GET['visita'])) {
    $r = PatentiRichieste::id($id);
    $r->stato = PATENTE_ATTESA_STAMPA;
    $time = DT::createFromFormat('d/m/Y', $_POST['inputData']);
    $time = $time->getTimestamp();
    $r->tVisita = $time;
    $r->pVisita = $me;
} elseif (isset($_GET['stampa'])) {
    $r = PatentiRichieste::id($id);
    $r->stato = PATENTE_ATTESA_CONSEGNA;
    $time = DT::createFromFormat('d/m/Y', $_POST['inputData']);
    $time = $time->getTimestamp();
    $r->tStampa = $time;
    $r->pStampa = $me;
} elseif (isset($_GET['consegna'])) {
    $r = PatentiRichieste::id($id);
    $r->stato = PATENTE_CONSEGNATA;
    $time = DT::createFromFormat('d/m/Y', $_POST['inputData']);
    $time = $time->getTimestamp();
    $r->tConsegna = $time;
    $r->pConsegna = $me;
} else {
    redirect('patenti.dash&err');
}
redirect('patenti.richieste');
Пример #15
0
 /**
  * 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;
 }
Пример #16
0
<?php

/*
 * ©2013 Croce Rossa Italiana
 */
paginaPrivata();
controllaParametri(array('id'), 'gruppi.dash&err');
$id = $_GET['id'];
$v = Volontario::id($id);
$inizio = DT::createFromFormat('d/m/Y', $_POST['datainizio']);
$fine = DT::createFromFormat('d/m/Y', $_POST['datafine']);
$inizio = $inizio->getTimestamp();
$fine = $fine->getTimestamp();
$excel = new Excel();
$excel->intestazione(['Nome', 'Cognome', 'Data nascita', 'Comitato', 'Attività', 'Obiettivo', 'Turno', 'Inizio', 'Fine']);
$partecipazioni = $v->partecipazioni();
foreach ($partecipazioni as $part) {
    $auts = $part->autorizzazioni();
    if (!$auts) {
        continue;
    }
    if ($part->turno()->inizio <= $inizio || $part->turno()->fine >= $fine) {
        continue;
    }
    $excel->aggiungiRiga([$v->nome, $v->cognome, date('d/m/Y', $v->dataNascita), $v->unComitato()->nomeCompleto(), $part->attivita()->nome, $part->attivita()->area()->obiettivo, $part->turno()->nome, date('d/m/Y H:i', $part->turno()->inizio), date('d/m/Y H:i', $part->turno()->fine)]);
}
$excel->genera('Report turni volontario.xls');
$excel->download();
Пример #17
0
/*
 * ©2014 Croce Rossa Italiana
 */
paginaPrivata();
if (count($me->comitati()) > 1) {
    $c = $_POST['inputComitato'];
} else {
    foreach ($me->storico() as $app) {
        if ($app->attuale()) {
            $c = $app->comitato()->id;
        }
    }
}
if (!$c) {
    redirect('utente.reperibilita&comitato');
}
$inizio = DT::createFromFormat('d/m/Y H:i', $_POST['inizio']);
$fine = DT::createFromFormat('d/m/Y H:i', $_POST['fine']);
$inizio = $inizio->getTimestamp();
$fine = $fine->getTimestamp();
if (!$inizio || !$fine || $inizio > $fine) {
    redirect('utente.reperibilita&date');
}
$t = new Reperibilita();
$t->comitato = $c;
$t->volontario = $me->id;
$t->inizio = $inizio;
$t->fine = $fine;
$t->attivazione = $_POST['attivazione'];
redirect('utente.reperibilita&ok');