assign('ueberschrift','Wettkampf anlegen');
if(!$erlaubt){
$_inh = T_KEINZUGRIFF;
}
else{
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);
$_tmpl->assign('_modus','anlegen');
if(isset($_GET['art']) and $_GET['art'] == 'dsvdatei'){
if(!isset($_SESSION['dsvdateieinlesen'])){
$dateien = parse_ini_file(PFAD_INIDATEIEN.'dateien_tmp.ini');
$anzeigen = array();
foreach($dateien as $datei => $daten){
if(substr(strtolower($daten),-4) != '.dsv'){
continue;
}
list(,$userid,$dateiname) = explode('|',$daten);
if($userid != $_SESSION['user']['id'] and !prueferechte('s_dateien_rootzugriff')){
continue;
}
$anzeigen[$datei] = $dateiname;
}
if(isset($_POST['datei']) and in_array($_POST['datei'], array_keys($anzeigen))){
require_once('class/dsv.inc.php');
$_dsv = new dsv;
$erg = $_dsv->leseDateiEin(PFAD_TMP.$_POST['datei']);
if($erg === false){
$_tmpl->assign('fehler', 'Die angegebene Datei ist keine gültige DSV-Datei.');
}
elseif($_dsv->daten['art'] != 'wettkampfdefinitionsliste'){
$_tmpl->assign('fehler', 'Die angegebene Datei ist keine gültige Wettkampfdefinitionsliste.');
}
else{
# Daten zum Speichern vorbereiten
$geparst = array();
# Wettkampf selbst
$sonstiges = '';
$flags = array();
# Ort
$ort = !empty($_dsv->daten['veranstaltungsort']['ort'])?$_dsv->daten['veranstaltungsort']['ort']:$_dsv->daten['veranstaltungsort']['bad'];
# Datum
$datum = array();
foreach($_dsv->daten['abschnitte'] as $abschn){
$datum[] = text_format($abschn['datum'], 'dbdatum');
}
$datum = $datum[0];
# Meldegeld
$meldegelddat = array(
'einzel' => isset($_dsv->daten['meldegeld']['einzelmeldegeld'])?$_dsv->daten['meldegeld']['einzelmeldegeld']:'',
'staffel' => isset($_dsv->daten['meldegeld']['staffelmeldegeld'])?$_dsv->daten['meldegeld']['staffelmeldegeld']:'',
'wks' => isset($_dsv->daten['meldegeld']['wkmeldegeld'])?$_dsv->daten['meldegeld']['wkmeldegeld']:array(),
);
if(isset($_dsv->daten['meldegeld']['meldegeldpauschale']) and $_dsv->daten['meldegeld']['meldegeldpauschale'] != '0,00'){
if(empty($meldegelddat['einzel'])){
$meldegelddat['einzel'] = $_dsv->daten['meldegeld']['meldegeldpauschale'];
$flags['mannschaftsmeldegeld'] = '1';
}
else{
$sonstiges .= 'Meldegeldpauschale: '.$_dsv->daten['meldegeld']['meldegeldpauschale']."\n\n";
}
}
$meldegeld = $wk->parseMeldegeld($meldegelddat,'array_formatieren','db');
$meldegeld = $wk->parseMeldegeld($meldegeld,'db','formular');
# Meldeadresse
$meldeadressedat = array();
require_once('func/pruefen.inc.php');
if(!empty($_dsv->daten['meldeadresse']['telefon'])){
pruefen($_dsv->daten['meldeadresse']['telefon'], 'telefon', '-');
$meldeadressedat[] = 'tel: '.$_dsv->daten['meldeadresse']['telefon'];
}
if(!empty($_dsv->daten['meldeadresse']['fax'])){
pruefen($_dsv->daten['meldeadresse']['fax'], 'telefon', '-');
$meldeadressedat[] = 'fax: '.$_dsv->daten['meldeadresse']['fax'];
}
if(!empty($_dsv->daten['meldeadresse']['email'])){
$meldeadressedat[] = 'email: '.strtolower($_dsv->daten['meldeadresse']['email']);
}
if(!empty($_dsv->daten['meldeadresse']['strasse'])){
$tmp = 'post: ';
if(!empty($_dsv->daten['meldeadresse']['name'])){
if(strpos($_dsv->daten['meldeadresse']['name'], ',') !== false){
list($v, $n) = explode(',', $_dsv->daten['meldeadresse']['name']);
$tmp .= trim($v).' '.trim($n)."\r\n";
}
else{
$tmp .= $_dsv->daten['meldeadresse']['name']."\r\n";
}
}
$tmp .= $_dsv->daten['meldeadresse']['strasse']."\r\n";
$tmp .= $_dsv->daten['meldeadresse']['plz'].' '.$_dsv->daten['meldeadresse']['ort']."\r\n";
$meldeadressedat[] = $tmp;
}
$meldeadresse = implode("\r\n\r\n", $meldeadressedat);
# Sonstiges
if(!empty($_dsv->daten['internetausschreibung'])){
$sonstiges .= 'Ausschreibung im Internet: '.$_dsv->daten['internetausschreibung']."\n\n";
}
if(!empty($_dsv->daten['besonderes'])){
$sonstiges .= 'Besonderes: '.$_dsv->daten['besonderes']."\n\n";
}
# in Array schieben
$geparst['wettkampf'] = array(
'titel' => $_dsv->daten['veranstaltung']['bezeichnung'],
'kurztitel' => '',
'ort' => $ort,
'datum' => $datum,
'bahnlaenge' => $_dsv->daten['veranstaltung']['bahnlaenge'],
'meldeschluss' => text_format($_dsv->daten['meldeschluss']['datum'],'dbdatum').' '.$_dsv->daten['meldeschluss']['uhrzeit'].':00',
'meldegeld' => $meldegeld,
'meldeadresse' => $meldeadresse,
'sonstiges' => trim($sonstiges),
'_flags' => $flags
);
# Abschnitte
$geparst['abschnitte'] = array();
foreach($_dsv->daten['abschnitte'] as $nr => $abschnitt){
$geparst['abschnitte'][$nr] = array(
'nr' => $nr,
'datum' => text_format($abschnitt['datum'], 'dbdatum'),
'beginn' => $abschnitt['zeit'],
'kindgerecht' => 0
);
}
# Wettkämpfe
$geparst['wks'] = array();
$wkart_erlaubt = array('V', 'Z', 'F', 'A', 'E', 'N');
foreach($_dsv->daten['wettkaempfe'] as $nr => $wettk){
$wkart = (empty($wettk['wkart']) or !in_array($wettk['wkart'], $wkart_erlaubt))?'e':strtolower($wettk['wkart']);
$geparst['wks'][$nr] = array(
'wknr' => $nr,
'abschn' => $wettk['abschn'],
'mw' => $wettk['mw'],
'laenge' => $wettk['laenge'],
'disziplin' => $wettk['lage'],
'jahrgang' => $wettk['jahrgaenge'],
'wkart' => $wkart
);
}
# Pflichtzeiten
if(isset($_dsv->daten['pflichtzeiten'])){
$geparst['pflichtzeiten'] = $_dsv->daten['pflichtzeiten'];
}
# speichern und weiterleiten
$_SESSION['dsvdateieinlesen'] = $geparst;
weiterleiten('/wettkaempfe/anlegen.html?art=dsvdatei', 'Die Datei wurde erfolgreich eingelesen');
}
}
$_tmpl->assign('dateien',$anzeigen);
$_inh .= $_tmpl->fetch('wettkaempfe/43.dsvdatei-dateiwaehlen.inc.html');
}
else{
if(isset($_GET['wkzuruecksetzen'])){
unset($_SESSION['dsvdateieinlesen']);
weiterleiten('/wettkaempfe/anlegen.html?art=dsvdatei');
}
$query = "SELECT id, bezeichnung, richtpflicht, offiziell FROM ".DB_PREFIX."pflichtzeiten ORDER BY sort";
$_db->holeDaten($query);
$_pflichtzeiten = $_db->baueArray('*', 'id');
foreach($_pflichtzeiten as $key => $ds){
$_pflichtzeiten[$key] = $ds['bezeichnung'].' ('.($ds['richtpflicht']=='r'?'Richt':'Pflicht').'zeit, '.($ds['offiziell']==1?'':'in').'offiziell)';
}
$_bahnlaengen = array(
'25' => 'Kurzbahn (25m)',
'50' => 'Langbahn (50m)',
'x' => 'sonstige'
);
if(!isset($_POST['anlegen'])){
# Daten sammeln die angezeigt werden müssen
# Wettkampf
$s = &$_SESSION['dsvdateieinlesen'];
$daten = array();
$daten['titel'] = $s['wettkampf']['titel'];
$daten['kurztitel'] = $s['wettkampf']['kurztitel'];
$daten['ort'] = $s['wettkampf']['ort'];
$daten['bahnlaenge'] = $s['wettkampf']['bahnlaenge'];
$daten['meldegeld'] = $s['wettkampf']['meldegeld'];
$daten['_eigenschaften'] = $s['wettkampf']['_flags'];
# Abschnitte
$daten['abschnitte'] = $s['abschnitte'];
# WKs
$nichtmeldbar = 0;
foreach($s['wks'] as $wks){
if($wks['wkart'] == 'e' or $wks['wkart'] == 'v'){
continue;
}
$nichtmeldbar++;
}
$daten['nichtmeldbarewks'] = $nichtmeldbar;
$daten['nichtmeldbarewksanlegen'] = 1;
# Pflichtzeiten
$daten['pflichtzeiten'] = isset($s['pflichtzeiten'])?1:0;
$daten['pflichtzeiten_datensatz'] = '-';
$daten['keinwettkampf'] = 0;
# Sonstiges
$daten['inkalender'] = 1;
$daten['wkabwickeln'] = 0;
}
else{
require_once('func/pruefen.inc.php');
$f = '';
$d = &$_POST['daten'];
# Wettkampf
$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'],'leer','Der Ort fehlt');
$f .= pruefen($d['ort'],'maxlaenge','Der Ort ist zu lang (max 30 Zeichen)',30);
$tmp = $wk->parseMeldegeld($d['meldegeld'],'formular','formular');
if($tmp['einzel']===false or $tmp['staffel']===false or $tmp['wks']===false){
if($tmp['einzel']===false){
$f .= 'Das Meldegeld für den Einzelstart ist ungültig
';
}
if($tmp['staffel']===false){
$f .= 'Das Meldegeld für den Staffelstart ist ungültig
';
}
if($tmp['wks']===false){
$f .= 'Das Meldegeld für einzelne Wettkämpfe ist ungültig
';
}
}
else{
$d['meldegeld'] = $tmp;
}
$f .= pruefen($d['bahnlaenge'],'wertemenge','Die Bahnlänge ist ungültig',array_keys($_bahnlaengen));
# Abschnitt
foreach($d['abschnitte'] as $nr => $abschn){
$f .= pruefen($d['abschnitte'][$nr]['beginn'],'leer','Die Anfangszeit fehlt (Abschnitt '.text_format($nr, 'html').')');
$f .= pruefen($d['abschnitte'][$nr]['beginn'],'uhrzeit','Die Anfangszeit ist ungültig (Abschnitt '.text_format($nr, 'html').')');
}
# Pflichtzeiten
if(isset($d['pflichtzeiten_datensatz'])){
$tmp = pruefen($d['pflichtzeiten_datensatz'], 'wertemenge', '-', array_keys($_pflichtzeiten));
if($d['pflichtzeiten_datensatz'] != 'neu' and $d['pflichtzeiten_datensatz'] != '-' and !empty($tmp)){
$f .= 'Die Angabe in welchem Datensatz die Pflichtzeiten gespeichert werden sollen ist ungültig.
';
}
if(isset($d['keinwettkampf']) and $d['pflichtzeiten_datensatz'] == '-'){
$f .= 'Wenn kein Wettkampf angelegt werden soll und die Pflichtzeiten ignoriert werden sollen gäbe es nichts zum Anlegen
';
}
}
if(empty($f)){
# Daten in ein Array schreiben
$daten = $_SESSION['dsvdateieinlesen'];
$daten['wettkampf']['kurztitel'] = $d['kurztitel'];
$daten['wettkampf']['ort'] = $d['ort'];
$daten['wettkampf']['bahnlaenge'] = $d['bahnlaenge'];
$daten['wettkampf']['meldegeld'] = $d['meldegeld'];
$daten['wettkampf']['_flags']['inkalender'] = isset($d['inkalender']);
$daten['wettkampf']['_flags']['nichtmeldbarewks'] = isset($d['nichtmeldbarewks']);
$daten['wettkampf']['_flags']['wkabwickeln'] = isset($d['wkabwickeln']);
if($d['pflichtzeiten'] == 1){
$daten['wettkampf']['_flags']['keinwettkampf'] = isset($d['keinwettkampf']);
$daten['wettkampf']['_flags']['pflichtzeiten_datensatz'] = $d['pflichtzeiten_datensatz'];
}
if(isset($d['_eigenschaften']) and isset($d['_eigenschaften']['mannschaftsmeldegeld'])){
$daten['wettkampf']['_flags']['mannschaftsmeldegeld'] = 1;
}
foreach($d['abschnitte'] as $nr => $dat){
$daten['abschnitte'][$nr]['beginn'] = $dat['beginn'];
$daten['abschnitte'][$nr]['kindgerecht'] = isset($dat['kindgerecht'])?1:0;
}
$ids = array();
if(!isset($d['keinwettkampf'])){
# Wettkampf selbst anlegen
$query = "INSERT INTO ".DB_PREFIX."wettkaempfe SET
titel = '".text_format($daten['wettkampf']['titel'], 'db')."',
kurztitel = '".text_format($daten['wettkampf']['kurztitel'], 'db')."',
ort = '".text_format($daten['wettkampf']['ort'], 'db')."',
datum = '".text_format($daten['wettkampf']['datum'], 'db')."',
bahnlaenge = '".text_format($daten['wettkampf']['bahnlaenge'], 'db')."',
meldeschluss = '".text_format($daten['wettkampf']['meldeschluss'], 'db')."',
meldegeld = '".$wk->parseMeldegeld($daten['wettkampf']['meldegeld'], 'formular', 'db')."',
meldeadresse = '".text_format($daten['wettkampf']['meldeadresse'], 'db')."',
sonstiges = '".text_format($daten['wettkampf']['sonstiges'], 'db')."',
verzeichnisid = NULL";
$_db->fuehreQueryAus($query);
$ids['wettkampf'] = $_db->ergebnis['insertid'];
# Abschnitte
$ids['abschnitte'] = array();
foreach($daten['abschnitte'] as $nr => $abschn){
$query = "INSERT INTO ".DB_PREFIX."abschnitte SET
wettkampfid = ".$ids['wettkampf'].",
nr = '".text_format($nr, 'db')."',
datum = '".text_format($abschn['datum'], 'db')."',
beginn = '".text_format($abschn['beginn'], 'db').":00',
kindgerecht = ".($abschn['kindgerecht']==1?1:'NULL')."";
$_db->fuehreQueryAus($query);
$ids['abschnitte'][$nr] = $_db->ergebnis['insertid'];
}
# Wettkaempfe
foreach($daten['wks'] as $nr => $wks){
if($daten['wettkampf']['_flags']['nichtmeldbarewks']==1 and !in_array($wks['wkart'], array('e', 'v'))){
continue;
}
$query = "INSERT INTO ".DB_PREFIX."wks SET
abschnittid = ".$ids['abschnitte'][$wks['abschn']].",
wknr = '".text_format($nr, 'db')."',
mw = '".text_format($wks['mw'], 'db')."',
laenge = '".text_format($wks['laenge'], 'db')."',
disziplin = '".text_format($wks['disziplin'], 'db')."',
jahrgang = '".text_format($wks['jahrgang'], 'db')."',
wkart = '".text_format($wks['wkart'], 'db')."'";
$_db->fuehreQueryAus($query);
}
# Sonstiges
if($daten['wettkampf']['_flags']['wkabwickeln'] == 1){
$query = "INSERT INTO ".DB_PREFIX."eigenschaften (art, artid, eigenschaft, wert)
VALUES ('w', '".$ids['wettkampf']."', 'wkabwickeln', '1')";
$_db->fuehreQueryAus($query);
}
if($daten['wettkampf']['_flags']['inkalender'] == 1){
$query = "INSERT INTO ".DB_PREFIX."termine SET
datum = '".$daten['wettkampf']['datum']."',
titel = '".text_format($daten['wettkampf']['titel'],'db')."',
was = ''";
$_db->fuehreQueryAus($query);
$query = "INSERT INTO ".DB_PREFIX."termine SET
datum = '".$daten['wettkampf']['meldeschluss']."',
titel = 'Meldeschluss ".text_format($daten['wettkampf']['kurztitel'],'db')."',
was = ''";
$_db->fuehreQueryAus($query);
}
if(isset($daten['wettkampf']['_flags']['mannschaftsmeldegeld'])){
$query = "INSERT INTO ".DB_PREFIX."eigenschaften (art, artid, eigenschaft, wert)
VALUES ('w', '".$ids['wettkampf']."', 'mannschaftsmeldegeld', '1')";
$_db->fuehreQueryAus($query);
}
}
if(isset($daten['wettkampf']['_flags']['pflichtzeiten_datensatz']) and $daten['wettkampf']['_flags']['pflichtzeiten_datensatz'] != '-'){
$ds = $daten['wettkampf']['_flags']['pflichtzeiten_datensatz'];
if($ds == 'neu'){ # Pflichtzeitensatz anlegen
$query = "INSERT INTO ".DB_PREFIX."pflichtzeiten SET
bezeichnung = '".trim(preg_replace('~(\d*\.?)~', '', $daten['wettkampf']['titel']))."',
richtpflicht = 'p',
offiziell = '1',
sort = 0";
$_db->fuehreQueryAus($query);
$ids['pflichtzeiten'] = $_db->ergebnis['insertid'];
}
else{
$ids['pflichtzeiten'] = $ds;
}
# ggf. bestehende Jahrgänge und Strecken holen und Zeiten löschen
if($ds != 'neu'){
$bestand = array();
$query = "SELECT id, jahrgang, pos FROM ".DB_PREFIX."pflichtzeiten_jahrgaenge WHERE pflichtzeitenid = ".$ds." ORDER BY pos";
$_db->holeDaten($query);
$bestand['jahrgaenge'] = $_db->baueArray('*', 'id');
$query = "SELECT id, CONCAT(disziplin, '_', laenge, '_', mw) as schluessel FROM ".DB_PREFIX."pflichtzeiten_strecken
WHERE pflichtzeitenid = ".$ds." ORDER BY disziplin, laenge, mw";
$_db->holeDaten($query);
$bestand['strecken'] = $_db->baueArray('id', 'schluessel');
$query = "DELETE FROM ".DB_PREFIX."pflichtzeiten_zeiten
WHERE
streckenid IN (".implode(',', $bestand['strecken']).") AND
jahrgangid IN (".implode(',', array_keys($bestand['jahrgaenge'])).")";
$_db->fuehreQueryAus($query);
}
# benötigte Jahrgänge ermitteln
$wkalter = substr($daten['wettkampf']['datum'],0,4);
$jahrgaenge = array();
foreach($daten['pflichtzeiten'] as $strecke){
foreach($strecke as $jahrg => $zeit){
$jahrgaenge[$jahrg] = array('alter' => $jahrg, 'jahrgang' => $jahrg);
}
}
foreach($jahrgaenge as $jahrg => $alter){
if(ctype_digit(substr($jahrg,0,4))){
$jahrgaenge[$jahrg]['alter'] = ($wkalter-substr($jahrg,0,4)).substr($jahrg,4);
}
}
# Array bauen welcher Jahrgang zu welcher ID gehören wird
$jahrgang2id = array();
if($ds != 'neu'){ # bestehenden Datensatz verwenden
# prüfen ob neue sortierung auf- oder absteigend ist
$aktuell = false;
$aufab_neu = '';
foreach($jahrgaenge as $jahrg){
if(!ctype_digit($jahrg['alter'])){
continue;
}
if($aktuell !== false){
if($aktuell > $jahrg['alter']){
$aufab_neu = 'ab';
}
else{
$aufab_neu = 'auf';
}
break;
}
else{
$aktuell = $jahrg['alter'];
}
}
# prüfen ob alte sortierung auf- oder absteigend ist
$aktuell = false;
$aufab_best = '';
foreach($bestand['jahrgaenge'] as $jahrg){
if(!ctype_digit($jahrg['jahrgang'])){
continue;
}
if($aktuell !== false){
if($aktuell > $jahrg['jahrgang']){
$aufab_best = 'ab';
}
else{
$aufab_best = 'auf';
}
break;
}
else{
$aktuell = $jahrg['jahrgang'];
}
}
if($aufab_neu != $aufab_best){
# neue Jahrgänge umdrehen
$jahrgaenge = array_reverse($jahrgaenge, true);
}
$i = 1;
foreach($jahrgaenge as $jahrg){
$alt = array_shift($bestand['jahrgaenge']);
if(!is_null($alt)){
$query = "UPDATE ".DB_PREFIX."pflichtzeiten_jahrgaenge
SET jahrgang = '".text_format($jahrg['alter'],'db')."', pos = ".($i++)."
WHERE id = ".$alt['id']."";
$_db->fuehreQueryAus($query);
$jahrgang2id[$jahrg['jahrgang']] = $alt['id'];
}
else{
$query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_jahrgaenge
SET jahrgang = '".text_format($jahrg['alter'],'db')."',
pflichtzeitenid = ".$ids['pflichtzeiten'].",
pos = ".($i++)."";
$_db->fuehreQueryAus($query);
$jahrgang2id[$jahrg['jahrgang']] = $_db->ergebnis['insertid'];
}
}
if(count($bestand['jahrgaenge']) > 0){
$weg = array();
foreach($bestand['jahrgaenge'] as $jahrg){
$weg[] = $jahrg['id'];
}
$query = "DELETE FROM ".DB_PREFIX."pflichtzeiten_jahrgaenge WHERE id IN (".implode(',', $weg).")";
$_db->fuehreQueryAus($query);
}
}
else{ # neuen Datensatz anlegen
$i = 1;
foreach($jahrgaenge as $jahrg){
$query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_jahrgaenge
SET jahrgang = '".text_format($jahrg['alter'],'db')."',
pflichtzeitenid = ".$ids['pflichtzeiten'].",
pos = ".($i++)."";
$_db->fuehreQueryAus($query);
$jahrgang2id[$jahrg['jahrgang']] = $_db->ergebnis['insertid'];
}
}
# benötigte Stecken ermitteln
$strecken = array();
foreach($daten['pflichtzeiten'] as $wknr => $zeiten){
$w = $daten['wks'][$wknr];
$strecken[$wknr] = array(
'lage' => $w['disziplin'],
'laenge' => $w['laenge'],
'mw' => $w['mw'],
'_key' => $w['disziplin'].'_'.$w['laenge'].'_'.$w['mw']
);
}
$wknr2id = array();
if($ds != 'neu'){ # bestehenden Datensatz verwenden
# schon vorhandene Strecken wiederverwenden
foreach($strecken as $wknr => $strecke){
if(isset($bestand['strecken'][$strecke['_key']])){
$wknr2id[$wknr] = $bestand['strecken'][$strecke['_key']];
unset($bestand['strecken'][$strecke['_key']]);
unset($strecken[$wknr]);
}
}
# restlichen Strecken eine ID spendieren
foreach($strecken as $wknr => $strecke){
$alt = array_shift($bestand['strecken']);
if(is_null($alt)){
$query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_strecken (pflichtzeitenid, disziplin, laenge, mw) VALUES
(".$ids['pflichtzeiten'].", ".$strecke['lage'].", '".$strecke['laenge']."', '".$strecke['mw']."')";
$_db->fuehreQueryAus($query);
$wknr2id[$wknr] = $_db->ergebnis['insertid'];
}
else{
$query = "UPDATE ".DB_PREFIX."pflichtzeiten_strecken SET
disziplin = ".$strecke['lage'].",
laenge = '".$strecke['laenge']."',
mw = '".$strecke['mw']."'
WHERE pflichtzeitenid = ".$alt."";
$_db->fuehreQueryAus($query);
$wknr2id[$wknr] = $_db->ergebnis['insertid'];
}
}
}
else{ # neuen Datensatz anlegen
foreach($strecken as $wknr => $strecke){
$query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_strecken (pflichtzeitenid, disziplin, laenge, mw) VALUES
(".$ids['pflichtzeiten'].", ".$strecke['lage'].", '".$strecke['laenge']."', '".$strecke['mw']."')";
$_db->fuehreQueryAus($query);
$wknr2id[$wknr] = $_db->ergebnis['insertid'];
}
}
# Zeiten in die Datenbank schreiben
$datensaetze = array();
foreach($daten['pflichtzeiten'] as $wknr => $zeiten){
foreach($zeiten as $jahrg => $zeit){
pruefen($zeit, 'schwimmzeit', '-');
$datensaetze[] = '('.$wknr2id[$wknr].', '.$jahrgang2id[$jahrg].', '.$zeit.')';
}
}
$query = "INSERT INTO ".DB_PREFIX."pflichtzeiten_zeiten (streckenid, jahrgangid, zeit) VALUES ".implode(', ', $datensaetze)."";
$_db->fuehreQueryAus($query);
# Pflichtzeiten dem vorher angelegten Wettkampf zuordnen
if(!isset($d['keinwettkampf'])){
$query = "INSERT INTO ".DB_PREFIX."eigenschaften (art, artid, eigenschaft, wert)
VALUES ('w', '".$ids['wettkampf']."', 'pflichtzeiten', '".$ids['pflichtzeiten']."')";
$_db->fuehreQueryAus($query);
}
}
if(isset($d['keinwettkampf'])){
$ziel = '/wettkaempfe/pflichtzeiten.html?aktion=anzeigen&id='.$ids['pflichtzeiten'];
}
else{
$ziel = '/wettkaempfe/?aktion=detail&id='.$ids['wettkampf'];
}
unset($_SESSION['dsvdateieinlesen']);
weiterleiten($ziel, 'Die Daten wurden importiert');
}
else{
$_tmpl->assign('fehler', $f);
$daten = $d;
}
}
# Daten ausgeben
$_tmpl->assign('daten', $daten);
$_tmpl->assign('_bahnlaengen', $_bahnlaengen);
$_tmpl->assign('_pflichtzeiten', $_pflichtzeiten);
$_inh .= $_tmpl->fetch('wettkaempfe/43.dsvdatei-datenergaenzen.inc.html');
}
}
else{
# Module laden
$_module = parse_ini_file(PFAD_INCLUDE.'conf/module.ini',true);
if(isset($_module['wkabwickeln'])){
$_module = $_module['wkabwickeln'];
foreach($_module as $key => $modul){
$_wettkampfarten[$key] = $modul;
}
}
else{
$_module = false;
}
$setzbareeigenschaften = array(
'flags' => array(
'wkabwickeln',
'mannschaftsmeldegeld'
),
'werte' => array(
'wettkampfart'
)
);
$_bahnlaengen = array(
'25' => 'Kurzbahn (25m)',
'50' => 'Langbahn (50m)',
'x' => 'sonstige'
);
if(isset($_POST['speichern'])){
require_once('func/pruefen.inc.php');
$f = '';
$d = &$_POST['daten'];
$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));
$f .= pruefen($d['meldeschluss']['datum'],'datum','Das Datum vom Meldeschluss ist ungültig');
$f .= pruefen($d['meldeschluss']['zeit'],'uhrzeit','Die Uhrzeit vom Meldeschluss ist ungültig');
$tmp = $wk->parseMeldegeld($d['meldegeld'],'formular','formular');
if($tmp['einzel']===false or $tmp['staffel']===false or $tmp['wks']===false){
if($tmp['einzel']===false){
$f .= 'Das Meldegeld für den Einzelstart ist ungültig
';
}
if($tmp['staffel']===false){
$f .= 'Das Meldegeld für den Staffelstart ist ungültig
';
}
if($tmp['wks']===false){
$f .= 'Das Meldegeld für einzelne Wettkämpfe ist ungültig
';
}
}
else{
$d['meldegeld'] = $tmp;
}
$f .= pruefen($d['meldeadresse']['email'],'email','Die E-Mailadresse in der Meldeadresse ist ungültig');
$f .= pruefen($d['meldeadresse']['email'],'maxlaenge','Die E-Mailadresse in der Meldeadresse ist zu lang (max 200 Zeichen)',200);
$f .= pruefen($d['meldeadresse']['tel'],'telefon','Die Telefonnummer in der Meldeadresse ist ungültig');
$f .= pruefen($d['meldeadresse']['tel'],'maxlaenge','Die Telefonnummer in der Meldeadresse ist zu lang (max 100 Zeichen)',100);
$f .= pruefen($d['meldeadresse']['fax'],'telefon','Die Faxnummer in der Meldeadresse ist ungültig');
$f .= pruefen($d['meldeadresse']['fax'],'maxlaenge','Die Faxnummer in der Meldeadresse ist zu lang (max 100 Zeichen)',100);
$f .= pruefen($d['meldeadresse']['post'],'maxlaenge','Die Postadresse in der Meldeadresse ist zu lange (max 1000 Zeichen)',1000);
if(isset($_POST['verzeichnisid']) and $_POST['verzeichnisid'] != '-'){
$tmp = $verzeichnisse;
unset($tmp[2]);
$f .= pruefen($_POST['verzeichnisid'],'wertemenge','Das Verzeichnis ist ungültig',array_keys($tmp));
}
$f .= pruefen($_POST['sonstiges'],'maxlaenge','Sonstiges ist zu lang (max 65000 Zeichen)',65000);
if(isset($d['_eigenschaften']['wettkampfart']) and $d['_eigenschaften']['wettkampfart'] != '-'){
$f .= pruefen($d['_eigenschaften']['wettkampfart'],'wertemenge','Die Wettkampfart ist ungültig',array_keys($_wettkampfarten));
}
if(isset($d['_eigenschaften']['pflichtzeiten']) and $d['_eigenschaften']['pflichtzeiten'] != '-'){
$f .= pruefen($d['_eigenschaften']['pflichtzeiten'],'wertemenge','Die Pflichtzeit ist ungültig',array_keys($_pflichtzeiten));
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
$_tmpl->assign('daten',$_POST['daten']);
}
else{
$d = &$_POST['daten'];
if(!empty($d['meldeschluss']['datum'])){
$uhrzeit = (!empty($d['meldeschluss']['zeit'])?$d['meldeschluss']['zeit']:'00:00').':00';
$meldeschluss = "'".text_format($d['meldeschluss']['datum'],'dbdatum').' '.$uhrzeit."'";
}
else{
$meldeschluss = 'NULL';
}
$datum = text_format($d['datum'],'dbdatum');
$meldegeld = $wk->parseMeldegeld($d['meldegeld'],'formular','db');
$meldeadresse = '';
if(!empty($d['meldeadresse']['email'])){
$meldeadresse .= 'email: '.$d['meldeadresse']['email']."\r\n\r\n";
}
if(!empty($d['meldeadresse']['tel'])){
$meldeadresse .= 'tel: '.$d['meldeadresse']['tel']."\r\n\r\n";
}
if(!empty($d['meldeadresse']['fax'])){
$meldeadresse .= 'fax: '.$d['meldeadresse']['fax']."\r\n\r\n";
}
if(!empty($d['meldeadresse']['post'])){
$meldeadresse .= 'post: '.$d['meldeadresse']['post'];
}
$meldeadresse = trim($meldeadresse);
# Datum und Meldeschluss in Kalender schreiben
if(isset($d['inkalender'])){
$query = "INSERT INTO ".DB_PREFIX."termine SET
datum = '".$datum."',
titel = '".text_format($d['titel'],'db')."',
was = ''";
$_db->fuehreQueryAus($query);
if($meldeschluss != 'NULL'){
$query = "INSERT INTO ".DB_PREFIX."termine SET
datum = ".$meldeschluss.",
titel = 'Meldeschluss zu ".text_format($d['kurztitel'],'db')."',
was = ''";
$_db->fuehreQueryAus($query);
}
}
$query = "INSERT INTO ".DB_PREFIX."wettkaempfe SET
titel = '".text_format($d['titel'],'db')."',
kurztitel = '".text_format($d['kurztitel'],'db')."',
ort = '".text_format($d['ort'],'db')."',
meldeschluss = ".$meldeschluss.",
datum = '".$datum."',
meldegeld = '".text_format($meldegeld,'db')."',
meldeadresse = '".text_format($meldeadresse,'db')."',
sonstiges = '".text_format($d['sonstiges'],'db')."'";
$_db->fuehreQueryAus($query);
$neuewkid = $_db->ergebnis['insertid'];
# Eigenschaften
$querys = array();
$queryanfang = "INSERT INTO ".DB_PREFIX."eigenschaften (art,artid,eigenschaft,wert) VALUES ('w',".$neuewkid.", ";
$queryende = ")";
# Werte: wettkampfart
foreach($setzbareeigenschaften['werte'] as $wert){
if(!isset($_POST['daten']['_eigenschaften'][$wert])){
continue;
}
switch($wert){
case 'wettkampfart':
if(isset($d['_eigenschaften']['wettkampfart']) and $d['_eigenschaften']['wettkampfart'] != '-'){
$querys[] = $queryanfang."'".$wert."', '".$d['_eigenschaften']['wettkampfart']."'".$queryende;
}
break;
default:
$querys[] = $queryanfang."'".$wert."', '".text_format($d['_eigenschaften'][$wert],'db')."'".$queryende;
break;
}
}
# Flags: wkabwickeln, mannschaftsmeldegeld
foreach($setzbareeigenschaften['flags'] as $flag){
if(isset($_POST['daten']['_eigenschaften'][$flag])){
$querys[] = $queryanfang."'".$flag."', 1".$queryende;
}
}
if(count($querys) > 0){
foreach($querys as $q){
$_db->fuehreQueryAus($q);
}
}
weiterleiten('/wettkaempfe/?aktion=detail&id='.$neuewkid,'Der Wettkampf wurde angelegt');
}
}
$_tmpl->assign('_bahnlaengen',$_bahnlaengen);
$_tmpl->assign('wettkampfarten',$_wettkampfarten);
$_tmpl->assign('_art', 'anlegen');
$_inh .= $_tmpl->fetch('wettkaempfe/41.wettkampf-formular.inc.html');
}
} # Ende Rechte-else, EOF
?>