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; }
$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'];
/* * ©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 {
<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; } }
} $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;
/** * 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; }
<?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');
<?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}");
} $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']}");
/** * 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}");
$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');
/** * 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; }
<?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();
/* * ©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');