20000, 'page' => 1, 'order' => array('rank' => 'asc'), 'recursive'=> 0 ); public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow( 'login', 'index', 'detail', 'quote_paese', 'result', 'gia_iscritto' ); // Letting users register themselves } /*public function setpwd($stato = NULL) { $id = array(238, 335, 434,561,646,678,701,818,857,1088,1218,1238,1374,1627,1682,1784,1947,2144,2267,2375,2379,2380,2398); $concorrenti = $this->Iscrizioni->find(all, array('conditions' => array('Iscrizioni.id' => $id))); foreach ($concorrenti as $concorrente) { $this->Iscrizioni->id = $concorrente['Iscrizioni']['id']; $this->Iscrizioni->saveField('password', $concorrente['Iscrizioni']['NUMERO_ORDINE']); } }*/ /*public function send_mail($part = null) { if (!$part) { echo('Incomincia a mandare mail ... E SPERA IN DIO!!'); die(); } $ammessi = $this->Iscrizioni->find('all', array( 'conditions' => array( 'ISCRITTO' => 'AMMESSO' ) )); $i = 0; $inviate = 0; foreach ($ammessi as $ammesso) { $CORPO_MESSAGGIO = "Buongiorno " . $ammesso['Iscrizioni']['NOME'] . " " . $ammesso['Iscrizioni']['COGNOME'] . ", Abbiamo il piacere di comunicarti che sei stato AMMESSO al Tor Des Geants 2014. Puoi confermare la tua iscrizione entro il 15 marzo 2014 ore 18:00, dalla tua tua area personale: http://www.tordesgeants.it/iscrizione/iscrizioni/login/" . $ammesso['Iscrizioni']['id'] . " Le ricordiamo che il suo 'Codice Utente' per accedere è il seguente: " . $ammesso['Iscrizioni']['NUMERO_ORDINE'] . " Per ogni informazione scrivere a info@tordesgeants.it specificando il nome, cognome e 'Codice Utente' L'ORGANIZZAZIONE ============== Hi " . $ammesso['Iscrizioni']['NOME'] . " " . $ammesso['Iscrizioni']['COGNOME'] . ", We have the pleasure to inform that you are ALLOWED to the Tor Des Geants 2014. You can confirm your inscription before 15 march 2014 at 18:00, from your reserved area: http://www.tordesgeants.it/iscrizione/iscrizioni/login/" . $ammesso['Iscrizioni']['id'] . " Please remember that your 'Codice Utente' to access is: " . $ammesso['Iscrizioni']['NUMERO_ORDINE'] . " For any further information please write to info@tordesgeants.it specifying the full name and 'Codice Utente' THE ORGANIZATION ============== Bonjour " . $ammesso['Iscrizioni']['NOME'] . " " . $ammesso['Iscrizioni']['COGNOME'] . ", Nous sommes heureux de vous informer que vous êtes ADMIS à Tor des Géants 2014. Vous pouvez confirmer votre inscription avant le 15 mars 2014 à 18h00, dans votre espace réservé http://www.tordesgeants.it/iscrizione/iscrizioni/login/" . $ammesso['Iscrizioni']['id'] . " Le 'Codice Utente' pour effectuer l'accès est: " . $ammesso['Iscrizioni']['NUMERO_ORDINE'] . " Pour toute information s'il vous plaît écrivez à info@tordesgeants.it spécifiant le nom et le 'Codice Utente' L'ORGANISATION"; if(($i + $part) % 2) { mail($ammesso['Iscrizioni']['EMAIL'], 'Ammissione Tor Des Geants 2014', $CORPO_MESSAGGIO, 'From: Tor des Geants ' ); mail('info@tordesgeants.it', 'Ammissione Tor Des Geants 2014', $CORPO_MESSAGGIO, 'From: Tor des Geants ' ); echo $ammesso['Iscrizioni']['EMAIL'] . '
'; $inviate++; } $i++; } echo $inviate . " Mail inviate
"; if($part == 1) { echo('Prosegui con la SECONDA PARTE'); } die(); }*/ public function index($stato = NULL) { if ($this->request->is('post') && $this->request->data['search'] == '' && $this->Auth->user('ROLE') == 'admin') { foreach($this->request->data['Iscrizioni'] as $key => $value) { debug($this->request->data); die(); if($value == '1') { $this->Iscrizioni->id = $key; $this->Iscrizioni->saveField('ISCRITTO', $this->request->data['Iscrizioni']['Status']); if($this->request->data['Iscrizioni']['Status'] == 'AMMESSO') { $fineIscrizioni = new DateTime('2014-03-16'); $oggi = new DateTime(); $diff = $fineIscrizioni->diff($oggi); if($diff->invert == 1) { $this->Iscrizioni->saveField('ammessoAt', '2014-03-16 00:00:00'); } else { $this->Iscrizioni->saveField('ammessoAt', date("d/m/Y", strtotime("+3 days"))); } } } } } $conditions = array( 'ROLE' => 'runner' ); $search = null; if(isset($this -> request -> data['search']) && $this -> request -> data['search'] != '') { $search = $this -> request -> data['search']; } elseif(isset($this -> request -> query['search']) && $this -> request -> query['search'] != '') { $search = $this -> request -> query['search']; } if ($search) { $conditions['AND']['OR']['NOME like'] = '%' . $search . '%'; $conditions['AND']['OR']['COGNOME like'] = '%' . $search . '%'; } $conditions['VIP'] = 'NO'; if($stato) { if($stato == 'VALLE AOSTA') { $conditions['STATO'] = 'ITALIA'; $conditions['PROVINCIA LIKE'] = 'AO%'; } else { $conditions['STATO'] = $stato; } } $conditions['Iscrizioni.VIP'] = 'NO'; if(isset($this->request->data['search']) && $this->request->data['search'] != '') { $conditions['AND']['OR']['NOME like'] = '%' . $this->request->data['search'] . '%'; $conditions['AND']['OR']['COGNOME like'] = '%' . $this->request->data['search'] . '%'; } if($stato) { if($stato == 'VALLE AOSTA') { $conditions['Iscrizioni.STATO'] = 'ITALIA'; $conditions['Iscrizioni.PROVINCIA LIKE'] = 'AO%'; } else if($stato == 'ITALIA'){ $conditions['Iscrizioni.STATO'] = 'ITALIA'; $conditions['Iscrizioni.PROVINCIA NOT LIKE'] = 'AO%'; } else { $conditions['Iscrizioni.STATO'] = $stato; } } $concorrenti = $this->Iscrizioni->Banca->find('all', array( 'conditions' => $conditions, 'order'=>array( 'data' => 'asc', 'millesimi' => 'asc' ), 'fields'=>array( 'DISTINCT Banca.2014_tdg_id', 'MIN(data) as data', 'millesimi', 'Iscrizioni.id', 'Iscrizioni.rank', 'Iscrizioni.PETTORALE', 'Iscrizioni.NOME', 'Iscrizioni.COGNOME', 'Iscrizioni.CATEGORIA', 'Iscrizioni.SESSO', 'Iscrizioni.STATO', 'Iscrizioni.SOCIETA', 'Iscrizioni.ISCRITTO', 'Iscrizioni.CERTIFICATO_MEDICO', 'Iscrizioni.LIBERATORIA', 'Iscrizioni.DATA_NASCITA', 'Iscrizioni.ammessoAt' ), 'recursive' => 0, 'group'=>array( 'Iscrizioni.COGNOME', 'Iscrizioni.NOME', 'Iscrizioni.DATA_NASCITA') ) ); $conditions['Iscrizioni.VIP'] = 'SI'; $conditions['VIP'] = 'SI'; unset($conditions['OR']); $vip = $this->paginate('Iscrizioni', $conditions); if($this->Auth->user('ROLE') == 'admin') { $conditions['VIP'] = 'NO'; $conditions['rank'] = NULL; $falliti = $this->paginate('Iscrizioni', $conditions); $this->set(compact('falliti')); } $this -> set('search', $search); $this->set(compact('concorrenti', 'vip', 'stato')); } public function quote_paese() { if($this->Auth->user('ROLE') != 'admin' && $this->Auth->user('ROLE') != 'user'){ $this->redirect(array('action' => 'index')); } $totale_ammessi = 660; $stati = array(); $iscritti = array(); $tot_iscritti = 0; $ammessi = array(); $tot_ammessi = 0; $stati = array(); $non_italiani = 0; $valdostani = 0; $concorrenti = $this->Iscrizioni->Banca->find('all', array( 'order'=>array( 'data' => 'asc', 'millesimi' => 'asc' ), 'conditions'=>array( 'Iscrizioni.ISCRITTO !=' => 'SOSTITUITO' ), 'fields'=>array( 'DISTINCT Banca.2014_tdg_id', 'MIN(data) as data', 'millesimi', 'Iscrizioni.id', 'Iscrizioni.rank', 'Iscrizioni.NOME', 'Iscrizioni.COGNOME', 'Iscrizioni.CATEGORIA', 'Iscrizioni.SESSO', 'Iscrizioni.STATO', 'Iscrizioni.PROVINCIA', 'Iscrizioni.SOCIETA', 'Iscrizioni.ISCRITTO', 'Iscrizioni.CERTIFICATO_MEDICO', 'Iscrizioni.LIBERATORIA', 'Iscrizioni.DATA_NASCITA', 'Iscrizioni.VIP' ), 'recursive' => 0, 'group'=>array( 'Iscrizioni.COGNOME', 'Iscrizioni.NOME', 'Iscrizioni.DATA_NASCITA') ) ); foreach($concorrenti as $concorrente) { $stati[$concorrente['Iscrizioni']['STATO']] = (isset($stati[$concorrente['Iscrizioni']['STATO']])) ? ++$stati[$concorrente['Iscrizioni']['STATO']] : 1; if ($concorrente['Iscrizioni']['ISCRITTO'] == 'ISCRITTO' && $concorrente['Iscrizioni']['VIP'] == 'NO') { if($concorrente['Iscrizioni']['STATO'] != 'ITALIA' || strtoupper(substr($concorrente['Iscrizioni']['PROVINCIA'], 0, 2)) != 'AO') { $iscritti[$concorrente['Iscrizioni']['STATO']] = (isset($iscritti[$concorrente['Iscrizioni']['STATO']])) ? ++$iscritti[$concorrente['Iscrizioni']['STATO']] : 1; } else { $iscritti['VALLE AOSTA'] = (isset($iscritti['VALLE AOSTA'])) ? ++$iscritti['VALLE AOSTA'] : 1; } $tot_iscritti++; } if ($concorrente['Iscrizioni']['ISCRITTO'] == 'AMMESSO' && $concorrente['Iscrizioni']['VIP'] == 'NO') { if($concorrente['Iscrizioni']['STATO'] != 'ITALIA' || strtoupper(substr($concorrente['Iscrizioni']['PROVINCIA'], 0, 2)) != 'AO') { $ammessi[$concorrente['Iscrizioni']['STATO']] = (isset($ammessi[$concorrente['Iscrizioni']['STATO']])) ? ++$ammessi[$concorrente['Iscrizioni']['STATO']] : 1; } else { $ammessi['VALLE AOSTA'] = (isset($ammessi['VALLE AOSTA'])) ? ++$ammessi['VALLE AOSTA'] : 1; } $tot_ammessi++; } if($concorrente['Iscrizioni']['STATO'] != 'ITALIA') { $non_italiani++; } else if(strtoupper(substr($concorrente['Iscrizioni']['PROVINCIA'], 0, 2)) == 'AO') { $valdostani++; } } $non_italiani_ammessi = ($non_italiani > $totale_ammessi * 0.6) ? $totale_ammessi * 0.6 : $non_italiani * 0.6; $da_togliere = 0; foreach($stati as $key => $value) { if($key != 'ITALIA') { if($value > 2) { $da_togliere += 2; } else { $da_togliere += $value; } } } $non_italiani -= $da_togliere; $non_italiani_ammessi -= $da_togliere; foreach($stati as $key => $value) { if($value < 2) { $max_concorrenti_per_stato[$key] = $value; } else { $value -= 2; $n_concorrenti = 100 * $value / $non_italiani; $n_concorrenti = round($non_italiani_ammessi * $n_concorrenti / 100, 1) + 2; $max_concorrenti_per_stato[$key] = ($n_concorrenti < 2) ? 2 : $n_concorrenti; } } $max_concorrenti_per_stato['ITALIA'] = (count($concorrenti) > $totale_ammessi) ? $totale_ammessi * 0.4 : count($concorrenti) * 0.4; $max_concorrenti_per_stato['VALLE AOSTA'] = round($max_concorrenti_per_stato['ITALIA']/3, 1); $max_concorrenti_per_stato['ITALIA'] -= $max_concorrenti_per_stato['VALLE AOSTA']; $stati['VALLE AOSTA'] = $valdostani; $stati['ITALIA'] -= $stati['VALLE AOSTA']; $tot_ammessibili = 0; foreach($max_concorrenti_per_stato as $n) { $tot_ammessibili += $n; } $this->set(compact('stati', 'max_concorrenti_per_stato', 'max_concorrenti_per_stato1', 'tot_ammessibili', 'concorrenti', 'iscritti', 'tot_iscritti', 'ammessi', 'tot_ammessi')); } // Pagina di ritorno in caso di andata a buon fine della transazione con la banca public function ricezione_dati_banca($ID, $TRANSAZIONE, $RISULTATO, $AUTENTICAZIONE, $DATA_TRANSAZIONE, $TRACKID, $ERRORE, $ERRORE_TESTO, $CARTA, $PAYINST, $LIABILITY, $RESPONSECODE, $REF, $UDF1, $UDF2, $UDF3, $UDF4, $UDF5) { $UDF4 = ($UDF4 == 'null') ? NULL : str_replace('_', '.', $UDF4); // parametro pagamento valido $iscritto = $this->Iscrizioni->Transazione->find( 'first', array( 'conditions' => array( 'Transazione.PAYMENTID' => $ID ), 'recursive' => 0 ) ); if(!$iscritto) { $this->Session->setFlash(__('Errore nella transazione!')); $this->redirect(array('action' => 'result', 'iscrizione', 0)); } $this->Iscrizioni->Transazione->id = $iscritto['Transazione']['id']; $this->Iscrizioni->Transazione->set('TRACKID', ($TRACKID == 'null') ? NULL : $TRACKID); $this->Iscrizioni->Transazione->set('PAYMENTID', ($ID == 'null') ? NULL : $ID); $this->Iscrizioni->Transazione->set('TRANID', ($TRANSAZIONE == 'null') ? NULL : $TRANSAZIONE); $this->Iscrizioni->Transazione->set('RESULT', ($RISULTATO == 'null') ? NULL : $RISULTATO); $this->Iscrizioni->Transazione->set('AUTH', ($AUTENTICAZIONE == 'null') ? NULL : $AUTENTICAZIONE); $this->Iscrizioni->Transazione->set('POSTDATE', ($DATA_TRANSAZIONE == 'null') ? NULL : $DATA_TRANSAZIONE); $this->Iscrizioni->Transazione->set('REF', ($REF == 'null') ? NULL : $REF); $this->Iscrizioni->Transazione->set('RESPONSECODE', ($RESPONSECODE == 'null') ? NULL : $RESPONSECODE); $this->Iscrizioni->Transazione->set('CARDTYPE', ($CARTA == 'null') ? NULL : $CARTA); $this->Iscrizioni->Transazione->set('PAYINST', ($PAYINST == 'null') ? NULL : $PAYINST); $this->Iscrizioni->Transazione->set('LIABILITY', ($LIABILITY == 'null') ? NULL : $LIABILITY); $this->Iscrizioni->Transazione->set('ERROR', ($ERRORE == 'null') ? NULL : $ERRORE); $this->Iscrizioni->Transazione->set('ERROR_TEXT', ($ERRORE_TESTO == 'null') ? NULL : $ERRORE_TESTO); $this->Iscrizioni->Transazione->set('UDF1', ($UDF1 == 'null') ? NULL : $UDF1); $this->Iscrizioni->Transazione->set('UDF2', ($UDF2 == 'null') ? NULL : $UDF2); $this->Iscrizioni->Transazione->set('UDF3', ($UDF3 == 'null') ? NULL : $UDF3); $this->Iscrizioni->Transazione->set('UDF4', $UDF4); $this->Iscrizioni->Transazione->set('UDF5', ($UDF5 == 'null') ? NULL : $UDF5); $this->Iscrizioni->Transazione->set('createdAt', date('Y/m/d H:i:s')); $this->Iscrizioni->Transazione->save(); $this->Iscrizioni->id = $iscritto['Transazione']['2014_tdg_id']; $APPROVAZIONE_VALIDA = "CAPTURED"; if($iscritto['Iscrizioni']['ISCRITTO'] == 'AMMESSO') { // PAGAMENTO DELL'ISCRIZIONE FINALE if($RISULTATO == $APPROVAZIONE_VALIDA) { $this->Iscrizioni->saveField('iscrizioneAt', date('Y/m/d H:i:s', time())); $this->Iscrizioni->saveField('ISCRITTO', 'ISCRITTO'); $CORPO_MESSAGGIO = "L'iscrizione di " . $iscritto['Iscrizioni']['NOME'] . " " . $iscritto['Iscrizioni']['COGNOME'] . " al Tor des Geants 2014 ha avuto esito positivo \n\r\n\r" . "Codice Utente: " . $iscritto['Iscrizioni']['NUMERO_ORDINE'] . "\n\r Esito transazione: " . $RISULTATO . "\n\r Codice Ordine: " . $ID . "\n\r" . "Importo: " . $UDF4 . "Euro \n\r Carta: " . $CARTA . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "L'ORGANIZZAZIONE \n\r"; mail($iscritto['Iscrizioni']['EMAIL'], 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); mail('info@tordesgeants.it', 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); $this->Session->setFlash(__('Operazione avvenuta con successo. Abbiamo inviato una mail a ' . $iscritto['Iscrizioni']['EMAIL'])); $this->redirect(array('action' => 'result', 'iscrizione', 1)); } else { $CORPO_MESSAGGIO = "L'iscrizione di " . $iscritto['Iscrizioni']['NOME'] . " " . $iscritto['Iscrizioni']['COGNOME'] . " al Tor des Geants 2014 NON ha avuto esito positivo \n\r\n\r" . "Codice Utente: " . $iscritto['Iscrizioni']['NUMERO_ORDINE'] . "\n\r Esito transazione: " . $RISULTATO . "\n\r Codice Ordine: " . $ID . "\n\r" . "Importo: " . $UDF4 . " Euro \n\r Carta: " . $CARTA . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "---------------DESCRIZIONE ERRORE---------------\n\r" . "Response Code: " . $RESPONSECODE . " \n\r Errore: " . $ERRORE_TESTO . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "L'ORGANIZZAZIONE \n\r"; mail($iscritto['Iscrizioni']['EMAIL'], 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); $this->Session->setFlash(__('Si sono verificati degli ERRORI per favore riprova. Abbiamo inviato una mail a ' . $iscritto['Iscrizioni']['EMAIL'])); $this->redirect(array('action' => 'result', 'iscrizione', 0)); } } else { // PAGAMENTO DELLA PRE ISCRIZIONE if($RISULTATO == $APPROVAZIONE_VALIDA) { $chiusuraIscrizioni = new DateTime('2014-02-14 18:00',new DateTimeZone("Europe/Rome")); $oggi = new DateTime('now',new DateTimeZone("Europe/Rome")); $diff = $chiusuraIscrizioni->diff($oggi); if($diff->invert == 1) { $rank = $this->Iscrizioni->find('first', array('order' => array('rank' => 'DESC'), 'limit' => 1)); $this->Iscrizioni->saveField('preIscrizioneAt', date('Y/m/d H:i:s', time())); $this->Iscrizioni->saveField('password', $iscritto['Iscrizioni']['NUMERO_ORDINE']); $this->Iscrizioni->saveField('rank', $rank['Iscrizioni']['rank'] + 1); $this->Iscrizioni->saveField('ISCRITTO', 'PRE ISCRITTO'); $CORPO_MESSAGGIO = "La pre-iscrizione di " . $iscritto['Iscrizioni']['NOME'] . " " . $iscritto['Iscrizioni']['COGNOME'] . " al Tor des Geants 2014 ha avuto esito positivo \n\r\n\r" . "Codice Utente: " . $iscritto['Iscrizioni']['NUMERO_ORDINE'] . "\n\r Esito transazione: " . $RISULTATO . "\n\r Codice Ordine: " . $ID . "\n\r" . "Importo: " . $UDF4 . "Euro \n\r Carta: " . $CARTA . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "L'ORGANIZZAZIONE \n\r"; mail($iscritto['Iscrizioni']['EMAIL'], 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); mail('info@tordesgeants.it', 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); } $this->Session->setFlash(__('Operazione avvenuta con successo. Abbiamo inviato una mail a ' . $iscritto['Iscrizioni']['EMAIL'])); $this->redirect(array('action' => 'result', 'pre iscrizione', 1)); } else { $CORPO_MESSAGGIO = "La pre-iscrizione di " . $iscritto['Iscrizioni']['NOME'] . " " . $iscritto['Iscrizioni']['COGNOME'] . " al Tor des Geants 2014 NON ha avuto esito positivo \n\r\n\r" . "Codice Utente: " . $iscritto['Iscrizioni']['NUMERO_ORDINE'] . "\n\r Esito transazione: " . $RISULTATO . "\n\r Codice Ordine: " . $ID . "\n\r" . "Importo: " . $UDF4 . " Euro \n\r Carta: " . $CARTA . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "---------------DESCRIZIONE ERRORE---------------\n\r" . "Response Code: " . $RESPONSECODE . " \n\r Errore: " . $ERRORE_TESTO . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "L'ORGANIZZAZIONE \n\r"; mail($iscritto['Iscrizioni']['EMAIL'], 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); $this->Session->setFlash(__('Si sono verificati degli ERRORI per favore riprova. Abbiamo inviato una mail a ' . $iscritto['Iscrizioni']['EMAIL'])); $this->redirect(array('action' => 'result', 'pre iscrizione', 0)); } } $this->redirect(array('action' => 'index')); } public function ricezione_banca_errore() { // recupero i dati del pagamento $EMAIL_ISCRIZIONI = "iscrizioni@tordesgeants.it"; $ID = $HTTP_POST_VARS["paymentid"]; $TRANSAZIONE = $HTTP_POST_VARS["tranid"]; $RISULTATO = $HTTP_POST_VARS["result"]; $AUTENTIFICAZIONE = $HTTP_POST_VARS["auth"]; $DATA_TRANSAZIONE = $HTTP_POST_VARS["postdate"]; $TRACKID = $HTTP_POST_VARS["trackid"]; $ERRORE = $HTTP_POST_VARS["Error"]; $ERRORE_TESTO = $HTTP_POST_VARS["ErrorText"]; $CARTA = $HTTP_POST_VARS["cardtype"]; $PAYINST = $HTTP_POST_VARS["payinst"]; $LIABILITY = $HTTP_POST_VARS["liability"]; $RESPONSECODE = $HTTP_POST_VARS["responsecode"]; $REF = $HTTP_POST_VARS["ref"]; $UDF1 = $HTTP_POST_VARS["udf1"]; $UDF2 = $HTTP_POST_VARS["udf2"]; $UDF3 = $HTTP_POST_VARS["udf3"]; $UDF4 = $HTTP_POST_VARS["udf4"]; $UDF5 = $HTTP_POST_VARS["udf5"]; // parametro pagamento valido $APPROVAZIONE_VALIDA = "CAPTURED"; $iscritto = $this->Iscrizioni->find('first', array('conditions' => array('PAYMENTID' => $ID))); $this->Iscrizioni->Transazione->create(); $this->Iscrizioni->Transazione->set('2014_tdg_id', $iscritto['Iscrizioni']['id']); $this->Iscrizioni->Transazione->set('ISCRITTO', $ISCRITTO); $this->Iscrizioni->Transazione->set('iscrizioneAt', date('Y/m/d H:i:s', time())); $this->Iscrizioni->Transazione->set('TRANID', $TRANSAZIONE); $this->Iscrizioni->Transazione->set('RESULT', $RISULTATO); $this->Iscrizioni->Transazione->set('AUTH', $AUTENTICAZIONE); $this->Iscrizioni->Transazione->set('POSTDATE', $DATA_TRANSAZIONE); $this->Iscrizioni->Transazione->set('REF', $REF); $this->Iscrizioni->Transazione->set('RESPONSECODE', $RESPONSECODE); $this->Iscrizioni->Transazione->set('CARDTYPE', $CARTA); $this->Iscrizioni->Transazione->set('PAYINST', $PAYINST); $this->Iscrizioni->Transazione->set('LIABILITY', $LIABILITY); $this->Iscrizioni->Transazione->set('ERROR', $ERRORE); $this->Iscrizioni->Transazione->set('ERROR_TEXT', $ERRORE_TESTO); $this->Iscrizioni->Transazione->save(); } public function detail($id) { if ($this->Auth->user('ROLE') == 'admin' || $this->Auth->user('id') == $id) { $this->Iscrizioni->id = $id; if (!$this->Iscrizioni->exists()) { throw new NotFoundException(__('Invalid runner')); } $concorrente = $this->Iscrizioni->findById($id); $this->set(compact('concorrente')); } else { $this->redirect(array('action' => 'login', $id)); } } public function edit($id) { $this->Iscrizioni->id = $id; if (!$this->Iscrizioni->exists()) { throw new NotFoundException(__('Invalid runner')); } if ($this->request->is('post') || $this->request->is('put')) { if($this->Auth->user('ROLE') != 'admin') { $concorrente = $this->Iscrizioni->findById($id); $this->request->data['Iscrizioni']['NOME'] = $concorrente['Iscrizioni']['NOME']; $this->request->data['Iscrizioni']['COGNOME'] = $concorrente['Iscrizioni']['COGNOME']; $this->request->data['Iscrizioni']['DATA_NASCITA'] = $concorrente['Iscrizioni']['DATA_NASCITA']; } if (isset($this->request->data['Iscrizioni']['SOCIETA']) && $this->request->data['Iscrizioni']['SOCIETA'] != '') { $this->request->data['Iscrizioni']['SOCIETA'] = strtoupper($this->request->data['Iscrizioni']['SOCIETA']); } $nazione = $this->Iscrizioni->Stato->find('first', array('conditions' => array('Stato.id' => $this->request->data['Iscrizioni']['stato_id']))); $this->request->data['Iscrizioni']['STATO'] = strtoupper($nazione['Stato']['nome_stati']); if(isset($this->request->data['Iscrizioni']['ammessoAt']) && $this->request->data['Iscrizioni']['ammessoAt'] != '') { $date = DateTime::CreateFromFormat("d/m/Y", $this->request->data['Iscrizioni']['ammessoAt']); $this->request->data['Iscrizioni']['ammessoAt'] = $date->format('Y-m-d H:i:s'); } else { $fineIscrizioni = new DateTime('2014-03-16'); $oggi = new DateTime(); $diff = $fineIscrizioni->diff($oggi); if($diff->invert == 1) { $this->request->data['Iscrizioni']['ammessoAt'] = '2014-03-16 00:00:00'; } else { $this->request->data['Iscrizioni']['ammessoAt'] = date("Y-m-d H:i:s", strtotime("+3 days")); } } if ($this->Iscrizioni->save($this->request->data)) { $this->Session->setFlash(__('Saved.')); $this->redirect(array('action' => 'detail', $id)); } else { $this->Session->setFlash(__('Something go wrong.')); } } $this->request->data = $this->Iscrizioni->read(null, $id); if($this->request->data['Iscrizioni']['ammessoAt'] != '') { $date = DateTime::CreateFromFormat("Y-m-d H:i:s", $this->request->data['Iscrizioni']['ammessoAt']); $this->request->data['Iscrizioni']['ammessoAt'] = $date->format('d/m/Y'); } $this->set('stati', $this->Iscrizioni->Stato->find('list', array('fields' => array('id', 'nome_stati'), 'order' => array('nome_stati asc')))); } public function pre_iscrizione() { $IMPORTO = '5.00'; if ($this->request->is('post')) { //debug($this->request->data); if ($this->request->data['Iscrizioni']['PRIVACY'] == 0 || $this->request->data['Iscrizioni']['REGOLAMENTO_GARA'] == 0) { $this->Session->setFlash(__('Devi accettare la privacy policy e il regolamento gara prima di continuare')); } else { $nazione = $this->Iscrizioni->Stato->find('first',array('conditions'=>array('Stato.id'=>$this->request->data['Iscrizioni']['stato_id']))); $this->request->data['Iscrizioni']['STATO'] = strtoupper($nazione['Stato']['nome_stati']); $this->request->data['Iscrizioni']['DATA_NASCITA'] = $this->request->data['Iscrizioni']['giorno'] . '/' . $this->request->data['Iscrizioni']['mese'] . '/' . $this->request->data['Iscrizioni']['anno']; $giorno_nascita = $this->request->data['Iscrizioni']['giorno']; $mese_nascita = $this->request->data['Iscrizioni']['mese']; $anno_nascita = $this->request->data['Iscrizioni']['anno']; $DATA_ISCRIZIONE = date('dmYHis'); // Inserire l'anno della gara $anno_gara = 2014; $mese_gara = 9; $giorno_gara = 7; if ((($anno_gara - 20) <= $anno_nascita) || (($anno_gara - 20) == $anno_nascita && $mese_gara < $mese_nascita) || ($anno_gara == $anno_nascita && $mese_gara == $mese_nascita && ($giorno_gara - 1) <= $giorno_nascita)) { $this->Session->setFlash(__('Occorre avere 20 anni per iscriversi')); } else { $this->request->data['Iscrizioni']['TELEFONO'] = ereg_replace("[^0-9|+]", "", $this->request->data['Iscrizioni']['TELEFONO1']) . ereg_replace("[^0-9]", "", $this->request->data['Iscrizioni']['TELEFONO2']) . ereg_replace("[^0-9]", "", $this->request->data['Iscrizioni']['TELEFONO3']); $Rifiutati = array("�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "'", " ", "/", "-", "_", "�", "�", "�"); $Accettati = array("A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "", " ", "X", " ", "X", "C", "N", "SS"); if ($this->request->data['Iscrizioni']['NOME'] != '') { $nome = rtrim($this->request->data['Iscrizioni']['NOME']); $this->request->data['Iscrizioni']['NOME'] = strtoupper(str_replace($Rifiutati, $Accettati, $nome)); } if ($this->request->data['Iscrizioni']['COGNOME'] != '') { $cognome = rtrim($this->request->data['Iscrizioni']['COGNOME']); $this->request->data['Iscrizioni']['COGNOME'] = strtoupper(str_replace($Rifiutati, $Accettati, $cognome)); } $concorrente = $this->Iscrizioni->find('first', array( 'conditions' => array( 'NOME' => $nome, 'COGNOME' => $cognome, 'DATA_NASCITA' => $this->request->data['Iscrizioni']['DATA_NASCITA'] ) )); if($concorrente) { if($concorrente['Iscrizioni']['ISCRITTO'] == 'PRE ISCRITTO' || $concorrente['Iscrizioni']['ISCRITTO'] == 'ISCRITTO' || $concorrente['Iscrizioni']['ISCRITTO'] == 'AMMESSO' || $concorrente['Iscrizioni']['ISCRITTO'] == 'ATTESA DI VERIFICA' || $concorrente['Iscrizioni']['ISCRITTO'] == 'SOSTITUITO' || $concorrente['Iscrizioni']['ISCRITTO'] == 'NON ISCRITTO') { $CORPO_MESSAGGIO = "L'iscrizione di " . $concorrente['Iscrizioni']['NOME'] . " " . $concorrente['Iscrizioni']['COGNOME'] . " al Tor des Geants 2014 risulta gia' effettuata con regolare pagamento \n\r\n\r" . "Codice Utente: " . $concorrente['Iscrizioni']['NUMERO_ORDINE'] . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente\n\r\n\r" . "L'ORGANIZZAZIONE \n\r"; mail($concorrente['Iscrizioni']['EMAIL'], 'Esito iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); $this->Session->setFlash(__('Concorrente gia iscritto. Abbiamo inviato una mail a ' . $concorrente['Iscrizioni']['EMAIL'])); $this->redirect(array('action' => 'gia_iscritto', $concorrente['Iscrizioni']['id'])); } else { $this->Iscrizioni->id = $concorrente['Iscrizioni']['id']; } } else { $this->Iscrizioni->create(); } if ($anno_gara - $anno_nascita >= 16 && $anno_gara - $anno_nascita <= 17) { $this->Iscrizioni->set('CATEGORIA', 'JUNIORES'); } elseif ($anno_gara - $anno_nascita >= 18 && $anno_gara - $anno_nascita <= 29) { $this->Iscrizioni->set('CATEGORIA', 'SENIORES 1'); } elseif ($anno_gara - $anno_nascita >= 30 && $anno_gara - $anno_nascita <= 39) { $this->Iscrizioni->set('CATEGORIA', 'SENIORES 2'); } elseif ($anno_gara - $anno_nascita >= 40 && $anno_gara - $anno_nascita <= 49) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 1'); } elseif ($anno_gara - $anno_nascita >= 50 && $anno_gara - $anno_nascita <= 59) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 2'); } elseif ($anno_gara - $anno_nascita >= 60 && $anno_gara - $anno_nascita <= 69) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 3'); } elseif ($anno_gara - $anno_nascita >= 70 && $anno_gara - $anno_nascita <= 100) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 4'); } $UDF5 = "ISCRIZIONE:0"; if($concorrente) { $NOME_CODICE = substr($concorrente['Iscrizioni']['NOME'], 0, 2); $COGNOME_CODICE = substr($concorrente['Iscrizioni']['COGNOME'], 0, 2); $CODICE_GARA = "TDG"; $DATA_ISCRIZIONE = $concorrente['Iscrizioni']['DATA_ISCRIZIONE']; $COGNOME = $concorrente['Iscrizioni']['COGNOME']; $NOME = $concorrente['Iscrizioni']['NOME']; $EMAIL = $concorrente['Iscrizioni']['EMAIL']; } else { $NOME_CODICE = substr($this->request->data['Iscrizioni']['NOME'], 0, 2); $COGNOME_CODICE = substr($this->request->data['Iscrizioni']['COGNOME'], 0, 2); $CODICE_GARA = "TDG"; $COGNOME = strtoupper($this->request->data['Iscrizioni']['COGNOME']); $NOME = strtoupper($this->request->data['Iscrizioni']['NOME']); $EMAIL = $this->request->data['Iscrizioni']['EMAIL']; } $NUMERO_ORDINE = $anno_gara . $CODICE_GARA . $NOME_CODICE . $COGNOME_CODICE . $anno_nascita . $DATA_ISCRIZIONE; $responce = $this->open_communication_bank($concorrente, $UDF5, $NUMERO_ORDINE, $COGNOME, $NOME, $EMAIL, $IMPORTO); $VARREDIRECTURL = $responce[1]; $VARPAYMENTID = $responce[0]; $this->Iscrizioni->set('ROLE', 'runner'); $this->Iscrizioni->set('DATA_ISCRIZIONE', $DATA_ISCRIZIONE); $this->Iscrizioni->set('CERTIFICATO_MEDICO', 'NO'); $this->Iscrizioni->set('LIBERATORIA', 'NO'); $this->Iscrizioni->set('VIP', 'NO'); $this->Iscrizioni->set('IMPORTO', $IMPORTO); if($concorrente && $concorrente['Iscrizioni']['NUMERO_ORDINE']) { $this->request->data['Iscrizioni']['NUMERO_ORDINE'] = $concorrente['Iscrizioni']['NUMERO_ORDINE']; } else { $this->Iscrizioni->set('NUMERO_ORDINE', $NUMERO_ORDINE); } $this->Iscrizioni->set('PAYMENTID', $VARPAYMENTID); $date = date('Y/m/d H:i:s', time()); $this->Iscrizioni->set('createdAt', $date); if ($this->Iscrizioni->save($this->request->data)) { $this->Iscrizioni->Transazione->create(); $this->Iscrizioni->Transazione->set('2014_tdg_id', $this->Iscrizioni->id); $this->Iscrizioni->Transazione->set('PAYMENTID', $VARPAYMENTID); $this->Iscrizioni->Transazione->set('IMPORTO', $IMPORTO); $this->Iscrizioni->Transazione->set('createdAt', date('Y-m-d H:i:s')); if ($this->Iscrizioni->Transazione->save()) { $this->redirect($VARREDIRECTURL); } else { $this->Session->setFlash('La pre-iscrizione non è andata a buon fine. Riprova.'); } } else { $this->Session->setFlash('La pre-iscrizione non è andata a buon fine. Riprova.'); } } } } $this->set('stati', $this->Iscrizioni->Stato->find('list', array('fields' => array('id', 'nome_stati'), 'order' => array('nome_stati asc')))); } function iscrizione($id = null) { $IMPORTO = '450.00'; $vuoto = 0; $this->Iscrizioni->id = $id; if (!$this->Iscrizioni->exists()) { throw new NotFoundException(__('Invalid runner')); } $concorrente = $this->Iscrizioni->find('first', array('conditions' => array('Iscrizioni.id' => $id))); if($concorrente['Iscrizioni']['ISCRITTO'] != 'AMMESSO') { $this->redirect(array('action' => 'detail', $concorrente['Iscrizioni']['id'])); } if ($this->request->is('post') || $this->request->is('put')) { if($this->request->data['Iscrizioni']['CONTATTO_EMERGENZA'] == NULL || $this->request->data['Iscrizioni']['TELEFONO_EMERGENZA'] == NULL){ $vuoto = 1; } $this->request->data['Iscrizioni']['COGNOME'] = $concorrente['Iscrizioni']['COGNOME']; $this->request->data['Iscrizioni']['NOME'] = $concorrente['Iscrizioni']['NOME']; $this->request->data['Iscrizioni']['DATA_NASCITA'] = $concorrente['Iscrizioni']['DATA_NASCITA']; if ($this->request->data['Iscrizioni']['SOCIETA'] != '') { $this->request->data['Iscrizioni']['SOCIETA'] = strtoupper($this->request->data['Iscrizioni']['SOCIETA']); } $UDF5 = "ISCRIZIONE:1"; $responce = $this->open_communication_bank($concorrente, $UDF5, $concorrente['Iscrizioni']['NUMERO_ORDINE'], $concorrente['Iscrizioni']['COGNOME'], $concorrente['Iscrizioni']['NOME'], $concorrente['Iscrizioni']['EMAIL'], $IMPORTO); $VARREDIRECTURL = $responce[1]; $VARPAYMENTID = $responce[0]; if($vuoto == 0) { if ($this->Iscrizioni->save($this->request->data)) { $this->Iscrizioni->Transazione->create(); $this->Iscrizioni->Transazione->set('2014_tdg_id', $this->Iscrizioni->id); $this->Iscrizioni->Transazione->set('PAYMENTID', $VARPAYMENTID); $this->Iscrizioni->Transazione->set('IMPORTO', $IMPORTO); $this->Iscrizioni->Transazione->set('createdAt', date('Y-m-d H:i:s')); if ($this->Iscrizioni->Transazione->save()) { $this->redirect($VARREDIRECTURL); } else { $this->Session->setFlash('L\'iscrizione non è andata a buon fine. Riprova.'); } } else { $this->Session->setFlash('L\'iscrizione non è andata a buon fine. Riprova.'); } } else { echo('Compilare tutti i campi'); $this->set('concorrente', $concorrente); } } else { $this->request->data = $concorrente; } $this->set('stati', $this->Iscrizioni->Stato->find('list', array('fields' => array('id', 'nome_stati'), 'order' => array('nome_stati asc')))); } public function open_communication_bank($concorrente = null, $udf5 = null, $NUMERO_ORDINE = null, $COGNOME = null, $NOME = null, $EMAIL = null, $IMPORTO){ $RESPONCE = array(); $INDIRIZZO = "http://www.vdatrailers.it/iscrizioni_2014_tdg/iscrizioni/"; //$INDIRIZZO = "http://localhost:8888/progetti/tor_iscrizioni/iscrizioni/"; // user accesso $ID = "10452046"; // Password di accesso $PASSWORD = "vdatranid2014c"; // indirizzo invio dati $GATEWAY_ADDRESS = "https://www.constriv.com/cg/servlet/PaymentInitHTTPServlet"; // azione 1 = purchase 4 = Authorization $ACTION = "1"; // inizializzo la variabile valore $AMT = "20.00"; // codice relativo alla valuta 978 = Euro $CURRENCYCODE = 978; // lingua $LANGID_ITA = "ITA"; # Italiano $LANGID_USA = "USA"; # Inglese $LANGID_FRA = "FRA"; # Francese $LANGID_DEU = "DEU"; # Tedesco $LANGID_ESP = "ESP"; # Spagnolo $LANGID_SLO = "SLO"; # Sloveno // Campo a discrezione del Merchant che verranno restituite $NOME_GARA = "Tor des Geants"; $UDF1 = "Iscrizione_" . $NOME_GARA . "_anno_2014"; // Indirizzi per ricezione dati //$RESPONCEURL = "http://localhost:8888/progetti/iscrizioni-tor/app/webroot/dummy.php"; $RESPONCEURL = $INDIRIZZO . "../dummy.php"; $ERRORURL = $INDIRIZZO . "ricezione_banca_errore.php"; $APPROVAZIONE_VALIDA = "CAPTURED"; $LINGUA = $LANGID_ITA; $TRACKID = $NUMERO_ORDINE; $UDF2 = $COGNOME . ' ' . $NOME; $UDF4 = "$IMPORTO"; $UDF3 = "EMAILADDR:" . $EMAIL; $STRINGA = "id=$ID&password=$PASSWORD&action=$ACTION&amt=$IMPORTO¤cycode=$CURRENCYCODE&langid=$LINGUA&responseURL=$RESPONCEURL&errorURL=$ERRORURL&trackid=$TRACKID&udf1=$UDF1&udf2=$UDF2&udf3=$UDF3&udf4=$UDF4&udf5=$udf5"; # echo "
Stringa = $STRINGA
"; // apro la connessione verso il sito GATEWAY $ch = curl_init($GATEWAY_ADDRESS); // imposto gli header HTTP // imposto crul per protocollo https curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_POST, 1); // invio i dati curl_setopt($ch, CURLOPT_POSTFIELDS, $STRINGA); // imposto la variabile php curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ricevo la stringa dal server $RECEIVED = curl_exec($ch); // chiudo la connessione curl_close($ch); if (substr($RECEIVED, 0, 7) == '!ERROR!') { $this->Session->setFlash($RECEIVED); } else { // separo il contenuto della stringa $VARPOSIZ = strpos($RECEIVED, ':http'); # echo "
Varposiz".$VARPOSIZ; $VARPAYMENTID = substr($RECEIVED, 0, $VARPOSIZ); # echo "
VarpaymentId".$VARPAYMENTID; $LUNGHEZZA = strlen($RECEIVED); $LUNGHEZZA = ($LUNGHEZZA - 17); $VARREDIRECTURL = substr($RECEIVED, $VARPOSIZ + 1); # echo "
Varredirecturl".$VARREDIRECTURL; //Creo l'URL di redirezione $VARREDIRECTURL = "$VARREDIRECTURL?PaymentID=$VARPAYMENTID"; array_push($RESPONCE, $VARPAYMENTID, $VARREDIRECTURL); } return $RESPONCE; } public function login($id = null) { if ($this->request->is('post')) { if(isset($this->request->data['Iscrizioni']['email'])) { $id = $this->Iscrizioni->find( 'first', array( 'conditions' => array( 'EMAIL' => $this->request->data['Iscrizioni']['email'] ), 'fields' => array('id'), 'recursive' => -1 ) ); if(!$id) { $this->Session->setFlash('Utente non valido.'); $this->redirect(array('action' => 'index')); } $this->request->data['Iscrizioni']['id'] = $id['Iscrizioni']['id']; $id = $id['Iscrizioni']['id']; } else { $this->request->data['Iscrizioni']['id'] = $id; } if ($this->Auth->login()) { if($this->Auth->user('ROLE') == 'admin'){ $this->redirect(array('action' => 'administrator')); } elseif($this->Auth->user('ROLE') == 'user'){ $this->redirect(array('action' => 'index')); } else { $this->redirect(array('action' => 'detail', $id)); } } else { if(isset($this->request->data['Iscrizioni']['email'])) { return $this->redirect(array('action' => 'login')); }else{ return $this->redirect(array('action' => 'login', $id)); } } } $this->set('id', $id); } public function logout() { $this->redirect($this->Auth->logout()); } public function administrator() { if($this->Auth->user('ROLE') != 'admin'){ $this->redirect(array('action' => 'index')); } $stat = array(); $stat['tot']['M'] = 0; $stat['tot']['F'] = 0; $stat['pre-iscritti']['M'] = 0; $stat['pre-iscritti']['F'] = 0; $stat['ammessi']['M'] = 0; $stat['ammessi']['F'] = 0; $stat['iscritti']['M'] = 0; $stat['iscritti']['F'] = 0; $stat['non-iscritti']['M'] = 0; $stat['non-iscritti']['F'] = 0; $stat['sostituiti']['M'] = 0; $stat['sostituiti']['F'] = 0; $stat['attesa-verifica']['M'] = 0; $stat['attesa-verifica']['F'] = 0; $runners = $this->Iscrizioni->find('all', array( 'conditions' => array('ROLE' => 'runner'), 'recursive' => -1 )); foreach ($runners as $runner) { if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['tot']['M']++; } else { $stat['tot']['F']++; } switch($runner['Iscrizioni']['ISCRITTO']) { case 'ISCRITTO': if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['iscritti']['M']++; } else { $stat['iscritti']['F']++; } break; case 'AMMESSO': if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['ammessi']['M']++; } else { $stat['ammessi']['F']++; } break; case 'PRE ISCRITTO': if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['pre-iscritti']['M']++; } else { $stat['pre-iscritti']['F']++; } break; case 'NON ISCRITTO': if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['non-iscritti']['M']++; } else { $stat['non-iscritti']['F']++; } break; case 'SOSTITUITO': if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['sostituiti']['M']++; } else { $stat['sostituiti']['F']++; } break; case 'ATTESA DI VERIFICA': if($runner['Iscrizioni']['SESSO'] == 'MASCHIO') { $stat['attesa-verifica']['M']++; } else { $stat['attesa-verifica']['F']++; } break; } } $this->set(compact('stat')); if ($this->request->is('post') && $this->request->data['Iscrizioni']['COGNOME']!= ' ' ) { if($this->request->data['Iscrizioni']['PARTECIPANTI_PASTA'] != '') { $this->request->data['Iscrizioni']['PARTECIPANTI_PARTY'] = $this->request->data['Iscrizioni']['PARTECIPANTI_PASTA']; }else{ $this->request->data['Iscrizioni']['PARTECIPANTI_PARTY'] = '0'; } if($this->request->data['Iscrizioni']['CONTATTO_EMERG'] != ''){ $this->request->data['Iscrizioni']['CONTATTO_EMERGENZA'] = $this->request->data['Iscrizioni']['CONTATTO_EMERG']; }else{ $this->request->data['Iscrizioni']['CONTATTO_EMERGENZA'] = ' '; } if($this->request->data['Iscrizioni']['TELEFONO_EMERG'] != ''){ $this->request->data['Iscrizioni']['TELEFONO_EMERGENZA'] = $this->request->data['Iscrizioni']['TELEFONO_EMERG']; }else{ $this->request->data['Iscrizioni']['TELEFONO_EMERGENZA'] = ' '; } $this->request->data['Iscrizioni']['DATA_NASCITA'] = $this->request->data['Iscrizioni']['giorno'] . '/' . $this->request->data['Iscrizioni']['mese'] . '/' . $this->request->data['Iscrizioni']['anno']; $giorno_nascita = $this->request->data['Iscrizioni']['giorno']; $mese_nascita = $this->request->data['Iscrizioni']['mese']; $anno_nascita = $this->request->data['Iscrizioni']['anno']; $anno_gara = 2014; $NOME_CODICE = substr($this->request->data['Iscrizioni']['NOME'], 0, 2); $COGNOME_CODICE = substr($this->request->data['Iscrizioni']['COGNOME'], 0, 2); $CODICE_GARA = "TDG"; $DATA_ISCRIZIONE = date('dmYHis'); $this->request->data['Iscrizioni']['NUMERO_ORDINE'] = $anno_gara . $CODICE_GARA . $NOME_CODICE . $COGNOME_CODICE . $anno_nascita . $DATA_ISCRIZIONE; $this->request->data['Iscrizioni']['password'] = $this->request->data['Iscrizioni']['NUMERO_ORDINE']; $this->request->data['Iscrizioni']['ROLE'] = 'runner'; $this->request->data['Iscrizioni']['VIP'] = 'SI'; $this->request->data['Iscrizioni']['DATA_ISCRIZIONE'] = $DATA_ISCRIZIONE; $this->request->data['Iscrizioni']['createdAt'] = date('Y-m-d H:i:s'); $this->request->data['Iscrizioni']['iscrizioneAt'] = date('Y-m-d H:i:s'); $this->request->data['Iscrizioni']['NOME'] = strtoupper($this->request->data['Iscrizioni']['NOME']); $this->request->data['Iscrizioni']['COGNOME'] = strtoupper($this->request->data['Iscrizioni']['COGNOME']); $this->request->data['Iscrizioni']['ISCRITTO'] = 'ISCRITTO'; if ($anno_gara - $anno_nascita >= 16 && $anno_gara - $anno_nascita <= 17) { $this->Iscrizioni->set('CATEGORIA', 'JUNIORES'); } elseif ($anno_gara - $anno_nascita >= 18 && $anno_gara - $anno_nascita <= 29) { $this->Iscrizioni->set('CATEGORIA', 'SENIORES 1'); } elseif ($anno_gara - $anno_nascita >= 30 && $anno_gara - $anno_nascita <= 39) { $this->Iscrizioni->set('CATEGORIA', 'SENIORES 2'); } elseif ($anno_gara - $anno_nascita >= 40 && $anno_gara - $anno_nascita <= 49) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 1'); } elseif ($anno_gara - $anno_nascita >= 50 && $anno_gara - $anno_nascita <= 59) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 2'); } elseif ($anno_gara - $anno_nascita >= 60 && $anno_gara - $anno_nascita <= 69) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 3'); } elseif ($anno_gara - $anno_nascita >= 70 && $anno_gara - $anno_nascita <= 100) { $this->Iscrizioni->set('CATEGORIA', 'VETERANI 4'); } $nazione = $this->Iscrizioni->Stato->find('first',array('conditions'=>array('Stato.id'=>$this->request->data['Iscrizioni']['stato_id']))); $this->request->data['Iscrizioni']['STATO'] = strtoupper($nazione['Stato']['nome_stati']); $data_nascita = explode('/', $this->request->data['Iscrizioni']['DATA_NASCITA']); $giorno_nascita = $data_nascita[0]; $mese_nascita = $data_nascita[1]; $anno_nascita = $data_nascita[2]; $anno_gara = 2014; $mese_gara = 9; $giorno_gara = 7; if ((($anno_gara - 20) <= $anno_nascita) || (($anno_gara - 20) == $anno_nascita && $mese_gara < $mese_nascita) || ($anno_gara == $anno_nascita && $mese_gara == $mese_nascita && ($giorno_gara - 1) <= $giorno_nascita)) { $this->Session->setFlash(__('Occorre avere 20 anni per iscriversi')); } else { if($this->Iscrizioni->save($this->request->data)) { $CORPO_MESSAGGIO = "Il concorrente " . $this->request->data['Iscrizioni']['NOME'] . " " . $this->request->data['Iscrizioni']['COGNOME'] . " è stato aggiunto nella lista degli ISCRITTI del Tor des Geants 2014 \n\r\n\r" . "Codice Utente: " . $this->request->data['Iscrizioni']['NUMERO_ORDINE'] . "\n\r\n\r" . "Per ogni informazione scrivere a iscrizioni@tordesgeants.it specificando il nome, cognome e Codice Utente \n\r\n\r" . "L'ORGANIZZAZIONE \n\r"; // Mail al corridore iscritto d'ufficio mail($this->request->data['Iscrizioni']['EMAIL'], 'Iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); // Mail a organizzazione mail('info@tordesgeants.it', 'Iscrizione alla corsa Tor des Geants 2014', $CORPO_MESSAGGIO, 'From: iscrizioni@tordesgeants.it' ); $this->Session->setFlash('Concorrente aggiunto correttamente.'); $this->redirect(array('action' => 'index')); } else { $this->Session->setFlash('Something wrong'); //echo var_dump($this->Iscrizioni->invalidFields()); } } } $this->set('stati', $this->Iscrizioni->Stato->find('list', array('fields' => array('id', 'nome_stati'), 'order' => array('nome_stati asc')))); } public function nuovo_utente(){ if ($this->request->is('post')) { $this->request->data['Iscrizioni'] = $this->request->data['Utente']; $this->request->data['Iscrizioni']['NOME'] = 'utente'; $this->request->data['Iscrizioni']['COGNOME'] = 'utente'; $this->request->data['Iscrizioni']['DATA_NASCITA'] = '01/01/1970'; $this->request->data['Iscrizioni']['INDIRIZZO'] = 'vda trailers'; $this->request->data['Iscrizioni']['RESIDENZA'] = 'vda trailers'; $this->request->data['Iscrizioni']['CAP'] = '1'; $this->request->data['Iscrizioni']['PROVINCIA'] = 'vda trailers'; $this->request->data['Iscrizioni']['TELEFONO'] = '1'; $this->request->data['Iscrizioni']['CONTATTO_EMERGENZA'] = 'emergency'; $this->request->data['Iscrizioni']['TELEFONO_EMERGENZA'] = '0000'; if($this->Iscrizioni->save($this->request->data['Iscrizioni'])) { $this->Session->setFlash('Utente aggiunto correntamente'); $this->redirect(array('action' => 'administrator')); } else { $this->Session->setFlash('Something wrong'); //echo var_dump($this->Iscrizioni->invalidFields()); } } } public function change_cmedico($id, $cmedico, $search) { if ($this -> Auth -> user('ROLE') != 'runner') { $this -> Iscrizioni -> id = $id; if (!$this -> Iscrizioni -> exists()) { throw new NotFoundException(__('Invalid runner')); } $this -> Iscrizioni -> saveField('CERTIFICATO_MEDICO', $cmedico); $this -> Session -> setFlash('Dati aggiornati'); if($search) { $this -> redirect(array('action' => 'index?search=' . $search)); } $this -> redirect(array('action' => 'index')); } } public function change_liberatoria($id, $liberatoria, $search) { if ($this -> Auth -> user('ROLE') != 'runner') { $this -> Iscrizioni -> id = $id; if (!$this -> Iscrizioni -> exists()) { throw new NotFoundException(__('Invalid runner')); } $this -> Iscrizioni -> saveField('LIBERATORIA', $liberatoria); $this -> Session -> setFlash('Dati aggiornati'); if($search) { $this -> redirect(array('action' => 'index?search=' . $search)); } $this -> redirect(array('action' => 'index')); } } public function result($operazione = 'pre iscrizione', $esito = 0) { $this->set('operazione', $operazione); $this->set('esito', $esito); if($this->Auth->user('id')) { $this->set('id', $this->Auth->user('id')); } } public function gia_iscritto($id) { $this->Iscrizioni->id = $id; if (!$this->Iscrizioni->exists()) { throw new NotFoundException(__('Invalid runner')); } $this->set('concorrente', $this->Iscrizioni->findById($id)); } public function reset_password($id) { $this->Iscrizioni->id = $id; if (!$this->Iscrizioni->exists()) { throw new NotFoundException(__('Invalid runner')); } $concorrente = $this->Iscrizioni->findById($id); $this->Iscrizioni->saveField('password', $concorrente['Iscrizioni']['NUMERO_ORDINE']); $this->Session->setFlash('Password reimpostata'); $this->redirect(array('action' => 'detail', $concorrente['Iscrizioni']['id'])); } public function pettorali() { } public function cancella_tutti() { $concorrenti = $this -> Iscrizioni -> find('all', array('conditions' => array('ROLE' => 'runner', 'ISCRITTO' => 'ISCRITTO', 'OR' => array('PETTORALE_FORCE IS NULL', 'PETTORALE_FORCE' => 0)))); if (shuffle($concorrenti)) { for ($i = 0; $i < count($concorrenti); $i++) { $this -> Iscrizioni -> id = $concorrenti[$i]['Iscrizioni']['id']; $this -> Iscrizioni -> saveField('PETTORALE', NULL); $this -> Iscrizioni -> saveField('PETTORALE_FORCE', NULL); } $this -> Session -> setFlash('Cancellati ' . count($concorrenti) . ' pettorali.'); $this -> redirect(array('action' => 'pettorali')); } } public function assegna_noflag() { $concorrentiSenzaPettorale = $this -> Iscrizioni -> find('all', array('conditions' => array('ROLE' => 'runner', 'ISCRITTO' => 'ISCRITTO', 'OR' => array('PETTORALE_FORCE IS NULL', 'PETTORALE_FORCE' => 0)))); $concorrentiConPettorale = $this -> Iscrizioni -> find('all', array('conditions' => array('ROLE' => 'runner', 'ISCRITTO' => 'ISCRITTO', 'PETTORALE_FORCE IS NOT NULL'))); if (isset($this -> request -> data['Iscrizioni']['dal']) && $this -> request -> data['Iscrizioni']['dal'] != '') { $numeroPettorale = $this -> request -> data['Iscrizioni']['dal']; } else { $numeroPettorale = 1; } $arr_pettorali = array(); for ($i = 0; $i < count($concorrentiSenzaPettorale); $i++) { for ($j = 0; $j < count($concorrentiConPettorale); $j++) { if ($concorrentiConPettorale[$j]['Iscrizioni']['PETTORALE'] == ($numeroPettorale + $i)) { $numeroPettorale++; } } $arr_pettorali[] = ($numeroPettorale + $i); } if (shuffle($arr_pettorali)) { for ($i = 0; $i < count($concorrentiSenzaPettorale); $i++) { $this -> Iscrizioni -> id = $concorrentiSenzaPettorale[$i]['Iscrizioni']['id']; $this -> Iscrizioni -> saveField('PETTORALE', $arr_pettorali[$i]); } $this -> Session -> setFlash('Assegnati ' . count($concorrentiSenzaPettorale) . ' pettorali mancanti.'); $this -> redirect(array('action' => 'pettorali')); } } public function assegna_pettorale() { if ($this->request->is('post') && $this->Auth->user('ROLE') == 'admin') { $this -> Iscrizioni -> id = $this->request->data['id']; $this -> Iscrizioni -> saveField('PETTORALE', $this->request->data['pettorale']); $this -> Iscrizioni -> saveField('PETTORALE_FORCE', TRUE); $this -> Session -> setFlash('Pettorale ' . $this->request->data['pettorale'] . ' assegnato'); $this -> redirect(array('action' => 'index')); } } public function send_mail() { $concorrentiConPettorale = $this -> Iscrizioni -> find('all', array('conditions' => array('ROLE' => 'runner', 'ISCRITTO' => 'ISCRITTO', 'PETTORALE IS NOT NULL', 'PETTORALE !=' => ''))); $this->set('concorrentiConPettorale', $concorrentiConPettorale); } } Errors
TorDesGeants VDA Trailers
Regione VDA

Not Found

Error: The requested address '/iscrizione/' was not found on this server.