assign('ueberschrift','Zeiten eingeben');
if(!$erlaubt){
$_inh = T_KEINZUGRIFF;
}
else{
$_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:'';
switch($_GET['aktion']){
case 'protokoll':
if(!pruefeRechte('z_eingeben_protokoll')){
$_inh = T_KEINZUGRIFF;
break;
}
if(isset($_POST['wkwechseln'])){
unset($_SESSION['zeiteneing_protokoll']);
}
if(isset($_POST['confzuruecksetzen'])){
unset($_SESSION['zeiteneing_protokoll']['conf']);
}
if(isset($_SESSION['zeiteneing_protokoll'])){
$_tmpl->assign('ueberschrift','Protokoll eingeben ('.$_SESSION['zeiteneing_protokoll']['wettkampftitel'].')');
$_laengen = array(
25 => '25',
50 => '50',
100 => '100',
200 => '200',
400 => '400',
800 => '800',
1500 => '1500'
);
}
if(!isset($_SESSION['zeiteneing_protokoll']) or !isset($_SESSION['zeiteneing_protokoll']['wettkampfid'])){ # Wettkampf wählen
$query = "SELECT CONCAT(DATE_FORMAT(datum,'%d.%m.%Y'), ' - ', titel) as titel, id
FROM ".DB_PREFIX."wettkaempfe WHERE datum <= NOW() ORDER BY datum DESC";
$_db->holeDaten($query);
$wettkaempfe = $_db->baueArray('titel','id');
$_bahnlaengen = array(
'25' => 'Kurzbahn (25m)',
'50' => 'Langbahn (50m)',
'x' => 'sonstige'
);
if(isset($_POST['weiter1'])){
require_once('func/pruefen.inc.php');
$f = '';
if($_POST['waehlen'] != '-'){ # vorhandenen Wettkampf wählen
$f .= pruefen($_POST['waehlen'],'wertemenge','der gewählte Wettkampf ist ungültig',array_keys($wettkaempfe));
}
else{ # Wettkampf anlegen
$d = &$_POST['anlegen'];
$f .= pruefen($d['titel'],'leer','Der Titel fehlt');
$f .= pruefen($d['titel'],'minlaenge','Der Titel ist zu kurz (min 2 Zeichen)',2);
$f .= pruefen($d['titel'],'maxlaenge','Der Titel ist zu lang (max 100 Zeichen)',100);
$f .= pruefen($d['kurztitel'],'leer','Der Kurztitel fehlt');
$f .= pruefen($d['kurztitel'],'minlaenge','Der Kurztitel ist zu kurz (min 2 Zeichen)',2);
$f .= pruefen($d['kurztitel'],'maxlaenge','Der Kurztitel ist zu lang (max 40 Zeichen)',40);
$f .= pruefen($d['ort'],'maxlaenge','Der Ort ist zu lang (max 30 Zeichen)',30);
$f .= pruefen($d['datum'],'leer','Das Datum fehlt');
$f .= pruefen($d['datum'],'datum','Das Datum ist ungültig');
$f .= pruefen($d['bahnlaenge'],'wertemenge','Die Bahnlänge ist ungültig',array_keys($_bahnlaengen));
}
if(empty($f)){
if($_POST['waehlen'] != '-'){ # vorhandenen Wettkampf wählen
$wkid = $_POST['waehlen'];
}
else{
$query = "INSERT INTO ".DB_PREFIX."wettkaempfe SET
titel = '".text_format($_POST['anlegen']['titel'],'db')."',
kurztitel = '".text_format($_POST['anlegen']['kurztitel'],'db')."',
ort = '".text_format($_POST['anlegen']['ort'],'db')."',
datum = '".text_format($_POST['anlegen']['datum'],'dbdatum')."',
bahnlaenge = '".$_POST['anlegen']['bahnlaenge']."'";
$_db->fuehreQueryAus($query);
$wkid = $_db->ergebnis['insertid'];
}
$query = "SELECT id as wettkampfid, CONCAT(DATE_FORMAT(datum,'%d.%m.%Y'), ' - ', titel) as wettkampftitel, datum as dbdatum
FROM ".DB_PREFIX."wettkaempfe WHERE id = ".$wkid."";
$_db->holeDaten($query);
$_SESSION['zeiteneing_protokoll'] = $_db->holeZeile();
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
else{
$_tmpl->assign('fehler',$f);
$_tmpl->assign('anlegen',$_POST['anlegen']);
}
}
$_tmpl->assign('wettkaempfe',$wettkaempfe);
$_tmpl->assign('_bahnlaengen',$_bahnlaengen);
$_inh .= $_tmpl->fetch('zeiten/52.protokoll-wettkampfwaehlen.inc.html');
}
elseif(!isset($_SESSION['zeiteneing_protokoll']['conf'])){ # Einstellungen setzen
if(isset($_POST['weiter2'])){
$genauigkeit = (isset($_POST['genauigkeit']) and in_array($_POST['genauigkeit'],array('hundertstel','zehntel')))?
$_POST['genauigkeit']:'hundertstel';
$mitgliedersuche = (isset($_POST['mitgliedersuche']) and in_array($_POST['mitgliedersuche'],array('mehrere','ein')))?
$_POST['mitgliedersuche']:'mehrere';
$staffelzwzeiten = (isset($_POST['staffelzwischenzeiten']) and in_array($_POST['staffelzwischenzeiten'],array('aufsummiert','einzelne')))?
$_POST['staffelzwischenzeiten']:'aufsummiert';
$_SESSION['zeiteneing_protokoll']['conf'] = array(
'genauigkeit' => $genauigkeit,
'mitgliedersuche' => $mitgliedersuche,
'staffelzwischenzeiten' => $staffelzwzeiten
);
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
$_inh .= $_tmpl->fetch('zeiten/52.protokoll-einstellungen.inc.html');
}
elseif(!isset($_SESSION['zeiteneing_protokoll']['strecke'])){ # Strecke wählen
if(isset($_POST['weiter3'])){
require_once('func/pruefen.inc.php');
$f = '';
$f .= pruefen($_POST['anzahl'],'leer','Die Schwimmeranzahl fehlt');
$f .= pruefen($_POST['anzahl'],'zahl','Die Schwimmeranzahl ist ungültig');
if($_POST['anzahl'] < 1 or $_POST['anzahl'] > 20){
$f .= 'Die Schwimmeranzahl muss zwischen 1 und 20 liegen';
}
$f .= pruefen($_POST['laenge'],'leer','Die Streckenlänge fehlt');
$f .= pruefen($_POST['laenge'],'wertemenge','Die Streckenlänge ist ungültig',array_keys($_laengen));
$f .= pruefen($_POST['lage'],'leer','Die Lage fehlt');
$f .= pruefen($_POST['lage'],'wertemenge','Die Lage ist ungültig',array_keys($_lagen));
$f .= pruefen($_POST['mw'],'leer','Das Geschlecht fehlt');
$f .= pruefen($_POST['mw'],'wertemenge','Das Geschlecht ist ungültig',array_keys($_geschlechter));
if($_POST['anzahl'] == 1 and $_POST['mw'] == 'x'){
$f .= 'Das Geschlecht darf nur bei Staffeln mixed sein';
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
}
else{
$_SESSION['zeiteneing_protokoll']['strecke'] = array(
'laenge' => $_POST['laenge'],
'lage' => $_POST['lage'],
'mw' => $_POST['mw']
);
if($_POST['anzahl'] > 1){
$_SESSION['zeiteneing_protokoll']['strecke']['staffelschwimmer'] = $_POST['anzahl'];
$_SESSION['zeiteneing_protokoll']['staffelzeiten'] = array();
for($i=1;$i<=$_POST['anzahl'];$i++){
$_SESSION['zeiteneing_protokoll']['staffelzeiten'][$i] = array('zeit' => '','mid' => '');
}
}
else{
# vorhandene Zeiten holen
$s = $_SESSION['zeiteneing_protokoll']['strecke'];
$query = "SELECT m.id as id, CONCAT(m.nachname,', ',m.vorname,' (',m.mw,', ',YEAR(gebdatum),')') as name, z.zeit
FROM ".DB_PREFIX."zeiten as z LEFT JOIN ".DB_PREFIX."staffeln_zeiten as sz ON z.id=sz.zeitid, ".DB_PREFIX."mitglieder as m
WHERE z.mitgliedid = m.id AND wettkampfid = ".$_SESSION['zeiteneing_protokoll']['wettkampfid']." AND
disziplin = ".$s['lage']." AND streckenlaenge = ".$s['laenge']." AND m.mw = '".$s['mw']."' AND staffelid IS NULL
ORDER BY nachname, vorname";
$_db->holeDaten($query);
if($_db->ergebnis['anzahl'] > 0){
$daten = array();
$ids = array();
foreach($_db->ergebnis['daten'] as $row){
$ids[] = $row['id'];
$daten[$row['id']] = $row['name'].' - '.text_format($row['zeit'],'schwimmzeit');
}
$_SESSION['zeiteneing_protokoll']['vorhandene_zeiten'] = $daten;
$_SESSION['zeiteneing_protokoll']['vorhandene_ids'] = $ids;
}
else{
$_SESSION['zeiteneing_protokoll']['vorhandene_zeiten'] = array();
$_SESSION['zeiteneing_protokoll']['vorhandene_ids'] = array();
}
}
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
}
$_tmpl->assign('_laengen',$_laengen);
$_tmpl->assign('_lagen',$_lagen);
$_tmpl->assign('_geschlechter',$_geschlechter);
$_inh .= $_tmpl->fetch('zeiten/52.protokoll-wkwaehlen.inc.html');
}
else{ # Zeiten eingeben
$dat = &$_SESSION['zeiteneing_protokoll'];
if(isset($_POST['wkzureucksetzen'])){ # Strecke zurücksetzen
unset($dat['strecke']);
unset($dat['vorhandene_zeiten']);
unset($dat['vorhandene_ids']);
if(isset($dat['zeiten'])){
unset($dat['zeiten']);
}
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
if(isset($_POST['zeiteneingeben'])){ # von Mitgliedersuche auf Zeiteneingabe umschalten
unset($dat['mitgliederwaehlen']);
}
if(isset($_POST['mitgliedwaehlen'])){ # von Zeiteneingabe auf Mitgliedersuche umschalten (dabei ggf. eingegebene Daten sichern)
if(isset($dat['strecke']['staffelschwimmer']) and isset($_POST['staffelzeiten'])){
require_once('func/pruefen.inc.php');
foreach($_POST['staffelzeiten'] as $i => $zeit){
if($dat['strecke']['mw'] == 'x' and (in_array($zeit['mid'],array_keys($dat['kader']['m'])) or in_array($zeit['mid'],array_keys($dat['kader']['w'])))){
$dat['staffelzeiten'][$i]['mid'] = $zeit['mid'];
}
elseif(in_array($zeit['mid'],array_keys($dat['kader'][$dat['strecke']['mw']]))){
$dat['staffelzeiten'][$i]['mid'] = $zeit['mid'];
}
if(empty($zeit['zeit'])){
continue;
}
if($dat['conf']['genauigkeit']=='zehntel' and substr($zeit['zeit'],-1) != '0'){
$zeit['zeit'] .= '0';
}
pruefen($zeit['zeit'],'schwimmzeit','-');
$dat['staffelzeiten'][$i]['zeit'] = $zeit['zeit'];
}
if(!isset($dat['staffeldaten'])){
$dat['staffeldaten'] = array();
}
if(!empty($_POST['staffeldaten']['geszeit'])){
pruefen($_POST['staffeldaten']['geszeit'],'schwimmzeit','-');
$dat['staffeldaten']['geszeit'] = $_POST['staffeldaten']['geszeit'];
}
if(isset($_POST['staffeldaten']['weitere'])){
$dat['staffeldaten']['weitere'] = 1;
}
elseif(isset($dat['staffeldaten']['weitere'])){
unset($dat['staffeldaten']['weitere']);
}
}
if(isset($_POST['zeiten']) and is_array($_POST['zeiten'])){
require_once('func/pruefen.inc.php');
if(!isset($dat['zeiten'])){
$dat['zeiten'] = array();
}
foreach($_POST['zeiten'] as $mid => $zeit){
if(!in_array($mid,array_keys($dat['kader'][$dat['strecke']['mw']])) or empty($zeit)){
continue;
}
if($dat['conf']['genauigkeit']=='zehntel' and substr($zeit,-1) != '0'){
$zeit .= '0';
}
pruefen($zeit,'schwimmzeit','-');
$dat['zeiten'][$mid] = $zeit;
}
}
$dat['mitgliederwaehlen'] = 1;
}
if(isset($dat['mitgliederwaehlen'])){
if(isset($_GET['id'])){
$query = "SELECT id, CONCAT(nachname,', ',vorname,' (',mw,', ',YEAR(gebdatum),')') as name, mw
FROM ".DB_PREFIX."mitglieder WHERE id = '".text_format($_GET['id'],'id')."'";
$_db->holeDaten($query);
if($_db->holeAnzahl() == 1){
$row = $_db->holeZeile();
$dat['kader'][$row['mw']][$row['id']] = $row['name'];
asort($dat['kader'][$row['mw']]);
if($dat['conf']['mitgliedersuche'] == 'ein'){
unset($dat['mitgliederwaehlen']);
weiterleiten('/zeiten/eingeben.html?aktion=protokoll','Das Mitglied wurde gespeichert');
}
else{
$_SESSION['hinweis'] = 'Das Mitglied wurde gespeichert';
}
}
}
require_once('func/mitgliedwaehlen.inc.php');
$_inh .= mitgliedwaehlen('/zeiten/eingeben.html', 'aktion=protokoll');
$_inh .= '
';
break;
}
if(isset($dat['strecke']['staffelschwimmer'])){ # Staffel
if(isset($_POST['staffelzeiten'])){
require_once('func/pruefen.inc.php');
$f = '';
foreach($_POST['staffelzeiten'] as $i => $zeit){
if($dat['strecke']['mw'] == 'x' and (in_array($zeit['mid'],array_keys($dat['kader']['m'])) or in_array($zeit['mid'],array_keys($dat['kader']['w'])))){
$dat['staffelzeiten'][$i]['mid'] = $zeit['mid'];
}
elseif(in_array($zeit['mid'],array_keys($dat['kader'][$dat['strecke']['mw']]))){
$dat['staffelzeiten'][$i]['mid'] = $zeit['mid'];
}
if(empty($zeit)){
continue;
}
if($dat['conf']['genauigkeit']=='zehntel' and substr($zeit['zeit'],-1) != '0'){
$zeit['zeit'] .= '0';
}
$f .= pruefen($zeit['zeit'],'schwimmzeit','mindestens eine Zeit ist ungültig');
$dat['staffelzeiten'][$i]['zeit'] = $zeit['zeit'];
}
if(!isset($dat['staffeldaten'])){
$dat['staffeldaten'] = array();
}
if(!empty($_POST['staffeldaten']['geszeit']) and (int)$_POST['staffeldaten']['geszeit'] != 0){
if($dat['conf']['genauigkeit']=='zehntel' and substr($_POST['staffeldaten']['geszeit'],-1) != '0'){
$_POST['staffeldaten']['geszeit'] .= '0';
}
$f .= pruefen($_POST['staffeldaten']['geszeit'],'schwimmzeit','die Gesamtzeit ist ungültig');
$dat['staffeldaten']['geszeit'] = $_POST['staffeldaten']['geszeit'];
}
if(isset($_POST['staffeldaten']['weitere'])){
$dat['staffeldaten']['weitere'] = 1;
}
elseif(isset($dat['staffeldaten']['weitere'])){
unset($dat['staffeldaten']['weitere']);
}
# prüfen
$zwzeiten = $dat['conf']['staffelzwischenzeiten'];
# Gesamtzeit
$f .= pruefen($dat['staffeldaten']['geszeit'], 'leer', 'Die Gesamtzeit fehlt');
# Zwischenzeiten
$schwimmer = array();
$angegebenenzwischenzeiten = 0;
$startzeit = 0;
foreach($dat['staffelzeiten'] as $i => $zeit){
if(!empty($zeit['zeit'])){
$angegebenenzwischenzeiten++;
}
if($zeit['zeit'] > $dat['staffeldaten']['geszeit']){
$f .= 'Die Zwischenzeiten dürfen nicht größer sein als die Gesamtzeit
';
}
if(empty($zeit['mid'])){
$f .= 'Es müssen alle Schwimmer ausgewählt werden
';
}
else{
if(in_array($zeit['mid'],$schwimmer)){
$f .= 'Jeder Schwimmer kann nur einmal in der Staffel schwimmen
';
}
$schwimmer[] = $zeit['mid'];
}
if($zwzeiten == 'aufsummiert'){
if($i == 1){ # Startschwimmer
# keine Prüfung, nur Zeit an $startzeit zuweisen
$startzeit = $zeit['zeit'];
}
else{
if($zeit['zeit'] <= $startzeit){
$f .= 'Die Zwischenzeit eines Schwimmers muss kleiner sein als die des Vorgängers
';
}
if(!isset($dat['staffelzeiten'][($i+1)]) and $zeit['zeit'] != $dat['staffeldaten']['geszeit']){
$f .= 'Die Zeit des letzten Schwimmers muss der Gesamtzeit entsprechen
';
}
$startzeit = $zeit['zeit'];
}
}
else{
$startzeit += $zeit['zeit'];
}
}
if($zwzeiten == 'aufsummiert' and $angegebenenzwischenzeiten < $dat['strecke']['staffelschwimmer']){
$f .= 'Es müssen alle Zwischenzeiten angegeben werden
';
}
if($zwzeiten == 'einzelne'){
if($angegebenenzwischenzeiten > $dat['strecke']['staffelschwimmer']){
$f .= 'Es sind zu viele Zwischenzeiten angegeben';
}
if($angegebenenzwischenzeiten <= $dat['strecke']['staffelschwimmer'] and $startzeit > $dat['staffeldaten']['geszeit']){
$f .= 'Die Summe der Einzelzeiten ist größer als die Gesamtzeit';
}
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
}
else{
# Staffel
$query = "INSERT INTO ".DB_PREFIX."staffeln SET
wettkampfid = ".$dat['wettkampfid'].",
disziplin = ".$dat['strecke']['lage'].",
anzahl = ".$_SESSION['zeiteneing_protokoll']['strecke']['staffelschwimmer'].",
laenge = ".$dat['strecke']['laenge'].",
mw = '".$_SESSION['zeiteneing_protokoll']['strecke']['mw']."',
gesamtzeit = ".$dat['staffeldaten']['geszeit']."";
$_db->fuehreQueryAus($query);
$staffelid = $_db->ergebnis['insertid'];
$vorher = 0;
$lagen2einzel = array(1=>3,2=>2,3=>4,4=>1);
# einzelne Zeiten
foreach($dat['staffelzeiten'] as $i => $s){
if($zwzeiten=='aufsummiert' and !empty($s['zeit'])){
$zeit = $s['zeit']-$vorher;
$vorher = $s['zeit'];
}
elseif(!empty($s['zeit'])){
$zeit = $s['zeit'];
}
else{
$zeit = 'NULL';
}
if($dat['strecke']['lage'] == 5){
$disziplin = $lagen2einzel[$i];
}
else{
$disziplin = $dat['strecke']['lage'];
}
$query = "INSERT INTO ".DB_PREFIX."zeiten SET
mitgliedid = ".$s['mid'].",
datum = '".$dat['dbdatum']."',
zeit = ".$zeit.",
disziplin = ".$disziplin.",
streckenlaenge = ".$dat['strecke']['laenge'].",
wettkampfid = ".$dat['wettkampfid'].",
bestenliste = ".($i==1?1:0)."";
$_db->fuehreQueryAus($query);
$zeitid = $_db->ergebnis['insertid'];
$query = "INSERT INTO ".DB_PREFIX."staffeln_zeiten SET
staffelid = ".$staffelid.",
zeitid = ".$zeitid.",
schwimmernr = ".$i."";
$_db->fuehreQueryAus($query);
$dat['staffelzeiten'][$i] = array('mid'=>'','zeit'=>'');
}
if(isset($dat['staffeldaten']['weitere'])){
$dat['staffeldaten']['geszeit'] = '';
}
else{
unset($dat['staffeldaten']);
unset($dat['staffelzeiten']);
unset($dat['strecke']);
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
}
}
$eingebbare = array();
if($dat['strecke']['mw'] == 'x'){
if(isset($dat['kader']['w'])){
$eingebbare += $dat['kader']['w'];
}
if(isset($dat['kader']['m'])){
$eingebbare += $dat['kader']['m'];
}
}
elseif(isset($dat['kader'][$dat['strecke']['mw']])){
if(isset($dat['kader'][$dat['strecke']['mw']])){
$eingebbare = $dat['kader'][$dat['strecke']['mw']];
}
}
if(count($eingebbare)<$dat['strecke']['staffelschwimmer']){
$dat['mitgliederwaehlen'] = 1;
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
if(isset($dat['staffeldaten'])){
$_tmpl->assign('staffeldaten',$dat['staffeldaten']);
}
$_tmpl->assign('zeiten',$dat['staffelzeiten']);
$_tmpl->assign('eingebbare',$eingebbare);
}
else{ # Einzelstrecke
if(isset($_POST['zeiten']) and is_array($_POST['zeiten'])){
if(!isset($dat['zeiten'])){
$dat['zeiten'] = array();
}
require_once('func/pruefen.inc.php');
$querys = array();
$f = '';
foreach($_POST['zeiten'] as $mid => $zeit){
if(!in_array($mid,array_keys($dat['kader'][$dat['strecke']['mw']])) or empty($zeit)){
unset($_POST['zeiten'][$mid]);
continue;
}
if($dat['conf']['genauigkeit']=='zehntel' and substr($zeit,-1) != '0'){
$zeit .= '0';
}
$f .= pruefen($zeit,'schwimmzeit','mindestens eine Zeit ist ungültig');
$dat['zeiten'][$mid] = $zeit;
}
if(empty($f)){
foreach($_POST['zeiten'] as $mid => $zeit){
$querys[] = "INSERT INTO ".DB_PREFIX."zeiten (mitgliedid, datum, zeit, disziplin, streckenlaenge, wettkampfid, bestenliste)
VALUES (".$mid.", '".$dat['dbdatum']."', ".$dat['zeiten'][$mid].", ".$dat['strecke']['lage'].",
".$dat['strecke']['laenge'].", ".$dat['wettkampfid'].", 1)";
}
if(count($querys)>0){
foreach($querys as $query){
$_db->fuehreQueryAus($query);
}
}
unset($dat['strecke']);
unset($dat['vorhandene_zeiten']);
unset($dat['vorhandene_ids']);
if(isset($dat['zeiten'])){
unset($dat['zeiten']);
}
weiterleiten('/zeiten/eingeben.html?aktion=protokoll','die Zeiten wurden gespeichert');
}
else{
$_tmpl->assign('fehler',$f);
}
}
$_tmpl->assign('vorhandene',$dat['vorhandene_zeiten']);
$eingebbare = array();
if(!isset($dat['kader'][$dat['strecke']['mw']])){
$dat['mitgliederwaehlen'] = 1;
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
foreach($dat['kader'][$dat['strecke']['mw']] as $mid => $name){
if(in_array($mid,$dat['vorhandene_ids'])){
continue;
}
else{
$eingebbare[$mid] = $name;
}
}
if(count($eingebbare)<1){
$dat['mitgliederwaehlen'] = 1;
weiterleiten('/zeiten/eingeben.html?aktion=protokoll');
}
if(isset($dat['zeiten'])){
$_tmpl->assign('zeiten',$dat['zeiten']);
}
$_tmpl->assign('eingebbare',$eingebbare);
}
$_tmpl->assign('strecke',(isset($dat['strecke']['staffelschwimmer'])?$dat['strecke']['staffelschwimmer'].'x':'').$dat['strecke']['laenge'].'m '.$_lagen[$dat['strecke']['lage']].' '.$_geschlechter[$dat['strecke']['mw']]);
$_inh .= $_tmpl->fetch('zeiten/52.protokoll-zeiteneingeben.inc.html');
}
break;
case 'staffel':
$_tmpl->assign('ueberschrift','Staffel anlegen');
if(!pruefeRechte('z_eingeben_staffeln')){
$_inh = T_KEINZUGRIFF;
break;
}
if(isset($_GET['wkzuruecksetzen'])){
unset($_SESSION['zeiteneing_staffeln']['wkid']);
unset($_SESSION['zeiteneing_staffeln']['str_wk']);
}
if(!isset($_SESSION['zeiteneing_staffeln']['wkid'])){ # Wettkampf wählen
require_once('class/wettkaempfe.inc.php');
$wk = new wettkaempfe;
$wk->tmpl = $_tmpl;
$wk->db = $_db;
$wk->conf = array('lagen'=>$_lagen,'wkarten'=>$_wkarten,'altersklassen'=>$_altersklassen,'_gleinst'=>$_gleinst);
$wettkaempfe = $wk->holeWettkampfliste(true,'neu','vergangene interpoliertetraining');
if(isset($_POST['wettkampf'])){
$f = '';
if(!in_array($_POST['wettkampf'],array_keys($wettkaempfe))){
$f .= 'Bitte Wettkampf wählen
';
}
if(!ctype_digit($_POST['anzschwimmer']) or $_POST['anzschwimmer'] > 15 or $_POST['anzschwimmer'] < 2){
$f .= 'Die Anzahl der Schwimmer ist ungültig
';
}
if(empty($f)){
$_SESSION['zeiteneing_staffeln']['wkid'] = $_POST['wettkampf'];
$_SESSION['zeiteneing_staffeln']['str_wk'] = $wettkaempfe[$_POST['wettkampf']];
$tmp = array(
'anzschwimmer' => $_POST['anzschwimmer'],
'disziplin' => '',
'laenge' => '',
'gesamtzeit' => '',
'datum' => substr($_SESSION['zeiteneing_staffeln']['str_wk'],-10),
'aufsummiert' => 'aufsummiert',
'_schwimmer' => array()
);
for($i=1;$i<=$_POST['anzschwimmer'];$i++){
$tmp['_schwimmer'][$i] = array(
'nr' => $i,
'mid' => '',
'name' => '',
'zwischenzeit' => ''
);
}
$_SESSION['zeiteneing_staffeln']['daten'] = $tmp;
weiterleiten('/zeiten/eingeben.html?aktion=staffel');
}
else{
$_tmpl->assign('fehler',$f);
}
}
$_tmpl->assign('wettkaempfe',$wettkaempfe);
$_inh .= $_tmpl->fetch('zeiten/52.staffeln-wkwaehlen.inc.html');
break;
}
if(isset($_GET['waehlen'])){
$suchen = true;
if(!isset($_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['waehlen']]) or (isset($_GET['id']) and ctype_digit($_GET['id']))){
$query = "SELECT CONCAT(nachname, ', ', vorname, ' (', mw, ', ', YEAR(gebdatum), ')') as name, mw
FROM ".DB_PREFIX."mitglieder WHERE id = ".$_GET['id']."";
$_db->holeDaten($query);
$suchen = ($_db->ergebnis['anzahl'] != 1);
if(!$suchen){
foreach($_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'] as $row){
if($row['mid'] == $_GET['id']){
$suchen = true;
$_SESSION['hinweis'] = 'Das Mitglied ist bereits in der Staffel eingetragen.';
break;
}
}
if(!$suchen){
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['waehlen']]['mid'] = $_GET['id'];
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['waehlen']]['name'] = $_db->holeWert('name');
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['waehlen']]['mw'] = $_db->holeWert('mw');
}
}
}
if($suchen){
require_once('func/mitgliedwaehlen.inc.php');
$_inh .= mitgliedwaehlen('/zeiten/eingeben.html', 'aktion=staffel&waehlen='.$_GET['waehlen']);
break;
}
}
if(isset($_GET['zuruecksetzen']) and isset($_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['zuruecksetzen']])){
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['zuruecksetzen']]['mid'] = '';
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$_GET['zuruecksetzen']]['name'] = '';
}
$nrarray = range(1,$_SESSION['zeiteneing_staffeln']['daten']['anzschwimmer']);
unset($_lagen[6]);
$conf = array(
'aufsummiert' => array('aufsummiert'=>'aufsummiert','einzeln'=>'einzeln'),
'lagen' => $_lagen
);
if(isset($_POST['post'])){
require_once('func/pruefen.inc.php');
$f = '';
# Disziplin
$tmp = pruefen($_POST['disziplin'], 'wertemenge', 'Die Disziplin ist ungültig', array_keys($conf['lagen']));
if(!empty($tmp)){
$f .= $tmp;
}
else{
$_SESSION['zeiteneing_staffeln']['daten']['disziplin'] = $_POST['disziplin'];
}
# Laenge
$f .= pruefen($_POST['laenge'], 'leer', 'Die Länge fehlt');
$f .= pruefen($_POST['laenge'], 'regexpr', 'Die Länge ist ungültig', '^[1-9][0-9]{1,2}$');
$_SESSION['zeiteneing_staffeln']['daten']['laenge'] = $_POST['laenge'];
# Gesamtzeit
$tmp = '';
$tmp .= pruefen($_POST['gesamtzeit'], 'leer', 'Die Gesamtzeit fehlt');
$tmp .= pruefen($_POST['gesamtzeit'], 'schwimmzeit', 'Die Gesamtzeit ist ungültig');
$_SESSION['zeiteneing_staffeln']['daten']['gesamtzeit'] = $_POST['gesamtzeit'];
$geszeit = empty($tmp)?$_POST['gesamtzeit']:'';
$f .= $tmp;
# aufsummiert
$tmp = pruefen($_POST['aufsummiert'], 'wertemenge', 'Sind die Zwischenzeiten aufsummiert oder Einzelzeiten?', array_keys($conf['aufsummiert']));
if(!empty($tmp)){
$f .= $tmp;
}
else{
$_SESSION['zeiteneing_staffeln']['daten']['aufsummiert'] = $_POST['aufsummiert'];
}
# Datum
$f .= pruefen($_POST['datum'], 'leer', 'Das Datum fehlt');
$f .= pruefen($_POST['datum'], 'datum', 'Das Datum ist ungültig');
$_SESSION['zeiteneing_staffeln']['daten']['datum'] = $_POST['datum'];
# Zwischenzeiten
$zwzeiten = array();
foreach($_POST['_schwimmer'] as $nr => $s){
$tmp = pruefen($_POST['_schwimmer'][$nr]['zwischenzeit'], 'schwimmzeit', 'Die Zwischenzeit für Schwimmer Nr. '.$nr.' ist ungültig');
if(empty($tmp) and !empty($s['zwischenzeit'])){
$zwzeiten[$nr] = $_POST['_schwimmer'][$nr]['zwischenzeit'];
}
else{
$f .= $tmp;
}
if($_POST['_schwimmer'][$nr]['zwischenzeit'] > $_POST['gesamtzeit']){
$f .= 'Die Zwischenzeit von Schwimmer Nr. '.$nr.' ist größer als die Gesamtzeit
';
}
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$nr]['zwischenzeit'] = $_POST['_schwimmer'][$nr]['zwischenzeit'];
$f .= pruefen($_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$nr]['mid'], 'leer', 'Der Schwimmer Nr. '.$nr.' muss noch gewählt werden.');
}
# Zwischenzeiten/Gesamtzeit vergleichen (abhaenging von 'aufsummiert')
if(count($zwzeiten) == $_SESSION['zeiteneing_staffeln']['daten']['anzschwimmer']){
if($_POST['aufsummiert'] == 'einzeln'){
$zwges = 0;
foreach($zwzeiten as $z){
$zwges += $z;
}
if($zwges != $geszeit){
$f .= 'Die Summe der Zwischenzeiten muss die Gesamtsumme ergeben (sie ist um '.text_format(abs($zwges-$geszeit),'schwimmzeit');
$f .= ' zu '.($zwges>$geszeit?'groß':'klein').')
';
}
}
else{
if($zwzeiten[$_SESSION['zeiteneing_staffeln']['daten']['anzschwimmer']] != $geszeit){
$f .= 'Die Zwischenzeit des letzten Schwimmers muss der Gesamtzeit entsprechen
';
}
$tmp = 0;
foreach($zwzeiten as $nr => $zeit){
if($zeit < $tmp){
$f .= 'Die Zwischenzeit des Schwimmers '.$nr.' darf nicht kleiner sein als die des Schwimmers '.($nr-1).'
';
}
$tmp = $zeit;
}
}
}
elseif($_POST['aufsummiert'] == 'einzeln' and count($zwzeiten) > 0 and !empty($geszeit)){
$zwges = 0;
foreach($zwzeiten as $z){
$zwges += $z;
}
if($zwges > $geszeit){
$f .= 'Die Summe der Zwischenzeiten kann nicht größer sein als die Gesamtzeit
';
}
}
elseif($_POST['aufsummiert'] == 'aufsummiert' and count($zwzeiten) > 0){
$f .= 'Bei aufsummierten Zwischenzeiten müssen alle Zwischenzeiten angegeben werden.
';
}
if(empty($f)){
$datum = text_format($_SESSION['zeiteneing_staffeln']['daten']['datum'],'dbdatum');
# Staffel
# Geschlecht der Staffel bestimmen
$_mw = '';
foreach($_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'] as $s){
if(empty($_mw)){
$_mw = $s['mw'];
}
if($_mw != $s['mw']){
$_mw = 'x';
break;
}
}
# Staffel eintragen
$query = "INSERT INTO ".DB_PREFIX."staffeln SET
wettkampfid = ".$_SESSION['zeiteneing_staffeln']['wkid'].",
disziplin = ".$_SESSION['zeiteneing_staffeln']['daten']['disziplin'].",
anzahl = ".$_SESSION['zeiteneing_staffeln']['daten']['anzschwimmer'].",
laenge = ".$_SESSION['zeiteneing_staffeln']['daten']['laenge'].",
mw = '".$_mw."',
gesamtzeit = ".$_SESSION['zeiteneing_staffeln']['daten']['gesamtzeit']."";
$_db->fuehreQueryAus($query);
$staffelid = $_db->ergebnis['insertid'];
$vorher = 0;
$lagen2einzel = array(1=>3,2=>2,3=>4,4=>1);
# einzelne Zeiten
foreach($_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'] as $s){
if($_SESSION['zeiteneing_staffeln']['daten']['aufsummiert']=='aufsummiert' and !empty($s['zwischenzeit'])){
$zeit = $s['zwischenzeit']-$vorher;
$vorher = $s['zwischenzeit'];
}
elseif(!empty($s['zwischenzeit'])){
$zeit = $s['zwischenzeit'];
}
else{
$zeit = 'NULL';
}
if($_SESSION['zeiteneing_staffeln']['daten']['disziplin'] == 5){
$disziplin = $lagen2einzel[$s['nr']];
}
else{
$disziplin = $_SESSION['zeiteneing_staffeln']['daten']['disziplin'];
}
$query = "INSERT INTO ".DB_PREFIX."zeiten SET
mitgliedid = ".$s['mid'].",
datum = '".$datum."',
zeit = ".$zeit.",
disziplin = ".$disziplin.",
streckenlaenge = ".$_SESSION['zeiteneing_staffeln']['daten']['laenge'].",
wettkampfid = ".$_SESSION['zeiteneing_staffeln']['wkid'].",
bestenliste = ".($s['nr']==1?1:0)."";
$_db->fuehreQueryAus($query);
$zeitid = $_db->ergebnis['insertid'];
$query = "INSERT INTO ".DB_PREFIX."staffeln_zeiten SET
staffelid = ".$staffelid.",
zeitid = ".$zeitid.",
schwimmernr = ".$s['nr']."";
$_db->fuehreQueryAus($query);
$_SESSION['zeiteneing_staffeln']['daten']['_schwimmer'][$s['nr']] = array('nr'=>$s['nr'],'mid'=>'','name'=>'','zwischenzeit'=>'');
}
$_SESSION['zeiteneing_staffeln']['daten']['gesamtzeit'] = '';
weiterleiten('/zeiten/eingeben.html?aktion=staffel','Die Staffel wurde gespeichert.');
}
else{
$_tmpl->assign('fehler',$f);
}
}
$_tmpl->assign('aufsummiert',$conf['aufsummiert']);
$_tmpl->assign('daten',$_SESSION['zeiteneing_staffeln']['daten']);
$_tmpl->assign('lagen',$conf['lagen']);
$_inh .= $_tmpl->fetch('zeiten/52.staffeln-formular.inc.html');
break;
case 'einzelne':
if(!pruefeRechte('z_eingeben_einzelne')){
$_inh = T_KEINZUGRIFF;
break;
}
$_tmpl->assign('ueberschrift','Zeiten eingeben (einzelne Zeiten)');
if(isset($_GET['wechseln']) and isset($_SESSION['zeiteneing'])){
switch($_GET['wechseln']){
case 'mitgliedwechseln':
unset($_SESSION['zeiteneing']['mid']);
unset($_SESSION['zeiteneing']['str_m']);
break;
case 'wettkampfwechseln':
unset($_SESSION['zeiteneing']['wkid']);
unset($_SESSION['zeiteneing']['str_wk']);
break;
default:
break;
}
}
if(!isset($_SESSION['zeiteneing']['wkid'])){ # Wettkampf wählen
require_once('class/wettkaempfe.inc.php');
$wk = new wettkaempfe;
$wk->tmpl = &$_tmpl;
$wk->db = &$_db;
$wk->conf = array('lagen'=>$_lagen,'wkarten'=>$_wkarten,'altersklassen'=>$_altersklassen);
$wettkaempfe = $wk->holeWettkampfliste(true,'neu','vergangene nurwettkaempfe');
$wettkaempfe[2] = 'interpolierte Zeiten';
$wettkaempfe[3] = 'Trainingszeiten';
$wettkaempfe[7] = 'Rekordversuche (25m-Bahn)';
$wettkaempfe[8] = 'Trainingszeiten (50m-Bahn)';
if(isset($_POST['wettkampf']) and $_POST['wettkampf'] != 0 and in_array($_POST['wettkampf'],array_keys($wettkaempfe))){
$_SESSION['zeiteneing']['wkid'] = $_POST['wettkampf'];
$_SESSION['zeiteneing']['str_wk'] = $wettkaempfe[$_POST['wettkampf']];
weiterleiten('/zeiten/eingeben.html?aktion=einzelne');
if(isset($_SESSION['zeiteneing']['daten'])){
list(,$_SESSION['zeiteneing']['daten']['datum']) = explode(' - ',$_SESSION['zeiteneing']['str_wk']);
}
}
unset($wettkaempfe[2],$wettkaempfe[3]);
$_tmpl->assign('wettkaempfe',$wettkaempfe);
$_inh .= $_tmpl->fetch('zeiten/52.eingeben-einzelne-wettkampfwaehlen.inc.html');
}
elseif(!isset($_SESSION['zeiteneing']['mid'])){ # Mitglied wählen
require_once('func/mitgliedwaehlen.inc.php');
$_inh .= mitgliedwaehlen('/zeiten/eingeben.html', 'aktion=einzelne');
if(isset($_GET['id']) and preg_match('~^[0-9]+$~',$_GET['id'])){
$_SESSION['zeiteneing']['mid'] = $_GET['id'];
$query = "SELECT CONCAT(vorname,' ',nachname) as name FROM ".DB_PREFIX."mitglieder WHERE id = ".$_GET['id']."";
$_db->holeDaten($query);
$_SESSION['zeiteneing']['str_m'] = $_db->holeWert();
weiterleiten('/zeiten/eingeben.html?aktion=einzelne');
}
}
else{ # Zeit eingeben
if(!isset($_SESSION['zeiteneing']['daten'])){
$_SESSION['zeiteneing']['daten'] = array();
$_SESSION['zeiteneing']['daten']['laenge'] = 100;
if($_SESSION['zeiteneing']['wkid'] < 10){
$_SESSION['zeiteneing']['daten']['datum'] = date('d.m.Y');
}
else{
list(,$_SESSION['zeiteneing']['daten']['datum']) = explode(' - ',$_SESSION['zeiteneing']['str_wk']);
}
}
$laengen = array(
25 => '25m',
50 => '50m',
100 => '100m',
200 => '200m',
400 => '400m',
800 => '800m',
1500 => '1500m'
);
if(!isset($_POST['speichern'])){
$_tmpl->assign('daten',$_SESSION['zeiteneing']['daten']);
}
else{
require_once('func/pruefen.inc.php');
$f = '';
$f .= pruefen($_POST['datum'],'leer','Das Datum fehlt');
$f .= pruefen($_POST['datum'],'datum','Das Datum ist ungültig');
if(isset($_POST['disziplin']) and $_POST['disziplin'] != 0){
$f .= pruefen($_POST['disziplin'],'wertemenge','Die Disziplin ist ungültig oder fehlt',array_keys($_lagen));
}
else{
$f .= 'Die Disziplin fehlt
';
}
if(isset($_POST['laenge']) and $_POST['laenge'] != 0){
$f .= pruefen($_POST['laenge'],'ungleich','Die Streckenlänge fehlt',0);
}
else{
$f .= pruefen($_POST['laenge'],'wertemenge','Die Streckenlänge ist ungültig oder fehlt',array_keys($laengen));
}
$f .= pruefen($_POST['zeit'],'leer','Die Zeit fehlt');
$f .= pruefen($_POST['zeit'],'schwimmzeit','Die Zeit ist ungültig','wert');
if(!empty($f)){
$_tmpl->assign('fehler',$f);
$_tmpl->assign('daten',$_POST);
}
else{
$bestenliste = $_SESSION['zeiteneing']['wkid']<5?0:1;
$query = "INSERT INTO ".DB_PREFIX."zeiten (mitgliedid, datum, zeit, disziplin, streckenlaenge, wettkampfid, bestenliste) VALUES
(".$_SESSION['zeiteneing']['mid'].", '".text_format($_POST['datum'],'dbdatum')."', ".$_POST['zeit'].",
".$_POST['disziplin'].", ".$_POST['laenge'].", ".$_SESSION['zeiteneing']['wkid'].", ".$bestenliste.")";
$_db->fuehreQueryAus($query);
unset($_POST['zeit']);
$_SESSION['zeiteneing']['daten'] = $_POST;
weiterleiten('/zeiten/eingeben.html?aktion=einzelne','Die Zeit wurde gespeichert');
}
}
$_tmpl->assign('laengen',$laengen);
$_tmpl->assign('lagen',$_lagen);
$_inh .= $_tmpl->fetch('zeiten/52.eingeben-einzelne-formular.inc.html');
}
break;
case 'trainingsgruppe':
if(!pruefeRechte('z_eingeben_trainingsgruppe')){
$_inh = T_KEINZUGRIFF;
break;
}
$_tmpl->assign('ueberschrift','Zeiten eingeben (Trainingszeiten für eine Trainingsgruppe)');
require_once('func/holetrainingsgruppen.inc.php');
$trainingsgruppen = holeTrainingsgruppen(true);
$strecken = array(
'50_1' => '50 '.$_lagen[1],
'100_1' => '100 '.$_lagen[1],
'200_1' => '200 '.$_lagen[1],
'400_1' => '400 '.$_lagen[1],
'800_1' => '800 '.$_lagen[1],
'1500_1' => '1500 '.$_lagen[1],
'50_2' => '50 '.$_lagen[2],
'100_2' => '100 '.$_lagen[2],
'200_2' => '200 '.$_lagen[2],
'50_3' => '50 '.$_lagen[3],
'100_3' => '100 '.$_lagen[3],
'200_3' => '200 '.$_lagen[3],
'50_4' => '50 '.$_lagen[4],
'100_4' => '100 '.$_lagen[4],
'200_4' => '200 '.$_lagen[4],
'100_5' => '100 '.$_lagen[5],
'200_5' => '200 '.$_lagen[5],
'400_5' => '400 '.$_lagen[5]
);
$_tmpl->assign('trainingsgruppen',$trainingsgruppen);
$_tmpl->assign('strecken',$strecken);
if(!isset($_POST['trainingsgruppe']) or !in_array($_POST['trainingsgruppe'],array_keys($trainingsgruppen)) or !isset($_POST['strecken'])){
$_inh .= $_tmpl->fetch('zeiten/52.eingeben-trainingsgruppe-auswaehlen.inc.html');
}
else{
foreach($_POST['strecken'] as $strecke){
if(!in_array($strecke,array_keys($strecken))){
weiterleiten('/zeiten/eingeben.html?aktion=trainingsgruppe','eine oder mehrere Strecken war(en) ungültig');
}
}
$query = "SELECT id, nachname, vorname, mw, YEAR(gebdatum) as jg
FROM ".DB_PREFIX."mitglieder as m, ".DB_PREFIX."mitglieder_trainingsgruppen as mt
WHERE mt.mitgliedid=m.id AND mt.trainingsgruppenid = ".$_POST['trainingsgruppe']."
ORDER BY nachname, vorname";
$_db->holeDaten($query);
$mitglieder = $_db->baueArray('*','id');
if(!isset($_POST['speichern'])){
foreach($mitglieder as $mid => $row){
$mitglieder[$mid]['_zeiten'] = array();
foreach($_POST['strecken'] as $strecke){
$mitglieder[$mid]['_zeiten'][$strecke] = '';
}
}
}
else{
require_once('func/pruefen.inc.php');
$f = '';
foreach($_POST['zeiten'] as $mid => $mzeiten){
foreach($mzeiten as $strecke => $zeit){
$tmp = pruefen($zeit,'schwimmzeit','Die Zeit »'.text_format($zeit,'htmlmaskieren').'« ist ungültig');
if(!empty($tmp)){
$zeit .= ',0';
$tmp = pruefen($zeit,'schwimmzeit','Die Zeit »'.text_format(substr($zeit,0,-2),'htmlmaskieren').'« ist ungültig');
if(!empty($tmp)){
$f .= $tmp;
}
else{
$_POST['zeiten'][$mid][$strecke] = $zeit;
}
}
else{
$_POST['zeiten'][$mid][$strecke] = $zeit;
}
}
}
$f .= pruefen($_POST['datum'],'leer','Das Datum der Zeiten fehlt');
$f .= pruefen($_POST['datum'],'datum','Das Datum der Zeiten ist ungültig');
foreach($mitglieder as $mid => $row){
$mitglieder[$mid]['_zeiten'] = array();
foreach($_POST['strecken'] as $strecke){
$mitglieder[$mid]['_zeiten'][$strecke] = text_format($_POST['zeiten'][$mid][$strecke],'schwimmzeit');
}
}
if(empty($f)){
$queryteile = array();
$datum = text_format($_POST['datum'],'dbdatum');
foreach($_POST['zeiten'] as $mid => $zeiten){
foreach($zeiten as $strecke => $zeit){
if(empty($zeit)){
continue;
}
pruefen($zeit,'schwimmzeit','-');
list($laenge,$disziplin) = explode('_',$strecke,2);
$queryteile[] = "(".$mid.", '".$datum."', ".$zeit.", ".$disziplin.", ".$laenge.", 3, 0)";
}
}
$anz = count($queryteile);
if($anz == 0){
weiterleiten('/zeiten/eingeben.html?aktion=trainingsgruppe','Es wurden keine Zeiten eingegeben');
}
$query = "INSERT INTO ".DB_PREFIX."zeiten (mitgliedid, datum, zeit, disziplin, streckenlaenge, wettkampfid, bestenliste) VALUES ";
$query .= implode(', ',$queryteile);
$_db->fuehreQueryAus($query);
weiterleiten('/zeiten/eingeben.html?aktion=trainingsgruppe','es wurde'.($anz==1?' 1 Zeit':'n '.$anz.' Zeiten').' gespeichert');
}
else{
$_tmpl->assign('fehler',$f);
}
}
$_tmpl->assign('mitglieder',$mitglieder);
$_inh .= $_tmpl->fetch('zeiten/52.eingeben-trainingsgruppe-formular.inc.html');
}
break;
default:
$_inh .= $_tmpl->fetch('zeiten/52.eingeben-index.inc.html');
break;
}
} # Ende Rechte-else, EOF
?>